WO2006097433A1 - Managing placement of data structure in memory based on a dedicated programming language - Google Patents

Managing placement of data structure in memory based on a dedicated programming language Download PDF

Info

Publication number
WO2006097433A1
WO2006097433A1 PCT/EP2006/060608 EP2006060608W WO2006097433A1 WO 2006097433 A1 WO2006097433 A1 WO 2006097433A1 EP 2006060608 W EP2006060608 W EP 2006060608W WO 2006097433 A1 WO2006097433 A1 WO 2006097433A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
placement
rules
data structures
programming language
Prior art date
Application number
PCT/EP2006/060608
Other languages
French (fr)
Inventor
Jean-Jacques Vandewalle
Gilles Grimaud
Kevin Marquet
Original Assignee
Gemplus
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
Application filed by Gemplus filed Critical Gemplus
Publication of WO2006097433A1 publication Critical patent/WO2006097433A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44573Execute-in-place [XIP]

Definitions

  • the present invention generally relates to the field of memory management in computer systems and, more particularly, relates to the management of the placement of data structures in memory in embedded systems such as portable electronic devices with a microcontroller combining a processor and memories of different types.
  • the organization of the content of a memory is essentially based on data structures (files, objects, etc.) representing an organization of the elementary data of a computer code in a particular logical structure.
  • data structures are intended to be allocated in memory, i.e. a memory area in a physical memory of the system is reserved for storing each data structure, during loading, installation and operation. execution of the code in memory by the execution environment.
  • This data allocation phase in memory is more particularly implemented by a software component called system memory manager.
  • a memory manager is thus provided for managing the memory resource of the system during the execution of a program, by allocating memory areas to the data structures, possibly moving these data structures from one memory zone to another or by erasing data structures that are no longer used by the program.
  • the difficulty to take into account when developing a memory manager is to define a strategy in terms of data placement in memory that is best adapted to the characteristics of the system memory and the data to be placed in memory.
  • the embedded systems for example of the smart card type
  • the management of the placement in memory must be taken into account.
  • the embedded systems because of their portability, are constrained in memory and, in particular, have very low RAM RAM capacity.
  • the RAM can not be used alone as working memory by the applications of the system, as is the case for example in the PC (Personal computer) where the capacity in RAM memory is normally sufficient for support most applications.
  • the embedded systems then comprise several types of memory resources, which have different properties.
  • these systems embeds ROM ROM, which can only be written once and in which instructions and prerecorded data are accessible only in reading, non-volatile memory type EEPROM or Flash EEPROM, in which data can be read and written, and RAM type RAM.
  • This romization phase implemented by the romizer, allows to define what data structures to burn in ROM, and to declare which data structures will be placed in one or other of the available memories when starting to run the code in the ROM. It should be noted that this phase is based on a description of the system as it was when the romization was performed.
  • these two software components are both made to manage memory and more particularly, to apply rules of placement of data structures between the various memories of the system, the whole of these rules then constituting a policy of placement of data structures in memory.
  • These rules are actually written in the implementation code of the romizer and the memory manager. They are therefore not expressed as such, but rather derive from the explicit needs of the programmer, which he translates into the software code of the memory manager or the romizer according to a strategy considered optimal.
  • the use of the memory is not the same depending on the intended application. This is all the more true in embedded systems, because the applications implemented on these systems are typically dedicated to a more or less specific use. So, some applications may need to allocate more or fewer data structures and thus involve specific rules for placing their data structures in memory, which may not be supported by the system's memory manager as it has been. implemented.
  • the memory placement rules as defined in the code of the romizer or the memory manager are not adaptable to all types of microcontroller and it is necessary to adapt these rules according to a given microcontroller, of which the memory configuration makes new mappings of data structures in memory must be applied, depending on whether these structures are accessed often or not in writing or reading.
  • the object of the invention is precisely to propose a method making it possible to adapt, without the need to rewrite it by hand, the program of a memory manager of a computer system to new data structure placement rules.
  • the invention thus relates to a method for managing the placement of data structures in memory in a computer system, characterized in that it comprises a step of declaring a set of rules for placing said data structures in memory by through a dedicated programming language for this purpose.
  • the dedicated programming language is a declarative language, based on the XML language.
  • the method according to the invention comprises generating at least part of the implementation code of a system memory manager from the set of placement rules declared in the dedicated programming language. .
  • said set of rules declared in dedicated programming language is used to configure at least a portion of a system memory manager.
  • the configuration of the memory manager is to cooperate said memory manager with a configuration file comprising a version that can be interpreted by said memory manager of the placement rules declared in the dedicated programming language.
  • said set of rules declared in the dedicated programming language is used to generate means for determining the placement of data structures in memory capable of cooperating with a system memory manager to receive from the system a request for determining placement of a data structure in memory and calculating said placement according to said data structure and said rules.
  • the invention also relates to a portable electronic device, provided with data processing means comprising a microprocessor and memories, characterized in that it comprises a configurable memory manager and a configuration file of said memory manager, said file comprising a version that can be interpreted by said memory manager of a set of rules for placing data structures in memory declared in a dedicated programming language for this purpose.
  • this device is a smart card.
  • memory manager must be understood in its generic acceptance and is in fact aimed at any software component capable of handling the management of data structures in memory, who acts either in the execution of a program
  • FIG. 1 illustrates the use of a declaration file of rules for placing in dedicated language according to the invention, for the generation of an implementation code adapted from a memory manager of the system
  • FIG. 2 illustrates an embodiment in which an interpretable version of the declaration file is installed on a smart card in order to configure the system memory manager.
  • the present invention is based on the design of a DSL (abbreviation for "Domain Specifies Language") to define a policy of placement of data structures in memory.
  • the DSL approach therefore aims to provide a dedicated programming language for this purpose.
  • the dedicated language according to the invention is a declarative language, which relies, for example, on the XML language (Extensible Markup Language). It is then used to express as such a set of rules for placing data structures in memory, which are advantageously independent of the code in which the system memory manager is written. These rules can be expressed very easily to the extent that the computer language on which the invention is based is precisely dedicated to the expression of such rules.
  • These rules can be expressed according to predefined memory zones, complex properties concerning the data structures to be placed (type, size, etc.) or according to particular requirements related to the applications of the system. It is therefore possible to easily describe, via XML files, memory placement management rules and thus to constitute from each description a library of rules defining a global placement policy of the data structures in memory for the system.
  • Another example where the management of the placement of data structures in memory can be defined according to the principles of the invention relates to the so-called garbage collection process, which is intended to recover memory in the RAM by browsing the memory for identify which data structures to retain and delete.
  • rules for placing data structures in memory can be declared using the dedicated language according to the invention, in order to define an investment management policy between different predefined areas of the RAM. For example, it is possible to define a zone of the RAM where the garbage collector must not intervene so as to minimize the time of travel of the memory by the garbage collector. In this case, one can declare a rule that the data structures that are used by the program throughout its execution time, will have to be allocated in said RAM area where the garbage collector does not intervene.
  • the declaration of rules according to the invention therefore makes it possible to optimize the operation of the memory manager of the system, by adapting it to the policy of placement defined by the declaration of rules in dedicated language.
  • the DSL dedicated language is indeed used to generate an implementation code adapted from the memory manager and the romizer, or at least part of this code.
  • a declaration file 10 in which the placement rules of the data structures in memory in DSL are declared, is inputted to a software module 20, which will use the representation in declarative language of the investment rules provided. by the file 10, to generate the code 30, or a part of this code, of the memory manager or the romizer, this code being able to be expressed according to the needs in the language C, java, etc.
  • the generation software module 20 is provided with all the functional logic allowing it, from a rule defined in the declaration file, to deduce the behavior that the memory manager program must have at runtime. . This behavior is then translated by specific means in C, Java or other.
  • the software module 20 Since the DSL language implemented by the invention dedicated to the declaration of placement rules in memory, the software module 20 generates exactly the program that corresponds to the defined investment policy.
  • FIG. 2 illustrates such an embodiment in the context of an on-board smart card type system 40, equipped with data processing means 50 comprising a microprocessor and memories.
  • the memory manager 60 of the system is at least partly in the form of a generic code intended to provide memory management of the system, in cooperation with a configuration file 70 installed in the card. , comprising a version interpretable by the memory manager of the declaration file of the rules for placement in memory in the dedicated language.
  • a configuration file 70 installed in the card.
  • the configuration file can thus be advantageously updated in the card, in order to make it evolve to adapt the management policy of the data placement in card memory.
  • the DSL according to the invention dedicated to the declaration of memory placement rules, is used to generate means for determining the placement of data structures in memory, called memory storers.
  • the memory placer includes an interface for communicating with the system memory manager, which is intended to delegate to the underwriter the calculation of the memory placement of a data structure via a query function of the distributor.
  • the distributor generated in accordance with the placement rules defined by means of the dedicated language according to the invention, therefore takes as parameter the data structure concerned and then indicates to the manager where to place the data structure in memory according to said structure and predefined rules.

Abstract

The invention concerns a method for managing placement of data structures in memory in a computer system, characterized in that it includes a step of declaring (10) a set of rules for placing said data structures in memory via a programming language dedicated therefor.

Description

GESTION DU PLACEMENT DE STRUCTURE DE DONNEES EN MEMOIRE BASEE SUR UN LANGAGE DE PROGRAMMATION DEDIEMANAGING MEMORY DATA STRUCTURE PLACEMENT BASED ON DEDICATED PROGRAMMING LANGUAGE
La présente invention concerne, de manière générale, le domaine de la gestion mémoire dans les systèmes informatiques et, plus particulièrement, concerne la gestion du placement de structures de données en mémoire dans les systèmes embarqués tels que les appareils électroniques portables dotés d'un microcontrôleur réunissant un processeur et des mémoires de différents types.The present invention generally relates to the field of memory management in computer systems and, more particularly, relates to the management of the placement of data structures in memory in embedded systems such as portable electronic devices with a microcontroller combining a processor and memories of different types.
A l'heure actuelle, l'organisation du contenu d'une mémoire est essentiellement basée sur des structures de données (fichiers, objets...) , représentant une organisation des données élémentaires d'un code informatique dans une structure logique particulière. Ces structures de données sont prévues pour être allouées en mémoire, c'est-à-dire qu'une zone mémoire dans une mémoire physique du système est réservée pour stocker chaque structure de données, lors du chargement, de l'installation et de l'exécution du code en mémoire par l'environnement d'exécution. Cette phase d'allocation des données en mémoire est plus particulièrement mise en œuvre par un composant logiciel appelé gestionnaire de mémoire du système.At the present time, the organization of the content of a memory is essentially based on data structures (files, objects, etc.) representing an organization of the elementary data of a computer code in a particular logical structure. These data structures are intended to be allocated in memory, i.e. a memory area in a physical memory of the system is reserved for storing each data structure, during loading, installation and operation. execution of the code in memory by the execution environment. This data allocation phase in memory is more particularly implemented by a software component called system memory manager.
Un gestionnaire de mémoire est ainsi prévu pour gérer la ressource mémoire du système lors de l'exécution d'un programme, en allouant des zones de mémoire aux structures de données, en déplaçant éventuellement ces structures de données d'une zone mémoire vers une autre ou encore en effaçant les structures de données qui ne sont plus utilisées par le programme. La difficulté à prendre en compte lors du développement d'un gestionnaire de mémoire est de définir une stratégie en terme de placement de données en mémoire qui soit adaptée au mieux aux caractéristiques de la mémoire du système et aux données à placer en mémoire.A memory manager is thus provided for managing the memory resource of the system during the execution of a program, by allocating memory areas to the data structures, possibly moving these data structures from one memory zone to another or by erasing data structures that are no longer used by the program. The difficulty to take into account when developing a memory manager is to define a strategy in terms of data placement in memory that is best adapted to the characteristics of the system memory and the data to be placed in memory.
Le schéma actuellement respecté dans la plupart des systèmes informatiques est le suivant. On dispose d'une mémoire de travail de type RAM dans laquelle un programme s'exécute, en rendant persistant des données dans une mémoire persistante, typiquement un disque dur. Dans ce contexte où l'exécution des programmes s'effectue entièrement en RAM, le problème du placement des structures de données entre différents types de mémoire ne se pose pas .The scheme currently followed in most computer systems is as follows. There is a working memory of the type RAM in which a program runs, making persistent data in a persistent memory, typically a hard disk. In this context where program execution is entirely in RAM, the problem of placing data structures between different types of memory does not arise.
Cependant, si l'on considère les systèmes embarqués, par exemple de type cartes à puce, la gestion du placement en mémoire doit être prise en compte. En effet, les systèmes embarqués, du fait de leur portabilité, sont contraints en mémoire et, en particulier, disposent de très faibles capacités en mémoire vive de type RAM. Aussi, dans les systèmes embarqués, la RAM ne peut être utilisée seule en tant que mémoire de travail par les applications du système, comme cela est le cas par exemple dans les PC (Personal computer) où la capacité en mémoire RAM est normalement suffisante pour supporter la plupart des applications.However, if one considers the embedded systems, for example of the smart card type, the management of the placement in memory must be taken into account. Indeed, the embedded systems, because of their portability, are constrained in memory and, in particular, have very low RAM RAM capacity. Also, in embedded systems, the RAM can not be used alone as working memory by the applications of the system, as is the case for example in the PC (Personal computer) where the capacity in RAM memory is normally sufficient for support most applications.
Les systèmes embarqués comprennent alors plusieurs types de ressources mémoires, qui présentent des propriétés différentes. Typiquement, ces systèmes embarquent de la mémoire morte de type ROM, qui ne peut être écrite qu'une seule fois et dans laquelle des instructions et des données préenregistrées sont accessibles seulement en lecture, de la mémoire non volatile de type EEPROM ou Flash EEPROM, dans laquelle des données peuvent être lues et écrites, et de la mémoire vive de type RAM.The embedded systems then comprise several types of memory resources, which have different properties. Typically these systems embeds ROM ROM, which can only be written once and in which instructions and prerecorded data are accessible only in reading, non-volatile memory type EEPROM or Flash EEPROM, in which data can be read and written, and RAM type RAM.
Ces mémoires ne sont pas égales tant du point de vue des performances, que de la taille qu'elles occupent ou encore de leur mode d'accès. L'hétérogénéité des mémoires du système impliquent par conséquent des décisions à prendre quant au placement des structures de données en mémoire plus complexes de la part du gestionnaire de mémoire embarqué du système. Par ailleurs, la ROM étant une mémoire à lecture seule, elle ne peut être programmée qu'une seule fois durant la phase de configuration du système. Notamment, une image mémoire du programme à charger dans la ROM est produite hors-carte sous forme d'un fichier écrit en langage C, appelé rom.c, par l'intermédiaire d'un outil logiciel appelé romizer, contenant les structures de données du code à charger dans la ROM lors de son initialisation. De plus, ce fichier indique où les structures de données doivent être placées dans les différentes mémoires disponibles (RAM, ROM, EEPROM...) par le gestionnaire de mémoire embarqué du système, au démarrage de celui-ci lors de l'exécution du code en ROM.These memories are not equal in terms of performance, the size they occupy or their mode of access. The heterogeneity of the system memories therefore imply decisions to be made regarding the placement of more complex memory data structures on the part of the system's on-board memory manager. In addition, since the ROM is a read-only memory, it can only be programmed once during the system configuration phase. In particular, a memory image of the program to be loaded into the ROM is produced off-map in the form of a file written in C, called rom.c, via a software tool called romizer, containing the data structures. code to load into the ROM during initialization. In addition, this file indicates where the data structures must be placed in the various available memories (RAM, ROM, EEPROM ...) by the onboard memory manager of the system, at the start of the system during the execution of the code in ROM.
Cette phase de romization implémentée par le romizer, permet donc de définir quelles seront les structures de données à graver en ROM, et de déclarer quelles structures de données seront à placer dans l'une ou l'autre des mémoires disponibles lors du démarrage à l'exécution du code dans la ROM. Il est à noter que cette phase est basée sur une description du système tel qu'il était au moment où la romization a été effectuée.This romization phase implemented by the romizer, allows to define what data structures to burn in ROM, and to declare which data structures will be placed in one or other of the available memories when starting to run the code in the ROM. It should be noted that this phase is based on a description of the system as it was when the romization was performed.
Que ce soit le romizer ou le gestionnaire de mémoire, ces deux composants logiciels sont donc tous deux amenés à faire de la gestion mémoire et plus particulièrement, à appliquer des règles de placement des structures de données entre les différentes mémoires du système, l'ensemble de ces règles constituant alors une politique de placement des structures de données en mémoire. Ces règles sont en fait écrites dans le code d' implémentation du romizer et du gestionnaire de mémoire. Elles ne sont donc pas exprimées en tant que telles, mais découlent plutôt des besoins explicites du programmeur, qu'il traduit dans le code logiciel du gestionnaire de mémoire ou du romizer selon une stratégie considérée comme étant optimale.Whether it is the romizer or the memory manager, these two software components are both made to manage memory and more particularly, to apply rules of placement of data structures between the various memories of the system, the whole of these rules then constituting a policy of placement of data structures in memory. These rules are actually written in the implementation code of the romizer and the memory manager. They are therefore not expressed as such, but rather derive from the explicit needs of the programmer, which he translates into the software code of the memory manager or the romizer according to a strategy considered optimal.
Or, la politique de placement des structures de données en mémoire dans un système est susceptible d'évoluer au cours du cycle de vie du système, par exemple en vue d'adapter une meilleure stratégie.However, the policy of placing data structures in memory in a system is likely to change over the life cycle of the system, for example to adapt a better strategy.
Egalement, dans n'importe quel système informatique, l'utilisation de la mémoire n'est pas la même selon l'application visée. Cela est d'autant plus vrai dans les systèmes embarqués, car les applications mises en place sur ces systèmes sont typiquement dédiées à un usage plus ou moins particulier. Ainsi, certaines applications peuvent nécessiter d'allouer plus ou moins de structures de données et donc impliquent des règles spécifiques de placement de leurs structures de données en mémoire, qui peuvent alors ne pas être supportées par le gestionnaire de mémoire du système tel qu'il a été implémenté.Also, in any computer system, the use of the memory is not the same depending on the intended application. This is all the more true in embedded systems, because the applications implemented on these systems are typically dedicated to a more or less specific use. So, some applications may need to allocate more or fewer data structures and thus involve specific rules for placing their data structures in memory, which may not be supported by the system's memory manager as it has been. implemented.
Par ailleurs, les règles de placement en mémoire telles que définies dans le code du romizer ou du gestionnaire de mémoire ne sont pas adaptables à tous les types de microcontrôleur et il est nécessaire d'adapter ces règles en fonction d'un microcontrôleur donné, dont la configuration mémoire fait que de nouvelles mises en correspondance des structures de données en mémoire doivent être appliquées, suivant que par exemple ces structures sont accédées souvent ou non en écriture ou en lecture.Moreover, the memory placement rules as defined in the code of the romizer or the memory manager are not adaptable to all types of microcontroller and it is necessary to adapt these rules according to a given microcontroller, of which the memory configuration makes new mappings of data structures in memory must be applied, depending on whether these structures are accessed often or not in writing or reading.
On a donc plusieurs facteurs d'évolution des règles de placement des structures de données en mémoire. Soit, on trouve une meilleure stratégie pour les définir, soit ces règles doivent s'adapter en fonction des applications qui tournent sur le système, soit on cherche à les adapter à un nouveau type de microcontrôleur .There are therefore several factors of evolution of the rules of placement of the data structures in memory. Either we find a better strategy to define them, or these rules must adapt according to the applications running on the system, or we try to adapt them to a new type of microcontroller.
Si les règles de placement d'une structure de données en mémoire évoluent, il devient alors nécessaire de revoir et d'adapter le programme du composant logiciel concerné par la gestion de ces structures de données en mémoire. Or, actuellement, il n'existe aucun autre moyen que de réécrire à la main le programme de ce composant, puis de le tester à nouveau pour qu'il corresponde aux nouvelles règles de placement des structures de données en mémoire. Bien que cette opération est complexe et laborieuse, aucune technique n'a encore été développée visant à s'affranchir d'une telle étape de réécriture du code d'un gestionnaire de mémoire, à chaque fois que ce dernier doit s'adapter à des changements des règles de placement en mémoire des structures de données . Ce besoin ne s'est même jamais manifesté.If the rules of placement of a data structure in memory evolve, it then becomes necessary to review and adapt the program of the software component concerned by the management of these data structures in memory. However, at present, there is no other way than to manually rewrite the program of this component, then test it again so that it matches the new rules of placement of data structures in memory. Although this operation is complex and laborious, no technique has yet been developed to overcome this step of rewriting the code of a memory manager, each time that it must adapt to changes in memory. changes in memory placement rules for data structures. This need has never even manifested itself.
En effet, comme on l'a vu, dans le contexte des systèmes informatiques où l'exécution des programmes s'effectue entièrement en RAM, le problème du placement des structures de données en mémoire ne se pose pas .Indeed, as we have seen, in the context of computer systems where the execution of programs is entirely in RAM, the problem of the placement of data structures in memory does not arise.
Par ailleurs, concernant le monde de l'embarqué, jusqu'alors, on imposait des spécifications décrivant des règles générales de placement en mémoire très simples, que les développeurs d'applications embarquées devaient alors s'efforcer de suivre. C'est donc aux applications de s'adapter à la gestion de la configuration mémoire du système plutôt que l'inverse. Dans ce contexte, le fait de réécrire le code du gestionnaire de mémoire est considéré comme la façon la plus simple d'adapter ce dernier à d'éventuelles évolutions des règles de placement des données en mémoire . L'invention vise justement à proposer un procédé permettant d'adapter, sans qu'il soit nécessaire de le réécrire à la main, le programme d'un gestionnaire de mémoire d'un système informatique à de nouvelles règles de placement des structures de données entre les différentes mémoires du système, ou entre différentes zones prédéfinies d'une mémoire du système, de sorte que la gestion de la mémoire du système puisse être configurable très simplement en fonction d'éventuelles évolutions de la politique de placement des structures de données en mémoire. L'invention a ainsi pour objet un procédé de gestion du placement de structures de données en mémoire dans un système informatique, caractérisé en ce qu'il comprend une étape de déclaration d'un ensemble de règles de placement desdites structures de données en mémoire par l'intermédiaire d'un langage de programmation dédié à cet effet.Moreover, concerning the embedded world, until then, specifications were imposed describing very simple memory placement rules, which the embedded application developers then had to strive to follow. It is therefore up to the applications to adapt to the management of the memory configuration of the system rather than the other way around. In this context, rewriting the code of the memory manager is considered as the simplest way of adapting the latter to possible evolutions of the rules of placement of the data in memory. The object of the invention is precisely to propose a method making it possible to adapt, without the need to rewrite it by hand, the program of a memory manager of a computer system to new data structure placement rules. between different system memories, or between different predefined areas of a system memory, so that the management of the system memory can be very easily configurable according to possible changes in the policy of placement of data structures in memory. The invention thus relates to a method for managing the placement of data structures in memory in a computer system, characterized in that it comprises a step of declaring a set of rules for placing said data structures in memory by through a dedicated programming language for this purpose.
De préférence, le langage de programmation dédié est un langage déclaratif, basé sur le langage XML.Preferably, the dedicated programming language is a declarative language, based on the XML language.
Selon un mode de réalisation, le procédé selon l'invention comprend la génération d'au moins une partie du code d' implémentation d'un gestionnaire de mémoire du système à partir de l'ensemble de règles de placement déclarées en langage de programmation dédié.According to one embodiment, the method according to the invention comprises generating at least part of the implementation code of a system memory manager from the set of placement rules declared in the dedicated programming language. .
Selon un autre mode de réalisation, ledit ensemble de règles déclarées en langage de programmation dédié est utilisé pour configurer au moins une partie d'un gestionnaire de mémoire du système.In another embodiment, said set of rules declared in dedicated programming language is used to configure at least a portion of a system memory manager.
Avantageusement, la configuration du gestionnaire de mémoire consiste à faire coopérer ledit gestionnaire de mémoire avec un fichier de configuration comprenant une version interprétable par ledit gestionnaire de mémoire des règles de placement déclarées en langage de programmation dédié.Advantageously, the configuration of the memory manager is to cooperate said memory manager with a configuration file comprising a version that can be interpreted by said memory manager of the placement rules declared in the dedicated programming language.
Selon un autre mode de réalisation, ledit ensemble de règles déclarées en langage de programmation dédié est utilisé pour générer des moyens de détermination du placement de structures de données en mémoire, aptes à coopérer avec un gestionnaire de mémoire du système pour recevoir de ce dernier une demande de détermination de placement d'une structure de données en mémoire et pour calculer ledit placement en fonction de ladite structure de données et desdites règles .According to another embodiment, said set of rules declared in the dedicated programming language is used to generate means for determining the placement of data structures in memory capable of cooperating with a system memory manager to receive from the system a request for determining placement of a data structure in memory and calculating said placement according to said data structure and said rules.
L'invention concerne encore un appareil électronique portable, doté de moyens de traitement de données comprenant un microprocesseur et des mémoires, caractérisé en ce qu'il comprend un gestionnaire de mémoire configurable et un fichier de configuration dudit gestionnaire de mémoire, ledit fichier comprenant une version interprétable par ledit gestionnaire de mémoire d'un ensemble de règles de placement de structures de données en mémoire déclarées dans un langage de programmation dédié à cet effet.The invention also relates to a portable electronic device, provided with data processing means comprising a microprocessor and memories, characterized in that it comprises a configurable memory manager and a configuration file of said memory manager, said file comprising a version that can be interpreted by said memory manager of a set of rules for placing data structures in memory declared in a dedicated programming language for this purpose.
De préférence, cet appareil est une carte à puce. Dans le contexte de l'invention et dans la description qui suit, le terme « gestionnaire de mémoire » doit être compris dans son acceptation générique et vise en fait tout composant logiciel apte à s'occuper de la gestion de structures de données en mémoire, qui agit soit à l'exécution d'un programmePreferably, this device is a smart card. In the context of the invention and in the following description, the term "memory manager" must be understood in its generic acceptance and is in fact aimed at any software component capable of handling the management of data structures in memory, who acts either in the execution of a program
(type allocateur, ramasse-miettes...) , soit en amont lors de la configuration du système (type romizer) .(type allocator, garbage collector ...), either upstream during the configuration of the system (type romizer).
D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante donnée à titre d'exemple illustratif et non limitatif et faite en référence aux figures annexées dans lesquelles : - la figure 1 illustre l'utilisation d'un fichier de déclaration de règles de placement en langage dédié selon l'invention, pour la génération d'un code d' implémentation adapté d'un gestionnaire de mémoire du système ; la figure 2 illustre un mode de réalisation selon lequel une version interprétable du fichier de déclaration est installé sur une carte à puce en vue de la configuration du gestionnaire de mémoire du système. La présente invention repose sur la conception d'un langage DSL (abréviation pour « Domain Spécifie Langage ») pour définir une politique de placement des structures de données en mémoire. Dans le contexte de l'invention, l'approche DSL vise donc à proposer un langage de programmation dédié à cet effet.Other characteristics and advantages of the present invention will emerge more clearly on reading the following description given by way of illustrative and nonlimiting example and with reference to the appended figures in which: FIG. 1 illustrates the use of a declaration file of rules for placing in dedicated language according to the invention, for the generation of an implementation code adapted from a memory manager of the system; FIG. 2 illustrates an embodiment in which an interpretable version of the declaration file is installed on a smart card in order to configure the system memory manager. The present invention is based on the design of a DSL (abbreviation for "Domain Specifies Language") to define a policy of placement of data structures in memory. In the context of the invention, the DSL approach therefore aims to provide a dedicated programming language for this purpose.
Le langage dédié selon l'invention est un langage déclaratif, qui repose par exemple sur le langage XML (extensible Markup Language) . Il est alors utilisé pour exprimer en tant que telles un ensemble de règles de placement de structures de données en mémoire, qui sont avantageusement indépendantes du code dans lequel le gestionnaire de mémoire du système est écrit. Ces règles pourront être exprimées très facilement dans la mesure où le langage informatique sur lequel est basée l'invention est justement dédié à l'expression de telles règles .The dedicated language according to the invention is a declarative language, which relies, for example, on the XML language (Extensible Markup Language). It is then used to express as such a set of rules for placing data structures in memory, which are advantageously independent of the code in which the system memory manager is written. These rules can be expressed very easily to the extent that the computer language on which the invention is based is precisely dedicated to the expression of such rules.
Ces règles pourront être exprimées en fonction de zones mémoires prédéfinies, de propriétés complexes concernant les structures de données à placer (type, taille, etc.) ou encore en fonction d'exigences particulières liées aux applications du système. II est donc possible de décrire facilement, via des fichiers XML, des règles de gestion de placement en mémoire et de constituer ainsi à partir de chaque description une bibliothèque de règles définissant une politique de placement globale des structures de données en mémoire pour le système.These rules can be expressed according to predefined memory zones, complex properties concerning the data structures to be placed (type, size, etc.) or according to particular requirements related to the applications of the system. It is therefore possible to easily describe, via XML files, memory placement management rules and thus to constitute from each description a library of rules defining a global placement policy of the data structures in memory for the system.
Un exemple de règle décrite selon le principe de l'invention est présenté ci-dessous, concernant le placement initial d'une structure de données dans un contexte de programmation en langage orienté objet :An example of a rule described according to the principle of the invention is presented below, concerning the initial placement of a data structure in an object-oriented programming context:
<rule placeIn="EEPROM"> <instanceθf><rule placeIn = "EEPROM"> <instanceθf>
<class className="MyClassl" /> </instanceOf> <links><class className = "MyClassl" /> </ instanceOf> <links>
<link type="fieldLink"> <modificators><link type = "fieldLink"> <modificators>
<modificator name="static" /> <modificator name="final" /><modificator name = "static" /> <modificator name = "final" />
</modificators> </link> <link type="fieldLink" ></ modificators> </ link> <link type = "fieldLink">
<variableNames> <variableName variableName="MyField" /><variableNames> <variableName variableName = "MyField" />
</variableNames> </link> </links> </rule> la règle ci-dessus indique ainsi que tous les champs de la classe MyClassl qui sont déclarés static final et que le champ MyField de la même classe doivent être placés en EEPROM par le gestionnaire de mémoire, de type romizer dans cet exemple.</ variableNames></link></links></rule> The rule above indicates that all the fields of the MyClassl class that are declared static final and that the MyField field of the same class should be placed in EEPROM by the memory manager, type romizer in this example.
Un autre exemple où la gestion du placement de structures de données en mémoire peut être définie selon les principes de l'invention concerne le processus dit de ramasse-miette, qui a pour objet de récupérer de la mémoire dans la RAM en parcourant la mémoire pour identifier quelles sont les structures de données à conserver et à supprimer.Another example where the management of the placement of data structures in memory can be defined according to the principles of the invention relates to the so-called garbage collection process, which is intended to recover memory in the RAM by browsing the memory for identify which data structures to retain and delete.
Ainsi, la déclaration en langage dédié selon l'invention d'une règle typique de déplacement durant le processus de ramasse-miette est donnée ci-dessous. Elle indique qu'un objet en RAM de type « StringBuffer » de taille entre 10 et 15 octets sera déplacée vers lf EEPROM si la RAM est au minimum aux trois quarts pleine mais que l' EEPROM n'est occupée qu'à 50%.Thus, the declaration in the dedicated language according to the invention of a typical rule of displacement during the garbage collection process is given below. It indicates that a RAM object type "StringBuffer" in size between 10 and 15 bytes will be moved to the f EEPROM if the RAM is at least three-quarters full but the EEPROM is only 50% occupied .
<rule memory="RAM"> <instanceθf><rule memory = "RAM"> <instanceθf>
<classname=" StringBuffer"/> </instanceOf><classname = "StringBuffer" /> </ instanceOf>
<objectSize min="10" max="15"/> <memoriesUsage> <memoryUsage name="RAM" usedMin="75" usedMax="100"/><objectSize min = "10" max = "15" /> <memoriesUsage> <memoryUsage name = "RAM" usedMin = "75" usedMax = "100" />
<memoryUsage name="EEPROM" usedMin="0" usedMax="50"/> </memoriesUsage> <destinationMem name="EEPROM"/> </rule> De telles règles de placement en langage dédié selon l'invention pourront donc être définies et adaptées très facilement et pourront ainsi être examinées par le ramasse-miette pour le rendre plus performant, voire pourront être utilisées pour générer le ramasse-miettes.<memoryUsage name = "EEPROM" usedMin = "0" usedMax = "50"/></memoriesUsage><destinationMem name = "EEPROM"/></rule> Such placement rules in the dedicated language according to the invention may therefore be defined and adapted very easily and may thus be examined by the garbage collector to make it more efficient, or may be used to generate the garbage collector.
Si les exemples donnés ci-dessus concernent davantage la déclaration de règles de placement en mémoire pour la gestion mémoire dans le monde de l'embarqué, l'invention peut néanmoins être avantageusement appliquée à la gestion mémoire dans les systèmes informatiques non embarqués, comprenant une mémoire de travail unique de type RAM dans laquelle le programme s'exécute. Notamment, des règles de placement de structures de données en mémoire peuvent être déclarées en utilisant le langage dédié selon l'invention, dans le but de définir une politique de gestion du placement entre différentes zones prédéfinies de la RAM. Par exemple, on peut définir une zone de la RAM où le ramasse-miettes ne doit pas intervenir de façon à minimiser le temps de parcours de la mémoire par le ramasse-miettes. Dans ce cas, on peut déclarer une règle selon laquelle les structures de données qui sont utilisées par le programme pendant toute sa durée d'exécution, devront être allouées dans ladite zone de la RAM où le ramasse-miettes n'intervient pas.If the examples given above relate more to the declaration of memory placement rules for memory management in the embedded world, the invention can nevertheless be advantageously applied to memory management in non-embedded computer systems, including a Single RAM working memory in which the program runs. In particular, rules for placing data structures in memory can be declared using the dedicated language according to the invention, in order to define an investment management policy between different predefined areas of the RAM. For example, it is possible to define a zone of the RAM where the garbage collector must not intervene so as to minimize the time of travel of the memory by the garbage collector. In this case, one can declare a rule that the data structures that are used by the program throughout its execution time, will have to be allocated in said RAM area where the garbage collector does not intervene.
La déclaration de règles selon l'invention permet donc d'optimiser le fonctionnement du gestionnaire de mémoire du système, en l'adaptant à la politique de placement définie par la déclaration des règles en langage dédié.The declaration of rules according to the invention therefore makes it possible to optimize the operation of the memory manager of the system, by adapting it to the policy of placement defined by the declaration of rules in dedicated language.
Comme illustré en figure 1, le langage dédié DSL est en effet utilisé pour générer un code d' implémentation adapté du gestionnaire de mémoire et du romizer, ou au moins une partie de ce code.As illustrated in FIG. 1, the DSL dedicated language is indeed used to generate an implementation code adapted from the memory manager and the romizer, or at least part of this code.
Plus précisément, un fichier de déclaration 10, dans lequel sont déclarées les règles de placement des structures de données en mémoire en langage DSL, est fourni en entrée à un module logiciel 20, qui va utiliser la représentation en langage déclaratif des règles de placement fournies par le fichier 10, pour générer le code 30, ou une partie de ce code, du gestionnaire de mémoire ou du romizer, ce code pouvant être exprimé suivant les besoins en langage C, java, etc .More specifically, a declaration file 10, in which the placement rules of the data structures in memory in DSL are declared, is inputted to a software module 20, which will use the representation in declarative language of the investment rules provided. by the file 10, to generate the code 30, or a part of this code, of the memory manager or the romizer, this code being able to be expressed according to the needs in the language C, java, etc.
Pour ce faire, le module logiciel 20 de génération est pourvu de toute la logique fonctionnelle lui permettant, à partir d'une règle définie dans le fichier de déclaration, de déduire le comportement que doit avoir le programme du gestionnaire de mémoire à l'exécution. Ce comportement est alors traduit par des moyens spécifiques en C, Java ou autre.To do this, the generation software module 20 is provided with all the functional logic allowing it, from a rule defined in the declaration file, to deduce the behavior that the memory manager program must have at runtime. . This behavior is then translated by specific means in C, Java or other.
Grâce au langage DSL mis en œuvre par l'invention dédié à la déclaration de règles de placement en mémoire, le module logiciel 20 génère exactement le programme qui correspond à la politique de placement définie .Thanks to the DSL language implemented by the invention dedicated to the declaration of placement rules in memory, the software module 20 generates exactly the program that corresponds to the defined investment policy.
Dans une variante, la déclaration d'un ensemble de règles de placement en mémoire selon l'invention peut être utilisée en vue de la configuration du gestionnaire de mémoire du système ou d'une partie au moins du gestionnaire de mémoire, l'autre partie pouvant par exemple avoir été générée comme expliqué précédemment . La figure 2 illustre un tel mode de réalisation dans le cadre d'un système embarqué de type carte à puce 40, dotée de moyens de traitement de données 50 comprenant un microprocesseur et des mémoires.In a variant, the declaration of a set of memory placement rules according to the invention can be used for the configuration of the memory manager of the system or at least part of the memory manager, the other part may for example have been generated as explained above. FIG. 2 illustrates such an embodiment in the context of an on-board smart card type system 40, equipped with data processing means 50 comprising a microprocessor and memories.
Selon ce mode de réalisation, le gestionnaire de mémoire 60 du système se présente, au moins en partie, sous la forme d'un code générique prévu pour assurer la gestion mémoire du système, en coopération avec un fichier de configuration 70 installé dans la carte, comprenant une version interprétable par le gestionnaire de mémoire du fichier de déclaration des règles de placement en mémoire en langage dédié. Ainsi, chaque fois que le gestionnaire de mémoire aura à gérer le placement d'une structure de données en mémoire, il lira le fichier de configuration 70 pour déduire son comportement de l'interprétation des règles qui y sont déclarées .According to this embodiment, the memory manager 60 of the system is at least partly in the form of a generic code intended to provide memory management of the system, in cooperation with a configuration file 70 installed in the card. , comprising a version interpretable by the memory manager of the declaration file of the rules for placement in memory in the dedicated language. Thus, each time the memory manager will have to manage the placement of a data structure in memory, it will read the configuration file 70 to deduce its behavior from the interpretation of the rules declared therein.
Le fichier de configuration peut ainsi être avantageusement mis à jour dans la carte, afin de le faire évoluer pour adapter la politique de gestion du placement de données en mémoire sur carte.The configuration file can thus be advantageously updated in the card, in order to make it evolve to adapt the management policy of the data placement in card memory.
Dans un autre variante, on utilise le DSL selon l'invention, dédié à la déclaration de règles de placement en mémoire, pour générer des moyens de détermination du placement de structures de données en mémoire, appelés placeur de mémoire. Le placeur de mémoire comprend une interface pour communiquer avec le gestionnaire de mémoire du système, lequel est prévu pour déléguer au placeur le calcul du placement en mémoire d'une structure de données via une fonction d'interrogation du placeur. Le placeur, généré conformément aux règles de placement définies par l'intermédiaire du langage dédié selon l'invention, prend donc en paramètre la structure de données concernée et indique alors au gestionnaire où placer la structure de données en mémoire en fonction de ladite structure et des règles prédéfinies .In another variant, the DSL according to the invention, dedicated to the declaration of memory placement rules, is used to generate means for determining the placement of data structures in memory, called memory storers. The memory placer includes an interface for communicating with the system memory manager, which is intended to delegate to the underwriter the calculation of the memory placement of a data structure via a query function of the distributor. The distributor, generated in accordance with the placement rules defined by means of the dedicated language according to the invention, therefore takes as parameter the data structure concerned and then indicates to the manager where to place the data structure in memory according to said structure and predefined rules.
Le fait de déclarer les règles de placement de structures de données en mémoire par l'intermédiaire d'un langage dédié permet donc d'avoir des règles indépendantes du code du gestionnaire de mémoire du système, ce qui est optimal en termes de gestion mémoire. De plus, les règles ne sont plus figées, mais peuvent être adaptées très facilement en fonction des applications, du microcontrôleur etc., pour définir une nouvelle politique de placement. The fact of declaring the rules of placement of data structures in memory by means of a dedicated language thus makes it possible to have rules independent of the code of the memory manager of the system, which is optimal in terms of memory management. In addition, the rules are no longer fixed, but can be adapted very easily depending on applications, microcontroller etc., to define a new investment policy.

Claims

REVENDICATIONS
1. Procédé de gestion du placement en mémoire d'un système informatique, de structures de données d'un code informatique utilisées en cours d'exécution du code par le système informatique, caractérisé en ce qu'il comprend une étape de déclaration (10) d'un ensemble de règles de placement desdites structures de données en mémoire par l'intermédiaire d'un langage de programmation dédié à cet effet.1. A method for managing the placement in memory of a computer system of data structures of a computer code used during execution of the code by the computer system, characterized in that it comprises a declaration step (10). ) a set of rules for placing said data structures in memory via a dedicated programming language for this purpose.
2. Procédé selon la revendication 2, caractérisé en ce que le langage de programmation dédié est un langage déclaratif, basé sur le langage XML.2. Method according to claim 2, characterized in that the dedicated programming language is a declarative language, based on the XML language.
3. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il comprend la génération (20) d'au moins une partie du code d' implémentation (30) d'un gestionnaire de mémoire (60) du système à partir de l'ensemble de règles de placement déclarées en langage de programmation dédié.3. Method according to claim 1 or 2, characterized in that it comprises generating (20) at least part of the implementation code (30) of a memory manager (60) of the system from the set of placement rules declared in the dedicated programming language.
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ledit ensemble de règles déclarées en langage de programmation dédié est utilisé pour configurer au moins une partie d'un gestionnaire de mémoire (60) du système . 4. Method according to any one of claims 1 to 3, characterized in that said set of rules declared in dedicated programming language is used to configure at least a portion of a memory manager (60) of the system.
5. Procédé selon la revendication 4, caractérisé en ce que la configuration du gestionnaire de mémoire (60) consiste à faire coopérer ledit gestionnaire de mémoire avec un fichier de configuration (70) comprenant une version interprétable par ledit gestionnaire de mémoire des règles de placement déclarées en langage de programmation dédié.5. Method according to claim 4, characterized in that the configuration of the memory manager (60) is to cooperate said memory manager with a configuration file (70) comprising a version interpretable by said memory manager placement rules declared in the dedicated programming language.
6. Procédé selon la revendication 1 ou 2, caractérisé en ce que ledit ensemble de règles déclarées en langage de programmation dédié est utilisé pour générer des moyens de détermination du placement de structures de données en mémoire, aptes à coopérer avec un gestionnaire de mémoire du système pour recevoir de ce dernier une demande de détermination de placement d'une structure de données en mémoire et pour calculer ledit placement en fonction de ladite structure de données et desdites règles .6. Method according to claim 1 or 2, characterized in that said set of rules declared in the dedicated programming language is used to generate means for determining the placement of data structures in memory, able to cooperate with a memory manager. system for receiving from the latter a request for determination of placement of a data structure in memory and for calculating said placement according to said data structure and said rules.
7. Appareil électronique portable (40), doté de moyens de traitement (50) de données comprenant un microprocesseur et des mémoires, caractérisé en ce qu'il comprend un gestionnaire de mémoire (60) configurable pour le placement en mémoire de structures de données d'un code informatique utilisées en cours d'exécution du code sur l'appareil, et un fichier de configuration (70) dudit gestionnaire de mémoire, ledit fichier comprenant une version interprétable par ledit gestionnaire de mémoire d'un ensemble de règles de placement de structures de données en mémoire déclarées dans un langage de programmation dédié à cet effet.7. Portable electronic device (40), provided with data processing means (50) comprising a microprocessor and memories, characterized in that it comprises a memory manager (60) configurable for placing in memory data structures computer code used during execution of the code on the apparatus, and a configuration file (70) of said memory manager, said file comprising a version that can be interpreted by said memory manager of a set of rules of placement of data structures in memory declared in a dedicated programming language for this purpose.
8. Appareil selon la revendication 6, caractérisé en ce que cet appareil est une carte à puce. 8. Apparatus according to claim 6, characterized in that this apparatus is a smart card.
PCT/EP2006/060608 2005-03-15 2006-03-09 Managing placement of data structure in memory based on a dedicated programming language WO2006097433A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0502561A FR2883390A1 (en) 2005-03-15 2005-03-15 MANAGING MEMORY DATA STRUCTURE PLACEMENT BASED ON DEDICATED PROGRAMMING LANGUAGE
FR05/02561 2005-03-15

Publications (1)

Publication Number Publication Date
WO2006097433A1 true WO2006097433A1 (en) 2006-09-21

Family

ID=35385842

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/060608 WO2006097433A1 (en) 2005-03-15 2006-03-09 Managing placement of data structure in memory based on a dedicated programming language

Country Status (2)

Country Link
FR (1) FR2883390A1 (en)
WO (1) WO2006097433A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0810522A2 (en) * 1996-05-30 1997-12-03 Sun Microsystems, Inc. A method and system for loading classes in read-only memory
US20010025373A1 (en) * 2000-02-23 2001-09-27 International Business Machines Corporation Technique for enabling applications to use languages other than their built-in macro-languages without changing the applications
US6446254B1 (en) * 1999-03-30 2002-09-03 International Business Machines Corporation Packaging memory image files
EP1313020A1 (en) * 2001-11-19 2003-05-21 EM Microelectronic-Marin SA Integrated circuit architecture for smart card and memory allocation method therefor
US20040073763A1 (en) * 2001-10-01 2004-04-15 Benoit Dageville Dynamic and automatic memory management
EP1492000A2 (en) * 2003-06-25 2004-12-29 Hyfinity Limited System and associated methods for software assembly

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0810522A2 (en) * 1996-05-30 1997-12-03 Sun Microsystems, Inc. A method and system for loading classes in read-only memory
US6446254B1 (en) * 1999-03-30 2002-09-03 International Business Machines Corporation Packaging memory image files
US20010025373A1 (en) * 2000-02-23 2001-09-27 International Business Machines Corporation Technique for enabling applications to use languages other than their built-in macro-languages without changing the applications
US20040073763A1 (en) * 2001-10-01 2004-04-15 Benoit Dageville Dynamic and automatic memory management
EP1313020A1 (en) * 2001-11-19 2003-05-21 EM Microelectronic-Marin SA Integrated circuit architecture for smart card and memory allocation method therefor
EP1492000A2 (en) * 2003-06-25 2004-12-29 Hyfinity Limited System and associated methods for software assembly

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
COURBOT, A: "Efficient Java Embedded Systems through Deployment-Time Customization", CASSIS'05, 9 March 2005 (2005-03-09), XP007900840 *

Also Published As

Publication number Publication date
FR2883390A1 (en) 2006-09-22

Similar Documents

Publication Publication Date Title
Scargall Programming persistent memory: A comprehensive guide for developers
US7440980B2 (en) Computer file management system
EP1782191B1 (en) Method for loading software with an intermediate object oriented language in a portable device
CN102279748A (en) Method, system, server and client side for remotely storing locally executed software
WO2015055074A1 (en) Method and device for dynamically loading and invoking program
Gilbert et al. Pocket ISR: Virtual machines anywhere
JP2009522638A5 (en)
CN103493011A (en) Application compatibility with library operating systems
FR2989801A1 (en) METHOD FOR SECURE MANAGEMENT OF MEMORY SPACE FOR MICROCONTROLLER
US20050044540A1 (en) Method and apparatus for object-to-object Java native interface mapping
EP1960934B1 (en) Method for making secure execution of an intermediate language software code in a portable appliance
WO2021211911A1 (en) Artificial intelligence cloud operating system
CN102043652B (en) Processing system and method for embedded device root file system
FR2872309A1 (en) METHOD FOR MANAGING A MULTI-APPLICATIVE CHIP CARD
US10474512B1 (en) Inter-process intra-application communications
WO2006097433A1 (en) Managing placement of data structure in memory based on a dedicated programming language
EP2530586B1 (en) Method for generating software
US20090265717A1 (en) Container Context Information Propagation in an Aspect-Oriented Environment
US8346821B2 (en) Orphan object tracking for objects having acquire-release semantics
FR2639734A1 (en) COMPUTER AND METHOD FOR STARTING A COMPUTER
WO2006048378A1 (en) Method for loading a software code compiled in an object-oriented intermediate language in a portable device
EP3411821B1 (en) Method for storing content, method for consulting content, method for managing content and content readers
FR3074317B1 (en) METHOD FOR ACCESSING A FLASH TYPE NON-VOLATILE MEMORY ZONE OF A SECURE ELEMENT, SUCH AS A CHIP CARD
Porter et al. Transactional system calls on Linux
EP2131287A1 (en) Electronic device for providing self-adapting services according to the platform of the host device to which it is connected

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

WWW Wipo information: withdrawn in national office

Country of ref document: RU

122 Ep: pct application non-entry in european phase

Ref document number: 06708709

Country of ref document: EP

Kind code of ref document: A1

WWW Wipo information: withdrawn in national office

Ref document number: 6708709

Country of ref document: EP