FR2795836A1 - Method of evaluation of timing of data processing device by executing program contained in memory while adding time of execution to form accumulated value of time during such operation - Google Patents

Method of evaluation of timing of data processing device by executing program contained in memory while adding time of execution to form accumulated value of time during such operation Download PDF

Info

Publication number
FR2795836A1
FR2795836A1 FR9908408A FR9908408A FR2795836A1 FR 2795836 A1 FR2795836 A1 FR 2795836A1 FR 9908408 A FR9908408 A FR 9908408A FR 9908408 A FR9908408 A FR 9908408A FR 2795836 A1 FR2795836 A1 FR 2795836A1
Authority
FR
France
Prior art keywords
time
instruction
instructions
processor
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR9908408A
Other languages
French (fr)
Inventor
Azad Nassor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull CP8 SA
Original Assignee
Bull CP8 SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=9547521&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=FR2795836(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Bull CP8 SA filed Critical Bull CP8 SA
Priority to FR9908408A priority Critical patent/FR2795836A1/en
Publication of FR2795836A1 publication Critical patent/FR2795836A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

The method involves defining for every instruction a time of execution of this instruction by a processor. The processor executes (46) a program contained in the memory, containing at least single instruction, while adding (43) during such operation, the time of execution to form an accumulated value of time. An Independent claim is included for: (a) a data processing device

Description

Procédé pour comptabiliser le temps dans un dispositif de traitement d'information, et dispositif associé Lorsque l'on veut que deux appareils électroniques intelligents dialoguent entre eux, il faut mettre en place un protocole de communication pour gérer la bonne entente entre ces appareils. II en est de même pour la communication entre une carte à microcalculateur et le lecteur de cette carte. Method for counting the time in an information processing device, and associated device When two intelligent electronic devices are in dialogue with one another, a communication protocol must be set up to manage the agreement between these devices. It is the same for the communication between a microcomputer card and the reader of this card.

Plusieurs protocoles de communication ont été imaginés et/ou implémentés tels que le protocole T=1 , dit protocole par blocs , ou le plus utilisé actuellement qui est le protocole T=0 , ou protocole caractère . Dans tous ces protocoles, on se doit de spécifier différentes règles garantissant une bonne communication, telle que la reconnaissance du début de l'émission , ou la fin de l'émission . Several communication protocols have been designed and / or implemented such as the T = 1 protocol, called block protocol, or the most currently used which is the T = 0 protocol, or character protocol. In all these protocols, it is necessary to specify different rules guaranteeing a good communication, such as the recognition of the beginning of the emission, or the end of the emission.

Dans l'architecture de communication entre la carte et le lecteur, la carte est considérée comme esclave et le lecteur maître . Cela signifie que c'est toujours le lecteur qui prend l'initiative du début d'un dialogue. Plus précisément, la carte est sollicitée par le lecteur, par envoi d'une commande, et la carte, après réception de cette commande, exécute un certain traitement, puis donne en retour la réponse à la commande. In the communication architecture between the card and the reader, the card is considered as slave and the master reader. This means that it is always the reader who initiates the beginning of a dialogue. More specifically, the card is requested by the reader, by sending an order, and the card, after receiving this command, performs a certain treatment, then gives back the response to the command.

Notons que le cas de la mise sous-tension de la carte est un cas particulier dans la mesure où c'est par application de la tension adéquate sur la broche Reset (remise à zéro) du composant carte que le lecteur initie le dialogue. On peut considérer donc que c'est une façon particulière d'envoyer une commande sortante à la carte. En réponse à cette excitation électrique, la carte effectue le traitement adéquat d'initialisation, par exemple en remettant à zéro certaines variables en RAM, ou en leur affectant des valeurs initiales, et termine son traitement en émettant la réponse à la mise sous tension, ou ATR ( Answer To Reset en anglais). Note that the case of powering up the card is a special case in that it is by applying the appropriate voltage on the reset pin (reset) of the card component that the reader initiates the dialogue. We can therefore consider that it is a particular way of sending an outgoing order to the card. In response to this electrical excitation, the card performs the appropriate initialization processing, for example by resetting some variables to RAM, or assigning them initial values, and ends processing by transmitting the power-on response, or ATR (Answer To Reset).

On peut distinguer plusieurs types de commande # commande entrante, avec des données l'accompagnant, voire sans donnée # commande sortante, avec des données attendues en retour # ou une combinaison des commandes précédentes Dans tous les cas, la carte doit répondre au moins par un ou deux mot(s) d'état(s). Et cette réponse doit être renvoyée au lecteur au plus tard une seconde après la fin de réception de la commande. Pratiquement, si l'on se place du côté de la carte, celle-ci doit donc disposer d'un moyen pour décompter le temps qui s'écoule. We can distinguish several types of command # incoming command, with data accompanying it, or without data # outgoing command, with expected data back # or a combination of previous commands In all cases, the card must answer at least by one or two word (s) of state (s). And this answer must be returned to the reader at the latest one second after the end of receipt of the order. Practically, if one is on the side of the card, it must have a means to count down the time that elapses.

Pour l'homme du métier, le moyen classique qu'il utilisera est le service d'un compteur adjoint au microcalculateur. Celui-ci sera armé à une valeur inférieure à la seconde au début du processus, et lorsqu'il arrivera au bout de son décompte, il préviendra l'unité centrale de la carte, par déclenchement d'une interruption. L'homme du métier aura pris soin de brancher cette interruption dans la routine adéquate qui aura pour tâche d'émettre un mot d'état d'attente. Mais comme les cartes, en tant que produits commercialisées, doivent satisfaire à un certain coût imposé par le marché, leur microcalculateur est rarement équipé d'un compteur. De plus, le compteur occupe un volume non négligeable et pose donc des difficultés dans la phase d'encartage de la puce dans le support plastique. Dans l'art actuel et futur proche, de nouvelles plate-formes de système d'exploitation arrivent. Elles conservent encore des caractéristiques de l'art ancien dans la mesure où, comme auparavant, il y a un système d'exploitation de base accomplissant des tâches plus ou moins génériques, comme la gestion des entrées I sorties, ou l'écriture en mémoire non volatile du type EEPROM, et parfois encore accompagnés d'applications dédiées, par exemple une application PME (Porte Monnaie Electronique). Mais ce qui est nouveau c'est que ces plates formes sont fournies avec un noyau interpréteur de commandes, ou machine virtuelle, et d'un ensemble de routines spécifiques documentées à l'usage des développeurs d'applications en code interprété, routines nommées APIs (de l'anglais Application Program Interface : interface de programme d'application), et un mécanisme de téléchargement de ces applications. For the skilled person, the conventional means that he will use is the service of an assistant counter to the microcomputer. It will be armed at a value less than one second at the beginning of the process, and when it reaches the end of its count, it will notify the central unit of the card, by triggering an interruption. The person skilled in the art will have taken care to connect this interruption in the proper routine which will have the task of issuing a state of waiting word. But as cards, as marketed products, must meet a certain cost imposed by the market, their microcomputer is rarely equipped with a meter. In addition, the counter occupies a significant volume and therefore poses difficulties in the insertion phase of the chip in the plastic support. In current and near future art, new operating system platforms are coming. They still retain characteristics of the ancient art insofar as, as before, there is a basic operating system performing more or less generic tasks, such as the management of input I outputs, or the writing in memory nonvolatile type EEPROM, and sometimes accompanied by dedicated applications, for example an SME application (Electronic Money Carrier). But what is new is that these platforms are provided with a shell interpreter, or virtual machine, and a set of specific routines documented for use by the developers of applications in interpreted code, named APIs routines (from the English Application Program Interface), and a mechanism for downloading these applications.

Ces applications en code interprété ont deux caractéristiques majeures qui les différencient du processus existant dans l'art antérieur. These applications in interpreted code have two major characteristics that differentiate them from the process existing in the prior art.

La première est que ces applications peuvent être développées, pas seulement par le fournisseur de la plate-forme, composée du système d'exploitation de base + interpréteur + APIs, mais elles sont davantage destinées à être développées par un tiers disposant de la plate-forme et des spécifications de programmation décrivant la couche la plus élevée de la plate-forme, c'est à dire le langage interprété et les APIS. The first is that these applications can be developed, not only by the platform provider, composed of the base operating system + interpreter + APIs, but they are more intended to be developed by a third party with the platform. form and programming specifications describing the highest layer of the platform, ie the interpreted language and APIS.

La seconde est que ces applications sont téléchargées non pas pendant la mise au point du système d'exploitation de base, mais ultérieurement, pendant la phase d'utilisation de la carte ! Ainsi, une fois l'application téléchargée, l'ensemble du code qui est exécuté durant une commande carte est le résultat du déroulement mixte du code du système d'exploitation de base et celui du code interprété. The second is that these applications are downloaded not during the debugging of the base operating system, but later, during the use phase of the card! Thus, once the application has been downloaded, all the code that is executed during a command card is the result of the mixed operation of the code of the base operating system and that of the interpreted code.

La base de la solution selon l'invention utilise le fait que pour exécuter le code interprété, la plate-forme de base (système d'exploitation de base + interpréteur + APIs) doit de manière itérative prendre chaque instruction de l'application téléchargée et l'interpréter. II y a donc existence d'un processus itératif pendant l'exécution du code interprété. La solution consiste alors à insérer une routine nouvelle, que l'on nommera routine d'accumulation de durée , dans le code gérant ce processus itératif de manière à ce qu'elle soit appelée à chaque itération. The basis of the solution according to the invention uses the fact that to execute the interpreted code, the base platform (base operating system + interpreter + APIs) must iteratively take each instruction of the downloaded application and interpret. There is therefore an iterative process during the execution of the interpreted code. The solution consists in inserting a new routine, which one will name routine of accumulation of duration, in the code managing this iterative process so that it is called at each iteration.

L'invention concerne à cet effet un procédé pour comptabiliser le temps dans un dispositif de traitement d'information comprenant des moyens de traitement et des moyens de mémorisation, caractérisé en ce qu'il comprend les étapes consistant à -définir un tableau contenant, pour chaque instruction d'un ensemble d'instructions à exécuter par les moyens de traitement, un temps d'exécution de cette instruction ; -exécuter un programme comprenant au moins une instruction en ajoutant, au moment de l'exécution de chaque instruction, le temps d'exécution de cette instruction à une valeur de cumul de temps. To this end, the invention relates to a method for counting time in an information processing device comprising processing means and storage means, characterized in that it comprises the steps of defining a table containing, for each instruction of a set of instructions to be executed by the processing means, a execution time of this instruction; -execute a program comprising at least one instruction by adding, at the time of execution of each instruction, the execution time of this instruction to a cumulative time value.

En variante, l'invention concerne aussi un procédé pour comptabiliser le temps dans un dispositif de traitement d'information comprenant des moyens de traitement et des moyens de mémorisation, caractérisé en ce qu'il comprend les étapes consistant à -définir un tableau contenant, pour chaque instruction d'un programme à exécuter par les moyens de traitement, un temps d'exécution de cette instruction ; -vérifier chaque instruction du programme en déterminant si cette instruction obéit à au moins une règle déterminée en ajoutant, au moment de la vérification de chaque instruction, le temps d'exécution de cette instruction à une valeur de cumul de temps ; -comparer, au moment de la vérification de chaque instruction, la valeur de cumul de temps à une valeur de référence de temps ; -insérer dans le programme, à un endroit où se trouve l'instruction en cours de vérification, une instruction définissant une opération à effectuer par les moyens de traitement, quand la valeur de cumul de temps atteint la valeur de référence de temps ; et -faire exécuter le programme par les moyens de traitement du dispositif de traitement d'information. In a variant, the invention also relates to a method for counting time in an information processing device comprising processing means and storage means, characterized in that it comprises the steps of defining an array containing, for each instruction of a program to be executed by the processing means, a execution time of this instruction; -checking each instruction of the program by determining whether this instruction obeys at least one determined rule by adding, at the time of checking each instruction, the execution time of this instruction to a time accumulation value; comparing, at the time of the verification of each instruction, the cumulative time value with a time reference value; inserting into the program, at a location where the instruction being checked, an instruction defining an operation to be performed by the processing means, when the cumulative time value reaches the time reference value; and - executing the program by the processing means of the information processing device.

L'invention concerne aussi le dispositif de traitement d'information associé à ce procédé. The invention also relates to the information processing device associated with this method.

D'autres détails et avantages de la présente invention apparaîtront au cours de la description suivante d'un mode d'exécution préféré mais non limitatif, en regard des dessins annexés sur lesquels La figure 1 représente un dispositif de traitement de données coopérant avec un objet portatif ; La figure 2 est un tableau indiquant, pour chaque instruction interprétée d'une application, sa durée d'exécution; La figure 3 est un tableau indiquant, pour chaque instruction élémentaire des moyens de traitement, sa durée d'exécution ; La figure 4 est un organigramme d'exécution d'une application intégrant une routine d'accumulation de durée selon l'invention ; La figure 5 est un tableau réduit indiquant, pour chaque instruction interprétée d'une application, sa durée d'exécution ; La figure 6 est un organigramme de vérification d'une application intégrant une routine d'accumulation de durée selon l'invention ; La figure 1 représente un dispositif de traitement de données 1 coopérant avec un objet portatif 8. Le dispositif de traitement de données comprend de façon connue en soi un microprocesseur 2 auquel sont reliés une mémoire ROM 3, une mémoire RAM 4, des moyens 5 pour coopérer, avec ou sans contact physique, avec l'objet portatif 8, et une interface de transmission 7 permettant au dispositif de traitement de données de communiquer avec un réseau de communication de données. Le dispositif de traitement de données 1 peut en outre être équipé de moyens de stockage tels que des disquettes ou disques amovibles ou non, de moyens de saisie (tels qu'un clavier et/ou un dispositif de pointage du type souris) et de moyens d'affichage, ces différents moyens n'étant pas représentés sur la figure 1. Other details and advantages of the present invention will become apparent from the following description of a preferred but nonlimiting embodiment, with reference to the appended drawings in which FIG. 1 represents a data processing device cooperating with an object. portable; FIG. 2 is a table indicating, for each interpreted instruction of an application, its duration of execution; FIG. 3 is a table indicating, for each elementary instruction of the processing means, its duration of execution; FIG. 4 is an execution flow chart of an application incorporating a duration accumulation routine according to the invention; FIG. 5 is a reduced table indicating, for each interpreted instruction of an application, its duration of execution; FIG. 6 is an application verification flow chart incorporating a duration accumulation routine according to the invention; FIG. 1 represents a data processing device 1 cooperating with a portable object 8. The data processing device comprises, in a manner known per se, a microprocessor 2 to which a ROM 3, a RAM 4, a memory 5, 5 cooperating, with or without physical contact, with the portable object 8, and a transmission interface 7 enabling the data processing device to communicate with a data communication network. The data processing device 1 may also be equipped with storage means such as floppies or removable disks or not, input means (such as a keyboard and / or a pointing device of the mouse type) and means display, these different means not being shown in FIG.

Le dispositif de traitement de données peut être constitué par tout appareil informatique installé sur un site privé ou public et apte à fournir des moyens de gestion de l'information ou de délivrance de divers biens ou services, cet appareil étant installé à demeure ou portable. II peut notamment s'agir aussi d'un appareil dédié aux télécommunications. The data processing device may be constituted by any computer device installed on a private or public site and capable of providing information management means or delivery of various goods or services, this device being installed permanently or portable. It may also be a device dedicated to telecommunications.

Par ailleurs, l'objet portatif 8 porte une puce incluant des moyens de traitement de l'information 9, une mémoire non volatile 10, une mémoire volatile de travail RAM 14, et des moyens 13 pour coopérer avec le dispositif de traitement de données 1. Cette puce est agencée pour définir, dans la mémoire 10, une zone secrète 11 dans laquelle des informations une fois enregistrées, sont inaccessibles depuis l'extérieur de la puce mais seulement accessibles aux moyens de traitement 9, et une zone accessible 12 qui est rendue accessible depuis l'extérieur de la puce par les moyens de traitement 9 pour une lecture et/ou une écriture d'informations. Chaque zone de la mémoire non volatile 10 peut comprendre une partie non modifiable ROM et une partie modifiable EPROM, EEPROM, ou constituée de mémoire RAM du type "flash" ou FRAM (cette dernière étant une mémoire RAM ferromagnétique), c'est-à-dire présentant les caractéristiques d'une mémoire EEPROM avec en outre des temps d'accès identiques à ceux d'une RAM classique. Moreover, the portable object 8 carries a chip including information processing means 9, a nonvolatile memory 10, a volatile working memory RAM 14, and means 13 for cooperating with the data processing device 1 This chip is arranged to define, in the memory 10, a secret zone 11 in which information once recorded, are inaccessible from outside the chip but only accessible to the processing means 9, and an accessible zone 12 which is made accessible from outside the chip by the processing means 9 for reading and / or writing information. Each zone of the non-volatile memory 10 may comprise a non-modifiable portion ROM and an modifiable portion EPROM, EEPROM, or constituted by RAM of the "flash" or FRAM type (the latter being a ferromagnetic RAM memory), that is to say ie having the characteristics of an EEPROM memory with further access times identical to those of a conventional RAM.

En tant que puce, on pourra notamment utiliser un microprocesseur autoprogrammable à mémoire non volatile, tel que décrit dans le brevet américain n 4.382.279 au nom de la Demanderesse. Dans une variante, le microprocesseur de la puce est remplacé - ou tout du moins complété - par des circuits logiques. En effet, de tels circuits sont aptes à effectuer des calculs, notamment d'authentification et de signature, grâce à de l'électronique câblée, et non microprogrammée. Ils peuvent notamment être de type ASIC (de l'anglais Application Specific Integrated Circuit ). Avantageusement, la puce sera conçue sous forme monolithique. As a chip, it will be possible to use a self-programmable microprocessor with non-volatile memory, as described in US Pat. No. 4,382,279 in the name of the Applicant. In a variant, the microprocessor of the chip is replaced - or at least supplemented - by logic circuits. Indeed, such circuits are able to perform calculations, including authentication and signing, through the wired electronics, not microprogrammed. They may in particular be of the ASIC (Application Specific Integrated Circuit) type. Advantageously, the chip will be designed in monolithic form.

Selon l'invention, l'objet portatif 8 stocke, dans sa mémoire non volatile 10, un tableau TAB-INS-DUREE (figure 2) qui possède deux colonnes. Une première colonne contient des identifiants ou codes I, , IZ , ......,I; ,<B>......</B> I, de n instructions interprétées constituant le code ou programme d'une application écrite en langage évolué, constituée d'éléments de ce langage et d'appels à des fonctions APIs (de l'anglais Application Program Interface , signifiant Interface de Programme d'Application ). Les fonctions APIs sont écrites en un ensemble d'instructions qui peuvent, soit être élémentaires, soit faire appel à d'autres fonctions APIs : elles accomplissent une certaine tâche. De façon connue en soi, une application est destinée à être interprétée par une machine virtuelle qui est située en mémoire non volatile 10 de l'objet portatif 8 et qui se présente sous la forme d'un code interpréteur, désigné par la suite l'interpréteur : l'interpréteur est chargé de traduire chaque instruction interprétée en des instructions appartenant à un système d'exploitation de base des moyens de traitement 9 et qui sont donc directement exécutables par ceux-ci. According to the invention, the portable object 8 stores, in its non-volatile memory 10, a table TAB-INS-DUREE (FIG. 2) which has two columns. A first column contains identifiers or codes I,, IZ, ......, I; , <B> ...... </ B> I, of n interpreted instructions constituting the code or program of an application written in advanced language, consisting of elements of this language and calls to API functions ( the English Application Program Interface, meaning Application Program Interface). The APIs functions are written in a set of instructions that can either be elementary or use other APIs functions: they perform a certain task. In a manner known per se, an application is intended to be interpreted by a virtual machine which is located in the non-volatile memory 10 of the portable object 8 and which is in the form of an interpreter code, hereinafter designated interpreter: the interpreter is responsible for translating each interpreted instruction into instructions belonging to a basic operating system of the processing means 9 and which are therefore directly executable by them.

Une seconde colonne du tableau TAB-INS-DUREE contient, pour chacune des instructions interprétées I, , 12 , ......,I; ,<B>......</B> h de l'application, une durée respective T, , T2 ,...., T; , ......, T,, correspondant au temps que mettent les moyens de traitement 9 pour exécuter l'instruction interprétée considérée. La façon dont sont calculées les durées T, , T2 ,...., T; , ......, T" va maintenant être exposée. Le fabricant de la puce équipant l'objet portatif 8 fournit habituellement, dans sa documentation, un tableau (figure 3) donnant, pour chaque instruction élémentaire i, , i2 ,....ii ,.....in, faisant partie de son système d'exploitation de base, sa durée t, , t2 ,<B>....</B> ti ,.....tm en nombre de cycles effectués par les moyens de traitement 9: connaissant la fréquence d'exécution des instructions élémentaires, il est facile de traduire cette durée en un temps exprimé en secondes. Par ailleurs, chaque instruction interprétée est une juxtaposition d'un certain nombre d'instructions élémentaires ; par exemple, I;=(i2 , i5 , ii , ......, ik ,<B>.....</B> , iP ), de sorte que sa durée T; peut être calculée comme la somme des durées respectives de ces instructions élémentaires , soit T; = t2 + t5 + ti +......+ tk +......+ tP . Un opérateur peut donc, à partir du tableau de la figure 3, constituer le tableau TAB-INS- DUREE. A second column of the table TAB-INS-DUREE contains, for each of the interpreted instructions I, 12, ......, I; , <B> ...... </ b> h of the application, a respective duration T,, T2, ...., T; , ......, T ,, corresponding to the time that the processing means 9 make to execute the interpreted instruction considered. The way in which the durations T,, T2, ...., T are calculated; The manufacturer of the chip equipping the portable object 8 usually provides, in its documentation, a table (FIG. 3) giving, for each elementary instruction i, i2, .... ii, ..... in, as part of its base operating system, its duration t,, t2, <b> .... </ b> ti, ..... tm in number of cycles carried out by the processing means 9: knowing the frequency of execution of the elementary instructions, it is easy to translate this duration into a time expressed in seconds.In addition, each interpreted instruction is a juxtaposition of a number elementary instructions, for example, I; = (i2, i5, ii, ......, ik, <B> ..... </ B>, iP), so that its duration T; can be calculated as the sum of the respective durations of these elementary instructions, ie T; = t2 + t5 + ti + ...... + tk + ...... + tP. An operator can therefore, from the table in Figure 3, constitute the table water TAB-INS-DURATION.

Dans le cas où une instruction interprétée peut comprendre plusieurs chemins possibles d'instructions élémentaires, l'opérateur choisira comme durée de l'instruction interprétée, la durée du chemin le plus long. Cette méthode est acceptable car, en se référant au codage actuel pour une plate- forme de base (système d'exploitation de base + interpréteur + fonctions APIs), on constate que la durée d'exécution de la grande majorité des instructions interprétables est autour de 250 gs. Et sachant que pour le composant de la famille 6805, une instruction élémentaire nécessite en moyenne autour de 3 cycles, et que la fréquence d'horloge normalisée est de 3,57 MHz, on en déduit qu'une instruction élémentaire s'exécute en moyenne en environ 1 las, et par conséquent, les 250 las cités ci-dessus représentent environ 250 instructions élémentaires. Et donc, pour les quelques instructions à interpréter ayant des séquences de traitement différentes, la différence entre une branche et une autre est de quelques dizaines d'instructions, typiquement entre 10 et 50 instructions élémentaires, soit quelques 10 à 50 lis de plus à ajouter aux 250 us, ce qui est relativement faible par rapport à la seconde (= 106 las ) qui est le seuil critique, délai dans lequel la carte, après avoir reçu une commande du lecteur, doit envoyer une réponse à celui-ci. In the case where an interpreted instruction can comprise several possible paths of elementary instructions, the operator will choose as duration of the interpreted instruction, the duration of the longest path. This method is acceptable because, by referring to the current encoding for a base platform (base operating system + interpreter + APIs functions), it can be seen that the execution time of the vast majority of interpretable instructions is around of 250 gs. And knowing that for the component of the 6805 family, an elementary instruction requires on average about 3 cycles, and that the normalized clock frequency is 3.57 MHz, we deduce that an elementary instruction runs on average in about 1 las, and therefore, the 250 las cited above represent about 250 elementary instructions. And so, for the few instructions to interpret having different processing sequences, the difference between one branch and another is a few tens of instructions, typically between 10 and 50 elementary instructions, or some 10 to 50 more lis to add the 250 us, which is relatively small compared to the second (= 106 las) which is the critical threshold, time in which the card, after receiving a command from the reader, must send a response to it.

La figure 4 illustre un exemple d'utilisation du tableau TAB-INS- DUREE pour permettre à une carte d'envoyer à un lecteur de carte un mot d'état d'attente dès qu'une durée Tmax s'est écoulée depuis le début d'exécution, par la carte, d'une commande envoyée par le lecteur. On considère que le tableau TAB-INS-DUREE a été stocké dans la carte. La figure 4 représente le code, stocké en carte, pour exécuter une application comprenant les n instructions interprétées I, à In<B>,</B> dans lequel a été insérée une routine d'accumulation de durée permettant à la carte d'envoyer ledit mot d'état d'attente. Ce code est contenu dans l'interpréteur (en variante, l'interpréteur n'est pas réalisé de façon logicielle mais matérielle, et la routine d'accumulation de durée selon l'invention est réalisée sous forme logicielle ou matérielle). A l'étape 41, l'objet portatif 8 reçoit un ordre du dispositif de traitement de données 1. A l'étape 42, une variable de temps T est initialisée à 0, et à l'étape 43, les moyens de traitement 9 lisent le code I; de l'instruction interprétable qui doit être exécutée maintenant et lisent, dans le tableau TAB-INS-DUREE, la durée T; de cette instruction qu'ils ajoutent à la variable de temps T. A l'étape 44, on compare la valeur de la variable de temps T à la durée Tmax. Si la variable de temps T n'est pas inférieure à la durée Tm,, , cela signifie que l'exécution de l'instruction interprétée courante I; va conduire à un dépassement de la durée Tm#,, : il y a donc lieu d'envoyer, à l'étape 45, un mot d'état d'attente au lecteur puis de réinitialiser à 0 la variable de temps T (par retour à l'étape 42). Suite à l'étape 44 dans le cas où la variable de temps T est inférieure à la durée T".x , l'interpréteur de la carte interprète l'instruction interprétée I; puis l'exécute (étape 46). A l'étape 47, les moyens de traitement 9 testent si l'instruction interprétée l; est la drenière à exécuter. Dans l'affirmative, l'objet portatif rend la main au dispositif de traitement de données 1 (étape 48). Dans la négative, la carte retourne à l'étape 43 en vue de traiter l'instruction interprétée suivante. FIG. 4 illustrates an example of use of the TAB-INSIDE table to allow a card to send a card to a card reader a waiting state as soon as a duration Tmax has elapsed since the beginning execution, by the card, of an order sent by the reader. The TAB-INS-DUREE array is considered to have been stored in the map. FIG. 4 represents the code, stored in a card, for executing an application comprising the n interpreted instructions I, at In <B>, </ B> in which a duration accumulation routine has been inserted allowing the card to send said wait status word. This code is contained in the interpreter (alternatively, the interpreter is not implemented in software but hardware, and the duration accumulation routine according to the invention is performed in software or hardware form). In step 41, the portable object 8 receives an order from the data processing device 1. In step 42, a time variable T is initialized to 0, and in step 43, the processing means 9 read the code I; the interpretable instruction that must be executed now and read, in the table TAB-INS-DURATION, the duration T; of this instruction they add to the time variable T. In step 44, the value of the time variable T is compared with the duration Tmax. If the time variable T is not less than the duration Tm ,,, it means that the execution of the current interpreted instruction I; will lead to exceeding the duration Tm # ,,: it is therefore necessary to send, in step 45, a waiting state word to the reader and then reset to 0 the time variable T (by return to step 42). Following step 44 in the case where the time variable T is shorter than the duration T ".x, the interpreter of the card interprets the interpreted instruction I, then executes it (step 46). step 47, the processing means 9 test whether the instruction interpreted is the drennière to execute.If the affirmative, the portable object gives the hand to the data processing device 1 (step 48). the card returns to step 43 to process the next interpreted instruction.

On constate donc que la routine d'accumulation de durée qui a été insérée dans le code d'exécution de l'application comprend les étapes 42 à 45. Thus, it is found that the duration accumulation routine that has been inserted in the execution code of the application includes steps 42 to 45.

L'origine de décompte du temps peut être soit la première utilisation de l'interpréteur, lors de la mise en service de la carte (on aura alors la possibilité de connaître une durée absolue, en quelque sorte l'âge d'usure de la carte) ; soit le début de chaque commande nouvelle: on aura alors une durée relative (cas de la figure 4 où la variable de temps T est initialisée au début de la commande d'exécution de l'application considérée). The time counting origin can be either the first use of the interpreter, when the card is put into service (it will then be possible to know an absolute duration, in a way the age of wear of the map) ; either the beginning of each new command: then we will have a relative duration (case of Figure 4 where the time variable T is initialized at the beginning of the execution command of the considered application).

Dans le cas où on implémente la solution avec la durée absolue, il est facile de connaître la durée relative par simple soustraction. En effet, au début de chaque commande, on mémorise dans une variable tampon la durée absolue atteinte, puis ultérieurement, pour connaître la durée relative, il suffit de prendre la valeur de la durée absolue au moment de la consultation et de la soustraire à la valeur de la durée absolue mémorisée précédemment dans la variable tampon. Inversement, si on a choisi une implémentation en durée relative, on peut connaître la durée absolue par simple addition. Dans ce cas, à la fin de chaque commande, il faut additionner la valeur de la durée relative (T, figure 4) à la valeur contenue dans une variable cumulative permanente, c'est à dire persistante au delà de la commande courante. In the case where the solution is implemented with the absolute duration, it is easy to know the relative duration by simple subtraction. Indeed, at the beginning of each command, one memorizes in a buffer variable the absolute duration reached, then later, to know the relative duration, it is enough to take the value of the absolute duration at the time of the consultation and to subtract it from the value of the absolute duration previously stored in the buffer variable. Conversely, if we chose an implementation in relative duration, we can know the absolute duration by simple addition. In this case, at the end of each command, the value of the relative duration (T, FIG. 4) must be added to the value contained in a permanent cumulative variable, that is, persistent beyond the current command.

Une autre manière un peu plus fine d'optimiser la taille du tableau TAB-INS-DUREE, est de regrouper un ensemble d'instructions interprétables qui ont des valeurs de durée d'exécution proche, et en ne prenant que la plus grande des valeurs. Par exemple on peut faire un pas de 100 gs, et ainsi avoir un tableau du type de celui de la figure 5, dans lequel on a rangé les instructions interprétées d'une application en trois groupes. Another slightly finer way of optimizing the size of the TAB-INS-DUREE array is to group together a set of interpretable statements that have near-runtime values, and taking only the largest of the values. . For example, it is possible to take a step of 100 g, and thus to have a table of the type of that of FIG. 5, in which the interpreted instructions of an application are arranged in three groups.

Ce tableau se lit de la manière suivante # l'ensemble d'instructions interprétées I, ,<B>15,</B> .....I; de la première ligne comprend toute instruction interprétée dont la durée d'exécution est inférieure ou égale à 100 gs ; # l'ensemble d'instructions interprétées IZ ,<B>16,</B> .....I; de la deuxième ligne comprend toute instruction interprétée dont la durée d'exécution est comprise entre 100 gs et 200 #ts ; # l'ensemble d'instructions interprétées 13 ,14 ,.<B>......</B> 1k de la troisième ligne comprend toute instruction interprétée dont la durée d'exécution est comprise entre 200 gs et 300 us, et on suppose ici que 300 gs est la durée d'exécution maximale pour l'ensemble des instructions interprétées. This table reads as follows # the set of interpreted instructions I,, <B> 15, </ B> ..... I; the first line includes any interpreted instruction whose execution time is less than or equal to 100 gs; # the set of interpreted instructions IZ, <B> 16, </ B> ..... I; the second line includes any interpreted instruction whose execution time is between 100 gs and 200 #ts; # the set of interpreted instructions 13, 14,. <B> ...... </ B> 1k of the third line includes any interpreted instruction whose duration of execution is between 200 gs and 300 us, and it is assumed here that 300 gs is the maximum execution time for all the interpreted instructions.

On constate que la taille de ce tableau est réduite par rapport à celui TAB-INS-DUREE de la figure 2, puisqu'il ne comprend que (n+3) éléments au lieu de (n+n) éléments. On utilise le tableau la figure 5 en cumulant les durées des instructions interprétées (figure 4) : la valeur de la durée T; de la figure 4 sera selon le cas 100, 200, ou 300 Ns. It is noted that the size of this table is reduced compared to that TAB-INS-DUREE of Figure 2, since it includes only (n + 3) elements instead of (n + n) elements. The table in FIG. 5 is used by cumulating the durations of the interpreted instructions (FIG. 4): the value of the duration T; of FIG. 4 will be 100, 200 or 300 Ns depending on the case.

En ce qui concerne le lieu de stockage du tableau TAB-INS-DUREE, celui-ci doit être renseigné lors de la mise au point finale de la plate-forme de base (système d'exploitation de base + interpréteur + fonctions APIs). Ce tableau peut être placé dans la mémoire non volatile masquée, telle que la ROM, ce qui a l'avantage de ne pas gaspiller de la mémoire non volatile utilisateur, du type EEPROM, mais présente l'inconvénient de ne pouvoir évoluer si la plate forme de base est amenée à évoluer en plaçant du code additionnel, ou correctif, en mémoire non volatile utilisateur, du type EEPROM (voir la demande de brevet américaine de la demanderesse déposée sous le numéro 08981607) Dans ce cas, on peut envisager dès le départ de placer le tableau en mémoire non volatile utilisateur, du type EEPROM pour pouvoir le mettre à jour. Regarding the storage location of the TAB-INS-DUREE table, this must be entered during the finalization of the base platform (base operating system + interpreter + API functions). This table can be placed in the non-volatile memory masked, such as the ROM, which has the advantage of not wasting user nonvolatile memory, EEPROM type, but has the disadvantage of not being able to evolve if the plate basic form is made to evolve by placing additional code, or corrective, nonvolatile user memory, type EEPROM (see the applicant's US patent application filed under the number 08981607) In this case, we can consider from the start to place the table in user nonvolatile memory, type EEPROM to be able to update it.

Une autre solution consisterait à placer le tableau TAB-INS-DUREE initial en mémoire non volatile masquée, telle que la ROM, et télécharger ultérieurement, en même temps que le code additionnel pour la plate forme de base (système d'exploitation de base + interpréteur + fonctions APIs), un tableau additionnel, en mémoire non volatile utilisateur, du type EEPROM, contenant les informations correspondant aux instructions interprétées nouvellement téléchargées, ou corrigeant les valeurs de durées de certaines des instructions interprétées contenues dans le tableau initial, et prévoir dans la routine d'accumulation de durée une porte de sortie telle que dans la demande de brevet américaine de la demanderesse déposée sous le numéro 08981607, afin que cette routine analyse et tienne compte d'abord du tableau additionnel, puis seulement, le cas échéant, du tableau initial. Lorsque le tableau est analysé de la manière décrite plus haut, c'est à dire consulté par la routine d'accumulation de durée à chaque itération dans le processus de l'interpréteur de code, on peut nommer cette méthode d'analyse méthode en carte . A l'opposé, on peut utiliser une méthode dite méthode hors-carte . Celle-ci consiste à disposer du tableau TAB-INS- DUREE, en dehors de la carte. Par exemple, il est intégré à l'outil dit vérificateur qui analyse l'intégrité et l'authenticité du code de l'application en langage interprété à télécharger dans la carte. Ainsi, dans cet outil vérificateur , on peut, en parcourant le code et en effectuant une opération d'accumulation de durée à l'aide du tableau TAB-INS-DUREE, modifier le code de l'application en insérant dans celui-ci l'appel de la routine permettant d'émettre le mot d'état d'attente. Ceci est illustré par la figure 6. A l'étape 60, une variable de temps T est initialisée à 0, et à l'étape 61 on augmente la variable de temps T de la valeur T; correspondant à la durée de l'instruction interprétable qui va être vérifiée maintenant, valeur qui est lue dans le tableau TAB-INS-DUREE. A l'étape 62, on compare la valeur de la variable de temps T à la durée TmaX. Si la variable de temps T n'est pas inférieure à la durée Tmax , cela signifie que l'exécution future, par la carte, de l'instruction interprétable courante i va conduire à un dépassement de la durée Tmax : il y a donc lieu d'insérer, dans le code de l'application, à l'étape 63, une instruction d'attente la consistant, pour la carte, à envoyer un mot d'état d'attente au lecteur. Puis le vérificateur réinitialise à 0 la variable de temps T (par retour à l'étape 60). Suite à l'étape 62 dans le cas où la variable de temps T est inférieure à la durée Tmax , le vérificateur de la carte vérifie l'instruction interprétable I; (étape 64). Le vérificateur détermine ensuite si l'instruction interprétable en cours de traitement est la dernière à vérifier. Dans l'affirmative, le traitement est fini. Dans la négative, le vérificateur retourne à l'étape 61 en vue de traiter l'instruction interprétable suivante. An alternative would be to place the initial TAB-INS-DUREE array in hidden nonvolatile memory, such as the ROM, and download later, along with the additional code for the base platform (base operating system + interpreter + functions APIs), an additional table, in user nonvolatile memory, of the EEPROM type, containing the information corresponding to the newly downloaded interpreted instructions, or correcting the duration values of some of the interpreted instructions contained in the initial table, and providing in the duration accumulation routine a gateway such as in the applicant's US patent application filed under the number 08981607, so that this routine analyzes and takes into account first the additional table, then only, if necessary, from the initial table. When the array is analyzed as described above, ie accessed by the duration accumulation routine at each iteration in the code interpreter process, this method of analysis can be named as a map method . In contrast, we can use a method called off-map method. This consists of having the table TAB-INSIDE, outside the card. For example, it is integrated into the so-called verifier tool that analyzes the integrity and authenticity of the code of the application in interpreted language to be downloaded into the card. Thus, in this verifier tool, by traversing the code and performing a duration accumulation operation using the table TAB-INS-DUREE, it is possible to modify the code of the application by inserting in it the call of the routine making it possible to transmit the waiting state word. This is illustrated in FIG. 6. In step 60, a time variable T is initialized to 0, and in step 61 the time variable T is increased by the value T; corresponding to the duration of the interpretable instruction that will be checked now, a value that is read in the TAB-INS-DUREE table. In step 62, the value of the time variable T is compared with the duration TmaX. If the time variable T is not less than the duration Tmax, it means that the future execution, by the card, of the current interpretable instruction i will lead to an exceeding of the duration Tmax: there is therefore to insert, in the code of the application, in step 63, a standby instruction for the card, to send a wait status word to the reader. Then, the verifier resets the time variable T to 0 (by returning to step 60). Following step 62 in the case where the time variable T is less than the duration Tmax, the verifier of the card verifies the interpretable instruction I; (step 64). The verifier then determines whether the interpretable instruction being processed is the last to be verified. If yes, the treatment is finished. If not, the verifier returns to step 61 to process the next interpretable instruction.

Suite à cette opération, le code de l'application se présente sous la forme suivante, dans laquelle une ou éventuellement plusieurs instructions d'attente la sont présentes : I, ,1z, ....I; ,.....,la , .....h. Ce code va alors pouvoir être téléchargé dans la carte pour son exécution. Lors de cette exécution, à chaque fois que la carte rencontrera une instruction d'attente la , elle enverra au lecteur un mot d'état d'attente. Following this operation, the code of the application is in the following form, in which one or possibly more waiting instructions are present: I,, 1z, .... I; ,.....,the H. This code will then be able to be downloaded into the map for its execution. During this execution, each time the card encounters a waiting instruction la, it will send the reader a waiting state word.

Dans ce qui précède, on a décrit l'invention dans le cadre d'un objet portatif contenant une machine virtuelle et manipulant des instructions interprétables. L'invention s'applique aussi à un objet portatif dépourvu d'une telle machine virtuelle ; elle s'applique aussi à tout autre dispositif de traitement de données ayant à effectuer, sous un certain délai, une certaine opération, cette opération pouvant consister à fournir une réponse à un autre dispositif avec lequel il coopère, ou bien à effectuer un traitement interne.In the foregoing, the invention has been described in the context of a portable object containing a virtual machine and manipulating interpretable instructions. The invention also applies to a portable object devoid of such a virtual machine; it also applies to any other data processing device having to carry out, within a certain time, a certain operation, this operation possibly consisting in providing a response to another device with which it cooperates, or in performing an internal processing .

Claims (10)

REVENDICATIONS 1. Procédé pour comptabiliser le temps dans un dispositif de traitement d'information comprenant un processeur (9) et une mémoire (10,14), caractérisé en ce qu'il comprend les étapes consistant à -définir, dans la mémoire, un tableau contenant, pour chaque instruction d'un ensemble d'instructions à exécuter par le processeur, un temps d'exécution de cette instruction ; -exécuter (46), au moyen du processeur, un programme contenu dans la mémoire et comprenant au moins une instruction en ajoutant (43), au moment de l'exécution de chaque instruction, le temps d'exécution de cette instruction à une valeur de cumul de temps.A method for counting the time in an information processing device comprising a processor (9) and a memory (10,14), characterized in that it comprises the steps of -defining, in the memory, a table containing, for each instruction of a set of instructions to be executed by the processor, a execution time of this instruction; executing (46), by means of the processor, a program contained in the memory and comprising at least one instruction by adding (43), at the time of execution of each instruction, the execution time of this instruction to a value cumulative time. 2. Procédé selon la revendication 1, dans lequel les instructions sont des instructions interprétables écrites dans un langage évolué et l'étape d'exécution du programme comprend une étape d'interprétation de ces instructions interprétables afin de les traduire en des instructions élémentaires écrites dans un langage propre au processeur (9) et exécutées par le processeur.The method of claim 1, wherein the instructions are interpretable instructions written in advanced language and the program execution step includes a step of interpreting these interpretable instructions to translate them into elementary instructions written in a language specific to the processor (9) and executed by the processor. 3. Procédé selon la revendication 1, comprenant les étapes consistant à -comparer (44) au moyen du processeur, lors de l'exécution de chaque instruction, la valeur de cumul de temps à une valeur de référence de temps ; _déclencher une opération (45) à effectuer par le processeur quand la valeur de cumul de temps atteint la valeur de référence de temps.The method of claim 1, including the steps of: comparing (44) by the processor, when executing each instruction, the time accumulating value to a time reference value; triggering an operation (45) to be performed by the processor when the accumulated time value reaches the time reference value. 4. Procédé selon la revendication 3, dans lequel le dispositif de traitement d'information (8) coopère avec un autre dispositif de traitement d'information (1) et la valeur de référence de temps correspond à un temps dans lequel le dispositif de traitement d'information doit transmettre un message audit autre dispositif de traitement d'information et, lorsque la valeur de cumul de temps atteint la valeur de référence de temps, le processeur transmet (45) ledit message audit autre dispositif de traitement d'information.The method according to claim 3, wherein the information processing device (8) cooperates with another information processing device (1) and the time reference value corresponds to a time in which the processing device The information processor must transmit a message to the other information processing device and, when the time accumulation value reaches the time reference value, the processor transmits (45) said message to said other information processing device. 5. Procédé selon la revendication 1, qui comprend les étapes consistant à -répartir, dans la mémoire, ledit ensemble d'instructions à exécuter par le processeur en plusieurs groupes d'instructions, les instructions de chaque groupe ayant des temps d'exécution voisins les uns des autres ; -définir, dans la mémoire, et pour chaque groupe d'instructions, un temps d'exécution moyen, unique pour toutes les instructions de ce groupe d'instructions.The method according to claim 1, which comprises the steps of: distributing, in the memory, said set of instructions to be executed by the processor into several groups of instructions, the instructions of each group having neighboring execution times one another ; -define, in the memory, and for each group of instructions, an average execution time, unique for all the instructions of this group of instructions. 6. Procédé pour comptabiliser le temps dans un dispositif de traitement d'information comprenant un processeur (9) et une mémoire (10,14), caractérisé en ce qu'il comprend les étapes consistant, dans un outil vérificateur d'instructions, à -définir un tableau contenant, pour chaque instruction d'un programme à exécuter par ledit processeur, un temps d'exécution de cette instruction ; -vérifier (64) chaque instruction du programme en déterminant si cette instruction obéit à au moins une règle déterminée en ajoutant (61), au moment de la vérification de chaque instruction, le temps d'exécution de cette instruction à une valeur de cumul de temps; -comparer (62), au moment de la vérification de chaque instruction, la valeur de cumul de temps à une valeur de référence de temps ; -insérer (63) dans le programme, à un endroit où se trouve l'instruction en cours de vérification, une instruction définissant une opération à effectuer par le processeur, quand la valeur de cumul de temps atteint la valeur de référence de temps; et en ce qu'il comprend l'étape consistant à faire exécuter le programme par le processeur du dispositif de traitement d'information.A method for counting time in an information processing device comprising a processor (9) and a memory (10,14), characterized in that it comprises the steps of, in an instruction checker tool, -define an array containing, for each instruction of a program to be executed by said processor, a execution time of this instruction; -checking (64) each instruction of the program by determining whether this instruction obeys at least one determined rule by adding (61), at the time of checking each instruction, the execution time of this instruction to a cumulative value of time; comparing (62), at the time of the verification of each instruction, the cumulative time value with a time reference value; inserting (63) in the program, at a location where the instruction being checked is present, an instruction defining an operation to be performed by the processor, when the cumulative time value reaches the time reference value; and in that it comprises the step of executing the program by the processor of the information processing device. 7. Procédé selon la revendication 6, dans lequel les instructions sont des instructions interprétables écrites dans un langage évolué et l'étape d'exécution du programme comprend une étape d'interprétation de ces instructions interprétables afin de les traduire en des instructions élémentaires écrites dans un langage propre au processeur et exécutées par le processeur.The method of claim 6, wherein the instructions are interpretable instructions written in an advanced language and the program execution step includes a step of interpreting these interpretable instructions to translate them into elementary instructions written in a language specific to the processor and executed by the processor. 8. Procédé selon la revendication 6, qui comprend les étapes consistant à -répartir, dans la mémoire, ledit ensemble d'instructions à exécuter par le processeur en plusieurs groupes d'instructions, les instructions de chaque groupe ayant des temps d'exécution voisins les uns des autres ; -définir, dans la mémoire et pour chaque groupe d'instructions, un temps d'exécution moyen, unique pour toutes les instructions de ce groupe d'instructions.The method according to claim 6, which comprises the steps of: distributing, in the memory, said set of instructions to be executed by the processor into several groups of instructions, the instructions of each group having neighboring execution times one another ; -define, in the memory and for each group of instructions, an average execution time, unique for all the instructions of this group of instructions. 9. Dispositif de traitement d'information comprenant un processeur (9) et une mémoire(10,14), caractérisé en ce qu'il comprend, dans la mémoire -des moyens pour définir, pour chaque instruction d'un ensemble d'instructions à exécuter par le processeur, un temps d'exécution de cette instruction ; -des moyens de calcul de temps pour ajouter (43), lors de l'exécution, par le processeur, d'un programme comprenant au moins une instruction et au moment de l'exécution de chaque instruction, le temps d'exécution de cette instruction à une valeur de cumul de temps.9. An information processing device comprising a processor (9) and a memory (10,14), characterized in that it comprises, in the memory-means for defining, for each instruction of a set of instructions to execute by the processor, a execution time of this instruction; time calculating means for adding (43), during execution, by the processor, a program comprising at least one instruction and at the time of execution of each instruction, the execution time of this instruction to a cumulative time value. 10. Dispositif selon la revendication 9, qui comprend, dans la mémoire -des moyens de comparaison pour comparer (44), lors de l'exécution de chaque instruction, la valeur de cumul de temps à une valeur de référence de temps ; -des moyens de déclenchement pour déclencher une opération à effectuer (45) par le processeur quand la valeur de cumul de temps atteint la valeur de référence de temps.10. Device according to claim 9, which comprises, in the memory of the comparison means for comparing (44), during the execution of each instruction, the cumulative time value at a time reference value; trigger means for triggering an operation to be performed by the processor when the cumulative time value reaches the time reference value.
FR9908408A 1999-06-30 1999-06-30 Method of evaluation of timing of data processing device by executing program contained in memory while adding time of execution to form accumulated value of time during such operation Pending FR2795836A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR9908408A FR2795836A1 (en) 1999-06-30 1999-06-30 Method of evaluation of timing of data processing device by executing program contained in memory while adding time of execution to form accumulated value of time during such operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9908408A FR2795836A1 (en) 1999-06-30 1999-06-30 Method of evaluation of timing of data processing device by executing program contained in memory while adding time of execution to form accumulated value of time during such operation

Publications (1)

Publication Number Publication Date
FR2795836A1 true FR2795836A1 (en) 2001-01-05

Family

ID=9547521

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9908408A Pending FR2795836A1 (en) 1999-06-30 1999-06-30 Method of evaluation of timing of data processing device by executing program contained in memory while adding time of execution to form accumulated value of time during such operation

Country Status (1)

Country Link
FR (1) FR2795836A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1383047A1 (en) * 2002-07-18 2004-01-21 Cp8 Method for the secure execution of a program against attacks by radiation or other means
EP1518161A1 (en) * 2002-06-20 2005-03-30 Rambus Inc. Method and apparatus for the dynamic scheduling of device commands
US7565480B2 (en) 2002-06-20 2009-07-21 Rambus Inc. Dynamic memory supporting simultaneous refresh and data-access transactions

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4710613A (en) * 1984-12-13 1987-12-01 Casio Computer Co., Ltd. Identification system
US4808802A (en) * 1986-08-25 1989-02-28 Hitachi, Ltd. Method and system for protecting information recorded in information medium
US5355413A (en) * 1992-03-06 1994-10-11 Mitsubishi Denki Kabushiki Kaisha Authentication method performed between IC card and terminal unit and system therefor
FR2707409A3 (en) * 1993-07-09 1995-01-13 Solaic Sa Process for limiting the recording or playback time for detectable information in a memory card, and memory card for the implementation of this process
EP0864980A2 (en) * 1997-03-10 1998-09-16 Digital Equipment Corporation Method for analyzing computer performance data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4710613A (en) * 1984-12-13 1987-12-01 Casio Computer Co., Ltd. Identification system
US4808802A (en) * 1986-08-25 1989-02-28 Hitachi, Ltd. Method and system for protecting information recorded in information medium
US5355413A (en) * 1992-03-06 1994-10-11 Mitsubishi Denki Kabushiki Kaisha Authentication method performed between IC card and terminal unit and system therefor
FR2707409A3 (en) * 1993-07-09 1995-01-13 Solaic Sa Process for limiting the recording or playback time for detectable information in a memory card, and memory card for the implementation of this process
EP0864980A2 (en) * 1997-03-10 1998-09-16 Digital Equipment Corporation Method for analyzing computer performance data

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1518161A1 (en) * 2002-06-20 2005-03-30 Rambus Inc. Method and apparatus for the dynamic scheduling of device commands
EP1518161A4 (en) * 2002-06-20 2007-02-21 Rambus Inc Method and apparatus for the dynamic scheduling of device commands
US7565480B2 (en) 2002-06-20 2009-07-21 Rambus Inc. Dynamic memory supporting simultaneous refresh and data-access transactions
US9824740B2 (en) 2002-06-20 2017-11-21 Rambus Inc. Dynamic memory supporting simultaneous refresh and data-access transactions
US10593390B2 (en) 2002-06-20 2020-03-17 Rambus Inc. Dynamic memory supporting simultaneous refresh and data-access transactions
EP1383047A1 (en) * 2002-07-18 2004-01-21 Cp8 Method for the secure execution of a program against attacks by radiation or other means
WO2004010300A2 (en) * 2002-07-18 2004-01-29 Axalto Sa Method to secure the execution of a program against attacks
WO2004010300A3 (en) * 2002-07-18 2004-03-25 Schlumberger Systems & Service Method to secure the execution of a program against attacks

Similar Documents

Publication Publication Date Title
EP3243178B1 (en) Method for processing a transaction from a communication terminal
FR2968799A1 (en) METHOD AND DEVICE FOR EXECUTION CONTROL FOR INTERNAL FUNCTIONS AND PROTECTED APPLICATIONS ONBOARD IN MICROCIRCUIT CARDS FOR MOBILE TERMINALS
FR2777673A1 (en) INFORMATION PROCESSING DEVICE COMPRISING MEANS FOR MANAGING VIRTUAL MEMORY, AND INFORMATION STORAGE METHOD THEREOF
EP3033857B1 (en) Binary code authentication
WO1998028720A1 (en) Self-diagnostic or supervisory terminal and method and portable object used in such terminal or method
CA2296009A1 (en) Method for managing a secure terminal
WO2001044949A2 (en) Computerised device for accrediting data application to a software or a service
FR2808359A1 (en) MULTI-APPLICATIVE CHIP CARD
EP2087417A1 (en) Portable electronic entity and method for customising such electronic entity
FR2795836A1 (en) Method of evaluation of timing of data processing device by executing program contained in memory while adding time of execution to form accumulated value of time during such operation
WO2002054199A1 (en) Method for accessing a secured system
EP3384449A1 (en) Payment method and device using said method
FR3096481A1 (en) Method and device for authenticating a user.
CA3143068A1 (en) Service application system for payment terminals
EP2529330B1 (en) Method for providing a dynamic code via a telephone
FR2812423A1 (en) Card payment for an Internet transaction, uses code table prepared when card is manufactured with server interrogation of user who must return correct entries from the code table
FR2881006A1 (en) Communication system for electronic lottery game system, has data management server opening account related to actuation code in ticket, when code is received, and transmitting data associated to code, to telephone only if code is valid
FR3019916A1 (en) METHOD FOR MANAGING DATA ENTRY BY SUPPORTING A TOUCH SURFACE OF AN ELECTRONIC TERMINAL, MODULE, TERMINAL, CORRESPONDING COMPUTER PROGRAM PRODUCT, AND MEDIUM STORAGE MEDIUM
WO2020127112A1 (en) Assisted autonomous enrolment system and method for holder of biometric device
FR2994499A1 (en) AUTHENTICITY VERIFICATION METHOD, SERVER, CORRESPONDING COMPUTER SYSTEM AND PROGRAM
EP2306414A1 (en) Communication method between a reader and two chip cards
EP3639235A1 (en) Method for managing loyalty identifiers, method for processing loyalty data, server, transaction device and corresponding programs
FR2964486A1 (en) Mobile terminal i.e. cellular radio terminal, has radio frequency identification tag configuration application launched when detected radio frequency identification tag is determined to be blank by determination unit
FR2795837A1 (en) Method of comparing timing of data processing in corresponding devices by measuring progress by accumulating meaningful value of time of execution of corresponding instruction
FR3031609A1 (en) METHOD OF PROCESSING A TRANSACTION FROM A COMMUNICATION TERMINAL

Legal Events

Date Code Title Description
CA Change of address
TP Transmission of property