Brevet FR2646942A1 — publié le 19901116

La présente invention se rapporte à une carte à circuit intégré et plus particulièrement à une carte à circuit intégré qui stocke un programme d'application pour accomplir diverses fonctions requises pour l'utilisation de la carte à circuit intégré et qui stocke un programme de test pour tester la carte à circuit intégré elle-même (test de produit). Comme le programme de test force la carte à circuit intégré à accomplir son test de fonction (test de produit), il a pour fonction d'accéder à toute adresse souhaitée dans la mémoire de la carte à circuit intégré. Par conséquent, l'accès au programme de test doit être très sur afin d'être protégé contre toute intrusion illicite dans d'autres programmes de la carte à circuit intégré via le programme de test pour copier ou détruire ces programmes lors de leur lecture ou changer le contenu de ces programmes. Par conséquent, les cartes à circuit intégré sont agencées de manière qu'un code de passe y soit stocké au préalable, ledit code de passe étant toujours soumis à une action de confrontation avant accès au programme de test. La figure 1 donne un schéma bloc qui illustre schématiquement la structure d'une carte à circuit intégré conventionnelle. Une carte à circuit intégré 10 est conçue de manière qu'une mémoire morte 3 du système, une mémoire morte 4 d'application, une mémoire morte électriquement effaçable et programmable 5, une mémoire à accès aléatoire 6 et un circuit d'entrée/sortie 7 soient respectivement connectés à une unité centrale de traitement 1 via un bus interne 2. Afin d'offrir une sécurité d'accès au programme de test, un code de passe 51 et un code de conformation d'établissement 52 pour confirmer le fait que le code de passe 51 a été inscrit et stocké dans la mémoire morte électriquement effaçable et programmable 5 sont prévus. Une borne P1 est une borne d'entrée positive d'une source de courant, une borne P2 est une borne de terre de la source de courant, une borne P3 est une borne du signal de remise à l'état initial pour l'introduction d'un signal de remise à l'état initial pour l'initialisation de chaque bloc, une borne P4 est une borne d'horloge à laquelle est appliqué un signal d'horloge et une borne P5 est une borne d'entrée/sortie, la carte à circuit intégré pouvant être connectée à un équipement terminal par ces bornes P1 à P5. La figure 2 est un organigramme qui illustre les structures des programmes qui sont respectivement stockés dans la mémoire morte 3 du système servant de seconde mémoire morte et la mémoire morte 4 d'application servant de première mémoire morte. Un programme ou plusieurs programmes 41 d'application, stockés dans la mémoire morte d'application 4 sont des programmes pour accomplir diverses fonctions qui sont en réalité employées par les utilisateurs de la carte à circuit intégré. Un programme de test 31 stocké dans la mémoire 3 du système est un programme pour accomplir le test fonctionnel du produit de la carte 10. Une sous- routine 32 sert à déterminer si le programme de test 31 ou le programme d'application 41 est à exécuter et elle se branche au programme choisi. Une routine de ccnfirmation d'établissement 33 et une routine de confirmation de code de passe 34 sont prévues pour donner la sécurité d'accès au programme de test 31. Le code de passe 51 et le code de confirmation d'établissement 52 sont inscrits et stockés dans la mémoire morte électriquement effagable et programmable 5 qui sert de mémoire non volatile dans la carte à circuit intégré, par exemple, avant sortie d'usine de la carte à circuit intégré. Pour l'accès au programme de test 31 après envoi de la carte à circuit intégré, ce code de passe 51 et un code de passe introduit de l'extérieur de la carte à circuit intégré sont toujours confrontés l'un à l'autre avant cet accès. Par suite, uniquement lorsque les codes de passe ci-dessus coincident l'un avec l'autre, l'accès au programme de test 31 est permis. L'action de confrontation ci- dessus est accomplie selon la routine de confrontation de code de passe 34. Par ailleurs, le code 52 de confirmation d'établissement servant de code de confirmation d'écriture indiquant si oui ou non le code de passe a été stocké, est inscrit dans la mémoire morte électriquement effaçable et programmable 5 de manière à pouvoir déterminer si oui ou non le code de passe 51 a déjà été stocké selon ce code de confirmation d'établissement 52. L'action de confirmation ci-dessus est accomplie selon la routine 33 de confirmation d'établissement. Le code 52 de confirmation d'établissement doit être choisi afin de ne pas recouvrir la valeur initiale-de la mémoire morte électriquement effaçable et programmable 5 au moment de la fabrication de la carte à circuit intégré. On décrira ce qui précède, dans l'ordre, en se référant aux figures 1 et 2. Quand un signal de remise à l'état initial est introduit de l'extérieur de la carte à circuit intégré par la borne P3 du signal de remise à l'état initial, l'unité centrale de traitement 1 extrait une adresse de début d'exécution de la sous-routine 32 qui a été stocké au préalable à une adresse donnée dans la mémoire morte 3 du système pcur commencer l'exécution de la sous-routine 32 à partir de l'adresse de début d'exécution. Dans la sous-routine 32, l'unité centrale de traitement 1 provoque l'exécution de la routine 33 de confirmation d'établissement lorsqu'un ordre d'exécution du programme de test 31 est introduit à la borne P5 d'entrée/sortie, de l'extérieur. Dans la routine 33 de confirmation d'établissement, on détermine si oui ou non le code de passe 51 a déjà été inscrit dans la mémoire morte électriquement effaçable et programmable 5 selon le code de confirmation d'établissement 52 stocké dans la mémoire morte 5. Si le code de passe 51 a déjà été inscrit, la routine 34 de confontation de code de passe est exécutée. Si le code de passe 51 n'a pas encore été inscrit (par exemple quand le programme de test est exécuté pendant le procédé de fabrication), le programme de test 31 peut être directement exécuté sans accomplir la confrontation du code de passe. Dans la routine de confrontation de code de passe 34, la confrontation entre le code de passe 51 inscrit dans la mémoire morte électriquement effaçable programmable 5 et l0 le code de passe introduit à la borne d'entrée/sortie P5 est effectuée. Uniquement lorsque les deux codes de passe coïncident, le programme de test 31 peut être exécuté. S'ils ne coïncident pas, l'action est arrêtée. Quand le programme de test est exécuté pendant le procédé de fabrication, un autre code de passe (non illustré) peut être stccké dans la mémoire morte du système o le programme de test est stocké pour qu'ainsi une confrontation avec ce code de passe puisse être effectuée. L'utilisation d'un code de passe commun pour toutes les cartes à circuit intégré pendant la fabrication est pratique et par conséquent le code de passe stocké dans la mémoire morte du système est usuellement commun à toute carte à circuit intégré. Le code de passe inscrit dans la mémoire morte du système ne peut être de nouveau inscrit. Par ailleurs, il y a également des cartes à circuit intégré o toutes les structures internes montrées sur la figure 1 sont formées'sur un semiconducteur. Les cartes conventionnelles à circuit intégré sont structurées comme décrit ci-dessus et les codes de passe sont stockés soit dans la mémoire morte électriquement effaçable et programmable servant de mémoire non volatile ou dans la mémoire morte du système dans laquelle ont été stockés le programme de test et les routines ci-dessus. Cependant, si un code de passe est stocké dans la mémoire morte du système o le programme de test et les routines ont été stockés, le code de passe stocké ne peut être changé. Par ailleurs, si le code est stocké dans la mémoire morte électriquement effaçable et programmable, le code de passe stocké peut être lu, déterminé et écrit de nouveau par toute personne parce que le code de passe peut être extrait des programmes d'application employés par les utilisateurs. La présente invention a par conséquent pour objet de produire une carte à circuit intégré permettant de- surmonter les inconvénients ci-dessus décrits, o un code de passe qui est stocké peut être changé par le programme de test, mais auquel on ne peut avoir accès par les programmes d'application. Etant donné l'objectif ci-dessus, dans la présente invention, un moyen de restriction d'adresse est prévu sur le bus d'adresse afin de créer une région dans une mémoire morte électriquement effaçable et programmable à laquelle l'accès n'est permis que pendant l'exécution du programme de test et le code de passe est inscrit dans cette région de la mémoire morte électriquement effaçable et programmable. Par conséquent, la présente invention offre une carte à circuit intégré qui comprend un programme de test pour un test de produit qui contient: un moyen formant mémoire non volatile de validation d'écriture o un code de passe ou analogue pour offrir une sécurité concernant l'accès au programme de test est inscrit; un moyen formant mémoire morte stockant le programme de test, au moins un programme d'application pour exécuter diverses fonctions dans le but de l'utilisation de la carte à circuit intégré, une sous-routir.e pour déterminer si le programme de test ou le programme d'application doit être exécuté et des routines de confrontation de code de passe pour la confrontation du code de passe avec un code de passe introduit de l'extérieur de la carte à circuit intégré avant accès au programme de test; un moyen de commande pour exécuter et contrôler chacun des programmes; un moyen de commande d'entrée/sortie pour contrôler l'entrée et la sortie des signaux vers et de l'extérieur de la carte à circuit intégré; un moyen de transmission de signaux comprenant des bus d'adresses, des bus de données, et diverses lignes de commande pour transmettre les signaux entre les moyens respectifs; et un moyen de restriction d'adresse pour restreindre une valeur binaire d'adresse d'un chiffre prédéterminé dans l'adresse afin de prohiber l'accès d'au moins une région dans le moyen non volatile de stockage pendant l'exécution du programme d'application, ladite région comprenant la portion ou est stocké le code de passe, le moyen de restriction d'adresse étant disposé sur l'un des bus d'adresse qui est connecté au moyen de commande. Selon la présente invention, même si l'adresse dans la région o le code de passe a été inscrit est assignée pendant l'exécution du programme d'application, l'adresse ainsi assignée peut être commutée à une adresse dans une autre région (cette région ne contient pas le code de pase) par le moyen de restriction d'adresse. L'invention sera mieux comprise, et d'autres buts, caractéristiques, détails et avantages de celle-ci apparaîtront plus clairement au cours de la description explicative qui va suivre faite en référence aux dessins schématiques annexés donnés uniquement à titre d'exemple illustrant un mode de réalisation de l'invention, et dans lesquels: - la figure 1 donne un schéma bloc qui illustre schématiquement la structure interne d'une carte à circuit intégré conventionnelle; - la figure 2 est un organigramme qui illustre la structure d'un programme stocké dans les portions de mémoire morte de la carte à circuit intégré de la figure 1; - la figure 3 est un schéma de circuit qui illustre la-structure d'un circuit de restriction d'adresse qui est prévu dans une carte à circuit intégré selon la présente invention; et - les figures 4A et 4B sont des vues qui illustrent la commutation des cartes de mémoire par le circuit de restriction d'adresse de la figure 3. Un mode de réalisation de la présente invention sera maintenant décrit en se référant aux dessins. Dans une carte à circuit intégré selon un mode de réalisation de la présente invention, afin de créer une région dans la mémoire morte électriquement effaçable et programmable 5 à laquelle aucun accès ne peut être obtenu sauf pendant l'exécution du programme de test, un circuit de restriction d'adresse est prévu sur un bus d'adresse 2a qui est disposé entre un bus interne 2 et une unité centrale de traitement 1, ce bus interne 2 contenant un bus d'adresses, un bus de données et diverses lignes de commande. Ce circuit de restriction d'adresse 100 est prévu sur les deux lignes supérieures des bits d'adresse AD14 et AD15 dans le bus d'adresses 2a et comprend un circuit inverseur 101, des premier et second circuits ET 102 et 104 et un circuit bascule ou flip-flop 103 (désigné par F.F.). Une ligne supérieure de bit d'adresse AD15 est connectée à la borne d'entrée du circuit inverseur 101. La borne de sortie de l'inverseur 101 et la ligne secondaire supérieure de bit d'adresse AD14 sont connectées aux bornes d'entrée du premier circuit ET 102 respectivement. La borne de sortie du premier circuit ET 102 est connectée à la borne d'entrée du circuit bascule 103. La borne de sortie de ce circuit 103 et la ligne de bit d'adresse AD15 sont connectées aux bornes de sortie du second circuit ET 104 de manière que sa sortie soit dans la pratique le bit d'adresse le plus haut AD15a. Comme une structure autre que celle décrite ci-dessus et une structure des programmes stockés dans la mémcire morte 3 du système et la mémoire morte 4 d'application sont les mêmes que celles de la carte conventionnelle des figures 1 et 2, leur description est omise ici. Un mécanisme pour former une région, dans la mémoire morte électriquement effaçable et programmable 5, à laquelle aucun accès ne peut être obtenu, sauf pendant l'exécution du programme de test, sera décrit en se référant à la figure 3 et aux figures 4A, 4B qui illustrent les cartes correspondantes de la mémoire morte électriquement effaçable et programmable 5, de la mémoire. morte 3 du système et de la mémoire morte 4 d'applicaticn. En se référant à la figure 3, le circuit 103 stocke une donnée binaire. Lorsqu'un signal de remise à l'état initial est fourni de l'extérieur de la carte à circuit intégré à la borne P3 de remise à l'état initial (voir figures 1 et 2), l'unité centrale de traitement 1 est remise à l'état initial. Après cette remise à l'état initial, la sortie du circuit bascule 103 est maintenue au niveau "H". Quand le circuit 103 reçoit alors un signal de remise à l'état initial du premier circuit ET 102, la sortie du circuit bascule 103 passe au niveau "B" jusqu'à ce que l'unité centrale de traitement 1 soit de nouveau remise à son état initial. En effet, après arrêt de la remise à l'état initial de l'unité 1, les cartes de mémoire de la mémoire morte 3 du système et de la mémoire morte 4 d'application sont telles qu'illustrées à la figure 4A. La portion o est inscrit un ccde de passe 51 dans la mémoire morte électriquement effaçable et programmable 5 correspond à une région désignée par la mémoire morte électriquement effaçable et programmable (code de passe) 51a. Lorsqu'il n'y a pas de signal d'entrée dans la sous-routine 32 par la borne d'entrée/sortie P5 après cela, c'est-à-dire si aucun signal représentant un ordre d'exécution du programme de test n'est reçu, l'action passe à un programme d'application 41, donc l'unité centrale de traitement 1 accède à l'adresse de début d'exécution dans le programme d'application 41. Comme le montre la figure 4A, les adresses sur la carte de mémoire de la mémoire morte d'application 4 sont incorporées dans une région entre 4000H et 7FFFH ("H" signifiant hexagonal, "4000H" et "7FFFH" exprimant ainsi des nombres hexadécimaux). Chaque train de code d'adresse dans la région ci-dessus peut être généralement indiqué, par exemple, par 01* *** *** *** ***, c'est-à-dire que le bit d'adresse le plus haut AD15 de tous les codes d'adresse dans les régions ci-dessus est "0" (ce qui signifie ici le niveau "B") et que le bit d'adresse AD14 qui est plus bas d'un chiffre par rapport au bit d'adresse plus haut AD15 devient "1" (ce qui signifie ici un niveau "H"). Par conséquent, le circuit bascule 103 est remis à l'état initial et son signal de sortie passe au niveau "B", cette condition étant alors maintenue jusqu'à ce que l'unité centrale de traitement soit de nouveau remise à l'état initial. Par suite, la sortie du second circuit ET 104 qui est le bit d'adresse le plus haut AD15a à fournir réellement au bus d'adresse 2a est maintenue au niveau "B", c'est-à-dire maintenue à "0". Ainsi, on ne peut en aucune façon avoir accès à la région entre les adresses 8000H et FFFFH sur la carte de mémcire qui est désignée par A sur les dessins, comprenant la portion de la mémoire morte électriquement effaçable et programmable (code de passe) 51a o le bit le plus haut d'adresse est 1. La carte de mémoire à ce moment est montrée à la figure 4B o l'on peut voir que l'on peut accéder aux portions de la mémoire morte électriquement effagable et programmable 5 à l'exception de la portion de la mémoire morte électriquement effaçable et programmable (code de passe) 51a, du programme d'application 41. En se référant à la figure 4A, le bit d'adresse le plus haut de l'adresse sur la carte de mémoire de la mémoire morte 4 du système o le programme de test 31 est stocké est toujours "1". Par conséquent, pendant l'exécution du programme de test, aucun signal de remise à l'état initial n'est transmis du premier circuit ET 102 au circuit bascule 103 donc on peut accéder à la portion de la mémoire morte électriquement effaçable et programmable (code de passe) 51a o le mot de passe 51 est stocké. Bien que, dans le mode de réalisation ci-dessus, la description ait été faite concernant le bit d'adresse le plus haut de l'adresse et le bit d'adresse suivant, la présente invention n'est pas limitée à cela. Il est simplement nécessaire que des bits appropriés soient choisis parmi les bits d'adresse selon la structure de la carte de mémoire et la position sur la carte de mémoire de la région o une sécurité doit être prévue et que le circuit de restriction d'adresse soit prévu pour ces lignes de bit d'adresse. En général, la structure interne de la carte à circuit intégré contenant le circuit de restriction d'adresse montré à la figure 3 et selon la présente invention peut bien entendu être formée sur un semi- conducteur comme pour des cartes conventionnelles à circuit intégré. Comme on l'a décrit ci-dessus, dans la carte à circuit intégré selon la présente invention, un circuit de restriction d'adresse est prévu sur le bus d'adresses de la carte à circuit intégré afin de créer une région dans la mémoire morte électriquement effaçable et programmable à laquelle aucun accès ne peut être obtenue sauf pendant l'exécution du programme de test et le mot de passe est inscrit dans la région ainsi créée pour offre une sécurité concernant l'accès du programme de test. Par suite, le code de passe peut être réécrit, mais le code de passe ne peut être lu ou écrit des programmes d'application utilisés par un ou plusieurs utilisateurs. En conséquence, une carte à circuit intégré de plus haute sécurité peut être obtenue. REVENDICATIONS 1. Carte à circuit intégré du type comprenant un programme de test pour l'accomplissement d'un test de produit, caractérisée en ce qu'elle comprend: un moyen-formant mémoire non volatile de validation d'écriture (5) dans laquelle est inscrit un code de passe ou analogue pour donner une sécurité concernant l'accès au programme de test; un moyen formant mémoire morte (3) stockant ledit programme de test, au moins un programme d'application pour exécuter diverses fonctions afin d'utiliser ladite carte à circuit intégré, une sous routine pour déterminer si le programme de test ou le programme d'application doit être exécuté et des routines de confirmation de code de passe pour confronter le code de passe avec un code de passe introduit de l'extérieur de la carte à circuit intégré avant l'accès au programme de test; un moyen de commande (1) pour l'exécution et le contrôle de chacun des programmes; un moyen de commande d'entrée/sortie (7) pour contrôler l'entrée et la sortie de signaux vers et de l'extérieur de la carte à circuit intégré; un moyen (2) de transmission de signaux comprenant des bus d'adresses, des bus de données et - diverses lignes de commande pour transmettre des signaux entre les moyens respectifs; et un moyen de restriction d'adresse (100) pour restreindre une valeur binaire d'adresse d'un chiffre prédéterminé dans l'adresse afin de prohiber l'accès d'au moins une région dans le moyen non volatile de stockage pendant l'exécution du programme d'application, ladite région comprenant la portion o est stocké ledit code de passe, ledit moyen de restriction d'adresse étant disposé sur l'un des buts d'adresse qui est connecté au moyen de commande. 2. Carte à circuit intégré selon la revendication 1, caractérisée en ce que le moyen de restriction d'adresse (100) comprend un circuit pour détecter que les valeurs binaires prédéterminées d'adresse dans le bus d'adresse sont les mêmes que celles d'une adresse de début du programme d'application et un circuit pour maintenir la valeur d'un bit supérieur des deux bits successifs prédéterminés d'adresse à ce niveau jusqu'à ce que le moyen de commande soit remis à l'état initial, la valeur dudit bit supérieur de ladite adresse dans ladite région dudit moyen de stockage non volatil o est stocké le code de passe étant obtenue par inversion de la valeur du bit supérieur dans les programmes d'application. 3. Carte selon l'une quelconque des revendications 1 ou 2 caractérisée en ce que tous les moyens sont formés sur un semiconducteur.