Brevet FR2591006A1 — publié le 19870605

La présente invention concerne un dispositif élec- tronique portatif, ce que l'on appelle une carte à circuit intégré, qui contient une puce IC (à circuit intégré) possédant une mémoire de données permanente, et un élément de commande, par exemple une unité centrale de traitement (CPU). Ces dernières années, il a été mis au point, comme carte de mémoire servant à emmagasiner les données, une carte à circuit intégré incorporant une puce IC qui possède une mémoire permanente (par exemple une mémoire fixe programmable, ou PROM) et une CPU, cette carte à circuit intégré étant disponible dans le commerce. Pour un système utilisant une carte à circuit intégré de ce type, les échanges de données avec la carte à circuit intégré s'effectuent à l'aide d'un lecteur- enregistreur de cartes. Lorsque la carte à circuit intégré reçoit une donnée d'instruction à l'aide d'un code de fonction en provenance du lecteur-enregistreur de cartes, celle-ci exécute une fonction et délivre le résultat de l'exécution au lecteur-enregistreur de cartes au titre de donnée de réponse. Lorsqu'un signal d'entrée se présentant sous la forme d'une chaîne de données qui a été appliquée à la carte à circuit intégré s'inscrit dans la mémoire de données, la donnée d'entrée ne peut être écrite qu'après qu'une zone non écrite, dans laquelle aucune donnée valable n'est écrite, a été certifiée. Dans ce cas, lorsque plusieurs chaînes de données sont successivement écrites, si la donnée d'adresse de la zone suivante (par exemple une adresse de début de zone non écrite) dans laquelle la donnée doit être écrite n'est pas emmagasinée, une zone non écrite doit d'abord être-certifiée à chaque fois que la chaîne de données est écrite, ce qui conduit à une longue durée totale d'écriture. Dans une carte à circuit intégré classique, lorsqu'une chaîne de données s'inscrit dans une zone cible, elle s'inscrit à partir d'une adresse de référence donnée (par exemple une adresse de début) suivant un seul sens, et une adresse finale pour la chaîne de données écrite est emmagasinée dans une mémoire vive (RAM) d'un élément de commande, afin de simplifier l'opération d'écriture suivante. Plus spécialement, lorsque l'on met en service l'alimen- tation électrique de la carte à circuit intégré, il est possible de réaliser la simplification ci-dessus indiquée. Toutefois, après que L'alimentation électrique a été temporairement éteinte et est de nouveau remise en service afin de permettre La réalisation d'une opération d'écriture, le contenu de la RAM a été effacé. Par consé- quent, il faut chercher l'adresse finale à partir de la zone cible. Dans ce cas, une valeur spécifique, par exemple "FFH", doit être maintenue comme donnée permettant de certifier une donnée non écrite. Pour cette raison, la vitesse d'écriture de données diminue considérablement. C'est un but de l'invention de proposer un disposi- tif électronique portatif qui peut effectuer en continu une opéra- tion d'écriture de données dans une mémoire de données sans devoir séquentiellement certifier des zones non écrites et qui peut amé- liorer la vitesse d'écriture et abréger le temps d'écriture. Un autre but de l'invention est de proposer un dis- positif électronique portatif qui peut fortement améliorer la vitesse d'accès de données et qui ne nécessite l'existence d'aucune donnée permettant de certifier des données non écrites. Pour atteindre le but ci-dessus indiqué, il est pro- posé un dispositif électronique portatif comprenant: un moyen de mémoire servant à emmagasiner des données; et une unité centrale de traitement servant à commander sélectivement l'accès pour Lecture de données ou l'accès pour écri- ture de données dans le moyen de mémoire en réponse à une instruc- tion délivrée par un système principal connecté au dispositif électronique portatif, L'unité centrale de traitement emmagasinant des données, qui peuvent fournir l'adresse d'emmagasinage de la zone non écrite suivante, dans une zone prédéterminée du moyen de mémoire lorsque l'unité centrale de traitement écrit des données dans le moyen de mémoire. La description suivante, conçue à titre d'illustration de l'invention, vise à donner une meilleure compréhension de ses caractéristiques et avantages; elle s'appuie sur les dessins annexés, parmi lesquels: la figure 1 est une vue en perspective montrant l'aspect extérieur d'une carte à de réalisation de l'invention; la figure 2 est un disposition d'une puce à circuit à circuit intégré; la figure 3 est un disposition d'un manipulateur de la figure 4 est un une opération d'écriture dans la la figure 5 montre circuit intégré selon un mode schéma de principe montrant la intégré contenue dans la carte schéma de principe montrant la cartes; organigramme servant à expliquer carte à circuit intégré; - le format d'une donnée d'instruc- tion d'écriture; la figure 6 est un organigramme permettant d'expliquer une opération de certification de zone non écrite pour la carte à circuit intégré; la figure 7 montre le format d'une donnée d'instruc- tion de certification de zone non écrite; la figure 8 est un schéma de principe de fonction d'une carte à circuit intégré selon un autre mode de réalisation de l'invention; la figure 9 est un schéma de principe montrant la disposition d'une puce à circuit intégré contenue dans la carte à circuit intégré que représente la figure 8; la figure 10 est une carte de mémorisation pour une mémoire de données divisée en plusieurs blocs; la figure 11 est un exemple de table d'index montrant la relation qui existe entre les numéros des zones, les nombres de bytes, les adresses de début et les adresses finales de zones respectives de la mémoire de données; la figure 12 montre le format d'une donnée d'attribut; les figures 13A et 13B sont des organigrammes permet- tant d'expliquer une opération d'écriture de données selon un autre mode de réalisation de l'invention; la figure 14 montre le format d'une donnée d'instruc- tion d'écriture; 2 591006 les figures 15A et 15B sont des organigrammes permet- tant d'expliquer une opération d'écriture en continuation (à suivre); la figure 16 montre Le format d'une donnée d'instruc- tion d'écriture en continuation; les figures 17A à 17J sont des diagrammes servant à expliquer en détail L'opération d'écriture de données; les figures 18A à 18C sont des organigrammes permet- tant d'expliquer une opération de lecture de données; la figure 19 montre le format d'une donnée d'instruc- tion de lecture; les figures 20A et 20B sont des organigrammes permet- tant d'expliquer une opération de lecture en continuation; la figure 20C est une vue montrant un exemple du format d'une donnée d'instruction de lecture en continuation; les figures 21A à 21F sont des diagrammes permettant d'expliquer en détail l'opération de lecture de données; la figure 22 est un organigramme permettant d'expli- quer une opération d'effacement de données; et la figure 23 montre le format d'une donnée d'instruc- tion d'effacement. Sur La figure 1, est représentée une carte à circuit intégré 1 constituant un dispositif électronique portatif selon l'invention. Comme le montre la figure 2, ta carte à circuit inté- gré 1 contient une puce à circuit intégré 2, laquelle est électri- quement connectée à un moyen de contact 3 constitué de plusieurs contacts formés à la surface de la carte à circuit intégré 1. La puce à circuit intégré 2 comprend une unité centale de traitement (CPU) 4 faisant fonction d'élément de commande pour le déchiffrage, le traitement etl'emmagasinage d'instructions et de données d'entrée, et une mémoire morte programmable (PROM) 5, faisant fonction de mémoire de données permanente, qui est soumise à des opérations de lecture-écriture sous commande de La CPU 4. On note que la CPU 4 contient une mémoire vive 4a. La figure 3 montre la disposition d'un manipulateur de cartes utilisé comme dispositif terminal d'un réseau bancaire ou d'un réseau d'achat à domicile, auquel on applique la carte à circuit intégré 1 comme dispositif électronique portatif de 2 5 9 1006 l'invention. Le manipulateur permet de connecter la carte à cir- cuit intégré 1 à un dispositif de commande (par exemple CPU) 12 via un lecteur-enregistreur de cartes 11. La CPU 12 est connectée à un clavier 13, un dispositif d'affichage cathodique 14, une imprimante 15, et une unité de traitement de disques souples 16. La carte à circuit intégré I déchiffre la donnée d'instruction d'entrée venant du lecteur-enregistreur de cartes 11 et exécute le traitement nécessaire. Pour réaliser cela, la carte à circuit intégré 1 est dotée d'une CPU 4 et d'une PROM 5, comme cidessus indiqué. Le lecteur-enregistreur de-cartes 11 assure la transmission des données, par exemple données d'instruction et données de réponse, entre la carte à circuit intégré 1 et la CPU 12. On va maintenant décrire le fonctionnement de la carte à circuit 1 ayant la disposition ci-dessus indiquée. Tout d'abord, on va décrire une opération d'écriture en relation avec l'organigramme de la figure 4. La carte à circuit intégré 1 est en attente d'une donnée d'instruction provenant du lecteur-enre- gistreur de cartes 11. La donnée d'instruction d'écriture est constituée par exemple d'un code de fonction d'instruction d'écri- ture et de données d'emmagasinage, comme représenté sur la figure 5. S'il est déterminé, à l'étape 21, que la donnée d'instruction d'écriture venant du lecteur-enregistreur de cartes 11 a été reçue, la CPU 4 vérifie, à l'étape 23, si l'adresse de début de zone non écrite est emmagasinée dans une zone prédéterminée de sa RAM interne 4a. Si la réponse est NON à l'étape 23, la CPU 4 délivre une donnée de réponse indiquant la nonexistence de l'adresse de départ pour la zone non écrite dans l'étape 37, et le programme revient à l'étape 21. Toutefois, si la réponse est OUI à l'étape 23, la CPU 4 écrit les données d'emmagasinage se trouvant dans la donnée d'instruction dans la zone de la PROM 5 indiquée par l'adresse de début, et emmagasine l'adresse de début dans la zone non écrite après l'opération d'écriture dans la zone prédéterminée de la RAM 4a afin de la remettre à jour au cours de l'étape 25. S'il est déterminé, à l'étape 27, qu'aucune zone non écrite n'existe dans la PROM 5, la CPU 4 emmagasine une adresse non assignée à des zones de données dans la RAM 4a au cours de l'étape 33, et elle délivre une donnée de réponse indiquant L'achèvement de L'écriture et La non-existence d'une adresse d'écriture suivante au cours de L'étape 35. Le programme revient alors à l'étape 21. Toutefois, s'il est déterminé, à l'étape 27, que la nouvelle zone d'écriture existe dans la PROM 5, la CPU 4 emmagasine l'adresse de début de la nouvelle zone d'écriture dans la zone prédéterminée de la RAM 4a au cours de l'étape 29. A l'étape 31, la CPU 4 délivre une donnée de réponse indiquant l'achèvement de l'écriture et l'existence de la zone d'écriture suivante, puis le programme revient à L'étape 21. On va maintenant décrire, en relation avec l'organi- gramme de la figure 6, une opération visant à certifier l'adresse de début de la zone non écrite. La carte à circuit intégré 1 est d'abord en attente d'une donnée d'instruction certifiant la zone non écrite. La donnée d'instruction certifiant la zone non écrite comporte par exemple un code de fonction certifiant la zone non écrite, comme représenté sur La figure 7. Lorsqu'il est décidé, à l'étape 39, que la donnée d'instruction certifiant la zone non écrite à été reçue, la CPU 4 recherche l'adresse de début d'une zone non écrite lors de l'étape 41. Si la réponse est NON à l'étape 43, la CPU 4 déLivre une donnée de réponse indiquant la non-existence de la zone non écrite au cours de l'étape 49, puis le programme revient à L'étape 39. Toutefois, si la réponse est OUI à l'étape 43, la CPU 4 emmagasine l'adresse de début dans la zone prédéterminée de la RAM 4a au cours de l'étape 45, et délivre une donnée de réponse indiquant l'existence de la zone non écrite au cours de l'étape 47. Le programme revient ensuite à l'étape 39. Lorsque la donnée a été écrite dans la carte à cir- cuit intégré 1, après que La donnée d'instruction certifiant la zone non écrite a été reçue, une ou plusieurs données d'instruc- tion d'écriture sont reçues. Avec la disposition ci-dessus présentée, lorsque la donnée est inscrite dans la mémoire de données, l'adresse de début d'une zone non écrite immédiatement suivante est toujours emmaga- sinée. Ainsi, il n'est pas besoin de rechercher une zone non écrite à chaque fois qu'une donnée s'inscrit dans la mémoire de données, 2 5 9 1006 et l'opération d'écriture de données peut s'exécuter en continu, ce qui améliore la vitesse d'écriture et abrège le temps d'écri- ture. Avant que la donnée ne soit écrite dans la mémoire de donnée, on certifie La zone non écrite pour emmagasiner son adresse de début, ce qui simplifie la séquence d'écriture de données suivante et raccourcit le temps d'écriture. On va maintenant présenter un autre mode de réalisa- tion de l'invention en relation avec les figures 8 à 23. Comme le montre la figure 8, une carte à circuit intégré selon un autre mode de réalisation de l'invention comprend une section destinée à exécuter des fonctions de base, c'est-à- dire une section de lecture-écriture 51, une section de fixation- recueil de numéro d'identification personnel (PIN) 53, et une section de chiffrage-déchiffrage 55, ainsi qu'une superviseur 57 assurant la gestion des fonctions de base. La section de lecture- écriture 51 lit, écrit ou efface des données en relation avec le lecteurenregistreur de cartes 11. La section de fixation-recueil de PIN 53 exécute l'opération consistant à emmagasiner, tout en en empêchant la lecture, un numéro d'identification personnel, ou PIN, fixé par l'utilisateur, et recueille sélectivement un PIN après que le PIN a été fixé pour fournir une autorisation de poursuite du traitement. La section de chiffrage-déchiffrage 55 chiffre la donnée ou déchiffre la donnée chiffrée de manière à empêcher que les données de transmission ne puissent être décrites ou contrefaites pendant leur transmission de la CPU 12 à un autre dispositif terminal via une ligne de transmission. La section 55 exécute un traitement de données en fonction d'un algorithme de chiffrage, par exemple un DES (Data Encryption Standard, ou norme de chiffrage de données) possédant un niveau de difficulté suffisant. Le superviseur 57 décode un code de fonction, avec ou sans données d'entrée, provenant du lecteur-enregistreur de cartes 11 et sélectionne une fonction nécessaire à partir des fonctions de base en vue de l'exécuter. Pour effectuer ces fonctions, la carte à circuit intégré 1 comprend un élément de commande (par exemple une CPU) 59, qui fait fonction de dispositif de commande, une mémoire de données permanente 61 dont le contenu peut être effacé, une mémoire de programmes 63, et un moyen de contact 65 servant à assurer te contact électrique avec te Lecteurenregistreur de cartes 11, comme représenté sur la figure 9. Parmi ceuxci, les composants entourés d'une ligne en trait interrompu (La CPU 59, la mémoire de données 61 et La mémoire de programmes 63) sont constitués d'une unique puce IC. On note que La CPU 59 contient La mémoire vive, ou RAM, 60. La mémoire de programmes 63 comprend une mé- moire morte, ou ROM à masque, et emmagasine un programme de commande de la CPU 59 possédant des sous-programmes destinés à effectuer Les fonctions de base ci-dessus mentionnées. La mémoire de données 61 comprend une mémoire morte programmable électrique- ment effaçabLe, ou EEPROM, servant à emmagasiner diverses données. La mémoire de données 61 est divisée dans plusieurs zones 01, 02,..., FF, comme représenté sur La figure 10, et chaque zone est divisée en un ou plusieurs bLocs. Chaque bloc possède un nombre prédéterminé de bytes, et te traitement s'exé- cute en unités de blocs. Chaque bloc est constitué d'une donnée d'attribut (un seut byte) et d'une donnée d'emmagasinage. Comme représenté sur La figure 10, les numéros des zones [003 à [FF] sont assignés aux zones respectives (la zone O0 n'étant pas représentée). Dans La zone -[00], qui est représentée sur la figure 11, le nombre de bytes 64, l'adresse de début 66 de chaque zone, et l'adresse finale 68 de chaque zone sont emmagasinés en correspondance avec le numéro de zone 62 (ainsi que cela sera explicité ci-après en relation avec une table d'index). Par exemple, L'adresse de début de la zone [01) est aaa et son adresse finale est bbb. Chaque bloc de La zone [01] possède six bytes (La donnée d'attribut possède un byte et La donnée d'emma- gasinage possède cinq bytes). Au début de chaque zone, une région servant à emmagasiner L'adresse du byte final du bloc final de la donnée écrite (ci-après appeLée une donnée de pointeur) est prévue. Par exempte, à deux bytes à partir de L'adresse aaa de la zone [01) sur La figure 10, se trouve une adresse qui est cette à laquelle le byte final du bloc final de La donnée écrite est écrit. Sur la figure 10, tes parties hachurées désignent des parties dans lesquelles est emmagasinée La donnée d'attribut relative au bloc correspondant. La donnée d'attribut comporte un identificateur qui indique si la donnée d'emmagasinage est ou non valable et un identificateur indiquant si un bloc contient ou non une donnée finale lorsqu'une série de chaînes de données d'emmagasinage sont emmagasinées sur l'étendue de plusieurs blocs. La figure 12 montre le format de la donnée d'attribut. Comme représenté sur la figure 12, le bit "6" est un identificateur indiquant si la donnée d'emmagasinage dans un bloc est ou non valable. Si une donnée "1" est fixée dans le bit "6", ceci indique que la donnée d'emmagasinage n'est pas valable, et si une donnée "0" y est placée, ceci indique que la donnée est valable. Le bit "7" est un identificateur indiquant si un bloc comporte ou non le byte final d'une série de données. Si la donnée "1" est placée dans ce bit, ceci indique que le bloc ne contient pas le byte final et, si La donnée "O" y est placée, ceci indique que le bloc comporte le byte final. On note que les bits "O" à "5" sont des bits fictifs. On va maintenant décrire l'opération d'écriture de données dans la mémoire de données 61 à l'aide de la disposition ci-dessus présentée en relation avec les organigrammes des figures 13A et 13B. Lors de l'écriture d'une donnée dans la mé- moire de données 61, une donnée d'instruction d'écriture présen- tant le format indiqué sur la figure 14 est appliquée en entrée. La donnée d'instruction d'écriture est constituée d'un code de fonction d'écriture 70, d'un numéro de zone 72 et de données d'emmagasinage. Les données d'emmagasinage sont constituées d'une chaîne de données 76 à emmagasiner et de la donnée du nombre de bytes 74 constituant la chaîne de données. Dans l'état normal, la CPU 59 attend une donnée d'instruction de la part du lecteur- enregistreur de cartes 11. Lorsque la CPU 59 reçoit une donnée d'instruction de la part du lecteur-enregistreur 11, elle vérifie au cours de l'étape 71 si le code de fonction inclus dans la donnée d'instruction d'entrée est un code de fonction d'écriture. Si la réponse est OUI à l'étape 71, la CPU 59 recherche le numéro de zone ajouté à La donnée d'instruction dans la zone [00) au cours de l'étape 73. Si La réponse est NON à l'étape 73, la CPU 59 délivre une donnée de réponse indiquant que L'aire correspondante n'a pas été trouvée au cours de L'étape 77, puis attend la donnée d'instruction suivante. Si la réponse est OUI à l'étape 73, c'est- à-dire si le numéro de zone inclus dans La donnée d'instruction est trouvé dans la table d'index, la CPU 59 se reporte au nombre de bytes écrit dans La table d'index. Pour L'écriture de données d'emmagasinage dans une aire désignée, la CPU 59 se rapporte d'abord à la donnée de pointeur se trouvant au début de L'aire désignée afin de certifier L'adresse de début d'écriture au cours de L'étape 75. Ainsi, les données s'écrivent à partir de l'adresse obtenue par incrémentations unitaires de La donnée de pointeur. La CPU 59 vérifie à L'étape 79 si toutes Les données d'emmagasi- nage d'entrée peuvent être écrites dans La zone totale. Cette opération s'effectue en relation avec Les adresses de début et de fin de La table d'index. Si La réponse est NON à L'étage 79, La CPU 59 déLivre une donnée de réponse indiquant que La donnée du nombre de bytes se trouvant dans La donnée d'instruction est erronée au cours de L'étape 85, puis attend La nouvelle donnée d'instruction. Toutefois, si La réponse est OUI à L'étape 79, la CPU 59 compare La donnée du nombre de bytes avec Le nombre de bytes constituant La chaine de données-au cours de L'étape 81. Normalement, La donnée du nombre de bytes incluse dans la donnée d'instruction ne peut pas être transmise par une seuLe opération de transmission (entre un système principal et La carte à circuit intégré). Par exemple, la donnée du nombre de bytes indique onze bytes et le nombre de bytes des données d'emmagasinage envoyées par une seule donnée d'instruction est cinq bytes. Si la réponse est OUI à L'étape 81, c'est-àdire si la donnée du nombre de bytes est plus petite que le nombre de bytes de La chaîne de données, la CPU 59 délivre une donnée de réponse indiquant que la donnée du nombre de bytes est erronée au cours de L'étape 85, puis attend la donnée d'instruction suivante. Sinon, la CPU 59 soustrait le nombre de bytes contenus dans La chaîne de données de la donnée de nombre de bytes afin d'obtenir une quantité restante et elLe emmagasine la quantité restante dans une zone spécifique de la mémoire de données 61, au cours de L'étape 83. A l'étape 87, la CPU 59 positionne alors à "1" le bit le plus significatif (MSB) d'une chaîne de bits consti- tuant la donnée du nombre de bytes par la chaîne de données, ce qui rend temporairement non valable la donnée d'emmagasinage. La CPU 59 divise la donnée d'emmagasinage en unités de traitement au cours de l'étape 89, ajoute une donnée d'attribut à chaque unité de traitement, et l'emmagasine dans une aire de donnée désignée (étapes 91, 93 et 95). La CPU 59 vérifie à l'étape 91 si la chaîne de données à écrire est la donnée divisée finale. Si la réponse est OUI à l'étape 91 et s'il est déterminé à l'étape 97 que la donnée "0" est positionnée dans le bit indiquant la quantité restante, toute la donnée finale du bloc final est alors emmagasinée. De plus, le MSB de la chaîne de bits constituant la donnée du nombre de bytes de la chaîne de données est position- né à "0" d'une manière à rendre valables les données à emmagasiner, tandis que l'adresse finale du bloc comportant le byte final de la chaîne de donnée est emmagasinée comme donnée de pointeur (étapes99 et 101). La CPU 59 délivre une donnée de réponse indi- quant l'achèvement de l'écriture au cours de l'étape 103, puis attend la nouvelle donnée d'instruction. Toutefois, s'il est déter- miné à l'étape 97 que le bit indiquant la quantité restante n'est pas "O", la CPU 59 emmagasine la donnée divisée finale de la chaîne de donnée incluse dans la donnée d'instruction dans la RAM interne 60 sans l'écrire dans la zone désignée au cours de l'étape 105. Ensuite, la CPU 59 positionne un drapeau d'accepta- tion de continuation d'écriture dans la RAM 60, et l'adresse-de début du bloc non écrit suivant dans la RAM 60 comme adresse de début d'écriture au cours de l'étape 107. La CPU 59 délivre une donnée de réponse indiquant l'acceptation de continuation d'écri- ture au cours de l'étape 109, puis attend la-donnée d'instruction suivante. On va maintenant décrire une opération d'écriture en continuation, ou "à suivre", à l'aide des organigrammes des figures 15A et 15B. Lorsqu'une opération d'écriture à suivre est 2 591006 exécutée, une donnée d'instruction d'écriture à suivre possédant Le format présenté sur la figure 16 est appliquée en entrée. La donnée d'instruction d'écriture à suivre est constituée d'un code de fonction d'écriture à suivre et de données d'emmagasinage. Si la donnée d'instruction d'écriture à suivre est reçue au cours de l'étape 111, la CPU 59 se reporte au drapeau d'acceptation de continuation d'écriture afin de vérifier, au cours de l'étape 113, si celui-ci est positionné. Si la réponse est NON à l'étape 113, la CPU 59 délivre une donnée de réponse indiquant une erreur de séquence au cours de l'étape 115 et attend La donnée d'instruc- tion suivante. Toutefois, si la réponse est OUI à l'étape 113, la CPU 59 compare le nombre de bytes de La donnée d'emmagasinage d'entrée avec la quantité restante emmagasinée dans la RAM 60 au cours de L'étape 117. Si le nombre de bytes est plus grand que ta quantité restante, la CPU 59 délivre une donnée de réponse indi- quant que la donnée du nombre de bytes est erronée au cours de l'étape 19, puis attend La donnée d'instruction suivante. Sinon, La CPU 59 soustrait Le nombre de bytes de La quantité restante au cours de l'étape 121 et emmagasine la différence comme nouvelle quantité restante. La CPU 59 adjoint la donnée divisée finale précé- dente à l'amorce de la donnée d'emmagasinage d'entrée afin d'obte- nir une nouvelle donnée d'emmagasinage au cours de l'étape 123 et elle divise celle-ci en unités de traitement et ajoute une donnée d'attribut à chaque unité de traitement au cours de l'étape 125. La CPU 59 emmagasine ensuite la donnée en fonction de l'adresse de début d'écriture emmagasinée dans la *AM 60 (étapes 127, 129 et 131). Dans ce cas, la CPU 59 vérifie à l'étape 127 si la chaîne de données à écrire est la donnée divi- sée finale. Si la réponse est OUI à L'étape 127, Le programme passe à l'étape 133. Si la. donnée est OUI à L'étape 133, c'est- à-dire si le bit indiquant la quantité restante est "O", toutes les données d'emmagasinage sont emmagasinées, le MSB de La donnée du nombre de bytes dans la chaîne de données est positionné à "O", et l'adresse finale du bloc comportant le byte final de la chaîne de données d'emmagasinage est emmagasinée comme donnée de pointeur 2 5 9 1006 (étapes 135 et 137). La CPU 59 repositionne le drapeau d'accepta- tion de continuation d'écriture au cours de l'étape 139, déLivre une donnée de réponse indiquant L'achèvement de l'écriture au cours de l'étape 141, puis attend la donnée d'instruction sui- vante. Toutefois, si la réponse est NON au cours de l'étape 133, la CPU 159 emmagasine la donnée divisée finale dans la RAM 60 sans l'écrire dansla zone spécifiée au cours de l'étape 143. A l'étape 145, la CPU 59 positionne le drapeau d'acceptation de continuation d'écriture et emmagasine l'adresse de début du bloc non écrit dans la RAM 60 comme adresse de début d'écriture. A l'étape 147, la CPU 59 délivre une donnée de réponse indiquant l'acceptation de la continuation d'écriture, puis attend la donnée d'instruction suivante. Une chaîne de données qui est trop longue pour être emmagasinée par une seule transmission peut être emmagasinée comme ci-dessus décrit. Lorsque la chaîne de données est emmaga- sinée en unités de blocs, dans la donnée d'attribut qui lui a été ajoutée, le bit "6" est positionné à "O", et le bit "7" est positionné à "1". Lorsque le bit indiquant la quantité restante est "O", dans un bloc emmagasinant la donnée divisée finale, les deux bits "6" et "7" sont positionnés à "O". On suppose que la donnée d'instruction représentée sur la figure 17A est appliquée en entrée. La donnée d'instruc- tion présentée sur la figure 17A est une donnée d'instruction d'écriture, et la zone cible est [021. Le nombre de bytes de la zone [02] est quatre bytes, comme indiqué dans la table d'index de la figure 11. Tout d'abord, il est effectué une extraction de la donnée du nombre de bytes dans la donnée d'instruction d'entrée, puis le programme se reporte à la donnée de pointeur placée au début de la zone [02] afin de vérifier si toutes les données d'emmagasinage peuvent être emmagasinées. Ensuite, le MSB de la donnée du nombre de bytes de la donnée d'instruction est posi- tionné à "1" (figure 17B). Comme le montre la figure 17B, "80" et "OB" sont exprimés en notation hexadécimale. La quantité res- tante déterminée en fonction du nombre de bytes à partir de la table d'index et de la donnée du nombre de bytes se trouvant dans la donnée d'instruction (figure 17C). Dans ce cas, puisque la donnée du nombre de bytes est "11" et que le nombre de bytes positionné dans la donnée d'instruction est "5", la quantité res- tante correspond à "6". Cinq bytes sont divisés par le nombre de bytes de l'unité de traitement (figure 17D) et sont emmagasinés dans la zone [02], comme représenté sur la figure 17E. Puisque la quantité restante n'est pas "0", la donnée divisée finale n'est pas emmagasinée. Ensuite, l'adresse d'écriture suivant est emmagasinée et le drapeau d'acceptation de continuation d'écriture incorporé dans la mémoire de données 61 est positionné. Dans cet état, si la donnée d'instruction d'écri- ture à suivre présentée sur la figure 17F est appliquée en entrée, le nombre de bytes contenus dans la donnée d'instruction subit une vérification. Une nouvelle quantité restante est positionnée en fonction de la quantité restante précédente et du nombre de bytes de la donnée d'emmagasinage appliquée en entrée (figure 17G). Dans ce cas, puisque la quantité restante précédente correspond à "6" et que le nombre de bytes de la donnée d'emmagasinage d'entrée correspond à "6", la nouvelle quantité restante corres- pond à "0". La donnée divisée finale préalablement emmagasinée et la donnée d'emmagasinage appliquée en entrée sont combinées (figure 17H), la donnée d'emmagasinage est divisée par le nombre de bytes de l'unité de traitement (figure 17I), et elle est emmagasinée aux adresses correspondantes de la zone [023 (figure 17J). Dans ce cas, puisque la quantité restante correspond à "0", le MSB de la donnée du nombre de bytes est positionné à "0", et l'adresse finale est emmagasinée comme donnée de pointeur. On va maintenant décrire l'opération de lecture d'une donnée dans la mémoire de données 61 en relation avec les organigrammes des figures 18A et 18C. Lors de la lecture d'une donnée emmagasinée dans la mémoire de données 61, une donnée d'instruction de lecture possédant le format présenté sur la figure 19 est appliquée en entrée. La donnée d'instruction de lecture est constituée d'un code de fonction de lecture et d'un numéro de zone. Dans l'état normal, la CPU 59 attend une donnée d'instruction de la part du lecteur-enregistreur de cartes 11. Lorsque la donnée d'instruction du lecteur-enregistreur 11 a été appliquée, la CPU 59 vérifie à l'étape 149 si le code de fonction appartenant à la donnée d'instruction d'entrée est un code de fonction de lecture. Si la réponse est OUI à l'étape 149, la CPU 59 trouve le numéro de zone dans la donnée d'instruction à partir de la zone E[00] de la mémoire de données 61 au cours de l'étape 151. Si la réponse est NON à l'étape 151, la CPU 59 délivre une donnée de réponse indiquant que la zone correspondante n'a pas été trouvée au cours de l'étape 153, puis attend la donnée d'instruction suivante. Si la réponse est OUI à l'étape 151, la CPU 59 se reporte au nombre de bytes de traitement correspondant à la zone détectée et emmagasine les adresses de début et de fin de la zone correspondante dans la mémoire de données 61. Lorsque la donnée se trouvant dans la zone est lue, la CPU 59 se reporte à la donnée de pointeur placée au début de la zone pour vérifier au cours de l'étape 155 si tous les bits de la donnée de pointeur valent "1". Lorsque la CPU 59 certifie qu'aucune donnée n'a été emmagasinée dans cette zone, elle délivre une donnée de réponse indiquant une zone non écrite au cours de l'étape 157, puis attend la nouvelle donnée d'instruction. Toutefois, si la réponse est NON à l'étape 155, c'est-à-dire si tous les bits de la donnée de pointeur ne valent pas "1", la CPU 59 trouve le bloc de début dans la zone à partir de la donnée de pointeur au cours de l'étape 159. Puisque le bloc de début emmagasine la donnée du nombre de bytes, la CPU 59 extrait la donnée du nombre de bytes au cours de l'étape 161 pour vérifier si la chaîne de données visée peut être présente dans la zone. Par exemple, si la donnée du nombre de bytes écrite dans le bloc de début est plus grande qu'une capacité d'emmagasinage calculée à partir des adresses de début et de fin de la table d'index, ceci signifie une erreur. En résul- tat, si une erreur est détectée, la CPU 59 délivre une donnée de réponse indiquant que la donnée du nombre de bytes est erronée au cours de l'étape 163, puis attend la nouvelle donnée d'instruc- tion. Toutefois, si la réponse est OUI à l'étape 161, c'est-à- dire si La donnée du nombre de bytes est valable, la CPU 59 posi- tionne la donnée du nombre de bytes extraite comme valeur initiale d'un compteur du type logiciel emmagasiné dans la RAM 60. A ce moment, s'il est déterminé au cours de l'étape 165 que le MSB de La donnée du nombre de bytes vaut "1", La CPU 59 certifie que La chaîne de données suivante n'est pas une donnée vatable et positionne te drapeau de présence d'une donnée non vatabLe au cours de L'étape 167. La CPU 59 Lit aLors La chaîne de données après La donnée du nombre de bytes, byte par byte, etL'emmagasine dans La RAM 60. Dans ce cas, le compteur du type Logiciel subit une décrémentation unitaire à chaque fois qu'une donnée de un byte est tue. Toutefois, Lorsqu'une donnée d'attribut est Lue, le compteur du type Logiciel n'est pas remis à jour et La donnée d'attribut n'est pas emmagasinée dans la RAM 60. Les données d'emmagasinage s'emmagasinent dans La RAM 60 jusqu'à ce que Le contenu du compteur atteigne "O" (étapes 169, 171, 173, 175 et 179). Toutefois, puisque la RAM 60 a une capacité limitée, si Le nombre de bytes des données atteint La capacité avant que Le contenu du compteur ait atteint "0", La CPU 59 emma- gasine Le contenu en vigueur du compteur et L'adresse finale de ta donnée en cours de Lecture et, en meme temps positionne un drapeau d'acceptation de continuation de Lecture dans La RAM 60 au cours de L'étape 183. La CPU 59 déltivre une donnée de réponse indiquant L'acceptation de La continuation de La lecture en même temps que La chaîne de données emmagasinée dans La RAM au cours de L'étape 185, puis attend ta donnée d'instruction suivante. Si Le contenu du compteur Logiciel a atteint "O", La CPU 59 vérifie au cours de tl'étape 187 si le drapeau de présence d'une donnée non vatable est positionné. Si la réponse est NON à l'étape 187, La CPU 59 délivre une donnée de réponse en même temps que la chaîne de données emmagasinée dans la RAM 60 au cours de l'étape 189, puis attend la donnée d'instruction suivante. Si la réponse est OUI à l'étape 187, ta CPU 59 délivre une donnée de réponse indiquant une donnée non vatable avec la chaîne de données emmagasinée dans la RAM 60 au cours de L'étape 191, puis attend la donnée d'instruction suivante. On va maintenant décrire une opération de lecture à suivre en relation avec l'organigramme des figures 20A et 20B. Lors de L'exécution d'une opération de lecture à suivre, une donnée d'instruction de lecture à suivre possédant le format présenté sur La figure 20C est délivrée. La donnée d'instruction de lecture à suivre est constituée d'un code de fonction de Lecture à suivre et d'un numéro de zone. Si La donnée d'instruc- tion de Lecture à suivre est reçue au cours de l'étape 193, la CPU 59 se reporte d'abord à un drapeau d'acceptation de continua- tion de lecture pour vérifier au cours de l'étape 195 si celui- ci est positionné. Si la réponse est NON à l'étape 195, la CPU 59 délivre une donnée de réponse indiquant une erreur de séquence au cours de l'étape 197, puis attend la donnée d'instruction suivante. Si la réponse est OUI à l'étape 195, la CPU 59 lit les données, byte par byte, suivant l'adresse précédemment emmagasinée tout en décrémentant d'une unité le compteur de type logiciel et elle emmagasine les données dans la RAM 60 (opérations 199, 201 et 203). Toutefois, lors de la lecture de la donnée d'attribut, le compteur du type logiciel n'est pas remis à jour et la donnée d'attribut n'est pas emmagasinée dans la RAM 60. Si le contenu du compteur atteint "O" à l'étape 207, la CPU 59 repositionne le drapeau d'acceptation de continuation de lecture au cours de l'étape 211 et vérifie, au cours de l'étape 219, si le drapeau de présence d'une donnée non valable est positionné. Si la réponse est NON à l'étape 219, la CPU 59 délivre une donnée de réponse indiquant l'achèvement de la lecture, en même temps que la chaîne de données maintenue dans la RAM 60 au cours de l'étape 221, puis attend la donnée d'instruction suivante. Si la réponse est OUI à l'étape 219, la CPU 59 délivre une donnée de réponse indiquant une donnée non valable, en même temps que la chaîne de données maintenue dans la RAM 60 au cours de l'étape 217, puis attend la donnée d'instruction suivante. Si la capacité de la RAM 60 est atteinte avant que le contenu du compteur n'ait atteint "O" au cours de l'étape 205, la CPU 59 emmagasine le contenu du compteur et l'adresse finale de l'opération de lecture de donnée en cours et, dans le même temps, positionne le drapeau d'acceptation de continuation de lecture au cours de l'étape 213. La CPU 59 délivre ensuite une donnée de réponse indiquant une acceptation de conti- nuation de lecture, en même temps que la chaîne de données dans La RAM 60 au cours de L'étape 215, puis attend la donnée d'ins- truction suivante. Plus spécialement, on suppose que l'opération de lecture s'effectue en réponse à la donnée d'instruction de lecture représentée sur la figure 21A, relativement à une zone telle que présentée sur la figure 17J (par exemple la zone [02]). On note que la capacité de la RAM 60 est huit bytes. Dans ce cas, une chaîne de données lue par cette donnée d'instruction est une chaîne de données telle que représentée sur la figure 21B, et la donnée du nombre de bytes indique onze bytes. Ainsi, lorsque la chaîne de données lue est emmagasinée dans la RAM 60, le contenu du compteur logiciel correspond à "5". Puisque le contenu du compteur n'est pas "0", une donnée de réponse indiquant une accepta- tion de continuation de lecture est délivrée en même temps que la chaîne de données (figure 21C). Lorsque, ensuite, la donnée d'instruction de lecture à suivre représentée sur la figure 21D est reçue, La chaîne de données représentée sur la figure 21E est emmagasinée dans la RAM 60. A ce moment, puisque le contenu du compteur correspond à "0", une donnée de réponse indiquant l'achèvement de la lecture est délivrée en même temps que la chaîne de données (figure 21F). On va décrire une opération d'effacement de donnée dans la mémoire de données 61 en relation avec l'organigramme de la figure 22. Lorsqu'une donnée emmagasinée dans la mémoire de données 61 est effacée, une donnée d'instruction d'effacement ayant le format présenté sur la figure 23 est appliquée en entrée. La donnée d'instruction d'effacement est constituée d'un code de fonction d'effacement et d'un numéro de zone. Dans l'état normal, La CPU 59 attend une donnée d'instruction de la part du lecteur-enregistreur de cartes 11. Lorsqu'une donnée d'instruc- tion est délivrée par le lecteur-enregistreur de cartes 11 à cet instant, la CPU 59 vérifie que cours de l'étape 223 si le code de fonction se trouvant dans la donnée d'instruction est un code de fonction d'effacement. Si la réponse est OUI à l'étape 223, la CPU 59 recherche le numéro de zone appartenant à la donnée d'ins- truction dans la zone [00) de la mémoire de données 61 au cours de l'étape 225. Si la réponse est NON à Létape 225, la CPU 59 délivre une donnée de réponse indiquant que la zone correspon- dante n'a pas été trouvée au cours de l'étape 227, et elle attend la donnée d'instruction suivante. Si la réponse est OUI au cours de l'étape 225, la CPU 59 se reporte à l'adresse de début de la zone correspondante afin de vérifier la donnée de pointeur qu'elle contient au cours de l'étape 229. En résultat, si tous les bits de la donnée de pointeur valent "1", la CPU 59 détermine qu'aucune donnée n'est emmagasinée dans cette zone, délivre une donnée de réponse indiquant une zone non écrite au cours de l'étape 231, puis attend la donnée d'instruction sui- vante. Toutefois, si tous les bits de la donnée de pointeur ne sont pas "1", la CPU 59 positionne tous Les bits de la donnée de pointeur à "1", délivre une donnée de réponse indiquant l'achèvement de l'opération d'effacement au cours de l'étape 237, puis attend la donnée d'instruction suivante. Dans la carte à circuit intégré ci-dessus décrite, une zone servant à emmagasiner l'adresse (donnée de pointeur) du byte final du bloc final de la donnée écrite pendant la remise à jour est prévue au début de chaque zone de donnée dans la mémoire de données, et l'accès suivant aux données est effectué en fonction de la donnée de pointeur emmagasinée dans cette zone. Par exemple, lorsque la donnée est écrite dans une zone de donnée cible, l'adresse finale d'une chaîne de données écrite ne doit pas nécessairement être recherchée à partir de la zone cible au con- traire de la carte à circuit intégré de fabrication classique, ce qui améliore grandement la vitesse d'accès aux données. De plus, la donnée permettant de certifier une donnée non écrite ne doit pas nécessairement être maintenue, au contraire de La carte àr circuit intégré de fabrication classique. On peut effectuer de manière fiable la gestion des données même s'il est adopté un procédé différent d'un procédé de commande de données classique, ce qui autorise une utilisation efficace comme système de carte à circuit intégré. Dans le mode de réalisation ci-dessus présenté, l'élément de commande, la mémoire de données et la mémoire de programmes sont constitués par une unique puce IC. Toutefois, ils ne doivent pas nécessairement être constitués par une unique puce IC, mais peuvent être constitués de puces IC distinctes. Dans le mode de réalisation ci-dessus présenté, la carte à circuit intégré a été illustrée sous forme d'un dispositif électronique portatif. Toutefois, La forme du dispo- sitif électronique portatif ne se limite pas à La forme carte, mais peut avoir la forme d'un bloc ou la forme d'un crayon. IL est possible de modifier la conception matérielle du dispositif électronique portatif en restant dans les limites et dans l'esprit de l'invention. Bien entendu, L'homme de l'art sera en mesure d'imaginer, à partir du dispositif dont La description vient * d'être donnée à titre simplement illustration et nullement limitatif, diverses variantes et modifications ne sortant pas du cadre de l'invention. 2 5 9 1 0 0 6 R E V E N D I C ATI O N S 1. Dispositif électronique portatif, caractérisé en ce qu'il comporte: - un moyen de mémoire (4a, 5) servant à emmagasiner des données; et une unité centrale de traitement (CPU; 4) servant à commander sélectivement l'accès pour lecture de données ou l'accès pour écriture de données dans ledit moyen de mémoire en réponse à une instruction délivrée par un système principal connecté audit dispositif électronique portatif, ladite CPU emmagasinant une donnée, qui peut fournir l'adresse d'emmagasi- nage de la zone non écrite suivante, dans une zone prédéterminée dudit moyen de mémoire (4a) lorsque ladite CPU écrit des données dans ledit moyen de mémoire. 2. Dispositif selon la revendication 1, caractérisé en ce que l'adresse d'emmagasinage est une adresse de début. 3. Dispositif selon la revendication 1, caractérisé en ce que ledit moyen de mémoire (4a, 5) comprend une mémoire permanente (5) et une mémoire non permanente (4a), de sorte que les données sont écrites dans ladite mémoire permanente et l'adresse d'emmagasinage est emmagasinée dans ladite mémoire non permanente. 4. Dispositif selon la revendication 1, caractérisé en ce que ledit moyen de mémoire (61) est divisé en plusieurs zones, et en ce que chacune desdites zones possède un domaine de donnée de position servant à emmagasiner une donnée indiquant la position d'une chaîne de données finale écrite dans la zone correspondante, si bien que, lorsque ladite CPU (59) accède à la zone, la CPU se reporte au domaine de donnée de position de la zone pour certifier un emplacement auquel il doit être accédé dans ledit moyen de mémoire (61). 5. Dispositif selon la revendication 4, caractérisé en ce que chacune desdites zones est en outre divisée en plusieurs blocs, chaque bloc d'une zone unique a une longueur de données prédéterminée, et ladite CPU (59) effectue un traitement de données en utilisant lesdits blocs comme unités de traitement. 2 591006 6. Dispositif selon la revendication 5, caractérisé en ce que chacun desdits blocs est constitué d'une donnée d'attri- but et d'une donnée d'emmagasinage, et ce que La donnée d'emma- gasinage est constituée d'une chaîne de données à emmagasiner et d'une donnée indiquant La Longueur de la chaîne de données. 7. Dispositif selon la revendication 4, caractérisé en ce que la position de la chaîne de données finale correspond à une position d'adresse d'un bloc final de la chaîne de données finale. 8. Dispositif selon la revendication 6, caractérisé en ce que la donnée d'attribut possède un identificateur indiquant si une donnée d'emmagasinage correspondante est ou non valable et un identificateur indiquant si un bloc comporte ou non une donnée finale, lorsque la chaîne de donnée à emmagasiner doit être emmagasinée sur plusieurs blocs. 9. Dispositif selon la revendication 4, caractérisé en ce que l'une desdites zones possède une table d'index qui emma- gazine la longueur de la donnée d'emmagasinage dans chaque bloc des zones restantes et les adresses de début et de fin des zones restantes en correspondance avec les numéros des zones. 10. Dispositif selon la revendication 9, caractérisé en ce que la CPU reçoit une donnée d'instruction délivrée par ledit système principal connecté audit dispositif électronique portatif et consistant en un code de fonction d'écriture, un numéro de zone, une donnée du nombre de bytes et une chaîne de données, se reporte à la table d'index en relation avec le numéro de zone écrit dans la donnée d'instruction et employé comme paramètre permettant d'obtenir la longueur de donnée pour l'unité de traitement, et divise la chaîne de données en unités de traitement pour l'emma- gasiner. 11. Dispositif selon la revendication 1, caractérisé en ce que ladite unité centrale de traitement emmagasine une donnée qui peut fournir l'adresse d'emmagasinage de la zone écrite dans une zone prédéterminée du moyen de mémoire dans le seul cas o il est déterminé que la donnée est correctement emmagasinée dans ladite mémoire de données.