Brevet FR2667418A1 — publié le 19920403

CIRCUIT INTEGRE COMPORTANT UNE MEMOIRE D'APPLICATION ET CARTE A PUCE MUNIE D'UN TEL CIRCUIT. La présente invention se rapporte aux circuits intégrés qui comportent une mémoire d'application que l'on peut diviser en zones présentant des fonctionnalités différentes. Elle s'applique plus particulièrement aux circuits intégrés qui comprennent des circuits d'exploitation de la mémoire formant une logique simple ne constituant pas un microprocesseur. Ces circuits sont surtout utilisés dans les cartes à mémoire, dites à puce", pour lesquelles le prix de revient est un paramètre important qui serait trop élevé par le coût d'un microprocesseur. Lorsqu'un circuit intégré comportant une mémoire est muni d'un microprocesseur, il est très facile de gérer cette mémoire par logiciel en y définissant des zones dont les fonctionnalités et les emplacements physiques sont déterminés par les instructions du logiciel. Cette gestion est alors très souple puisqu'il suffit de modifier quelques instructions pour modifier la répartition et les fonctionnalités des zones. Quand un circuit intégré comportant une mémoire n'est pas muni d'un microprocesseur, mais seulement de quelques circuits logiques permettant l'accès à cette mémoire en lecture, écriture et programmation, on définit généralement les emplacements et les fonctionnalités des différentes zones de la mémoire lors de la fabrication du circuit en utilisant des masques appropriés. Pour modifier ces zones il faut donc modifier les masques, ce qui est une procédure lourde, longue et coûteuse. Pour pallier ces inconvénients, l'invention propose un circuit intégré comportant une mémoire d'application formée de mots et des moyens pour adresser ces mots, caractérisé en ce qu'il comprend en outre une mémoire de zones formée d'autant de mots que la mémoire d'application ; ces mots étant associés un par un aux mots de la mémoire d'application pour définir la fonctionnalité de ceux-ci et pouvant être programmés après la fabrication du circuit intégré. Par ailleurs, l'invention n'est pas exclusive pour les circuits ne comportant pas de microprocesseurs, mais elle peut aussi s'utiliser dans de tels circuits en combinant ses avantages propres à ceux provenant de l'utilisation d'un tel microprocesseur. D'autres particularités et avantages de l'invention apparaîtront clairement dans la description suivante faite en regard des figures annexées qui représentent - la figure 1, une répartition des zones dans une mémoire de circuit intégré; - la figure 2, un schéma partiel d'un circuit intégré selon l'invention - la figure 3, un schéma électrique de deux mots de mémoire du circuit de la figure 2 ; et - les figures 4 à 6, des schémas de réalisations particulières des cellules de la mémoire de zones. On a représenté sur la figure 1 un exemple de répartition de zones dans la mémoire d'un circuit de type synchrone, c'est-à-dire sans microprocesseur, pour carte à puce. Ces zones comprennent des zones mémoire 101 à 104, de type connu ROM, EEPROM, EPROM, et PROM, ainsi qu'une zone 105 comportant un ou plusieurs codes, destinés par exemple à la protection du circuit, et une zone 106 destinée à servir de compteur, par exemple pour compter le nombre d'utilisations du circuit. Selon l'art connu, l'emplacement et le contenu des zones 101 à 106 seraient déterminés par les masques utilisés lors de la fabrication du circuit. Selon l'invention, on utilise, comme représenté en figure 2, une mémoire d'application 201, associée à une mémoire de zones 202. Ces mémoires, dont on n'a représenté qu'une partie, sont associées de manière à ce qu'un mot de l'une corresponde à un mot de l'autre. L'adressage de ces mots est effectué par un circuit d'adressage 203, dont les lignes de sortie 204 commandent chacune la sélection d'un mot de la mémoire d'application et du mot correspondant de la mémoire de zones. Selon une pratique courante, les circuits intégrés sont livrés vierges, à ltexception peut-être de quelques mots de protection, par le fabricant de circuits au fabricant de dispositifs intégrant ces circuits, un fabricant de cartes à puce par exemple. Ce dernier teste les circuits et les personnalise, à une étape de la fabrication variable selon le cas, en inscrivant dans la mémoire diverses données nécessaires pour l'usage qui sera ensuite fait du dispositif comportant le circuit. Cette personnalisation concerne la mémoire d'application. Selon l'invention, pendant cette étape de personnalisation on inscrit dans la mémoire de zones les données qui indiquent pour chaque mot la zone à laquelle il est affecté. Ainsi, par exemple dans le cas d'une mémoire d'application qui est initialement de type EEPROM, avec des mots de configuration de 2 bits on peut définir dans la mémoire d'application quatre zones telles que 00 EEPROM (toute opération est permise) 01 EPROM (seule la programmation et la lecture sont permises) 10 ROM (seule la lecture est permise) îl compteur des unités de programmation Bien entendu, plus les mots de la mémoire de zones comporteront de bits, plus on pourra définir des types de zones différents. Pour faciliter la réalisation physique du composant, il peut être utile d'avoir des mots de même longueur dans la mémoire de zones et dans la mémoire d'application, même si on n'utilise qu'une seule partie des mots de la mémoire de zones. Les adresses des mots correspondants sont ainsi les mêmes. Comme bien souvent les mots de la mémoire d'application sont d'une longueur de 16 bits, on voit que l'on n'a pas de limite pratique au nombre de zones que l'on peut définir. Cependant, l'utilisation d'un nombre de bits différent de 8 ou 16 ne pose aucun problème d'implantation. Il peut permettre d'économiser de la place en diminuant le nombre de bits inutiles. L'adressage de chacun de ces mots se fait par la même ligne de mot que pour la mémoire d'application. L'inscription dans la mémoire d'application des mots destinés à la personnaliser se fait, selon le cas, avant ou après l'inscription des mots dans la mémoire de zones. Ainsi, par exemple, pour une zone définie comme étant une ROM, dont on ne peut donc plus changer le contenu pendant l'application, on inscrira le contenu de cette zone avant d'inscrire celui des mots correspondants de la mémoire de zone puisque, par principe, ce seront ces derniers qui, en définissant la zone comme étant une ROM, vont interdire l'écriture dans celle-ci. Lorsque la personnalisation du circuit est terminée, on fait basculer celui-ci dans un stade où il est disponible pour l'application et où on ne peut plus, en principe, modifier la personnalisation. Dans ce stadé, on pourra, si on le souhaite, interdire la lecture (en sortie du circuit) de la mémoire de zones, si cette lecture était autorisée pendant la personnalisation, par exemple par positionnement d'un signal extérieur, envoi d'une instruction, ou écriture d'un bit dans un registre adéquat. On peut par exemple rendre ce basculement irréversible en brulant un fusible. Lors du fonctionnement de l'application, les mots de la mémoire de zone 202 sont donc adressés en même'temps que ceux de la mémoire d'application 201 et sont systématiquement lus Le contenu du mot de zone ainsi lu est appliqué à un décodeur 205 qui permet de déterminer la zone à laquelle appartient le mot d'application correspondant et donc les fonctions autorisées, interdites, ou obligatoires. Le décodeur 205 adresse alors un signal de commande adéquat à des circuits de fonction 206 qui permettent d'obtenir ces fonctions. Ainsi dans 1' exemple représenté, le circuit 206 sert de registre d'écriture/lecture des mots de la mémoire d'application et, dans le cas où la zone déterminée par le mot lu dans la mémoire de zone est une ROM, le décodeur 205 bloque la fonction écriture du registre 206 et autorise seulement la fonction lecture Dans un autre exemple, si la zone correspond à un compteur, le circuit 206 incrémente d'une unité le contenu du mot de la mémoire d'application. On a représenté sur la figure 3 un exemple de réalisation électrique d'un mot 301 d'une mémoire d'application et du mot correspondant 302 d'une mémoire de zone, toutes deux du type EEPROM comme décrit dans l'exemple précédent. Le mot 301 comprend 16 cellules de 1 bit, dont 3 seulement sont représentées. Ces cellules sont formées chacune d'un transistor de lecture individuel 303 en série avec un transistor de mémorisation effaçable 304. Les sources des transistors 304 sont reliées ensemble et on leur applique un signal AG1 qui dépend de la fonction, lecture par exemple, activée. Les drains des transistors 303 sont reliés aux circuits d'exploitation tels que 206 par des connexions sur lesquelles apparaissent par exemple les signaux de lecture BL1 à BL16. Un transistor 305 commun de lecture reçoit sur son drain un signal de lecture VS1 qu'il vient appliquer par sa source à toutes les grilles des transistors 304, lorsque la lecture est activée. Enfin, les grilles des transistors 303 et celle du transistor 305 sont reliées ensemble à la ligne d'adressage 204, qui reçoit par exemple du décodeur 203, un signal L1 qui permet la sélection simultanée de tous les bits du mot 301. Toute cette organisation est classique et on ne décrira pas plus avant son fonctionnement. La structure du mot 302 est tout à fait semblable à celle du mot 301, sauf qu'elle ne comporte que trois cellules correspondant ainsi à 3 bits. Chaque cellule comporte un transistor 313 en série avec un transistor de mémorisation effaçable 314. Les sources des transistors 314 sont reliées ensemble et reçoivent un signal AG2. Les drains des transistors 313 reçoivent ou émettent des signaux S1 à S3, et un transistor commun de lecture 313 reçoit sur son drain un signal de lecture VS2 qu'il transmet aux grilles des transistors 314. Comme AG2 et VS2 sont séparés on peut donc commander de manière séparée les mots 301 et 302, et par exemple programmer le mot 302 sans toucher au mot 301, soit qu'il soit déjà écrit, soit qu'il reste vierge. Par contre, la ligne d'adressage 204 est commune aux deux mots et vient relier ensemble les grilles des transistors 313 et celle du transistor 315. Ainsi, on adresse toujours simultanément les deux mots, même si leur fonctionnement n'est pas simultanément le même, comme vu plus haut. Pour programmer le mot 302, il faut appliquer les signaux suivants - L1 = 20 V - VS2 = 0V - AG2 flottant ou > 10 V - S1, S2, S3 = 20 V lorsque le bit correspondant doit être programmé. A titre de variante, on peut prévoir de figer à la fabrication du circuit certains bits de certains mots dans la mémoire de zone. Pour cela, on peut remplacer les cellules correspondant à ces bits par des cellules comme celles représentées sur les figures 4 à 6. Sur la figure 4, le transistor de mémoire est remplacé par une résistance 404 alimentée par un transistor de lecture 403. On obtient ainsi un bit 0. I1 en est de même sur la figure 5, où la résistance a été supprimée, le transistor de lecture 503 ayant lui-même une résistance suffisante. Enfin, avec le schéma de la figure 6, où le transistor 603 a sa source flottante non reliée à la connexion recevant le signal AG2, on obtient un bit 1. REVENDICATIONS 1 - Circuit intégré comportant une mémoire d'application formée de mots (301) et des moyens (203) pour adresser ces mots, caractérisé en ce qu'il comprend en outre une mémoire de zones (201) formée d'autant de mots (302) que la mémoire d'application ; ces mots étant associés un par un aux mots de la mémoire d'application pour définir la fonctionnalité de ceux-ci et pouvant être programmés après la fabrication du circuit intégré. 2 - Circuit intégré selon la revendication 1, caractérisé en ce que les moyens d'adressage (204) permettent d'adresser simultanément un mot (301) de la mémoire d'application et le mot associé (302) de la mémoire de zones. 3 - Circuit intégré selon l'une quelconque des revendications 1 et 2, caractérisé en ce qu'il comprend des moyens pour décoder (205) le contenu d'un mot (302) de la mémoire de zones, et des moyens (206) commandés par ces moyens de décodage pour autoriser les fonctionnalités permises par le contenu du mot de la mémoire de zones et interdire les autres. 4 - Circuit intégré selon la revendication 3, caractérisé en ce que les moyens (206) commandés par les moyens de décodage permettent d'interdire l'effacement des mots d'une zone. 5 - Circuit intégré selon l'une quelconque des revendications 3 et 4, caractérisé en ce que les moyens (206) commandés par les moyens de décodage permettent d'autoriser uniquement la lecture des mots d'une zone. 6 - Circuit intégré selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comprend des moyens permettant d'interdire la sortie du circuit de la lecture des mots de la mémoire de zones. 7 - Circuit intégré selon l'une quelconque des revendications 1 à 6, caractérisé en ce que les cellules mémoires (303-305) de la mémoire d'application et (313-315) de la mémoire de zones sont physiquement du même type les unes que les autres, alignées (21) les unes avec les autres, et lues et programmées par des dispositifs (205,206) physiquement et fonctionnellement différents. 8 - Carte à puce munie d'un circuit intégré selon l'une quelconque des revendications 1 à 7.