Brevet FR2865311A1 — publié le 20050722

Mémoire reprogrammable électriquement de type EEPROM et microcontrôleur correspondant. 1. Domaine de l'invention Le domaine de l'invention est celui des circuits intégrés, et notamment celui des mémoires de stockage d'informations, utilisées en tant que blocs indépendants ou embarqués dans de tels circuits. L'invention concerne plus précisément les mémoires non volatiles de type EEPROM (pour l'anglais Erasable Electrically Programmable Read Only Memory , en français "mémoire morte effaçable programmable électriquement"). 2. Art antérieur et ses inconvénients On connaît déjà de nombreuses mémoires non volatiles de type EEPROM, qui sont utilisées dans un très large champ d'applications électroniques. Parmi celles-ci, on notera notamment l'existence de mémoires à plusieurs banques, qui peuvent présenter des ports d'entrées et de sorties séparés ou non. Des logiques de contrôle distinctes peuvent être associées à chacune des deux banques. Un exemple connu est celui d'une mémoire non volatile, reprogrammable électriquement de type EEPROM, à deux banques (ou zones mémoires) séparées par une interface, appelée séparateur, permettant de relier ou pas les lignes de bits (généralement représentées verticalement, et aussi appelées colonnes) des deux zones entre elles. Ces deux zones comprennent généralement une zone dite principale et une zone dite secondaire. Un registre de page (registre tampon périphérique) servant à l'écriture est accolé à l'une des deux banques, souvent la zone principale, et un bloc de lecture, incluant le décodage des lignes de bits, est accolé à l'autre banque, souvent la zone secondaire. Lorsque l'interface, ou séparateur, isole complètement les deux zones mémoires, cette configuration permet des opérations simultanées d'écriture et de lecture dans la mémoire. Ceci permet notamment la programmation de la zone mémoire principale (dans laquelle on réalise alors une opération d'écriture) à partir de l'exécution d'instructions enregistrées dans la zone mémoire secondaire 2865311 2 (dans laquelle on réalise une opération de lecture). La présence d'une telle interface, ou séparateur, est requise pour pouvoir réaliser des opérations simultanées d'écriture, nécessitant l'application de hautes tensions, et de lecture, pour lesquelles les tensions appliquées sont moins élevées. Lorsque l'interface relie les lignes de bits des deux zones mémoires, l'écriture ou la lecture peuvent se faire dans n'importe laquelle des deux zones mémoires. L'inconvénient majeur de cette architecture adaptée aux opérations simultanées de lecture et d'écriture est qu'elle ne permet pas d'inverser les modes d'écriture et de lecture entre les deux zones mémoires. De plus, avec une telle architecture, la lecture de la zone mémoire principale se fait nécessairement en passant au travers de l'interface de séparation, ce qui induit une dégradation notable des performances de la zone mémoire principale, par rapport à la zone mémoire secondaire. Une telle dégradation est d'autant plus regrettable que la zone mémoire secondaire est généralement lue plus rarement que la zone principale (hormis pendant la phase de programmation de cette dernière). 3. Objectifs de l'invention L'invention a notamment pour objectif de pallier ces différents inconvénients de l'art antérieur. Plus précisément, un objectif de l'invention est de fournir une mémoire reprogrammable électriquement de type EEPROM comprenant deux zones mémoires, dans lesquelles peuvent être réalisées des opérations simultanées d'écriture et de lecture. L'invention a aussi pour objectif de proposer une telle mémoire dans laquelle les opérations simultanées de lecture et d'écriture peuvent être permutées entre les deux zones mémoires. L'invention a également pour objectif de fournir une telle mémoire dans laquelle les performances en lecture peuvent être optimisées, par rapport aux mémoires de l'art antérieur, sur chacune des deux zones mémoires. L'invention a encore pour objectif de proposer une telle mémoire qui soit 2865311 3 simple et peu coûteuse à mettre en oeuvre. 4. Caractéristiques essentielles de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'une mémoire reprogrammable électriquement de type EEPROM comprenant deux zones mémoire, ou banques, séparées par des moyens de séparation, et comprenant au moins un registre d'écriture et au moins un registre de lecture. Selon l'invention, lesdits moyens de séparation sont formés par un registre d'écriture central intercalé entre lesdites banques, et permettant l'écriture de 10 données dans chacune desdites banques. Ainsi, l'invention repose sur une approche tout à fait nouvelle et inventive de la conception de mémoires non volatiles pour lesquelles l'écriture au moins est réalisée par effet tunnel, et notamment de mémoires reprogrammables électriquement de type EEPROM, présentant deux zones de mémoire distinctes. Au lieu d'utiliser un séparateur classique réalisant l'interface entre les deux zones mémoires, l'invention propose en effet de réaliser la séparation entre les deux banques au moyen d'un registre de page, qui remplit donc un double rôle de registre d'écriture et d'interface entre les deux zones mémoires en mode d'écriture. Un tel registre d'écriture central réalise ainsi une fonction de contrôle haut vers bas pour les opérations d'écriture dans chacune des deux banques, c'est-à-dire une fonction de multiplexage. L'invention permet ainsi de s'affranchir des différents inconvénients de l'art antérieur, et notamment de la dégradation des performances en lecture des différentes banques, liées à la présence du séparateur. Avantageusement, une telle mémoire comprend un registre de lecture à chacune de ses extrémités. La mémoire comprend alors deux registres de lecture associés à chacune des deux banques. Préférentiellement, ledit registre d'écriture central est un registre de page 30 permettant de paralléliser l'écriture dans lesdites banques. 2865311 4 Ceci est particulièrement avantageux en mode de test, lorsque l'on souhaite écriture simultanément dans chacune des deux banques haute et basse. De façon avantageuse, ledit registre d'écriture central est conçu de façon que des opérations de lecture dans l'une desdites banques et d'écriture dans l'autre desdites banques puissent être effectuées simultanément. Quatre modes de fonctionnement sont alors possibles: - écriture dans la première banque et lecture simultanée dans la seconde banque; écriture dans la seconde banque et lecture simultanée dans la première banque; écriture simultanée dans les deux banques; - lecture simultanée dans les deux banques. Selon une caractéristique préférentielle de l'invention, les bus associés à chacune desdites banques sont de formats différents. Par exemple, le format du bus de données en sortie de la zone mémoire principale est de deux ou quatre mots, et le format du bus de données en sortie de la zone mémoire secondaire est d'un mot. Les deux bus de données des deux zones mémoire peuvent être ou non multiplexées sur le même port de sortie. Avantageusement, au moins une desdites banques est programmable par page et par mot, une page correspondant à une ligne de ladite banque et comprenant au moins deux mots. En effet, l'architecture proposée par l'invention est utilisable avec les mémoires qui, en plus d'un mode page, conservent un accès par mot à la programmation. Selon une première variante de l'invention, ledit registre d'écriture central comprend des moyens de contrôle d'un transistor de sélection de mot. De façon avantageuse, lesdits moyens de contrôle permettent d'assurer l'effacement sélectif d'un ou plusieurs mot(s) dans la même page. Ainsi, un transistor de sélection de mot, commun à plusieurs cellules (par exemple 8 cellules mémoires dans le cas d'un octet), est contrôlé par le registre de 2865311 5 page central pour réaliser l'effacement sélectif d'un ou plusieurs mots dans la même page. Selon une deuxième variante de l'invention, une première desdites banques est programmable par page et par mot et une seconde desdites banques est 5 programmable uniquement par page. Les deux zones mémoires n'ont alors pas le même type d'accès en programmation: par exemple, une zone mémoire principale est accessible par page seulement et une zone mémoire secondaire est accessible par page et aussi par mot. Avantageusement, ledit registre d'écriture central comprend: pour chaque colonne de ladite mémoire, un point mémoire formé par quatre transistors; des moyens d'accès audit point mémoire, comprenant un transistor pour chacune desdites banques. De manière préférentielle, l'une desdites banques est une zone mémoire principale destinée au stockage d'au moins une application (APPLI), et l'autre desdites banques est une zone mémoire secondaire destinée au stockage d'un logiciel de démarrage et/ou de reprogrammation (BOOT). Avantageusement, une telle mémoire est embarquée dans un 20 microcontrôleur. L'invention concerne aussi un microcontrôleur comprenant une mémoire reprogrammable électriquement de type EEPROM comprenant deux zones mémoire, ou banques, séparées par des moyens de séparation, et comprenant au moins un registre d'écriture et au moins un registre de lecture, lesdits moyens de séparation étant formés par un registre d'écriture central intercalé entre lesdites banques, et permettant l'écriture de données dans chacune desdites banques. 6. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation 30 préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des 2865311 6 dessins annexés, parmi lesquels: - la figure 1 présente un synoptique de l'architecture d'une mémoire présentant un registre d'écriture central selon l'invention; la figure 2 illustre le schéma de principe du registre d'écriture central de la figure 1. 7. Description d'un mode de réalisation de l'invention Le principe général de l'invention repose sur l'utilisation d'un registre d'écriture central, jouant le rôle d'interface entre deux zones mémoires d'une mémoire reprogrammable électriquement de type EEPROM, de façon à permettre des opérations simultanées d'écriture et de lecture dans chacune des deux zones. L'utilisation d'un registre d'écriture central comme séparateur entre les deux zones mémoire permet d'optimiser les performances en lecture dans chacune des deux zones, et de permuter les opérations simultanées d'écriture et de lecture entre les deux zones mémoire. On présente, en relation avec la figure 1, un mode de réalisation d'une mémoire de type EEPROM, comprenant deux zones mémoires ou banques, séparées par un registre de page. Plus précisément, la mémoire 1 de la figure 1 comprend une zone mémoire principale 11, appelée APPLI (ou CODE), et une zone mémoire secondaire 10, appelée BOOT. La zone BOOT 10 contient un logiciel de démarrage et de reprogrammation, et la zone APPLI 11 contient par exemple une application logicielle client. Au milieu de ces deux banques 10 et 11, on insère un registre de page 18, qui sert à paralléliser l'écriture dans les deux zones principale 11 et secondaire 10. Dans l'exemple particulier de la figure 1, la mémoire EEPROM 1 comprend également deux registres de lecture 19 et 20 associés respectivement à chacune des deux banques APPLI 11 et BOOT 10. Une sortie haute 13 et une sortie basse 12 sont prévues pour chacun des registres de lecture haut 19 et bas 20: elles constituent les sorties des deux zones mémoires 11 et 10 pour les opérations de lecture dans la mémoire 1. 2865311 7 Le registre de page 18 joue donc le rôle d'interface entre les deux zones mémoire 10 et 11 en mode d'écriture, ces deux zones disposant chacune d'un bloc de lecture 19, 20 qui leur est propre. Les formats de bus de données sur les sorties 12 et 13 peuvent ne pas être identiques. Par exemple, le format du bus de données sur la sortie 13 de la zone principale 11 peut être de deux ou quatre mots, alors que le format du bus de données sur la sortie 12 de la zone secondaire 10 est d'un mot. Les deux bus de données des deux zones mémoire 10 et 11 peuvent être ou non multiplexés sur le même port de sortie. La mémoire 1 comprend encore une logique de contrôle 16 et un module de décodage 17, qui permet de décoder les adresses qui entrent dans la mémoire 1 par l'entrée 14 "adresses code". L'entrée référencée 15 constitue quant à elle une entrée de données. Ces deux entrées 14 et 15 sont utilisées pour réaliser des opérations d'écriture dans la mémoire 1: les informations entrantes par l'entrée 14 représentent, après décodage par le module de décodage 17, l'adresse à laquelle les données entrantes par l'entrée référencée 15 doivent être écrites dans la mémoire. Dans l'exemple de la figure 1, et comme illustré schématiquement par la taille de chacun des deux blocs APPLI 11 et BOOT 10, la capacité mémoire de la zone secondaire 10 est très inférieure à celle de la zone principale 11. De cette façon, la lecture de la zone secondaire 10 peut être beaucoup plus rapide. La figure 2 illustre plus en détail l'élément central de la figure 1, constitué par le registre de page 18, utilisé pour chaque colonne (ou ligne de bit) des banques APPLI 11 et BOOT 10. Un tel registre de page 18 comprend: un point mémoire de type latch, constitué de quatre transistors T1, T2, T3 et T4; des moyens d'accès à ce point mémoire de type latch par les lignes de bit de chacune des deux banques 10 et 11. Ces moyens d'accès sont réalisés, dans l'exemple de la figure 2, par le transistor référencé T5 pour la zone 2865311 8 mémoire principale APPLI 11, et par le transistor référencé T6 pour la zone mémoire secondaire BOOT 10. Les signaux sel_boot et sel_code permettent respectivement de sélectionner un mode d'écriture dans la zone mémoire secondaire BOOT 10, ou dans la zone mémoire principale APPLI 11. Plus précisément, les signaux de contrôle sel_boot et sel_code permettent d'isoler ou de connecter le registre de page 18 aux lignes de bit des banques mémoire 10, 11, afin d'obtenir les quatre modes de fonctionnement listés dans le tableau ci-dessous: sel_code sel_boot modes de fonctionnement inactif (niveau bas) inactif (niveau bas) registre de page 18 déconnecté des 2 zones mémoires 10 et 11 actif (niveau haut) inactif (niveau bas) programmation de la zone mémoire code 11 inactif (niveau bas) actif (niveau haut) programmation de la zone mémoire boot 10 actif (niveau haut) actif (niveau haut) programmation des zones mémoires boot 10 et code Ainsi, lorsque les deux signaux sel_code et sel_boot sont inactifs, le registre de page central 18 est déconnecté des deux banques APPLI 11 et BOOT 10. Lorsque l'un seulement de ces deux signaux est actif, la mémoire EEPROM 11 passe en mode de programmation de la zone mémoire correspondante (par exemple de la zone secondaire BOOT 10 si le signal sel_boot est actif). Enfin, lorsque les deux signaux sel_boot et sel_code sont actifs, on peut procéder à une écriture simultanée dans chacune des deux zones mémoire APPLI 11 et BOOT 10. Les signaux bitline_boot et bitline_code représentent quant à eux la ligne de bits (ou colonne) de chacune des banques BOOT 10 et APPLI 11 sur laquelle doit être réalisée l'opération d'écriture. Le mécanisme de programmation proposé par l'invention consomme un courant très faible. De ce fait, toutes les cellules d'une même page (ou d'une ligne) peuvent être écrites en même temps, en utilisant un registre de page 18 initialisé au contenu désiré au préalable. L'écriture se fait en mode page, comme l'effacement. Les deux zones mémoire 10 et 11 sont programmables par page. 2865311 9 Dans une première variante de réalisation, la mémoire 1 conserve, en plus du mode page, un accès par mot à la programmation. Dans ce cas, un transistor de sélection de mot, commun à plusieurs cellules (par exemple 8 cellules mémoires dans le cas d'un octet) est contrôlé par le registre de page 18 pour réaliser l'effacement sélectif d'un ou plusieurs mots dans la même page. Les deux zones mémoire 10 et 11 sont alors programmables par page et par mot. Dans une deuxième variante de réalisation, les deux zones mémoire 10 et 11 n'ont pas le même type d'accès en programmation: par exemple, la zone mémoire principale 11 est accessible par page seulement, et la zone mémoire secondaire 10 est accessible par page et par mot. La mémoire EEPROM 1 de l'invention trouve de nombreuses applications dans tous les secteurs de l'électronique. Elle présente un intérêt tout particulier dans le domaine des mémoires embarquées dans un circuit à base de microcontrôleur, afin de permettre la programmation de la zone mémoire principale 11 à partir de l'exécution de la zone mémoire secondaire 10, depuis l'application. Dans cette configuration, la zone mémoire secondaire 10 a par exemple été au préalable programmée par téléchargement depuis l'extérieur. REVENDICATIONS 1. Mémoire (1) reprogrammable électriquement de type EEPROM comprenant deux zones mémoires, ou banques (10, 11), séparées par des moyens de séparation, et comprenant au moins un registre d'écriture et au moins un registre de lecture, caractérisé en ce que lesdits moyens de séparation sont formés par un registre d'écriture central intercalé entre lesdites banques (10, 11), et permettant l'écriture de données dans chacune desdites banques (10, 11). 2. Mémoire (1) selon la revendication 1, caractérisé en ce qu'elle comprend 10 un registre de lecture à chacune de ses extrémités. 3. Mémoire (1) selon l'une quelconque des revendications 1 et 2, caractérisé en ce que ledit registre d'écriture central est un registre de page (18) permettant de paralléliser l'écriture dans lesdites banques (10, 11). 4. Mémoire (1) selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ledit registre d'écriture central est conçu de façon que des opérations de lecture dans l'une desdites banques et d'écriture dans l'autre desdites banques puissent être effectuées simultanément. 5. Mémoire (1) selon l'une quelconque des revendications 1 à 4, caractérisé en ce que les bus associés à chacune desdites banques (10, 11) sont de formats 20 différents. 6. Mémoire (1) selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'au moins une desdites banques est programmable par page et par mot, une page correspondant à une ligne de ladite banque et comprenant au moins deux mots. 7. Mémoire (1) selon la revendication 6, caractérisé en ce que ledit registre d'écriture central comprend des moyens de contrôle d'un transistor de sélection de mot. 8. Mémoire (1) selon la revendication 7, caractérisé en ce que lesdits moyens de contrôle permettent d'assurer l'effacement sélectif d'un ou plusieurs mot(s) dans 30 la même page. 2865311 11 9. Mémoire (1) selon la revendication 6, caractérisé en ce qu'une première desdites banques est programmable par page et par mot et une seconde desdites banques est programmable uniquement par page. 10. Mémoire (1) selon l'une quelconque des revendications 1 à 9, caractérisé 5 en ce que ledit registre d'écriture central comprend: pour chaque colonne de ladite mémoire (1), un point mémoire formé par quatre transistors (Ti, T2, T3,T4) ; des moyens d'accès audit point mémoire, comprenant un transitor pour chacune desdites banques (10, 11). 11. Mémoire (1) selon l'une quelconque des revendications 1 à 10, caractérisé en ce que l'une desdites banques est une zone mémoire principale (11) destinée au stockage d'au moins une application (APPLI), et en ce que l'autres desdites banques est une zone mémoire secondaire (10) destinée au stockage d'un logiciel de démarrage et/ou de reprogrammation (BOOT). 12. Mémoire (1) selon l'une quelconque des revendications 1 à 11, caractérisé en ce qu'elle est embarquée dans un microcontrôleur. 13. Microcontrôleur caractérisé en ce qu'il comprend une mémoire reprogrammable électriquement de type EEPROM comprenant deux zones mémoire, ou banques (10, 11), séparées par des moyens de séparation, et comprenant au moins un registre d'écriture et au moins un registre de lecture, lesdits moyens de séparation étant formés par un registre d'écriture central intercalé entre lesdites banques (10, 11), et permettant l'écriture de données dans chacune desdites banques (10, 11).