DE102008036479A1 - Speicherverwaltung in einem portablen Datenträger - Google Patents

Speicherverwaltung in einem portablen Datenträger Download PDF

Info

Publication number
DE102008036479A1
DE102008036479A1 DE200810036479 DE102008036479A DE102008036479A1 DE 102008036479 A1 DE102008036479 A1 DE 102008036479A1 DE 200810036479 DE200810036479 DE 200810036479 DE 102008036479 A DE102008036479 A DE 102008036479A DE 102008036479 A1 DE102008036479 A1 DE 102008036479A1
Authority
DE
Germany
Prior art keywords
memory
heap
area
free
memory area
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
DE200810036479
Other languages
English (en)
Inventor
Georg Kramposthuber
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 DE200810036479 priority Critical patent/DE102008036479A1/de
Priority to ES09009987T priority patent/ES2407632T3/es
Priority to EP20090009987 priority patent/EP2151761B1/de
Publication of DE102008036479A1 publication Critical patent/DE102008036479A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Bei einem Verfahren in einem portablen Datenträger (10) mit einem volatilen Speicher (50) und einer dynamischen Speicherverwaltung (44) eines Heap-Speicherbereichs (51) des volatilen Speichers (50) kann die Speicherverwaltung (44) zum Bereitstellen von Freispeicher eine automatische Speicherbereinigung des Heap-Speicherbereichs (51) durchführen. Während einer Ausführung einer laufzeitkritischen Prozessoperation auf dem Datenträger (10) wird die automatische Speicherbereinigung von der Speicherverwaltung (44) jedoch deaktiviert (S1), wobei auf Anforderung der laufzeitkritischen Prozessoperation (S2) Freispeicher innerhalb eines die laufzeitkritische Ausführung der Prozessoperation nicht beeinträchtigenden Zeitintervalls bereitgestellt werden kann (S3-S12).

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zur dynamischen Speicherverwaltung eines Heap-Speicherbereichs eines portablen Datenträgers sowie einen portablen Datenträger mit einer derartigen Speicherverwaltung.
  • Portable Datenträger, z. B. Chipkarten, Mobilfunkkarten oder dergleichen, besitzen bauartbedingte lediglich geringe volatile Speicherressourcen, z. B. in einen volatilen RAM-Arbeitsspeicher, die von einer Speicherverwaltung des Datenträgers den jeweiligen nebenläufig ausgeführten Prozessen zugeteilt werden. Hierbei wird der während der Laufzeit von einem Prozess angeforderte Freispeicher in einem Heap-Speicherbereich des volatilen Speichers möglichst zusammenhängend bereitgestellt und der von einem Prozess nicht mehr benötigte Speicher wird freigegeben, um anschließend anderen Prozessen wieder als Freispeicher zu Verfügung zu stehen. Insofern konkurrieren die nebenläufigen Prozesse um den begrenzten Freispeicher des Heap-Speicherbereichs.
  • Das kontinuierliche Zuteilen und Freigeben von Freispeicher durch die Speicherverwaltung ist einerseits mit einer fortschreitenden Fragmentierung des Heap-Speicherbereichs verbunden, der jedoch mit einer Defragmentierung bzw. Kompaktierung begegnet werden kann. Andererseits müssen diejenigen Speicherobjekte im Heap-Speicherbereich gefunden und freigegeben werden, die von den betreffenden Prozessen nicht mehr benötigt werden.
  • Beide Aufgaben werden üblicherweise von einer automatischen Speicherbereinigung („Garbage Collection”) des Heap-Speicherbereichs übernommen, die regelmäßig oder bedarfsweise von der Speicherverwaltung des Datenträgers durchgeführt wird. Da der Umfang der Speicherbereinigung jedoch unter anderem von der Größe und dem Fragmentierungsgrad des Heap-Speicherbereichs abhängt, ist in der Regel weder der Zeitpunkt noch die Zeitdauer der Speicherbereinigung vorhersagbar. Die Speicherbereinigung kann auch die Prozessausführung unterbrechen, z. B. wenn ein Prozess Freispeicher anfordert, der erst durch eine Speicherbereinigung geschaffen werden muss. Eine derartige unvorhersehbare Unterbrechung der Prozessausführung ist insbesondere bei Prozessen mit laufzeitkritischen Prozessoperationen unerwünscht, wie z. B. bei der Kommunikation eines portablen Datenträgers mit einem Lesegerät oder dergleichen. Derartige Situationen treten jedoch bei den begrenzten Heap-Speicherbereichen portabler Datenträger vielfach auf, so dass hier häufige Speicherbereinigungen notwendig sind.
  • In diesem Zusammenhang offenbart die US 2001/0023478 A1 eine unterbrechbare Speicherbereinigung, die nach der Unterbrechung fortgesetzt und abgeschlossen werden kann, indem auf Statusinformationen der unterbrochenen Speicherbereinigung zurückgegriffen wird. Die WO 2005/045683 offenbart ebenfalls eine unterbrechbare Speicherbereinigung, die jedoch abschnittsweise ausgeführt werden kann, z. B. innerhalb des für die Beantwortung eines externen Kommandos zur Verfügung stehenden Antwortzeitintervalls. Dadurch werden Kommunikationsfehler aufgrund von Antwortverzögerungen vermieden. Eine derartige Unterbrechung und Fortsetzung einer automatischen Speicherbereinigung erfordert jedoch spezielle Verwaltungsstrukturen und -prozesse, die die beschränkten Ressourcen eines portablen Datenträgers zusätzlich belasten.
  • Schließlich offenbart die DE 100 40 974 A1 eine virtuelle Vergrößerung eines volatilen Stapelspeicherbereichs eines portablen Datenträgers durch Auslagern von Stapelspeicherobjekten in einen nicht-volatilen Speicher. Das Problem der Verzögerung laufzeitkritischer Prozessoperationen durch eine Speicherbereinigung im Heap-Speicherbereich wird dadurch nicht gelöst.
  • Es ist demnach die Aufgabe der vorliegenden Erfindung, ein Verfahren zur dynamischen Verwaltung eines Heap-Speicherbereichs vorzuschlagen, das die genannten Nachteile der automatischen Speicherbereinigung vermeidet.
  • Diese Aufgabe wird erfindungsgemäß durch ein Verfahren und einen portablen Datenträger mit den Merkmalen der unabhängigen Ansprüche gelöst. Die davon abhängigen Ansprüche beschreiben vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung.
  • Die vorliegende Erfindung basiert auf dem Grundgedanken, die automatische Speicherbereinigung auf dem Datenträger während der Laufzeit einer laufzeitkritischen Prozessoperation temporär auszusetzen bzw. derart zu deaktivieren, dass die Speicherbereinigung während der Laufzeit der betreffenden Prozessoperation nicht gestartet wird. Sofern die betreffende Prozessoperation während der Deaktivierung der Speicherbereinigung Freispeicher in einer Größe anfordert, die aus dem Heap-Speicherbereich zunächst nicht zu befriedigen ist, wird der angeforderte Freispeicher innerhalb eines derart kurzen Zeitintervalls anderweitig (d. h. nicht durch eine Speicherbereinigung) bereitgestellt, dass das Laufzeitverhalten der laufzeitkritischen Prozessoperation nicht beeinträchtigt wird. Insbesondere wird der Freispeicher der laufzeitkritischen Prozessoperation innerhalb eines kürzeren Zeitintervalls zugeteilt, als es durch die Speicherbereinigung möglich wäre.
  • Diese kurzfristige Bereitstellung von Freispeicher für laufzeitkritische Prozessoperationen in einem laufzeitoptimierten Modus alternativ zu der herkömmlichen automatischen Speicherbereinigung ist insbesondere so ausgestaltet, dass der angeforderte Freispeicher innerhalb eines hinreichend genau vorhersagbaren Zeitintervalls bereitgestellt wird, so dass bereits bei Absetzen einer Freispeicheranfrage durch die laufzeitkritische Prozessoperation sichergestellt ist, dass die Zuteilung so rechtzeitig erfolgen kann, dass das Laufzeitverhalten der Prozessoperation nicht beeinträchtigt wird.
  • Im Gegensatz zu der automatischen Speicherbereinigung, die zu weitgehend unvorhersagbaren Unterbrechungen einer Prozessoperation führen kann, da die Zeitdauer der Unterbrechung von nicht ohne weiteres beeinflussbaren Parametern abhängt, wie z. B. der Größe des zu bereinigenden Heap-Speicherbereichs, des Fragmentierungsgrads oder den nicht mehr benötigten Speicherobjekten, liegt das Zeitintervall zur Bereitstellung von Freispeicher im Rahmen des laufzeitoptimierten Modus unterhalb einer kritischen Schwelle, ab der eine Beeinträchtigung des Laufzeitverhaltens einer zeitkritischen Prozessoperation zu erwarten ist. Ein besonderer Verwaltungsaufwand für die Speicherverwaltung oder ein Betriebssystem des Datenträgers ist damit nicht verbunden.
  • Ein erfindungsgemäßes Verfahren in einem portablen Datenträger mit einem dynamisch verwalteten Heap-Speicherbereich in einem volatilen Speicher, bei dem eine Speicherverwaltung zum Bereitstellen von Freispeicher eine automatische Speicherbereinigung des Heap-Speicherbereichs durchführen kann, besteht insofern aus den folgenden Schritten:
    • – Deaktivieren der automatischen Speicherbereinigung des Heap-Speicherbereichs durch die Speicherverwaltung während der Ausfüh rung einer laufzeitkritischen Prozessoperation durch einen Prozessor des Datenträgers und Aktivieren eines laufzeitoptimierten Modus;
    • – Bereitstellen von Freispeicher für die laufzeitkritische Prozessoperation ohne die laufzeitkritische Ausführung der Prozessoperation zu beeinträchtigen, sofern eine Freispeicheranforderung der Prozessoperation im Rahmen des laufzeitoptimierten Modus ergeht; und
    • – Deaktivieren des laufzeitoptimierten Modus und Aktivieren der automatischen Speicherbereinigung nach Beendigung der laufzeitkritischen Prozessoperation.
  • Entsprechend umfasst ein erfindungsgemäßer Datenträger einen Prozessor, einen volatilen Speicher mit einem darin eingerichteten Heap-Speicherbereich, ein Betriebssystem mit einer Speicherverwaltung sowie zumindest eine auf dem Prozessor als Prozess ausführbare Applikation, wobei die Speicherverwaltung eine automatische Speicherbereinigung des Heap-Speicherbereichs regelmäßig oder bedarfsweise durchführen kann, um ausreichenden Freispeicher zur Zuteilung an Prozessoperationen zu schaffen. Im Zusammenhang mit der Ausführung laufzeitkritischer Prozessoperation ist die Speicherverwaltung eingerichtet, die automatische Speicherbereinigung für die Dauer der Ausführung der laufzeitkritischer Prozessoperation zu deaktivieren und in einen laufzeitoptimierten Modus umzuschalten, und bei Empfang einer Freispeicheranforderung in dem laufzeitoptimierten Modus den angeforderten Freispeicher innerhalb eines die laufzeitkritische Ausführung der Prozessoperation nicht beeinträchtigenden Zeitintervalls bereitstellt.
  • Der in dem laufzeitoptimierten Modus angeforderte Freispeicher wird unter Einbeziehung eines Speicherbereichs außerhalb des Heap-Speicherbereichs bereitgestellt, z. B. unter Einbeziehung eines von dem Heap-Speicherbereich verschiedenen Speicherbereichs des volatilen Speichers oder eines Speicher bereich eines von dem volatilen Speicher verschiedenen Speichers des Datenträgers. Die Bereitstellung von Freispeicher in dem laufzeitoptimierten Modus erfolgt durch einfache Schreib-/Leseoperationen in diesem von dem Heap-Speicherbereich verschiedenen Speicherbereich. Derartige Schreib-/Leseoperationen sind weitgehend unabhängig von der Größe des betreffenden von dem Heap-Speicherbereich verschiedenen Speicherbereichs bzw. von seinem Fragmentierungsgrad und können innerhalb eines nahezu konstanten und vorhersagbaren Zeitintervalls durchgeführt werden, das im Wesentlichen von der Schreib-/Lesegeschwindigkeit des betreffenden Speicherbereichs abhängt.
  • Gemäß einer ersten Ausführungsform kann in dem laufzeitoptimierten Modus angeforderter Freispeicher von der Speicherverwaltung einerseits in einem von dem Heap-Speicherbereich verschiedenen Speicherbereich des volatilen Speichers und andererseits in einem Speicherbereich eines von dem volatilen Speicher verschiedenen Speichers des Datenträgers bereitgestellt werden. So kann der angeforderte Freispeicher beispielsweise in einem Stapelspeicherbereich des volatilen Speichers oder in einem persistenten Heap-Speicherbereich dem persistenten Speicher des Datenträgers bereitgestellt werden. Dadurch wird ein virtueller Heap-Speicherbereich eingerichtet, der den regulären (volatilen) Heap-Speicherbereich sowie den von dem Heap-Speicherbereich verschiedenen Speicherbereich in dem volatilen Speicher oder in dem von dem volatilen Speicher verschiedenen Speicher des Datenträgers umfasst.
  • Ebenso kann gemäß einer zweiten Ausführungsform der in dem laufzeitoptimierten Modus angeforderte Freispeicher in dem Heap-Speicherbereich bereitgestellt werden, indem ein oder mehrere in dem Heap-Speicherbereich abgelegte Speicherobjekte in einen von dem Heap-Speicherbereich verschie denen Speicherbereich des volatilen Speichers oder eines von dem volatilen Speicher verschiedenen Speichers des Datenträgers ausgelagert werden und der dadurch in dem Heap-Speicherbereich entstehende Freispeicher zugeteilt wird. Vorzugsweise wird der angeforderte Freispeicher in dem Heap-Speicherbereich durch Auslagern eines Speicherobjekts in den Stapelspeicherbereich des volatilen Speichers oder durch Auslagern in einen persistenten Heap-Speicherbereich des persistenten Speichers des Datenträgers bereitgestellt. Faktisch wird auch bei dieser Ausführungsform ein virtueller Heap-Speicherbereich eingerichtet, der aus dem bestehenden Heap-Speicherbereich und demjenigen von dem Heap-Speicherbereich verschiedenen Speicherbereich besteht, in den das Speicherobjekt bzw. die Speicherobjekte ausgelagert wurden.
  • Gemäß einer besonders bevorzugten Ausführungsform werden die Varianten der Freispeicherbereitstellung gemäß der ersten und zweiten Ausführungsform von der Speicherverwaltung nacheinander durchgeführt, beispielsweise derart, dass ein im laufzeitoptimierten Modus angeforderter Freispeicher erst dann durch Auslagern eines oder mehrerer Speicherobjekte aus dem Heap-Speicherbereich (gemäß der zweiten Ausführungsform) bereitgestellt wird, wenn der angeforderte Freispeicher nicht aus dem von dem Heap-Speicherbereich verschiedenen Speicherbereich des volatilen Speichers oder des von dem volatilen Speicher verschiedenen Speichers des Datenträgers zusammenhängend (gemäß der ersten Ausführungsform) zugeteilt werden kann. Die Speicherverwaltung prüft also bei einer Freispeicheranfrage einer laufzeitkritischen Prozessoperation zunächst, ob z. B. in dem Stapelspeicherbereich des volatilen Speichers oder in einem persistenten Heap-Speicherbereich des persistenten Speichers des Datenträgers ein ausreichend großer zusammenhängender Freispeicher vorliegt. Falls dies der Fall ist, wird der Freispeicher der anfordernden Prozessoperation zugeteilt. Andern falls werden ein oder mehrere in dem Heap-Speicherbereich vorliegende Speicherobjekte derart in den Stapelspeicherbereich oder den persistenten Heap-Speicherbereich ausgelagert, dass in dem volatilen Heap-Speicherbereich ein ausreichend großer zusammenhängender Freispeicher entsteht, der der anfordernden Prozessoperation zugeteilt werden kann.
  • Die Auswahl des auszulagernden Speicherobjekts durch die Speicherverwaltung kann basierend auf vorgegebenen Heuristiken erfolgen. Vorzugsweise wird von der Speicherverwaltung ein einzelnes Speicherobjekt ausgewählt, dessen Größe – eventuell zusammen mit etwaigen angrenzenden Freispeicherbereichen – zumindest der Größe des angeforderten Freispeichers entspricht. Vorzugsweise wird ein Speicherobjekt ausgewählt, dessen Größe ein Vielfaches einer Speicherseitengröße bzw. Kachelgröße des von dem Heap-Speicherbereich verschiedenen Speicherbereichs umfasst, da auf diese Weise eine möglichst effiziente und schnelle Auslagerung gewährleistet wird.
  • Der im Falle einer Zuteilung des angefordertem Freispeichers aus dem Heap-Speicherbereich dort noch verbleibende Freispeicher wird von der Speicherverwaltung geeignet markiert oder anderweitig für eine nachfolgende Bereitstellung von Freispeicher in dem laufzeitoptimierten Modus bei einer weiteren Freispeicheranforderung durch eine laufzeitkritische Prozessoperation registriert.
  • Sofern die Speicherverwaltung zur Bereitstellung von in dem laufzeitoptimierten Modus angefordertem Freispeicher einen virtuellen Heap-Speicher einrichtet, der den bestehenden Heap-Speicherbereich im volatilen Speicher um Anteile eines anderen Speicherbereichs des volatilen Speichers, z. B. des Stapelspeicherbereichs, oder um einen persistenten Heap-Speicherbereich erweitert, wird in diesem erweiterten Heap-Speicher vorzugsweise eine Heap-Speicherstruktur derart eingerichtet, dass ein zu einem Prozess gehöriges ausgelagertes Speicherobjekt zur Ausführung des Prozesses durch den Prozessor ohne weiteres in derselben Weise verfügbar ist, wie ein entsprechendes im volatilen Heap-Speicherbereich vorliegendes Speicherobjekt. Es wird also eine transparente, logische Heap-Speicherstruktur in dem gesamten virtuellen Heap-Speicher eingerichtet.
  • Vorzugsweise erkennt die Speicherverwaltung bzw. eine mit der Speicherverwaltung im Zusammenhang stehende Steuereinrichtung des Datenträgers, wenn eine laufzeitkritische Prozessoperation gestartet wird, um dann unmittelbar die automatische Speicherbereinigung zu deaktivieren und in den laufzeitoptimierten Modus umzuschalten. Ebenso wird vorzugsweise automatisch erkannt, wenn die betreffende laufzeitkritische Prozessoperation beendet wird. Die Speicherverwaltung bzw. die entsprechende Steuereinrichtung erkennt dann automatisch das Vorliegen von vorgegebenen Laufzeitbedingungen einer laufzeitkritischen Prozessoperation, z. B. die Kommunikation über eine kontaktlose Schnittstelle, die Abarbeitung laufzeitkritischer Kommandos oder dergleichen. Ebenso ist es möglich, dass die Speicherverwaltung eine zeitkritische Prozessoperation nicht eigenständig erkennt, sondern extern veranlasst wird, die automatische Speicherbereinigung zu deaktivieren und in den laufzeitoptimierte Modus umzuschalten. Beispielsweise kann dies von anderen nebenläufig ausgeführten Applikationsprozessen oder Betriebssystemroutinen über eine geeignete Programmierschnittstelle der Speicherverwaltung veranlasst werden.
  • Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung von erfindungsgemäßen Ausführungsbeispielen sowie weiteren Ausführungsalternativen im Zusammenhang mit den beiliegenden Zeichnungen, die zeigen:
  • 1 eine bevorzugte Ausführungsform eines erfindungsgemäßen Datenträgers; und
  • 2 eine erfindungsgemäße Speicheranordnung in einem virtuellen Heap-Speicherbereich; und
  • 3 ein schematisches Ablaufdiagramm eines bevorzugten erfindungsgemäßen Verfahrens auf einem Datenträger gemäß 1.
  • Mit Bezug auf 1 umfasst ein portabler Datenträger 10, der hier als Chipkarte ausgebildet ist, eine Datenkommunikationsschnittstelle 20, einen Prozessor 30 (CPU) und verschiedene Speicher 40, 50 und 50. Der Datenträger 10 kann auch in anderer Gestalt ausgebildet sein, z. B. als USB-Token, sichere Multimediakarte, Mobilfunkkarte oder dergleichen.
  • Die Datenkommunikationsschnittstelle 20 ist als Kontaktfeld gemäß ISO 7816 ausgebildet und dient zur Kommunikation mit einer externen Datenverarbeitungsvorrichtung (nicht dargestellt), z. B. einem Kartenterminal, sowie zur Energieversorgung des Datenträgers 10. Alternativ kann der Datenträger 10 über eine eigene Energieversorgung (nicht dargestellt) verfügen, z. B. über eine Batterie. Auch andere kontaktbehaftete Schnittstellen können vorgesehen sein. Alternativ oder zusätzlich kann auch eine Kontaktlos-Datenkommunikationsschnittstelle (nicht dargestellt), zur kontaktlosen Datenkommunikation vorgesehen sein, z. B. eine Antenne.
  • In dem persistenten, nicht-wiederbeschreibbaren ROM-Speicher 40 liegt ein Multitasking- bzw. Multithreading-fähiges Betriebssystem 42, das den Datenträger 10 steuert, vorzugsweise basierend auf Java bzw. Java-Card oder repräsentiert oder ergänzt durch eine virtuelle Maschine. Das Betriebssystem 42 umfasst eine Speicherverwaltung 44 zum Verwalten der Speicherressourcen des Datenträgers 10, insbesondere zum Verwalten von zur Laufzeit von den auf dem Prozessor 30 nebenläufig ausgeführten Prozessen in dem volatilen RAM-Speicher 50 angelegten Speicherobjekten. Der RAM-Speicher 50 dient dem Datenträger 10 als volatiler Arbeitsspeicher.
  • Das Betriebssystem 42 oder Teile davon, wie z. B. die Speicherverwaltung 44, kann alternativ auch in dem wiederbeschreibbaren Flash-Speicher 60 vorliegen, der alternativ auch als EEPROM-Speicher oder dergleichen ausgebildet sein kann. In dem Flash-Speicher 60 ist eine Applikation 64 gespeichert, welche von dem Prozessor 30 als Applikationsprozess ausgeführt werden kann, der mehrere nebenläufig ausgeführte „Threads” (so genannte leichtgewichtige Prozesse) umfassen kann, die wiederum bestimmte Prozessoperationen abarbeiten. Allgemein dient der Flash-Speicher 60 dem Datenträger 10 zum persistenten Speichern von Daten, wie sie beispielsweise beim Ausführen von Applikationsprozessen anfallen.
  • Beim Erzeugen und Ausführen von Applikationsprozessen durch den Prozessor 30 teilt die Speicherverwaltung 44 den einzelnen Prozessen/Threads Speicherressourcen des volatilen RAM-Speichers 50 zu. Für Speicherobjekte, die durch einen Prozess/Thread während dessen Laufzeit dynamisch erzeugt werden, verwaltet die Speicherverwaltung 44 einen Heap-Speicherbereich 51 (V-Heap) im volatilen Speicher 50. Dieser volatile Heap-Speicherbereich 51 ist auch in 2 angedeutet. Die dort schraffiert dargestellten Flächen repräsentieren die durch Speicherobjekte von ausgeführten Prozessen belegten Speicherabschnitte des volatilen Heap-Speicherbereichs 51.
  • In dem Stapelspeicherbereich 52 (Stack) verwaltet die Speicherverwaltung 44 Stapelspeicher („Stacks”) für die nebenläufig ausgeführten Prozesse. Die Größen der Heap- und Stapelspeicherbereiche 51, 52 sind nicht durch statische Vorgaben beschränkt, d. h. beide Speicherbereiche werden in Reaktion auf Freispeicheranforderungen der ausgeführten Prozesse von der Speicherverwaltung 44 dynamisch verwaltet. Hierbei kann es, wie in 2 angedeutet, vorkommen, dass ein Prozess einen Freispeicher A in einer Größe anfragt, die in dem volatilen Heap-Speicherbereich 51 zwar nicht zusammenhängend vorliegt, jedoch als Summe mehrerer kleinerer Freispeicherbereiche vorhanden ist. Sofern der Prozess bzw. die den Freispeicher anfordernde Prozessoperation nicht laufzeitkritisch ist, kann der angeforderte Freispeicher A durch eine herkömmliche Speicherbereinigung des volatilen Heap-Speicherbereichs 51 bereitgestellt werden, indem eine Kompaktierung durch „Zusammenschieben” eine ausreichend großen zusammenhängenden Freispeicher schafft. Da hierbei der gesamte volatilen Heap-Speicherbereich 51 bereinigt bzw. kompaktiert wird, ist die Speicherbereinigung ein verhältnismäßiges zeitintensives Verfahren, das eine Bearbeitungszeit von einigen 100 ms besitzen kann.
  • Jedoch kann es vorkommen, dass bei der Ausführung der Applikation 64 als Applikationsprozess bestimmte Operationen dieses Prozesses bzw. seiner Threads besonders laufzeitkritisch sind und zur erfolgreichen Abarbeitung nicht durch die automatische Speicherbereinigung unterbrochen werden dürfen. Derartige laufzeitkritische Prozessoperationen betreffen insbesondere Kommunikationsvorgänge mit externen Geräten, z. B. die kontaktlose oder kontaktbehaftete Datenkommunikation über geeignete Datenkommunikationsprotokolle, oder auch Zugriffe auf statische Web-Daten.
  • Deshalb führt die Speicherverwaltung 44 bei einer Freispeicheranfrage einer laufzeitkritischen Prozessoperationen gerade keine automatische Speicherbereinigung durch, sondern deaktiviert diese und schaltet stattdessen in einen alternativen, laufzeitoptimierten Modus um, in dem die Freispeicheranfrage der zeitkritischen Prozessoperation schneller als durch die Speicherbereinigung des volatilen Heap-Speicherbereichs 51 und ohne Beeinträchtigung des Laufzeitverhaltens des laufzeitkritischen Prozesses befriedigt werden kann.
  • In dem laufzeitoptimierten Modus stehen der Speicherverwaltung zumindest zwei alternative Speicherbereitstellungsverfahren zur Verfügung, mit denen einer anfordernden Prozessoperation kurzfristig der gewünschte Freispeicher bereitgestellt werden kann. Bei einem ersten Speicherbereitstellungsverfahren wird ein angeforderter und im Heap-Speicherbereich 51 nicht vorhandener zusammenhängender Freispeicher in dem volatilen Stapelspeicherbereich 52 oder in einem persistenten Heap-Speicherbereich 61 (P-Heap) im Flash-Speicher 60 angelegt und bereitgestellt. Beispielsweise kann im Stapelspeicherbereich 52 zwischen zwei Stapelspeicherrahmen ein Freispeicher bereitgestellt werden.
  • Gemäß dem zweiten Speicherbereitstellungsverfahren wird der angeforderte Freispeicher im Heap-Speicherbereich 51 geschaffen, indem ein dort befindliches Speicherobjekt C in den volatilen Stapelspeicherbereich 52 oder in einen persistenten Heap-Speicherbereich 61 ausgelagert wird. Diesen Prozess illustriert 2. Der angeforderte Freispeicher A liegt in dem Heap-Speicherbereich 51 nicht in zusammenhängender Weise vor. Deshalb wird ein Speicherobjekt C aus dem volatilen Heap-Speicherbereich 51 in einen ausreichend großen Freispeicherbereich B in dem Stapelspeicherbereich 52 oder in dem persistenten Heap-Speicherbereich 61 ausgelagert, so dass der dadurch in dem Heap-Speicherbereich 51 entstehende Freispeicher D ausreichend groß zur Befriedigung der Freispeicheranforderung A des laufzeitkritischen Prozesses ist.
  • Bei der Auslagerung eines Speicherobjekts C in einen ausreichend großen Freispeicher B des Stapelspeicherbereichs 52 oder des persistenten Heap-Speicherbereichs 61 wird ein Speicherobjekt C geeigneter Größe ausgewählt, so dass zumindest die Speicheranforderung A der laufzeitkritischen Prozessoperation erfüllt werden kann. Insbesondere werden Speicherobjekte C ausgewählt und ausgelagert, die wesentlich größer als der angeforderte Freispeicher A sind und möglicherweise ein vielfaches einer Speicherseite bzw. Speicherkachel des Auslagerungsspeicherbereichs im Stapelspeicher 52 oder im persistenten Speicher 60 umfassen, z. B. 128 Bytes bei einem persistenten EEPROM-Speicher 60. Dadurch wird im Heap-Speicherbereich 51 ein möglichst großer Freispeicher D bei gleichbleibender Programmierzeit des persistenten Speichers 60 geschaffen. Ein eventuelle überschüssiger Freispeicher D – A nach Zuteilung des Freispeichers A in dem Freispeicherbereich D wird von der Speicherverwaltung 44 markiert oder registriert und bei einer weiteren Freispeicheranforderung einer zeitkritischen Prozessoperation zugeteilt.
  • Bei jedem der beiden Speicherbereitstellungsverfahren entsteht ein virtueller Heap-Speicher 53, bestehend aus dem volatilen Heap-Speicherbereich 51 zuzüglich eines Anteils im Stapelspeicherbereich 52 oder des persistenten Heap-Speicherbereichs 61, der entweder zur direkten Zuteilung an eines anfragende laufzeitkritische Speicheroperation oder zur Auslagerung eines Speicherobjekts C aus dem Heap-Speicherbereich 51 genutzt wird. In dem gesamten virtuellen Heap-Speicher 53 wird einheitlich eine transparente logische Heap-Speicherstruktur eingerichtet, so dass in den Stapelspeicherbereich 52 oder in den persistenten Heap-Speicherbereich 61 ausgelagerte Speicherobjekte ohne weiteres bei Ausführung des entsprechenden Prozesses zugreifbar sind, so dass ausgelagerte Speicherobjekte weiterhin jederzeit für den Prozessor 30 verfügbar sind, wenn auch mit erhöhter Schreib-/Lesezeit.
  • Während eine automatische Speicherbereinigung des gesamten Heap-Speicherbereichs 51 einige hundert Millisekunden benötigen kann, liegt der Zeitbedarf für das Auslagern eines Speicherobjekts in den persistenten Heap-Speicherbereich 61 signifikant darunter. Die Programmierzeiten eines persistenten EEPROM-Speichers betragen ca. 2 bis 4 Millisekunden für das Schreiben von bis zu 128 Bytes bzw. bei einem Flash-Speicher ca. 8 Millisekunden für das Schreiben von bis zu 256 Bytes. Derartige Verzögerungszeiten beeinträchtigen jedoch in aller Regel nicht die Ausführung einer laufzeitkritischen Prozessoperation, so dass diese trotz Zuteilung neuen Freispeichers die erforderlichen Laufzeiten einhalten kann.
  • Die beiden beschriebenen Speicherbereitstellungsverfahren basieren auf der Schaffung von neuem Freispeicher durch Einbeziehung eines Speicherbereichs außerhalb des Heap-Speicherbereichs in einem laufzeitoptimierten Modus unter Umgehung der üblichen automatischen Speicherbereinigung. Ergänzend kann der Speicherverwaltung im Bedarfsfalle auch noch ein drittes Speicherbereitstellungsverfahren zur Verfügung stehen, bei dem anstelle der üblichen vollständigen Speicherbereinigung eine vereinfachte, teilweise Speicherbereinigung durchgeführt wird. Hierbei werden beispielsweise gemäß dem bekannten Mark-and-Sweep-Verfahren diejenigen Speicherobjekte in dem volatilen Heap-Speicherbereich 51 detektiert, die von den entsprechenden Prozessen nicht mehr benötigt werden. Der von diesen Speicherobjekten belegte Speicher kann dann als Freispeicher freigegeben werden und durch eine zusätzliche (partielle) Kompaktierung kann weiterer zusammenhängender Freispeicher geschaffen werden. Diese vereinfachte, partielle Speicherbereinigung wird so lange durchgeführt, bis der angeforderte Freispeicher zur Verfügung steht und wird dann abgebrochen.
  • Insbesondere kann die Speicherverwaltung 44 eine Kombination des ersten und zweiten Speicherbereitstellungsverfahrens durchführen, indem zunächst versucht wird, einen ausreichend großen Freispeicher in dem Stapelspeicherbereich 52 oder in dem persistenten Heap-Speicherbereich 61 bereitzustellen, und, falls dieser nicht möglich ist, erst dann ein Speicherobjekt C in einen passenden Freispeicher B des Stapelspeicherbereichs 52 oder des persistenten Heap-Speicherbereichs 61 ausgelagert wird. Ein derartiges Vorgehen ist in 3 skizziert.
  • Die in 3 skizzierte Speicherverwaltung 44 umfasst mehrere Verwaltungsmodule, nämlich eine Objektverwaltung 44a, eine V-Heap-Verwaltung 44b, eine Stack-Verwaltung 44c und eine P-Heap-Verwaltung 44d.
  • In Schritt S1 erkennt die Speicherverwaltung 44, dass eine laufzeitkritische Prozessoperation (procop) gestartet wird, deaktiviert die automatische Speicherbereinigung und aktiviert den laufzeitoptimierten Modus. Die Speicherverwaltung 44 erkennt hierbei beispielsweise automatisch bestimmte Echtzeitanforderungen bzw. Merkmale einer Echtzeitverarbeitung durch eine Prozessoperation, beispielsweise Kommunikationssequenzen über eine kontaktlose Schnittstelle oder dergleichen. Alternativ kann die Speicherverwaltung 44 in Schritt S1 auch von einer Betriebssystemroutine oder einem weiteren Applikationsprozess über eine Programmierschnittstelle veranlasst werden, die herkömmliche Speicherbereinigung zu deaktivieren und den laufzeitoptimierten Modus zu aktivieren.
  • In Schritt S2 fordert die laufzeitkritische Prozessoperation Freispeicher für ein neues Speicherobjekt bei der Objektverwaltung 44a an (new object x byte). In Schritt S3 fordert die Objektverwaltung 44a den Freispeicher bei der V-Heap-Verwaltung 44b an (allocate x byte), die aufgrund nicht ausreichend vorliegendem Freispeicher in dem Heap-Speicherbereich 51 eine Fehlermeldung zurückgibt (error). In Schritt 54 fordert die Objektverwaltung 44a den Freispeicher bei der Stack-Verwaltung 44c an (allocate x byte), die ebenfalls erneut eine Fehlermeldung zurückliefert (error), da auch im Stapelspeicherbereich 52 kein ausreichend großer Freispeicher vorhanden ist. Eine Zuteilung eines Freispeichers aus dem Stapelspeicherbereich 52 gemäß dem oben beschriebenen ersten Speicherbereitstellungsverfahren ist demnach nicht möglich. In Schritt S5 sucht die Objektverwaltung 44a in dem volatilen Heap-Speicherbereich 51 ein geeignetes Speicherobjekt C mit ausreichender Größe (search object size y < x) und fordert in Schritt S6 Freispeicher in der Größe y des gefundenen Speicherobjekts im persistenten Heap-Speicherbereich 61 an (allocate y byte). Die P-Heap-Verwaltung 44d erkennt einen ausreichend großen Freispeicher in dem persistenten Heap-Speicherbereich 61, woraufhin in Schritt S7 das auszulagernde Speicherobjekt von der Objektverwaltung 44a an die V-Heap-Verwaltung 44b übergeben wird (transfer object), die das Speicherobjekt in den gefundenen Freispeicher im persistenten Heap-Speicherbereich 61 in Schritt S8 kopiert (copy object). In Schritt S9 wird der dadurch im volatilen Heap-Speicherbereich 51 geschaffene Freispeicher von der Heap-Verwaltung 44b als solcher markiert (mark) und in Schritt S10 an die Objektverwaltung 44a gemeldet. In Schritt S11 fordert die Objektverwaltung 44a den Freispeicher A erneut bei der V-Heap-Verwaltung 44b an (allocate x byte), die den Freispeicher nunmehr zuteilen kann, so dass die laufzeitkritische Prozessoperation in Schritt S12 fortgesetzt werden kann.
  • Anwendung kann die erfindungsgemäße Behandlung von Freispeicheranfragen von laufzeitkritischen Prozessoperationen durch die Speicherverwaltung 44 in dem laufzeitoptimierten Modus insbesondere bei der Beschleunigung bestimmter Prozessoperationen bei der API-Implementierung sowie bei zumeist in nativem Programmcode ausgeführtem Systemdiensten finden. Die beschriebenen Verfahren sind jedoch grundsätzlich geeignet, beliebige Applikationen bzw. deren Applikationsprozesse zu beschleunigen, wobei es auch möglich ist, den beschleunigenden, laufzeitoptimierten Modus selektiv ein und aus zu schalten, beispielsweise über eine öffentlich zugängliche Programmierschnittstelle der Speicherverwaltung 44, die von beliebigen Applikationen genutzt werden kann.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • - US 2001/0023478 A1 [0005]
    • - WO 2005/045683 [0005]
    • - DE 10040974 A1 [0006]
  • Zitierte Nicht-Patentliteratur
    • - ISO 7816 [0027]

Claims (15)

  1. Verfahren in einem portablen Datenträger (10) mit einem volatilen Speicher (50) und einer dynamischen Speicherverwaltung (44) eines Heap-Speicherbereichs (51) des volatilen Speichers (50), wobei die Speicherverwaltung (44) zum Bereitstellen von Freispeicher eine automatische Speicherbereinigung des Heap-Speicherbereichs (51) durchführen kann, dadurch gekennzeichnet, dass die Speicherverwaltung (44) während einer Ausführung einer laufzeitkritischen Prozessoperation auf dem Datenträger (10) die automatische Speicherbereinigung deaktiviert (S1) und auf Anforderung der Prozessoperation (S2) Freispeicher innerhalb eines die laufzeitkritische Ausführung der Prozessoperation nicht beeinträchtigenden Zeitintervalls bereitstellt (S3–S12).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der angeforderte Freispeicher unter Einbeziehung eines Speicherbereichs (52, 61) außerhalb des Heap-Speicherbereichs (51) bereitgestellt wird (S2–S12).
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass der angeforderte Freispeicher in einem von dem Heap-Speicherbereich (51) verschiedenen Speicherbereich (52) des volatilen Speichers (50) oder in einem Speicherbereich (61) eines von dem volatilen Speicher (50) verschiedenen Speichers (60) des Datenträgers (10) bereitgestellt wird (S3–S12).
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass der angeforderte Freispeicher in einem Stapelspeicherbereich (52) des volatilen Speichers (50) bereitgestellt wird.
  5. Verfahren nach einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, dass der angeforderte Freispeicher in dem Heap-Speicherbereich (51) durch Auslagern eines Speicherobjekts in einen von dem Heap-Speicherbereich (51) verschiedenen Speicherbereich (52) des volatilen Speichers (50) oder in einen Speicherbereich (61) eines von dem volatilen Speicher (50) verschiedenen Speichers (60) des Datenträgers (10) bereitgestellt wird (S7–S8).
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass der angeforderte Freispeicher durch Auslagern eines Speicherobjekts in einen Speicherbereich (61) des persistenten Speichers (60) des Datenträgers (10) bereitgestellt wird (S7–S8).
  7. Verfahren nach Anspruch 5 oder 6, dadurch gekennzeichnet, dass der angeforderte Freispeicher erst dann durch Auslagern eines Speicherobjekts bereitgestellt wird (S7–S8), wenn der in einem von dem Heap-Speicherbereich (51) verschiedenen Speicherbereich (52) des volatilen Speichers (50) oder in einem Speicherbereich (61) eines von dem volatilen Speicher (50) verschiedenen Speichers (60) des Datenträgers (10) zusammenhängend vorliegende Freispeicher kleiner als der angeforderte Freispeicher ist (S4).
  8. Verfahren nach einem der Ansprüche 5 bis 7, dadurch gekennzeichnet, dass ein möglichst großes auszulagerndes Speicherobjekt ausgewählt wird (S5), vorzugsweise ein Speicherobjekt, dessen Größe ein Vielfaches einer Speicherseitengröße des von dem Heap-Speicherbereich (51) verschiedenen Speicherbereichs (52) des volatilen Speichers (50) oder des Speicherbereichs (61) eines von dem volatilen Speicher (50) verschiedenen Speichers (60) des Datenträgers (10) umfasst.
  9. Verfahren nach einem der Ansprüche 5 bis 8, dadurch gekennzeichnet, dass ein nach dem Bereitstellen des angeforderten Freispeichers in dem Heap-Speicherbereich (51) verbleibender Freispeicher für ein Bereitstellen von Freispeicher bei einer weiteren Freispeicheranforderung durch eine laufzeitkritische Prozessoperation markiert wird.
  10. Verfahren nach einem der Ansprüche 3 bis 9, dadurch gekennzeichnet, dass in dem von dem Heap-Speicherbereich (51) verschiedenen Speicherbereich (52) des volatilen Speichers (50) oder in einem Speicherbereich (61) eines von dem volatilen Speicher (50) verschiedenen Speichers (60) des Datenträgers (10) eine Heap-Speicherstruktur derart eingerichtet wird, dass ein zu einem Prozess gehöriges ausgelagertes Speicherobjekt zur weiteren Ausführung des Prozesses verfügbar ist.
  11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass die Speicherverwaltung (44) eine auszuführende laufzeitkritische Prozessoperation erkennt (S1) und daraufhin die automatische Speicherbereinigung solange deaktiviert, bis die laufzeitkritische Prozessoperation abgearbeitet ist.
  12. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass die Speicherverwaltung (44) von einem System- oder Applikationsprozess veranlasst wird, die automatische Speicherbereinigung zu deaktivieren.
  13. Portabler Datenträger (10), umfassend einen Prozessor (30), einen volatilen Speicher (50), ein Betriebssystem (42) mit einer Speicherverwaltung (44) und zumindest eine auf dem Prozessor (30) als Prozess ausführbare Applikation (64), wobei die Speicherverwaltung (44) eingerichtet ist, zur Bereit stellung von Freispeicher eine automatische Speicherbereinigung eines Heap-Speicherbereichs (51) des volatilen Speichers (50) durchzuführen, dadurch gekennzeichnet, dass die Speicherverwaltung (44) des weiteren eingerichtet ist, während einer Ausführung einer laufzeitkritischen Prozessoperation durch den Prozessor (30) die automatische Speicherbereinigung zu deaktivieren und bei Empfang einer Freispeicheranforderung der Prozessoperation innerhalb eines die laufzeitkritische Ausführung der Prozessoperation nicht beeinträchtigenden Zeitintervalls Freispeicher bereitzustellen.
  14. Datenträger (10) nach Anspruch 13, dadurch gekennzeichnet, dass die Speicherverwaltung (44) eingerichtet ist, ein Verfahren gemäß einem der Ansprüche 1 bis 12 durchzuführen.
  15. Datenträger (10) nach Anspruch 13 oder 14, dadurch gekennzeichnet, dass der Datenträger (10) als Chipkarte, Java-Card, sichere Multimediakarte, Mobilfunkkarte oder USB-Speichermedium ausgebildet ist.
DE200810036479 2008-08-05 2008-08-05 Speicherverwaltung in einem portablen Datenträger Withdrawn DE102008036479A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE200810036479 DE102008036479A1 (de) 2008-08-05 2008-08-05 Speicherverwaltung in einem portablen Datenträger
ES09009987T ES2407632T3 (es) 2008-08-05 2009-08-03 Gestión de memoria en un soporte de datos portátil
EP20090009987 EP2151761B1 (de) 2008-08-05 2009-08-03 Speicherverwaltung in einem portablen Datenträger

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200810036479 DE102008036479A1 (de) 2008-08-05 2008-08-05 Speicherverwaltung in einem portablen Datenträger

Publications (1)

Publication Number Publication Date
DE102008036479A1 true DE102008036479A1 (de) 2010-02-11

Family

ID=41228253

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200810036479 Withdrawn DE102008036479A1 (de) 2008-08-05 2008-08-05 Speicherverwaltung in einem portablen Datenträger

Country Status (3)

Country Link
EP (1) EP2151761B1 (de)
DE (1) DE102008036479A1 (de)
ES (1) ES2407632T3 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016030376A1 (de) 2014-08-29 2016-03-03 Bundesdruckerei Gmbh Speicherverwaltung für einen token
US9747250B2 (en) 2015-03-25 2017-08-29 International Business Machines Corporation Effective memory management for host objects in a runtime environment with embedded garbage-collected based dynamic language
CN111736776A (zh) * 2020-06-24 2020-10-02 杭州海康威视数字技术股份有限公司 一种数据存储、读取方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010023478A1 (en) 2000-03-17 2001-09-20 Toshihiro Ozawa Device and method for managing memory resources
DE10040974A1 (de) 2000-08-22 2002-03-14 Giesecke & Devrient Gmbh Verfahren zur virtuellen Vergrößerung des Stacks eines tragbaren Datenträgers
DE10329680A1 (de) * 2003-07-01 2005-02-10 Universität Stuttgart Prozessorarchitektur für exakte Zeigeridentifizierung
EP1531397A1 (de) * 2003-11-13 2005-05-18 Siemens Aktiengesellschaft Vorrichtung zur Verwaltung eines virtuellen Heap-Speichers sowie zugehörige Verfahren
WO2005045683A1 (en) 2003-11-05 2005-05-19 Electronics And Telecommunications Research Institute Apparatus and method for garbage collection
DE10351764A1 (de) * 2003-11-06 2005-06-16 Giesecke & Devrient Gmbh Steuern der Speicherbereinigung bei einem tragbaren Datenträger

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286016B1 (en) * 1998-06-09 2001-09-04 Sun Microsystems, Inc. Incremental heap expansion in a real-time garbage collector
DE69930855T2 (de) * 1998-07-24 2006-11-23 Sun Microsystems, Inc., Santa Clara Verfahren und vorrichtung zur durchführung einer deterministischen speicherzuordnungsantwort in einem computer-system
KR100846499B1 (ko) * 2006-10-27 2008-07-17 삼성전자주식회사 메모리를 관리하는 방법 및 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010023478A1 (en) 2000-03-17 2001-09-20 Toshihiro Ozawa Device and method for managing memory resources
DE10040974A1 (de) 2000-08-22 2002-03-14 Giesecke & Devrient Gmbh Verfahren zur virtuellen Vergrößerung des Stacks eines tragbaren Datenträgers
DE10329680A1 (de) * 2003-07-01 2005-02-10 Universität Stuttgart Prozessorarchitektur für exakte Zeigeridentifizierung
WO2005045683A1 (en) 2003-11-05 2005-05-19 Electronics And Telecommunications Research Institute Apparatus and method for garbage collection
DE10351764A1 (de) * 2003-11-06 2005-06-16 Giesecke & Devrient Gmbh Steuern der Speicherbereinigung bei einem tragbaren Datenträger
EP1531397A1 (de) * 2003-11-13 2005-05-18 Siemens Aktiengesellschaft Vorrichtung zur Verwaltung eines virtuellen Heap-Speichers sowie zugehörige Verfahren

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISO 7816

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016030376A1 (de) 2014-08-29 2016-03-03 Bundesdruckerei Gmbh Speicherverwaltung für einen token
DE102014112496A1 (de) 2014-08-29 2016-03-03 Bundesdruckerei Gmbh Speicherverwaltung für eine Chipkarte
US9747250B2 (en) 2015-03-25 2017-08-29 International Business Machines Corporation Effective memory management for host objects in a runtime environment with embedded garbage-collected based dynamic language
CN111736776A (zh) * 2020-06-24 2020-10-02 杭州海康威视数字技术股份有限公司 一种数据存储、读取方法及装置
CN111736776B (zh) * 2020-06-24 2023-10-10 杭州海康威视数字技术股份有限公司 一种数据存储、读取方法及装置

Also Published As

Publication number Publication date
EP2151761B1 (de) 2013-03-20
EP2151761A1 (de) 2010-02-10
ES2407632T3 (es) 2013-06-13

Similar Documents

Publication Publication Date Title
DE69814170T2 (de) Inkrementeller freispeichersammler
DE3750337T2 (de) Behandlung von grossen Bereichen virtueller Speicher.
DE69930855T2 (de) Verfahren und vorrichtung zur durchführung einer deterministischen speicherzuordnungsantwort in einem computer-system
DE3587398T2 (de) Datenspeicherhierarchie und deren Betriebsverfahren.
DE19782041B4 (de) Verfahren zum Durchführen eines kontinuierlichen Überschreibens einer Datei in einem nicht-flüchtigen Speicher
DE69726088T2 (de) Methode und Apparat zur Speicherverwaltung
EP1228432B1 (de) Verfahren zur dynamischen speicherverwaltung
DE102007006307A1 (de) Verfahren zum Betreiben eines nichtflüchtigen Speicherelements, Aufzeichnungsmedium und nichtflüchtigen Speicherelement
DE112012000635T5 (de) Dynamische Speicherverwaltung in einer virtualisierten Datenverarbeitungsumgebung
DE102009046444A1 (de) An die Software angepasste Abnutzungsausgleichung
DE102009019271A1 (de) Übertragen von Sequenzzahlen für das Wiederherstellen nach Stromausfall bei einem nichtflüchtigen Speicher
DE112019001821B4 (de) Verfahren und vorrichtung zur wiedergabe eines aktivierungsrahmens für unterbrechungsfreie speicherbereinigung (pause-less garbage collection)
DE10296957T5 (de) Ein Verfahren zum Verwenden nicht-temporaler Streaming-Speicheroperationen zum Verbessern eines Algorithmus zur Sammlung wertloser Daten
DE69729262T2 (de) Speicherverwaltungssystem und Verfahren hierfür
DE112020004284B4 (de) System und Verfahren zur Zuweisung von Flash- und Arbeitsspeichern zwecks reduzierten Energieverbrauchs in einem Prozessor
EP1314135B1 (de) Verfahren zur virtuellen vergrösserung des stacks eines tragbaren datenträgers
EP2151761B1 (de) Speicherverwaltung in einem portablen Datenträger
DE102014101185A1 (de) Verfahren zur Verwaltung von Flash-Speichern mit gemischten Speichertypen unter Verwendung einer fein-granulierten Zuordnung logischer auf physikalische Speicheradressen
DE60318993T2 (de) Eingebettete Speicherbereinigung
DE60019364T2 (de) Speicherdefragmentierung in Chipkarten
EP3129891B1 (de) Verfahren zum verbesserten zugriff auf einen hauptspeicher eines computersystems, entsprechendes computersystem sowie computerprogramm-produkt
EP2177990B1 (de) Speicherverwaltung in einem portablen Datenträger
EP2151762B1 (de) Speicherverwaltung in einem portablen Datenträger
DE102014015855B3 (de) Verfahren zur effizienten Verwaltung des flüchtigen Speichers auf ressourcenbeschränkten Datenverarbeitungsmaschinen
EP2177995B1 (de) Speicherverwaltung in einem portablen Datenträger

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20150303