DE10329145A1 - Memory management with a portable data carrier - Google Patents

Memory management with a portable data carrier Download PDF

Info

Publication number
DE10329145A1
DE10329145A1 DE2003129145 DE10329145A DE10329145A1 DE 10329145 A1 DE10329145 A1 DE 10329145A1 DE 2003129145 DE2003129145 DE 2003129145 DE 10329145 A DE10329145 A DE 10329145A DE 10329145 A1 DE10329145 A1 DE 10329145A1
Authority
DE
Germany
Prior art keywords
memory
file system
program
management unit
entry
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.)
Ceased
Application number
DE2003129145
Other languages
German (de)
Inventor
Erich Englbrecht
Robert Hockauf
Thorsten Ulbricht
Rudolf Schubert
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 DE2003129145 priority Critical patent/DE10329145A1/en
Priority to EP04740272A priority patent/EP1642245A1/en
Priority to PCT/EP2004/006859 priority patent/WO2005001780A1/en
Publication of DE10329145A1 publication Critical patent/DE10329145A1/en
Ceased 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
    • 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/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Bei einem Verfahren zur Speicherverwaltung bei einem tragbaren Datenträger (10) werden Programmm in ein Dateisystem (38, 38') eingetragen, wobei ein Eintrag eines Programms im Dateisystem (38, 38') zumindest Verweise (56.x, 56.x') auf Speicherblöcke (52.x, 52.x') enthält, in denen sich das Programm in einem Speicher (14) des Datenträgers (10) befindet, und die Speicherblöcke (52.x, 52.x') in ihrer Lage im Speicher (14) mit Seitenrahmen (50.x, 50.x'), die durch eine Speicherverwaltungseinheit (28) vorgegeben sind, verträglich sind, um die Ausführung des Programms an den durch den Eintrag im Dateisystem (38, 38') angegebenen Stellen im Speicher (14) zu ermöglichen. Ein Datenträger (10) und ein Computerprogrammprodukt weisen entsprechende Merkmale auf. Die Erfindung ermöglicht es, in einem Dateisystem (38, 38') eines tragbaren Datenträgers (10) gespeicherte Programme unmittelbar an ihrem Speicherort im Dateisystem (38, 38') auszuführen.In a method for memory management in a portable data carrier (10) programs are entered into a file system (38, 38 '), wherein an entry of a program in the file system (38, 38') at least references (56.x, 56.x ') contains memory blocks (52.x, 52.x ') in which the program is located in a memory (14) of the data carrier (10) and the memory blocks (52.x, 52.x') in their position in the memory (14) are compatible with page frames (50.x, 50.x ') specified by a memory management unit (28) for carrying out the execution of the program at the locations indicated by the entry in the file system (38, 38') Memory (14) to allow. A data carrier (10) and a computer program product have corresponding features. The invention makes it possible to execute programs stored in a file system (38, 38 ') of a portable data carrier (10) directly at their storage location in the file system (38, 38').

Description

Die Erfindung betrifft allgemein das Gebiet der Speicherverwaltung bei einem tragbaren Datenträger und spezieller das Gebiet der Ausführung von Programmen, die in einem Speicher des tragbaren Datenträgers enthalten sind. Ein tragbarer Datenträger im Sinne des vorliegenden Dokuments kann insbesondere eine Chipkarte (smart card) in unterschiedlichen Bauformen oder ein Chipmodul sein. Die vorliegend betrachteten Datenträger sind relativ leistungsfähig und weisen insbesondere eine Speicherverwaltungseinheit (MMU – memory management unit) auf.The This invention relates generally to the field of memory management a portable data carrier and more specifically, the field of execution of programs running in a memory of the portable data carrier are included. A portable one disk For the purposes of the present document, in particular a chip card (smart card) in different designs or a chip module. The in the present case considered data carrier are relatively powerful and in particular have a memory management unit (MMU - memory management unit).

Der Artikel "Multi-application card controllers go 32-bit" von Bernd Meier in der Zeitschrift SECURE – The Silicon Trust Report, herausgegeben von Infineon Technologies AG, Nr. 5, 2002, Seiten 32–35, verfügbar unter http://www.silicon-trust.com/pdf/secure_5/32_techno_1.pdf, beschreibt ein virtuelles Speicherverwaltungssystem für tragbare Datenträger. Der auf dem Datenträger vorhandene Speicher ist, ebenso wie ein virtueller Adreßraum, in Seiten von je 64 Byte Länge gegliedert. Eine Speicherverwaltungseinheit ordnet Seiten in einem virtuellem Adreßraum den jeweiligen Seitenrahmen im physischen Speicher zu. Programme können noch nach der Personalisierung des Datenträgers in diesen nachgeladen werden. Ein Dateisystem zur Speicherung solcher Programme und anderer Dateien ist jedoch nicht beschrieben.Of the Article "Multi-application card controllers go 32-bit "by Bernd Meier in SECURE magazine - The Silicon Trust Report, edited by Infineon Technologies AG, No. 5, 2002, pages 32-35, available at http://www.silicon-trust.com/pdf/secure_5/32_techno_1.pdf, describes a virtual storage management system for portable data carriers. Of the on the disk existing memory is, as well as a virtual address space, in Pages of 64 bytes each divided. A storage manager arranges pages in one virtual address space to the respective page frames in the physical memory. Programs can still after the personalization of the data carrier in these reloaded become. A file system for storing such programs and others However, files are not described.

Allgemein besteht bei Dateisystemen für tragbare Datenträger das Bedürfnis, die darin gespeicherten Dateien möglichst speicherplatzsparend – im Idealfall verschnittfrei – anzuordnen. Wenn eine solche nach den Kriterien des Dateisystems im Speicher angeordnete Datei jedoch ein Programm enthält, muß dieses zur Ausführung durch den Datenträger in der Regel kopiert oder verschoben werden. Dies ist erforderlich, weil die Speicherverwaltungseinheit des Datenträgers Seitenrahmen (page frames) im Speicher vorgibt, an deren Grenzen das Programm ausgerichtet sein muß, um ausgeführt werden zu können. Es wäre reiner Zufall, wenn das im Dateisystem befindliche Programm bereits die erforderliche Lage im Speicher aufweisen würde. Der zeit- und speicheraufwendige Kopier- oder Verschiebevorgang stellt einen erheblichen Nachteil dar.Generally exists for portable file systems disk the need, The files stored in it save as much memory as possible - ideally waste-free - to be arranged. If such according to the criteria of the file system in the memory arranged File contains a program, this must be for execution through the disk usually copied or moved. This is required because the storage management unit of the disk has page frames in memory pretends, at whose borders the program is aligned have to be, to run to be able to. It would be pure coincidence, if the file system is already in the program would have the required location in memory. The time and memory consuming Copy or move process is a significant disadvantage represents.

Die Erfindung hat demgemäß die Aufgabe, eine Technik zur Speicherverwaltung bei tragbaren Datenträgern zu schaffen, die es ermöglicht, in einem Dateisystem gespeicherte Programme unmittelbar an ihrem Speicherort im Dateisystem auszuführen ("execute in place"). Vorzugsweise soll die Erfindung im Zusammenhang mit den unterschiedlichsten Dateisystemen einsetzbar sein, wobei keine oder allenfalls eine geringe Anpassung des vorgesehenen Dateisystems erforderlich sein soll. Es können dann z.B. besonders zuverlässige und/oder besonders speicherplatzsparende Dateisysteme verwendet werden.The Invention accordingly has the object, a Space management technology for portable media create that makes it possible programs stored in a file system immediately at theirs Execute location in the file system ("execute in place"). Preferably, the invention in the Can be used in connection with a variety of file systems be, with no or at most a slight adjustment of the intended file system should be required. It can then e.g. particularly reliable and / or particularly space-saving file systems are used.

Erfindungsgemäß wird die genannte Aufgabe ganz oder zum Teil gelöst durch ein Verfahren gemäß Anspruch 1, einen tragbaren Datenträger gemäß Anspruch 10 sowie ein Computerprogrammprodukt gemäß Anspruch 12. Die abhängigen Ansprüche betreffen bevorzugte Ausgestaltungen der Erfindung.According to the invention said object completely or partially solved by a method according to claim 1, a portable data carrier according to claim 10 and a computer program product according to claim 12. The dependent claims relate to preferred embodiments of the invention.

Die Erfindung geht von der Grundüberlegung aus, in dem Dateisystem eingetragene Programme in Speicherblöcken abzulegen, die in ihrer Lage im Speicher mit den durch die Speicherverwaltungseinheit vorgegebenen Seitenrahmen des Speichers verträglich sind. Ein im Dateisystem eingetragenes Programm kann daher ohne Kopier- oder Verschiebevorgänge unmittelbar in den Speicherblöcken, in denen das Programm gespeichert ist, ausgeführt werden. Der Eintrag eines solchen Programms enthält zumindest Verweise auf die Speicherblöcke, in denen sich das Programm befindet; in manchen Ausgestaltungen kann der Eintrag statt der Verweise oder zusätzlich zu den Verweisen auch alle oder einige der Speicherblöcke enthalten.The Invention is based on the basic idea store programs entered in the file system in memory blocks, in their location in memory with the memory management unit given side frames of the memory are compatible. One in the file system Registered program can therefore immediately without copying or moving operations in the memory blocks, in which the program is stored. The entry of a contains such program at least references to the blocks of memory containing the program is; In some embodiments, the entry may be instead of References or additional to the references also all or some of the memory blocks included.

Die Erfindung ermöglicht somit ein "execute in place" der im Dateisystem eingetragenen Programme, ohne zwingend zu erfordern, daß alle Datenstrukturen des Dateisystems vollständig an den durch die Speicherverwaltungseinheit vorgegebenen Grenzen der Speicherrahmen ausgerichtet bzw. gerastert sind. Eine vollständige Rasterung des Dateisystems hätte insbesondere bei kleinen Dateigrößen und/oder großen Seitenrahmen den Nachteil eines erheblichen Speicherverschnitts. Zwar umfaßt die Erfindung allgemein auch solche Ausführungsformen; es werden jedoch Ausgestaltungen bevorzugt, bei denen zumindest manche Datenstrukturen des Dateisystems unabhängig von den Seitenrahmengrenzen im Speicher des Datenträgers angeordnet sind. Dies betrifft insbesondere Datenstrukturen, die nicht Bestandteil von ausführbaren Programmen sind, z.B. Verzeichnisse oder reguläre, nicht-ausführbare Dateien. Auf diese Weise läßt sich eine besonders gute Speicherplatzausnutzung erreichen.The Invention allows thus an "execute in place "in the file system registered programs without necessarily requiring that all data structures the file system completely at the limits specified by the memory management unit the memory frame are aligned or rasterized. A complete rasterization of the file system especially for small file sizes and / or huge Page frame the disadvantage of a considerable memory blending. Although included the invention also generally such embodiments; it will, however Embodiments preferred in which at least some data structures of the file system independently are arranged from the page frame boundaries in the memory of the data carrier. This concerns in particular data structures that are not part of it from executable Programs are, e.g. Directories or regular, non-executable files. In this way can be achieve a particularly good storage space utilization.

Erfindungsgemäß wird hinsichtlich des eingesetzten Dateisystems lediglich gefordert, daß das Dateisystem Einträge für Programme aufzunehmen vermag, wobei jeder Eintrag seinerseits zumindest Verweise auf Speicherblöcke enthält. In manchen Ausgestaltungen können die Einträge reguläre Dateien sein, in denen die Verweise enthalten sind. In anderen Ausgestaltungen entsprechen die Einträge dagegen internen Verwaltungsinformationen des Dateisystems.According to the invention, with regard to the file system used, it is merely required that the file system be able to record entries for programs, whereby each entry in turn contains at least references to memory blocks. In some embodiments, the entries may be regular file be in which the references are contained. In other embodiments, however, the entries correspond to internal management information of the file system.

Die Erfindung kann in so gut wie jedes bekannte Dateisystem mit allenfalls geringem Änderungsaufwand integriert werden. Hierbei sind insbesondere Dateisysteme zu nennen, die Speicherverschnitt vermeiden, weil sie mit Datenstrukturen unterschiedlicher Größe (z.B. sogenannten Extents) arbeiten.The Invention can in almost any known file system with at best low change effort to get integrated. In particular, file systems should be mentioned here, avoid the memory wastes because they are different with data structures Size (e.g. so-called extents) work.

Es können jedoch auch Dateisysteme eingesetzt werden, die rein blockorientiert arbeiten. Vorzugsweise wird ein erprobtes und als zuverlässig bekanntes Dateisystem eingesetzt.It can However, file systems are used that are purely block-oriented work. Preferably, a proven and known as reliable File system used.

Erfindungsgemäß sollen die Speicherblöcke, in denen sich die Programme im Speicher befinden, in ihrer Lage im Speicher mit den durch die Speicherverwaltungseinheit vorgegebenen Seitenrahmen (page frames) des Speichers verträglich sein. Hierbei soll unter einem "Seitenrahmen" gemäß dem üblichen Sprachgebrauch ein Bereich des realen Speichers verstanden werden, dessen Grenzen durch die Speicherverwaltungseinheit vorgegeben sind und der durch die Speicherverwaltungseinheit einem einstellbaren Bereich virtueller Adressen zugeordnet wird.According to the invention the memory blocks, in which the programs are in memory in their location in the Memory with those specified by the memory management unit Page frames of the memory to be compatible. Here is under a "page frame" according to the usual Parlance be understood an area of real memory whose limits are specified by the memory management unit and the one settable by the memory management unit Is assigned to the virtual address range.

In bevorzugten Ausgestaltungen werden die Speicherblöcke dann als verträglich mit den durch die Speicherverwaltungseinheit vorgegebenen Seitenrahmen angesehen, wenn die Grenzen jedes Speicherblocks auf Seitenrahmengrenzen fallen. Hierbei kann in manchen Ausführungsformen jeder Speicherblock mehrere Seitenrahmen vollständig enthalten. Besonders bevorzugt sind jedoch Ausgestaltungen, in denen die Speicherblöcke und die Seitenrahmen zusammenfallen, also die gleiche Größe und die gleiche Ausrichtung im Speicher aufweisen. Auch Ausführungsformen, bei denen jeder Seitenrahmen mehrere Speicherblöcke enthält, sind nicht ausgeschlossen. Hierbei muß jedoch darauf geachtet werden, daß ausführbare Programme stets in Gruppen aufeinanderfolgender Speicherblöcke abgelegt werden, weil sonst der im Speicher befindliche Programmcode nicht mit der Anordnung der Seitenrahmen verträglich wäre.In preferred embodiments, the memory blocks are then as compatible with the page frames specified by the memory management unit viewed when the boundaries of each memory block border on page borders fall. Here, in some embodiments, each memory block completely contain multiple page frames. However, embodiments are particularly preferred in which the memory blocks and the side frames coincide, so the same size and the have the same orientation in memory. Also embodiments, where each page frame contains multiple memory blocks are not excluded. Here, however, must Care should be taken to ensure that executable programs are always stored in groups of successive memory blocks, because otherwise the program code in memory is out of order the side frame compatible would.

Die Speicherblöcke, in denen die im Dateisystem eingetragenen Programme gespeichert sind, können in unterschiedlichen Ausgestaltungen in dem Dateisystem und/oder in einem gesonderten Rasterbereich enthalten sein.The Memory blocks, in which the programs entered in the file system are stored are, can in different embodiments in the file system and / or be included in a separate grid area.

Ferner kann vorgesehen sein, das gesamte Dateisystem in Speicherblöcke zu gliedern, die mit den Seitenrahmen verträglich sind. Verwaltungsinformationen des Dateisystems oder nicht-ausführbare Dateien brauchen hierbei nicht an den Blockgrenzen ausgerichtet zu werden, so daß der Verschnitt gering gehalten werden kann.Further can be provided to divide the entire file system into memory blocks, which is compatible with the side frames are. Management information of the file system or non-executable files do not need to be aligned with the block boundaries, so that the Cuttings can be kept low.

Zur Ausführung eines gespeicherten Programms wird vorzugsweise ein virtueller Adreßraum aufgebaut, indem die Speicherverwaltungseinheit auf Grundlage der im Dateisystem enthaltenen Verweise geeignet konfiguriert wird. Die Konfigurationsinformationen können in dem Hauptspeicher des Datenträgers oder ganz oder teilweise in einem separaten Cache-Bereich abgelegt werden.to execution a stored program is preferably built a virtual address space, by the storage management unit based on the file system is properly configured. The configuration information can in the main memory of the volume or stored in whole or in part in a separate cache area become.

In vorteilhaften Ausgestaltungen weist der Datenträger ein UNIX®-artiges Betriebssystem auf. Besonders bevorzugt werden ein Linux®-Betriebssystem und ein dafür vorgesehenes Dateisystem in geeignet modifizierter Form eingesetzt. Solche Dateisysteme sind z.B. unter den Namen Ext2fs, Ext3fs, ReiserFS, XFS und JFS an sich bekannt. Das Buch "Understanding the Linux Kernel" von D. P. Bovet und M. Cesati, O'Reilly Verlag, 2. Auflage, Dezember 2002, auf das hiermit verwiesen wird, enthält eine detaillierte technische Beschreibung des Linux®-Betriebssystems.In advantageous embodiments, the media has a UNIX ® -like operating system. Particular preference is given to using a Linux® operating system and a file system provided for this purpose in a suitably modified form. Such file systems are known, for example, under the names Ext2fs, Ext3fs, ReiserFS, XFS and JFS. The book "Understanding the Linux Kernel" by DP Bovet and M. Cesati, O'Reilly Verlag, 2nd edition, December 2002, incorporated herein by reference, contains a detailed technical description of the Linux® operating system.

Der erfindungsgemäße Datenträger enthält ein Dateisystem und Speicherblöcke mit ausführbaren Programmen.Of the Inventive disk contains a file system and memory blocks with executable Programs.

Das erfindungsgemäße Computerprogrammprodukt kann ein körperliches Medium mit gespeicherten Programmbefehlen sein, beispielsweise ein Halbleiterspeicher oder eine Diskette oder eine CD-ROM. Das Computerprogrammprodukt kann jedoch auch ein nicht-körperliches Medium sein, beispielsweise ein über ein Computernetzwerk übermitteltes Signal. Insbeson dere kann das Computerprogrammprodukt ein Betriebssystem oder ein Betriebssystemmodul enthalten, das im Zuge der Herstellung oder der Initialisierung oder der Personalisierung eines tragbaren Datenträgers in diesen eingebracht wird.The Computer program product according to the invention can be a physical one Medium with stored program commands, for example a Semiconductor memory or a floppy disk or a CD-ROM. The computer program product However, it can also be a non-physical one Be a medium, for example an over a computer network transmitted Signal. In particular, the computer program product may be an operating system or an operating system module included in the production or initialization or personalization of a portable data carrier in this is introduced.

In bevorzugten Ausgestaltungen weisen der Datenträger und/oder das Computerprogrammprodukt Merkmale auf, die den oben beschriebenen und/oder den in den abhängigen Verfahrensansprüchen genannten Merkmalen entsprechen.In preferred embodiments, the disk and / or the computer program product Characteristics referred to above and / or mentioned in the dependent method claims Characteristics correspond.

Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der folgenden Beschreibung mehrerer Ausführungsbeispiele und Ausführungsalternativen hervor. Es wird auf die Zeichnung verwiesen, in denen zeigen:Further Features, advantages and objects of the invention will become apparent from the following Description of several embodiments and design alternatives out. Reference is made to the drawing, in which:

1 ein Blockdiagramm eines Datenträgers mit einem Dateisystem und einem separaten Rasterbereich nach einem Ausführungsbeispiel der Erfindung, 1 a block diagram of a Datenträ gers with a file system and a separate raster area according to an embodiment of the invention,

2 ein Flußdiagramm eines Verfahrens zur Ausführung eines Programms bei einem erfindungsgemäßen Datenträger, und 2 a flowchart of a method for executing a program in a data carrier according to the invention, and

3 eine Darstellung eines Dateisystems und einer Blockbelegungstabelle in einer gegenüber 1 abgewandelten Ausführungsform. 3 a representation of a file system and a block occupancy table in one opposite 1 modified embodiment.

Der in 1 dargestellte Datenträger 10 weist auf einem einzigen Halbleiterchip einen Prozessor 12, einen Speicher 14 und eine Schnittstellenschaltung 16 zur kontaktlosen oder kontaktgebundenen Kommunikation mit einem externen Terminal (nicht gezeigt) auf.The in 1 illustrated data carrier 10 has a processor on a single semiconductor chip 12 , a store 14 and an interface circuit 16 for contactless or contact-based communication with an external terminal (not shown).

Der Speicher 14 ist in mehrere Speicherfelder unterteilt. Im vorliegenden Ausführungsbeispiel sind als Speicherfelder ein als RAM ausgestalteter Arbeitsspeicher 18, ein als ROM ausgestalteter Festwertspeicher 20 und ein als EEPROM ausgestalteter, nicht-flüchtiger Speicher 22 vorgesehen. Im Speicher 14 – und zwar teils im Festwertspeicher 20 und teils im nichtflüchtigen Speicher 22 – befindet sich Programmcode, der ein Betriebssystem 24 implementiert. Das Betriebssystem 24 ist im vorliegenden Ausführungsbeispiel eine auf den Einsatz im Datenträger 10 zugeschnittene Variante des unter der Marke Linux bekannten Betriebssystems.The memory 14 is divided into several memory fields. In the present exemplary embodiment, memory arrays are a random access memory configured as RAM 18 , a read-only memory configured as ROM 20 and a nonvolatile memory configured as an EEPROM 22 intended. In the storage room 14 - and partly in read-only memory 20 and partly in non-volatile memory 22 - is program code, which is an operating system 24 implemented. The operating system 24 is in the present embodiment, one on the use in the disk 10 tailored version of the known under the brand Linux operating system.

Der Prozessor 12 beinhaltet einen Prozessorkern 26 und eine Speicherverwaltungseinheit (MMU – memory management unit) 28. Der Prozessorkern 26 vermag über einen internen Adreßbus 30, einen externen Adreßbus 32 und einen Datenbus 34 auf den Speicher 14 zuzugreifen. Die Speicherverwaltungseinheit 28 ist zwischen den internen und den externen Adreßbus 30, 32 geschaltet, um logische Adressen, die der Prozessorkern 26 bei der Programmausführung auf den internen Adreßbus 30 ausgibt, in physische Adressen des Speichers 14 umzusetzen.The processor 12 includes a processor core 26 and a memory management unit (MMU) 28 , The processor core 26 can via an internal address bus 30 , an external address bus 32 and a data bus 34 on the memory 14 access. The storage management unit 28 is between the internal and the external address bus 30 . 32 switched to logical addresses that the processor core 26 during program execution on the internal address bus 30 returns to physical addresses of the memory 14 implement.

Die Adreßumsetzung erfolgt mit einer hardwaremäßig vorgegebenen Granularität. Die Speicherverwaltungseinheit 28 ordnet je einer Seite des virtuellen Adreßraums je eine reale Seite im Speicher 14 zu, falls eine solche reale Seite verfügbar ist. Die realen Seiten im Speicher 14 sind in einem durch die Speicherverwaltungseinheit 28 vorgegebenen Raster angeordnet. Jedes Feld in diesem Raster, also jeder Speicherbereich, der eine Speicherseite aufzunehmen vermag, wird als Seitenrahmen bezeichnet. Die Größe jedes Seitenrahmens kann z.B. 1 KByte betragen.The address translation takes place with a given granularity in terms of hardware. The storage management unit 28 assigns one real page in memory for each page of the virtual address space 14 if such a real page is available. The real pages in memory 14 are in one by the storage management unit 28 arranged predetermined grid. Each field in this grid, that is, every memory area that can accommodate a memory page, is called a page frame. The size of each page frame can be eg 1 Kbyte.

Die Abbildung virtueller Speicherseiten in die Seitenrahmen des Speichers 14 wird durch Seitenzuordnungsdaten 36 bestimmt, die in der konzeptuellen Darstellung von 1 der Speicherverwaltungseinheit 28 zugeordnet sind. Die Seitenzuordnungsdaten 36 können eine Seitentabelle oder mehrere hierarchisch gegliederte Seitentabellen aufweisen. Ferner kann ein Cache vorgesehen sein, um Zugriffe auf häufig benötigte Teile der Seitenzuordnungsdaten 36 zu beschleunigen. In unterschiedlichen Ausgestaltungen können die Seitenzuordnungsdaten 36 ganz oder teilweise im Speicher 14 oder ganz oder teilweise in einem speziellen Cache-Bereich des Prozessors 12 enthalten sein.The mapping of virtual memory pages into the page frames of the memory 14 is through page mapping data 36 determined in the conceptual presentation of 1 the storage management unit 28 assigned. The page mapping data 36 can have one page table or several hierarchically structured page tables. Further, a cache may be provided to access frequently needed portions of the page allocation data 36 to accelerate. In different embodiments, the page allocation data 36 in whole or in part in the store 14 or in whole or in part in a special cache area of the processor 12 be included.

Der nicht-flüchtige Speicher 22 enthält ein Dateisystem 38, das eine Vielzahl von Einträgen aufweist. In 1 sind als Einträge des Dateisystems 38 beispielhaft ein Verzeichnis 40 und drei Dateien 42, 44, 46 gezeigt. Das Dateisystem 38 weist im vorliegenden Ausführungsbeispiel eine an sich bekannte Struktur auf; beispielsweise kann eines der unter den Namen Ext2fs, Ext3fs, ReiserFS, XFS und JFS bekannten Systeme als Dateisystem 38 eingesetzt werden. Das Dateisystem 36 kann blockorientiert sein und z.B. eine Blockrasterung verwenden, die mit der durch die Speicherverwaltungseinheit 28 vorgegebenen Rasterung der Seitenrahmen übereinstimmt. In anderen Ausgestaltungen nutzt das Dateisystem 38 den zur Verfügung stehenden Speicherbereich dagegen ohne Rücksicht auf die Seitenrahmeneinteilung.The non-volatile memory 22 contains a file system 38 which has a large number of entries. In 1 are as entries of the file system 38 an example of a directory 40 and three files 42 . 44 . 46 shown. The file system 38 has a known structure in the present embodiment; for example, one of the systems known as Ext2fs, Ext3fs, ReiserFS, XFS, and JFS can be used as a file system 38 be used. The file system 36 may be block-oriented and may, for example, use a block rasterization similar to that used by the memory management unit 28 predetermined rasterization of the page frame matches. In other embodiments, the file system uses 38 the available memory area, however, regardless of the page frame classification.

Im nicht-flüchtigen Speicher 22 ist ferner ein Rasterbereich 48 vorgesehen, der in dem in 1 gezeigten Ausführungsbeispiel nicht Bestandteil des Dateisystems 38 ist. Der Rasterbereich 48 ist so gegliedert, daß die Rasterfelder mit den durch die Speicherverwaltungseinheit 28 definierten Seitenrahmen verträglich sind. In dem Ausführungsbeispiel von 1 entspricht jedes im Rasterbereich 48 gezeigte Feld genau einem Seitenrahmen; einige dieser Seitenrahmen sind beispielhaft mit den Bezugszeichen 50.1, 50.2, 50.3, 50.4 – im folgenden zusammenfassend mit 50.x bezeichnet – versehen.In non-volatile memory 22 is also a screen area 48 provided in the in 1 embodiment shown not part of the file system 38 is. The grid area 48 is structured so that the grids match those through the memory management unit 28 defined side frames are compatible. In the embodiment of 1 corresponds to each in the grid area 48 field shown exactly one page frame; Some of these side frames are exemplified by the reference numerals 50.1 . 50.2 . 50.3 . 50.4 - summarized below 50.x designated - provided.

Im Beispiel von 1 enthält der Speicher 14 zwei Programme, die in Speicherblöcke untergliedert und in dem Rasterbereich 48 gespeichert sind.In the example of 1 contains the memory 14 two programs, divided into memory blocks and in the grid area 48 are stored.

Die Speicherblöcke des ersten Programms sind in 1 beispielhaft durch eine senkrechte Schraffur gezeigt, und die Speicherblöcke des zweiten Programms sind durch eine waagerechte Schraffur gezeigt. Ein Speicherblock des ersten Programms, nämlich der in dem Seitenrahmen 50.2 befindliche, ist beispielhaft mit dem Bezugszeichen 52.1 versehen. Der in dem Seitenrahmen 50.4 befindliche Speicherblock des zweiten Programms trägt das Bezugszeichen 52.2. Die Speicherblöcke 52.1 und 52.2 sowie weitere Speicherblöcke, die Teile von ausführbaren Programmen enthalten, werden im folgenden zusammenfassend mit 52.x bezeichnet.The memory blocks of the first program are in 1 for example, shown by a vertical hatching, and the memory blocks of the second program are shown by a horizontal hatching. A memory block of the first program, namely the one in the page frame 50.2 located, is exemplified by the reference numeral 52.1 Mistake. The one in the page frame 50.4 located memory block of the second program carries the reference numeral 52.2 , The memory blocks 52.1 and 52.2 as well as other memory blocks containing parts of executable programs will be discussed in the fol summarize with 52.x designated.

Der Rasterbereich 48 weist im Seitenrahmen 50.1 eine Blockbelegungstabelle 54 auf, die – z.B. in Form eines Bitfeldes – angibt, welche Seitenrahmen 50.x durch Speicherblöcke 52.x belegt und welche Seitenrahmen 50.x frei sind. Die freien Seitenrahmen 50.x sind in 1 ohne Schraffur dargestellt. Die Blockbelegungstabelle 54 braucht nicht notwendigerweise an dem Seitenrahmenraster ausgerichtet zu sein; in Ausführungsalternativen ist vorgesehen, die Blockbelegungstabelle 54 außerhalb des Rasterbereichs 48 zu speichern.The grid area 48 points in the page frame 50.1 a block occupancy table 54 auf, which - eg in the form of a bit field - indicates which page frames 50.x through memory blocks 52.x occupied and which side frames 50.x are free. The free side frames 50.x are in 1 shown without hatching. The block occupancy table 54 does not necessarily have to be aligned with the side frame grid; in alternative execution is provided, the block occupancy table 54 outside the grid area 48 save.

Die Verknüpfung zwischen einem Eintrag eines ausführbaren Programms im Dateisystem 38 und den zugehörigen Speicherblöcken 52.x erfolgt über Verweise, die im Eintrag enthalten sind. So wird beispielsweise in der Darstellung von 1 der das erste Programm betreffende Eintrag durch die Datei 42 gebildet, die ihrerseits Verweise – z.B. Zeiger oder Adreßinformationen – auf die Speicherblöcke 52.x des ersten Programms enthält. So zeigt z.B. der in der Datei 42 angelegte Verweis 56.1 auf den Speicherblock 52.1 des ersten Programms im Seitenrahmen 50.2, und der in der Datei 46 enthaltene Verweis 56.2 zeigt auf den Speicherblock 52.2 des zweiten Programms im Seitenrahmen 50.4. Zusammenfassend werden die im Dateisystem 38 angelegten Verweise auf Speicherblöcke 52.x im folgenden mit 56.x bezeichnet.The link between an entry of an executable program in the file system 38 and the associated memory blocks 52.x is done through references contained in the entry. For example, in the illustration of 1 the entry concerning the first program through the file 42 which, in turn, make references - eg pointers or address information - to the memory blocks 52.x of the first program. For example, the one in the file shows 42 created reference 56.1 on the memory block 52.1 of the first program in the page frame 50.2 , and in the file 46 contained reference 56.2 points to the memory block 52.2 of the second program in the page frame 50.4 , In summary, those in the file system 38 applied references to memory blocks 52.x in the following with 56.x designated.

In dem hier beschriebenen Ausführungsbeispiel sind die Verweise 56.x in regulären Dateien des Dateisystems 38 – hier z.B. den Dateien 42 und 46 – gespeichert. Im Hinblick auf die Verwaltungsstrukturen des Dateisystems 38 besteht daher kein Unterschied zwischen diesen Dateien 42 und 46 und der Datei 44, die nicht mit einem ausführbaren Programm in Beziehung steht. Diese Ausgestaltung hat den Vorteil, daß keinerlei Besonderheiten des Dateisystems 38 berücksichtigt werden müssen. In Ausführungsalternativen kann jedoch vorgesehen sein, die Einträge im Dateisystem 38, die sich auf ausführbare Programme beziehen, nicht als reguläre Dateien anzulegen, sondern diese Einträge z.B. in Verwaltungsinformationen des Dateisystems zu integrieren.In the embodiment described here are the references 56.x in regular filesystem files 38 - here eg the files 42 and 46 - saved. With regard to the administrative structures of the file system 38 There is therefore no difference between these files 42 and 46 and the file 44 that is not related to an executable program. This embodiment has the advantage that no special features of the file system 38 must be taken into account. However, in execution alternatives, the entries in the file system may be provided 38 that are related to executable programs, do not create as regular files, but to integrate these entries eg into administrative information of the file system.

In dem bislang beschriebenen Ausführungsbeispiel stimmten die Speicherblöcke 52.x in ihrer Größe und Ausrichtung im Rasterbereich 48 genau mit den durch die Speicherverwaltungseinheit 28 vorgegebenen Seitenrahmen 50.x überein. In Ausführungsalternativen kann dagegen vorgesehen sein, daß ein Speicherblock 52.x mehrere Seitenrahmen 50.x vollständig ausfüllt. Ebenso kann vorgesehen sein, daß mehrere Speicherblöcke 52.x in einen Seitenrahmen 50.x fallen; hierbei muß jedoch durch die Verwaltung des Rasterbereichs 48 sichergestellt werden, daß solche in einem einzigen Seitenrahmen 50.x befindliche Speicherblöcke 52.x stets einen einzigen, zusammenhängenden Abschnitt des jeweiligen Programms enthalten.In the embodiment described so far, the memory blocks are true 52.x in size and orientation in the grid area 48 exactly with the memory management unit 28 given page frame 50.x match. In alternative embodiments, however, can be provided that a memory block 52.x several page frames 50.x completely filled out. Likewise, it can be provided that a plurality of memory blocks 52.x in a page frame 50.x fall; however, this must be done by managing the grid area 48 ensure that such in a single page frame 50.x located memory blocks 52.x always contain a single, coherent section of each program.

2 zeigt einen beispielhaften Ablauf, der von dem Datenträger 10 ausgeführt wird, um ein im Rasterbereich 48 enthaltenes Programm zu starten. Der Ablauf beginnt in Schritt 60 damit, daß das Betriebssystem 24 einen Befehl zur Ausführung des Programms erhält. In Schritt 62 wird der das Programm betreffende Eintrag im Dateisystem 38 geöffnet; in dem Ausführungsbeispiel von 1 ist dieser Eintrag als Verweisdatei – z.B. als Datei 42 – ausgestaltet. Die in der Verweisdatei enthaltenen Verweise 56.x werden in Schritt 64 gelesen. 2 shows an exemplary flow of the disk 10 is executed to one in the grid area 48 program to start. The process begins in step 60 with that the operating system 24 receives a command to execute the program. In step 62 becomes the entry concerning the program in the file system 38 open; in the embodiment of 1 this entry is a reference file - eg as a file 42 - designed. The references contained in the reference file 56.x be in step 64 read.

In Schritt 66 werden Seitenzuordnungsinformationen erzeugt und an die Speicherverwaltungseinheit 28 übergeben. Hierbei sind in der Regel Verarbeitungsschritte erforderlich, um aus dem Inhalt des Eintrags bzw, der Verweisdatei die Seitenzuordnungsdaten 36 in dem von der Speicherverwaltungseinheit 28 benötigten Format zu generieren. Die in Schritt 66 erwähnten Seitenzuordnungsinformationen können den unverarbeiteten Rohdaten oder den Seitenzuordnungsdaten 36 oder Zwischeninformationen, die bei der Verarbeitung anfallen, entsprechen. In besonders einfachen Ausgestaltungen enthält der Eintrag im Dateisystem 38 bereits die benötigten Seitenzuordnungsdaten 36 in einer von der Speicherverwaltungseinheit 28 unmittelbar verwendbaren Form.In step 66 page mapping information is generated and sent to the memory management unit 28 to hand over. In this case, processing steps are generally required in order to use the contents of the entry or the reference file to determine the page assignment data 36 in the memory management unit 28 to generate the required format. The in step 66 mentioned page allocation information may be the unprocessed raw data or the page allocation data 36 or intermediate information resulting from the processing. In particularly simple embodiments contains the entry in the file system 38 already the required page allocation data 36 in one of the storage management unit 28 directly usable form.

Nach dem Schließen der Verweisdatei – z.B. der Datei 42 – in Schritt 68 stellt die Speicherverwaltungseinheit 28 in Schritt 70 einen virtuellen Adreßraum für das Programm zur Verfügung. Hierbei können in manchen Ausgestaltungen weitere Verarbeitungsschritte der Seitenzuordnungsdaten 36 erfolgen, während in anderen Ausführungsformen die Speicherverwaltungseinheit 28 schon im Zusammenhang mit Schritt 66 vollständig konfiguriert wurde.After closing the reference file - eg the file 42 - in step 68 represents the storage management unit 28 in step 70 a virtual address space for the program. Here, in some embodiments, further processing steps of the page allocation data 36 while in other embodiments the memory management unit 28 already related to step 66 has been completely configured.

Die Speicherverwaltungseinheit 28 ist nun so konfiguriert, daß sie die logischen Adressen des virtuellen Adreßraums des Programms auf die entsprechenden Speicherblöcke 52.x im Rasterbereich 48 abbildet. Das Programm kann damit – ohne daß ein Kopier- oder Verschiebevorgang erforderlich wäre – unmittelbar an dem Speicherort der Speicherblöcke 52.x im Raster bereich 48 ausgeführt werden. Die Tatsache, daß das Programm im realen Adreßraum des Speichers 14 möglicherweise in Speicherblöcken 52.x vorliegt, die nicht zusammenhängen und/oder in ihrer Reihenfolge vertauscht sind, wird durch die von der Speicherverwaltungseinheit 28 vorgenommene Adreßabbildung ausgeglichen. Für das Programm kann somit, falls gewünscht, z.B. ein großer zusammenhängender Adreßraum zur Verfügung gestellt werden.The storage management unit 28 is now configured to map the logical addresses of the program's virtual address space to the appropriate memory blocks 52.x in the grid area 48 maps. The program can thus - without a copy or shift operation would be required - directly to the location of the memory blocks 52.x in the grid area 48 be executed. The fact that the program is in the real address space of the memory 14 possibly in memory blocks 52.x is present, which are not related and / or reversed in their order, by that of the memory management unit 28 made address mapping compensated. Thus, if desired, for example, a large contiguous address space can be made available to the program.

Bei dem Ausführungsbeispiel von 1 ist der Rasterbereich 48 von dem Dateisystem 38 getrennt. 3 zeigt eine Ausführungsalternative mit einem blockorientierten Dateisystem 38', das den gesamten zur Verfügung stehenden Speicherplatz einnimmt. Das gesamte Dateisystem 38' ist gemäß den durch die Speicherverwaltungseinheit 28 (1) vorgegebenen Seitenrahmen 50.1', 50.2', 50.3', 50.4', ... – allgemein mit 50.x' bezeichnet – gerastert. Jeder Seitenrahmen 50.x' im Dateisystem 38' kann, sofern er nicht leer ist, entweder Strukturen des Dateisystems 38' oder einen Speicherblock 52.1', 52.2', ... – allgemein mit 52.x' bezeichnet – eines ausführbaren Programms aufweisen.In the embodiment of 1 is the grid area 48 from the file system 38 separated. 3 shows an alternative embodiment with a block-oriented file system 38 ' that occupies all of the available storage space. The entire file system 38 ' is according to the memory management unit 28 ( 1 ) predetermined page frame 50.1 ' . 50.2 ' . 50.3 ' . 50.4 ' , ... - in general with 50.x ' designated - screened. Every page frame 50.x ' in the file system 38 ' If it is not empty, it can either be structures of the file system 38 ' or a memory block 52.1 ' 52.2 ' , ... - in general with 52.x ' - have an executable program.

Als Strukturen. des Dateisystems 38' sind in 3 beispielhaft ein Dateibaum mit einem Verzeichnis 40' und drei Dateien 42', 44', 46' dargestellt. Die Dateien 42' und 44' beziehen sich nicht auf ausführbare Programme. Diese Dateien 42', 44' werden daher gemäß der durch das Dateisystem 38' vorgesehenen Struktur angelegt. Insbesondere ist in manchen Ausgestaltungen vorgesehen, nicht-ausführbare Dateien und andere Strukturen des Dateisystems 38' – z.B. Verzeichnisse oder Verwaltungsinformationen – nicht an den Grenzen der Seitenrahmen 50.x zu orientieren, sondern sie möglichst verschnittfrei im Speicher 14 anzuordnen. Dies ist in 3 am Beispiel der Datei 42' veranschaulicht, die sich über einen zusammenhängenden Speicherbereich, welcher je einen Teil der Seitenrahmen 50.1' und 50.2' einnimmt, erstreckt.As structures. of the file system 38 ' are in 3 an example of a file tree with a directory 40 ' and three files 42 ' . 44 ' . 46 ' shown. The files 42 ' and 44 ' do not refer to executable programs. These files 42 ' . 44 ' are therefore according to the by the file system 38 ' provided structure provided. In particular, in some embodiments, non-executable files and other file system structures are provided 38 ' - eg directories or administrative information - not at the borders of the page frames 50.x to orientate, but as blended as possible in the memory 14 to arrange. This is in 3 the example of the file 42 ' illustrates that are over a contiguous memory area, each of which is a part of the page frame 50.1 ' and 50.2 ' occupies extends.

Die Datei 46' stellt einen Eintrag eines ausführbaren Programms im Dateisystem 38' dar. Wie bereits im Zusammenhang mit 1 erläutert, ist die Datei 46' als Verweisdatei ausgestaltet, die je einen Verweis 56.1', 56.2', ... – allgemein mit 56.x' bezeichnet – auf die Speicherblöcke 52.x' des ausführbaren Programms aufweist. Diese mit Programmcode belegten Speicherblöcke 52.x' sind in 1 schraffiert gezeigt; jeder Speicherblock 52.x' füllt exakt einen Seitenrahmen 50.x' des gerasterten Dateisystems 38' aus. In Ausführungsalternativen können, wie oben bereits erwähnt, die Größen der Seitenrahmen 50.x' und der Speicherblöcke 52.x' voneinander abweichen, sofern nur die Lage der Speicherblöcke 52.x' mit den vorgegebenen Grenzen der Seitenrahmen 50.x' verträglich ist.The file 46 ' Represents an entry of an executable program in the file system 38 ' As already related to 1 explains, the file is 46 ' designed as a reference file, each with a reference 56.1 ' . 56.2 ' , ... - in general with 56.x ' referred to - on the memory blocks 52.x ' of the executable program. These memory blocks occupied by program code 52.x ' are in 1 hatched shown; every memory block 52.x ' fills exactly one page frame 50.x ' the rasterized file system 38 ' out. In alternative embodiments, as mentioned above, the sizes of the page frames 50.x ' and the memory blocks 52.x ' differ only if the location of the memory blocks 52.x ' with the given limits of the page frame 50.x ' is compatible.

3 zeigt ferner eine Blockbelegungstabelle 54', deren Inhalt die beispielhafte Belegung des in 3 dargestellten Abschnitts des gerasterten Dateisystems 38' widerspiegelt. Die Blockbelegungstabelle 54' kann in dem Dateisystem 38' gespeichert oder von diesem getrennt sein. 3 also shows a block occupancy table 54 ' whose content is the exemplary occupancy of the in 3 section of the rasterized file system 38 ' reflects. The block occupancy table 54 ' can in the file system 38 ' stored or separated from it.

Diverse Abwandlungen, die oben bereits im Zusammenhang mit 1 beschrieben worden sind, lassen sich entsprechend auf das Dateisystem 38' von 3 anwenden. Insbesondere kann es vorteilhaft sein, Einträge im Dateisystem 38', die ausführbaren Programmen entsprechen, nicht als reguläre Dateien – wie z.B. die Datei 46' – anzulegen. Vielmehr können solche Einträge in den eigentlichen Dateibaum integriert werden, indem die entsprechenden Verweise 56.x' z.B. in Verwaltungsinformationen des Dateisystems 38' aufgenommen werden. Solche Verwaltungsinformationen können in manchen Ausgestaltungen sogenannte index nodes oder inodes sein.Various modifications already related above 1 have been described, can be according to the file system 38 ' from 3 apply. In particular, it may be beneficial to entries in the file system 38 ' that correspond to executable programs, not as regular files - such as the file 46 ' - create. Rather, such entries can be integrated into the actual file tree by adding the appropriate references 56.x ' eg in administrative information of the file system 38 ' be recorded. Such management information may in some embodiments be so-called index nodes or inodes.

Der Aufruf eines in dem gerasterten Dateisystem 38' von 3 gespeicherten Programms erfolgt z.B. gemäß dem oben beschriebenen und in 2 dargestellten Verfahren.Calling one in the rasterized file system 38 ' from 3 stored program is carried out, for example, according to the above-described and in 2 illustrated method.

Claims (12)

Verfahren zur Speicherverwaltung bei einem tragbaren Datenträger (10), der mindestens einen Speicher (14) sowie einen Prozessor (12) mit einer Speicherverwaltungseinheit (28) aufweist, wobei der Prozessor (12) zur Ausführung von Programmen, die in dem Speicher (14) enthalten sind, unter Verwendung der Speicherverwaltungseinheit (28) auf den Speicher (14) zuzugreifen vermag, dadurch gekennzeichnet, daß in dem Speicher (14) ferner ein Dateisystem (38, 38') verwaltet wird, in dem zumindest einige der Programme eingetragen sind, wobei ein Eintrag eines Programms im Dateisystem (38, 38') zumindest Verweise (56.x, 56.x') auf Speicherblöcke (52.x, 52.x') enthält, in denen sich das Programm im Speicher (14) befindet, und die Speicherblöcke (52.x, 52.x') in ihrer Lage im Speicher (14) mit den durch die Speicherverwaltungseinheit (28) vorgegebenen Seitenrahmen (50.x, 50.x') des Speichers (14) verträglich sind, um dem Prozessor (12) die Ausführung des Programms an den durch den Eintrag im Dateisystem (38, 38') angegebenen Stellen im Speicher (14) zu ermöglichen.Method for managing the memory of a portable data carrier ( 10 ), which has at least one memory ( 14 ) as well as a processor ( 12 ) with a memory management unit ( 28 ), wherein the processor ( 12 ) for executing programs stored in the memory ( 14 ) using the memory management unit ( 28 ) on the memory ( 14 ), characterized in that in the memory ( 14 ) a file system ( 38 . 38 ' ), in which at least some of the programs are registered, whereby an entry of a program in the file system ( 38 . 38 ' ) at least references ( 56.x . 56.x ' ) on memory blocks ( 52.x . 52.x ' ) in which the program is stored in memory ( 14 ), and the memory blocks ( 52.x . 52.x ' ) in their position in the memory ( 14 ) by the memory management unit ( 28 ) given side frames ( 50.x . 50.x ' ) of the memory ( 14 ) are compatible with the processor ( 12 ) execution of the program by the entry in the file system ( 38 . 38 ' ) specified locations in the memory ( 14 ). Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß jeder Speicherblock (52.x, 52.x'), auf den ein Eintrag eines Programms im Dateisystem (38, 38') verweist, an seinen Grenzen mit Grenzen von Seitenrahmen (50.x, 50.x') im Speicher (14), die durch die Speicherverwaltungseinheit (28) vorgegeben sind, übereinstimmt.Method according to Claim 1, characterized in that each memory block ( 52.x . 52.x ' ), to which an entry of a program in the file system ( 38 . 38 ' ), at its borders with boundaries of page frames ( 50.x . 50.x ' ) In the storage room ( 14 ) generated by the storage management unit ( 28 ) are agreed. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß die Speicherblöcke (52.x), in denen die im Dateisystem (38) eingetragenen Programme gespeichert sind, in einem von dem Dateisystem (38) getrennten Rasterbereich (48) enthalten sind.Method according to Claim 1 or Claim 2, characterized in that the memory blocks ( 52.x ), in which the file system ( 38 registered programs are stored in one of the file system ( 38 ) separate grid area ( 48 ) are included. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß das Dateisystem (38') die Speicherblöcke (52.x'), in denen die im Dateisystem (38') eingetragenen Programme gespeichert sind, enthält.Method according to Claim 1 or Claim 2, characterized in that the file system ( 38 ' ) the memory blocks ( 52.x ' ), in which the file system tem ( 38 ' ) registered programs contains. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß das Dateisystem (38, 38') mindestens eine Datenstruktur, insbesondere ein Verzeichnis (40, 40') oder eine Datei (42, 44, 46, 42', 44', 46'), aufweist, deren Lage im Speicher (14) unabhängig von den durch die Speicherverwaltungseinheit (28) vorgegebenen Seitenrahmen (50.x, 50.x') ist.Method according to one of Claims 1 to 4, characterized in that the file system ( 38 . 38 ' ) at least one data structure, in particular a directory ( 40 . 40 ' ) or a file ( 42 . 44 . 46 . 42 ' . 44 ' . 46 ' ), whose position in the memory ( 14 ) independent of the memory management unit ( 28 ) given side frames ( 50.x . 50.x ' ). Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß jeder Eintrag eines Programms im Dateisystem (38, 38') eine reguläre Datei (42, 46, 46') ist.Method according to one of Claims 1 to 5, characterized in that each entry of a program in the file system ( 38 . 38 ' ) a regular file ( 42 . 46 . 46 ' ). Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß Informationen über freie und belegte Seitenrahmen (50.x, 50.x') in einer Blockbelegungstabelle (54, 54') gespeichert werden.Method according to one of Claims 1 to 6, characterized in that information about free and occupied page frames ( 50.x . 50.x ' ) in a block occupancy table ( 54 . 54 ' ) get saved. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß zur Ausführung eines Programms der entsprechende Eintrag im Dateisystem (38, 38') ausgewertet wird, und daß auf Grundlage der in dem Eintrag enthaltenen Verweise (56.x, 56.x') die Speicherverwaltungseinheit (28) derart zum Aufbau eines virtuellen Adreßraums konfiguriert wird, daß das Programm an den durch den Eintrag angegebenen Stellen im Speicher (14) ausgeführt wird.Method according to one of Claims 1 to 7, characterized in that, for executing a program, the corresponding entry in the file system ( 38 . 38 ' ) and that, on the basis of the references contained in the entry ( 56.x . 56.x ' ) the memory management unit ( 28 ) is configured in such a way to build a virtual address space that the program at the indicated by the entry points in the memory ( 14 ) is performed. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß der Datenträger (10) ein UNIX-artiges Betriebssystem (24), insbesondere ein Linux-Betriebssystem, aufweist.Method according to one of Claims 1 to 8, characterized in that the data carrier ( 10 ) a UNIX-like operating system ( 24 ), in particular a Linux operating system. Tragbarer Datenträger (10), insbesondere Chipkarte oder Chipmodul, der mindestens einen Speicher (14) sowie einen Prozessor (12) mit einer Speicherverwaltungseinheit (28) aufweist, wobei der Prozessor (12) zur Ausführung von Programmen, die in dem Speicher (14) enthalten sind, unter Verwendung der Speicherverwaltungseinheit (28) auf den Speicher (14) zuzugreifen vermag, dadurch gekennzeichnet, daß der Speicher (14) ferner ein Dateisystem (38, 38') aufweist, in dem zumindest einige der Programme eingetragen sind, wobei ein Eintrag eines Programms im Dateisystem (38, 38') zumindest Verweise (56.x, 56.x') auf Speicher-blöcke (52.x, 52.x') enthält, in denen sich das Programm im Speicher (14) befindet, und die Speicherblöcke (52.x, 52.x') in ihrer Lage im Speicher (14) mit den durch die Speicherverwaltungseinheit (28) vorgegebenen Seitenrahmen (50.x, 50.x') des Speichers (14) verträglich sind, um dem Prozessor (12) die Ausführung des Programms an den durch den Eintrag im Dateisystem (38, 38') angegebenen Stellen im Speicher (14) zu ermöglichen.Portable data carrier ( 10 ), in particular chip card or chip module, the at least one memory ( 14 ) as well as a processor ( 12 ) with a memory management unit ( 28 ), wherein the processor ( 12 ) for executing programs stored in the memory ( 14 ) using the memory management unit ( 28 ) on the memory ( 14 ), characterized in that the memory ( 14 ) a file system ( 38 . 38 ' ) in which at least some of the programs are registered, wherein an entry of a program in the file system ( 38 . 38 ' ) at least references ( 56.x . 56.x ' ) on memory blocks ( 52.x . 52.x ' ) in which the program is stored in memory ( 14 ), and the memory blocks ( 52.x . 52.x ' ) in their position in the memory ( 14 ) by the memory management unit ( 28 ) given side frames ( 50.x . 50.x ' ) of the memory ( 14 ) are compatible with the processor ( 12 ) execution of the program by the entry in the file system ( 38 . 38 ' ) specified locations in the memory ( 14 ). Tragbarer Datenträger (10) nach Anspruch 10, dadurch gekennzeichnet, daß der Speicher (14) ferner Programmbefehle enthält, die den Prozessor (12) zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 9 veranlassen.Portable data carrier ( 10 ) according to claim 10, characterized in that the memory ( 14 ) further includes program instructions that instruct the processor ( 12 ) for carrying out a method according to any one of claims 1 to 9 cause. Computerprogrammprodukt, das maschinenlesbare Programmbefehle für einen Prozessor (12) eines tragbaren Datenträgers (10) aufweist, die den Prozessor (12) zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 9 veranlassen.Computer program product containing machine-readable program instructions for a processor ( 12 ) of a portable data carrier ( 10 ), which is the processor ( 12 ) for carrying out a method according to any one of claims 1 to 9 cause.
DE2003129145 2003-06-27 2003-06-27 Memory management with a portable data carrier Ceased DE10329145A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE2003129145 DE10329145A1 (en) 2003-06-27 2003-06-27 Memory management with a portable data carrier
EP04740272A EP1642245A1 (en) 2003-06-27 2004-06-24 Memory management in a portable data carrier
PCT/EP2004/006859 WO2005001780A1 (en) 2003-06-27 2004-06-24 Memory management in a portable data carrier

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2003129145 DE10329145A1 (en) 2003-06-27 2003-06-27 Memory management with a portable data carrier

Publications (1)

Publication Number Publication Date
DE10329145A1 true DE10329145A1 (en) 2005-02-10

Family

ID=33546696

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2003129145 Ceased DE10329145A1 (en) 2003-06-27 2003-06-27 Memory management with a portable data carrier

Country Status (3)

Country Link
EP (1) EP1642245A1 (en)
DE (1) DE10329145A1 (en)
WO (1) WO2005001780A1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754817A (en) * 1994-09-29 1998-05-19 Intel Corporation Execution in place of a file stored non-contiguously in a non-volatile memory
DE19723676A1 (en) * 1997-06-05 1998-08-27 Siemens Ag Chip-card program reloading e.g. for customer use under field conditions
US6574747B2 (en) * 2000-06-02 2003-06-03 Microsoft Corporation Extensible execute in place (XIP) architecture and related methods

Also Published As

Publication number Publication date
EP1642245A1 (en) 2006-04-05
WO2005001780A1 (en) 2005-01-06

Similar Documents

Publication Publication Date Title
DE3780807T2 (en) METHOD FOR QUICKLY OPENING DISK FILES IDENTIFIED WITH PATH NAMES.
DE68925412T2 (en) Filesystem
DE102005019842B4 (en) System and method for sequentially writing data to a flash memory
DE69029210T2 (en) Administrative method and device for data storage
EP0096079B1 (en) Process for preparing dot screen data for character and/or picture representations
DE102006005876A1 (en) A flash memory controller, a flash memory controller, a flash memory system, and a flash memory map data managing method
DE4218025A1 (en) DATA STORAGE MANAGEMENT SYSTEM AND METHODS OF MEMORY ASSIGNMENT BASED ON SEVERAL SERVICE CLASSES
DE68923433T2 (en) Setup and method for arranging read-only memories in a computer memory area.
DE69027017T2 (en) Arrangement and method for memory management in a microcomputer
DE1499182A1 (en) Electrical data processing system
DE2926322C2 (en) Storage subsystem
DE60105632T2 (en) METHOD AND DEVICE FOR PRODUCING ASSOCIATED FONT
DE602004008240T2 (en) Method for managing defective memory blocks in a non-volatile memory and non-volatile memory for carrying out the method
DE3586447T2 (en) COMPRESSION OF BINARY NUMBERS FOR YOUR STORAGE.
DE102008047915B4 (en) Infotainment system and computer program product
DE19645128A1 (en) Computer based document processing system
EP1352318B1 (en) Microprocessor circuit for portable data carriers
DE10120615B4 (en) Dynamic memory management for objects of different sizes
CH495584A (en) Data processing system
DE10209803A1 (en) Method and apparatus for providing file system access to a disk array
DE10329145A1 (en) Memory management with a portable data carrier
DE112015003923T5 (en) Overlayed delete block assignment
DE3882100T2 (en) Device for carrying out a search process in a topological representation of a geographical connection network.
EP1673743B1 (en) Accessing data elements in a portable data carrier
DE10343328A1 (en) Method for mapping a hierarchical technical system into a relational database

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final

Effective date: 20130305