Brevet FR2595485A1 — publié le 19870911

"Ordinateur, notamment micro-ordinateur à circuit intégré". La présente invention a pour objet un ordina- teur, notammment un micro-ordinateur et, en particulier, se rapporte à un perfectionnement pour éviter l'exécution erronée de certains types d'instructions. Au cours de ces dernières années, les applica- tions des microordinateurs ont été largement étendues, des exemples étant fournis par les cartes à circuits intégrés et les dispositifs de commande. Les micro-ordi- nateurs sont fréquemment utilisés dans un environnement défavorable ou hostile, par exemple, quand le micro- ordinateur est soumis à une charge électrostatique, à une tension incorrecte ou similaire. Il a donc été demandé de prévoir des mesures pour éviter le fonction- nement erron.é des micro-ordinateurs. Quand le micro-ordinateur est incorporé notamment dans une carte à circuit intégré, des exemples de fonctionnement erroné comprennent les modifications de données enregistrées importantes telles qu'un mot de passe, la somme d'argent restante (dans une carte à circuit intégré) et un arrêt en un emplacement indésira- ble du programme. Un problème qui se pose avec le micro-ordina- teur suivant la technique antérieure est décrit en se référant à la Fig. 1. Les instructions données au micro- ordinateur sont mémorisées dans unemrrmoire de programme qui est généralement constituée d'une mémoire ROM (mémoire morte) 1. Les contenus du compteur d'instruction 2 sont décodés par un décodeur d'adresse 3 et les instructions mémorisées aux emplacements de mémoire correpondants sont extraites dans l'ordre. Chaque instruction est conservée dans un regis- tre d'instructions 4 et envoyée à une unité de commande 5 qui décode l'instruction et produit un signal de commande pour exécuter l'instruction. Le signal de commande est, l par exemple, appliqué à une porte ou à des portes comman- dant le transfert de données ou d'impulsions d'horloge. Dans un tel micro-ordinateur, la charge électrostatique, une tension incorrecte ou un facteur similaire peuvent modifier le signal de commande, de sorte que le signal de commande modifié ne corresponde plus à l'instruction. Il en résulte qu'il peut être pro- duit par erreur un signal d'intruction d'inscription destiné à une EPROM (mémoire morte programmable électri- quement) ou à une EEPROM (mémoire morte effaçable et programmable électriquement) ou un signal d'instruction d'arrêt. Une telle erreur peut provoquer l'inscription de données erronées ou l'arrêt du traitement du programme et le retour au programme initial et les données sont mémorisées dans la même mémoire, par exemple dans une EEPROM, en des emplacements de mémoire différents, le pro- gramme peut être modifié et le fonctionnement est impossible. Quand un signal d'arrêt est envoyé dans la ligne 6 à partir de l'unité de commande 5 pour obtenir le niveau 'haut", une porte 8 destinée à une horloge intérieure 7 est fermée, ce qui empêche la liaison de l'horloge 7 avec différents éléments du micro-ordi- nateur. Le fonctionnement de ce micro-ordinateur est ainsi arrêté. Un but de la présente invention consiste à réduire la possibilité d'exécution erronée d'un signal de commande important, par exemple d'un signal de commande d'une inscription d'instruction ou d'une instruction d'arrêt. A cet effet, l'invention concerne un ordinateur pour exécuter un programme qui y est mémorisé, ledit programme comportant un premier type d'instructions et un second type d'instructions, ledit ordinateur compor- tant: une mémoire de programme présentant une première zone pour mémoriser ledit premier type d'instructions et une seconde zone pour mémoriser ledit second type d'instruc- tions, un compteur d'instruction fournissant'un code d'adresse, ladite mémoire de programme étant sensible au code d'adresse pour produire un code d'instruction mémo- risé à l'emplacement de mémoire désigné par le code d'adresse, une unité de commande sensible au code d'instruc- tion provenant de la mémoire de programme pour produire un signal de commande destiné à commander le fonctionne- ment de l'ordinateur, et des moyens de protection pour empêcher l'exécu- tion dudit premier type d'instructions quand le code,' d'adresse émis par le compteur d'instruction ne désigne aucun emplacement de mémoire dans ladite première zone. L'invention est décrite plus en détail ci-après en se référant aux dessins annexés, dans lesquels: - la Fig. 1 est un schéma fonctionnel représen- tant une partie d'un micro-ordinateur classique; - la Fig. 2 est un schéma fonctionnel représen- tant une partie d'un micro-ordinateur suivant un exemple de réalisation de l'invention; - la Fig. 3 est un schéma représentant un exemple d- 'unité de,détection; - la Fig. 4a et la Fig. 4b sont des schémas de mémoires représentant des exemples d'attribution de zones de mémoire; et - la Fig. 5 est un schéma fonctionnel représen- tant un autre exemple de réalisation de l'invention. Un micro+ordinateur conforme à l'invention est représenté sur la Fig. 2. Sur cette figure, les mêmes références numériques que celles de la Fig. 1 désignent des composants identiques ou similaires. Leur description n'est donc pas répétée. Une caractéristique du micro-ordinateur est la disposition d'un circuit de protection qui comporte une unité de détection 10 et une porte ET 12. L'unité de détection 10 reçoit comme entrée les signaux de sortie avec les bits les plus élevés, par exemple les bits d'ordre.4à 11 des signaux de sortie du compteur d'instruction 2. La porte ET 12 reçoit à l'une de ses entrées un signal de commande prédétermine, par exemple un signal d'arrêt 6 provenant de l'unité de commande 5 et, à une autre entrée, le signal de sortie de l'unité de détection 10. Un exemple d'unité de détection 10 est représen- té sur la Fig.3. Cette unité comporte une porte ET recevant les huit bits les plus élevés (A4 à All) des douze bits A0 à All du code d'adresse de sortie provenant du compteur d'instruction 2. Un exemple d'attribution de zone de mnmoire dans une nmmoire morte d'une carte à circuit intégré est représenté sur la Fig 4A. La partie A (16 multiplets d'adresses 4080 à 4095) est une zone dans lâquelle sont mémorisées les instrnutions iMiportantes telles qu'instrutions d'inscription et instructions d'arrêt. La partie B (adresses 0 à 4094) est une zone dans laquelle sont mémo-': risées les instructions restantes. Dans une carte à circuit imprimé, il est usuel que la zone nécessaire pour mémori- ser les instructions importantes soit relativement petite et n'occupe que 10 à 16 multiplets de la totalité des 4096 multiplets. Tous les bits d'entrée A4 à All de l'unité de détection 10 sont au niveau haut quand le compteur d'ins- truction désigne une adresse de valeur 4080 ou sup6rieure de telle sorte que le signal de sortie de l'unité de détec- tion 10 est alors au niveau haut. Quand le compteur d'. instructions désigne une. adresse ayant une valeur infé-r rieure à 4080, le signal de sortie d'uiité-:dé détection est au niveau bas. Quand une instruction de la partie B est exécutée, le signal de sortie du compteur d'instruction est inférieur à 4080, de sorte que le signal de sortie de l'unité de détection 10 est au niveau bas. On peut considérer que dans ces conditions, un signal d'arrêt 6 est mis au niveau haut par erreur. Cependant, la porte ET 12 est fermée parce que le signal de sortie de l'unité de détection 10 est au niveau bas. Il en résulte que le signal d'arrêt 6 ne franchit pas la porte ET 12. On empê- che donc l'application du signal d'arrêt à la porte 8 ainsi que l'exécution de l'instruction "arrêt" produite par erreur. La porte 8 va donc retenir l'action de l'horloge 7. Quand une instruction de la partie A est exécutée, la valeur de sortie du compteur d'instruction est égale ou supérieure à 4080. Il en résulte que le signal de sortie de l'unité de détection 10 est au niveau haut. Dans ces conditions, si un signal d'arrêt 6 est mis au niveau haut (par fonctionnement correct ou par - erreur), ce signal de commande franchit la porte ET 12 parce que cette porte ET 12 est ouverte en raison du niveau haut du signal de sortie de l'unité de détection 10. La porte 8 stoppe donc 1 'envoi de l'horloge 7 à différents circuits. Par conséquent, l'instruction d'arrêt est exécutée. La production erronée d'un signal d'arrêt à la sortie de l'unité de commande 5 peut avoir lieu de façon uniforme dans la totalité des emplacements de mémoire, c'est-à-dire quel que soit l'enplacement de mffmoDire auquel on accède. Cela est vrai aussi bien pour le présent exemple de réalisation que pour la technique antérieure. L'exemple de réalisation de l'invention considéré diffère de la technique antérieure en ce que la production erronée du signal d'arrêt à la sortie de l'unité de commande 5 pendant l'exécution d'une instruction aux emplacements de mémoire 0 à 4079 est détectée. L'exécution d'un tel signal d'arrêt erroné, par exemple son application à la porte 12, est alors empêchée. Un tel signal d'arrêt erronr n'est exécuté que si la production erronée de ce signal d'arrêt a lieu pendant l'exécution d'une instruction sa trouvant dans la partie A aux emplacements 4080 à 4095. Etant donné que le nombre des emplacements de mémoire dans la partie A est faible, la probabilité d'exécution du signal d'arrêt erroné est fortement réduite. Si l'on accède de façon uniforme à tous les empla- cements de mémoire, la probabilité d'exécution du signal d'arrêt erroné est réduite de 16/4096 ou 0,4 pour cent. Dans l'exemple de réalisation décrit, les ins- tructions importantes sont mémorisées dans la partie A ayant une valeur d'adresse égale ou supérieure à 4080. En variante, la partie A peut être dans la partie de mémoire ayant des valeurs d'adresse égales ou inférieures à 15, comme représenté sur la Fig. 4B. Dans ce cas, on peut prévoir des inverseurs inversant les huit bits supérieurs A4 à All et la porte ET de l'unité de détection peut être branchée pour recevoir les signaux de sortie des inverseurs. La combinaison des inverseurs et de la porte ET peut être considérée comme équivalente à une porte NON-OU recevant les huit bits supérieurs. Dans l'exemple de réalisation décrit, le signal d'arrêt est pris comme exemple de signal de commande important. Mais une disposition de protection similaire peut être prévue pour d'autres signaux de commande impor- tants tels qu'un signal d'inscription. Le signal de sortie du circuit de détection peut être tranmis à deux portes 12 et 12', ou à un plus grand nombre de portes, pour les signaux de commande respectifs 6 et 6', comme représenté sur la Fig. 5. Cette disposition est particulièrement avantageuse quand au moins deux instructions correspondant à des signaux de commande importants sont mémorisés dans la même zone, par exemple dans la partie A, avec des emplacements de mémoire identifiés par des codes d'adresses constitués de bits dont un grand nombre (tels que les bits d'ordre 4 à 11) sont identiques. Dans l'exemple de réalisation décrit, la porte 12 est une porte ET. On peut utiliser en variante une porte à trois états. En vatiante également, on peut utiliser un circuit ayant une fonction de verrouilleuse, par exemple une bascule de type D. Cela est particulièrement utile quand le signal de sortie du compteur d'instruction est décalé d'une valeur à une autre valeur (suivante) avant que soit achevée la production du signal de comman- de correspondant. La fonction de verrouilleuse peut, en variante, être remplie par le circuit de détection 10. Au lieu de la porte ET du cicuit de détection , on peut utiliser un comparateur de grandeur comparant le signal de sortie du compteur d'instructions à une valeur prédéterminée. REVENDICATIONS 1 - Ordinateur, notamment micro-ordinateur à circuit intégré pour exécuter un programme qui y est mémorisé, ledit programme comportant un premier type d'instructions et un second type d'instructions, ledit ordinateur comportant: une mémoire de programme (1) présentant une première zone pour mémoriser ledit premier type d'instruc- tions et une seconde zone pour mémoriser ledit second type d'instructions, un compteur d'instruction (2) fournissant un code d'adresse, ladite mémoire de programme (1) étant sensible au code d'adresse pour produire un code d'instruction mémorisé à l'emplacement de mémoire désigné par le code d'adresse, une unité de commande (5) sensible au code d'instruction de la mémoire de programme pour produite un signal de commande destiné à commander le fonctionnement de l'ordinateur, et des moyens de protection (10, 12) pour empêcher l'exécution dudit premier type d'instructions quand le code d'adresse émis par le compteur d'instruction.(2) ne désigne aucun emplacement de mémoire dans ladite première zone. 2 - Ordinateur selon la revendication 1, dans lequel lesdits moyens de protection comportent: des moyens de détection (10) pour détecter la désignation, par le signal de code d'adresse provenant du compteur d'instruction, d'un emplacement de mémoire de ladite première zonei et des moyens formant porte (12) pour ledit signal de commande, lesdits moyens formant porte étant ouverts quand les moyens de détection détectent la désignation d'un emplacement de mémoire dans ladite première zone. 3 - Ordinateur selon la revendication 2, carac- térisé en ce que ladite première zone consiste en des emplacements de mémoire désignés par des codes d'adresses dont les bits supérieurs sont tous égaux à "1", et lesdits moyens de détection (10) comportent une porte ET recevant la totalité desdits bits supérieurs. 4 - Ordinateur selon la revendication 2, caractérisé en ce que ladite première zone consiste en des emplacements de mémoire désignés par des codes d'adresses dont les bits supérieurs sont tous égaux à "o0", et lesdits moyens de détection comportent une porte NON-OU recevant la totalité desdits bits supérieurs. - Ordinateur selon la revendication 2, caractérisé en ce que plusieurs instructions dudit premier type sont mémorisées dans ladite première zone, lesdits moyens de détection produisent un signal de comman- de de porte quand ils détectent la désignation d'un empla cement de mémoire dans ladite première zone, plusieurs moyens formant porte (12, 12') sont disposés pour plusieurs signaux de commande correspondant aux instructions dudit premier type, lesdits moyens formant porte étant ouverts par le signal de commande de porte.