FR2714513A1 - Non-volatile memory e.g. flash EEPROM - Google Patents

Non-volatile memory e.g. flash EEPROM Download PDF

Info

Publication number
FR2714513A1
FR2714513A1 FR9501929A FR9501929A FR2714513A1 FR 2714513 A1 FR2714513 A1 FR 2714513A1 FR 9501929 A FR9501929 A FR 9501929A FR 9501929 A FR9501929 A FR 9501929A FR 2714513 A1 FR2714513 A1 FR 2714513A1
Authority
FR
France
Prior art keywords
memory
circuit
instructions
page buffer
network
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
FR9501929A
Other languages
French (fr)
Other versions
FR2714513B1 (en
Inventor
Durante Richard Joseph
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.)
Intel Corp
Original Assignee
Intel Corp
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
Priority claimed from FR9412595A external-priority patent/FR2711834B1/en
Application filed by Intel Corp filed Critical Intel Corp
Publication of FR2714513A1 publication Critical patent/FR2714513A1/en
Application granted granted Critical
Publication of FR2714513B1 publication Critical patent/FR2714513B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • 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

Landscapes

  • Read Only Memory (AREA)

Abstract

A flash memory device includes programmable code store circuitry stores algorithms used by an array controller to erase and program a nonvolatile main memory array, and includes a nonvolatile memory (100) for the algorithm instructions. The circuitry also includes support circuits, such as address multiplexer and decode circuitry (102-108), sense path circuitry (112), main array interface circuitry (110) and voltage generators (114-120). These circuits operate in several modes. In read mode, they ensure that the instructions in memory (100) are output to the array controller. In program and erase modes, the support circuits allow control of voltage level applied to the instruction memory, output of instruction data to user, and input of modified instructions to memory (100) via a page buffer (42). The support circuits are placed in the various modes via control signals output from control registers. Because these control registers are accessible to the device user, the user controls the mode in which the code store circuitry operates.

Description

La présente invention concerne des mémoires non volatiles à semi-conducteurs. De façon plus particulière, la présente invention concerne un circuit programmable de mémoire de codes qui mémorise les instructions de programmation et d'effacement d'un réseau de mémoire principale d'un dispositif de mémoire non volatile. The present invention relates to non-volatile semiconductor memories. More particularly, the present invention relates to a programmable code memory circuit which stores the programming and erasing instructions of a main memory network of a non-volatile memory device.

Une mémoire non volatile à semi-conducteur de l'art antérieur est la mémoire morte programmable et effaçable électriquement par flash, appelée aussi mémoire "flash". Les mémoires flash sont programmées électriquement et, lorsqu'elles ont été programmées, elles retiennent les données jusqu'à ce qu'elles soient effacées. Après effacement, les mémoires flash peuvent être programmées à l'aide d'un nouveau code ou de nouvelles données. A non-volatile semiconductor memory of the prior art is the programmable read-only memory that can be erased electrically by flash, also called "flash" memory. The flash memories are electrically programmed and, when they have been programmed, they retain the data until they are erased. After erasing, the flash memories can be programmed using a new code or new data.

Les mémoires flash diffèrent des mémoires mortes programmables et effaçables électriquement classiques, ou "EEPROM", en ce qui concerne l'effacement. Les
EEPROM classiques utilisent typiquement un transistor de choi:: ou de sélection pour la commande d'effacement d'octets individuels. Les mémoires flash en revanche atteignent typiquement des densités beaucoup plus élevées en utilisant des cellules à transistor unique. Certaines des mémoires flash antérieures sont effacées en appliquant simultanément une tension élevée à la source de chacune des cellules de mémoire du réseau de mémoire. I1 en résulte un effacement de tout le réseau.
Flash memories differ from conventional electrically erasable programmable read-only memories, or "EEPROMs", with regard to erasure. The
Conventional EEPROMs typically use a choi :: or selection transistor for erasing individual bytes. Flash memories, on the other hand, typically achieve much higher densities using single transistor cells. Some of the previous flash memories are erased by simultaneously applying a high voltage to the source of each of the memory cells of the memory array. I1 results in an erasure of the entire network.

Les conventions de la mémoire flash définissent un un logique lorsque le nombre d'électrons emmagasinés sur la grille flottante d'une cellule de mémoire est faible ou nul. La convention définit également un zéro logique lorsque de nombreux électrons sont emmagasinés sur la grille flottante de la cellule de mémoire. Un effacement de la mémoire flash amène un un logique à être mémorisé dans chaque cellule de bit. Des cellules de mémoire flash ne peuvent pas être écrasées individuellement, pour passer d'un zéro logique à un un logique, sans effacement préalable. En revanche, une cellule de mémoire flash peut être écrasée individuellement pour passer d'un un logique à un zéro logique, parce que ceci implique simplement d'ajouter des électrons à une grille flottante qui contient le nombre intrinsèque d'électrons associés à l'étant effacé. Flash memory conventions define logic when the number of electrons stored on the floating grid of a memory cell is low or zero. The convention also defines a logical zero when many electrons are stored on the floating grid of the memory cell. Erasing the flash memory causes logic to be stored in each bit cell. Flash memory cells cannot be overwritten individually, from logical zero to logical zero, without first erasing. In contrast, a flash memory cell can be individually overwritten to go from a logical to a logical zero, because this simply involves adding electrons to a floating grid that contains the intrinsic number of electrons associated with the being erased.

Le processus d'effacement, de programmation et de vérification des mémoires flash exige de commander avec attention les tensions nécessaires pour effectuer ces étapes. Par exemple, une mémoire flash de l'art antérieur est la mémoire flash à semi-conducteur à oxyde métallique complémentaire, ou mémoire flash "CMOS", 28F068SA commercialisée par Intel Corporation de Santa Clara, Californie, qui est une mémoire flash de 8 mégabits. La mémoire flash 28F008SA inclut un registre d'ordres pour gérer l'effacement et la programmation. Le contenu du registre d'ordres sert d'entrée à une machine d'état interne qui commande le circuit d'effacement et de programmation. La machine d'état interne est réalisée en utilisant un réseau logique programmable, ou PLA, qui mémorise les algorithmes d'effacement et de programmation du réseau de mémoire flash. Après fabrication du réseau logique programmable, les algorithmes mémorisés par celui-ci ne peuvent être modifiés. I1 n'est donc pas possible d'ajouter une fonctionnalité à un dispositif de mémoire après sa fabrication. The process of erasing, programming and verifying flash memories requires careful control of the voltages necessary to perform these steps. For example, a prior art flash memory is the complementary metal oxide semiconductor flash memory, or "CMOS" flash memory, 28F068SA marketed by Intel Corporation of Santa Clara, California, which is an 8 megabit flash memory . The 28F008SA flash memory includes an order register to manage erasure and programming. The contents of the order register serve as input to an internal state machine which controls the erasure and programming circuit. The internal state machine is produced using a programmable logic network, or PLA, which stores the erasure and programming algorithms of the flash memory network. After the programmable logic network has been produced, the algorithms memorized by it cannot be modified. It is therefore not possible to add functionality to a memory device after its manufacture.

C'est un but de la présente invention que de permettre une modification d'un dispositif de mémoire non volatile après sa fabrication. It is an object of the present invention to allow modification of a non-volatile memory device after its manufacture.

C'est un autre but de la présente invention que de permettre une modification d'algorithmes qui commandent la programmation et l'effacement d'un dispositif de mémoire non volatile après la fabrication du dispositif. It is another object of the present invention to allow modification of algorithms which control the programming and erasure of a non-volatile memory device after the manufacture of the device.

Selon un premier aspect, ces buts sont atteints grâce à un circuit programmable de mémoire de codes inclus dans un dispositif de commande de réseau, caractérisé en ce que
le dispositif de commande de réseau programme et efface un réseau de mémoire principale non volatile en fonction d'instructions mémorisées dans le circuit de mémoire de codes,
le dispositif de commande de réseau inclut un compteur destiné à engendrer une première adresse pour rechercher une instruction,
le réseau de mémoire principale inclut un trajet de lecture et d'écriture pour programmer et lire des cellules de mémoire, et en ce que
le circuit de mémoire de codes comprend:
a. une mémoire non volatile d'instructions pour mémoriser des instructions de programmation et d'effacement du réseau de mémoire principale;
b. un circuit de décodage d'adresses pour adresser une première instruction dans le réseau de mémoire d'instructions en réponse à une adresse de réseau, le circuit de décodage d'adresses produisant un signal d'instruction;
c. un multiplexeur d'adresses pour engendrer l'adresse du réseau en choisissant la première adresse dans un premier mode et une deuxième adresse dans un deuxième mode;
d. un circuit de trajet de détection pour détecter les instructions dans le premier mode en réponse au signal d'instruction;
e. un circuit d'interface de mémoire principale pour coupler le signal d'instruction au trajet de lecture et d'écriture dans le deuxième mode.
According to a first aspect, these aims are achieved by means of a programmable code memory circuit included in a network control device, characterized in that
the network control device programs and erases a non-volatile main memory network according to instructions stored in the code memory circuit,
the network control device includes a counter intended to generate a first address for searching for an instruction,
the main memory array includes a read and write path for programming and reading memory cells, and in that
the code memory circuit includes:
at. a non-volatile instruction memory for storing programming and erasing instructions from the main memory array;
b. an address decoding circuit for addressing a first instruction in the instruction memory array in response to a network address, the address decoding circuit producing an instruction signal;
vs. an address multiplexer for generating the network address by choosing the first address in a first mode and a second address in a second mode;
d. a detection path circuit for detecting the instructions in the first mode in response to the instruction signal;
e. a main memory interface circuit for coupling the instruction signal to the read and write path in the second mode.

La mémoire d'instructions peut inclure de multiples cellules de mémoire non volatile organisées en rangées et en colonnes et en ce que
le circuit de décodage d'adresses comprend:
a. un décodeur X pour adresser une rangée de cellules de mémoire en réponse à l'adresse de réseau; et
b. un circuit de choix Y pour adresser une colonne de cellules de mémoire en réponse à l'adresse de réseau.
et le circuit de mémoire de codes comprend de préférence, dans ce cas:
a. un circuit d'exclusion de choix pour exclure le choix des colonnes de cellules de mémoire en réponse à l'adresse de réseau.
The instruction memory can include multiple non-volatile memory cells organized in rows and columns and in that
the address decoding circuit comprises:
at. an X decoder for addressing a row of memory cells in response to the network address; and
b. a choice circuit Y for addressing a column of memory cells in response to the network address.
and the code memory circuit preferably comprises, in this case:
at. a choice exclusion circuit for excluding the choice of memory cell columns in response to the network address.

Le circuit de mémoire de codes peut comprendre:
-a. un générateur de tension pour engendrer des tensions pour le circuit de décodage d'adresses.
The code memory circuit can include:
-at. a voltage generator for generating voltages for the address decoding circuit.

Le circuit d'interface de réseau principal peut comprendre de multiples portes de passage. The main network interface circuit may include multiple passage doors.

La donnée d'instruction peut inclure une série de bits et chaque bit est mémorisé dans le réseau de mémoire d'instructions en utilisant deux cellules de mémoire. The instruction data can include a series of bits and each bit is stored in the instruction memory array using two memory cells.

Selon un deuxième aspect, la présente invention réalise un dispositif de mémoire non volatile caractérisé en ce qu'il comprend:
a. un réseau de mémoire principale non volatile pour mémoriser des données d'utilisateur;
b. un trajet de lecture et d'écriture couplé au réseau de mémoire principale;
c. un dispositif de commande de réseau pour programmer et effacer la donnée d'utilisateur selon des instructions en réponse à des ordres de l'utilisateur, le dispositif de commande de réseau incluant un circuit de mémoire de codes, le circuit de mémoire de codes recherchant les instructions dans un premier mode, le circuit de mémoire de codes pouvant être modifié dans un deuxième mode, et en ce que
le circuit de mémoire de codes comprend:
1) un réseau de mémoire non volatile d'instructions pour mémoriser des instructions;
2) un circuit de décodage d'adresses pour adresser une première instruction dans le réseau de mémoire d'instructions en réponse à une adresse de réseau, le circuit de décodage d'adresses produisant un signal d'instruction;
3) un multiplexeur d'adresses pour engendrer l'adresse du réseau en choisissant une première adresse dans un premier mode et une deuxième adresse dans un deuxième mode;
4) un circuit de trajet de détection pour produire la première instruction dans le premier mode en réponse au signal d'instruction;
5) un circuit d'interface de réseau principal pour coupler les signaux d'instructions au trajet de lecture et d'écriture dans le deuxième mode; et
d. Un tampon de page qui fournit des instructions au dispositif de commande de réseau dans le deuxième mode, les instructions mémorisées dans le tampon de page amenant le dispositif de commande de réseau à modifier le réseau de mémoire d'instructions.
According to a second aspect, the present invention provides a non-volatile memory device characterized in that it comprises:
at. a non-volatile main memory array for storing user data;
b. a read and write path coupled to the main memory array;
vs. a network controller for programming and erasing user data in accordance with instructions in response to user commands, the network controller including a code memory circuit, the code memory circuit searching for instructions in a first mode, the code memory circuit being able to be modified in a second mode, and in that
the code memory circuit includes:
1) a non-volatile instruction memory array for storing instructions;
2) an address decoding circuit for addressing a first instruction in the instruction memory array in response to a network address, the address decoding circuit producing an instruction signal;
3) an address multiplexer for generating the network address by choosing a first address in a first mode and a second address in a second mode;
4) a detection path circuit for producing the first instruction in the first mode in response to the instruction signal;
5) a main network interface circuit for coupling the instruction signals to the read and write path in the second mode; and
d. A page buffer which provides instructions to the network controller in the second mode, the instructions stored in the page buffer causing the network controller to modify the instruction memory array.

Le dispositif de mémoire non volatile peut comprendre en outre:
d. Un circuit de registre de commande pour mémoriser des signaux de commande afin de placer la mémoire de codes dans le deuxième mode et le premier mode et dans ce cas,
les signaux de commande sont, de préférence, commandés par l'utilisateur du dispositif de mémoire non volatile.
The non-volatile memory device can further comprise:
d. A control register circuit for storing control signals in order to place the code memory in the second mode and the first mode and in this case,
the control signals are preferably controlled by the user of the non-volatile memory device.

Le réseau de mémoire d'instructions peut inclure de multiples cellules de mémoire non volatile organisées en rangées et en colonnes
le circuit de décodage d'adresses comprenant:
a. un décodeur X pour adresser une rangée de cellules de mémoire en réponse à l'adresse de réseau; et
b. un circuit de choix Y pour adresser une colonne de cellules de mémoire en réponse à l'adresse de réseau.
The instruction memory array can include multiple non-volatile memory cells organized in rows and columns
the address decoding circuit comprising:
at. an X decoder for addressing a row of memory cells in response to the network address; and
b. a choice circuit Y for addressing a column of memory cells in response to the network address.

Dans ce cas le dispositif de mémoire non volatile peut comprendre en outre:
c. un circuit d'exclusion de choix pour exclure le choix de colonnes de cellules de mémoire en réponse à l'adresse de réseau.
In this case, the non-volatile memory device can further comprise:
vs. a choice exclusion circuit for excluding the choice of memory cell columns in response to the network address.

Le dispositif de mémoire non volatile caractérisé peut comprendre:
a. un générateur de tension pour engendrer des tensions pour le circuit de décodage d'adresses.
The characterized non-volatile memory device may include:
at. a voltage generator for generating voltages for the address decoding circuit.

Le circuit d'interface de réseau principal peut comprendre de multiples portes de passage. The main network interface circuit may include multiple passage doors.

Le circuit de mémoire de codes peut donc inclure aussi de nombreux circuits de support, cités cidessus. Ces circuits peuvent fonctionner en plusieurs modes. Dans un mode de lecture, ces circuits de support assurent que la donnée d'instruction mémorisée dans la mémoire d'instruction est envoyée au dispositif de commande de réseau. Dans des modes de programmation et d'effacement, les circuits de support permettent de commander les niveaux de tensions appliqués à la mémoire des instructions et de sortir des instructions pour des données pour l'utilisateur. The code memory circuit can therefore also include numerous support circuits, mentioned above. These circuits can operate in several modes. In a read mode, these support circuits ensure that the instruction data stored in the instruction memory is sent to the network control device. In programming and erasing modes, the support circuits make it possible to control the voltage levels applied to the instruction memory and to output instructions for data for the user.

En d'autres termes, ces modes permettent de modifier la mémoire d'instructions. Les circuits des supports sont placés dans les divers modes par des signaux de commande qui viennent par des registres de commande. In other words, these modes make it possible to modify the instruction memory. The carrier circuits are placed in the various modes by control signals which come through control registers.

Puisque ces registres de commande sont accessibles à l'utilisateur du dispositif, l'utilisateur commande le mode dans lequel le circuit de mémoire de codes fonctionne.Since these control registers are accessible to the user of the device, the user controls the mode in which the code memory circuit operates.

Selon un troisième aspect, l'invention fournit, de façon correspondante, un procédé de modification d'instructions mémorisées dans un circuit de mémoire de codes, les instructions donnant des directives à un dispositif de commande de réseau pour programmer et effacer un réseau de mémoire principale non volatile, le circuit de mémoire de codes incluant un réseau de mémoire non volatile d'instructions, le réseau de mémoire d'instructions mémorisant les instructions,
caractérisé en ce qu'il comprend les étapes consistant à:
a. mémoriser dans un tampon de page un programme de modification des instructions de la mémoire de programme;
b. valider le tampon de page pour qu'il serve de source d'instructions pour le dispositif de commande de réseau;
c. exécuter les instructions du tampon de page afin de modifier les instructions mémorisées dans le circuit de mémoire de codes.
According to a third aspect, the invention provides, in a corresponding manner, a method of modifying instructions stored in a code memory circuit, the instructions giving directives to a network control device for programming and erasing a memory network. main non-volatile, the code memory circuit including a non-volatile instruction memory network, the instruction memory network storing the instructions,
characterized in that it comprises the stages consisting in:
at. storing in a page buffer a program for modifying the instructions of the program memory;
b. validate the page buffer to serve as a source of instructions for the network controller;
vs. execute the page buffer instructions to modify the instructions stored in the code memory circuit.

Le procédé peut comprendre en outre l'étape consistant à:
d. Placer le circuit de mémoire de codes en un deuxième mode dans lequel il peut être modifié.
The method can also comprise the step consisting in:
d. Place the code memory circuit in a second mode in which it can be modified.

Le procédé peut comprendre en outre l'étape consistant à:
e. Configurer le tampon de page pour mémoriser des instructions.
The method can also comprise the step consisting in:
e. Configure the page buffer to store instructions.

En d'autres termes, l'utilisateur écrit en premier lieu dans le tampon de page l'algorithme de programmation de la mémoire d'instructions. I1 place ensuite le circuit de mémoire de codes dans un mode de programme en plaçant divers bits de commande à l'intérieur des registres de commande. Ces signaux de commande permettent à l'utilisateur de commander l'entrée d'adresse dans la mémoire d'instructions et de régler des niveaux de tension appliqués à la mémoire d'instructions. Ces signaux de commande couplent de plus la sortie du réseau de mémoire d'instructions à un circuit de haute tension situé à l'intérieur du trajet de lecture et d d'écriture pour permettre la programmation et la vérification. In other words, the user first writes to the page buffer the algorithm for programming the instruction memory. It then places the code memory circuit in a program mode by placing various control bits within the control registers. These control signals allow the user to control the address entry in the instruction memory and to adjust voltage levels applied to the instruction memory. These control signals further couple the output of the instruction memory array to a high voltage circuit located within the read and write path for programming and verification.

L'utilisateur configure ensuite le tampon de page pour qu'il fonctionne comme source d'instructions pour le dispositif de commande de réseau. L'exécution des instructions contenues dans le tampon de page modifie ensuite la mémoire d'instructions.The user then configures the page buffer to function as an instruction source for the network controller. The execution of the instructions contained in the page buffer then modifies the instruction memory.

D'autres buts, particularités et avantages de la présente invention ressortiront des dessins annexés et de la description détaillée qui suit. Other objects, features and advantages of the present invention will emerge from the appended drawings and the detailed description which follows.

La présente invention est illustrée à titre d'exemple, et non à titre limitatif, par les figures des dessins annexés dans lesquelles des références semblables désignent des éléments similaires et dans lesquels:
La Figure 1 est un schéma fonctionnel d'un dispositif de mémoire non volatile.
The present invention is illustrated by way of example, and not by way of limitation, by the figures of the appended drawings in which similar references designate similar elements and in which:
Figure 1 is a block diagram of a non-volatile memory device.

La Figure 2 est un schéma fonctionnel du dispositif de commande de réseau. Figure 2 is a block diagram of the network control device.

La Figure 3 est un schéma fonctionnel du circuit de mémoire de codes. Figure 3 is a block diagram of the code memory circuit.

La Figure 4 illustre le Tableau I, qui définit les modes du circuit de mémoire de codes. Figure 4 illustrates Table I, which defines the modes of the code memory circuit.

La Figure 5 illustre le circuit de mise à la masse de colonnes. Figure 5 illustrates the column grounding circuit.

La Figure 6 illustre le Tableau II, qui définit le fonctionnement de la logique de décodage de mise à la masse de colonnes.  Figure 6 illustrates Table II, which defines the operation of the column ground decoding logic.

La Figure 7A est un schéma fonctionnel du circuit de trajet de détection. Figure 7A is a block diagram of the detection path circuit.

La Figure 7B illustre le Tableau III, qui définit le fonctionnement du dispositif de commande d'amplificateur de détection du circuit de trajet de détection. Figure 7B illustrates Table III, which defines the operation of the detection amplifier control device of the detection path circuit.

La Figure 8 est un schéma fonctionnel du circuit d'interface de réseau principal. Figure 8 is a block diagram of the main network interface circuit.

La Figure 9 est un schéma fonctionnel d'un procédé de programmation du réseau de mémoire d'instructions du circuit de mémoire de codes. Figure 9 is a block diagram of a method of programming the instruction memory array of the code memory circuit.

La Figure 10 illustre le Tableau IV, qui définit les modes du tampon de page. Figure 10 illustrates Table IV, which defines the page buffer modes.

La Figure 11 illustre l'implantation d'adresses du tampon de page dans ses divers modes. Figure 11 illustrates the layout of page buffer addresses in its various modes.

La Figure 12 illustre les champs de bits d'adresses pour adresser le tampon de page. Figure 12 illustrates the address bit fields for addressing the page buffer.

La Figure 13 illustre un ordinateur qui inclut un dispositif de mémoire non volatile qui inclut un circuit de mémoire de codes qui peut être modifié. Figure 13 illustrates a computer which includes a non-volatile memory device which includes a code memory circuit which can be modified.

La Figure 1 illustre sous forme de schéma fonctionnel un dispositif de mémoire non volatile 20 qui incorpore le procédé et le circuit de la présente invention. Le dispositif de mémoire 20 inclut une interface 22 d'utilisateur, un dispositif de commande 24 de réseau, des circuits de registres 26 de commande et un réseau 28 de mémoire principale non volatile. Le dispositif de commande 24 de réseau commande la programmation et l'effacement du réseau 28 de mémoire principale en utilisant le circuit de mémoire 40 de codes. Figure 1 illustrates in block diagram form a non-volatile memory device 20 which incorporates the method and circuit of the present invention. The memory device 20 includes a user interface 22, a network controller 24, control register circuits 26 and a non-volatile main memory network 28. The network controller 24 controls the programming and erasure of the main memory network 28 using the code memory circuit 40.

Comme décrit de façon plus détaillée plus loin, le circuit de mémoire 40 de codes inclut une mémoire non volatile d'instructions qui mémorise des algorithmes de programmation et d'effacement pour le dispositif 20. Le circuit de mémoire 40 de codes permet de modifier la mémoire d'instructions, en modifiant ainsi le fonctionnement du dispositif de mémoire 20 après sa fabrication. Dans des modes spéciaux du circuit de mémoire 40 de codes, la mémoire d'instructions peut être modifiée si un tampon de page 42 est utilisé comme source d'instructions pour le dispositif de commande 24 de réseau, pourvu que le tampon 42 de page mémorise un algorithme de modification du réseau de mémoire d'instructions. Dans ces modes spéciaux, le circuit de mémoire 40 de codes valide un circuit d'interface de réseau principal pour permettre de modifier la mémoire d'instructions en utilisant les lignes de charge de programme du trajet 50 de lecture et d'écriture. As described in more detail below, the code memory circuit 40 includes a non-volatile instruction memory which stores programming and erasing algorithms for the device 20. The code memory circuit 40 makes it possible to modify the instruction memory, thereby modifying the operation of the memory device 20 after its manufacture. In special modes of the code memory circuit 40, the instruction memory can be modified if a page buffer 42 is used as an instruction source for the network controller 24, provided that the page buffer 42 stores an algorithm for modifying the instruction memory array. In these special modes, the code memory circuit 40 validates a main network interface circuit to allow the instruction memory to be modified by using the program load lines of the read and write path 50.

Avant de commencer cette description détaillée, on se réfère de nouveau à la Figure 1. Le dispositif de mémoire 20 inclut aussi un circuit 44 d'accès de commande, un multiplexeur 46 d'adresses, un multiplexeur 48 de sortie et un trajet 50 de lecture et d'écriture. Ces circuits 44, 46, 48 et 50, en coopération avec l'interface 22 d'utilisateur et le dispositif de commande 24 de réseau, rendent relativement simple pour l'utilisateur l'utilisation du réseau 28 de mémoire principale. Before beginning this detailed description, reference is again made to FIG. 1. The memory device 20 also includes a control access circuit 44, an address multiplexer 46, an output multiplexer 48 and a path 50 of reading and writing. These circuits 44, 46, 48 and 50, in cooperation with the user interface 22 and the network controller 24, make it relatively simple for the user to use the main memory network 28.

Le réseau 28 de mémoire principale constitue pour l'utilisateur externe une mémoire vive de données, non volatile, de grandes dimensions. Le réseau 28 de mémoire principale inclut de préférence 32 blocs de cellules de mémoire flash. Chaque bloc de mémoire fournit 64K octets de mémoire de données. The main memory network 28 constitutes for the external user a large non-volatile data memory. The main memory array 28 preferably includes 32 blocks of flash memory cells. Each memory block provides 64K bytes of data memory.

Le réseau de mémoire principale mémorise des mots d'une largeur de 16 bits, en utilisant une cellule de mémoire flash pour mémoriser chaque bit. Par conséquent, le trajet 50 de lecture et d'écriture n'inclut que 16 circuits de détection et charges de programme de haute tension.  The main memory array stores words 16 bits wide, using a flash memory cell to store each bit. Consequently, the read and write path 50 only includes 16 detection circuits and high voltage program loads.

L'interface 22 d'utilisateur fonctionne comme arbitre entre l'utilisateur qui émet des ordres et un dispositif de commande 24 de réseau qui exécute des ordres choisis. Par exemple, une interface 22 d'utilisateur détermine si l'opération demandée par l'utilisateur est valide, étant donné l'état actuel du dispositif de commande 24 de réseau. L'interface 22 d'utilisateur reçoit comme entrée l'ordre et l'adresse d'information qui viennent des broches 70, 72, et 74 et détermine l'opération, ou ordre, que le dispositif de commande 24 de réseau devrait exécuter. Si l'opération demandée est un ordre d'effacement de programme ou de bloc, les signaux d'ordre et de donnée 72 et 74 sont transférés au dispositif de commande 24 de réseau par l'intermédiaire du bus 23 de file d'attente. Une information d'adresse associée à un ordre est transmise par l'interface 22 d'utilisateur au trajet 50 de lecture et d'écriture par l'intermédiaire du multiplexeur 46. The user interface 22 functions as an arbiter between the user who issues commands and a network controller 24 which executes selected commands. For example, a user interface 22 determines whether the operation requested by the user is valid, given the current state of the network controller 24. The user interface 22 receives as input the order and address of information which come from pins 70, 72, and 74 and determines the operation, or order, which the network controller 24 should perform. If the requested operation is a program or block erase order, the order and data signals 72 and 74 are transferred to the network control device 24 via the queue bus 23. Address information associated with an order is transmitted by the user interface 22 to the read and write path 50 via the multiplexer 46.

L'interface 22 d'utilisateur choisit une adresse d'entrée pour le trajet de lecture et d'écriture 50 par l'intermédiaire d'une commande du multiplexeur 46 d'adresses d'entrée. L'adresse d'entrée choisie est, soit l'adresse détectée par des tampons de logique transistor - transistor, ou TTL, qui ne sont pas représentés, sur le bus 70 d'adresse d'utilisateur, soit une adresse 45 entrée en sas qui vient de l'interface d'utilisateur. The user interface 22 chooses an input address for the read and write path 50 by means of a command from the input address multiplexer 46. The input address chosen is either the address detected by transistor-transistor logic buffers, or TTL, which are not shown, on the bus 70 of user address, or an address 45 entered in lock which comes from the user interface.

L'interface 22 d'utilisateur commande le multiplexeur 48 de sortie pour choisir une source pour envoyer une donnée à l'utilisateur. Cette donnée est transférée par l'intermédiaire du bus 74 de données. The user interface 22 controls the output multiplexer 48 to choose a source for sending data to the user. This data is transferred via the data bus 74.

La donnée de sortie choisie peut être, soit une donnée 52 qui vient du trajet 50 de lecture et d'écriture, soit une donnée 48 qui vient du tampon de page 42. The output data chosen can be either a data item 52 which comes from the read and write path 50, or a data item 48 which comes from the page buffer 42.

Le dispositif de commande 24 de réseau commande les différents composants nécessaires pour programmer, effacer et vérifier le réseau 28 de mémoire principale. Le dispositif de commande 24 de réseau exécute les algorithmes de mise en séquence du circuit à haute tension du trajet 50 de lecture et d'écriture de manière à appliquer une charge à des cellules de mémoire flash situées à l'intérieur du réseau 28 de mémoire principale ou à enlever des charges de ces cellules. The network controller 24 controls the various components necessary to program, erase and verify the network 28 of main memory. The network controller 24 executes the algorithms for sequencing the high-voltage circuit of the read and write path 50 so as to apply a load to flash memory cells located inside the memory array 28 main or to remove charges from these cells.

Le circuit 44 d'accès de commande valide aussi bien l'interface 22 d'utilisateur que le dispositif de commande 24 de réseau pour accéder à des registres 26 de commande par l'intermédiaire du bus central de commande 80. En fonctionnement normal, le dispositif de commande 24 de réseau commande le circuit d'accès 44 de commande et commande donc un accès aux registres 26 de commande. Le circuit 44 d'accès de commande passe une information qui va au dispositif de commande 24 de réseau ou une information qui en provient. The control access circuit 44 validates both the user interface 22 and the network control device 24 to access control registers 26 via the central control bus 80. In normal operation, the network control device 24 controls the control access circuit 44 and therefore controls access to the control registers 26. The control access circuit 44 passes information that goes to the network control device 24 or information that comes from it.

Le dispositif de commande 24 de réseau écrit dans des registres spécialisés 26 de commande en transférant un signal de commande d'écriture, et une adresse de registre ainsi qu'une donnée correspondante d'écriture au circuit 44 d'accès de commande par l'intermédiaire du bus 25. Le circuit 44 d'accès de commande engendre ensuite un cycle d'écriture et le couple au bus central de commande 80 afin d'écrire dans le registre de commande adressé. Le dispositif de commande 24 de réseau lit les registres 26 de commande en transférant au circuit d'accès 44 de commande par l'intermédiaire du bus 25 une adresse de registre et un signal de commande de lecture. Le circuit d'accès 44 de commande engendre ensuite un cycle d'accès de lecture et le couple au bus central de commande 80 pour lire le registre de commande adressé.  The network controller 24 writes to specialized control registers 26 by transferring a write control signal, and a register address and corresponding write data to the control access circuit 44 by the intermediate of the bus 25. The control access circuit 44 then generates a write cycle and couples it to the central control bus 80 in order to write to the addressed control register. The network controller 24 reads the control registers 26 by transferring to the control access circuit 44 via the bus 25 a register address and a read command signal. The control access circuit 44 then generates a read access cycle and couples it to the central control bus 80 to read the addressed control register.

L'utilisateur du dispositif de mémoire peut accéder aux registres 26 de commande en émettant un ordre de trappe. L'ordre de trappe commute à l'interface 22 d'utilisateur le circuit d'accès 44 de commande et donc la commande du circuit des registres 26 de commande. Dès lors que la trappe est ouverte, l'utilisateur du dispositif de mémoire peut adresser les registres 26 de commande et y écrire. De cette manière, l'utilisateur du dispositif de mémoire peut configurer le circuit de mémoire 40 de codes de sorte que la mémoire d'instructions peut être modifiée. La raison en est que de nombreux signaux de commande destinés au circuit de mémoire 40 de codes sont engendrés par les registres 26. Des bits de commande situés à l'intérieur des registres 26 de commande incluent ALTADD(10:0), AEN, GWL, USEPB, ACVPXSW,
ACVPSSW, ACVPYSW, ACVPWSW, FLTBL, PBCONFIG(2:0) et
WSELECTC(2:0). L'effet de chacun des ces bits sur le circuit de mémoire 40 de codes sera décrit plus loin en détail.
The user of the memory device can access the control registers 26 by issuing a hatch command. The hatch command switches the control access circuit 44 and therefore control of the control register circuit 26 at the user interface 22. As soon as the hatch is open, the user of the memory device can address the command registers 26 and write there. In this way, the user of the memory device can configure the code memory circuit 40 so that the instruction memory can be changed. The reason is that many control signals for the code memory circuit 40 are generated by the registers 26. Control bits located inside the control registers 26 include ALTADD (10: 0), AEN, GWL , USEPB, ACVPXSW,
ACVPSSW, ACVPYSW, ACVPWSW, FLTBL, PBCONFIG (2: 0) and
WSELECTC (2: 0). The effect of each of these bits on the code memory circuit 40 will be described later in detail.

Les registres 26 de commande sont de préférence réalisés sous la forme d'un certain nombre de bascules de type D dont l'accès est commandé par un décodeur d'adresse individuel. Des adresses sont envoyées aux registres 26 de commande par l'intermédiaire du bus de commande 80. The control registers 26 are preferably produced in the form of a certain number of D-type flip-flops whose access is controlled by an individual address decoder. Addresses are sent to the control registers 26 via the control bus 80.

L'interface 22 d'utilisateur et le dispositif de commande 24 de réseau partagent un tampon de page 42 qui permet au dispositif de mémoire 20 de fonctionner de diverses manières. Par exemple, le tampon de page 42 peut être utilisé pour entrer en tampon une donnée qui doit être programmée dans le dispositif 28 de mémoire principale d'une manière telle que la donnée est entrée sous forme de train dans le réseau 28 de mémoire principale pour augmenter son débit. Comme décrit plus loin, le tampon de page 42 peut aussi être utilisé pour programmer la mémoire d'instructions à l'intérieur du circuit 40. The user interface 22 and the network controller 24 share a page buffer 42 which allows the memory device 20 to operate in various ways. For example, the page buffer 42 can be used to buffer data which is to be programmed into the main memory device 28 in such a way that the data is entered as a stream in the main memory network 28 for increase its flow. As described below, the page buffer 42 can also be used to program the instruction memory inside the circuit 40.

Selon un mode de réalisation préféré, le tampon de page 42 est un réseau de mémoire de 128x19x2 cellules de mémoire vive statique, ou SRAM. Le tampon de page est de préférence divisé en deux plans de mémoire vive statique. Cette architecture à deux plans permet simultanément un accès de lecture et d'écriture dans l'un des plans, pour le dispositif de commande de réseau, et un accès dans l'autre plan, pour l'interface 22 d'utilisateur. Selon son mode, le tampon de page 42 fonctionne comme mémoire à 8 bits, à 16 bits ou à 19 bits. Lorsqu'il fonctionne comme mémoire à 19 bits, le tampon de page 42 peut être utilisé pour programmer un circuit de mémoire 40 de codes. Le mode de tampon de page commande aussi le fait que le tampon de page 42 consiste en un plan contigu de mémoire ou en deux plans de mémoire. According to a preferred embodiment, the page buffer 42 is a memory array of 128 × 19 × 2 cells of static random access memory, or SRAM. The page buffer is preferably divided into two static random access memory planes. This two-plane architecture simultaneously allows read and write access in one of the planes, for the network control device, and access in the other plane, for the user interface 22. Depending on its mode, the page buffer 42 functions as 8-bit, 16-bit or 19-bit memory. When operating as 19-bit memory, the page buffer 42 can be used to program a memory circuit 40 of codes. The page buffer mode also controls whether the page buffer 42 consists of a contiguous memory plane or two memory planes.

Le tampon de page 42 peut être utilisé pour divers buts. Le dispositif de commande 24 de réseau peut utiliser le tampon de page 42 pour mémoriser des déports de saut, une information de donnée et d'adresse pour une programmation de pipeline. A l'aide de l'interface 22 d'utilisateur, l'utilisateur extérieur peut aussi utiliser un plan de tampon de page de manière indépendante comme mémoire rapide de lecture et d'écriture. Le dispositif de commande 24 de réseau peut recevoir des instructions d'exécuter des instructions mémorisées dans le tampon de page 42. En d'autres termes, le tampon de page 42 peut agir comme mémoire de microcodes pour le dispositif de commande 24 de réseau. Dans ce mode, le tampon de page 42 est de préférence configuré sous la forme d'une seule mémoire contigüe.  The page stamp 42 can be used for a variety of purposes. The network controller 24 can use the page buffer 42 to store jump offsets, data and address information for pipeline programming. Using the user interface 22, the outside user can also independently use a page buffer plan as a fast read and write memory. The network controller 24 can receive instructions to execute instructions stored in the page buffer 42. In other words, the page buffer 42 can act as microcode memory for the network controller 24. In this mode, the page buffer 42 is preferably configured in the form of a single contiguous memory.

On va maintenant décrire successivement de façon détaillée le dispositif de commande de réseau, le circuit de mémoire de codes, le tampon de pages et 1 'ordinateur personnel. The network control device, the code memory circuit, the page buffer and the personal computer will now be described successively in detail.

Le dispositif de commande 24 de réseau, qui est décrit en premier lieu, est une structure de traitement polyvalente. Comme représenté à la Figure 2, le dispositif de commande 24 de réseau inclut un circuit de mémoire 40 de codes, un registre 90 d'instructions, un compteur 92 de programme, une unité arithmétique et logique 94, ou ALU, et un fichier 96 de registres. The network controller 24, which is described first, is a versatile processing structure. As shown in Figure 2, the network controller 24 includes a code memory circuit 40, an instruction register 90, a program counter 92, an arithmetic and logic unit 94, or ALU, and a file 96 registers.

Le dispositif de commande 24 de réseau exécute des algorithmes mémorisés dans le circuit de mémoire 40 de codes. Ces algorithmes représentent des mots d'instructions, en particulier des instructions de transfert de données, des instructions de calcul, des instructions de saut de séquence et des instructions de commande. Des instructions de transfert de données concernent des déplacements de données vers un fichier 96 de registre ou depuis celui-ci. Des instructions de saut de séquence permettent à une programmation de modifier le déroulement d'un algorithme en utilisant des appels de sous-programmes et des sauts conditionnels ou inconditionnels. Des instructions de calcul provoquent des opérations qui impliquent l'unité arithmétique et logique 94. The network controller 24 executes algorithms stored in the code memory circuit 40. These algorithms represent instruction words, in particular data transfer instructions, calculation instructions, sequence jump instructions and control instructions. Data transfer instructions relate to movement of data to or from a register file 96. Sequence jump instructions allow a programming to modify the flow of an algorithm by using subroutine calls and conditional or unconditional jumps. Calculation instructions cause operations which involve the arithmetic and logical unit 94.

L'accès à des algorithmes mémorisés dans le circuit de mémoire 40 de codes s'effectue par l'intermédiaire de vecteurs de saut reçus de l'interface 22 d'utilisateur et d'adresses de programmes. Des adresses de programmes sont mémorisées dans les 32 premières adresses du circuit de mémoire 40 de codes. Le circuit de mémoire 40 de codes reçoit du compteur 92 de programme une adresse à la fois. Le circuit de mémoire 40 de codes produit des instructions, une instruction à la fois, destinées au registre 96 d'instructions qui les entre en sas.  Access to algorithms stored in the code memory circuit 40 is effected via jump vectors received from the user interface 22 and from program addresses. Program addresses are stored in the first 32 addresses of the memory circuit 40 of codes. The code memory circuit 40 receives from the program counter 92 one address at a time. The code memory circuit 40 produces instructions, one instruction at a time, intended for the instruction register 96 which enters them in the lock.

La fonction de base du compteur 92 de programme est de décoder l'instruction suivante à exécuter et d'indiquer l'instruction appropriée à suivre. En d'autres termes, le compteur 92 de programme maintient le cyclage approprié d'instructions de données au dispositif de commande 24 de réseau. L'adresse produite comme sortie du compteur 92 de programme est utilisée pour restituer l'instruction suivante à partir du circuit de mémoire 40 de codes en vue d'un transfert au registre 90 d'instructions et d'une exécution par l'unité arithmétique et logique 94. The basic function of the program counter 92 is to decode the next instruction to be executed and to indicate the appropriate instruction to follow. In other words, the program counter 92 maintains the proper cycling of data instructions to the network controller 24. The address produced as an output from the program counter 92 is used to restore the following instruction from the memory circuit 40 of codes for transfer to the register 90 of instructions and execution by the arithmetic unit. and logical 94.

L'unité arithmétique et logique 94 effectue toutes les fonctions arithmétiques et logiques et n'est pas décrite en détail ici. L'entrée de données dans l'unité arithmétique et logique 94 peut être lancée à partir de sources multiples, y compris le tampon de page 42. The arithmetic and logic unit 94 performs all the arithmetic and logic functions and is not described in detail here. Data entry into the arithmetic and logic unit 94 can be initiated from multiple sources, including the page buffer 42.

Le fichier 96 de registres est divisé en deux sections. La première section, qui est appelée la section principale, contient des variables pour l'algorithme en cours d'exécution par le dispositif de commande 24 de réseau. La deuxième section contient des variables pour un algorithme d'interruption. Par conséquent, lorsqu'il prend en compte une interruption, le fichier 96 de registres commute de la section principale vers la deuxième section le contexte du dispositif de commande 24 de réseau. The register file 96 is divided into two sections. The first section, which is called the main section, contains variables for the algorithm being executed by the network controller 24. The second section contains variables for an interrupt algorithm. Consequently, when it takes an interruption into account, the register file 96 switches from the main section to the second section the context of the network controller 24.

Toutes les opérations sont dès lors exécutées dans la section d'opération du fichier 96 de registres. Toutes les variables tenues dans la section principale du fichier de registres sont maintenues, mais elles ne sont pas accessibles pendant que l'interruption est prise en compte. Quand l'interruption cesse d'être prise en compte, la commande revient à la section principale. All operations are therefore performed in the operation section of register file 96. All the variables held in the main section of the register file are maintained, but they are not accessible while the interruption is taken into account. When the interruption ceases to be taken into account, the command returns to the main section.

On va maintenant décrire le circuit de mémoire de codes. We will now describe the code memory circuit.

La Figure 3 illustre sous forme de schéma fonctionnel un circuit de mémoire 40 de codes. Le circuit de mémoire 40 de codes mémorise les algorithmes exécutés par le dispositif de commande 24 de réseau. Le circuit de mémoire 40 de codes inclut un réseau de mémoire 100 de commande, un multiplexeur 102 d'adresses, un décodeur X 104, un circuit 106 de mise à la masse de colonnes, un circuit 108 de choix de Y, un circuit d'interface 110 de réseau principal, un circuit 112 de trajet de détection et plusieurs générateurs de tensions 114, 116, 118 et 120. Le circuit de mémoire 40 de codes permet de modifier les algorithmes qu'il mémorise dans des modes de nonlecture. Par conséquent, une modification d'algorithme n'exige aucune modification du matériel compris à l'intérieur du dispositif de mémoire 20. Figure 3 illustrates in block diagram form a memory circuit 40 of codes. The memory circuit 40 of codes stores the algorithms executed by the network controller 24. The code memory circuit 40 includes a control memory network 100, an address multiplexer 102, an X decoder 104, a column grounding circuit 106, a circuit 108 for choosing Y, a circuit d main network interface 110, a detection path circuit 112 and several voltage generators 114, 116, 118 and 120. The memory circuit 40 of codes makes it possible to modify the algorithms which it stores in non-reading modes. Consequently, an algorithm modification does not require any modification of the hardware included inside the memory device 20.

Une modification du circuit de mémoire 40 de codes est possible parce que le réseau de mémoire 100 d'instructions est non volatile. Le réseau de mémoire 100 d'instructions est de préférence constitué de cellules de mémoire flash. Comme pour tout autre réseau de mémoire flash, un utilisateur modifie le réseau de mémoire 100 d'instructions par un effacement, une programmation et une vérification. A modification of the memory circuit 40 of codes is possible because the memory network 100 of instructions is non-volatile. The memory array 100 of instructions preferably consists of flash memory cells. As with any other flash memory array, a user modifies the memory array 100 of instructions by erasing, programming and verifying.

Ainsi, le circuit de mémoire 40 de codes fonctionne dans de nombreux modes, qui incluent des modes d'effacement et de programmation. La Figure 4 liste les signaux d'entrée et les signaux de sortie pour les modes du circuit de mémoire 40 de codes. Le circuit de mémoire 40 de codes fonctionne normalement en mode de lecture, ce qui permet une programmation, un effacement et une lecture du réseau 28 de mémoire principale. En d'autres termes, le circuit de mémoire 40 de codes engendre, dans le mode de lecture, des instructions destinées au dispositif de commande 24 de réseau. En raison de sa structure, le circuit de mémoire 40 de codes consomme peu d'énergie en mode de lecture. Une vérification de programmation et une vérification d'effacement du réseau de mémoire 100 d'instructions sont effectuées dans un mode d'accès principal qui couple des colonnes du réseau de mémoire 100 d'instructions au trajet 50 de lecture et d'écriture, et non au circuit 112 de trajet de détection. Une lecture de mots d'instructions dans le réseau de mém en groupe de 4 colonnes vraies et 4 colonnes complémentaires. Le réseau de mémoire 100 de commande inclut donc 19 groupes de colonnes. Chaque groupe de colonnes est ensuite couplé à un amplificateur unique de détection du circuit 112 de trajet de détection.Thus, the code memory circuit 40 operates in many modes, which include erase and programming modes. Figure 4 lists the input and output signals for the modes of the code memory circuit 40. The code memory circuit 40 operates normally in read mode, which allows programming, erasing and reading of the network 28 of main memory. In other words, the code memory circuit 40 generates, in the reading mode, instructions intended for the network control device 24. Due to its structure, the memory circuit 40 of codes consumes little energy in reading mode. A programming check and an erasure check of the instruction memory array 100 are performed in a main access mode which couples columns of the instruction memory array 100 to the read and write path 50, and no to the detection path circuit 112. A reading of instruction words in the mem network in a group of 4 true columns and 4 complementary columns. The command memory network 100 therefore includes 19 groups of columns. Each group of columns is then coupled to a single detection amplifier of the detection path circuit 112.

Les 512 lignes de mots sont organisées en 256 lignes de mots pairs et 256 lignes de mots impaires.The 512 word lines are organized into 256 even word lines and 256 odd word lines.

Le multiplexeur 102 d'adresses choisit la source des signaux d'adresse appliquée au décodeur X 104. En mode de lecture, le signal de validation de réseau AEN 130 choisit des signaux d'adresses engendrés par le compteur 92 de programme, c'est-à-dire PCADD(10:0) 131. le signal AEN 130 choisit des variantes des signaux d'adresses, ALTADD(10:0) 132 pendant des modes de programmation, d'effacement et d'accès principal. The address multiplexer 102 chooses the source of the address signals applied to the X decoder 104. In read mode, the network validation signal AEN 130 chooses address signals generated by the program counter 92, that is ie PCADD (10: 0) 131. signal AEN 130 chooses variants of address signals, ALTADD (10: 0) 132 during programming, erasing and main access modes.

Ces variantes d'adresses proviennent de bornes d'adresses 70 qui sont couplées au multiplexeur 102 d'adresses par l'intermédiaire de l'interface d'utilisateur 22. Le multiplexeur 102 d'adresses couple les 9 bits inférieurs de sa sortie AADD(8:0) 134 au décodeur X 104. Les 2 bits supérieurs,
AADD(10:9) 136 sont couplés au circuit de choix Y 108 et au circuit 106 de mise à la masse de colonnes.
These address variants come from address terminals 70 which are coupled to the address multiplexer 102 via the user interface 22. The address multiplexer 102 couples the 9 lower bits of its output AADD ( 8: 0) 134 at decoder X 104. The upper 2 bits,
AADD (10: 9) 136 are coupled to the choice circuit Y 108 and to the circuit 106 for grounding columns.

Le décodeur X 104 effectue un décodage de rangée et pilote des lignes de mots à l'intérieur du réseau de mémoire 100 d'instructions. Le décodeur X effectue sa tâche rapidement, en décodant chaque adresse à l'intérieur de la première phase d'un cycle de signal d'horloge à trois phases. Dans le mode d'effacement, une affirmation du signal de ligne de mot de masse,
GWL 138, amène le décodeur X 104 à mettre à la masse toutes les lignes de mots. Ceci permet un effacement du réseau de mémoire 100 de commande. En mode de programmation, l'affirmation de ACVPXW permet au décodeur X 104 d'élever à Vpp, c'est-à-dire à 12 volts, des lignes de mots choisies.
The X decoder 104 performs row decoding and drives word lines within the memory array 100 of instructions. The X decoder performs its task quickly, decoding each address within the first phase of a three-phase clock signal cycle. In the erase mode, an assertion of the ground word line signal,
GWL 138, causes the X 104 decoder to ground all the word lines. This allows the command memory 100 network to be erased. In programming mode, the assertion of ACVPXW allows the decoder X 104 to raise to Vpp, that is to say to 12 volts, selected word lines.

Le décodeur X 104 est organisé sous forme de circuit de décodage préalable X et de circuit d'excitateur X. Dans des modes autres que l'effacement, le circuit de décodage préalable X choisit, en réponse à AADD(8:0) 134 la paire appropriée de rangées dans les 512 rangées du réseau de mémoire 100 d'instructions. Dans le mode d'effacement, toutes les rangées sont choisies. Le circuit de décodage préalable X effectue sa tâche en trois niveaux en utilisant un décodeur préalable de rangées paires et un décodeur préalable de rangées impaires qui sont identiques entre eux sauf pour la destination de leurs signaux de sortie. En premier lieu, le décodeur préalable de rangées paires choisit un groupe de 64 lignes de mots paires et le décodeur préalable de rangées impaires choisit un groupe de 64 lignes de mots impaires. Puis, le décodeur préalable de rangées paires choisit un groupe de 8 lignes dans le groupe de 64 lignes de mots paires. Simultanément, le décodeur préalable de rangées impaires choisit un groupe de 8 lignes dans le groupe des 64 lignes de mots impaires. Finalement, le décodeur préalable de rangées paires choisit une des lignes de mots paires dans le groupe de 8 lignes de mots paires tandis que le décodeur préalable de rangées impaires choisit une des lignes de mots impaires dans le groupe de 8 lignes de mots impaires. The X decoder 104 is organized in the form of a pre-decoding circuit X and an exciter circuit X. In modes other than erasure, the prior decoding circuit X chooses, in response to AADD (8: 0) 134 la appropriate pair of rows in the 512 rows of the memory network 100 of instructions. In the erase mode, all the rows are chosen. The pre-decoding circuit X performs its task in three levels using a pre-decoder of even rows and a pre-decoder of odd rows which are identical to each other except for the destination of their output signals. First, the prior decoder of even rows chooses a group of 64 lines of even words and the prior decoder of odd rows chooses a group of 64 lines of odd words. Then, the prior decoder of even rows chooses a group of 8 lines from the group of 64 lines of even words. Simultaneously, the prior decoder of odd rows chooses a group of 8 lines from the group of 64 lines of odd words. Finally, the prior decoder of even rows chooses one of the even word lines in the group of 8 even word lines while the prior decoder of odd rows chooses one of the odd word lines in the group of 8 odd word lines.

Le circuit excitateur X prend les signaux de sortie dans le circuit de décodage préalable X et excite les lignes de mots choisies. Le circuit excitateur X excite à la tension VPX les lignes de mots choisies pendant la programmation et l'effacement du réseau de mémoire 100 de commande. Le circuit d'excitateur X est divisé en un excitateur de rangées paires et un excitateur de rangées impaires. The exciter circuit X takes the output signals from the prior decoding circuit X and excites the selected word lines. The exciter circuit X excites at the voltage VPX the word lines chosen during the programming and erasing of the control memory array 100. The exciter circuit X is divided into an exciter of even rows and an exciter of odd rows.

L'excitateur de rangées paires est situé sur un côté du réseau de mémoire 100 de commande et l'excitateur de rangées impaires est situé sur l'autre côté du réseau de mémoire 100 de commande. Les excitateurs situés à l'intérieur du circuit d'excitateur X sont plus petits que ceux qui sont utilisés par le réseau 28 de mémoire principale, leurs dimensions étant égales à 1/4 des dimensions correspondant au réseau de mémoire principale selon un mode de réalisation. La paire choisie de rangées est désignée par deux ensembles de signaux, des signaux de rangées impaires
OR(511:0) 142 et les signaux de rangées paires
ER(511:0) 140.
The even row exciter is located on one side of the control memory array 100 and the odd row exciter is located on the other side of the control memory array 100. The exciters located inside the exciter circuit X are smaller than those used by the main memory array 28, their dimensions being equal to 1/4 of the dimensions corresponding to the main memory array according to one embodiment . The selected pair of rows is designated by two sets of signals, signals of odd rows
OR (511: 0) 142 and even row signals
ER (511: 0) 140.

La circuit de mémoire 40 de codes met en oeuvre un schéma de lecture 4:1 à l'aide du circuit de choix
Y 108, du circuit 106 de mise à la masse de colonnes et du circuit 112 de trajet de détection. Ceci signifie que quatre colonnes vraies et quatre colonnes complémentaires du réseau de mémoire 100 d'instructions sont couplées à un amplificateur unique de détection 174 du circuit 112 de trajet de détection. Ainsi, la lecture d'un mot d'instruction dans le réseau de mémoire 100 d'instructions exige d'exclure du choix trois colonnes vraies sur quatre et trois colonnes complémentaires sur quatre. Le circuit 106 de mise à la masse de colonnes accomplit cette tâche en utilisant une logique de décodage et dix-neuf circuits de mise à la masse des colonnes dont un seul est illustré à la Figure 5. Comme son nom le suggère, la logique de décodage décode AADD(10:9) 136, AEN,
USEPB et FLTBL pour engendrer quatre signaux de mise à la masse de colonnes, CG(3:0). La réponse de la logique de décodage de colonnes à ses entrées est indiquée au tableau II de la Figure 6. On note que l'affirmation de FLTBL dans le mode d'effacement permet à toutes les lignes de bits de flotter et permet un effacement de la mémoire 100 d'instructions.
The memory circuit 40 of codes implements a 4: 1 reading diagram using the choice circuit
Y 108, of the column grounding circuit 106 and of the detection path circuit 112. This means that four true columns and four complementary columns of the instruction memory array 100 are coupled to a single detection amplifier 174 of the detection path circuit 112. Thus, the reading of an instruction word in the memory memory 100 of instructions requires to exclude from the choice three true columns out of four and three complementary columns out of four. Column grounding circuit 106 accomplishes this task using decoding logic and nineteen column grounding circuits, only one of which is illustrated in Figure 5. As its name suggests, the logic of decoding decodes AADD (10: 9) 136, AEN,
USEPB and FLTBL to generate four column grounding signals, CG (3: 0). The response of the column decoding logic to its inputs is shown in Table II of Figure 6. Note that the assertion of FLTBL in the erase mode allows all the bit lines to float and allows an erasure of the instruction memory 100.

Ces quatre signaux de mise à la masse de colonnes indiquent celles des trois colonnes vraies et des trois colonnes complémentaires de chaque groupe de colonnes qui devraient être mises à la masse. Chacun des dix-neuf circuits de mise à la masse de colonnes utilise les quatre signaux de mise à la masse de colonnes pour mettre à la masse, parmi son groupe associé de colonnes, trois colonnes vraies et trois colonnes complémentaires. Ceci est effectué en utilisant une rangée de portes de passage. Lorsqu'un 1 logique est appliquée à une porte de passage, elle couple la colonne associée à VPS, c'est-à-dire à la masse.These four column ground signals indicate which of the three true columns and the three complementary columns of each group of columns should be grounded. Each of the nineteen column ground circuits uses the four column ground signals to ground, among its associated group of columns, three true columns and three complementary columns. This is done using a row of passage doors. When a logic 1 is applied to a passage door, it couples the column associated with VPS, that is to say to ground.

Le circuit de choix Y 108 choisit les colonnes vraies et complémentaires à coupler au circuit 112 de trajet et de détection en décodant AADD(10:9) 136. En d'autres termes, le circuit de choix Y 108 choisit, en réponse à AADD(10:9) 136, SENS(18:0) 154 et
SENSB(18:0) 156 dans la Colonne T(75:0) 150 et la
Colonne C(75:0) 152. Le circuit de choix Y 108 inclut une logique de décodage Y et dix-neuf circuits de choix. Chaque circuit de choix est couplé à un groupe de colonnes. La logique de décodage Y décode
AADD(10:9) 136 pour engendrer quatre signaux de choix, dont un seul est actif à la fois dans des modes de programmes, de lecture et d'accès principal. Chacun des dix-neuf circuits de choix utilise ces quatre signaux de choix pour coupler au circuit 112 de trajet de détection l'une de ses colonnes vraies associées et l'une de ses colonnes complémentaires associées par l'intermédiaire de SENS(18:0) 154 et SENSB(18:0) 156.
The choice circuit Y 108 chooses the true and complementary columns to be coupled to the path and detection circuit 112 by decoding AADD (10: 9) 136. In other words, the choice circuit Y 108 chooses, in response to AADD (10: 9) 136, SENS (18: 0) 154 and
SENSB (18: 0) 156 in Column T (75: 0) 150 and the
Column C (75: 0) 152. The choice circuit Y 108 includes a decoding logic Y and nineteen choice circuits. Each choice circuit is coupled to a group of columns. The decoding logic Y decodes
AADD (10: 9) 136 to generate four choice signals, only one of which is active at a time in program, play, and main access modes. Each of the nineteen choice circuits uses these four choice signals to couple to the detection path circuit 112 one of its associated true columns and one of its associated complementary columns via SENS (18: 0 ) 154 and SENSB (18: 0) 156.

Le circuit 112 de trajet de détection fonctionne pendant le mode de lecture. Le circuit 112 de trajet de détection engendre le mot d'instruction, IW(18:0) 158 à partir de SENS(18:0) 154 et SENSB(18:0) 156 en utilisant des amplificateurs de détection. Comme illustré à la Figure 7A, le circuit 112 de trajet de détection inclut un dispositif de commande 170 d'amplificateurs de détection, un générateur 172 de polarisation et dix-neuf amplificateurs 174 de détection, dont un seul est représenté. Le dispositif de commande 170 d'amplificateurs de détection commande un amplificateur de détection 174 par l'intermédiaire de signaux de charge préalable PCHG 177 et PCHGB 179, d'un signal de validation de polarisation, d'un signal de validation de référence, REFENB 176, qui est un signal actif bas, et d'un signal de lecture, READ 175. The detection path circuit 112 operates during the read mode. The detection path circuit 112 generates the instruction word, IW (18: 0) 158 from SENS (18: 0) 154 and SENSB (18: 0) 156 using detection amplifiers. As illustrated in Figure 7A, the detection path circuit 112 includes a controller 170 for detection amplifiers, a bias generator 172 and nineteen detection amplifiers 174, only one of which is shown. The detection amplifier controller 170 controls a detection amplifier 174 by means of pre-charge signals PCHG 177 and PCHGB 179, of a polarization validation signal, of a reference validation signal, REFENB 176, which is a low active signal, and a read signal, READ 175.

Le dispositif de commande 170 d'amplificateurs de détection place un amplificateur de détection 174 dans l'un des deux états en fonction du mode du circuit de mémoire 40 de codes, comme indiqué au Tableau II de la
Figure 7B. Dans tous les modes autres que le modes de lecture, le dispositif de commande 170 d'amplificateurs de détection maintient les amplificateurs de détection 174 dans l'état de charge préalable et invalide le générateur de polarisation 172 par l'intermédiaire de REFENB 176. Ceci empêche des amplificateurs de détection 174 d'exciter IW(18:0) 158 et sauvegarde l'énergie. Le dispositif de commande 170 d'amplificateurs de détection identifie les modes autres que la lecture par l'intermédiaire de AEN 130,
WSELECTC(2:0) 178 et USEPB 180. En mode de lecture, le temps de réponse des amplificateurs de détection 174 est amélioré en les chargeant au préalable pendant le décodage d'adresses, c'est-à-dire pendant la première phase du signal d'horloge à trois phases. Dans les deux phases restantes, le dispositif de commande de trajet de détection cesse d'affirmer les signaux de charge préalable et valide une lecture des entrées d'amplificateurs de détection en amenant READ à l'état actif. Le mot d'instruction IW(18:0) 158 est engendré pendant ces deux phases de signal d'horloge.
The detection amplifier controller 170 places a detection amplifier 174 in one of the two states according to the mode of the code memory circuit 40, as indicated in Table II of the
Figure 7B. In all modes other than the reading modes, the detection amplifier control device 170 maintains the detection amplifiers 174 in the prior charge state and deactivates the bias generator 172 by means of REFENB 176. This prevents sense amplifiers 174 from energizing IW (18: 0) 158 and saves energy. The detection amplifiers controller 170 identifies modes other than reading via AEN 130,
WSELECTC (2: 0) 178 and USEPB 180. In read mode, the response time of the detection amplifiers 174 is improved by first loading them during address decoding, that is to say during the first phase of the three-phase clock signal. In the two remaining phases, the detection path controller stops asserting the preload signals and validates a reading of the detection amplifier inputs by bringing READ to the active state. The instruction word IW (18: 0) 158 is generated during these two clock signal phases.

Le circuit d'interface 110 de réseau principal permet une programmation et une vérification du réseau de mémoire 100 de commande en le couplant au circuit à haute tension du trajet 50 de lecture et d'écriture dans des modes autres que la lecture. Le trajet 50 de lecture et d'écriture est agencé autour du réseau 28 de mémoire principale qui mémorise 16 mots de bits. The main network interface circuit 110 allows programming and verification of the control memory network 100 by coupling it to the high voltage circuit of the path 50 for reading and writing in modes other than reading. The read and write path 50 is arranged around the main memory array 28 which stores 16 bit words.

Ainsi, le circuit d'interface 110 de réseau principal choisit un groupe de 16 signaux parmi les 38 signaux 154 et 156 à coupler au trajet 50 de lecture et d'écriture.Thus, the main network interface circuit 110 chooses a group of 16 signals from among the 38 signals 154 and 156 to be coupled to the read and write path 50.

Le circuit d'interface 110 de réseau principal est illustré schématiquement à la Figure 8. Le circuit d'interface 110 de réseau principal inclut six rangées de portes de passage 190, 192, 194, 196, 198 et 200. The main network interface circuit 110 is illustrated schematically in FIG. 8. The main network interface circuit 110 includes six rows of passage doors 190, 192, 194, 196, 198 and 200.

Chaque rangée de portes de passage 190, 192, 194, 196, 198 et 200 est représentée par une porte unique de passage. Chaque rangée de portes de passage 190, 192, 194, 196, 198 et 200 couple un sous-ensemble des signaux SENS(18:0) 154 et SENSB(18:0) 156 au trajet 50 de lecture ou d'écriture par l'intermédiaire de
MASEN(15:0) 210. Des signaux de choix WSELECTC(2:0) 178 déterminent celle des paires de rangées qui excite
MASEN (15:0). Chaque signal de choix 170 est couplé à un sas de haute tension 180, 182 ou 194, dont la sortie commande deux rangées de portes de passage.
Each row of passage doors 190, 192, 194, 196, 198 and 200 is represented by a single passage door. Each row of passage doors 190, 192, 194, 196, 198 and 200 couples a subset of the signals SENS (18: 0) 154 and SENSB (18: 0) 156 to the path 50 for reading or writing by l ''
MASEN (15: 0) 210. Selection signals WSELECTC (2: 0) 178 determine which of the pairs of rows excites
MASEN (15: 0). Each choice signal 170 is coupled to a high-voltage airlock 180, 182 or 194, the output of which controls two rows of passage doors.

Ainsi, lorsque WELECTC(2:0) 178 est 001 binaire, les rangées 190 et 192 sont mises en service et permettent à SENSB(7:0) d'exciter MASEN(15:8) et à SENS(7:0) d'exciter MASEN(7:0). Lorsque WSELECTC(2:0) 178 est égal à 010 en binaire, ceci met en service les rangées 194 et 196, en couplant SENSB(15:8) à MASEN(15:8) et
SENS(7:0) à MASEN(7:0). Finalement, lorsque
WSELECTC(2:0) 178 est égal à 100 binaire, ceci met en service les rangées 198 et 200 et couple SENSB(18:16) à MASEN (10:8) et SENS(18:16) à MASEN(2:0).
Thus, when WELECTC (2: 0) 178 is binary 001, rows 190 and 192 are put into service and allow SENSB (7: 0) to excite MASEN (15: 8) and SENS (7: 0) d '' excite MASEN (7: 0). When WSELECTC (2: 0) 178 is equal to 010 in binary, this activates rows 194 and 196, by coupling SENSB (15: 8) to MASEN (15: 8) and
SENS (7: 0) to MASEN (7: 0). Finally, when
WSELECTC (2: 0) 178 is equal to 100 binary, this activates rows 198 and 200 and couple SENSB (18:16) to MASEN (10: 8) and SENS (18:16) to MASEN (2: 0 ).

Les sas de haute tension 180, 182 et 184 du circuit d'interface 110 de réseau principal sont couplés à une alimentation, dont la référence est commandée par VPW 186. VPW 186 est engendrée par le générateur 118 de VPW en courant alternatif, ou générateur ACVPW. Le générateur 188 excite VPW 186 à
Vpp, c'est-à-dire à 12 volts, pendant la programmation du réseau de mémoire 100 d'instructions en réponse au signal commutateur ACVPWSW 220. Le signal commutateur 220 excite VPW 186 à Vcc, c'est-à-dire à 5 volts, pendant les opérations de lecture.
The high voltage airlocks 180, 182 and 184 of the main network interface circuit 110 are coupled to a power supply, the reference of which is controlled by VPW 186. VPW 186 is generated by the generator 118 of VPW in alternating current, or generator ACVPW. The generator 188 excites VPW 186 to
Vpp, that is to say at 12 volts, during the programming of the memory network 100 of instructions in response to the switch signal ACVPWSW 220. The switch signal 220 excites VPW 186 at Vcc, that is to say at 5 volts, during reading operations.

Le générateur de VPS en courant alternatif, ou
AC VPS, 120 engendre la tension appliquée à la source de chaque cellule de mémoire à l'intérieur du réseau de mémoire 100 d'instructions. Le niveau de tension de
VPS 222 est commandé par un signal de commutateur,
ACVPSSW 224. Pendant le mode d'effacement du circuit 40, ACVPSSW 224 couple VPS 222 à Vpp, c'est-à-dire 12 volts. En mode programme, et dans d'autres modes,
ACVPSSW 224 couple VPS 222 à Vcc, c'est-à-dire à 5 volts.
The alternating current VPS generator, or
AC VPS, 120 generates the voltage applied to the source of each memory cell within the memory array 100 of instructions. The voltage level of
VPS 222 is controlled by a switch signal,
ACVPSSW 224. During the erase mode of circuit 40, ACVPSSW 224 couples VPS 222 to Vpp, that is to say 12 volts. In program mode, and in other modes,
ACVPSSW 224 VPS 222 torque at Vcc, i.e. at 5 volts.

Le générateur de VPX en courant alternatif 114, ou AC VPX, engendre tous les niveaux de tension nécessaires pour le décodeur X 104, c'est-à-dire VPX 226 et VPSS 228. The alternating current VPX generator 114, or AC VPX, generates all the voltage levels necessary for the decoder X 104, that is to say VPX 226 and VPSS 228.

Le générateur de VPY en courant alternatif 116, ou AC VPY, engendre les tensions utilisées par le circuit de choix Y 108. Un signal de commutateur
ACVPYSW 240 commute VPY 242 de 7,5 volts en mode de programme à approximativement 5 volts en mode de lecture.
The generator of VPY in alternating current 116, or AC VPY, generates the voltages used by the choice circuit Y 108. A switch signal
ACVPYSW 240 switches VPY 242 from 7.5 volts in program mode to approximately 5 volts in read mode.

Le circuit de mémoire 40 de codes fonctionne dans un mode de lecture par défaut, en engendrant des mots d'instructions pour le registre 90 d'instructions et l'unité arithmétique et logique 94. Le fonctionnement du circuit de mémoire 40 de codes dans d'autres modes exige de placer des signaux de commande AEN 130, USEPB 180, WSELECTC(2:0) 178, ALTADD(10:0) 132, ACVPXSW,
ACVPYSW 240, ACVPSSW 224, GWL 138, FLTBL, PBCONFIG (2:0) et WSELECTC(2:0) 178 selon ce qui est approprié pour le mode. Ces signaux de commande peuvent être réglés par l'utilisateur au niveau souhaité en adressant les registres de commande 126 et en y écrivant. AEN 130 permet à l'utilisateur de commander les signaux d'adresses appliqués au réseau de mémoire 100 d'instructions, en les commutant de PCADD 131 à
ALTADD 132. USEPB 180 permet à l'utilisateur de programmer le réseau de mémoire 100 d'instructions en utilisant un algorithme mémorisé précédemment dans le tampon de page 42. WSELECTC(2:0) 178 permet à l'utilisateur de coupler au trajet 50 de lecture et d'écriture un groupe choisi de bits qui vient du réseau de mémoire 100 d'instructions.
The code memory circuit 40 operates in a default reading mode, generating instruction words for the instruction register 90 and the arithmetic and logic unit 94. The operation of the code memory circuit 40 in d other modes require placing control signals AEN 130, USEPB 180, WSELECTC (2: 0) 178, ALTADD (10: 0) 132, ACVPXSW,
ACVPYSW 240, ACVPSSW 224, GWL 138, FLTBL, PBCONFIG (2: 0) and WSELECTC (2: 0) 178 as appropriate for the mode. These control signals can be set by the user to the desired level by addressing and writing to the control registers 126. AEN 130 allows the user to control the address signals applied to the instruction memory network 100, by switching them from PCADD 131 to
ALTADD 132. USEPB 180 allows the user to program the memory network 100 of instructions using an algorithm previously stored in page buffer 42. WSELECTC (2: 0) 178 allows the user to link to path 50 read and write a selected group of bits which comes from the memory network 100 of instructions.

La Figure 9 illustre sous forme de schéma logique un procédé de modification du réseau de mémoire 100 d'instructions. Comme pour tous les réseaux de mémoire flash, la programmation du réseau de mémoire 100 d'instructions exige un effacement avant la programmation. L'effacement du réseau de mémoire 100 d'instructions est réalisé en utilisant le tampon de page 42 comme source de mots d'instructions pour le dispositif de commande 24 de réseau. Les mots d'instructions mémorisés dans le tampon de page 42 doivent effacer la mémoire 100 d'instructions. Ainsi, la première étape, c'est-à-dire l'étape 260, consiste à configurer le tampon de page 42 de façon qu'il puisse mémoriser les 19 mots d'instructions de bits d'un algorithme d'effacement. Ceci est effectué en plaçant PBCONFIG(2:0) au mode d'écriture d'utilisateur par l'intermédiaire d'un accès au registre 26 de commande.  Figure 9 illustrates in logic diagram a method of modifying the memory array 100 of instructions. As with all flash memory arrays, programming the instruction memory array 100 requires erasing before programming. Clearing the instruction memory array 100 is accomplished using the page buffer 42 as the source of instruction words for the network controller 24. The instruction words stored in the page buffer 42 must erase the instruction memory 100. Thus, the first step, that is to say step 260, consists in configuring the page buffer 42 so that it can memorize the 19 bit instruction words of an erasing algorithm. This is done by setting PBCONFIG (2: 0) to user write mode via access to control register 26.

A l'étape 262, l'utilisateur écrit dans le tampon de page 42 l'algorithme d'effacement du réseau de mémoire 100 d'instructions. D'une façon bien connue dans l'art, l'effacement des cellules d'une mémoire flash exige de mettre à la masse les lignes de mots, en permettant aux lignes de bits de flotter et en élevant les sources à 12 volts. Ainsi, l'algorithme d'effacement commande GWL 138, ACVPSSW 224 et FLTBL de manière à effacer le réseau 100. L'algorithme d'effacement n'est pas décrit de façon plus détaillée parce que de tels algorithmes sont bien connus dans l'art. In step 262, the user writes in the page buffer 42 the algorithm for erasing the memory array 100 of instructions. In a manner well known in the art, erasing the cells of a flash memory requires grounding the word lines, allowing the bit lines to float and raising the sources to 12 volts. Thus, the erasing algorithm controls GWL 138, ACVPSSW 224 and FLTBL so as to erase the network 100. The erasing algorithm is not described in more detail because such algorithms are well known in the art. art.

L'utilisateur doit prendre soin d'écrire les mots d'instructions de l'algorithme d'effacement aux emplacements corrects d'adresses du tampon de page 42. The user should take care to write the instruction words of the erase algorithm to the correct address locations in the page buffer 42.

Les 16 bits inférieurs de chaque mot d'instruction,
IW(15:0) pour les premiers FF (en hexadécimal) mots d'instruction doivent être mémorisés dans l'ordre séquentiel dans le plan A du tampon de page. Les bits de poids fort des FF premiers mots d'instructions
IW(18:16) doivent être mémorisés dans le plan C aux adresses 200-27F (en hexadécimal) du tampon de page.
The lower 16 bits of each instruction word,
IW (15: 0) for the first FF (in hexadecimal) instruction words must be stored in sequential order in plane A of the page buffer. The most significant bits of the first instruction words FF
IW (18:16) must be stored in plane C at addresses 200-27F (in hexadecimal) of the page buffer.

Les 16 bits inférieurs du mot d'instructions pour des mots d'instructions qui dépassent FF (en hexadécimal) doivent être mémorisés dans l'ordre séquentiel dans le plan B du tampon de page. Le bit de poids fort de ces mots d'instructions doit être mémorisé dans l'ordre séquentiel dans le plan C aux adresses 280 à 2FF (en hexadécimal).The lower 16 bits of the instruction word for instruction words which exceed FF (in hexadecimal) must be stored in sequential order in plane B of the page buffer. The most significant bit of these instruction words must be stored in sequential order in plane C at addresses 280 to 2FF (in hexadecimal).

Quant l'utilisateur a chargé l'algorithme d'effacement dans le tampon de page 42, le circuit de mémoire 40 de codes doit être configuré à l'étape 264 de manière à permettre sa modification. Des signaux de commande comme AEN 130 et WSELECTC(2:0) 178 doivent être placés de façon appropriée pour le mode d'effacement, comme représenté au Tableau I.  When the user has loaded the erasure algorithm into the page buffer 42, the code memory circuit 40 must be configured in step 264 so as to allow it to be modified. Control signals such as AEN 130 and WSELECTC (2: 0) 178 should be appropriately placed for the erase mode, as shown in Table I.

L'utilisateur configure ensuite à l'étape 266 le tampon de page 42, au lieu du circuit de mémoire 40 de codes, comme source d'instructions pour le dispositif de commande 24 de réseau. L'utilisateur indique ceci en plaçant USEPB 180. Pour permettre d'utiliser de cette manière le tampon de page 42, le tampon de page 42 doit être configuré sous la forme d'un plan unique à 19 bits par l'intermédiaire des bits de configuration de tampon de page, PBCONFIG(2:0), que l'utilisateur place aussi par l'intermédiaire de l'un des registres de commande. The user then configures in page 266 the page buffer 42, instead of the code memory circuit 40, as the source of instructions for the network controller 24. The user indicates this by placing USEPB 180. To allow page buffer 42 to be used in this manner, page buffer 42 must be configured as a single 19-bit map using the bits of page buffer configuration, PBCONFIG (2: 0), which the user also places via one of the command registers.

Un effacement du réseau de mémoire 100 d'instructions commence à l'étape 268 lorsque l'utilisateur émet un ordre d'effacement. L'algorithme mémorisé dans le tampon de page 42 commence ensuite 1 'exécution.  An erasure of the instruction memory array 100 begins at step 268 when the user issues an erase command. The algorithm stored in the page buffer 42 then begins execution.

Après l'achèvement de l'étape 268, l'utilisateur commence à préparer pour programmer le réseau de mémoire 100 d'instructions à l'aide de ses instructions modifiées. Comme pour l'effacement, ceci exige de configurer le tampon de page 42 pour qu'il accepte des écritures à 19 bits. Lorsque ceci est exécuté, l'utilisateur écrit dans le tampon de page 42 l'algorithme de programme. D'une manière bien connue, une programmation de cellules flash exige d'élever des lignes de mots choisies à 12 volts approximativement, d'élever des lignes de bits à 7 volts approximativement et de mettre à la masse des lignes de source. Ainsi, l'algorithme de programme doit commander selon le mode de programme du Tableau I,
ACVPSSW, ACVPYSW, ACVPWSW, ACVPXSW et GWL. Afin d'exécuter une vérification de programme, l'utilisateur doit également commander WSELECTC(2:0) pour transférer la donnée détectée aux broches 74 de données. Les algorithmes de programme sont bien connus et ne seront pas décrits de façon détaillée ici.
After the completion of step 268, the user begins to prepare to program the memory array 100 of instructions using his modified instructions. As with erasing, this requires configuring page buffer 42 to accept 19-bit writes. When this is executed, the user writes to the page buffer 42 the program algorithm. As is well known, flash cell programming requires raising selected word lines to approximately 12 volts, raising bit lines to approximately 7 volts, and grounding source lines. Thus, the program algorithm must control according to the program mode of Table I,
ACVPSSW, ACVPYSW, ACVPWSW, ACVPXSW and GWL. In order to perform program verification, the user must also command WSELECTC (2: 0) to transfer the detected data to data pins 74. Program algorithms are well known and will not be described in detail here.

L'utilisateur configure à l'étape 274 le circuit de commande de mémoire 40 de codes de la manière décrite ci-dessus en ce qui concerne l'étape 275. The user configures in step 274 the code memory control circuit 40 as described above with regard to step 275.

Puis, l'utilisateur configure de nouveau à l'étape 276 le tampon de page 42 pour qu'il fonctionne comme source de mots d'instructions, comme ci-dessus à l'étape 266. Finalement, à l'étape 278, l'utilisateur commence à émettre des ordres de programmation, un pour chaque mot d'instructions à programmer dans le réseau de mémoire 100 d'instructions. Comme pour un ordre habituel de programmation, l'ordre est un ordre à deux cycles. Pendant le premier cycle, le code d'ordre de programme est donné. Pendant le cycle suivant, l'utilisateur indique la donnée à programmer par l'intermédiaire des broches 74 et 70 et l'adresse par un sous-ensemble de broches 70. Les signaux de ces broches sont transférés des broches au réseau 100 et au trajet 50 de lecture et d'écriture de la manière appropriée.Then, the user again configures in step 276 the page buffer 42 so that it functions as a source of instruction words, as above in step 266. Finally, in step 278, the the user begins to issue programming orders, one for each word of instructions to be programmed in the memory network 100 of instructions. As with a usual programming order, the order is a two-cycle order. During the first cycle, the program order code is given. During the following cycle, the user indicates the data to be programmed via pins 74 and 70 and the address by a subset of pins 70. The signals of these pins are transferred from pins to network 100 and to the path 50 reading and writing appropriately.

Lorsque chaque mot d'instruction a été programmé dans le réseau de mémoire 100 d'instructions, il peut fonctionner de nouveau comme source de mots d'instructions pour le dispositif de commande 24 de réseau. When each instruction word has been programmed into the instruction memory array 100, it can again function as the source of instruction words for the network controller 24.

On va maintenant décrire de façon détaillée l'utilisation et la configuration du tampon de page 42. En effet, une modification du réseau de mémoire 100 d'instructions exige une commande du tampon de page 42. L'utilisateur du dispositif de mémoire doit pouvoir charger tous les plans du tampon de page 42 et ordonner son utilisation comme source d'instructions pour le dispositif de commande de réseau. We will now describe in detail the use and configuration of the page buffer 42. Indeed, a modification of the memory array 100 of instructions requires a command of the page buffer 42. The user of the memory device must be able load all plans from page 42 and order its use as a source of instructions for the network controller.

Le tampon de page 42 inclut deux plans séparés de mémoire vive statique, ou SRAM, de 256 par 8 bits: le plan A et le plan B. Le plan A et le plan B incluent chacun deux colonnes de 128 x 8 bits, la colonne A et la colonne B, et une colonne de 128 x 3 bits qui est la colonne C. La colonne A et la colonne B mémorisent des valeurs d'octets ou de mots. La colonne C mémorise les trois bits de poids fort lorsque le tampon de page 42 est en cours de configuration en vue d'une utilisation pour exécuter un algorithme. Ces bits sont parfois appelés des bits rémanents. Page buffer 42 includes two separate plans of static RAM, or SRAM, of 256 by 8 bits: plan A and plan B. Plan A and plan B each include two columns of 128 x 8 bits, the column A and column B, and a 128 x 3 bit column which is column C. Column A and column B store byte or word values. Column C stores the three most significant bits when the page buffer 42 is being configured for use in executing an algorithm. These bits are sometimes called remanent bits.

Le Tableau IV de la Figure 10 définit les modes du tampon de page 42. Table IV in Figure 10 defines the page 42 buffer modes.

En mode 0, l'accès au tampon de page 42 est invalidé. Dans ce mode, le tampon de page 42 n'est accessible ni par l'interface 100 d'utilisateur ni par le dispositif de commande 24 de réseau. In mode 0, access to page buffer 42 is disabled. In this mode, the page buffer 42 is accessible neither by the user interface 100 nor by the network controller 24.

En mode 1, le tampon de page 42 fonctionne comme source de mots d'instructions pour le dispositif de commande 24 de réseau. Le dispositif de commande 24 de réseau recherche une instruction en transférant une adresse d'instruction dans le tampon de page 42 par l'intermédiaire de ALTADD 132. Le dispositif de commande 24 de réseau reçoit du tampon de page 42 l'instruction correspondante par l'intermédiaire du bus 91. In mode 1, the page buffer 42 functions as a source of instruction words for the network controller 24. The network controller 24 searches for an instruction by transferring an instruction address to the page buffer 42 via ALTADD 132. The network controller 24 receives the corresponding instruction from the page buffer 42 by the via bus 91.

En mode 2, le circuit 22 d'interface lit le tampon de page 42 en mode d'utilisateur. Le circuit d'interface 22 reçoit un ordre de lecture de tampon de page par l'intermédiaire des broches 70, 72, 74. In mode 2, the interface circuit 22 reads the page buffer 42 in user mode. Interface circuit 22 receives a page buffer read command via pins 70, 72, 74.

L'ordre de lecture de tampon de page spécifie une adresse de lecture pour le tampon de page 42.The page buffer read order specifies a read address for page buffer 42.

L'interface 22 d'utilisateur transfère l'adresse de lecture au tampon de page 42 par l'intermédiaire du bus 47. Le tampon de page 42 transfère la donnée de lecture correspondante par l'intermédiaire du bus 43 de donnée de tampon de page. L'interface 22 d'utilisateur amène le multiplexeur à transférer la donnée lue par l'intermédiaire de la broche 74. The user interface 22 transfers the read address to the page buffer 42 via the bus 47. The page buffer 42 transfers the corresponding read data via the page buffer data bus 43 . The user interface 22 causes the multiplexer to transfer the data read via pin 74.

En mode 3, l'interface 22 d'utilisateur écrit dans le tampon de page 42 en mode d'utilisateur. In mode 3, the user interface 22 writes to the page buffer 42 in user mode.

En mode 4, le dispositif de commande 24 de réseau lit dans le tampon de page 42 en mode utilisateur. Par exemple, le dispositif de commande 24 de réseau lit une donnée de programmation dans le tampon de page 42 pendant un programme où le tampon de page est en fonctionnement. In mode 4, the network controller 24 reads from the page buffer 42 in user mode. For example, the network controller 24 reads programming data from the page buffer 42 during a program in which the page buffer is in operation.

En mode 5, le dispositif de commande 24 de réseau écrit dans le tampon de page 40 en mode d'utilisateur. In mode 5, the network controller 24 writes to the page buffer 40 in user mode.

En mode 6, l'interface 22 d'utilisateur lit le tapon de page 42 sous forme d'un espace de mémoire étendu de 19 bits. In mode 6, the user interface 22 reads the page tap 42 in the form of an extended memory space of 19 bits.

En mode 7, l'interface 22 d'utilisateur écrit dans le tampon de page 42 en tant qu'espace de mémoire de 19 bits. C'est dans ce mode que l'utilisateur écrit dans le tampon de page 42 en programmant les programmes pour le réseau de mémoire 100 de commande et en effaçant ce réseau. L'interface 22 d'utilisateur reçoit, par l'intermédiaire des broches 70, 72 et 74, un ordre d'écriture dans le tampon de page qui spécifie une adresse d'écriture et une valeur donnée d'écriture. L'interface d'utilisateur transfère par le bus 47 l'adresse d'écriture au tampon de page 42. Le tampon de page 42 reçoit la valeur de donnée d'écriture par l'intermédiaire des broches de donnée 74. In mode 7, the user interface 22 writes to the page buffer 42 as 19-bit memory space. It is in this mode that the user writes to the page buffer 42 by programming the programs for the command memory network 100 and by erasing this network. The user interface 22 receives, via pins 70, 72 and 74, a write order in the page buffer which specifies a write address and a given write value. The user interface transfers via the bus 47 the write address to the page buffer 42. The page buffer 42 receives the write data value via the data pins 74.

La Figure 11 illustre l'implantation d'adresses du tampon de page 42 pour chaque mode. En mode 1, tout le tampon de page 42, qui inclut les colonnes A, B et
C du plan A 310 et les colonnes A, B et C du plan B 320, est implanté pour former une mémoire de commande de 256 x 19 bits. En mode 1, le tampon de page 42 remplace le circuit de mémoire 40 de codes comme source de mots d'instructions pour le dispositif de commande 24 de réseau. Il faut noter que le tampon de page 42 mémorise de préférence 256 mots d'instructions dans ce mode.
Figure 11 illustrates the layout of addresses for page buffer 42 for each mode. In mode 1, the whole page buffer 42, which includes columns A, B and
C of plane A 310 and columns A, B and C of plane B 320, is installed to form a control memory of 256 x 19 bits. In mode 1, the page buffer 42 replaces the code memory circuit 40 as the source of instruction words for the network controller 24. It should be noted that the page buffer 42 preferably stores 256 instruction words in this mode.

Dans les modes 2 à 5, le tampon de page 42 est implanté pour former deux plans indépendants: le PLAN
A et le PLAN B. Le PLAN A et le PLAN B contiennent chacun 256 fois 8 bits. Dans les modes 2 à 5, l'interface 22 d'utilisateur coordonne un accès au
PLAN A et au PLAN B selon des ordres reçus par l'intermédiaire des broches 70, 72 et 74. Le circuit 22 d'interface d'utilisateur assure que lui-meme et le dispositif de commande 24 de réseau n'accèdent pas tous deux au même plan.
In modes 2 to 5, the page 42 buffer is installed to form two independent planes: the PLAN
A and PLAN B. PLAN A and PLAN B each contain 256 times 8 bits. In modes 2 to 5, the user interface 22 coordinates access to the
PLAN A and PLAN B according to orders received via pins 70, 72 and 74. The user interface circuit 22 ensures that he and the network controller 24 do not both access on the same level.

En modes 6 et 7, le PLAN A et le PLAN B sont implantés de manière à former un espace de mémoire étendu contigu. L'espace de mémoire étendu inclut les colonnes A, B et C du plan A et les colonnes A, B et C du plan B. Les modes 6 et 7 comprennent des modes spéciaux destinés à écrire des mots d'instructions dans le tampon de page 42, en vue d'une utilisation ultérieure par le dispositif de commande 24 de réseau. In modes 6 and 7, PLAN A and PLAN B are installed so as to form a contiguous extended memory space. The extended memory space includes columns A, B and C of plane A and columns A, B and C of plane B. Modes 6 and 7 include special modes for writing instruction words to the buffer. page 42, for later use by the network controller 24.

Des signaux spéciaux de commande de mode commandent le mode du tampon de page 42. Ces signaux incluent USEPB et PBCONFIG(2:0). Comme indiqué précédemment, l'utilisateur peut placer ces signaux à volonté en accédant aux registres 26 de commandes. Special mode control signals control the mode of the page 42 buffer. These signals include USEPB and PBCONFIG (2: 0). As indicated previously, the user can place these signals at will by accessing the command registers 26.

USEPB détermine si le tapon de page 42 fonctionne comme mémoire de commande pour le dispositif de commande 24 de réseau. PBCONFIG(2:0) détermine le mode dans lequel le tampon de page 42 fonctionne.USEPB determines whether the page tap 42 works as a control memory for the network controller 24. PBCONFIG (2: 0) determines the mode in which the page 42 buffer operates.

La Figure 12 illustre les champs de bits d'adresses pour l'accès au tampon de page 42. Figure 12 illustrates the address bit fields for accessing page buffer 42.

Le bit d'adresse A9 choisit la colonne C du plan
A et du plan B dans les modes 1, 6 et 7. Le bit d'adresse A8 fonctionne comme signal de choix de plan pour choisir, soit le plan A, soit le plan B. Les bits d'adresses A7 à Al choisissent une rangée à l'intérieur du plan choisi. Chaque rangée inclut 16 bits, définis comme octet inférieur et octet supérieur. Le bit A10 d'adresse choisit soit l'octet supérieur, soit l'octet inférieur d'une rangée. Ainsi, on voit qu'une écriture d'un mot d'instruction unique de 19 bits dans le tampon de page 42 en mode 7 exige 3 opérations. I1 faut une écriture pour charger les 8 bits inférieurs du mot d'instruction. I1 faut une autre écriture pour charger les 8 bits suivants,
IW(15:8), et une troisième pour charger les bits rémanents.
Address bit A9 chooses column C of the plan
A and plane B in modes 1, 6 and 7. The address bit A8 functions as the plane choice signal for choosing either plane A or plane B. The address bits A7 to A1 choose a row inside the chosen plan. Each row includes 16 bits, defined as lower byte and upper byte. The address bit A10 chooses either the upper byte or the lower byte of a row. Thus, it can be seen that writing a single 19-bit instruction word to the page buffer 42 in mode 7 requires 3 operations. A write is required to load the lower 8 bits of the instruction word. Another write is required to load the next 8 bits,
IW (15: 8), and a third to load the retentive bits.

Le tampon de page 42 inclut un détecteur de mode qui détermine son mode. The page buffer 42 includes a mode sensor which determines its mode.

On va maintenant décrire, finalement, l'ordinateur personnel du présent mode de réalisation. We will now describe, finally, the personal computer of this embodiment.

La Figure 13 illustre sous forme de schéma fonctionnel un ordinateur personnel 400. L'ordinateur personnel 400 inclut une unité centrale de traitement, ou UCT, 402 et un moniteur 404 pour afficher visuellement l'information à un utilisateur de l'ordinateur. Un clavier 406 permet à l'utilisateur de l'ordinateur d'entrer une donnée dans l'unité centrale de traitement 402. En déplaçant une souris 408, l'utilisateur de l'ordinateur peut déplacer un indicateur affiché sur le moniteur. L'utilisateur de l'ordinateur peut aussi entrer une donnée pour l'unité centrale de traitement 402 par l'intermédiaire d'une tablette 409 à base de stylet. L'utilisateur "écrit" sur la tablette 409 en utilisant une pointe, une baguette, un stylet ou un autre dispositif manuel. La tablette 409 mémorise la donnée qui y est écrite jusqu'à ce qu'elle puisse la charger dans l'unité centrale de traitement 402. La mémoire 410 mémorise la donnée utilisée par l'unité centrale de traitement. La mémoire 410 inclut typiquement une unité de disque magnétique en vue d'une mémorisation dans une mémoire de masse. La mémoire 410 inclut aussi typiquement des dispositifs de mémoires non volatiles 20 à semiconducteur pour memoriser des données auxquelles l'accès doit être fréquent et rapide. Les dispositifs de mémoire 20 incluent le circuit de mémoire 40 de codes. Figure 13 illustrates in block diagram form a personal computer 400. The personal computer 400 includes a central processing unit, or CPU, 402 and a monitor 404 for visually displaying information to a user of the computer. A keyboard 406 allows the computer user to enter data into the central processing unit 402. By moving a mouse 408, the computer user can move an indicator displayed on the monitor. The computer user can also enter data for the central processing unit 402 via a pen-based tablet 409. The user "writes" to the tablet 409 using a point, wand, stylus or other manual device. The tablet 409 stores the data written therein until it can load it into the central processing unit 402. The memory 410 stores the data used by the central processing unit. The memory 410 typically includes a magnetic disk drive for storage in a mass memory. The memory 410 also typically includes semiconductor non-volatile memory devices 20 for storing data to which access must be frequent and rapid. The memory devices 20 include the memory circuit 40 of codes.

Dans le présent document, l'invention a été décrite en référence à des modes de réalisation spécifiques donnés à titre d'exemple. I1 est cependant évident que diverses modifications et variantes peuvent y être apportées sans s'écarter de l'esprit et du cadre plus larges de l'invention exposés dans les revendications annexées. La présente description, y compris les dessins, doit donc être regardée comme donnée à titre d'illustration et non dans un sens restrictif.  In the present document, the invention has been described with reference to specific embodiments given by way of example. It is however obvious that various modifications and variations can be made thereto without departing from the broader spirit and scope of the invention set out in the appended claims. The present description, including the drawings, should therefore be regarded as given by way of illustration and not in a restrictive sense.

Claims (3)

REVENDICATIONS 1. Procédé de modification d'instructions mémorisées dans un circuit de mémoire (40) de codes, les instructions donnant des directives à un dispositif de commande (24) de réseau pour programmer et effacer un réseau (28) de mémoire principale non volatile, le circuit de mémoire (40) de codes incluant un réseau de mémoire non volatile (100) d'instructions, le réseau de mémoire (100) d'instructions mémorisant les instructions, 1. Method for modifying instructions stored in a memory circuit (40) of codes, the instructions giving directives to a network control device (24) for programming and erasing a network (28) of non-volatile main memory, the code memory circuit (40) including a non-volatile memory network (100) of instructions, the memory memory network (100) of instructions storing the instructions, caractérisé en ce qu'il comprend les étapes consistant à: characterized in that it comprises the stages consisting in: a. mémoriser dans un tampon de page (42) un programme de modification des instructions de la mémoire de programme; at. storing in a page buffer (42) a program for modifying the instructions of the program memory; b. valider le tampon de page (42) pour qu'il serve de source d'instructions pour le dispositif de commande (24) de réseau; b. enabling the page buffer (42) to serve as a source of instructions for the network controller (24); c. exécuter les instructions du tampon de page (42) afin de modifier les instructions mémorisées dans le circuit de mémoire (40) de codes. vs. executing the instructions from the page buffer (42) to modify the instructions stored in the code memory circuit (40). 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'étape consistant à: 2. Method according to claim 1, characterized in that it further comprises the step consisting in: d. Placer le circuit de mémoire (40) de codes en un deuxième mode dans lequel il peut être modifié. d. Place the code memory circuit (40) in a second mode in which it can be modified. 3. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'étape consistant å:  3. Method according to claim 1, characterized in that it further comprises the step consisting of: e. Configurer le tampon de page (42) pour mémoriser des instructions.  e. Configure the page buffer (42) to store instructions.
FR9501929A 1993-10-26 1995-02-20 Programmable code memory circuit for flash memory. Expired - Fee Related FR2714513B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14269093A 1993-10-26 1993-10-26
FR9412595A FR2711834B1 (en) 1993-10-26 1994-10-21 Programmable code memory circuit for flash memory.

Publications (2)

Publication Number Publication Date
FR2714513A1 true FR2714513A1 (en) 1995-06-30
FR2714513B1 FR2714513B1 (en) 1997-11-21

Family

ID=26231487

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9501929A Expired - Fee Related FR2714513B1 (en) 1993-10-26 1995-02-20 Programmable code memory circuit for flash memory.

Country Status (1)

Country Link
FR (1) FR2714513B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2605785A1 (en) * 1986-10-24 1988-04-29 Hitachi Ltd Semiconductor integrated-circuit device including a microprocessor and a programable ROM memory
JPH03186927A (en) * 1989-12-18 1991-08-14 Olympus Optical Co Ltd Program alteration device for microcomputer
US5357627A (en) * 1989-03-28 1994-10-18 Olympus Optical Co., Ltd. Microcomputer having a program correction function

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2605785A1 (en) * 1986-10-24 1988-04-29 Hitachi Ltd Semiconductor integrated-circuit device including a microprocessor and a programable ROM memory
US5357627A (en) * 1989-03-28 1994-10-18 Olympus Optical Co., Ltd. Microcomputer having a program correction function
JPH03186927A (en) * 1989-12-18 1991-08-14 Olympus Optical Co Ltd Program alteration device for microcomputer

Also Published As

Publication number Publication date
FR2714513B1 (en) 1997-11-21

Similar Documents

Publication Publication Date Title
FR2711834A1 (en) Programmable code memory circuit for flash memory.
EP1342244B1 (en) Page-erasable flash memory
TW451481B (en) Nonvolatile semiconductor memory device
FR2627315A1 (en) METHOD FOR PRECONDITIONING, ERASING AND / OR PROGRAMMING AN EEPROM MEMORY COMPONENT
EP1111621B1 (en) Page programmable flash memory
US7307890B2 (en) Method for operating page buffer of nonvolatile memory device
EP1988549B1 (en) Non-volatile memory with partial deletion
US5526311A (en) Method and circuitry for enabling and permanently disabling test mode access in a flash memory device
EP0018889A1 (en) Process for prolonging the validity of the memory working zone of a data carrier
US7085189B2 (en) Nonvolatile semiconductor storage device
FR2816750A1 (en) Flash memory and method for data storage, comprising circuits for control of threshold voltage of memory cells and reprogramming when below set verification value
EP3293637A1 (en) Index management in a flash memory
JP2002050199A (en) Non-volatile semiconductor memory having testing function
FR3006491A1 (en) WRITING PROCESS IN AN EEPROM TYPE MEMORY INCLUDING REFRESHING OF MEMORY CELLS
FR2627316A1 (en) MEMORY EEPROM "FLASH" A PROCESSOR OF CONTROL OF THE PORT OF ORDERS
JP3789977B2 (en) Nonvolatile semiconductor memory device
FR2718559A1 (en) Nonvolatile electrically modifiable memory incorporating test functions.
EP0394115A1 (en) Apparatus for speeding-up memory accesses in a computer system
FR2714513A1 (en) Non-volatile memory e.g. flash EEPROM
CN110175135A (en) Memory device
EP0606796B1 (en) Method of uniformly programming an electrically programmable memory and memory using the method
EP0875899B1 (en) Arrangement of two memories on the same monolithic integrated circuit
EP1085520B1 (en) Page mode writing method for an EEPROM and corresponding circuitry
JPH10199263A (en) Non-volatile semiconductor memory device
JPH113594A (en) Non-volatile memory, data writing and read method

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20130628