Brevet FR2711834A1 — publié le 19950505

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. 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. 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 éle- vées en utilisant des cellules à transistor unique. Cer- taines 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. Il en résulte un effacement de tout le réseau. 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'état effacé. 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. Il n'est donc pas possible d'ajouter une fonctionnalité à un dispositif de mémoire après sa fabrication. 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. 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. 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. 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. 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. Le circuit d'interface de réseau principal peut comprendre de multiples portes de passage. 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. 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; ) 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. 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. 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. 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. 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. Le circuit d'interface de réseau principal peut comprendre de multiples portes de passage. Le circuit de mémoire de codes peut donc inclure aussi de nombreux circuits de support, cités ci- dessus. 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. 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. 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. 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. 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é. Le procédé peut comprendre en outre l'étape consistant à: e. Configurer le tampon de page pour mémoriser des 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. Il 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'écriture pour permettre la programmation et la vérification. 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. 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. 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. La Figure 2 est un schéma fonctionnel du dispositif de commande de réseau. La Figure 3 est un schéma fonctionnel du circuit de mémoire de codes. La Figure 4 illustre le Tableau I, qui définit les modes du circuit de mémoire de codes. La Figure 5 illustre le circuit de mise à la masse de colonnes. La Figure 6 illustre le Tableau II, qui définit le fonctionnement de la logique de décodage de mise à la masse de colonnes. La Figure 7A est un schéma fonctionnel du circuit de trajet de détection. 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. La Figure 8 est un schéma fonctionnel du circuit d'interface de réseau principal. 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. La Figure 10 illustre le Tableau IV, qui définit les modes du tampon de page. La Figure 11 illustre l'implantation d'adresses du tampon de page dans ses divers modes. La Figure 12 illustre les champs de bits d'adresses pour adresser le tampon de page. 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é. 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. 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 de lecture et d'écriture. 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. 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. 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. il 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. 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. 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. 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. 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. 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. 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é. 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. 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. 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. Selon un mode de réalisation préféré, le tampon de page 42 est un réseau de mémoire de 128xl9x2 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. 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 contigue. 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 l'ordinateur personnel. 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. Le dispositif de commande 24 de réseau exécute des algorithmes mémorisés dans le circuit de mémoire 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. 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 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. 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. 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. 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. 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. On va maintenant décrire le circuit de mémoire de codes. La Figure 3illustre 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 non- lecture. Par conséquent, une modification d'algorithme n'exige aucune modification du matériel compris à l'intérieur du dispositif de mémoire 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 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. 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 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 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émoire 100 d'instructions par l'intermédiaire du trajet 50 de lecture et d'écriture exige un certain nombre de cycles parce que le trajet de lecture et d'écriture n'inclut que 16 circuits de détection et 16 charges de programme. Par conséquent, il n'est possible de lire à la fois que 8 bits et leurs compléments dans le réseau de mémoire d'instructions. Le réseau de mémoire 100 d'instructions mémorise de préférence 2048 mots d'instructions dont la largeur est de 19 bits pour chacun d'eux. Le réseau de mémoire d'instructions utilise de préférence deux cellules de mémoire flash pour mémoriser chaque bit d'un mot d'instruction; il est cependant évident pour l'homme de l'art que le réseau de mémoire 100 de commande peut également être réalisé en utilisant une seule cellule par bit de donnée. Un avantage de la mémorisation de la valeur réelle de chaque bit et de son complément est que chaque bit du mot d'instruction peut être détecté sans utiliser de tensions de référence. Les 77. 824 cellules de mémoire flash nécessaires selon cette approche sont de préférence organisées en 152 lignes de bits et 512 lignes de mots. Les 512 lignes de bits sont organisées sous la forme de 76 colonnes vraies et 76 colonnes complémentaires. Des liaisons de sources divisent le réseau de mémoire 100 de commande 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. Les 512 lignes de mots sont organisées en 256 lignes de mots pairs et 256 lignes de mots impaires. 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 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. 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. 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. 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. 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. 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. 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. 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 dixneuf 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. 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. 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. 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 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. 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. 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. 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. 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. 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). 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. 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 , 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. 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. 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. 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 , 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. 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. 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. 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. 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. 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). 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. 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. 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 l'exécution. 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. 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. 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. 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. 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 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. 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. Le Tableau IV de la Figure 10 définit les modes du tampon de page 42. 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. 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. 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. L'ordre de lecture de tampon de page spécifie une adresse de lecture pour le tampon de page 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. En mode 3, l'interface 22 d'utilisateur écrit dans le tampon de page 42 en mode d'utilisateur. 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. En mode 5, le dispositif de commande 24 de réseau écrit dans le tampon de page 40 en mode d'utilisateur. 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. 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. 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. 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-même et le dispositif de commande 24 de réseau n'accèdent pas tous deux au même plan. 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 lescolonnes 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. 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. 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. La Figure 12 illustre les champs de bits d'adresses pour l'accès au tampon de page 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 à A1 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. Il faut une écriture pour charger les 8 bits inférieurs du mot d'instruction. Il faut une autre écriture pour charger les 8 bits suivants, IW(15:8), et une troisième pour charger les bits rémanents. Le tampon de page 42 inclut un détecteur de mode qui détermine son mode. On va maintenant décrire, finalement, l'ordinateur personnel du présent mode de réalisation. * 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 à semi- conducteur pour mémoriser 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. 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. Il 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. REVENDICATIONS 1. Circuit programmable de mémoire (40) de codes inclus dans un dispositif de commande (24) de réseau, caractérisé en ce que le dispositif de commande (24) de réseau programme et efface un réseau (28) de mémoire principale non volatile en fonction d'instructions mémorisées dans le circuit de mémoire (40) de codes, le dispositif de commande (24) de réseau inclut un compteur (92) destiné à engendrer une première adresse pour rechercher une instruction, le réseau (28) de mémoire principale inclut un trajet (50) de lecture et d'écriture pour programmer et lire des cellules de mémoire, et en ce que le circuit de mémoire (40) de codes comprend: a. une mémoire non volatile (100) d'instructions pour mémoriser des instructions de programmation et d'effacement du réseau (28) de mémoire principale; b. un circuit de décodage (104, 108) d'adresses pour adresser une première instruction dans le réseau de mémoire (100) d'instructions en réponse à une adresse de réseau, le circuit de décodage (104, 108) d'adresses produisant un signal d'instruction; c. un multiplexeur (102) 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 (112) de détection pour détecter les instructions dans le premier mode en réponse au signal d'instruction; e. un circuit d'interface (110) de mémoire principale pour coupler le signal d'instruction au trajet (50) de lecture et d'écriture dans le deuxième mode. 2. Circuit de mémoire (40) de codes selon la revendication 1, caractérisé en ce que la mémoire (100) d'instructions inclut 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 (104, 108) d'adresses comprend: a. un décodeur X (104) 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 (108) pour adresser une colonne de cellules de mémoire en réponse à l'adresse de réseau. 3. Circuit de mémoire (40) de codes selon la revendication 2, caractérisé en ce qu'il comprend: a. un circuit (106) d'exclusion de choix pour exclure le choix de colonnes de cellules de mémoire en réponse à l'adresse de réseau. 4. Circuit de mémoire (40) de codes selon la revendication 1, caractérisé en ce qu'il comprend: a. un générateur de tension (114, 116) pour engendrer des tensions pour le circuit de décodage (104, 108) d'adresses. 5. Circuit de mémoire (40) de codes selon la revendication 1, caractérisé en ce que le circuit d'interface (110) de réseau principal comprend de multiples portes de passage. 6. Circuit de mémoire (40) de codes selon la revendication 1, caractérisé en ce que la donnée d'instruction inclut une série de bits et chaque bit est mémorisé dans le réseau de mémoire (100) d'instructions en utilisant deux cellules de mémoire. 7. Dispositif (20) de mémoire non volatile caractérisé en ce qu'il comprend: a. un réseau (28) de mémoire principale non volatile pour mémoriser des données d'utilisateur; b. un trajet (50) de lecture et d'écriture couplé au réseau (28) de mémoire principale; c. un dispositif de commande (24) 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 (24) de réseau incluant un circuit de mémoire (40) de codes, le circuit de mémoire (40) de codes recherchant les instructions dans un premier mode, le circuit de mémoire (40) de codes pouvant être modifié dans un deuxième mode, et en ce que le circuit de mémoire (40) de codes comprend: 1) un réseau de mémoire non volatile (100) d'instructions pour mémoriser des instructions; 2) un circuit de décodage (104, 108) d'adresses pour adresser une première instruction dans le réseau de mémoire (100) d'instructions en réponse à une adresse de réseau, le circuit de décodage (104, 108) d'adresses produisant un signal d'instruction; 3) un multiplexeur (102) 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 (112) de détection pour produire la première instruction dans le premier mode en réponse au signal d'instruction; ) un circuit d'interface (110) de réseau principal pour coupler les signaux d'instructions au trajet (50) de lecture et d'écriture dans le deuxième mode; et d. Un tampon de page (42) qui fournit des instructions au dispositif de commande (24) de réseau dans le deuxième mode, les instructions mémorisées dans le tampon de page (42) amenant le dispositif de commande (24) de réseau à modifier le réseau de mémoire (100) d'instructions. 8. Dispositif (20) de mémoire non volatile selon la revendication 7, caractérisé en ce qu'il comprend en outre: d. Un circuit de registre (26) de commande pour mémoriser des signaux de commande afin de placer la mémoire (40) de codes dans le deuxième mode et le premier mode. 9. Dispositif (20) de mémoire non volatile selon la revendication 8, caractérisé en ce que: les signaux de commande sont commandés par l'utilisateur du dispositif (20) de mémoire non volatile. 10. Dispositif (20) de mémoire non volatile selon la revendication 7, caractérisé en ce que le réseau de mémoire (100) d'instructions inclut 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 (104, 108) d'adresses comprend: a. un décodeur X (104) 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 (108) pour adresser une colonne de cellules de mémoire en réponse à l'adresse de réseau. 11. Dispositif (20) de mémoire non volatile selon la revendication 10, caractérisé en ce qu'il comprend: c. un circuit (106) d'exclusion de choix pour exclure le choix de colonnes de cellules de mémoire en réponse à l'adresse de réseau. 12. Dispositif (20) de mémoire non volatile selon la revendication 7, caractérisé en ce qu'il comprend: a. un générateur de tension (114, 116) pour engendrer des tensions pour le circuit de décodage (104, 108) d'adresses. 13. Dispositif (20) de mémoire non volatile selon la revendication 7, caractérisé en ce que le circuit d'interface (110) de réseau principal comprend de multiples portes de passage.