FR 3017981 A1 20150828 FR 1451599 A 20140227 B13157 - 13-R0-0949 1 PROGRAMMATION D'UNE MÉMOIRE EEPROM Domaine La présente description concerne de façon générale les circuits électroniques et, plus particulièrement, les circuits de mémoire non volatile de type EEPROM. La présente description concerne plus précisément la programmation d'une mémoire EEPROM. Exposé de l'art antérieur Les mémoires non volatiles de type EEPROM sont particulièrement répandues dans les circuits électroniques et dans les circuits intégrés. Elles servent notamment à stocker des programmes ainsi que des données de configuration ou données utilisateur qui doivent être stockées de façon non volatile. La programmation d'une mémoire de type EEPROM s'effectue en appliquant, aux bornes de la cellule à programmer, une tension nettement supérieure à la tension de fonctionnement en lecture (typiquement dans un rapport d'au moins 3). Résumé Un mode de réalisation vise à pallier tout ou partie des inconvénients des mémoires EEPROM connues, plus particulièrement lors de leur programmation. Un mode de réalisation vise à proposer une technique de programmation d'une mémoire EEPROM qui soit rapide, sans nuire à la durée de vie de la mémoire. B13157 - 13-R0-0949 2 Ainsi, un mode de réalisation prévoit un procédé de programmation d'une mémoire EEPROM comportant : un premier mode dans lequel une écriture dans des cellules s'effectue sous une première tension ; et un deuxième mode dans lequel l'écriture s'effectue sous une deuxième tension, inférieure à la première. Selon un mode de réalisation, les première et deuxième tensions sont supérieures à une troisième tension de lecture de la mémoire. Selon un mode de réalisation, les première et deuxième tensions sont appliquées entre une ligne de bit et des grilles de transistors constituant les points mémoires. Selon un mode de réalisation, le nombre de programmations dans le premier mode est limité à un nombre 15 inférieur, dans un rapport d'au moins dix, de préférence d'au moins mille, au nombre de cycles de programmation possibles dans le deuxième mode. Selon un mode de réalisation, au moins une étape d'effacement est, dans le premier mode, réalisée sous une 20 tension supérieure à celle utilisée pour un effacement dans le second mode. Selon un mode de réalisation, le nombre de passages dans le premier mode est limité. Selon un mode de réalisation, un nombre donné de 25 programmations est effectué dans le premier mode, puis seul le second mode est utilisé. Un mode de réalisation prévoit également une mémoire EEPROM adaptée à la mise en oeuvre du procédé ci-dessus. Selon un mode de réalisation, la mémoire comporte un 30 contrôleur adapté à fournir les première et deuxième tensions. Un mode de réalisation prévoit également un circuit comportant une mémoire. électronique mode de réalisation prévoit également un système Un moins une mémoire ; et comportant : 35 au B13157 - 13-R0-0949 3 au moins un circuit communiquant avec la mémoire pour y lire ou écrire des données. Brève description des dessins Ces caractéristiques et avantages, ainsi que d'autres, 5 seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente un exemple de réalisation d'un système électronique comportant une mémoire EEPROM ; 10 la figure 2 représente le schéma électrique équivalent d'un plan mémoire EEPROM ; la figure 3 illustre un mode de mise en oeuvre du procédé de programmation d'une mémoire EEPROM ; la figure 4 est un schéma bloc simplifié d'un mode de 15 réalisation d'une mémoire EEPROM ; les figures aA et 5B sont des chronogrammes illustrant le fonctionnement de la mémoire de la figure 4 dans un premier mode ; les figures 6A. et 6B illustrent par des chronogrammes 20 le fonctionnement de la mémoire de la figure 4 dans un second mode ; et les figures 7A. et 7B illustrent, par des chrono- grammes, une variante du mode de fonctionnement des figures 6A. et 6B. 25 Description détaillée De mêmes éléments ont été désignés par de mêmes références aux différentes figures. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et seront détaillés. En 30 particulier, le fonctionnement d'une mémoire EEPROM en lecture n'a pas été détaillé, les modes de réalisation décrits étant compatibles avec le fonctionnement usuel. De plus, les circuits et étapes d'adressage des différentes cellules d'un plan mémoire n'ont pas non plus été détaillés, les modes de réalisation 35 décrits étant là encore compatibles avec les solutions usuelles. B13157 - 13-R0-0949 4 Lorsque l'on se réfère à une tension par rapport à la masse (0 volt) on la désignera par la même référence que l'on parle du potentiel ou de la tension. La figure 1 représente, de façon schématique, un 5 exemple de système 1 comportant une mémoire non volatile 2 (EEPROM) de type programmable et effaçable électriquement. Un tel système comporte généralement au moins une unité de traitement 3 (PU) susceptible de communiquer, par un ou plusieurs bus 4 de commandes, d'adresses et de données, avec la 10 mémoire 2 ainsi que le plus souvent avec d'autres circuits. Dans l'exemple de la figure 1, un bloc 5 (FCT) symbolisant d'autres fonctions électroniques susceptibles d'être mises en oeuvre par le système a été représenté. Ces fonctions ont le cas échéant également accès à la mémoire 2. Le système et les circuits 15 électroniques qu'il comporte incluent de nombreux autres éléments comme des interfaces d'entrée/sortie, d'autres mémoires volatiles et non volatiles, etc. La figure 2 est une représentation schématique d'une mémoire EEPROM. En figure 2, seul le plan mémoire c'est-à-dire 20 le réseau matriciel de cellules mémoire 22 a été illustré. Une cellule 22 est typiquement constituée d'un premier transistor M24 de sélection en série avec un second transistor M26 constituant le point mémoire entre une ligne de bit BL et une borne 24. Généralement, la borne 24 est portée à la masse en 25 lecture et en effacement. Lors d'une programmation, elle est soit à un potentiel flottant (haute impédance) soit à un potentiel de quelques volts afin d'éviter le passage d'un courant dans le transistor M26. La grille du transistor M24 est reliée à une ligne de mot WL constituant une ligne de sélection. 30 La grille du transistor M26 est reliée à une ligne de commande CL utilisée lors des phases de programmation de la mémoire. Typiquement, les lignes de bits BL sont arrangées dans une première direction, (par exemple de colonnes) tandis que les lignes de mots WL et de commande CL sont agencées dans une 35 seconde direction (par exemple en rangées). L'état de la cellule B13157 - 13-R0-0949 mémoire est stocké dans la grille du transistor M26 constituant le point mémoire. Classiquement, les lignes de commande CL sont soit communes à toutes les cellules d'une même ligne de mot WL, soit 5 communes à un sous-ensemble de cellules d'une ligne de mot (par exemple d'un octet). Dans ce dernier cas, le plan mémoire comporte des circuits adaptés à la commutation des lignes CL. En lecture, une tension relativement basse par rapport à la tension de programmation, typiquement de l'ordre du volt, est appliquée sur les lignes de bits BL. Un contrôleur mémoire sélectionne alors une ligne de mot WL à lire en montant le potentiel de celle-ci, les autres lignes étant à la masse, de façon à rendre passants les transistors M24 de la rangée. La ligne CL de la rangée correspondante est portée à un potentiel de référence (par exemple entre 0,5 et 1,5 volt). Selon l'état du transistor M26 d'une cellule donnée, la fermeture du transistor M24 provoque un déchargement du potentiel de la ligne de bit vers la masse ou n'engendre pas de variation. On mesure donc les variations de potentiel au niveau des lignes de bits pour déterminer les états respectifs 0 ou 1 des cellules de la rangée. En programmation (en écriture d'un "1" dans la cellule), on doit appliquer une tension positive entre la ligne BL et la grille du transistor M26. Typiquement, la ligne CL est connectée à la masse ou à un potentiel négatif tandis que la ligne de mot WL sélectionne toutes les cellules de la rangée. Les lignes de bits BL dont les cellules adressées par la ligne de mot WL doivent être programmées sont alors portées à un potentiel positif. Une programmation est, en pratique, précédée d'un effacement de la mémoire (réinitialisation des cellules dans un état "0"). Cet effacement s'effectue en appliquant une tension négative entre la ligne de bit BL et la ligne de commande CL. Plus la tension de programmation est élevée, plus la 35 programmation est rapide. Toutefois, plus cette tension est B13157 - 13-R0-0949 6 élevée, plus le vieillissement de la mémoire est rapide. On effectue donc généralement un compromis en fonction de l'endurance souhaitée pour la mémoire c'est-à-dire du nombre de cycles d'effacement/écriture qu'elle est censée supporter dans la vie du produit. Typiquement, les mémoires EEPROM sont censées supporter quelques millions de cycles et la tension de programmation est choisie en conséquence. Le temps nécessaire à la programmation de données dans une mémoire EEPROM est acceptable lorsque le produit est fonctionnel, c'est-à-dire lors de son utilisation. Toutefois, lors d'un chargement initial dans la mémoire d'une quantité importante de données, par exemple pour le chargement d'un programme que ce soit lors de la fabrication ou lors d'une étape de mise à jour du produit, le temps requis pour la programmation est souvent considéré comme trop élevé. L'inventeur a constaté que, dans la vie d'une mémoire EEPROM, le nombre de fois où une programmation d'ensemble est souhaitée (par exemple une zone de plus de 16 kilooctets) est relativement faible par rapport au nombre de programmations d'une plage réduite de données (par exemple, d'un à 128 octets). Typiquement, on peut évaluer le besoin de programmation d'ensemble à une dizaine ou centaine de fois dans la vie du produit. On peut alors considérer qu'en effectuant la program- mation d'ensemble sous une tension plus élevée, l'influence de cycles de programmation sous une tension plus élevée que la programmation normale devient négligeable sur le vieillissement de la mémoire. Par exemple, en considérant une mémoire ayant une durée de vie de l'ordre d'un million de cycles sous une tension de programmation donnée, même si l'on effectue une dizaine de mises à jour complètes de cette mémoire avec une tension de programmation supérieure provoquant un vieillissement dix, voire cent fois, plus rapide, cela revient tout au plus à réaliser entre cent à mille cycles sur cette mémoire en équivalent usure B13157 - 13-R0-0949 7 ramené à la tension de programmation donnée, ce qui est négligeable sur les millions de cycles qu'elle peut supporter. Ainsi, on prévoit que la mémoire EEPROM puisse fonctionner selon deux modes de programmation à des niveaux de tension différents selon que cette programmation concerne une utilisation normale ou une mise à jour d'ensemble du plan mémoire ou d'une ou plusieurs pages de celui-ci. La figure 3 est un graphique très schématique illustrant un mode de mise en oeuvre du procédé de programmation, et représente les niveaux de tension V appliqués entre la ligne de bit BL et la ligne de commande CL des cellules à programmer. Dans un premier mode de fonctionnement (MODE1) correspondant, par exemple, à une programmation du plan mémoire entier, la tension V prend une première valeur HT1 nettement supérieure à la valeur présente sur les lignes de bits en lecture. Dans un deuxième mode de fonctionnement (MODE2) correspondant à une programmation partielle de la mémoire, la tension V prend une seconde valeur HT2 inférieure à la valeur HT1 tout en restant supérieure à la valeur Vdd. Par exemple, la tension V1 est, en lecture, de l'ordre du volt, la tension Vdd vaut de l'ordre de 3 volts, la tension HT1 vaut de l'ordre de 16 volts et la tension HT2 vaut de l'ordre de 13 volts. La programmation dans le premier mode provoque une usure plus rapide de la mémoire mais également une programmation plus rapide que dans le second mode MODE2. Pour la mise en oeuvre de ce procédé, la mémoire EEPROM (son contrôleur) est de préférence modifiée afin de pouvoir commuter d'un mode de programmation à l'autre. La figure 4 est une représentation très schématique d'un mode de réalisation d'une mémoire 2. Cette mémoire 2 comporte un réseau de cellules (MATRIX) associé à un contrôleur mémoire 28 (CTRL). Le contrôleur 28 est chargé d'organiser l'accès aux cellules de la matrice que ce soit en lecture, en écriture ou en effacement. Typiquement, le contrôleur 28 est B13157 - 13-R0-0949 8 alimenté par la tension Vdd, est relié au bus 4, et communique avec les lignes de bits, de mots et de commande du réseau matriciel. Dans l'exemple illustré en figure 2, le contrôleur reçoit une tension HT représentant la tension de programmation. Cette tension HT prend alors l'une des deux valeurs HT1 et HT2. En variante, la génération de cette tension à partir du niveau Vdd est réalisée dans le circuit mémoire lui-même à l'aide d'un circuit de pompe de charge. De préférence, le contrôleur 28 reçoit un signal MODE 10 indicateur du mode de programmation dans lequel fonctionner. Ce signal MODE peut être un simple bit prenant la valeur 0 ou 1 selon le mode. Par exemple, le contrôleur mémoire 28 génère les signaux de commande du plan mémoire à partir d'un couple de 15 paramètres (tension de programmation - durée d'application). Selon un mode de réalisation, les deux durées possibles qui diffèrent selon le mode de programmation sont stockées dans le contrôleur 28. Selon un autre mode de réalisation, ces informations sont transmises avec une instruction d'écriture. 20 Selon un mode de réalisation préféré, la programmation de la mémoire est effectuée par un procédé dit de tension répartie (split voltage). Cela revient à appliquer un potentiel positif sur la ligne de bit et un potentiel négatif sur la ligne de commande CL. 25 Les figures aA et 5B sont des chronogrammes illustrant le fonctionnement de la mémoire dans le mode dit normal (MODE 2), c'est-à-dire avec une tension de programmation choisie en fonction du nombre de cycles attendus pendant la vie de la mémoire. La figure aA illustre l'allure de la tension appliquée 30 sur la ligne de bit BL. La figure 5B illustre l'allure de la tension appliquée sur la ligne CL. Une première étape représente l'effacement de la plage de cellules dans laquelle des données doivent être stockées. Typiquement, cet effacement s'effectue par page (zone) entière 35 de la mémoire. L'effacement consiste à porter les lignes de B13157 - 13-R0-0949 9 commande CL à un potentiel positif VE supérieur au potentiel Vdd, sans adresser les lignes de bits, c'est-à-dire en laissant la ligne de bit au repos (à la masse). La tension VE est typiquement dans un rapport d'au moins 3 par rapport à la tension Vdd, par exemple de l'ordre d'une quinzaine de volts par rapport à une tension Vdd de quelques volts. Cette tension VE est appliquée pendant une durée TE fonction de la durée nécessaire à l'obtention de l'effacement. Cette durée TE est connue pour une mémoire donnée. Selon l'architecture retenue, l'effacement s'effectue par octets, par groupes d'octets d'une même page, par pages entières, par groupes de pages ou pour le plan mémoire entier. Une fois l'effacement réalisé, la programmation de données dans le mode normal s'effectue en portant la ligne de bit BL à un potentiel V2 et la ligne de commande CL a un potentiel -HT2+V2. Ainsi, la tension V entre lignes de bits et lignes de commande présente bien une valeur HT2. A titre d'exemple particulier de réalisation, le potentiel V2 est de quelques volts et la tension -HT2+V2 est de l'ordre de -10 volts par rapport à la masse. Les étapes de programmation se répètent pour chaque ligne de mot. Dans l'exemple des figures 5A et 5B, deux étapes ont été illustrées. On suppose qu'une programmation sous la tension HT2 prend un temps T2. Les figures 6A. et 6B illustrent, sous forme de chronogrammes, une programmation dans le mode dit, global (MODE1). La figure 6A. représente l'allure du potentiel sur la ligne de bit BL. La figure 6B représente l'allure du potentiel imposé sur la ligne CL. Après une phase d'effacement, dans cet exemple similaire à la phase d'effacement des figures 5A et 5B, la programmation s'effectue pour le plan mémoire entier ou par page de celui-ci en appliquant un potentiel V1 sur la ligne de bit BL et un potentiel -HT1+V1 sur la ligne CL, de sorte que la tension V entre ligne de bit et ligne de commande prend la valeur HT1. On suppose qu'une programmation sous la tension HT1 prend un temps Tl. B13157 - 13-R0-0949 10 Les périodes Tl et T2 de programmation s'expriment pour la quantité maximum de données pouvant être programmées en une seule passe, par exemple par rangée, par zone, par page. Ce qu'il importe de constater est que, pour une entité donnée (rangée, zone, page, plan), la tension HT1 étant supérieure à la tension HT2, la période Tl est inférieure à la période T2. Pour faire ressortir cet aspect, on a supposé arbitrairement que l'entité de référence était la même aux figures 5A, 5B et aux figures 6A, 6B. En pratique, le mode global sera réservé à des programmations d'entités de taille élevée (de préférence, page ou plan). Les figures 7A. et 7B sont des chronogrammes représentant respectivement un exemple d'allure du potentiel de la ligne de bit BL et du potentiel de la ligne de commande CL selon 15 un autre mode de réalisation. On prévoit ici ne de pas effacer le plan mémoire entièrement avant une opération de programmation mais de l'effacer page par page en appliquant une tension positive VE' supérieure à la tension VE, de façon à accélérer cet effacement. 20 Différents modes de réalisation sont envisageables en fonction des caractéristiques de la mémoire. Par exemple, on pourra effectuer une sélection du mode de programmation par code opératoire activable indéfiniment pendant la vie de la mémoire ou inhiber automatiquement cette possibilité au-delà d'un 25 certain nombre d'activations afin de préserver la durée de vie de la mémoire. Selon un autre exemple, un nombre de premières programmations sont automatiquement dans le premier mode et la mémoire commute après dans le second mode de façon définitive. Ce nombre de premières programmations est, par exemple, contrôlé 30 par un compteur en mémoire non volatile. Selon encore un autre exemple de réalisation, on peut compter le nombre de programmations par secteur concerné de la mémoire ou au niveau du plan mémoire. Un avantage des modes de réalisation qui ont été 35 décrits est qu'il est désormais possible de programmer une B13157 - 13-R0-0949 11 mémoire EEPROM de façon rapide pour programmer des pages entières sans nuire de façon significative à sa durée de vie. Les modes de réalisation décrits trouvent un intérêt tout particulier dans des produits nécessitant une programmation 5 en usine ou des mises en jour de grandes quantités de données en une seule fois. Divers modes de réalisation ont été décrits. Diverses variantes et modifications apparaîtront à l'homme de l'art. En particulier, la mise en oeuvre pratique des modes de réalisation 10 qui ont été décrits, comme par exemple la détermination des durées Tl et T2 pendant lesquelles appliquer les tensions de programmation, est à la portée de l'homme du métier à partir des indications fonctionnelles données ci-dessus. De plus, on pourra prévoir de limiter le nombre de programmations dans le premier 15 mode à un nombre inférieur dans un rapport d'au moins dix, de préférence d'au moins mille, au nombre de cycles de programmation possibles dans le deuxième mode. REVENDICATIONS1. Procédé de programmation d'une mémoire EEPROM comportant : un premier mode (MODE1) dans lequel une écriture dans des cellules s'effectue sous une première tension (HT1) ; et un deuxième mode (MODE2) dans lequel l'écriture s'effectue sous une deuxième tension (HT2), inférieure à la première. 2. Procédé selon la revendication 1, dans lequel les première et deuxième tensions (HT1, HT2) sont supérieures à 10 une troisième tension (Vdd) de lecture de la mémoire. 3. Procédé selon la revendication 1 ou 2, dans lequel les première et deuxième tensions (HT1, HT2) sont appliquées entre une ligne de bit (BL) et des grilles (CL) de transistors (M26) constituant les points mémoires. 15 4. Procédé selon l'une quelconque des revendi- cations 1 à 3, dans lequel le nombre de programmations dans le premier mode (MODE1) est limité à un nombre inférieur, dans un rapport d'au moins dix, de préférence d'au moins mille, au nombre de cycles de programmation possibles dans le deuxième 20 mode (MODE2). 5. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel au moins une étape d'effacement est, dans le premier mode (MODE1), réalisée sous une tension supérieure à celle utilisée pour un effacement dans le second 25 mode (MODE2). 6. Procédé selon l'une quelconque des revendications 1 à 5, dans lequel le nombre de passages dans le premier mode est limité. 7. Procédé selon l'une quelconque des revendi30 cations 1 à 6, dans lequel un nombre donné de programmations est effectué dans le premier mode, puis seul le second mode est utilisé. 8. Mémoire EEPROM adaptée à un fonctionnement selon deux modes selon l'une quelconque des revendications 1 à 7.B13157 - 13-R0-0949 13 9. Mémoire selon la revendication 8, comportant un contrôleur (28) capable de fournir les première et deuxième tensions (HT1, HT2). 10. Circuit électronique comportant une mémoire 5 selon la revendication 8 ou 9. 11. Système comportant : au moins une mémoire (2) conforme à la revendication 8 ou 9 ; et au moins un circuit (3) communiquant avec la mémoire 10 pour y lire ou écrire des données.