DE60003676T2 - Rückforderung von speicher aus gelöschten applikationen - Google Patents

Rückforderung von speicher aus gelöschten applikationen Download PDF

Info

Publication number
DE60003676T2
DE60003676T2 DE60003676T DE60003676T DE60003676T2 DE 60003676 T2 DE60003676 T2 DE 60003676T2 DE 60003676 T DE60003676 T DE 60003676T DE 60003676 T DE60003676 T DE 60003676T DE 60003676 T2 DE60003676 T2 DE 60003676T2
Authority
DE
Germany
Prior art keywords
memory
memory segment
code
segment
reserved
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.)
Expired - Lifetime
Application number
DE60003676T
Other languages
English (en)
Other versions
DE60003676D1 (de
Inventor
Pehrson Deloy BITNER
Kim Clohessy
Mikael Orn
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE60003676D1 publication Critical patent/DE60003676D1/de
Publication of DE60003676T2 publication Critical patent/DE60003676T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage collection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)
  • Read Only Memory (AREA)
  • Stored Programmes (AREA)
  • Saccharide Compounds (AREA)
  • Color Television Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • HINTERGRUND DER ERFINDUNG GEBIET DER ERFINDUNG
  • Die Erfindung betrifft das Gebiet der Speicherverwaltung in Computersystemen mit segmentierten Speichern wie beispielsweise integrierten Einheiten und stellt insbesondere ein System zur sicheren Rückgewinnung von Speichervolumen und zur kompakten Neuordnung der verbleibenden Applikationen in löschbaren nichtflüchtigen „Flash"-Speichern bereit.
  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Patentanmeldung eignet sich insbesondere zum Einsatz in integrierten Systemen mit beschränkten Speicherressourcen, jedoch kann sie in jeder Umgebung eingesetzt werden, bei der Applikationen von einem Rechner entfernt werden können und die übrigen in dem Speicher gespeicherten Applikationen komprimiert werden sollen, um möglichst viel zusammenhängendes freies Speichervolumen für neue Applikationen zur Verfügung zu stellen.
  • Bei integrierten Systemen kann das gesamte Speichervolumen in der Größenordnung von 1 bis 4 Megabyte betragen. Im Idealfall sollte die Hälfte des Systemspeichers auf Nur-Lese-Speicher (Read-Only Memory, ROM) zum Speichern von Applikationen und Daten entfallen, die zwischen den Sitzungen erhalten bleiben sollen. Applikationen können der Reihe nach so lange geladen werden, bis die Speicherkapazität des Systems an ihre Grenzen stößt.
  • Die Ausführungen im Rahmen der vorliegenden Erfindung beziehen sich auf „Flash"-Speicher. Technisch stellt ein Flash-Speicher einen nichtflüchtigen ROM dar, der gemäß dem aktuellen Stand der Technik jedoch im Allgemeinen in Blöcken zu je 64 kB auch gelöscht werden kann.
  • Insbesondere auf dem sich schnell entwickelnden Gebiet der drahtlosen Datenübertragung kann es erforderlich oder wünschenswert sein, vorhandene Applikationen in einer Einheit zu löschen, bevor eine neue Applikation heruntergeladen werden kann, und zwar entweder um für die neue(n) Applikation(en) entsprechenden Speicherplatz frei zu machen oder um der Inkompatibilität mit neueren Versionen einer Applikation vorzubeugen.
  • In WO94/20906 wird ein virtuelles Zuordnungssystem für Flash-Speicher offengelegt, dessen Aufgabe darin besteht, ein Verfahren zur Steuerung und Verwaltung des Zugriffs auf einen Flash-Speicher in der Weise bereitzustellen, dass das Betriebssystem des Computers den Flash-Speicher wie eine Datenspeichervorrichtung wahrnimmt, in der Daten aus Flash-Speicher-Plätzen gelesen und in sie geschrieben werden können.
  • In der Europäischen Patentanmeldung EP-0745939-A2 wird ein wiederholter Speicherreinigungsprozess für ein Dateisystem in einem Flash-Speicher offengelegt. Diese Offenlegung stellt ein Beispiel dar, bei dem keine virtuellen Speicherbereiche unterstützt werden.
  • ÜBERBLICK ÜBER DIE ERFIuNDUNG
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren zum Entfernen einer definierten Codefolge aus einem nichtflüchtigen Flash-Speicher nach Anspruch 1 bereitgestellt.
  • Bei einer Ausführungsart betrifft die vorliegende Erfindung eine Verbesserung in einem nichtflüchtigen Speicher einer Einheit. Dieser Flash-Speicher ist dadurch gekennzeichnet, dass er mehrere Speichersegmente aufweist, die zum Empfangen und Speichern von Codes und Daten einer Applikation eingerichtet sind. Vorzugsweise mindestens ein Speichersegment ist zur Benutzung während der Speicherkomprimierung reserviert und zum Empfangen von Codes und/oder Daten eingerichtet, die aus einem anderen Speichersegment des Nur-Lese-Speichers kopiert werden. Außerdem wird ein Mechanismus zum Korrigieren von Zeigern innerhalb des Codes bereitgestellt, damit diese den neuen Speicherplatz des Codes und/oder der Daten anzeigen, die aus einem anderen Speichersegment des Nur-Lese-Speichers kopiert wurden.
  • Gemäß einem weiteren Aspekt der Erfindung wird eine Speichersteuereinheit für einen nichtflüchtigen Flash-Speicher mit mehreren Speichersegmenten nach Anspruch 5 bereitgestellt.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Computerprogrammprodukt nach Anspruch 9 bereitgestellt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1, welche die 1A bis 1D umfasst, veranschaulicht schematisch das Entfernen und Komprimieren von Codes im Nur-Lese-Speicher (ROM) einer beschränkten Speichervorrichtung gemäß der Erfindung;
  • 2 ist ein Flussdiagramm, das die Schritte zum Entfernen von Codes gemäß der Erfindung veranschaulicht; und
  • 3 ist ein Flussdiagramm, das die Schritte der Speicherkomprimierung nach dem Entfernen der Codes gemäß einer bevorzugten Ausführungsart der Erfindung veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSARTEN
  • Wie in 1 (mit den 1A bis 1D) schematisch dargestellt, kann ein ROM 2 in einer beschränkten Speichervorrichtung wie zum Beispiel in einem Mobiltelefon üblicherweise 32 64-kB-Speichersegmentblöcke 4 mit einem Gesamtvolumen des Flash-Speichers in der Vorrichtung von 2 MB umfassen.
  • Bei der Realisierung der Erfindung in der bevorzugten Ausführungsart werden die Applikationen dem ROM beginnend vom unteren Speicher bis zum oberen Speicher zugewiesen.
  • In den 1A und 1B belegt eine doppelt schraffiert dargestellte Applikation 6 zweieinhalb Speichersegmentblöcke 4 des ROM 2. Die durch einfache Schraffur dargestellten Codes oder Daten 8 einer angrenzend gespeicherten Applikation nutzt ein Speichersegment gemeinsam mit dem ersten Teil der Applikation 6.
  • Wie oben beschrieben, können bei den in diesen Einheiten verwendeten Flash-Speichern nur ganze Speicherblöcke gelöscht werden. Deshalb muss der Speichermanager der Einheit den Code oder die Daten 8 der angrenzend gespeicherten Applikation abspeichern und an diesem Speicherplatz wiederherstellen, wenn der Benutzer die Applikation 6 löschen will.
  • Das wird dadurch erreicht, dass ein oder mehrere Reserve-Speicherblöcke freigehalten werden, um Speicherblöcke mit Codes oder Daten auszulagern, die in der Einheit verbleiben sollen. Bei der bevorzugten Ausführungsart reserviert der Speichermanager des „Flash"-Speichers für den Komprimierungsprozess einfach den (die) obersten Block (Blöcke). Bei dem in 1 gezeigten Beispiel kopiert der Speichermanager die Codes oder die Daten 8 in den Reserveblock 10 (1B). Es werden nur die Codes/Daten des zu löschenden Blocks kopiert; der obere Teil des Reserveblocks bleibt leer. Der den kopierten Code 10 enthaltende Reserveblock wird dann in den ursprünglichen Speicherblock 12 (1C) ausgelagert, und die Speicherblöcke mit den übrigen Codes/Daten der Applikation 6 können gefahrlos gelöscht werden (1D). Dieses Auslagern kann auf eine oder zwei Arten erfolgen: wenn eine Speicherverwaltungseinheit (Memory Management Unit, MMU) zur Unterstützung „virtueller" Speicherbereiche benutzt werden kann, werden die Zuordnunugen der MMU so geändert, dass der „neue" Block dieselbe Adresse wie der zu löschende Block benutzt. Der zu entfernende Block wird gelöscht und seine Speicherzuordnung auf die zuvor durch den Reserveblock benutzte Adresse umgestellt. Wenn keine MMU zur Verfügung steht, wird der Inhalt des „Reserve"-Blocks in den oberen Teil des ursprünglichen Blocks kopiert, nachdem dieser gelöscht worden ist.
  • Die Schritte dieses Prozesses sind in dem Flussdiagramm von 2 gezeigt. Wenn der Benutzer eine Applikation aus den Speicher löschen möchte, ermittelt der Speichermanager der Einheit im ROM den Anfangs- und den Endpunkt der Applikation (Block 20), um festzustellen, ob sich beide am Rand eines Speichersegments befinden (Blöcke 22, 24). Wenn dies der Fall ist, kann der Speichermanager gefahrlos alle Speichersegmentblöcke einfach löschen (Block 28), in denen die Applikation enthalten ist, und dann wie in 3 gezeigt den ROM komprimieren.
  • Wenn der Speichermanager gemäß 2 feststellt, dass sich ein Endpunkt einer Applikation innerhalb eines Speichersegmentblocks (Block 22 oder 24) befindet, ermittelt er anschließend, ob die Applikation an diesem Punkt einen Speichersegmentblock mit einem anderen Code gemeinsam nutzt (Block 26). Der „Flash-Manager" erfasst die Anfangs- und Endadressen jeder Applikation und kennt auch die Adressen jedes Speichersegmentblocks, sodass durch eine einfache Berechnung die Stellen festgestellt werden können, an denen sich die Applikation/Daten am Anfang/Ende der Speicherblöcke und anderer Applikationen befinden.
  • Wenn keine Codes/Daten einer anderen Applikation gefunden werden, kann die ursprüngliche Applikation gefahrlos gelöscht (Block 28) und zum Komprimieren des ROM übergegangen werden.
  • Wenn der Speichermanager feststellt, dass Daten oder Codes einer anderen Applikation gemeinsam mit einem Teil der ursprünglichen zu löschenden Applikation in demselben Block gespeichert sind (Block 26), werden diese Codes oder Daten mit Ausnahme des Codes der ursprünglichen Applikation in einen Reserve-Speichersegmentblock (Block 28) kopiert (d.h., der Reserve-Speichersegmentblock bleibt zum Teil leer).
  • Das Kopieren in den Reserve-Speichersegmentblock erfolgt so, dass die Einheit ihren Betrieb wieder aufnehmen kann, wenn sie im Verlauf einer Lösch-/Komprimierungsoperation des Speichers abgeschaltet wird. Bei der bevorzugten Ausführungsart dienen Marken und Markierungen zur Kennzeichnung des Status der Applikation während der Lade-, Lösch- und Komprimierungsfunktionen (Block 30).
  • Codes und Daten der anderen Applikation in dem Reserve-Speichersegmentblock werden dann wieder nach unten zurück zu der zu löschenden ursprünglichen Applikation ausgelagert (Block 34). Die zum Anzeigen einer laufenden Übertragung hinzugefügten Marken und Markierungen werden zurückgesetzt (Block 36), und die. den Rest der ursprünglichen Applikation enthaltenden Speichersegmentblöcke werden gelöscht (Block 38).
  • Nachdem die Applikation entfernt worden ist, muss ihr Speicher wieder verfügbar gemacht werden, indem er komprimiert wird bzw. indem die oberhalb befindlichen Applikationen nach unten in den leeren Speicherraum „rutschen". Dadurch wird im oberen Bereich des ROM so viel zusammenhängender freies Speichervolumen wie möglich geschaffen, in den neue Applikationen geladen werden können.
  • Gemäß einer bevorzugten Ausführungsart der Erfindung erfolgt die Komprimierung gemäß denselben Prinzipien wie beim Löschen einer Applikation, d.h., zum Übertragen des Inhalts teilweise gefüllter Speichersegmentblöcke werden Reserve-Speichersegmentblöcke verwendet, wie in 3 veranschaulicht ist.
  • Nach dem Entfernen der Applikation muss der Speicher komprimiert werden, um „Löcher" zu beseitigen. Hierdurch kann das maximal mögliche zusammenhängende freie Speichervolumen zum Herunterladen neuer Applikationen bereitgestellt werden. Ein bevorzugtes Verfahren zum Durchführen der Komprimierung unter Anwendung der Prinzipien der vorliegenden Erfindung ist in 3 veranschaulicht.
  • Nach dem Entfernen der Applikation durchsucht der Speichermanager den Speicher, um zu ermitteln, ob sich oberhalb der durch Entfernen der Applikation geleerten Speicherblöcke weitere mit Daten oder Codes belegte Speicherblöcke befinden, d.h., ob durch das Entfernen der Applikation in dem belegten Speicher ein „Loch" verblieben ist (Block 40). Wenn dies nicht der Fall ist, hatte sich die entfernte Applikation ganz oben im belegten Speicherbereich befunden, sodass das Komprimieren nicht erforderlich ist.
  • Wenn sich oberhalb des freigegebenen Speichers aufgezeichnete Daten/Codes befinden, ermittelt der Speichermanager, ob sich unterhalb des freigegebenen Speichers ein teilweise oder ganz leerer Speicherblock befindet (Block 42).
  • Wenn der freigegebene Speicher aus ganzen Speicherblöcken besteht, erfolgt die Komprimierung einfach durch schrittweises Kopieren der Datenblöcke nach unten in den nächsten leeren Speicherblock (Block 44) und Anpassen der Marken und Markierungen der kopierten Daten oder Codes an den neuen Speicherplatz (Block 46).
  • Wenn nur ein Teilspeicher zur Verfügung steht, kopiert der Speichermanager die Daten/Codes aus dem Datenblock, füllt den Teilspeicherblock auf (Block 48) und passt die Marken und Markierungen für den kopierten Code an (Block 50).
  • In derselben Weise, wie oben unter Bezug auf 2 beschrieben wurde, werden die restlichen Daten/Codes aus dem Datenblock in einen Reserve-Speicherblock kopiert (Block 52) und die Marken und Markierungen an den Speicherplatz dieser Codes/Daten angepasst (Block 54). Dieser Reserve-Speicherblock wird in den freien zusammenhängenden Speicher ausgelagert, der dem bereits komprimierten Datenblock benachbart ist (Block 56), und die Marken und Markierungen der Daten/Codes des ausgelagerten Blocks werden angepasst (Block 58).
  • Dieser Prozess wird so lange wiederholt, bis alle Daten komprimiert worden sind (Block 40).
  • Obwohl die Erfindung in Verbindung mit bevorzugten Ausführungsarten beschrieben worden ist, ist es klar, dass sie durch Änderungen, die dem Fachmann geläufig sind, auch auf andere Plattformen und Speicheranordnungen angewendet werden kann.
  • Zusammenfassend ist festzustellen, dass ein Verfahren zum Entfernen von Codes (Applikationen und Daten) aus einem Nur-Lese-Speicher sowie zum Komprimieren der verbliebenen Codes bereitgestellt wird, wenn eine Applikation gelöscht wird oder wenn zum Speichern einer neuen Applikation nicht genügend Speicherplatz zur Verfügung steht. Zur Verwendung beim Komprimieren werden ein oder mehrere „Reserve"-Speichersegmente reserviert. Wenn ein Speichersegment gemeinsam durch den zu entfernenden Code und einen anderen nicht zu entfernenden Code genutzt wird, wird der andere Code in ein Reserve-Speichersegment kopiert und dann wieder zurück zu seinem ursprünglichen Speicherplatz ausgelagert. Dann kann der Code komprimiert werden, um die durch den gelöschten Code hinterlassenen „Löcher" zu beseitigen..

Claims (9)

  1. Verfahren zum Entfernen einer definierten Codefolge aus einem nichtflüchtigen Flash-Speicher mit mehreren Speichersegmenten und zum Komprimieren des nichtflüchtigen Speichers, wobei mindestens ein Speichersegment zur Verwendung während des Entfernens und des Komprimierens reserviert ist und das Verfahren Folgendes umfasst: Absuchen (26) der definierten Codefolge, ob diese in ein durch einen anderen Code gemeinsam genutztes Speichersegment hineinreicht (überlappt); Kopieren (30) des in dem überlappten Speichersegment befindlichen anderen Codes in das mindestens eine reservierte Speichersegment; Auslagern (34) des in dem reservierten Speichersegment befindlichen anderen Codes zurück in dessen ursprüngliches überlapptes Speichersegment; Löschen (38) aller Speichersegmente, die einen Teil der definierten Codefolge enthalten; gekennzeichnet durch Ermitteln (40), ob oberhalb der gelöschten Speichersegmente belegte Speichersegmente vorliegen; ferner, wenn dies festgestellt wurde, Ermitteln (42), ob unterhalb der gelöschten Speichersegmente ein teilweise leeres Speichersegment vorliegt; wenn dies festgestellt wurde, Kopieren (48) des Codes aus dem oberhalb der gelöschten Speichersegmente befindlichen Speichersegments in das teilweise leere Speichersegment, Kopieren (52) des restlichen Codes in das mindestens eine reservierte Speichersegment und Auslagern (56) des mindestens einen reservierten Speichersegments in den freien Speicher, der an die bereits komprimierten Daten angrenzt.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Auslagerns (34) des reservierten Speichersegments zurück in das überlappte Speichersegment Folgendes umfasst: Löschen des durch einen anderen Code gemeinsam genutzten überlappten Speichersegments; und Kopieren des Inhalts des mindestens einen reservierten Speichersegments in das gelöschte Speichersegment.
  3. Verfahren nach Anspruch 1 oder 2, wobei die mehreren Speichersegmente zum Empfangen von Daten zum Speichern von Daten von einem unteren Ende zu einem oberen Ende eingerichtet sind und wobei das mindestens eine Speichersegment am oberen Ende reserviert ist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, welches ferner Korrekturzeiger/-markierungen umfasst, um einen neuen Speicherplatz des aus einem anderen Speichersegment des nichtflüchtigen Speichers kopierten Codes zu bezeichnen.
  5. Speicher-Controller für einen nichtflüchtigen Flashspeicher mit mehreren Speichersegmenten, wobei mindestens ein Speichersegment zur Verwendung während des Entfernens einer definierten Codefolge und während des Komprimierens des Speichers reserviert ist und der Speicher-Controller Folgendes umfasst: ein Mittel zum Absuchen (26) der definierten Codefolge, ob diese in ein durch einen anderen Code gemeinsam genutztes Speichersegment hineinreicht; ein Mittel zum Kopieren (30) des in dem überlappten Speichersegment befindlichen anderen Codes in das mindestens eine reservierte Speichersegment; ein Mittel zum Auslagern (34) des in dem reservierten Speichersegments befindlichen anderen Codes zurück in dessen ursprüngliches überlapptes Speichersegment; ein Mittel zum Löschen (38) aller Speichersegmente, die einen Teil der definierten Codefolge enthalten; gekennzeichnet durch ein Mittel zum Ermitteln (40), ob oberhalb der gelöschten Speichersegmente belegte Speichersegmente vorliegen; ein Mittel, um ferner zu ermitteln (42), wenn dies festgestellt wurde, ob unterhalb der gelöschten Speichersegmente ein teilweise leeres Speichersegment vorliegt; ein Mittel, zum Kopieren (48) des Codes, wenn dies festgestellt wurde, aus dem oberhalb der gelöschten Speichersegmente befindlichen Speichersegments in das teilweise leere Speichersegment und zum Kopieren (52) des restlichen Codes in das mindestens eine reservierte Speichersegment und zum Auslagern (56) des mindestens einen reservierten Speichersegments in den freien Speicher, der an die bereits komprimierten Daten angrenzt.
  6. Speicher-Controller nach Anspruch 5, wobei das Mittel zum Auslagern (34) des reservierten Speichersegments zurück in das überlappte Speichersegment Folgendes umfasst: ein Mittel zum Löschen des durch einen anderen Code gemeinsam genutzten überlappten Speichersegments; und ein Mittel zum Kopieren des Inhalts des mindestens einen reservierten Speichersegments in das gelöschte Speichersegment.
  7. Speicher-Controller nach den Ansprüchen 5 bis 6, wobei die mehreren Speichersegmente zum Empfangen von Daten für das Speichern von Daten von einem unteren Ende zu einem oberen Ende eingerichtet sind und wobei das mindestens eine Speichersegment am oberen Ende reserviert ist.
  8. Speicher-Controller nach einem der Ansprüche 5 bis 7, der ferner ein Mittel für Korrektuxzeiger/-markierungen umfasst, um einen neuen Speicherplatz des aus einem anderen Speichersegment des nichtflüchtigen Speichers kopierten Codes zu bezeichnen.
  9. Computerprogrammprodukt, das in einem für Computer geeigneten Medium gespeichert ist und ein computerlesbares Programmcodemittel umfasst, welches zum Ausführen aller Schritte eines der Verfahren der Ansprüche 1 bis 4 eingerichtet ist, wenn das Programm in einem Computer läuft.
DE60003676T 1999-03-30 2000-03-21 Rückforderung von speicher aus gelöschten applikationen Expired - Lifetime DE60003676T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CA002267484A CA2267484C (en) 1999-03-30 1999-03-30 Reclaiming memory from deleted applications
CA2267484 1999-03-30
PCT/GB2000/001063 WO2000058838A1 (en) 1999-03-30 2000-03-21 Reclaiming memory from deleted applications

Publications (2)

Publication Number Publication Date
DE60003676D1 DE60003676D1 (de) 2003-08-07
DE60003676T2 true DE60003676T2 (de) 2004-05-27

Family

ID=4163417

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60003676T Expired - Lifetime DE60003676T2 (de) 1999-03-30 2000-03-21 Rückforderung von speicher aus gelöschten applikationen

Country Status (15)

Country Link
US (1) US6581133B1 (de)
EP (1) EP1177502B1 (de)
JP (1) JP3683814B2 (de)
CN (1) CN1244054C (de)
AT (1) ATE244418T1 (de)
AU (1) AU3310800A (de)
CA (1) CA2267484C (de)
CZ (1) CZ20013477A3 (de)
DE (1) DE60003676T2 (de)
ES (1) ES2199791T3 (de)
HU (1) HUP0200563A2 (de)
IL (2) IL144733A0 (de)
PL (1) PL351506A1 (de)
TW (1) TW436790B (de)
WO (1) WO2000058838A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2267484C (en) 1999-03-30 2002-03-05 Object Technology International Inc. Reclaiming memory from deleted applications
US6993328B1 (en) 2000-05-08 2006-01-31 Nokia Corporation Method for over the air mobile station management
FR2818770A1 (fr) * 2000-12-21 2002-06-28 Bull Cp8 Procede de gestion optimisee de l'allocation de memoire d'un systeme embarque et systeme embarque correspondant
EP1374040A1 (de) * 2001-03-30 2004-01-02 Nokia Corporation Herunterladen von anwendungssoftware zu einem mobilen endgerät
JP2005518033A (ja) * 2002-02-18 2005-06-16 アクサルト ソシエテ アノニム スマートカードのデータ編成
US20050010811A1 (en) * 2003-06-16 2005-01-13 Zimmer Vincent J. Method and system to support network port authentication from out-of-band firmware
GB2412194A (en) * 2004-03-19 2005-09-21 Matsushita Electric Ind Co Ltd Reprogramming a non-volatile memory system
US20060184717A1 (en) * 2005-02-17 2006-08-17 Intel Corporation Integrated circuit capable of flash memory storage management
JP2008077669A (ja) * 2007-10-09 2008-04-03 Mitsubishi Electric Corp 記録方式
TWI438633B (zh) * 2007-11-29 2014-05-21 Ibm 記憶體管理之垃圾收集方法、其電腦程式產品,及其裝置
US8135745B2 (en) 2008-03-04 2012-03-13 Core Wireless Licensing S.A.R.L. Storage management
CN101635020B (zh) * 2008-07-25 2011-12-07 联想(北京)有限公司 数据擦除方法和数据存储装置
US20110119462A1 (en) * 2009-11-19 2011-05-19 Ocz Technology Group, Inc. Method for restoring and maintaining solid-state drive performance
US20160224464A1 (en) * 2014-04-17 2016-08-04 Bitmicro Networks, Inc. Valid Data Compression On SSD
US9665296B2 (en) * 2014-05-07 2017-05-30 Sandisk Technologies Llc Method and computing device for using both volatile memory and non-volatile swap memory to pre-load a plurality of applications
US9710198B2 (en) 2014-05-07 2017-07-18 Sandisk Technologies Llc Method and computing device for controlling bandwidth of swap operations
US9633233B2 (en) 2014-05-07 2017-04-25 Sandisk Technologies Llc Method and computing device for encrypting data stored in swap memory
US9928169B2 (en) 2014-05-07 2018-03-27 Sandisk Technologies Llc Method and system for improving swap performance

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4511964A (en) 1982-11-12 1985-04-16 Hewlett-Packard Company Dynamic physical memory mapping and management of independent programming environments
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5438573A (en) * 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
JPH09152983A (ja) 1995-05-31 1997-06-10 Lucent Technol Inc フラッシュメモリに内在するファイルシステムにおけるリエントラントガーベジコレクション処理
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US6038636A (en) * 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
CA2267484C (en) 1999-03-30 2002-03-05 Object Technology International Inc. Reclaiming memory from deleted applications

Also Published As

Publication number Publication date
ES2199791T3 (es) 2004-03-01
IL144733A0 (en) 2002-06-30
US6581133B1 (en) 2003-06-17
CA2267484C (en) 2002-03-05
HUP0200563A2 (en) 2002-06-29
EP1177502B1 (de) 2003-07-02
CN1244054C (zh) 2006-03-01
CA2267484A1 (en) 2000-09-30
EP1177502A1 (de) 2002-02-06
JP3683814B2 (ja) 2005-08-17
ATE244418T1 (de) 2003-07-15
IL144733A (en) 2006-07-05
JP2002540525A (ja) 2002-11-26
AU3310800A (en) 2000-10-16
DE60003676D1 (de) 2003-08-07
TW436790B (en) 2001-05-28
WO2000058838A1 (en) 2000-10-05
CZ20013477A3 (cs) 2002-01-16
CN1345427A (zh) 2002-04-17
PL351506A1 (en) 2003-04-22

Similar Documents

Publication Publication Date Title
DE60003676T2 (de) Rückforderung von speicher aus gelöschten applikationen
DE60121697T2 (de) Verfahren zum ansteuern von remapping in einem flash-speicher und in einer dafür geeigneten flash-speicher-architektur
DE60129025T2 (de) Speicherbereichszuordnung in einem dateisystem zum beschreiben beliebiger bereiche
DE69333906T2 (de) Verfahren und System für die Dateienverwaltung mit einem schnell löschbaren, programmierbaren ROM
DE69726088T2 (de) Methode und Apparat zur Speicherverwaltung
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE112007003693B4 (de) Datenverarbeitungsvorrichtung und Verfahren zur Datenverarbeitung
DE19782041B4 (de) Verfahren zum Durchführen eines kontinuierlichen Überschreibens einer Datei in einem nicht-flüchtigen Speicher
DE60318477T2 (de) Vorrichtung zur dateiaktualisierung
DE102005019842B4 (de) System und Verfahren zum sequentiellen Schreiben von Daten in einen Flash-Speicher
EP2923261B1 (de) VERFAHREN ZUR STEUERUNG EINES FLASH-SPEICHERS ZUR MASSENSPEICHERUNG, DER VON EINEM AN EINEN HOST ANSCHLIEßBAREN KOMMUNIKATIONSGERÄT UMFASST IST, UND COMPUTERPROGRAMMPRODUKT ZUR AUSFÜHRUNG DES VERFAHRENS
DE102009034651A1 (de) Prozess und Verfahren zur Abbildung von logischen Adressen auf physische Adressen in Festkörperplatten
DE10243586A1 (de) Speichersteuerung für eine Speicherkarten-Verwaltet-Datei-Zuordnungstabelle
DE19961499A1 (de) Caching von Objekten in Platten-gestützten Datenbanken
DE19652629A1 (de) System zum Austausch von Software
WO2001031454A1 (de) Verfahren zur dynamischen speicherverwaltung
DE69921426T2 (de) Aufnahme- und Wiedergabeapparat
DE102009048179A1 (de) Prozess und Verfahren für eine Löschstrategie in Festkörperplatten
EP0704803B1 (de) Verfahren zur Speicherverwaltung eines Flash-Speichers
DE2801982A1 (de) Verfahren zum austausch von information zwischen einem externen speicher und einem arbeitsspeicher in einem textverarbeitungssystem
DE10192507B4 (de) Verfahren und Vorrichtung für die Vorhersage von Lösch- und Schreibzeiten von Flash-Speichern
DE3938517C3 (de) Verfahren zum Laden eines Steuerprogramms von einer externen Einrichtung in eine numerische Steuervorrichtung
DE60019364T2 (de) Speicherdefragmentierung in Chipkarten
DE10227255A1 (de) Verfahren zur Wiederherstellung von Verwaltungsdatensätzen eines blockweise löschbaren Speichers
DE60035114T2 (de) Plattenmediumverwaltungsverfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7