DE102004022907A1 - Storage management media - Google Patents

Storage management media Download PDF

Info

Publication number
DE102004022907A1
DE102004022907A1 DE200410022907 DE102004022907A DE102004022907A1 DE 102004022907 A1 DE102004022907 A1 DE 102004022907A1 DE 200410022907 DE200410022907 DE 200410022907 DE 102004022907 A DE102004022907 A DE 102004022907A DE 102004022907 A1 DE102004022907 A1 DE 102004022907A1
Authority
DE
Germany
Prior art keywords
memory
objects
eeprom
package
application memory
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.)
Withdrawn
Application number
DE200410022907
Other languages
German (de)
Inventor
Jörn TREGER
Robert Pinzinger
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.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
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 Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE200410022907 priority Critical patent/DE102004022907A1/en
Priority to PCT/EP2005/005011 priority patent/WO2005111952A1/en
Publication of DE102004022907A1 publication Critical patent/DE102004022907A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/177Smart card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory

Abstract

Die Erfindung schafft einen für eine objektorientierte Programmiersprache eingerichteten Datenträger, mit einem Mikroprozessor, einem nichtflüchtigen Anwendungsspeicher (EEPROM) für Programmcode enthaltende Pakete und Daten enthaltende Objekte in der objektorientierten Programmiersprache und mit einer Speicherverwaltung zum Verwalten des nichtflüchtigen Anwendungsspeichers (EEPROM). Die Pakete sind derart als Objekte ausgelegt, dass sie gegenüber der Speicherverwaltung als Objekte erscheinen.The invention provides an object oriented programming language data carrier having a microprocessor, non-volatile application memory (EEPROM) for program code containing packets and data containing objects in the object oriented programming language, and memory management for managing the nonvolatile application memory (EEPROM). The packages are designed as objects such that they appear as objects to memory management.

Description

Die Erfindung betrifft einen für eine objektorientierte Programmiersprache eingerichteten Datenträger, insbesondere einen Chip, ein Chipmodul bzw. eine Chipkarte mit einem solchen Chip oder Chipmodul, mit einem Mikroprozessor, mit einem nichtflüchtigen Anwendungsspeicher (EEPROM) für Programmcode enthaltende Pakete und Daten enthaltende Objekte, und mit einer Speicherverwaltung zum Verwalten des nichtflüchtigen Anwendungsspeichers (EEPROM).The Invention relates to a an object-oriented programming language set up disk, in particular a chip, a chip module or a chip card with such Chip or chip module, with a microprocessor, with a non-volatile Application memory (EEPROM) for Program containing packets and data containing objects, and with a memory management to manage the non-volatile Application memory (EEPROM).

Insbesondere betrifft die Erfindung einen solchen Datenträger in Ausgestaltung einer Java Card, der dazu eingerichtet ist, Programme in der objektorientierten Programmiersprache JavaTM (Sun Microsystems) abzuarbeiten, insbesondere durch eine in dem Datenträger implementierte virtuelle Java-Card-Maschine.In particular, the invention relates to such a data carrier in a design of a Java Card, which is adapted to execute programs in the object-oriented programming language Java (Sun Microsystems), in particular by a virtual Java Card machine implemented in the data carrier.

Der Datenträger kann einen Körper in jeder beliebigen äußeren Form haben, z.B. in standardisierter (z.B. ISO) oder nicht-standardisierter Scheckkartenform, in Form eines volumigen Tokens oder in Form eines Chipmoduls.Of the disk can a body in any external shape have, e.g. in standardized (e.g., ISO) or non-standardized Check card form, in the form of a voluminous token or in the form of a Chip module.

Ein Datenträger hat typischerweise einen Mikroprozessor, mehrere Speicher und wahlweise ein oder mehrere Schnittstellen für kontaktlose und/oder kontaktbehaftete Kommunikation zwischen dem Datenträger und äußeren Einrichtungen. Als Speicher hat der Datenträger einen nichtflüchtigen Systemspeicher (ROM und/oder ggf. Flash-Speicher), einen nichtflüchtigen Anwendungsspeicher (EEPROM und/oder ggf. weiterer Flash-Speicher) und einen flüchtigen Arbeitsspeicher (RAM).One disk typically has a microprocessor, multiple memory and optional one or more interfaces for contactless and / or contact-based Communication between the disk and external devices. As memory has the disk a non-volatile one System memory (ROM and / or flash memory if necessary), a non-volatile Application memory (EEPROM and / or possibly further flash memory) and a fleeting one Random Access Memory (RAM).

Im Folgenden wird, gemäß der am häufigsten verwendeten Ausführungsform eines Datenträgers wie z.B. einer Java Card, der nichtflüchtige Systemspeicher als ROM bezeichnet, der nichtflüchtige Anwendungsspeicher als EEPROM und der flüchtige Arbeitsspeicher als RAM, auch wenn die Speicher (insbesondere ROM, EEPROM) ganz oder teilweise in anderen Technologien (z.B. Flash) verwirklicht sein können.in the Following, according to the am common used embodiment a volume such as. a Java Card, the nonvolatile system memory as ROM referred to, the nonvolatile application memory as EEPROM and the volatile memory as RAM, even if the memory (especially ROM, EEPROM) quite or partially realized in other technologies (e.g., Flash) could be.

Bei einem herkömmlichen für eine objektorientierte Programmiersprache eingerichteten Datenträger (z.B. Java Card) wird Programmcode, z.B. für Systemfunktionen oder für Anwendungen, in Form von Paketen (packages) in den Datenträger geladen. Zusätzlich zum Programmcode kann jedes Paket weitere Komponenten enthalten wie z.B. eine Export-Komponente, die den Zugriff von außerhalb des Pakets auf das Paket regelt. Die Pakete werden statisch, d.h. vor der Laufzeit (vor dem Ablaufenlassen) des jeweiligen Programms in den Datenträger geladen und dort in einem dafür vorgesehenen Speicher (z.B. ROM, EEPROM) abgespeichert.at a conventional one for one object oriented programming language established media (e.g. Java Card) is program code, e.g. for system functions or for applications, in the form of packages (packages) loaded into the disk. In addition to Program code, each package can contain other components such as e.g. an export component that allows access from outside of the package to the package. The packets become static, i. before the running time (before expiration) of the respective program in the disk loaded and there in one for that stored memory (e.g., ROM, EEPROM).

Zur Laufzeit des Programms werden aus dem zugehörigen Paket heraus dynamisch Objekte angelegt, in denen Daten enthalten sind.to Runtime of the program will be dynamic out of the associated package Created objects in which data is contained.

Im ROM des herkömmlichen für eine objektorientierte Programmiersprache eingerichteten Datenträgers ist vor allem das Betriebssystem abgespeichert, und zudem ggf. Pakete (packages) mit Systemfunktionen, oder sog. preloaded packages, d.h. Pakete, die vor der Komplettierung des Datenträgers in den Datenträger geladen werden.in the ROM of the conventional for one object oriented programming language set up disk especially the operating system stored, and possibly packages (packages) with system functions, or so-called preloaded packages, i. Packages that are loaded into the disk prior to completion of the disk become.

Der EEPROM des herkömmlichen für eine objektorientierte Programmiersprache eingerichteten Datenträgers enthält unter Anderem einen im Wesentlichen für Programmcode vorgesehenen Paketspeicher, in dem Pakete (packages) mit Programmcode und ggf. weiteren Komponenten (z.B. Export-Komponente) abgespeichert sind.Of the EEPROM of the conventional for an object-oriented Programming medium set up contains, among other things, a substantially for program code provided package memory in the packages with program code and optionally other components (e.g., export component) are.

Weiter enthält der herkömmliche EEPROM für Daten einen Heap-Speicher, in dem zur Laufzeit eines jeweiligen aufgerufenen Programms dynamisch Objekte angelegt werden, in denen Daten enthalten sind. Durch das dynamische Anlegen eines jeweiligen Objekts im Heap-Speicher wird im Heap-Speicher der für das Objekt erforderliche Speicherplatz dynamisch allokiert (zugewiesen).Further contains the conventional one EEPROM for Data is a heap memory in which at runtime of each called program dynamically created objects in which Data is included. By the dynamic creation of a respective The object in heap memory becomes the heap memory for the object required space allocated dynamically (allocated).

Wahlweise werden im EEPROM zudem Systemvariablen angelegt.Optional system variables are also created in the EEPROM.

Durch die Aufteilung des EEPROM in einen Heap-Speicher für Objekte, d.h. Daten, und einen Paketspeicher für Programmcode ist die Speicherverwaltung unflexibel.By splitting the EEPROM into a heap for objects, i.e. Data, and a package store for program code is memory management inflexible.

Insbesondere kann dadurch, dass zwei starr getrennte Speicherbereiche vorhanden sind, der vorhandene Speicherplatz im EEPROM nicht optimal ausgenutzt werden, und die Wahrscheinlichkeit, dass der Speicher fragmentiert ist, ist hoch.Especially This can be achieved by having two rigidly separated memory areas are, the available space in the EEPROM not optimally utilized and the probability that the memory will fragment is high.

Wahlweise ist es bei einem herkömmlichen EEPROM vorgesehen, dass die Speichergrenze zwischen dem Paketspeicher für Programmcode und dem Heap-Speicher für Objekte, d.h. Daten, bei Bedarf mittels einer dazu vorgesehenen Speicherverwaltung verschiebbar ist, um den Speicherplatz im EEPROM möglichst effizient auszunutzen.Optional it is with a conventional EEPROM provided that the memory limit between the packet memory for program code and the heap memory for Objects, i. Data, if necessary by means of a designated Memory management is relocatable to the space in the EEPROM preferably exploit efficiently.

Ein weiterer Nachteil des zweigeteilten EEPROM ist, dass er heterogen ist, da der Paketspeicher und der Heap-Speicher unterschiedliche Anforderungen an die Speicherverwaltung stellen, wodurch die Speicherverwaltung des herkömmlichen zweigeteilten EEPROM umständlich ist.One Another disadvantage of the two-part EEPROM is that it is heterogeneous because the packet store and the heap store are different Requirements for memory management, causing memory management of the conventional two-parted one EEPROM awkward is.

Genauer verfügt der Heap-Speicher, auf dem die Objekte dynamisch angelegt werden, häufig (bei Java Cards z.B. bei den Versionen 2.2 und 3.0) über eine automatische Speicherbereinigung (Garbage Collection), die nicht mehr benötigten Heap-Speicher wieder freigibt. Manche Verfahren bzw. Einrichtungen zur automatischen Speicherbereinigung, z.B. Copy Collector oder Compacting Collector, defragmentieren den Heap-Speicher zusätzlich.More accurate has the heap memory on which the objects are dynamically created, often (at Java Cards e.g. in versions 2.2 and 3.0) via automatic garbage collection (Garbage collection), which releases unwanted heap memory. Some procedures or automatic garbage collection devices, e.g. Copy Collector or Compacting Collector, defragment the heap memory additionally.

Der Paketspeicher, in dem Pakete statisch abgespeichert werden, benötigt eine zweite Implementierung einer automatischen Speicherbereinigung, um den Speicher optimal zu nutzen.Of the Package memory, in which packets are stored statically, requires one second implementation of automatic garbage collection, to use the memory optimally.

Aufgabe der Erfindung ist es, einen für eine objektorientierte Programmiersprache eingerichteten Datenträger mit einem Mikroprozessor und einem nichtflüchtigen Anwendungsspeicher (z.B. EEPROM) für Pakete und Objekte und mit einer einfachen, effizienten Speicherverwaltung für den Anwendungsspeicher zu schaffen.task The invention is a, for an object-oriented programming language set up with disk a microprocessor and a nonvolatile application memory (e.g., EEPROM) for Packages and objects and with a simple, efficient memory management for the To create application memory.

Die Aufgabe wird durch einen Datenträger nach dem unabhängigen Anspruch 1 gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Ansprüchen angegeben.The Task is by a disk after the independent one Claim 1 solved. Advantageous embodiments of the invention are specified in the dependent claims.

Der erfindungsgemäße Datenträger gemäß dem unabhängigen Anspruch 1 ist für eine objektorientierte Programmiersprache eingerichtet, ist also beispielsweise eine Java Card mit einer virtuellen Java-Card-Maschine. Der Datenträger ist ausgestattet mit einem Mikroprozessor, einem nichtflüchtigen Anwendungsspeicher (z.B. EEPROM, Flash) für Pakete und Objekte in der objektorientierten Programmiersprache und mit einer Speicherverwaltung zum Verwalten des nichtflüchtigen Anwendungsspeichers. In den Paketen ist ablauffähiger Programmcode enthalten. Die Objekte werden zur Laufzeit des Programms, das dem Programmcode in dem Paket entspricht, dynamisch angelegt. In den Objekten sind im Wesentlichen Daten enthalten, die zur Laufzeit eines jeweiligen Programms, d.h. sobald ein Programm aufgerufen wird, erzeugt werden.Of the Inventive disk according to the independent claim 1 is for an object-oriented programming language is set up, so for example a Java Card with a Java Card Virtual Machine. The disk is equipped with a microprocessor, a non-volatile Application memory (e.g., EEPROM, Flash) for packets and objects in the object-oriented programming language and memory management to manage the non-volatile Application memory. The packages contain executable program code. The objects are at runtime of the program, which is the program code in the package corresponds dynamically. In the objects are essentially contain data at runtime of each Program, i. as soon as a program is called, be generated.

Gemäß der Erfindung sind auch Pakete als Objekte angelegt, so dass Pakete und Objekte in demselben einheitlichen Speicherbereich des Anwendungsspeichers angelegt werden können. Zur Verwaltung der Objekte, die nun Programmcode oder Daten enthalten können, ist daher nur eine einzige einheitliche Speicherverwaltung erforderlich, nämlich eine Speicherverwaltung, die Objekte verwalten kann. Mit anderen Worten existieren für die Speicherverwaltung im Anwendungsspeicher nur Objekte, die in einer für Objekte üblichen Weise durch die Speicherverwaltung verwaltet werden. Hierdurch ist durch die Erfindung der Verwaltungsaufwand bei der Speicherverwaltung verringert, und die Speicherverwaltung kann effizienter arbeiten.According to the invention Packages are also created as objects, allowing packages and objects in the same unified memory area of the application memory can be created. To manage the objects that now contain program code or data can, Therefore, only a single unified storage management is required, namely one Memory management that can manage objects. In other words exist for memory management in application memory only objects that are in one for Objects usual Way managed by the memory management. This is by the invention, the administrative burden of memory management reduced, and memory management can work more efficiently.

Daher ist gemäß Anspruch 1 ein für eine objektorientierte Programmiersprache eingerichteter Datenträger mit einem Mikroprozessor und einem nichtflüchtigen Anwendungsspeicher für Pakete und Objekte geschaffen, der eine besonders einfache und effiziente Speicherverwaltung für den nichtflüchtigen Anwendungsspeicher hat.Therefore is according to claim 1 one for an object-oriented programming language set up disk with a microprocessor and a nonvolatile application memory for packages and created objects that are particularly simple and efficient Memory management for the non-volatile Application memory has.

Zudem benötigt der durch die Speicherverwaltung verwaltete Anwendungsspeicher keine Speichergrenze, die verwaltet werden müsste. Denn da die Pakete als Objekte angelegt sind, ist eine Unterteilung des Anwendungsspeichers in einen Bereich für Pakete (im Wesentlichen Programmcode und ggf. weitere Komponenten wie Expon-Komponenten) einerseits und Objekte (im Wesentlichen Daten) andererseits nicht erforderlich. Vorzugsweise ist der durch die Speicherveraltung verwaltete Anwendungsspeicher auch ein einheitlicher Speicherbereich ohne Speichergrenze (d.h. ohne innere Speichergrenze innerhalb des von der Speicherverwaltung verwalteten Anwendungsspeichers). Der Wegfall der Speichergrenze hat einerseits einen verringerten Verwaltungsaufwand zur Folge. Zum Anderen lässt sich der Anwendungsspeicher effizienter ausfüllen, so dass die Speicherressourcen des Anwendungsspeichers effizient genutzt sind und die Gefahr einer Fragmentierung geringer ist.moreover needed none of the application memory managed by memory management Memory limit that would need to be managed. Because the packages as Objects are created, is a subdivision of the application memory in an area for Packages (essentially program code and possibly other components like expon components) on the one hand and objects (essentially data) on the other required. Preferably, the one managed by the memory controller Application memory also a uniform memory area without memory limit (i.e., without an internal memory limit within memory management managed application memory). The omission of the memory limit on the one hand results in a reduced administrative burden. On the other leaves to complete the application memory more efficiently, so that the memory resources the application memory are used efficiently and the risk of a Fragmentation is less.

Vorzugsweise ist der von der Speicherverwaltung verwaltete Anwendungsspeicher ein – insbesondere dynamisch zu allokierender – Heap-Speicher.Preferably is the application memory managed by space management a - in particular allocating dynamically - heap memory.

Gemäß einer bevorzugten Variante ist das Paket genauer als ein oder mehrere Objekte vom Feldtyp (Array Type Object) angelegt. Ein solches Objekt vom Feldtyp ist ein Datenfeld (Array) mit einer Mehrzahl von Feldelementen (Array Elements): In den Feldelementen ist der Inhalt des Pakets abgelegt. Insbesondere, bei einer Java Card gemäß dieser Variante, ist das Paket vorzugsweise in Form eines Java Byte Array angelegt, das heißt in Form eines Datenfeldes (Array) mit einer Mehrzahl von einzelnen Feldelementen, die jeweils ein Byte (8 Bit) lang (groß) sind, bzw. in Form mehrere solcher Java Byte Arrays.According to one preferred variant, the package is more accurate than one or more Objects created by field type (Array Type Object). Such an object The field type is a data field (array) with a plurality of field elements (Array Elements): In the field elements is the contents of the package stored. In particular, with a Java Card according to this variant, that is Package preferably in the form of a Java byte array created, that is in shape a data field (array) with a plurality of individual field elements, each one byte (8 bits) long (large), or in the form of several such Java byte arrays.

Gemäß einer bevorzugten Weiterbildung der Erfindung weist der Datenträger weiter eine Einrichtung zur automatischen Speicherbereinigung (Garbage Collection) auf, die zur automatischen Speicherbereinigung des von der Speicherverwaltung verwalteten Anwendungsspeichers eingerichtet ist. Beispiele von verwendeten automatischen Speicherbereinigungen sind Mark and Sweep Garbage Collection und Abwandlungen davon. Die automatische Speicherbereinigung beseitigt bei der bevor zugten Weiterbildung der Erfindung bei Bedarf nicht nur nicht mehr benötigte Daten (herkömmliche Objekte), sondern zusätzlich auch nicht mehr benötigten Programmcode und ggf. Exportkomponenten oder sonstige Paket-Bestandteile, die ja nach außen hin ebenfalls als Objekte gestaltet sind. Es ist keine spezielle Speicherbereinigung zur Beseitigung nicht mehr benötigter Pakete erforderlich. Aus diesem Grund ist die Speicherverwaltung gemäß der bevorzugten Weiterbildung insbesondere bei der automatischen Speicherbereinigung (Garbage Collection) besonders effizient.According to a preferred development of the invention, the data carrier also has a device for automatic garbage collection, which is set up for the automatic garbage collection of the application memory managed by the storage management. Examples of automatic garbage collections used are Mark and Sweep Garbage Collection and variations thereof. The automatic garbage collection eliminates in the before zugten development of the invention, if necessary, not only no longer needed data (conventional objects), but also no longer required program code and possibly export components or other package components that are designed to the outside also as objects. No special garbage collection is required to remove unneeded packages. For this reason, memory management according to the preferred embodiment is particularly efficient, especially in automatic garbage collection.

Weiter kann der Datenträger eine Einrichtung zur Defragmentierung aufweisen, die zur Defragmentierung des von der Speicherverwaltung verwalteten Anwendungsspeichers eingerichtet ist.Further can the disk have a defragmentation facility for defragmentation of the application storage managed by the storage manager is.

Wahlweise ist die ggf. vorgesehene automatische Speicherbereinigung (Garbage Collection) zusätzlich zur Defragmentierung des Speicherbereichs eingerichtet. Beispielsweise wird als automatische Speicherbereinigung mit integrierter Defragmentierung ein Copy Collector oder ein Compacting Collector oder eine Abwandlung einer der beiden automatischen Speicherbereinigungen verwendet.Optional is the possibly provided automatic garbage collection (garbage Collection) additionally set up to defragment the memory area. For example is called automatic garbage collection with built-in defragmentation a copy collector or a compacting collector or a modification one of the two automatic garbage collections used.

Vorzugsweise ist ein in dem Anwendungsspeicher abgespeichertes Paket als benutzt markiert, damit das Paket durch die Garbage Collection nicht gelöscht wird. Die Markierung des Pakets ist in einer für Objekte üblichen Weise vorgenommen, entsprechend dem Merkmal, dass das Paket als ein oder mehrere Objekte angelegt ist. Beispielsweise ist die Markierung im Objekt-Header enthalten. Die Markierung kann wahlweise in einer Registry des Anwendungsspeichers enthalten sein, die eine Auflistung aller im Anwendungsspeicher enthaltenen Pakete enthält. Weiter vorzugsweise wird, sobald ein Paket gelöscht wird, die Markierung des Pakets als benutzt wieder aufgehoben.Preferably is a stored in the application memory package as used marked so that the package is not deleted by garbage collection. The marking of the package is made in a manner usual for objects, according to the feature that the package as one or more objects is created. For example, the marker is in the object header contain. The tag can optionally be in a registry of the application memory be included, which is a listing of all in application memory contains contained packages. More preferably, as soon as a packet is deleted, the mark of the Package as used again reversed.

Im folgenden wird die Erfindung anhand von Ausführungsbeispielen und unter Bezugnahme auf die Zeichnung näher erläutert, in der zeigen:in the The following is the invention with reference to embodiments and below Reference to the drawing closer explains in the show:

1 eine schematische Darstellung eines Anwendungsspeichers EEPROM mit einem darin eingerichteten Heap-Speicher 101, gemäß einer Ausführungsform der Erfindung; 1 a schematic representation of an application memory EEPROM with a heap memory arranged therein 101 according to an embodiment of the invention;

2 eine schematische Darstellung eines Anwendungsspeichers EEPROM gemäß dem Stand der Technik, mit einem Heap-Speicher 201 und einem Paketspeicher 202, die durch eine verschiebbare Speichergrenze 203 voneinander getrennt sind; 2 a schematic representation of an application memory EEPROM according to the prior art, with a heap memory 201 and a package store 202 caused by a movable storage limit 203 are separated from each other;

1 zeigt eine schematische Darstellung eines Anwendungsspeichers EEPROM gemäß einer Ausführungsform der Erfindung. Der EEPROM enthält eine Registry 110, eine Speicherverwaltung 120 (Memory Management) und einen Heap-Speicher 101. Der Heap-Speicher 101 ist einheitlich gestaltet und beherbergt sowohl herkömmliche Objekte, d.h. Daten, als auch erfindungsgemäß als Objekte gestaltete Pakete, d.h. Programmcode (und ggf. Export-Komponenten etc.). In dem Heap-Speicher 101 sind genauer drei dynamisch angelegte herkömmliche Daten-Objekte 102, 103, 104 und ein, gemäß der Erfindung, als Byte Array Objekt gestaltetes Paket 105 angeordnet. Sowohl die Daten-Objekte 102, 103, 104 als auch das Paket-Objekt 105 sind für die Speicherverwaltung 120, die den Heap-Speicher 101 verwaltet, Objekte. 1 shows a schematic representation of an application memory EEPROM according to an embodiment of the invention. The EEPROM contains a registry 110 , a memory manager 120 (Memory Management) and a heap memory 101 , The heap memory 101 is designed uniformly and accommodates both conventional objects, ie data, as well as according to the invention designed as objects packages, ie program code (and possibly export components, etc.). In the heap store 101 are more precisely three dynamically created conventional data objects 102 . 103 . 104 and a packet designed according to the invention as a byte array object 105 arranged. Both the data objects 102 . 103 . 104 as well as the package object 105 are for memory management 120 that the heap memory 101 managed, objects.

Zum Vergleich zeigt 2 eine schematische Darstellung eines Anwendungsspeichers EEPROM gemäß dem Stand der Technik, mit einem Heap-Speicher 201 und einem Paketspeicher 202, die durch eine verschiebbare Speichergrenze 203 voneinander getrennt sind. Der herkömmliche Heap-Speicher 201 ist den Daten vorbehalten und enthält nur dynamisch angelegte herkömmliche Objekte, hier die beiden Objekte 204 und 205. Pakete – und damit insbesondere Programmcode – sind hingegen in einem gesonderten Paketspeicher 202 abgespeichert, hier ist ein einzelnes Paket 206 im Paketspeicher 202 abgespeichert. Der Heap-Speicher 201 hat eine eigene Speicherverwaltung 211, und der Paketspeicher 202 hat ebenfalls eine eigene Speicherverwaltung 212. Die Speichergrenze 203, die den Heap-Speicher 201 und den Paket speicher 202 voneinander trennt ist verschiebbar, damit die Speicheraufteilung bei Bedarf an die Speicherbedürfnisse eines ablaufenden Programms angepasst werden kann. Der EEPROM enthält ebenfalls eine Registry 210 (vgl. weiter unten).For comparison shows 2 a schematic representation of an application memory EEPROM according to the prior art, with a heap memory 201 and a package store 202 caused by a movable storage limit 203 are separated from each other. The conventional heap memory 201 is reserved for the data and contains only dynamically created conventional objects, here the two objects 204 and 205 , Packages - and thus in particular program code - are, however, in a separate packet memory 202 saved, here is a single package 206 in the package store 202 stored. The heap memory 201 has its own memory management 211 , and the package store 202 also has its own memory management 212 , The memory limit 203 that the heap memory 201 and the package memory 202 separated from each other is movable, so that the memory allocation can be adjusted if necessary to the memory needs of a running program. The EEPROM also contains a registry 210 (see below).

Die in 1 dargestellte Art der Speicheraufteilung, die nur Objekte kennt, ist wesentlich flexibler als die herkömmliche Art der Speicheraufteilung gemäß 2, die zwischen Objekten und Paketen unterscheiden muss, da bei der Speicheraufteilung gemäß 1 ein einheitlicher Speicherbereich ohne Speichergrenzen zu verwalten ist, in dem alle Speicherelemente 102, 103, 104, 105 nach „außen" hin für die Speicherverwaltung gleich aussehen, nämlich wie Objekte. Folglich kommt der einheitliche Anwendungsspeicher 101, der nur Objekte kennt, mit einer einzigen einheitlichen Speicherverwaltung 120 aus.In the 1 shown type of memory allocation, which knows only objects is much more flexible than the conventional type of memory allocation according to 2 , which has to differentiate between objects and packages, as in memory allocation according to 1 to manage a unified storage area without storage limits, in which all storage elements 102 . 103 . 104 . 105 look "outward" for memory management the same as objects, hence the unified application memory 101 that knows only objects, with a single unified memory management 120 out.

Bei einer Java Card ist eine Übersicht über sämtliche im EEPROM enthaltenen Pakete in der Registry des EEPROM enthalten. Für ein einzelnes Paket enthält die Registry entweder einen einzelnen Eintrag oder – meistens – mehrere sogenannte Paketdaten-Einträge (Package Data Entries), die dem Programmcode und ggf. vorhandenen weiteren Komponenten wie z.B. der Export-Komponente entsprechen. Trotz seiner Bezeichnung "Paketdaten-Eintrag" repräsentiert der Eintrag in der Registry nicht Daten, sondern Programmcode. Für den Programmcode eines einzelnen Pakets enthält die Registry in der Regel einen einzigen Paketdaten-Eintrag, alternativ auch mehrere Paketdaten-Einträge. Für in dem Paket eventuell vorhandene weitere Komponenten wie z.B. Export-Komponenten enthält die Registry einen oder mehrere weitere Paketdaten-Einträge. Für Objekte mit Daten kann die Registry der Java Card einen oder mehrere Instanzen-Einträge haben. Paketdaten-Einträge zu implementierten Paketen sind in der Registry als benutzt markiert. Wird ein Paket gelöscht, wird die Markierung des Pakets gelöscht. Gemäß der Erfindung, bei der zu jedem Paketdaten-Eintrag ein Objektangelegt ist, kann die Markierung als benutzt beispielsweise im Objekt-Header des Objekts, das dem Paketdaten-Objekt entspricht, enthalten sein.For a Java Card, an overview of all the packages contained in the EEPROM is contained in the registry of the EEPROM. For a single package, the registry contains either a single entry or - more commonly - several so-called package data entries (Package Data Entries), which correspond to the program code and possibly existing other components such as the export component chen. Despite its name "package data entry", the entry in the registry does not represent data, but program code. For the program code of a single package, the registry usually contains a single package data entry, alternatively several package data entries. For any additional components in the package, such as export components, the registry contains one or more additional package data entries. For objects with data, the registry of the Java Card may have one or more instance entries. Packet data entries for implemented packages are marked as used in the registry. When a package is deleted, the tag of the package is deleted. According to the invention, where an object is applied to each packet data entry, the flag may be included as used, for example, in the object header of the object corresponding to the packet data object.

Soll nun ein Paket in den EEPROM einer Java Card implementiert werden, wird zuerst die Registry des EEPROM angelegt oder um das Paket ergänzt. Gemäß der Erfindung wird anschließend für jeden Paketdaten-Eintrag, der zu dem Paket in der Registry enthalten ist, ein Objekt im Heap-Speicher der Java Card angelegt. Hierdurch ist der Programmcode im EEPROM implementiert. Dennoch enthält der EEPROM lediglich Objekte, die durch die Speicherverwaltung einheitlich behandelt werden können. Sofern der Heap-Speicher über eine Garbage Collection (automatische Speicherbereinigung) verfügt, kann auch der Programmcode, der in Form von einem oder mehreren Objekten vorliegt, durch die Garbage Collection gepflegt werden, was bei herkömmlichen Verfahren bzw. Datenträgern nicht möglich ist.Should now a package can be implemented in the EEPROM of a Java Card, First, the registry of the EEPROM is created or added to the package. According to the invention will follow for each Package data entry that is included with the package in the registry, An object is created in the heap memory of the Java Card. This is the program code is implemented in the EEPROM. Nevertheless, the EEPROM contains only objects that are consistent through memory management can be treated. Unless the heap memory over Garbage Collection (automatic garbage collection) can also the program code, which takes the form of one or more objects garbage collection, what with usual Procedure or data carriers not possible is.

Claims (10)

Datenträger, eingerichtet für eine objektorientierte Programmiersprache, mit – einem Mikroprozessor, – einem nichtflüchtigen Anwendungsspeicher (EEPROM, Flash) für Programmcode enthaltende Pakete und Daten enthaltende dynamisch angelegte Objekte in der objektorientierten Programmiersprache, und – einer Speicherverwaltung (120) zum Verwalten des nichtflüchtigen Anwendungsspeichers (EEPROM, Flash) oder zumindest eines Teils davon, wobei der von der Speicherverwaltung (120) verwaltete Anwendungsspeicher mindestens ein Paket (105) enthält, das derart als ein oder mehrere Objekte angelegt ist, dass das Paket (105) gegenüber der Speicherverwaltung wie ein Objekt oder mehrere Objekte erscheint.Data carrier, set up for an object-oriented programming language, comprising - a microprocessor, - a nonvolatile application memory (EEPROM, Flash) for program code-containing packets and data objects containing dynamic objects in the object-oriented programming language, and - memory management ( 120 ) for managing the non-volatile application memory (EEPROM, Flash) or at least a part thereof, the memory management ( 120 ) managed application memory at least one package ( 105 ) created as one or more objects such that the package ( 105 ) appears to memory management as one or more objects. Datenträger nach Anspruch 1, wobei der durch die Speicherverwaltung (120) verwaltete Anwendungsspeicher (EEPROM, Flash) ein einheitlicher Speicherbereich ohne Speichergrenze ist.A data carrier according to claim 1, wherein 120 ) managed application memory (EEPROM, Flash) is a uniform memory area without memory limit. Datenträger nach Anspruch 1 oder 2, wobei der von der Speicherverwaltung (120) verwaltete Anwendungsspeicher ein – insbesondere dynamisch zu allokierender – Heap-Speicher (101) ist.A data carrier according to claim 1 or 2, wherein the storage management ( 120 ) managed application memory - especially heap memory to allocate dynamically ( 101 ). Datenträger nach einem der Ansprüche 1 bis 3, wobei das Paket (105) als ein oder mehrere Objekte vom Feldtyp angelegt ist.A data carrier according to any one of claims 1 to 3, wherein the packet ( 105 ) is created as one or more objects of the field type. Datenträger nach einem der Ansprüche 1 bis 4, wobei der für eine objektorientierte Programmiersprache eingerichtete Datenträger eine Java Card ist.disk according to one of the claims 1 to 4, wherein the for an object-oriented programming language set up a disk Java Card is. Datenträger nach einem der Ansprüche 1 bis 5, der weiter eine Einrichtung zur automatischen Speicherbereinigung aufweist, die zur automatischen Speicherbereinigung des von der Speicherverwaltung (120) verwalteten Anwendungsspeichers eingerichtet ist.A data carrier according to any one of claims 1 to 5, further comprising means for automatic garbage collection for automatically garbage collection management ( 120 ) managed application memory is set up. Datenträger nach einem der Ansprüche 1 bis 6, der weiter eine Einrichtung zur Defragmentierung aufweist, die zur Defragmentierung des von der Speicherverwaltung (120) verwalteten Anwendungsspeichers eingerichtet ist.A data carrier according to any one of claims 1 to 6, further comprising defragmentation means for defragmenting the storage device ( 120 ) managed application memory is set up. Datenträger nach einem der Ansprüche 1 bis 7, wobei das Paket (150) als benutzt markiert ist.A data carrier according to any one of claims 1 to 7, wherein the package ( 150 ) is marked as used. Verfahren zum Betreiben eines für eine objektorientierte Programmiersprache eingerichteten Datenträgers nach einem der Ansprüche 1 bis 7, wobei der Datenträger mit einem Mikroprozessor, einem nichtflüchtigen Anwendungsspeicher (EEPROM, Flash) für Programmcode enthaltende Pakete und Daten enthaltende dynamisch angelegte Objekte in der objektorientierten Programmiersprache, und mit einer Speicherverwaltung (120) zum Verwalten des nichtflüchtigen Anwendungsspeichers (EEPROM, Flash) oder zumindest eines Teils des Anwendungsspeichers (EEPROM, Flash) ausgestattet ist, wobei bei dem Verfahren in dem von der Speicherverwaltung (120) verwalteten Anwendungsspeicher mindestens ein Paket (105) derart als ein oder mehrere Objekte angelegt wird, dass das Paket (105) gegenüber der Speicherverwaltung (120) wie ein Objekt oder mehrere Objekte erscheint.A method of operating an object oriented programming language disk as claimed in any one of claims 1 to 7, wherein the disk comprises a microprocessor, nonvolatile application memory (EEPROM, Flash) for program code containing packets, and dynamic object objects in the object oriented programming language, and a memory management ( 120 ) for managing the nonvolatile application memory (EEPROM, Flash) or at least part of the application memory (EEPROM, Flash), wherein in the method in the memory management ( 120 ) managed application memory at least one package ( 105 ) is created as one or more objects such that the package ( 105 ) compared to memory management ( 120 ) as an object or multiple objects appears. Verfahren nach Anspruch 9, wobei zusätzlich eine automatische Speicherbereinigung (Garbage Collection) und/oder Defragmentierung des von der Speicherverwaltung (120) verwalteten Anwendungsspeichers (EEPROM, Flash) durchgeführt wird.The method of claim 9, wherein additionally an automatic garbage collection and / or defragmentation of the memory management ( 120 ) managed application memory (EEPROM, Flash).
DE200410022907 2004-05-10 2004-05-10 Storage management media Withdrawn DE102004022907A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE200410022907 DE102004022907A1 (en) 2004-05-10 2004-05-10 Storage management media
PCT/EP2005/005011 WO2005111952A1 (en) 2004-05-10 2005-05-09 Data carrier with memory management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200410022907 DE102004022907A1 (en) 2004-05-10 2004-05-10 Storage management media

Publications (1)

Publication Number Publication Date
DE102004022907A1 true DE102004022907A1 (en) 2005-12-01

Family

ID=34972332

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200410022907 Withdrawn DE102004022907A1 (en) 2004-05-10 2004-05-10 Storage management media

Country Status (2)

Country Link
DE (1) DE102004022907A1 (en)
WO (1) WO2005111952A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014112496A1 (en) 2014-08-29 2016-03-03 Bundesdruckerei Gmbh Memory management for a chip card

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030229769A1 (en) * 2002-06-07 2003-12-11 Montemayor Oscar A. Using short references to access program elements in a large address space

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735680B2 (en) * 2002-05-24 2004-05-11 Sun Microsystems, Inc. Method and apparatus for deleting objects from memory within a smart card

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030229769A1 (en) * 2002-06-07 2003-12-11 Montemayor Oscar A. Using short references to access program elements in a large address space

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Infineon Preliminary Short Product Information SLE88CX720P, (online). Im Internet: URL:http://www.infineon.com/cmc_ upload/documents/028/834/SPL_SLE88CX720P0603.pdf,r am 12.10.2004,Schlussbericht vom 06.2003;
Infineon Preliminary Short Product Information SLE88CX720P, (online). Im Internet: URL:http://www.infineon.com/cmc_ upload/documents/028/834/SPL_SLE88CX720P0603.pdf,ram 12.10.2004,Schlussbericht vom 06.2003 *
Usenix Assocoation proceedings of the 9th Usenic security Symposium.Denver,August 14-17,2000 (online). Im Internet: URL:http://www.usenix.org/publications/library/pro sec2000/full_papers/vandoorn/vandoorn.pdf,recherch am 12.10.2004;
Usenix Assocoation proceedings of the 9th Usenic security Symposium.Denver,August 14-17,2000 (online). Im Internet: URL:http://www.usenix.org/publications/library/prosec2000/full_papers/vandoorn/vandoorn.pdf,rechercham 12.10.2004 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014112496A1 (en) 2014-08-29 2016-03-03 Bundesdruckerei Gmbh Memory management for a chip card
WO2016030376A1 (en) 2014-08-29 2016-03-03 Bundesdruckerei Gmbh Memory management for a token

Also Published As

Publication number Publication date
WO2005111952A1 (en) 2005-11-24

Similar Documents

Publication Publication Date Title
DE102005022893B3 (en) Memory card e.g. multi media card, for data storage, has memory management unit providing open and safe interface to access memory blocks and protocol adapter accessing contents of card from host system connected with adapter by interface
DE19536548A1 (en) Generation of software tools for initialisation and personalising of memory card, smart card
EP1183690B1 (en) Memory array with address scrambling
DE102009033961A1 (en) Emulation of a once programmable memory
DE19626337A1 (en) Processing long messages in a processor card
DE69933142T2 (en) CHIP CARD AND METHOD FOR MANAGING A PUBLISHED MEMORY ON THE SAME
EP1196902A1 (en) Method for operating a portable data carrier configured for executing reloadable functional programs
EP1352318B1 (en) Microprocessor circuit for portable data carriers
DE60224937T2 (en) METHOD AND ARRANGEMENT FOR ASSOCIATING APPROVED APPLET FILES
WO2005055052A2 (en) Java smart card chip comprising a memory area reserved for global variables
DE19939280A1 (en) Secure personalization of chip cards
DE102004022907A1 (en) Storage management media
WO2004100090A1 (en) Memory management in a portable data carrier
EP0890172B1 (en) Solid-state memory device
EP2151762B1 (en) Storage management in a portable data storage medium
WO2004066153A1 (en) Memory defragmentation, especially in a portable data carrier
EP1062630B1 (en) Data carrier
DE10127179A1 (en) Chip card memory management method has virtual addresses of defined virtual address zone assigned to physical addresses of memory locations
EP2177995B1 (en) Storage management in a portable data storage medium
DE112015003923T5 (en) Overlayed delete block assignment
EP1600855B1 (en) Generating and using information about memory occupation in a portable device
DE112021005473T5 (en) SYSTEM WITH INCREASING PROTECTED MEMORY AREA AND EXTINGUISHING PROTECTION
DE102004013180A1 (en) Garbage collection for smart cards
DE102004051823A1 (en) Passing variables between interpreter-based and native program code parts
WO2016030376A1 (en) Memory management for a token

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R005 Application deemed withdrawn due to failure to request examination

Effective date: 20110510