FR 2627315 A1 19890818 FR 8815691 A 19881130 1 2627315 La présente invention concerne le domaine des mémoires mortes électriquement programmables et électriquement effaçables ou EEPROMs (Electrically Erasable Programmable Read-Only Memories) en technologie MOS (Métal-Oxyde- Semiconducteur), ainsi que les mémoires mortes électriquement programmables ou EPROMs (Electrically Programmable Read-Only Memories) à grille flottante. La cellule EPROM la plus couramment utilisée possède une grille électrique flottante entièrement entourée d'un isolant et placée généralement entre une région de source et une région de drain formée dans un substrat de silicium. Dans les premières versions de ces cellules, la charge était injectée au travers de l'isolant par injection par effet d'avalanche, comme dans le composant décrit dans le US-A-3 660 819. Les versions ultérieures des EPROMs utilisaient l'injection par effet de canal pour charger la grille flottante, comme décrit dans les US-A-4 142 926, US-A-4 114 255 et US-A-4 412 310. Ces EPROMs sont effacées en exposant le réseau à un rayonnement ultraviolet. Les EPROMs électriquement effaçables ou EEPROMs sont également disponibles dans le commerce. Dans certains cas, on place la charge dans la grille flottante et on l'en retire en soumettant la charge à un effet tunnel au travers d'une mince région d'oxyde formée sur le substrat (voir le US-A-4 203 158). Dans d'autres cas de figure, on élimine la charge par l'intermédiaire d'une électrode supérieure (voir le US-A-4 099 196). Ces cellules EEPROM ne permettent pas de réduire la taille de substrat nécessaire, comme c'est le cas pour les cellules EPROM. On a mis en oeuvre diverses techniques pour réduire la taille du réseau de mémoire, en prévoyant des cellules de plus grande densité. L'une de ces techniques est décrite dans le US-A-4 432 075. En outre, le US-A-4 266 283 décrit la configuration en réseau d'une EEPROM et la sélection des diverses fonctions à exécuter sur le réseau de mémoire. Le plus souvent, on retire de leurs circuits imprimés les mémoires EPROM pour à la fois les effacer et les programmer. 2 2627315 On utilise un appareil de programmation particulier pour programmer les cellules. Cet appareil vérifie également que les cellules ont été correctement effacées et programmées. Pendant la programmation, on transfère des électrons à la grille flottante, ce qui les rend les cellules moins conductrices. Le fonctionnement de ces composants EPROM est bien connu. Les EEPROMs diffèrent des EPROMs en ce que les EEPROMs, typiquement, sont programmées et effacées en les laissant en place dans le circuit (par exemple, la carte de circuit imprimé) qui est utilisé pour lire les données dans la mémoire. En d'autres termes, on n'utilise pas d'appareil de programmation particulier. Dans certains cas, on utilise des circuits "embarqués", internes à la puce, pour vérifier que la programmation a été correctement exécutée. Le US-A-4 460 982 décrit une EEPROM intelligente qui dispose de moyens permettant aussi bien la programmation que l'effacement. Plus récemment, une nouvelle catégorie d'EPROMs électriquement effaçables (EEPROMs) a vu le jour, ces composants étant quelques fois appelés EEPROMs ou EPROMs "flash". Dans ces mémoires flash, on efface en un seule fois, électriquement, la totalité du réseau. Quant aux cellules, elles utilisent un composant unique par cellule, chaque cellule étant décrite notamment dans une demande de brevet US déposée le 4 août 1986 sous le numéro 892 446 et intitulée Low Voltage EEPROM Cell (cellule EEPROM basse tension). Un autre document pertinent est un article de Masuoka et al. intitulé A 256-kbit Flash E2PROM Using TriplePolysilicon Technology publié dans leIEEE Journal of Solid-State Circuits, volume SC-22, n 4 d'août 1987. La présente invention concerne l'utilisation de telles cellules. Les composants de mémoire flash effaçables électriquement soulèvent un autre problème, à savoir le sureffacement. Il se peut que l'on retire trop de charge, ce qui rend le composant comme s'il était en déplétion. On peut avoir besoin de tester les cellules après les avoir effacées pour vérifier que la grille flottante est effacée mais n'est pas trop positivement chargée. On rencontre un autre problème lorsque l'on effectue un effacement en circuit des mémoires flash. On a besoin de lignes supplémentaires de signaux et d'ordres pour permettre l'effacement et la programmation de la mémoire flash. Généralement, des lignes supplémentaires, qui nécessitent des broches supplémentaires d'une puce mémoire, ne posent pas de problème lorsque l'on conçoit de nouveaux circuits, de nouvelles cartes, de nouveaux systèmes, etc. Cependant, pour les mémoires flash que l'on doit utiliser à la place des EPROMs ou des EEPROMs existantes, la compatibilité broche à broche est une nécessite absolue. Du fait que l'ôn a besoin de lignes de contrôle supplémentaires pour l'effacement et la programmation, on ne peut pas avoir de compatibilité broche à broche, sauf à exécuter certaines modifications d'architecture à l'intérieur du composant de mémoire flash pour permettre l'effacement et la reprogrammation. La présente invention propose une architecture du port d'ordres permettant la programmation et l'effacement de composants de mémoire flash par un port de données. Pour permettre, en circuit, l'effacement, la programmation et la vérification d'effacement/programmation, on incorpore des moyens formant circuit à la même puce à semiconducteurs que celle qui contient la mémoire. Un contrôleur de port d'ordres est monté de manière à recevoir des instructions en provenance d'une ligne de données reliée à un processeur associé. Les instructions que l'on écrit dans le contrôleur du port d'ordres permettent de disposer des ordres nécessaires à la production de signaux de contrôle pour l'effacement et la programmation de la mémoire ainsi que pour la vérification du contenu après que les opérations d'effacement et de programmation aient été exécutées. Le port d'ordres est formé d'un contrôleur de port d'ordres, de registres de donnée reliés à un bus de données recevant des données de programmation et de registres d'adresse reliés au bus d'adresses, recevant des informations d'adresse au cours de la programmation et de la vérification. Le contrôleur de port d'ordres est formé de registres d'ordre et d'état reliés au bus de données pour recevoir des instructions d'ordre en provenance d'un microprocesseur, de générateurs d'horloge permettant de réaliser le séquencement nécessaire et d'un décodeur d'états pour décoder les instructions introduites dans les registres d'ordre et d'état. En outre, le contrôleur permet de disposer d'un algorithme d'effacement et d'un algorithme de programmation pour effacer et programmer la mémoire. L'algorithme d'effacement fournit les tensions nécessaires à l'effacement des cellules de la mémoire flash puis vérifie que la mémoire est effacée. Le cycle d'effacement est surveillé et répété à chaque impulsion d'effacement avec une largeur d'impulsion prédéterminée, que l'on augmente jusqu'à obtenir l'effacement. Cependant, on signale une erreur lorsque l'on atteint pour l'impulsion une valeur de compte maximale et que l'on n'a pas obtenu l'effacement total de la mémoire. De façon équivalente, au cours de la programmation de la mémoire, l'algorithme permet la programmation de chaque position de la mémoire et la vérification de son contenu après programmation. Le cycle de programmation est surveillé et répété avec chaque impulsion de programmation avec une largeur d'impulsion prédéterminée jusqu'à obtenir la programmation. Cependant, si on ne peut pas obtenir la programmation après avoir atteint pour l'impulsion une valeur de compte maximale prédéterminée, on signale dans ce cas une erreur de programmation. On va maintenant décrire, à titre d'exemple, un mode de réalisation détaillé de l'invention. Sur les dessins: - la figure 1 est un diagramme par blocs schématique d'un composant de mémoire flash selon la présente invention, - la figure 2 est un diagramme par blocs schématique d'un contrôleur de port d'ordres selon la présente invention, - la figure 3 est un chronogramme d'un cycle de lecture selon la présente invention, 2627315 - la figure 4 est un chronogramme d'un cycle d'effacement selon la présente invention, - la figure 5 est un chronogramme d'un cycle de programmation selon la présente invention, - la figure 6 est un organigramme d'un cycle d'effacement selon la présente invention, - la figure 7 est un organigramme d'un algorithme de programmation selon la présente invention, et - les figures 8a, 8b, 8c, 8d et 8e constituent un diagramme schématique du contrôleur de port d'ordres illustré figure 2. On va décrire une architecture de port d'ordres qui permet le contrôle par microprocesseur des modes de programmation, d'effacement, de vérification de programmation, de vérification d'effacement et de lecture avec une mémoire flash. Dans la description qui va suivre, on donnera un certain nombre de détails particuliers, tels que des configurations de circuits particulières, des composants particuliers, etc. pour permettre une compréhension complète de la présente invention. Il est cependant bien évident pour l'homme du métier que la présente invention peut être mise en oeuvre sans ces détails particuliers. Inversement, des processus, des architectures et des circuits bien connus n'ont pas été-décrits en détail pour ne pas alourdir inutilement la description de la présente invention. Le mode de réalisation préféré de la présente invention est mis en oeuvre à propos d'une mémoire flash programmable électriquement effaçable à transistor unique à double polysilicium, également appelée EPROM flash. Il s'agit d'une mémoire flash non volatile à grande densité, optimisée pour pouvoir être reprogrammée sous le contrôle d'un microprocesseur. Cette EPROM flash particulière utilise une technologie avancée CMOS 1,5 pm, ce qui donne un réseau de 32768 x 8 bits de cellules de 6 gm sur 6 Im réalisées sur une ébauche de 4,88 mm (192 mils) de côté. Bien que l'on décrive une EPROM flash de 256 Kbit particulière, on notera que l'on pourrait utiliser la présente invention avec d'autres tailles de mémoire et d'autres technologies de mémoire. L'EPROM flash non volatile de la présente invention est basée sur la technologie EPROM. La cellule de mémoire utilise un mode de programmation équivalent à celui d'une EPROM, mais peut être effacée électriquement. L'effacement électrique de la mémoire flash est réalisé au moyen d'un oxyde de haute qualité permettant l'effet tunnel, sous une cellule à transistor unique et grille flottante en polysilicium. La cellule flash nécessite une alimentation en 12 V pour l'effacement et la programmation. Le processus d'effacement utilise l'effet tunnel de Fowler-Nordheim pour déplacer des électrons depuis la grille flottante vers la jonction de source de la cellule. La programmation est réalisée de manière classique pour une EPROM, par injection d'électrons chauds depuis la jonction de drain de la cellule vers la grille flottante. La cellule EPROM flash utilisée par la présente invention est décrite dans les documents d'art antérieur cités au début de la présente description. Si l'on n'utilise pas de circuit spécialisé, on ne peut pas obtenir de compatibilité broche à broche directe entre L'EPROM flash et les composants de mémoire de l'art antérieur. Pour conserver une compatibilité broche à broche entre L'EPROM flash et le composant EPRQM de l'art antérieur, la présente invention propose une architecture de port d'ordres spécialisé qui permet l'effacement et la programmation en circuit. L'architecture du port de la présente invention permet un contrôle par microprocesseur des modes de programmation, d'effacement, de vérification de programmation/d'effacement et de lecture, tout en conservant une compatibilité broche à broche avec les EPROMs ou EEPROMs de l'art antérieur. Cette architecture spécialisée est mise en oeuvre dans un circuit incorporé à la puce à semiconducteurs contenant la mémoire flash. Si l'on se réfère à la figure 1, on y a représenté un composant semiconducteur d'EPROM flash 10 selon la présente invention. Un bus d'adresse 12 applique les bits-d'adresse A0 à A14 au verrou d'adresse 13. Bien que l'on utilise quinze bits pour l'adresse appliquée sur le bus 12, le 7 2 62627315 nombre réel de bits d'adresse est arbitraire. Le verrou d'adresse 13 est relié à un décodeur X 14 et à un décodeur Y 15. Le décodeur X 14 est relié au réseau de mémoire 11 et le décodeur Y 15 est relié à un circuit de porte Y 16. La mémoire 11 du mode de réalisation préféré est une structure en réseau de cellules de 256 Kbit o le décodeur X 14 permet le décodage pour l'accès à l'adresse X (rangée) et le décodeur Y 15 permet le décodage de l'adresse Y (colonne) de la matrice X-Y du réseau de mémoire 11. La configuration du réseau de mémoire 11 et l'accès à ce réseau au moyen des décodeurs X et Y 14 et 15 et des circuits de porte de colonne 16 sont bien connus pour les EPROMs de l'art antérieur. Les données sont appliquées au composant 10 par un bus de données bidirectionnel sur huit bits 20, mais ici encore le nombre de bits du bus de données 20 est un choix de conception. Le bus de données 20 est relié à un tampon d'entrée/sortie 21, les données introduites dans la mémoire 11 étant appliquées au bus 23a via un verrou de données 22. Inversement, les données en provenance de la mémoire 11 que l'on doit délivrer en sortie sur le bus 20 sont appliquées, via des circuits de détection 101 et le bus 23b, au tampon d'entrée/sortie 21 pour être délivrées en sortie sur le bus de données 20. Les données entrantes sont également appliquées au contrôleur de port d'ordres 30 sur le bus 23a. Le contrôleur de port d'ordres 30 reçoit également des signaux externes WE/ (Write Enable: activation d'écriture) et CE/ (Chip Enable: activation de puce) et délivrent des signaux de contrôle au verrou d'adresse 13, au verrou de donnée 22, au générateur de tension d'effacement 24, au générateur de tension de programmation 25 et au générateur de vérification d'effacement/de programmation 26. Les signaux extérieurs CE/ (Chip Enable: activation de puce) et OE/ (Output Enable: activation de sortie) sont appliqués à un circuit 27 formant logique d'activation de bus/activation de sortie. Ces signaux de donnée, d'adresse et de contrôle proviennent d'un microprocesseur, du type de ceux habituellement utilisés avec des mémoires à semiconducteurs. La tension d'alimentation VCC et son retour VSS sont appliqués au composant 10, ainsi que la tension de programmation VPP dont la valeur de tension détermine si le contrôleur du port d'ordres 30 est activé pour la sélection de fonction de lecture, d'effacement ou de programmation. VPP est appliquée au contrôleur de port d'ordres 30, au générateur de tension d'effacement 24, au générateur de tension de programmation 25 et au générateur de vérification/programmation 26. L'origine de ces tensions est sans intérêt pour la mise en oeuvre de la présente invention. Le circuit 27 formant logique d'activation de puce/activation de sortie est relié au tampon d'entrée/sortie 21. Le circuit 27 fournit les signaux de contrôle au tampon 21. Le générateur de tension d'effacement 24 est relié à la mémoire 11 pour fournir la tension nécessaire à l'effacement simultané de l'ensemble du réseau de mémoire 11. Le signal de sortie du générateur de tension de programmation 25 est appliqué aux décodeurs 14 et 15 de manière à fournir une tension de programmation à la mémoire 11 lorsque le signal de sortie de fonction de programmation du générateur de vérification d'effacement/programmation 26 est appliqué au décodeur 14 et pour appliquer la tension de vérification à la mémoire 11 lorsque la fonction de vérification d'effacement/programmation est sélectionnée. Pour permettre un effacement et une programmation en circuit de la mémoire 11, le composant 10 est, dans le mode de réalisation préféré, conçu de manière à recevoir ces ordres sur la ligne de données 20 en provenance du processeur relié au composant 10. Chaque fois que l'on doit sélectionner le composant 10, le signal d'activation de puce CE/ passe au niveau bas et la puce 10 est prête à recevoir des instructions de mode sur le bus de données 20. Les instructions traversent le tampon d'entrée/sortie 21 jusqu'au contrôleur de port d'ordres 30. Le contrôleur de port d'ordres 30 reçoit une instruction parmi 2n (n étant le nombre de bits de données) en provenance du bus de données , comprenant les six instructions suivantes: programmation, vérification de programmation, effacement, vérification d'effacement, lecture et lecture de signature (fonction de lecture spécialisée permettant d'accorder la mémoire 11 à un protocole approprié d'un équipement extérieur). En fonction de celui des mots d'instruction qui est reçu, le contrôleur de port d'ordres 30 produit des signaux de contrôle permettant d'exécuter l'opération appropriée correspodante. Après que l'instruction particulière ait été appliquée en entrée au contrôleur de port d'ordres 30, le signal d'autorisation d'écriture WE/, le signal d'autorisation de puce CE/ et le signal d'autorisation de sortie OE/ contrôlent la production des divers signaux en provenance du contrôleur de port d'ordres et du circuit de logique 30 pour permettre un fonctionnement approprié des diverses unités du composant 10. Dans le mode de réalisation préféré, le contrôleur de port d'ordres 30 est activé lorsque VPP est à une valeur.de tension d'environ 12 V continus. Si, cependant, on souhaite désactiver le contrôleur de port d'ordres 30, un décalage de la valeur de VPP de 12 V à environ 5 V désactivera le contrôleur de port d'ordres 30. A chaque transition de VPP à V, le contrôleur 30 est désactivé, de sorte que l'on ignore l'instruction se trouvant sur le bus de données 20 et destinée au contrôleur 30. Lorsque VPP est à 5 V et que le contrôleur 30 est désactivé, le composant 10 fonctionnera uniquement en mode de lecture. Ce cas de figure de désactivation du contrôleur 30 a été prévu dans la puce 10 du mode de réalisation préféré au cas o le composant 10 est utilisé en remplacement direct d'une EPROM de l'art antérieur (ou d'une EEPROM utilisée uniquement pour des opérations de lecture), o l'on n'a pas de 12 V. Dans de telles EPROMs de l'art antérieur, VPP est typiquement à 5 V, et un remplacement direct du composant 10 à la place d'une EPROM de l'art antérieur fera en sorte que le composant 10 ne permettra que le mode lecture. Ce cas de figure de désactivation du contrôleur permet également une protection absolue contre un effacement ou une programmation par inadvertance de la mémoire lorsque VPP est à 5 V. Sur la figure 2, on a représenté un diagramme par blocs schématique du contrôleur de port d'ordres 30 du mode de réalisation préféré. Le signal d'activation de puce CE/ est appliqué à la logique de contrôle 31 et au générateur d'horloge d'adressage 32. Le signal d'activation d'écriture WE/ est appliqué en entrée à la logigue de contrôle 31. La logique de contrôle 31 permet de n'appliquer le signal WE/ au générateur d'horloge d'adressage 32, au générateur d'horloge d'état 33 et aux générateurs d'horloge d'ordre/de donnée 34 que lorsque le signal d'activation de puce CE/ active la puce 10. Le signal de sortie du générateur d'horloge d'état 33, ainsi que les données se trouvant sur le bus de données 23a, sont appliqués au registre d'état 35, dont la sortie est appliquée au décodeur d'état 36 et au générateur d'horloge d'ordre 34a. Le signal de sortie du générateur d'horloge d'ordre 34a est appliqué au registre d'ordre 37. Le registre d'ordre 37 reçoit également des données en provenance du bus de données 23a et le signal de sortie du registre d'ordre 37 est appliqué au décodeur d'état 36. Le signal de sortie du générateur d'horloge d'adressage 32 délivre les impulsions d'échantillonnage au verrou d'adressage 13 de la figure 1, et le générateur d'horloge de données 34b délivre les impulsions d'adressage au verrou de donnée 22 de la figure 1. Les signaux de sortie du décodeur d'états 36 sont appliqués en retour de manière à contrôler le générateur d'horloge d'adressage 32 et le registre d'état 35. On prévoit d'autres signaux de sortie du décodeur d'états 36 allant vers le générateur de tension d'effacement 24, le générateur de tension de programmation et le générateur de vérification d'effacement/ programmation 26 illustrés figure 1. Le registre d'état 35 produit un signal en retour vers le générateur d'horloge d'ordre 34a, mais le registre d'ordre 37 n'a pas de signal en retour de ce type. Les fonctions sont sélectionnées via le bus de données 23a au cours d'un cycle d'écriture contrôlé par les signaux WE/ et CE/. Le contenu du verrou d'adresse 13 est mis à jour 26.27315 sur le front descendant de WE/. Le front montant du signal WE/ permet de charger les instructions dans le registre d'état 35 et dans le registre d'ordre 37 ou bien dans le registre de donnée 22. Le décodeur d'états 36 décode les nouveaux modes internes et déclenche les opérations appropriées en délivrant des signaux de contrôle correspondants. Les lignes de contrôle allant du décodeur d'état 36 aux générateurs de tension d'effacement, de tension de programmation et de vérification d'effacement/ programmation, référencés 24, 25 et 26 respectivement, permettent à ces générateurs de délivrer des tensions VPP aux décodeurs X- Y 14 et 15 ou à la mémoire 11, comme illustré figure 1. Les tensions de vérification dérivées de VPP sont appliquées aux lignes de mot par l'intermédiaire du décodeur X lors de la vérification de la programmation et de la vérification de l'effacement, afin de garantir que la programmation et l'effacement ont été effectués correctement. Si l'on se réfère aux figures 3, 4 et 5, ces figures illustrent des chronogrammes des divers signaux associés au composant 10. La figure 3 correspond à une fonction de lecture, o on adresse la mémoire 11 et on lit dans la mémoire 11 une donnée lorsque le signal d'activation de sortie OE/ active le circuit 27, qui active ensuite la fonction de sortie du tampon 21. La figure 4 illustre le chronogramme d'une opération d'effacement. L'effacement est réalisé par une séquence en deux écritures, le code d'effacement étant inscrit dans le registre d'ordre 37 et dans le registre d'état 37 lors d'un premier cycle d'écriture 40, et le code de confirmation d'effacement étant inscrit dans le registre d'état 35 lors d'un second cycle d'écriture 41. Le code de confirmation déclenche l'effacement sur le front montant du second cycle 41 du signal WE/. Le décodeur d'états 36 déclenche un ordre pour le générateur de tension d'effacement 24, qui actionne alors un commutateur haute tension reliant les 12 V (VPP) à la source de toutes les cellules du réseau de la mémoire 11. Il met également à la masse toutes les lignes de mot. L'effet tunnel Fowler-Nordheim provoque un effacement simultané de toutes les cellules du réseau de mémoire 11. L'écriture du code de vérification d'effacement dans les registres 35 et 37 aux cycles d'écriture 42 achève l'effacement, verrouille l'adresse de l'octet à vérifier et prépare les tensions internes de marge d'effacement. Un microprocesseur peut alors accéder à la sortie de la mémoire depuis l'adresse appliquée, en utilisant un cadencement de lecture standard lorsque le signal OE/ passe au niveau bas, à l'instant 43. La procédure de vérification est alors répétée pour toutes les adresses. La programmation est exécutée de la manière illustrée figure 5. L'ordre de programmation est introduit dans les registres 35 et 37 au premier cycle 45 du signal d'autorisation d'écriture WE/. Un second cycle WE/ 46 charge le verrou d'adresse 13 et le verrou de donnée 22. Le front montant du second cycle WE/ 46 déclenche la programmation en faisant produire au décodeur d'états 36 un signal de contrôle destiné au générateur de tension de programmation 25, qui applique alors la tension élevée VPP à la grille et au drain de la cellule de la mémoire 11 que l'on a adressé. L'écriture de l'ordre de vérification de programmation dans les registres 35 et 37 au cycle WE/ 47 achève la programmation et établit les tensions internes de marge permettant de vérifier l'octet que l'on vient de programmer. Ici encore, on peut accéder à l'octet adressé par des séquencements de lecture standards de microprocesseur, lorsque OE/ passe au niveau bas à l'instant 48. Sur la figure 6, on a représenté un organigramme de l'algorithme d'effacement utilisé par le contrôleur de port d'ordres 30. Au cours de la phase d'initialisation, on applique VPP, tout les octets sont programmés à une valeur particulière, qui dans cet exemple est '00H' (précondi- tionnement), et l'on met les compteurs à une valeur d'initialisation prédéterminée. On écrit alors l'ordre de préparation d'effacement puis l'ordre d'effacement (voir figure 4 pour le chronogramme). Après une période temporisée au cours de laquelle on réalise l'effacement, on écrit l'ordre de vérification d'effacement, suivi par une autre temporisation prédéterminée (6 gs dans cet exemple). On lit ensuite la donnée dans la mémoire et on la vérifie pour déterminer si la donnée a bien été effacée. Si la donnée- n'a pas été effacée, on incrémente la largeur de l'impulsion d'effacement de la donnée d'une quantité prédéterminée, et on la mémorise dans le compteur TEW et on vérifie si elle a atteint une valeur limite maximale (les calculs de TEW et CUMTEW sont illustrés figure 6). Dans le mode de réalisation préféré, la largeur de l'impulsion est incrémentée jusqu'à une valeur limite maximale correspondant à une durée d'effacement cumulée de 10 secondes. Après chaque incrémentation, on répète la séquence en écrivant à nouveau l'ordre de préparation d'effacement puis l'ordre d'effacement. Cependant, si les données n'ont pas été effacées après que l'on ait atteint une valeur de compte d'impulsion prédéterminée (dans cet exemple, la valeur en question est de 64), on signale alors une erreur, indiquant que l'on n'a pas pu réaliser l'effacement pour cette cellule de mémoire. Chaque fois que l'on a lu la donnée et que l'on a constaté que la cellule a été effacée, on incrémente l'adresse et on répète la séquence de vérification d'effacement jusqu'à avoir vérifié la dernière adresse, auquel cas on écrit un ordre de lecture dans les registres d'ordre et d'état afin de réinitialiser les registres pour une nouvelle opération de lecture, puis on termine le cycle d'effacement. Si un octet a été contrôlé comme n'ayant pas pu être effacé, on incrémente la largeur d'impulsion TEW et on répète la séquence d'effacement. L'efficacité de l'effacement peut être améliorée en commençant le nouveau cycle de vérification à partir du dernier octet effacé et vérifié. Sur la figure 7, on a représenté un organigramme d'un algorithme de programmation. Le cycle de programmation est initialisé en appliquant VPP et en initialisant le compteur d'impulsions. On écrit alors l'ordre de préparation de programmation dans les registres d'ordre et d'état, avec ensuite un second cycle d'écriture qui verrouille l'adresse- et la donnée (voir figure 5 pour le chronogramme). Après une période de temporisation prédéterminée au cours de laquelle la programmation a lieu, on écrit l'ordre de vérification de programmation. Après une nouvelle période de temporisation réinitialiser les registres pour une opération de lecture. L'algorithme de la figure 7 est également utilisé pour charger la valeur '00' permettant le préconditionnement avant l'effacement de la figure 6. Bien que l'on puisse mettre en oeuvre divers circuits de l'art antérieur pour exécuter les fonctions du bloc illustré figure 2, les figures 8a à 8e illustrent un circuit particulier, utilisé dans le mode de réalisation préféré, permettant d'obtenir les fonctions des divers blocs de la figure 2. Les références numériques des divers blocs de la figure 2 correspondent aux références des figures 8a à 8e. En outre, on a illustré le circuit de réinitialisation 50 et les circuits de registre de page 51. L'initialisation consiste à initialiser les registres d'ordre et d'état, notamment lors de la mise en marche, ou lorsque VPP est à V. Le circuit de registre de page 51 sert à contrôler l'adressage en mode page de la mémoire. Par ailleurs, on a pas représenté en détail le circuit de contrôle 31, du fait que ce circuit de contrôle 31 réalise un ET logique entre les signaux d'activation de puce et d'activation d'écriture. Le signal résultant a été noté CWE. Dans le mode de réalisation préféré, on utilise une série d'inverseurs pour réaliser le retard permettant de produire le signal d'échantillonnage du verrou d'adresse à partir du générateur d'horloge d'adressage 32. Comme cela a été utilisé dans le circuit particulier du mode de réalisation préféré, le registre d'ordre 37 est formé de quatre registres distints R3, R5, R6 et R7. Les registres R5, R6 et R7 sont utilisés pour la sélection de mode et le registre R3 est utilisé pour décoder et verrouiller les entrées invalides. Le registre d'état 35 comporte deux registres. Le registre R2 est utilisé avec un contrôle en retour pour activer l'effacement, et le registre d'état de programmation Ri est utilisé pour contrôler le débit des données en entrée vers les verrous de donnée ou les registres d'ordre. Les générateurs d'horloge d'ordre et de donnée 34a et 34b servent à créer les phases d'horloge non chevauchantes nécessaires aux registres et aux verrous de donnée. Ces horloges contrôlent, au cours d'un cycle d'écriture, le verrouillage des données en entrée dans les verrous de donnée de programmation, les registres d'ordre et les registres d'état. Le générateur d'horloge d'adressage est responsable du contrôle du débit des informations d'adresse vers les verrous d'adresse. Les registres d'état 35 et les registres d'ordre 37 forment le coeur de l'architecture du contrôleur de port d'ordres, reçoivent des signaux d'entrée provenant du tampon d'entrée de données et mémorisent les données afin de décoder les modes de fonctionnement de la puce. Les instructions d'ordre sont déterminées par trois bits de données des registres 5, 6 et 7, et on a représenté sur la figure 8e la table de vérité permettant de déterminer le mode de fonctionnement à partir de ces bits. Les registres d'ordre n'ont pas de retour de leurs sorties et gardent trace des modes d'écriture isolés et sélectionnent les rubriques pour les modes d'écriture multiple. Les registres d'état possèdent un trajet de retour allant de leur sortie à leur entrée et gardent trace de la séquence de fonctionnement de la puce lorsqu'elle passe par les différentes étapes des modes d'écriture multiple. Au cas o le composant 10 doit être rendu compatible avec les composants EPROM existants, le signal d'activation d'écriture est multiplexé avec le bit d'adresse supérieur A14. Lorsque VPP est à 5 V, la broche A14-WE/ lit le bit d'adresse supérieur A14 qui, dans certains cas de figure, est utilisé pour sélectionner le mode page. Cependant, lorsque VPP est à la tension de programmation (12 V dans cet exemple), le signal sur la broche A14-WE/ est lu comme étant un signal d'activation d'écriture. Ainsi, en multiplexant le bit d'adresse supérieur avec le signal d'activation d'écriture, le processus de multiplexage permet de rendre le composant 10 de l'invention compatible broche à broche avec les composants EPROM existants. REVENDICATIONS 1. Un procédé d'effacement d'une mémoire morte électriquement effaçable et électriquement programmable (10), réalisée sur un substrat de silicium et utilisant une pluralité de cellules de mémoire (11) dont chacune comporte une grille flottante, et dans laquelle on introduit comme données des instructions de programmation et d'effacement dans un registre d'instructions (35,37) qui produit des signaux de contrôle appropriés pour les cellules de mémoire, procédé caractérisé en ce qu'il comprend les étapes suivantes: (a) écriture d'un ordre de préparation d'effacement dans le registre au cours d'un premier cycle d'écriture (40), (b) écriture d'un ordre d'effacement dans le registre au cours d'un second cycle d'écriture (41), (c) effacement des cellules de mémoire au cours d'un cycle d'effacement, (d) écriture d'un ordre de vérification d'effacement dans le registre au cours d'u.n troisième cycle d'écriture (42) et délivrance d'une adresse désignée permettant d'accéder à un emplacement de la mémoire, (e) lecture du contenu de cet emplacement de la mémoire afin de déterminer si cet emplacement a été effacé et, si cette donnée n'est pas effacée, incrémentation de la durée du cycle d'effacement et répétition des étapes (a) à (e) jusqu'à effacement de cet emplacement, et (f) répétition des étapes (d) et (e) jusqu'à ce que tous les emplacements adressés aient été effacés et vérifiés. 2. Le procédé de la revendication 1, dans lequel, si le cycle d'effacement dépasse une longueur prédéterminée, on signale une erreur. 3. Le procédé de 'la revendication 2, dans lequel on conserve dans un registre d'adresse la position du dernier emplacement vérifié à l'étape (e), évitant ainsi de répéter la vérification des emplacements vérifiés. 2627315. 4. Un procédé de programmation d'une mémoire morte électriquement effaçable et électriquement programmable (10), réalisée sur un substrat de silicium et utilisant une pluralité de cellules de mémoire (11) dont chacune comporte une grille flottante, et dans laquelle on introduit comme données des instructions de programmation et d'effacement dans un registre d'instructions (35,37) qui produit des signaux de contrôle appropriés pour les cellules de mémoire, procédé caractérisé en ce qu'il comprend les étapes suivantes: (la) écriture d'un ordre de préparation de programmation dans le registre au cours d'un premier cycle d'écriture (45) , (lb) verrouillage de l'adresse et de la donnée dans la mémoire au cours d'un second cycle d'écriture (46), lorsque la donnée est égale à '00', (lc) programmation de cette mémoire au cours d'un cycle de programmation, (ld) écriture d'un ordre de vérification de programmation dans le registre au cours d'un troisième cycle d'écriture (47), (le) lecture du contenu d'un emplacement de mémoire o l'on a programmé la donnée à l'étape (lc), de manière à vérifier son contenu et, si cet emplacement n'est pas programmé, répétition des étapes (la) à (le) jusqu'à ce que cet emplacement ait été programmé, (if) répétition des étapes (la) à (le) avec une nouvelle adresse, jusqu'à ce que tout les emplacements adressés aient été programmés et vérifiés. 5. Le procédé de la revendication 4, dans lequel on signale une erreur si le cycle de programmation est exécuté un nombre de fois supérieur à un chiffre prédéterminé. 6. Un procédé d'effacement et de programmation d'une mémoire morte électriquement effaçable et électriquement programmable (10), réalisée sur un substrat de silicium et utilisant une pluralité de cellules de mémoire (11) dont chacune comporte une grille flottante, et dans laquelle on introduit comme données des instructions de programmation et d'effacement dans un registre d'instructions (35,37) qui produit des signaux de contrôle appropriés pour les cellules de mémoire, procédé caractérisé en ce qu'il comprend les étapes suivantes: (la) écriture d'un ordre de préparation d'effacement dans le registre au cours d'un premier cycle d'écriture (40), (lb) écriture d'un ordre d'effacement dans le registre au cours d'un second cycle d'écriture (41), (lc) effacement des cellules de mémoire au cours d'un cycle d'effacement, (ld) écriture d'un ordre de vérification d'effacement dans le registre au cours d'un troisième cycle d'écriture (42) et délivrance d'une adresse désignée permettant d'accéder à un emplacement de la mémoire, (le) lecture du contenu de cet emplacement de la mémoire afin de déterminer si cet emplacement a été effacé et, si cette donnée n'est pas effacée, incrémentation de la durée du cycle d'effacement et répétition des étapes (la) à (le) jusqu'à effacement de cet emplacement, - (lf) répétition des étapes (ld) et (le) jusqu'à ce que tous les emplacements adressés aient été effacés et vérifiés, (2a) écriture d'un ordre de préparation de programmation dans le registre au cours d'un premier cycle d'écriture (45), (2b) verrouillage de l'adresse et de la donnée dans la mémoire au cours d'un second cycle d'écriture (46), (2c) programmation de cette mémoire au cours -d'un cycle de programmation, (2d) écriture d'un ordre de vérification de programmation dans le registre au cours d'un troisième cycle d'écriture (47), (2e) lecture du contenu d'un emplacement de mémoire o l'on a programmé la donnée à l'étape (2c), de manière à vérifier son contenu et, si cet emplacement n'est pas programmé, répétition des étapes (2a) à (2e) jusqu'à ce que cet emplacement ait été programmé, et (2f) répétition des étapes (2d) à (2e) avec une nouvelle adresse, jusqu'à ce que tout les emplacements adressés aient été programmés et vérifiés. 7. Un procédé de préconditionneemnt, d'effacement et de programmation d'une mémoire morte électriquement effaçable et électriquement programmable - (10), réalisée sur un substrat de silicium et utilisant une pluralité de cellules de mémoire (11) dont chacune comporte une grille flottante, et dans laquelle on introduit comme données des'instructions de programmation et d'effacement dans un registre d'instructions (35,37) qui produit des signaux de contrôle appropriés pour les cellules de mémoire, procédé caractérisé en ce qu'il comprend les étapes suivantes: (la) écriture d'un ordre de préparation d'effacement dans le registre au cours d'un premier cycle d'écriture (40), (lb) écriture d'un ordre d'effacement dans le registre au cours d'un second cycle d'écriture (41), (lc) effacement des cellules de mémoire au cours d'un cycle d'effacement, (ld) écriture d'un ordre de vérification d'effacement dans le registre au cours d'un troisième cycle d'écriture (42) et délivrance d'une adresse désignée permettant d'accéder à un emplacement de la mémoire, (le) lecture du contenu de cet emplacement de la mémoire afin de déterminer si cet emplacement a été effacé et, si cette donnée n'est pas effacée, incrémentation de la durée du cycle d'effacement et répétition des étapes (la) à (le) jusqu'.à effacement de cet emplacement, et (if) répétition des étapes (ld) et (le) jusqu'à ce que tous les emplacements adressés aient été effacés et vérifiés, (2a) écriture d'un ordre de préparation d'effacement dans le registre au cours d'un premier cycle d'écriture (40), 2.6 273 1 5 (2b) écriture d'un ordre d'effacement dans le registre au cours d'un second cycle d'écriture (41), (2c) effacement des cellules de mémoire au cours d'un cycle d'effacement, (2d) écriture d'un ordre de vérification d'effacement dans le registre au cours d'un troisième cycle d'écriture (42) et délivrance d'une adresse désignée permettant d'accéder à un emplacement de la mémoire, (2e) lecture du contenu de cet emplacement de la mémoire afin de déterminer si cet emplacement a été effacé et, si cette donnée n'est pas effacée, incrémentation de la durée du cycle d'effacement et répétition des étapes (2a) à (2e) jusqu'à effacement de cet emplacement, (2f) répétition des étapes (2d) et (2e) jusqu'à ce que tous les emplacements adressés aient été effacés et vérifiés, (3a) écriture d'un ordre de préparation de programmation dans le registre au cours d'un premier cycle d'écriture (45), (3b) verrouillage de l'adresse et de la donnée dans la mémoire au cours d'un second cycle d'écriture (46) , (3c) programmation de cette mémoire au cours d'un cycle de programmation, (3d) écriture d'un ordre de vérification de programmation dans le registre au cours d'un troisième cycle d'écriture (47), (3e) lecture du contenu d'un emplacement de mémoire o l'on a' programmé la donnée à l'étape (3c), de manière à vérifier son contenu et, si cet emplacement. n'est pas programmé, répétition des étapes (3a) à (3e) jusqu'à ce que cet emplacement ait été programmé, (3f) répétition des étapes (3a) à (3e) avec une nouvelle adresse, jusqu'à ce que tout les emplacements adressés aient été programmés et vérifiés.