Brevet FR2633755A1 — publié le 19900105

La présente invention se rapporte généralement à des cartes à circuit intégré et, plus particulièrement, à une carte à circuit intégré qui stocke à la fois un programme de test pour accomplir un test sur la carte à circuit intégré elle-même (un test de produit) et un programme d'application pour accomplir diverses fonctions requises pour l'utilisation de la carte à circuit intégré. La figure 6 donne un schéma bloc montrant la construction d'un type conventionnel de carte à circuit intégré. Comme cela est illustré, une unité centrale de traitement est connectée à là fois à une mémoire morte 3 du système et à une mémoire 4 d'application par un bus 2. Comme le montre la figure 7, la mémoire morte 3 du système stocke un programme de test 31 pour accomplir un test sur la carte à circuit intégré elle-même, et la mémoire 4 d'application stoçke un programme d'application 41 pour accomplir diverses fonctions qui sont-requises pour l'utilisation de la carte. La mémoire 3 du système stocke de plus un programme de branchement 32, pour déterminer d'abord si le programme de test 31 ou le programme d'application 41 doit être exécuté, puis pour branchement au programme à exécuter. En se référant de nouveau à la figure 6, une mémoire morte programmable effaçable électriquement 5 pour stocker une donnée variable, une mémoire à accès aléatoire 6 pour temporairement stocker la donnée et un circuit d'entrée/sortie 7 pour effectuer la communication de la donnée avec un équipement externe sont connectés au bus 2. Comme le montre la figure 8, la mémoire morte 3 du système, la mémoire morte 4 d'application, la mémoire morte programmable effaçable électriquement 5, la mémoire à accès aléatoire 6 et le circuit d'entrée/sortie 7 sont agencés dans un espace identique de mémoire. Il est par conséquent possible d'avoir facilement accès à une zone souhaitée des mémoires respectives par le même type d'instruction. De même, la mémoire 3 du système, la mémoire 4 d'application, la mémoire morte programmable effaçable électriquement 5, la mémoire à accès aléatoire 6 et le circuit d'entrée/sortie 7 sont respectivement connectés à des circuits de sélection 13, 14, 15, 16 et 17 afin de choisir celles de ces mémoires qui correspondent et le circuit d'entrée/sortie 7 sur la base de l'arrangement de l'espace dans la mémoire qui est montrée à la figure 8, selon l'état du bus 2. Sur la figure 6, une borne P1 est une borne d'entrée de courant positif; P2 est une borne de mise à la masse pour une source de courant; P3 est une borne de signal de remise à l'état initial pour recevoir, à son entrée, un signal de remise à l'état initial qui initialise l'unité centrale de traitement; P4 est une borne d'horloge pour recevoir un signal d'horloge à son entrée; et P5 est une borne d'entrée/sortie. Une telle carte à circuit intégré fonctionne de la manière suivante. Lorsqu'un signal de remise à l'état initial est appliqué à la carte à circuit intégré par la borne P3, l'unité centrale de traitement 1 extrait une adresse de début de programme à laquelle l'exécution du programme de branchement 32 est amorcée, l'adresse de début de programme étant stockée à l'avance dans la mémoire morte 3 du système à une adresse prédéterminée de celle-ci. L'unité 1 amorce l'exécution du programme de branchement 32 à cette adresse de début de programme. Si une instruction pour exécuter le programme de test 31 est introduite d'un équipement externe (non représenté) à la borne d'entrée/$ortie P5 pendant l'exécution du programme de branchement 32, l'unité i force le procédé à passer de programme de branchement 32 au programme de test 31 qui suit. Le programme de test 31 est pourvu d'une fonction pour accéder à une adresse arbitraire afin de permettre un test de produit satisfaisant. L'unité 1 a accès aux adresses individuelles selon le programme de test 31, pour ainsi accomplir un test de produit. Par ailleurs, si aucune instruction pour exécuter le programme de test 31 n'est introduite, l'unité 1 extrait une adresse de début de programme à laquelle l'exécution du programme d'application 41 est amorcée, l'adresse de début de programme étant stockée à l'avance dans la mémoire morte d'application 4 à une adresse prédéterminée de celle-ci. L'unité i amorce l'exécution de programme d'application 41 à cette adresse de début de programme. Cependant, comme la mémoire morte 3 du système et la mémoire morte 4 d'application sont agencées dans un espace identique de la mémoire comme on l'a précédemment décrit, lorsque la carte à circuit intégré est utilisée dans son arrangement normal de mémoire, c'est-à-dire pendant l'exécution du programme d'application 41, l'unité 1 peut extraire le programme de test 31 pour trouver un processus pour entrer dans le programme de test 31. Cela a pour résultat un problème tel que l'unité 1 peut accéder à une adresse arbitraire en utilisant une fonction prévue dans le programme de test 31, produisant ainsi un accès incorrect. La présente invention a par conséquent pour objet une carte à circuit intégré permettant de prévenir la possibilité d'un accès incorrect pour obtenir une opération positive. Pour atteindre l'objectif ci-dessus et d'autres encore, selon la présente invention, on prévoit une carte à circuit intégré comprenant une unité centrale de traitement; une première mémoire dans laquelle est stocké un programme de test; une seconde mémoire dans laquelle est stocké un programme d'application; un bus disposé pour connecter l'unité centrale de traitement et les première et seconde mémoires; un moyen de détection pour détecter si l'unité centrale de traitement a exécuté le programme d'application dans la seconde mémoire; et un moyen de déconnexion agencé pour interrompre la connexion entre la première mémoire et le bus lorsque le moyen de détection détecte le fait que l'unité centrale de traitement a exécuté le programme d'application. Dans la présente invention, lorsque le moyen de détection détecte le fait que l'unité centrale de traitement a exécuté le programme d'application dans la seconde mémoire, le moyen de déconnexion interrompt la connexion entre le bus et la première mémoire o est stocké le programme de test. 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 plusieurs modes de réalisation de l'invention, et dans lesquels: - la figure 1 donne un schéma bloc montrant la construction d'une carte à circuit intégré selon un premier mode de réalisation de la présente invention; - la figure 2A est un schéma montrant un arrangement normal de mémoire selon le premier mode de réalisation; - la figure 2B est un schéma montrant un arrangement de mémoire pour l'exécution d'un programme d'application selon le premier mode de réalisation; - la figure 3 est un schéma de circuit montrant la portion essentielle d'un second mode de réalisation; - la figure 4A est un schéma montrant un arrangement normal de mémoire selon un second mode de réalisation; - la figure 4B est un diagramme montrant un arrangement de mémoire pour l'exécution d'un programme d'application selon le second mode de réalisation; - la figure 5 est un diagramme des temps mon- trant le fonctionnement du second mode de réalisation; - la figure 6 est un schéma bloc montrant la construction d'un type conventionnel de carte à circuit intégré; - la figure 7 donne un schéma bloc qui sert à illustrer les constructions de la mémoire morte du système et de la mémoire morte d'application; et - la figure 8 est un schéma montrant un arrangement de mémoire dans le type conventionnel de carte à circuit intégré. Les modes de réalisations préférés de la présente invention seront décrits ci-dessous en se référant aux dessins Joints o les mêmes éléments constituants sont indiqués par des chiffres identiques de référence. La figure 1 donne un schéma bloc montrant la construction d'une carte à circuit intégré selon un premier mode de réalisation de la présente invention. La carte à circuit intégré illustrée comprend une unité centrale de traitement 1, une mémoire morte 3 du système servant de première mémoire et une mémoire morte 4 d'application servant de seconde mémoire sont connectées à l'unité 1 par un bus 2. Par ailleurs une mémoire morte programmable effaçable électriquement 5 pour stocker une donnée variable, une mémoire à accès aléatoire 6 pour stocker temporairement la donnée et un circuit d'entrée/sortie 7 pour effectuer la communication de la donnée avec un équipement externe (non représenté) sont connectés au bus 2. La mémoire morte 3 du système stocke un programme de test pour accomplir un test sur la carte à circuit intégré elle-même, et la mémoire morte d'application 4 stocke un programme d'application pour accomplir diverses fonctions qui sont requises pour l'utilisation de la carte. La mémoire morte 3 du système stocke de plus un programme de branchement pour déterminer d'abord si le programme de test ou le programme d'application doit être exécuté puis brancher au programme à exécuter. Des circuits de sélection 14, 15, 16 et 17 sont connectés à la mémoire morte d'application 4, à la mémoire morte programmable effaçable électriquement 5, à la mémoire à accès aléatoire 6 et au circuit d'entrée/ sortie 7, respectivement. Les circuits de sélection 14, , 16 et 17 servent à choisir les mémoires correspon- dantes 4, 5 et 6 ou le circuit d'entrée/sortie 7 selon l'état du bus 2. Un circuit de sélection 8, qui sert de moyen de déconnexion, est connecté à la mémoire morte 3 du système et un circuit de détection 9, qui sert de moyen de détection, est connecté au circuit de sélection 8. Lorsque le circuit de détection 9 détecte, par le bus 2, le fait que l'unité centrale de traitement 1 a extrait l'adresse de début de programme du programme d'application dans la mémoire morte d'application 4, le circuit de détection 9 émet un signal d'inhibition de sélection de la mémoire morte du système pour le circuit de sélection 8. Comme les autres circuits de sélection 14 à 17, le circuit de sélection 8 choisit la mémoire morte 3 du système sur la base de l'état du bus 2 pour permettre la communication de données avec le bus 2. Lorsque le signal d'inhibition de sélection de la mémoire morte du système est introduit du circuit de détection 9 au circuit de sélection 8, ce dernier est empêché de choisir la mémoire morte 3 du système, quel que soit l'état du bus 2 et interrompt sensiblement laconnexion entre la mémoire morte 3 du système et le bus 2. Comme l'exemple conventionnel montré à la figure 6, la présente carte à circuit intégré est également pourvue de la borne d'entrée de courant positif P1, de la borne de mise à la masse P2 de la source de courant, de la borne P3 du signal de remise à l'état initial, de la borne d'horloge P4 et de la borne d'entrée/sortie P5. Le fonctionnement du premier mode de réalisation sera décrit ci-dessous. Lorsqu'un signal de remise à l'état initial est appliqué à l'entrée de la borne P3 du signal de remise à l'état initial, l'unité 1 extrait l'adresse de début de programme du programme de branchement qui est stocké à une adresse prédéterminée dans la mémoire morte 3 du système, et amorce l'exécution du programme de branchement à l'adresse de début de programme. Dans le programme de branchement, l'état de la borne P5 d'entrée/sortie est d'abord vérifié pour déterminer la présence ou l'absence d'une instruction d'exécution d'un test de produit. Si l'instruction pour exécuter le test du produit est détectée, le programme de test est exécuté subséquemment au programme de branchement. Ce programme de test est pourvu d'une fonction pour accéder à une adresse arbitraire afin d'accomplir un test satisfaisant du produit. L'unité 1 accède aux adresses individuelles selon le programme de test et accomplit le test du produit. Pendant ce temps, la mémoire morte 3 du système, la mémoire morte 4 d'application, la mémoire morte programmable effaçable électriquement 5 et la mémoire à accès aléatoire 6 ainsi que le circuit d'entrée/sortie 7 qui sont connectés au bus 2 sont agencés dans un espace identique de mémoire comme le montre la figure 2A, et ces mémoires 3, 4, 5, 6 et le circuit d'entrée/sortie 7 sont adaptés à être choisis par les circuits correspondants de sélection 8, 14, 15, 16 et 17 sur la base de l'état du bus 2. Par ailleurs, si l'instruction d'exécution du test de produit n'est pas introduite, l'unité 1 extrait l'adresse de début de programme d'application qui est stockée à une adresse prédéterminée dans la mémoire morte d'application 4 afin de forcer le procédé à passer du programme de branchement au programme d'application dans la mémoire morte 4 d'application. A ce moment, le circuit de détection 9 détecte le fait que l'unité 1 a extrait l'adresse de début de programme du programme d'application, donc le signal d'inhibition de sélection de la mémoire morte du système est émis du circuit de détection 9 au circuit de sélection 8. Ainsi, le circuit de sélection 8 ne peut choisir la mémoire morte du système 3, quel que soit l'état du bus 2. En d'autres termes, la connexion entre la mémoire 3 du système et le bus 2 est sensiblement interrompue et, comme le montre la figure 2B, la mémoire morte 3 du système est exclue de l'espace de la mémoire. Dans un tel état, l'unité 1 exécute le programme d'application. En conséquence, il devient impossible d'accéder, du programme d'application, au programme de test dans la mémoire morte 3 du système, ce qui empêche un accès incorrect. La figure 3 est un schéma de circuit montrant la construction concrète du circuit de détection 9 et des circuits de sélection 8 et 14 associés à la mémoire morte 3 du système et à la mémoire morte 4 d'application, respectivement. Le circuit illustré est constitué d'un circuit flip-flop ou bascule 18, de circuits ET 19 à 21, d'un circuit NON-ET 22 et de circuits inverseurs 23 à 25. Le circuit de la figure 3 permet un contr8le sur la sélection entre la mémoire morte 3 et la mémoire morte 4 d'application selon un adresse spécifiée dans l'espace de mémoire ayant des adresses en nombres hexadécimaux à quatre chiffres (construction 16 bits). La figure 4A montre un agencement de mémoire qui est normalement choisi. Dans l'agencement normal de mémoire, la mémoire 4 d'application est agencée dans une zone définie par les adresses 4000 à 7FFF et la mémoire morte 3 du système est agencée dans une zone définie par les adresses COO à FFFF. L'adresse de début de programme du programme d'application dans la mémoire morte 4 d'application est 5000 et une instruction initiale A9 dans le programme d'application est stockée à l'adresse 5000. De même, l'adresse 5000 de début de programme est stockée aux adresses 7FFE et 7FFF dans la mémoire morte d'application 4. Parmi ces adresses auxquelles est stockée l'adresse 5000 de début du programme d'application, l'adresse inférieure 7FFE est stockée aux adresses E001 et E002 dans la mémoire morte 3 du système. Une instruction de saut 6C stockée à l'adresse EOOO qui est contiguë à l'adresse EO01 en direction vers le bas, permet au procédé de sauter des adresses 7FFE et 7FFF à l'adresse de début de programme 5000 du programme d'application. Le fonctionnement du circuit montré à la figure 3 sera décrit ci-dessous en se référant au schéma des temps de la figure 5, sur laquelle la course a indique l'adresse, b la donnée, c le signal d'horloge, d la synchronisation, e le signal d'inhibition de sélection de la mémoire 3, f le signal de sélection de la mémoire 3 et g le signal de sélection de la mémoire 4. Lorsque la source de courant est mise en circuit et qu'un signal de remise à l'état initial est introduit à la borne RD du circuit bascule 18, ce circuit 18 est remis à son état initial et le signal d'inhibition de sélection de la mémoire morte du système passe à un état bas. Par conséquent, un signal au niveau haut est introduit par le circuit inverseur 25, au circuit ET 20. Ainsi, l'agencement de mémoire tel que celui montré à la figure 4A est formé. Si une adresse arbitraire est spécifiée parmi les adresses COO à FFFF qui définissent la zone de la mémoire morte 3 du système, un signal de sélection de mémoire morte du système au niveau haut est introduit à la mémoire morte 3 du sytème par les circuits ET 19 et , car les deux bits d'ordre supérieur AD14 et AD15 de chaque adresse de 16 bits, qui contient ADO (le bit d'ordre inférieur) à AD15 (le bit d'ordre supérieur) sont nécessairement aux niveaux hauts. Ainsi, la mémoire morte 3 du système est choisie. Par ailleurs, si une adresse arbitraire des adresses 4000 à 7FFF qui définit la zone de la mémoire morte d'application 4 est spécifiée, un signal de sélection de mémoire morte d'application à un niveau haut est introduit à la mémoire morte d'application 4 par les circuits ET 19, 21, et le circuit inverseur 24, car les deux bits d'ordre supérieur AD14 et AD15 de chaque adresse dans cette zone sont nécessairement au niveau haut et niveau bas, respectivement. Ainsi, la mémoire morte d'application 4 est choisie. Dans le programme de branchement stocké dans la mémoire monte 3 du système, le branchement au programme d'application dans la mémoire morte d'application 4 s'effectue comme suit. D'abord, l'instruction de saut 6C à l'adresse EOOO est lue, ensuite, l'adresse 7FFE stockée aux adresses EOO1 er E002 est lue selon l'instruction 6C, puis l'adresse de début de programme 5000 du programme d'application qui est stocké à l'adresse 7FFE et à l'adresse suivante 7FFF est lue. Au temps tl auquel l'adresse de début de programme 5000 de la mémoire morte d'application 4 qui est stockée dans la zone de mémoire morte d'application 4 est lue, un signal de niveau bas est introduit, comme le montre la figure 3, du circuit NON-ET 22 au circuit bascule 18 car à la fois le signal de sélection de la mémoire morte d'application au niveau haut est introduit à la mémoire morte d'application 4 et le bit d'ordre inférieur ADO qui désigne l'adresse 5000 est au niveau haut. Ainsi, le signal d'inhibition de sélection de la mémoire morte du système à la sortie du circuit bascule 18 est inversé à un niveau haut et subséquemment le signal d'inhibition de sélection de mémoire morte du système est maintenu au niveau haut jusqu'à ce qu'un signal de remise à l'état initial soit de nouveau introduit au circuit bascule 18. En conséquence, le signal au niveau bas est introduit par le circuit inverseur 25 vers le circuit ET 20 qui est connecté à la mémoire 3 du système et le signal de sélection de la mémoire morte du système est maintenu au niveau bas quel que soit l'état du bus 2, en particulier les niveaux des bits AD14 et AD15, il devient donc impossible de choisir la mémoire morte 3 du système. En d'autres termes, la connexion entre la mémoire morte 3 du système et le bus 2 est interrompue, donc l'agencement de la mémoire qui exclut la mémoire morte 3 du système comme le montre la figure 4B, est formé. R E V E ND I C A T I 0 N S 1. Carte à circuit intégré,caractérisée en ce qu'elle comprend: une unité centrale de traitement (1); une première mémoire (3) dans laquelle est stocké un programme de test; une seconde mémoire (4) dans laquelle est stocké un programme d'application; un bus (2) disposé pour connecter ladite unité et lesdites première et seconde mémoires; un moyen de détection (9) pour détecter si l'unité centrale de traitement a exécuté le programme d'application stocké dans la seconde mémoire; et un moyen de déconnexion (8) agencé pour interrompre la connexion entre la première mémoire et le bus lorsque le moyen de détection détecte le fait que l'unité centrale de traitement a exécuté le programme d'application. 2. Carte selon la revendication 1, caractérisée en ce que le moyen de détection (9) détecte l'exécution du programme d'application sur la base de la valeur d'une adresse qui est spécifiée par l'unité centrale de traitement par ledit bus. 3. Carte selon la revendication 2, caractérisée en ce que la seconde mémoire (4) stocke l'adresse de début de programme du programme d'application, le moyen de détection (9) détectant l'exécution du programme d'application sur la base du fait que l'unité centrale de traitement a spé'cifié l'adresse de début de programme du programme d'application par l'intermédiaire dudit bus.