DE102013113189A1 - Mobile Vorrichtung und Verfahren zum Verwalten von Daten mit Auslagerung derselben - Google Patents

Mobile Vorrichtung und Verfahren zum Verwalten von Daten mit Auslagerung derselben Download PDF

Info

Publication number
DE102013113189A1
DE102013113189A1 DE102013113189.1A DE102013113189A DE102013113189A1 DE 102013113189 A1 DE102013113189 A1 DE 102013113189A1 DE 102013113189 A DE102013113189 A DE 102013113189A DE 102013113189 A1 DE102013113189 A1 DE 102013113189A1
Authority
DE
Germany
Prior art keywords
data
memory page
page data
memory
paging
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.)
Pending
Application number
DE102013113189.1A
Other languages
English (en)
Inventor
Jin-Hyuck Choi
Il Park
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102013113189A1 publication Critical patent/DE102013113189A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/171Portable consumer electronics, e.g. mobile phone
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

Eine mobile Vorrichtung enthält einen Speicher (1300), der zum Speichern von Daten konfiguriert ist, einen Puffer-Speicher (1200), der derart konfiguriert ist, dass er einen Auslagerungs-Victim-Pufferbereich (1230) und einen normalen Datenbereich (1250) enthält, und einen Anwendungsprozessor (1100), der konfiguriert ist zum Auswählen von Speicherseiten-Daten, die von dem normalen Datenbereich ausgelagert werden sollen, und zum Durchführen einer Auslagerungs-Operation an den ausgewählten Speicherseiten-Daten. Die Auslagerungs-Operation führt eine sofortige Auslagerungs-Operation oder eine verzögerte Auslagerungs-Operation je nach einem Datentyp der ausgewählten Speicherseiten-Daten durch.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität unter 35 U.S.C. §119 der am 11. Dezember 2011 beim Koreanischen Art für Geistiges Eigentum eingereichten koreanischen Patentanmeldung Nr. 10-2012-0143722 , deren Offenbarung hier in ihrer Gesamtheit durch Bezugnahme mit aufgenommen ist.
  • TECHNISCHES GEBIET
  • Das erfinderische Konzept der vorliegenden Erfindung bezieht sich auf eine mobile Vorrichtung und auf ein Verfahren zum Verwalten von Daten mit Auslagerung.
  • DISKUSSION DER VERWANDTEN TECHNIK
  • Mobile Vorrichtungen wie z. B. ein Smartphone, eine Tablet-Vorrichtung oder ein Notebook-Computer, betreiben verschiedene Anwendungsprogramme. Einige Anwendungsprogramme werden in einen flüchtigen Speicher der mobilen Vorrichtungen geladen. Wenn ein neues Programm in den flüchtigen Speicher geladen wird, können einige Anwendungsprogramme auf einen nichtflüchtigen Speicher ausgelagert werden.
  • KURZFASSUNG
  • Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts enthält eine mobile Vorrichtung einen zum Speichern von Daten konfigurierten Speicher, einen Pufferspeicher, der derart konfiguriert ist, dass er einen Auslagerungs-Victim-Pufferbereich und einen normalen Datenbereich enthält, sowie einen Anwendungsprozessor, der dazu konfiguriert ist, Speicherseiten-Daten auszuwählen, die von dem normalen Datenbereich ausgelagert werden sollen, und eine Auslagerungsoperation an den ausgewählten Speicherseiten-Daten durchzuführen. Die Auslagerungs-Operation kann eine sofortige Auslagerungs-Operation oder eine verzögerte Auslagerungs-Operation (engl.: lazy swapping operation) gemäß einem Datentyp der ausgewählten Speicherseiten-Daten.
  • Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts enthält eine mobile Vorrichtung einen nichtflüchtigen Speicher, einen dynamischen Direktzugriffsspeicher (DRAM), der derart konfiguriert ist, dass er einen Auslagerungs-Victim-Puffer und einen normalen Datenbereich enthält, und einen mit dem nichtflüchtigen Speicher und dem DRAM gekoppelten Anwendungsprozessor. Wenn eine Auslagerung von in dem normalen Datenbereich gespeicherten Speicherseiten-Daten benötigt wird, ist der Anwendungsprozessor dazu konfiguriert, eine sofortige Auslagerungs-Operation oder eine verzögerte Auslagerungs-Operation gemäß einem Typ der Speicherseiten-Daten durchzuführen. Die sofortige Auslagerungs-Operation verschiebt die Speicherseiten-Daten sofort zu dem nichtflüchtigen Speicher, und die verzögerte Auslagerungs-Operation komprimiert die Speicherseiten-Daten und verschiebt die komprimierten Daten zu dem nichtflüchtigen Speicher durch den Auslagerungs-Victim-Pufferbereich.
  • Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts enthält ein Datenverwaltungsverfahren eines Anwendungsprozessors einen Schritt des Bestimmens eines Datentyps von in einem DRAM gespeicherten Speicherseiten-Daten und einen Schritt des Durchführens einer verzögerten Auslagerungs-Operation an den Speicherseiten-Daten, wenn der bestimmte Daten-Typ ein verzögerter Typ (engl.: lazy type) ist, und einer sofortigen Auslagerungs-Operation an den Speicherseiten-Daten, wenn der bestimmte Datentyp ein sofortiger Typ ist.
  • Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts enthält ein Anwendungsprozessor eine DRAM-Schnittstelle, eine Flash-Speicher-Schnittstelle, einen Direktspeicherzugriff und einen Prozessor. Der Prozessor ist dazu konfiguriert, zu bestimmen, ob eine Auslagerungsoperation benötigt wird. Der Prozessor ist dazu konfiguriert, auszulagernde Speicherseiten-Daten über die DRAM-Schnittstelle zu empfangen. Der Prozessor ist konfiguriert zum Durchführen der Auslagerungsoperation an den Speicherseiten-Daten in einer sofortigen Auslagerungs-Operation oder einer verzögerten Auslagerungs-Operation gemäß einem Datentyp der Speicherseiten-Daten. In der verzögerten Auslagerungs-Operation ist der Prozessor konfiguriert zum Komprimieren der Speicherseiten-Daten und zum Abgeben der komprimierten Speicherseiten-Daten durch die DRAM-Schnittstelle. Der Direktspeicherzugriff ist konfiguriert zum Steuern eines Datenpfades zwischen der DRAM-Schnittstelle und der Flash-Speicherschnittstelle zum Verschieben der abgegebenen komprimierten Speicherseiten-Daten von der DRAM-Schnittstelle an die Flash-Speicher-Schnittstelle.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese und weitere Merkmale des erfinderischen Konzepts werden anschaulich durch die Beschreibung detaillierter beispielhafter Ausführungsformen davon in Bezug auf die begleitenden Zeichnungen, in denen:
  • 1 ein Blockdiagramm ist, das eine mobile Vorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
  • 2 ein Blockdiagramm ist, das eine Speicherhierarchie gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
  • 3 ein Ablaufdiagramm ist, das ein Datenverwaltungsverfahren gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
  • 4 ein Ablaufdiagramm ist, das ein Auslagerungs-Bestimmungs-Verfahren gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
  • 5 ein Ablaufdiagramm ist, das ein Speicherseiten-Datentyp-Bestimmungsverfahren gemäß einer Ausführungsform des erfinderischen Konzepts darstellt;
  • 6 ein Ablaufdiagramm ist, das ein Datentyp-Bestimmungsverfahren gemäß einer beispielhaften Ausführungsform darstellt;
  • 7 ein Ablaufdiagramm ist, das ein Speicherseiten-Datentyp-Bestimmungsverfahren gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
  • 8 ein Ablaufdiagramm ist, das ein Datentyp-Bestimmungsverfahren gemäß einer beispielhaften Ausführungsform darstellt;
  • 9 ein Ablaufdiagramm ist, das ein Schwellenwert-Steuerverfahren gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
  • 10 ein Blockdiagramm ist, das eine mobile Vorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
  • 11 ein Blockdiagramm ist, das eine Speicherhierarchie gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
  • 12 ein Ablaufdiagramm ist, das ein Speicherseiten-Datentyp-Bestimmungsverfahren gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
  • 13 ein Ablaufdiagramm ist, das ein sofortiges Auslagerungs-Verfahren gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
  • 14 ein Ablaufdiagramm ist, das ein verzögertes Auslagerungs-Verfahren gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt;
  • 15 und 16 Diagramme sind, die eine sofortige oder eine verzögerte Auslagerungs-Operation darstellen, die in einem DRAM gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts dargestellt werden; und
  • 17 ein Ablaufdiagramm ist, das ein Wiederherstellungsverfahren für ausgelagerte Speicherseiten-Daten darstellt.
  • DETAILLIERTE BESCHREIBUNG DER BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • Beispielhafte Ausführungsformen des erfinderischen Konzepts werden im Folgenden im Detail beschrieben werden mit Bezug auf die begleitenden Zeichnungen. Jedoch kann das erfinderische Konzept in verschiedenen Formen ausgebildet sein und sollte nicht als auf die im Folgenden ausgeführten Ausführungsformen beschränkt ausgelegt werden. Gleiche Bezugsnummern beziehen sich durchgehend in der Beschreibung und in den Zeichnungen auf gleiche Elemente.
  • Es wird davon ausgegangen werden, dass, wenn ein Element als „gekoppelt an” an ein anderes Element bezeichnet wird, es direkt mit dem anderen Element gekoppelt sein kann oder dazwischen liegende Elemente vorhanden sein können.
  • 1 ist ein Blockdiagramm, das eine mobile Vorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt. Bezug nehmend auf 1 enthält eine mobile Vorrichtung 1000 einen Anwendungsprozessor (AP) 1100, einen DRAM (dynamischen Direktzugriffsspeicher) 1200, einen Flash-Speicher 1300, ein Modem 1400 und eine Benutzerschnittstelle 1500.
  • Der Anwendungsprozessor 1100 steuert einen Gesamtbetrieb der mobilen Vorrichtung 1000 und führt eine logische Operation durch. Der Anwendungsprozessor 1100 kann aus einem Ein-Chip-System (SoC) ausgebildet sein.
  • Der Anwendungsprozessor 1100 enthält einen Bus 1110, eine CPU (Zentralprozessor) 1120, einen Direktspeicherzugriff (DMA) 1130, einen Entpacker 1140, eine DRAM-Schnittstelle 1150, einen SRAM (statischer Direktzugriffsspeicher) 1160 und eine Flash-Schnittstelle 1170. In 1 sind Schnittstellen nicht dargestellt, die dem Anwendungsprozessor 1100 ermöglichen, mit dem Modem 1400 und der Benutzerschnittstelle 1500 zu kommunizieren.
  • Der Bus 1110 stellt einen Kanal zwischen Komponenten des Anwendungsprozessors 1100 bereit. Die CPU 1120 führt eine Hauptberechnungsoperation durch, führt eine Datenverarbeitungsoperation durch und führt eine Gesamtsteuerung des Anwendungsprozessors 1100 durch. Der Direktspeicherzugriff 1130 steuert den Datenaustausch zwischen Speichern, die den DRAM 1200 und den Flash-Speicher 1300 mit einschließen.
  • Der DMA 1130 arbeitet gemäß der Steuerung der CPU 1120. Zum Beispiel wird der DMA 1130 programmiert durch die CPU 1120 und arbeitet gemäß dem programmierten Zustand. Der programmierte DMA 1130 steuert einen Datenfluss zwischen Speicherelementen der mobilen Vorrichtung 1000 ohne Steuerung der CPU 1120. Zum Beispiel steuert der DMA 1130 einen Datenfluss zwischen zumindest zwei von dem DRAM 1200, dem SRAM 1160 und dem Flash-Speicher 1300.
  • Der Entpacker 1140 entpackt komprimierte Speicherseiten-Daten. Der Entpacker 1140 kann als eine Hardware-Einheit implementiert sein. Die DRAM-Schnittstelle 1150 unterstützt Kommunikation mit dem DRAM 1200. Der SRAM 1160 dient als ein Cache-Speicher, ein Puffer-Speicher oder ein temporärer Speicher des Anwendungs-Prozessors 1100. Die Flash-Schnittstelle 1170 unterstützt Kommunikation mit dem Flash-Speicher 1300.
  • Der DRAM 1200 dient als ein Puffer-Speicher oder als ein Arbeitsspeicher der mobilen Vorrichtung 1000. Zum Beispiel ist ein Beispiel darstellt, bei dem ein Arbeitsspeicher der mobilen Vorrichtung 1000 aus dem DRAM 1200 ausgebildet ist. Jedoch kann der Arbeitsspeicher der mobilen Vorrichtung 1000 verschiedene Speicher wie z. B. einen SRAM, einen NOR-Flash-Speicher, einen Phasenänderungs-RAM (PRAM), einen magnetischen RAM (MRAM), einen resistiven RAM (RRAM), einen ferroelektrischen RAM (FRAM) usw. mit einschließen. Der Arbeitsspeicher kann nichtflüchtig oder flüchtig sein.
  • Der Flash-Speicher 1300 dient als eine Speichervorrichtung zum Speichern von Daten. Bei einer beispielhaften Ausführungsform kann die Speichervorrichtung ein Festplattenlaufwerk oder einen nichtflüchtigen Speicher, wie z. B. einen Phasenänderungs-RAM (PRAM), einen magnetischen RAM (MRAM), einen resistiven RAM (RRAM) oder einen ferroelektrischen RAM (FRAM) enthalten, aber ist nicht darauf beschränkt.
  • Das Modem 1400 führt drahtlose oder drahtgebundene Kommunikation gemäß der Steuerung des Anwendungsprozessors 1100 durch. Das Modem 1400 kommuniziert unter Verwendung eines Kommunikationsprotokolls einschließlich WiFi, CDMA (Code-Multiplex-Verfahren), GSM (engl.: Global System For Mobile Communication), LTE (Long Term Evolution), Bluetooth, NFC (Nahfeldkommunikation) usw. Zum Beispiel kann das Modem 1400 mit dem Anwendungsprozessor 1100 in einer Ein-Chip-System-Vorrichtung integriert sein.
  • Die Benutzerschnittstelle 1500 tauscht Signale mit einer externen Vorrichtung aus. Zum Beispiel kann die Benutzerschnittstelle 1500 Benutzereingabe-Schnittstellen einschließlich einer Tastatur, eines Tastenfeldes, eines Schalters, eines interaktiven Bedienfeldes, eines Berührungsbildschirms, eines Touchpads, eines Touchballs, einer Kamera, eines Mikrofons, eines Gyroskopsensors oder eines Vibrationssensors enthalten. Die Benutzerschnittstelle 1500 kann außerdem Benutzer-Ausgabe-Schnittstellen einschließlich einer LCD (Flüssigkristallanzeige), einer OLED(organischen Leuchtdioden)-Anzeigevorrichtung, einer AMOLED(Aktivmatrix-OLED)-Anzeigevorrichtung, einer LED, eines Lautsprechers oder eines Motors enthalten.
  • 2 ist ein Blockdiagramm, das eine Architektur für Datenbereiche des DRAM und der Flash-Speichervorrichtung aus 1 darstellt. Bezug nehmend auf 2 enthält das DRAM 1200 einen Auslagerungs-Victim-Pufferbereich (SVB) 1230 und einen normalen Datenbereich (NDA) 1250.
  • Wenn Daten des normalen Datenbereiches 1250 in den Flash-Speicher 1300 ausgelagert werden, werden die ausgelagerten Daten in den Auslagerungs-Victim-Pufferbereich 1230 temporär gespeichert. Zum Beispiel wird zumindest ein Teil der in dem normalen Datenbereich 1250 gespeicherten Daten zu dem Auslagerungs-Victim-Pufferbereich 1230 und dann in den Flash-Speicher 1300 verschoben.
  • Auf den normalen Datenbereich 1250 wird zugegriffen durch Prozesse, die durch den Anwendungs-Prozessor 1100 betrieben werden. Zum Beispiel werden Codes der Prozesse oder Daten, die von den Prozessen verwaltet werden, in dem normalen Datenbereich 1250 gespeichert.
  • Zum Beispiel werden in dem DRAM 1200 Daten durch eine Speicherseiten-Einheit verwaltet. Eine Speicherseite besitzt eine Größe, die durch ein Betriebssystem (OS) der mobilen Vorrichtung 1000 definiert ist. Codes oder Daten der Prozesse werden in dem DRAM 1200 durch die Speicherseiten-Einheit gespeichert und werden von dem DRAM 1200 durch die Speicherseiten-Einheit gelesen. Im Folgenden können die Daten, auf die von der Speicherseiten-Einheit zugegriffen wird, Speicherseiten-Daten genannt werden.
  • Der Flash-Speicher 1300 dient als eine Speichervorrichtung der mobilen Vorrichtung 1000. Der Flash-Speicher 1300 speichert Benutzerdaten und Auslagerungsdaten. Zum Beispiel speichert der Anwendungsprozessor 1100 verarbeitete Daten (z. B. Daten einschließlich von Prozessdaten oder durch einen Prozess verwaltete Daten) in dem DRAM 1200 und lagert einen Teil der verarbeiteten Daten in dem Flash-Speicher 1300 aus. Auslagerungsdaten können Daten sein, die von dem Anwendungsprozessor 1100 ausgelagert sind.
  • 3 ist ein Ablaufdiagramm, das ein Datenverwaltungsverfahren der mobilen Vorrichtung aus 1 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt. Zum Beispiel ist ein Datenverwaltungsverfahren eines Anwendungsprozessors 1100 in 3 dargestellt.
  • In Verfahrensschritt S110 wird bestimmt, ob eine Auslagerungsoperation benötigt wird. Der Anwendungsprozessor 1100 bestimmt, ob Speicherseiten-Daten, die in dem normalen Datenbereich 1250 gespeichert sind, zu dem Flash-Speicher 1300 zu verschieben sind. Wenn eine Auslagerungsoperation nicht benötigt wird, endet das Verfahren. Wenn die Auslagerungsoperation benötigt wird, geht das Verfahren zu Verfahrensschritt S120 über. Der Verfahrensschritt S110 wird vollständiger mit Bezug auf 4 beschrieben werden.
  • Im Verfahrensschritt S120 wird ein Typ der in dem DRAM 1200 gespeicherten Speicherseiten-Daten bestimmt. Zum Beispiel bestimmt der Anwendungsprozessor 1100 einen Typ der Speicherseiten-Daten, die als ein Auslagerungs-Zielobjekt von den in dem normalen Datenbereich 1250 gespeicherten Speicherseiten-Daten ausgewählt sind. Der Verfahrensschritt S120 wird vollständiger beschrieben werden mit Bezug auf die 5 bis 8 und 12.
  • In Verfahrensschritt S130 wird die Auslagerungs-Operation durchgeführt in einer verzögerten Auslagerung oder einer sofortigen Auslagerung gemäß dem in Verfahrensschritt S120 bestimmten Datentyp. Der Verfahrensschritt S130 wird vollständiger beschrieben werden mit Bezug auf die 13 bis 16.
  • 4 ist ein Ablaufdiagramm, das den Verfahrensschritt S110 aus 3 im Detail gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt. Bezug nehmend auf die 1 und 4 wird in Verfahrensschritt S210 bestimmt, ob der Anwendungsprozessor 1100 einen anderen Prozess als die Prozesse durchführt, wie sie der Anwendungsprozessor 100 in dem DRAM 1200 zum Beispiel gespeichert hat. In diesem Fall teilt der Anwendungsprozessor 1100 einen Speicherplatz des DRAM 1200 für den neuen Prozess zu. Zum Beispiel können ein oder mehrere Speicherseiten des normalen Datenbereiches 1250 dem neuen Prozess des Anwendungsprozessors 1100 zugeordnet werden.
  • In Verfahrensschritt S220 wird bestimmt, ob der DRAM 1200 einen freien Speicherplatz hat zum Aufnehmen des Prozesses des Anwendungsprozessors 1100. Der Anwendungsprozessor 1100 ordnet dem Prozess eine vorbestimmte Anzahl von Speicherseiten des normalen Datenbereiches 1250 zu. Zum Beispiel bestimmt der Anwendungsprozessor 1100 die Anzahl von Speicherseiten, die für den Prozess benötigt werden, auf der Grundlage eines Verlaufes des Prozesses.
  • Wenn die Anzahl der von dem Prozess benötigten Speicherseiten geringer ist als der freie Speicherplatz des normalen Datenbereiches 1250, wird bestimmt, dass der normale Datenbereich 1250 genug freien Speicherplatz für den Prozess besitzt und somit keine Auslagerungs-Operation benötigt wird (S230).
  • Wenn die Anzahl der von dem Prozess benötigten Speicherseiten mehr als der freie Speicherplatz des normalen Datenbereiches 1250 ist, wird bestimmt, dass der normale Datenbereich 1250 nicht ausreichend für den Prozess ist und somit eine Auslagerungs-Operation benötigt wird (S240). Zum Beispiel werden einige in dem DRAM 1200 gespeicherten Prozesse zu dem Flash-Speicher 1300 verschoben, um Speicherplatz für neue Prozesse zu schaffen.
  • 5 ist ein Ablaufdiagramm, das den Verfahrensschritt S120 aus 3 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt.
  • In Verfahrensschritt S310 werden Speicherseiten-Daten von einem normalen Datenbereich 1250 gelesen, und die gelesenen Speicherseiten-Daten werden komprimiert. Zum Beispiel liest eine CPU 1120 als ein Auslagerungs-Zielobjekt ausgewählte Speicherseiten-Daten von einem normalen Datenbereich 1250 eines DRAM 1200 durch eine DRAM-Schnittstelle 1150. Die CPU 1120 kann die gelesenen Speicherseiten-Daten komprimieren.
  • In Verfahrensschritt S320 wird bestimmt, ob ein Kompressionsverhältnis der komprimierten Speicherseiten-Daten höher ist als ein Schwellwert. Zum Beispiel komprimiert die CPU 1120 die gelesenen Speicherseiten-Daten und vergleicht dann das Kompressionsverhältnis der komprimierten Speicherseiten-Daten mit dem Schwellwert.
  • Wenn das Kompressionsverhältnis nicht höher ist als ein Schwellwert, wird im Verfahrensschritt S340 ein Datentyp der gelesenen Speicherseiten-Daten als ein sofortiger Typ bestimmt. Zum Beispiel besitzen Speicherseiten-Daten mit dem sofortigen Typ ein Kompressionsverhältnis von weniger als dem Schwellwert. Wenn ein Datentyp der gelesenen Speicherseiten-Daten als ein sofortiger Typ bestimmt wird, können die komprimierten Speicherseiten-Daten gelöscht werden.
  • Wenn das Kompressionsverhältnis höher ist als der Schwellwert, wird in Verfahrensschritt S330 ein Datentyp der gelesenen Speicherseiten-Daten als ein verzögerter Typ bestimmt. Zum Beispiel besitzen Speicherseiten-Daten mit dem verzögerten Typ ein Kompressionsverhältnis von mehr als dem Schwellwert. Wenn ein Datentyp der gelesenen Speicherseiten-Daten als ein verzögerter Typ bestimmt wird, werden die komprimierten Speicherseiten-Daten zu dem Auslagerungs-Victim-Pufferbereich 1230 verschoben. In diesem Fall kann der Anwendungsprozessor 1100 die Anzahl einer Auslagerungs-Operation verringern, und somit kann die Systemleistungsfähigkeit verbessert werden.
  • In Verfahrensschritt S350 wird der Datentyp als eine Protokollinformation gespeichert. Zum Beispiel speichert die CPU 1120 den Datentyp der Speicherseiten-Daten in dem SRAM 1160 als die Protokoll-Information. Die CPU 1120 speichert einen Identifizierer eines die Speicherseiten-Daten verwendenden Prozesses, Information, die anzeigt, ob die Speicherseiten-Daten ein Code oder Daten sind, und den Datentyp der Speicherseiten-Daten als die Protokollinformation. Die in dem SRAM 1160 gespeicherte Protokollinformation wird in einem Flash-Speicher 1300 periodisch gemäß einem vorbestimmten Zeitplan oder als Antwort auf das Erzeugen eines bestimmten Ereignisses (z. B. Ausschalten) gesichert. Wenn eine Spannungsversorgung einer mobilen Vorrichtung 1000 eingeschaltet wird, wird die in dem Flash-Speicher 1300 gesicherte Protokollinformation zu dem SRAM 1160 kopiert.
  • 6 ist ein Ablaufdiagramm, das ein Datentyp-Bestimmungsverfahren einer CPU darstellt, wenn ein Datentyp gemäß einer beispielhaften Ausführungsform vorhergesagt wird.
  • In Verfahrensschritt S360 wird ein Datentyp der Speicherseiten-Daten von der Protokollinformation gelesen. Der Datentyp der Speicherseiten-Daten wird auf Grundlage von Header-Information der Speicherseiten-Daten vorhergesagt. Die CPU 1120 liest in dem SRAM 1160 gespeicherte Protokollinformation aus und bestimmt einen Datentyp von in der Protokollinformation enthaltenen Speicherseiten-Daten.
  • In Verfahrensschritt S370 wird bestimmt, ob der ausgelesene Datentyp ein verzögerter Typ ist. Wenn der ausgelesene Datentyp kein verzögerter Typ ist, wird eine Kompression an in dem normalen Datenbereich 1250 gespeicherten Speicherseiten-Daten ausgelassen, und das Verfahren endet. Wenn der ausgelesene Datentyp ein verzögerter Typ ist, werden in Verfahrensschritt S380 Speicherseiten-Daten von dem normalen Datenbereich 1250 gelesen und die ausgelesenen Speicherseiten-Daten werden komprimiert. Die komprimierten Speicherseiten-Daten werden durch eine verzögerte Auslagerungs-Operation ausgelagert.
  • 7 ist ein Ablaufdiagramm, das den Schritt S120 aus 3 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt. Verfahrensschritte S410 bis S440 in 7 werden durchgeführt in einer im Wesentlichen gleichen Art und Weise wie mit Bezug auf die Verfahrensschritte S310 bis S340 in 5 beschrieben wurde, und eine Beschreibung davon kann ausgelassen werden.
  • In Verfahrensschritt S450 wird ein Kompressionsverhältnis von als ein Auslagerungs-Zielobjekt ausgewählten Speicherseiten-Daten gespeichert. Zum Beispiel speichert die CPU 1120 ein Kompressionsverhältnis von Speicherseiten in dem SRAM 1160 als Protokollinformation. Die CPU 1120 speichert einen Identifizierer eines Prozesses unter Verwendung der Speicherseiten-Daten, Information, die anzeigt, ob die Speicherseiten-Daten ein Code oder Daten sind, und das Kompressionsverhältnis von Speicherseiten-Daten als die Protokollinformation.
  • 8 ist ein Ablaufdiagramm, das schematisch ein Datentyp-Bestimmungsverfahren einer CPU darstellt, wenn ein in 7 bestimmtes Kompressionsverhältnis (oder Datentyp) als Protokollinformation gespeichert wird und dann Bestimmen des Datentyps erneut benötigt wird.
  • In Verfahrensschritt S460 wird ein Kompressionsverhältnis der Speicherseiten-Daten von der Protokollinformation ausgelesen. Die CPU 1120 liest in dem SRAM 1160 gespeicherte Protokollinformation und bestimmt ein in der Protokollinformation enthaltenes Kompressionsverhältnis von Speicherseiten-Daten.
  • In Verfahrensschritt S470 wird bestimmt, ob das ausgelesene Kompressionsverhältnis höher ist als ein Schwellwert. Wenn das ausgelesene Kompressionsverhältnis nicht höher ist als der Schwellwert, wird Kompression an in dem normalen Datenbereich 1250 gespeicherten Speicherseiten-Daten ausgelassen und das Verfahren wird beendet. Wenn das ausgelesene Kompressionsverhältnis höher ist als ein Schwellwert, werden in Verfahrensschritt S480 Speicherseiten-Daten von dem normalen Datenbereich 1250 ausgelesen, und die ausgelesenen Speicherseiten-Daten werden komprimiert. Die komprimierten Speicherseiten-Daten können für eine Auslagerung verwendet werden.
  • Bei einer beispielhaften Ausführungsform wird ein Datentyp entsprechend einem Kompressionsverhältnis von Speicherseiten-Daten entschieden. Komprimierte Speicherseiten-Daten werden verwendet für eine Auslagerung oder gelöscht entsprechend einem Datentyp.
  • Bei einer beispielhaften Ausführungsform wird ein Datentyp von Speicherseiten-Daten vorhergesagt und der vorhergesagte Datentyp wird als Protokollinformation gespeichert. In diesem Fall wird ein Datentyp bestimmt durch Auslesen von Protokollinformation ohne Kompression der Speicherseiten-Daten. Da ein Datentyp geprüft wird und dann Kompression durchgeführt wird, wird unnötige Kompression (z. B. Kompression von Speicherseiten-Daten, die keine Kompression benötigen) verhindert, und die Leistungsfähigkeit einer mobilen Einrichtung 1000 wird erhöht.
  • 9 ist ein Ablaufdiagramm, das ein Schwellwertsteuerverfahren einer CPU gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt.
  • In Verfahrensschritt S510 wird ein Merkmal von Speicherseiten-Daten oder ein mit den Speicherseiten-Daten verknüpfter Prozess erfasst. Im Verfahrensschritt S520 wird ein Schwellwert entschieden gemäß dem erfassten Merkmal. Zum Beispiel wird ein Schwellwert zum Bestimmen, ob Speicherseiten-Daten durch eine sofortige oder eine verzögerte Auslagerungs-Operation ausgelagert werden, variiert gemäß einem Merkmal von als Auslagerungs-Zielobjekt ausgewählten Speicherseiten-Daten oder eines mit den Speicherseiten-Daten verknüpften Prozesses.
  • Wenn die mobile Vorrichtung 100 verschiedene Prozesse durchführt, wird ein festgelegter Schwellwert variiert zum Ausgleichen der Anzahl an verzögerter Auslagerungs-Operationen und der Anzahl an sofortiger Auslagerungs-Operationen. Zum Beispiel können ein Prozess und seine Daten zum Editieren von Dokumenten ein hohes Kompressionsverhältnis besitzen. Wenn die mobile Vorrichtung 100 Prozesse durchführt und Daten ein hohes Kompressionsverhältnis besitzen und ein Schwellwert festgelegt ist, kann der Anwendungsprozessor 1100 überwiegend eine verzögerte Auslagerungs-Operation durchführen. Andererseits können ein Verfahren und seine Daten zum Manipulieren von bewegten Bildern ein geringes Kompressionsverhältnis besitzen. Wenn der Anwendungsprozessor 1100 Prozesse durchführt und Daten ein geringes Kompressionsverhältnis besitzen und ein Schwellwert festgelegt ist, kann der Anwendungsprozessor 1100 überwiegend eine sofortige Auslagerungs-Operation durchführen.
  • Der Schwellwert wird auf Grundlage eines Merkmales eines Prozesses und eines Kompressionsverhältnisses von Daten variiert, und somit wird ein Verhältnis einer sofortigen Auslagerungs-Operation und einer verzögerten Auslagerungs-Operation gesteuert.
  • 10 ist ein Blockdiagramm, das eine mobile Vorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts darstellt. Bezug nehmend auf 10 enthält eine mobile Vorrichtung 2000 einen Anwendungsprozessor 2100, einen DRAM 2200, einen Flash-Speicher 2300, ein Modem 2400 und eine Benutzerschnittstelle 2500. Der Anwendungsprozessor 2100 enthält einen Bus 2110, eine CPU 2120, einen DMA 2130, einen Komprimierer- und Dekomprimierer-Block 2140, eine DRAM-Schnittstelle 2150, einen SRAM 2160 und eine Flash-Schnittstelle 2170.
  • Die mobile Vorrichtung 2000 komprimiert Speicherseiten-Daten und dekomprimiert komprimierte Speicherseiten-Daten unter Verwendung des Komprimierer- und Dekomprimierer-Blocks 2140. Verglichen mit einem Anwendungprozessor 1100 in 1 ist der Anwendungsprozessor 2100 so konfiguriert, dass Kompression an Speicherseiten-Daten durch den Komprimierer- und Dekomprimierer-Block 2140 und nicht durch die CPU 2120 durchgeführt wird. In 10 wird Kompression oder Dekompression durchgeführt durch eine zugehörige Hardware des Komprimierer- und Dekomprimierer-Blocks 2140.
  • 11 ist ein Blockdiagramm, das die Architektur von Datenbereichen eines DRAM, eines SRAM und eines Flash-Speichers aus 10 darstellt. Bezug nehmend auf 11 wird ein DRAM 2200 unterteilt in einen Auslagerungs-Victim-Pufferbereich 2230 und einen normalen Datenbereich 2250.
  • Wenn in dem normalen Datenbereich 2250 gespeicherte Daten in einen Flash-Speicher 2300 ausgelagert werden, speichert der Auslagerungs-Victim-Pufferbereich 2230 die ausgelagerten Daten durch eine verzögerte Auslagerungs-Operation. Bezug nehmend auf 11 enthält der Auslagerungs-Victim-Pufferbereich 2230 eine Mehrzahl von Einträgen (z. B. Eintrag1 bis Eintrag16), von denen jeder eine Mehrzahl von Speicherseiten-Einträgen PE1 bis PEm besitzt. Ein Speicherseiteneintrag entspricht einer Speicherseite von komprimierten Daten. Zum Beispiel wird eine Speicherseite von komprimierten Daten in dem Auslagerungs-Victim-Bereich 2230 als ein Speicherseiteneintrag gespeichert.
  • Ein Speicherseiteneintrag (oder komprimierte Speicherseiten-Daten) in jedem der Mehrzahl von Einträgen Eintrag1 bis Eintrag16 bilden zusammen einen Datensatz DC. Zum Beispiel werden die Speicherseiten-Einträge PE1 bis PEm in einer Matrixform mit einer Mehrzahl von Zeilen-Speicherseiten-Einträgen und einer Mehrzahl von Spalten-Einträgen angeordnet. Eine Zeile von Speicherseiten-Einträgen PE1 bis PEm bildet eine Speicherseite. Eine Spalte von Speicherseiten-Einträgen, die in verschiedenen Speicherseiten PE1 bis PEm gespeichert sind, bilden einen Datensatz DC.
  • Zum Beispiel werden die Speicherseiten-Einträge PE1 bis PEm von jedem der Mehrzahl von Einträgen Eintrag1 bis Eintrag16 verwaltet gemäß einer verlinkten Liste. Zum Beispiel werden erste komprimierte Speicherseiten-Daten bei einem Eintrag (z. B. Eintrag_K) als ein erster Speicherseiten-Eintrag PE1 gespeichert. Zweite komprimierte Speicherseiten-Daten werden bei dem Eintrag (z. B. Eintrag_K) als ein zweiter Speicherseiten-Eintrag PE2 gespeichert. Der erste Speicherseiten-Eintrag PE1 ist mit dem zweiten Speicherseiten-Eintrag PE2 verkettet. Genauso sind die Speicherseiten-Einträge PE1 bis PEm miteinander verkettet.
  • Wenn ein Speicherseiten-Eintrag von verketteten Speicherseiten-Einträgen PE1 bis PEm entfernt wird, wird eine Verkettungsbeziehung zwischen den verketteten Speicherseiten-Einträgen PE1 bis PEm aktualisiert. Wenn zum Beispiel ein zweiter Speicherseiten-Eintrag PE2 entfernt wird, werden ein erster und ein dritter Speicherseiten-Eintrag PE1 und PE3 miteinander verkettet. Die Speicherseiten-Einträge PE3 bis PEm werden derart aktualisiert, dass sie als Speicherseiten-Einträge PE2 bis PEm-1 verwaltet werden. Danach werden neu gespeicherte komprimierte Speicherseiten-Daten bei einem Speicherseiten-Eintrag PEm gespeichert. Zum Bespiel befindet sich der zuerst gespeicherte Speicherseiten-Eintrag PE1 auf einer Seite von jedem der Mehrzahl von Einträgen Eintrag1 bis Eintrag16. Die Speicherseiten-Einträge PE1 der Mehrzahl von Einträgen Eintrag1 bis Eintrag16 bilden einen Datensatz DC.
  • Auf den normalen Datenbereich 2250 wird zugegriffen durch Prozesse (oder Anwendungen), die auf einem Anwendungsprozessor 2100 betrieben werden. Zum Beispiel werden Codes von Prozessen und Daten, die von den Prozessen behandelt werden, in dem normalen Datenbereich 2250 gespeichert.
  • Zum Beispiel werden Daten in dem DRAM 2200 durch eine Speicherseiten-Einheit verwaltet. Eine Speicherseite besitzt eine Größe, die durch ein Betriebssystem OS der mobilen Einrichtung 2000 definiert ist. Codes von Prozessen oder Daten werden in dem DRAM 2200 durch eine Speicherseiten-Einheit gespeichert und von dem DRAM 2200 durch die Speicherseiten-Einheit ausgelesen.
  • Der Flash-Speicher 2300 dient als ein Speicher der mobilen Vorrichtung 2000. Der Anwendungsprozessor 2100 speichert verarbeitete Daten (z. B. Daten mit Prozessdaten oder von dem Prozess verarbeitete Daten) bei dem DRAM 2200 und lagert einen Teil der verarbeiteten Daten in dem Flash-Speicher 2300 aus.
  • 12 ist ein Ablaufdiagramm, das ein Speicherseiten-Datentyp-Bestimmungsverfahren eines Anwendungsprozessors aus 10 darstellt.
  • In Verfahrensschritt S610 wird Kompression von Speicherseiten-Daten begonnen. Zum Beispiel werden als ein Auslagerungs-Zielobjekt ausgewählte Speicherseiten-Daten von dem normalen Datenbereich 2250 ausgelesen, und die ausgelesenen Speicherseiten-Daten werden an den Komprimierer- und Dekomprimierer-Block 2140 gesendet. Der Komprimierer und Dekomprimierer-Block 2140 kann beginnen, die eingegebenen Speicherseiten-Daten zu komprimieren.
  • In Verfahrensschritt S620 wird bestimmt, ob ein Kompressionsverhältnis eines Teils der Speicherseiten-Daten größer als ein Schwellwert ist. Zum Beispiel vergleicht der Komprimierer- und Dekomprimierer-Block 2140 das Kompressionsverhältnis und den Schwellwert bevor die Kompression abgeschlossen wird.
  • Wenn das Kompressionsverhältnis höher ist als der Schwellwert, werden die Speicherseiten-Daten kontinuierlich komprimiert. In Verfahrensschritt S640 wird ein Datentyp der Speicherseiten-Daten als ein verzögerter Typ bestimmt. Die komprimierten Speicherseiten-Daten werden zu dem Auslagerungs-Victim-Pufferbereich 2230 verschoben.
  • Wenn das Kompressionsverhältnis geringer ist als der Schwellwert, wird die Kompression an den Speicherseiten-Daten in Verfahrensschritt S650 gestoppt. In Verfahrensschritt S660 wird ein Datentyp der Speicherseiten-Daten als ein sofortiger Typ bestimmt.
  • Bei einer beispielhaften Ausführungsform werden Kompression und Dekompression an Speicherseiten-Daten durchgeführt durch den Komprimierer- und Dekomprimierer-Block 2140, der von der CPU 2120 getrennt ist. Somit werden Kompression und Dekompression an Speicherseiten-Daten durchgeführt ohne Verbrauch einer Ressource der CPU 2120, und ein Kompressionsverhältnis wird bestimmt, bevor die Kompression beendet wird. Es ist möglich, die Durchführung unnötiger Kompression zu vermeiden durch Vergleichen des Kompressionsverhältnisses mit dem Schwellwert bevor die Kompression beendet ist.
  • Bei einer oben beschriebenen beispielhaften Ausführungsform wird ein Speicherseiten-Datentyp bestimmt unter Verwendung eines Kompressionsverhältnisses von komprimierten Speicherseiten-Daten. Das Speicherseiten-Datentyp-Bestimmungsverfahren ist nicht darauf beschränkt. Zum Beispiel wird ein Speicherseiten-Datentyp ohne Kompression vorhergesagt. Zum Beispiel können Multimedia-Daten ein geringes Kompressionsverhältnis besitzen, und ein Text oder ein Code können ein hohes Kompressionsverhältnis besitzen. Der Anwendungsprozessor 2100 kann bestimmen, ob die Speicherseiten-Daten Multimediadaten, Textdaten oder Codedaten sind, wobei von den Speicherseiten-Daten ausgelesene Header-Information verwendet wird. Auf der Grundlage des Bestimmungsergebnisses bestimmt der Anwendungsprozessor 2100 die Multimediadaten als Daten mit einem sofortigen Typ und bestimmt den Text oder Code als Daten mit einem verzögerten Typ.
  • 13 ist ein Ablaufdiagramm, das ein sofortiges Auslagerungs-Verfahren aus 12 darstellt. Eine sofortige Auslagerungsoperation wird durchgeführt, wenn Speicherseiten-Daten als Daten vom sofortigen Typ bestimmt werden. Zum Beispiel wenn ein Kompressionsverhältnis der Speicherseiten-Daten nicht höher ist als ein Schwellwert, wird die sofortige Auslagerungs-Operation durchgeführt.
  • Bezug nehmend auf die 11 und 13 werden in Verfahrensschritt S710 Speicherseiten-Daten von einem normalen Datenbereich 2250 ausgelesen. Zum Beispiel liest ein Anwendungsprozessor 2100 als ein Auslagerungs-Zielobjekt ausgewählte Speicherseiten-Daten an einer oberen Ebene (z. B. einem Betriebssystem) von dem normalen Datenbereich 2250 aus.
  • In Verfahrensschritt S720 werden die ausgelesenen Speicherseiten-Daten zu dem Flash-Speicher 2300 verschoben. Der Anwendungsprozessor 2100 speichert die ausgelesenen Speicherseiten-Daten in dem Flash-Speicher 2300.
  • In Verfahrensschritt S730 werden die Speicherseiten-Daten von dem normalen Datenbereich 2250 gelöscht. Bei einer beispielhaften Ausführungsform überschreibt der Anwendungsprozessor 2100 Speicherseiten-Daten mit einem neuen Prozess oder seinen Daten.
  • Zum Beispiel wird ein sofortiger Typ von Speicherseiten-Daten, die ein Kompressionsverhältnis von weniger als einen Schwellwert besitzen, in den Flash-Speicher 2300 ausgelagert ohne Verwenden des Auslagerungs-Victim-Pufferbereichs 2230. Zum Beispiel, wenn eine Auslagerungs-Operation benötigt wird zum Durchführen eines neuen Prozesses und eine Auslagerungs-Zielspeicherseite als ein sofortiger Typ bestimmt wird, lagert der Anwendungsprozessor 2100 die Auslagerungs-Zielspeicherseite in dem Flash-Speicher 2300 aus.
  • 14 ist ein Ablaufdiagramm, das ein verzögertes Auslagerungsverfahren aus 12 darstellt. Eine verzögerte Auslagerungs-Operation wird durchgeführt, wenn ein Typ der Speicherseiten-Daten als ein verzögerter Typ bestimmt wird. Zum Beispiel wird eine verzögerte Auslagerungs-Operation durchgeführt, wenn ein Kompressionsverhältnis von Speicherseiten-Daten größer ist als ein Schwellwert.
  • Bezug nehmend auf 11 und 14 werden komprimierte Speicherseiten-Daten in einem einer Mehrzahl von Einträgen des Auslagerungs-Victim-Pufferbereichs 2230 gespeichert. Der Auslagerungs-Victim-Pufferbereich 2230 enthält die Mehrzahl von Einträgen Eintrag1 bis Eintrag16, von denen jeder die Mehrzahl an Speicherseiten-Einträgen PE1 bis PEm besitzt. Eine Speicherseite von komprimierten Daten wird zu einem ausgewählten Speicherseiten-Eintrag in einen ausgewählten Eintrag verschoben.
  • In Verfahrensschritt 820 wird Auslagerungs-Victim-Puffer(SVB)-Information in dem SRAM 2160 gespeichert. Die SVB-Information enthält Information über in dem Auslagerungs-Victim-Pufferbereich 2230 gespeicherte komprimierte Speicherseiten-Daten. Zum Beispiel enthält die SVB-Information einen Prozess-Identifizierer, eine Adresse und LRU(„am längsten nicht verwendet”, engl.: Least Recently Used)-Information, die mit in dem Auslagerungs-Victim-Pufferbereich 2230 aus 11 gespeicherten komprimierten Speicherseiten-Daten verknüpft sind. Die Adresse enthält eine Mapping-Beziehung zwischen einer Adresse des normalen Datenbereichs 2250, an der die komprimierten Speicherseiten-Daten gespeichert werden, oder eine Adresse des Flash-Speichers 2300, die den als eine Auslagerungs-Zielspeicherseite ausgewählten Speicherseiten-Daten entspricht. Die LRU-Information enthält Information über eine Zeit, zu der auf die komprimierten Speicherseiten-Daten zuletzt zugegriffen wurde.
  • In Verfahrensschritt S830 wird bestimmt, ob eine Auslagerung des Auslagerungs-Victim-Pufferbereichs 2230 benötigt wird. Der Anwendungsprozessor 2100 bestimmt, ob eine Auslagerung des Auslagerungs-Victim-Pufferbereichs 2230 benötigt wird. Zum Beispiel, wenn der Anwendungsprozessor eine verzögerte Auslagerungs-Operation durchführt, wird eine Auslagerungs-Zielspeicherseite zu dem Auslagerungs-Victim-Pufferbereich 2230 verschoben. In diesem Fall bestimmt der Anwendungsprozessor 2100, ob der Auslagerungs-Victim-Pufferbereich 2230 einige Einträge besitzt zum Unterbringen der Auslagerungs-Zielspeicherseite. Der Anwendungsprozessor 2100 bestimmt, ob eine Auslagerung benötigt wird, auf der Grundlage des Bestimmungsergebnisses. Ob eine Auslagerung benötigt wird, wird bestimmt gemäß einer Größe eines freien Speicherplatzes des Auslagerungs-Victim-Pufferbereichs 2230.
  • Wenn eine Auslagerung des Auslagerungs-Victim-Pufferbereichs 2230 nicht benötigt wird, wird das Verfahren beendet. Eine verzögerte Auslagerungs-Operation wird durchgeführt ohne Verschieben einiger der Speicherseiten-Einträge des Auslagerungs-Victim-Pufferbereichs 2230 zu dem Flash-Speicher 2300. Wenn eine Auslagerung des Auslagerungs-Victim-Pufferbereichs 2230 benötigt wird, geht das Verfahren zu Verfahrensschritt S840 weiter.
  • In Verfahrensschritt S840 werden in dem Auslagerungs-Victim-Pufferbereich 2230 gespeicherte komprimierte Speicherseitendaten von der Mehrzahl von Einträgen des Auslagerungs-Victim-Pufferbereichs 2230 ausgewählt. Zum Beispiel wählt der Anwendungsprozessor 2100 eine Speicherseite von komprimierten Daten von jedem der Mehrzahl von Einträgen aus. Zum Beispiel wählt der Anwendungsprozessor 2100 komprimierte Speicherseiten-Daten in einer Einheit eines Datensatzes DC aus, die als erste unter der Mehrzahl von Einträgen gespeichert wurde.
  • Bei einer beispielhaften Ausführungsform wird die Einheit des Datensatzes so festgelegt, dass eine Datenübertragungszeit des Datensatzes durch den Direktspeicherzugriff gleich oder kürzer ist als eine Datenübertragungszeit des Datensatzes durch den Anwendungsprozessor. Die Datenübertragungszeit des Datensatzes durch den Direktspeicherzugriff enthält eine Programmierzeit des DMA. Zum Beispiel besitzt die Einheit des Datensatzes eine Größe von 32 kB oder mehr.
  • In Verfahrensschritt S850 verschiebt der Direktspeicherzugriff 2130 aus 10 die ausgewählten komprimierten Speicherseiten-Daten zu dem Flash-Speicher 2300. Der Anwendungsprozessor 2100 programmiert den Direktspeicherzugriff 2130 so, dass die ausgewählten komprimierten Speicherseiten-Daten verschoben werden, in einer Einheit des Datensatzes DC zu dem Flash-Speicher 2300.
  • In Verfahrensschritt S860 werden die ausgewählten komprimierten Speicherseiten-Daten von dem Auslagerungs-Victim-Pufferbereich 2230 gelöscht. Der Anwendungsprozessor 2100 löscht die ausgewählten komprimierten Speicherseiten-Daten von dem Auslagerungs-Victim-Pufferbereich 2230. Bei einer beispielhaften Ausführungsform werden die ausgewählten komprimierten Speicherseiten-Daten des Auslagerungs-Victim-Pufferbereichs 2230 überschrieben von einer Auslagerungs-Zielspeicherseite durch eine verzögerte Auslagerungs-Operation.
  • In Verfahrensschritt S870 wird die SVB-Information aktualisiert. Zum Beispiel aktualisiert der Anwendungsprozessor 2100 die SVB-Information so, dass Information über komprimierte Speicherseiten-Daten, die ausgelagert sind, gelöscht wird.
  • Zum Beispiel verwaltet der Anwendungsprozessor 2100 die SVB-Information unter Verwendung einer SVB-Deskriptorentabelle 2161 des SRAM 2160 aus 11 und einer Protokollinformation.
  • 15 und 16 sind Diagramme, die Beispiele einer sofortigen Auslagerungs-Operation und einer verzögerten Auslagerungs-Operation gemäß einer beispielhaften Ausführungsform des erfinderischen Konzeptes darstellen. In 15 und 16 kann der normale Datenbereich 2250 aus 11 konfiguriert sein zum Speichern einer Mehrzahl von Speicherseiten-Daten PD. Der Einfachheit der Beschreibung halber wird der normale Datenbereich 2250 in einer Matrixform mit einer Mehrzahl von Zeilen R1 bis Ri und einer Mehrzahl von Spalten C1 bis Cj dargestellt.
  • Bezug nehmend auf 15 werden Speicherseiten-Daten PD' in der dritten Zeile R3 und den ersten und zweiten Spalten C1 und C2 des normalen Datenbereichs 2250 ausgewählt als sofortiges Auslagerungs-Zielobjekt. Die ausgewählten Speicherseiten-Daten PD' werden zu dem Flash-Speicher 2300 verschoben. Danach werden die ausgewählten Speicherseiten-Daten PD' einem neuen Prozess des Anwendungsprozessors 2100 zugeordnet.
  • Bezug nehmend auf 16 werden Speicherseiten-Daten PD' in der zweiten Zeile R2 und in einer ersten und einer zweiten Spalte C1 und C2 des normalen Datenbereichs 2250 ausgewählt als ein verzögertes Auslagerungs-Zielobjekt. Die ausgewählten Speicherseiten-Daten PD' werden komprimiert, und die komprimierten Speicherseiten-Daten werden in den Auslagerungs-Victim-Pufferbereich 2230 verschoben. Zum Beispiel werden die komprimierten Speicherseiten-Daten gespeichert bei einem zweiten und einem dritten Eintrag Eintrag2 und Eintrag3 als Speicherseiten-Einträge. In diesem Fall kann der Anwendungsprozessor 2100 die Anzahl von Auslagerungsoperationen zu dem Flash-Speicher 2300 verringern und kann somit die Systemleistungsfähigkeit erhöhen.
  • Wenn danach eine Auslagerungsbedingung des Auslagerungs-Victim-Pufferbereichs 2230 erfüllt ist, werden komprimierten Speicherseiten-Daten in den Flash-Speicher 2300 verschoben durch eine verzögerte Auslagerungs-Operation. Wenn zum Beispiel die komprimierten Speicherseiten-Daten einen Datensatz DC bilden als komprimierte Speicherseiten-Daten, die als erstes in dem Auslagerungs-Victim-Pufferbereich 2230 gespeichert wurden, werden die komprimierten Speicherseiten-Daten durch eine verzögerte Auslagerung in den Flash-Speicher 2300 ausgelagert.
  • 17 ist ein Ablaufdiagramm, das ein Wiederherstellungsverfahren für ausgelagerte Speicherseiten-Daten darstellt. Bezug nehmend auf 10 und 17 wird in Verfahrensschritt S910 bestimmt, ob ausgelagerte Speicherseitendaten benötigt werden. Zum Beispiel wird in dem Fall, dass entweder ein Betriebssystem oder eine Anwendung, die auf einer mobilen Vorrichtung 2000 betrieben wird, auf ausgelagerte Speicherseiten-Daten zugreift, eine ausgelagerte Speicherseite benötigt. Wenn keine ausgelagerte Speicherseite benötigt wird, wird das Verfahren beendet. Wenn eine ausgelagerte Speicherseite benötigt wird, geht das Verfahren zu Verfahrensschritt S920 über.
  • In Verfahrensschritt 920 wird bestimmt, ob die ausgelagerten Speicherseiten-Daten Speicherseiten-Daten eines verzögerten Typs sind. Zum Beispiel bestimmt ein Anwendungsprozessor 2100, ob die ausgelagerten Speicherseiten-Daten Speicherseiten-Daten eines verzögerten Typs sind, unter Verwendung der in dem SRAM 1160 gespeicherten Protokollinformation.
  • Wenn die ausgelagerten Speicherseiten-Daten keine Speicherseiten-Daten eines verzögerten Typs sind, das heißt, dass die ausgelagerten Speicherseiten-Daten Speicherseiten-Daten eines sofortigen Typs sind, werden in Verfahrensschritt S930 angeforderte Speicherseiten-Daten von einem Flash-Speicher 2300 ausgelesen, und die ausgelesenen Speicherseiten-Daten werden in einem normalen Datenbereich 2250 gespeichert. Dabei werden die angeforderten Speicherseiten-Daten von dem Flash-Speicher 2300 gelöscht. Speicherseiten-Daten eines sofortigen Typs sind Speicherseiten-Daten, die sofort in den Flash-Speicher 2300 ausgelagert werden. Somit werden die angeforderten Speicherseiten-Daten wiederhergestellt durch Lesen der angeforderten Speicherseiten-Daten von dem Flash-Speicher 2300 und Speichern der angeforderten Speicherseiten-Daten, die ausgelesen wurden, in dem normalen Datenbereich 2250.
  • Wenn die ausgelagerten Speicherseiten-Daten keine Speicherseiten-Daten eines verzögerten Typs sind, wird in Verfahrensschritt S940 bestimmt, ob die angeforderten Speicherseiten-Daten in einem Auslagerungs-Victim-Pufferbereich 2230 gespeichert sind. Wie oben beschrieben werden Speicherseiten-Daten eines verzögerten Typs in dem Auslagerungs-Victim-Pufferbereich 2230 gespeichert und werden aufrecht erhalten bis eine Auslagerungsbedingung des Auslagerungs-Victim-Pufferbereichs 2230 erfüllt ist. Somit variiert ein Verfahren zum Wiederherstellen der angeforderten Speicherseiten-Daten in Abhängigkeit davon, ob die angeforderten Speicherseiten-Daten in dem Auslagerungs-Victim-Pufferbereich 2230 gespeichert sind.
  • In dem Fall, dass die angeforderten Speicherseiten-Daten nicht in dem Auslagerungs-Victim-Pufferbereich 2230 gespeichert sind, sind die angeforderten Speicherseiten-Daten in dem Flash-Speicher 2300 vorhanden. Somit werden in Verfahrensschritt S950 die angeforderten Speicherseiten-Daten von dem Flash-Speicher 2300 ausgelesen, und die ausgelesenen Speicherseiten-Daten werden dekomprimiert. Die dekomprimierten Speicherseiten-Daten werden in dem normalen Datenbereich 2250 gespeichert. Die angeforderten Speicherseiten-Daten (d. h. die komprimierten Speicherseiten-Daten) werden aus dem Flash-Speicher 2300 gelöscht.
  • In dem Fall, dass die angeforderten Speicherseiten-Daten nicht in einem Auslagerungs-Victim-Pufferbereich 2230 gespeichert sind, sind in Verfahrensschritt S960 die angeforderten Speicherseiten-Daten in dem Flash-Speicher 2300 vorhanden. Somit werden in Verfahrensschritt S950 die angeforderten Speicherseiten-Daten von dem Auslagerungs-Victim-Pufferbereich 2230 ausgelesen, und die ausgelesenen Speicherseiten-Daten werden dekomprimiert. Die dekomprimierten Speicherseiten-Daten werden in dem normalen Datenbereich 2250 gespeichert. Dabei werden die angeforderten Speicherseiten-Daten (d. h. komprimierten Speicherseiten-Daten) von dem Auslagerungs-Victim-Speicherbereich 2230 gelöscht. Danach werden in Verfahrensschritt S970 Auslagerungs-Victim-Pufferinformation und Einträge des Auslagerungs-Victim-Pufferbereichs 2230 aktualisiert.
  • Eine Auslagerungs-Operation kann Seitenflattern verursachen. Seitenflattern tritt auf, wenn die mobile Vorrichtung 2000 exzessiv eine Ressource in Anspruch nimmt zum Auslagern von Speicherseiten-Daten und zum Wiederherstellen ausgelagerter Speicherseiten-Daten (d. h. Speicherseitenverwaltung).
  • Bei einer beispielhaften Ausführungsform des erfinderischen Konzepts werden komprimierte Speicherseiten-Daten in dem Auslagerungs-Victim-Pufferbereich 2230 des DRAM 2200 während einer vorbestimmten Zeit gespeichert bevor sie in den Flash-Speicher 2300 ausgelagert werden. Somit wird die Wahrscheinlichkeit des Seitenflatterns verringert und die Leistungsfähigkeit der mobilen Vorrichtung wird erhöht. Außerdem werden in dem Auslagerungs-Victim-Pufferbereich 2230 gespeicherte Daten durch den DMA 2130 ausgelagert. Der DMA verbraucht weniger Leistung als der Anwendungsprozessor 2100. Somit ist die Leistungsaufnahme der mobilen Vorrichtung 2000 verringert. Wenn der Anwendungsprozessor 2100 Daten kopiert, werden außerdem die kopierten Daten in einem Cache-Speicher des Anwendungsprozessors 2100 gespeichert. Wenn Daten durch den DMA kopiert werden, müssen die kopierten Daten nicht in dem Cache-Speicher des Anwendungsprozessors 2100 gespeichert werden. Somit vermeidet der DMA Datenverletzung des Cache-Speichers des Anwendungsprozessors 2100 bei einer Auslagerungs-Operation, und die Leistungsfähigkeit der mobilen Vorrichtung 2000 ist erhöht.
  • Während das vorliegende erfinderische Konzept gezeigt und beschrieben wurde mit Bezug auf beispielhafte Ausführungsformen davon ist es für Durchschnittsfachleute klar, dass verschiedenste Änderungen in der Gestalt und in Details dabei gemacht werden können ohne von dem Geist und dem Umfang des erfinderischen Konzepts, wie er durch die folgenden Ansprüche definiert ist, abzuweichen.
  • 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
    • KR 10-2012-0143722 [0001]

Claims (32)

  1. Mobile Vorrichtung mit: einem Speicher (1300; 2300), der zum Speichern von Daten konfiguriert ist; einem Pufferspeicher (1200; 2200), der derart konfiguriert ist, dass Cr einen Auslagerungs-Victim-Pufferbereich (1230; 2230) und einen normalen Datenbereich (1250; 2250) enthält; und einem Anwendungsprozessor (1100; 2100), der konfiguriert ist zum Auswählen von Speicherseiten-Daten, die von dem normalen Datenbereich (1250; 2250) ausgelagert werden sollen, und zum Durchführen einer Auslagerungsoperation an den ausgewählten Speicherseiten-Daten, wobei die Auslagerungs-Operation je nach Datentyp der ausgewählten Speicherseiten-Daten eine sofortige Auslagerungs-Operation durchführt, bei der die Speicherseiten-Daten von dem normalen Datenbereich (1250; 2250) zu dem Speicher (1300; 2300) verschoben werden, oder eine verzögerte Auslagerungs-Operation durchführt, bei der die Speicherseiten-Daten von dem normalen Bereich (1250; 2250) über den Auslagerungs-Victim-Pufferbereich (1230; 2230) zu dem Speicher (1300; 2300) verschoben werden.
  2. Mobile Vorrichtung nach Anspruch 1, wobei der Anwendungsprozessor (1100; 2100) für die verzögerte Auslagerungs-Operation dazu konfiguriert ist, die Speicherseiten-Daten zu komprimieren, die komprimierten Speicherseiten-Daten in dem Auslagerungs-Victim-Pufferbereich (1230; 2230) zu speichern und die komprimierten Speicherseiten-Daten in den Speicher (1300; 2300) zu verschieben.
  3. Mobile Vorrichtung nach Anspruch 2, wobei der Speicher (1300; 2300) ein Flash-Speicher und der Puffer-Speicher (1200; 2200) ein DRAM ist.
  4. Mobile Vorrichtung nach Anspruch 2, wobei wenn die komprimierten Speicherseiten-Daten, die in dem Auslagerungs-Victim-Pufferbereich (1230; 2230) gespeichert sind, angefordert werden, der Anwendungsprozessor (1100; 2100) dazu konfiguriert ist, die komprimierten Speicherseiten-Daten, die in dem Auslagerungs-Victim-Pufferbereich (1230; 2230) gespeichert sind, auszulesen, die komprimierten Speicherseiten-Daten zu dekomprimieren und die dekomprimierten Daten in den normalen Datenbereich (1250; 2250) zu speichern.
  5. Mobile Vorrichtung nach Anspruch 1, wobei der Anwendungsprozessor (1100; 2100) für die sofortige Auslagerungs-Operation dazu konfiguriert ist, die Speicherseiten-Daten von dem normalen Datenbereich (1250; 2250) in den Speicher (1300; 2300) zu verschieben ohne den Auslagerungs-Victim-Pufferbereich (1230; 2230) zu verwenden.
  6. Mobile Vorrichtung nach Anspruch 5, wobei wenn ein Kompressionsverhältnis der ausgewählten Speicherseiten-Daten geringer ist als ein Schwellenwert, der Anwendungsprozessor (1100; 2100) dafür konfiguriert ist, die sofortige Auslagerungs-Operation durchzuführen.
  7. Mobile Vorrichtung mit: einem nichtflüchtigen Speicher (1300; 2300); einem DRAM (1200; 2200), der derart konfiguriert ist, dass er einen Auslagerungs-Victim-Pufferbereich (1230; 2230) und einen normalen Datenbereich (1250; 2250) enthält; und einem Anwendungsprozessor (1100; 2100), der an den nichtflüchtigen Speicher (1300; 2300) und den DRAM (1200; 2200) gekoppelt ist, wobei wenn eine Auslagerung von in dem normalen Datenbereich (1250; 2250) gespeicherten Speicherseiten-Daten angefordert wird, der Anwendungsprozessor (1100; 2100) dazu konfiguriert ist, je nach Typ der Speicherseiten-Daten eine sofortige Auslagerungs-Operation oder eine verzögerte Auslagerungs-Operation durchzuführen, wobei die sofortige Auslagerungs-Operation die Speicherseiten-Daten in den nichtflüchtigen Speicher (1300; 2300) verschiebt ohne den Auslagerungs-Victim-Puffer (1230; 2230) zu verwenden, und wobei die verzögerte Auslagerungs-Operation die Speicherseiten-Daten komprimiert und die komprimierten Daten über den Auslagerungs-Victim-Pufferbereich (1230; 2230) in den nichtflüchtigen Speicher (1300; 2300) verschiebt.
  8. Mobile Vorrichtung nach Anspruch 7, wobei der Anwendungsprozessor (1100; 2100) je nach einem Kompressionsverhältnis der Speicherseiten-Daten einen Typ der Speicherseiten-Daten bestimmt.
  9. Mobile Vorrichtung nach Anspruch 7, wobei der Anwendungsprozessor (1100; 2100) eine Direktspeicherzugriffseinheit (1130; 2130) aufweist, die konfiguriert ist zum Verschieben der komprimierten Speicherseiten-Daten, die in dem Auslagerungs-Victim-Puffer (1230; 2230) gespeichert sind, in den nichtflüchtigen Speicher (1300; 2300).
  10. Mobile Vorrichtung nach Anspruch 7, wobei die komprimierten Speicherseiten-Daten in einer Einheit eines Datensatzes von dem Auslagerungs-Victim-Puffer (1230; 2230) zu dem nichtflüchtigen Speicher (1300; 2300) verschoben werden.
  11. Mobile Vorrichtung nach Anspruch 10, wobei die Einheit des Datensatzes so festgelegt ist, dass eine Datenübertragungszeit des Datensatzes durch die Direktspeicherzugriffseinheit (1130; 2130) gleich oder kürzer ist als eine Datenübertragungszeit des Datensatzes durch den Anwendungsprozessor (1100; 2100), wobei die Datenübertragungszeit des Datensatzes durch die Direktspeicherzugriffseinheit (1130; 2130) eine Programmierzeit des DMA (1130; 2130) enthält.
  12. Mobile Vorrichtung nach Anspruch 10, wobei die Einheit des Datensatzes eine Größe von 32 kB oder mehr besitzt.
  13. Datenverwaltungsverfahren eines Anwendungsprozessors (1100; 2100), aufweisend: Bestimmen eines Datentyps von in einem normalen Datenbereich (1150; 2150) eines DRAM (1200; 2200) gespeicherten Speicherseiten-Daten und Durchführen einer verzögerten Auslagerungs-Operation an den Speicherseiten-Daten, wenn der bestimmte Datentyp ein verzögerter Typ ist und einer sofortigen Auslagerungs-Operation an den Speicherseiten-Daten, wenn der bestimmte Datentyp ein sofortiger Typ ist.
  14. Datenverwaltungsverfahren nach Anspruch 13, wobei das Bestimmen eines Datentyps von in einem DRAM (1200; 2200) gespeicherten Speicherseiten-Daten aufweist: Komprimieren der Speicherseiten-Daten; Bestimmen eines Kompressionsverhältnisses der Speicherseiten-Daten; und Entscheiden eines Datentyps der Speicherseiten-Daten als der verzögerte Typ, wenn das Kompressionsverhältnis der Speicherseiten-Daten höher als ein Schwellwert ist, und als der sofortige Typ, wenn das Kompressionsverhältnis der Speicherseiten-Daten nicht höher als der Schwellwert ist.
  15. Datenverwaltungsverfahren nach Anspruch 14, weiter aufweisend: Speichern des Datentyps der Speicherseiten-Daten.
  16. Datenverwaltungsverfahren nach Anspruch 13, weiter aufweisend: Vorhersagen des Datentyps der Speicherseiten-Daten unter Verwendung von Header-Information der Speicherseiten-Daten; und wenn der Datentyp ein verzögerter Typ ist, Durchführen einer Kompressions-Operation an den Speicherseiten-Daten; und wenn der Datentyp kein verzögerter Typ ist, überspringen der Kompressions-Operation an den Speicherseiten-Daten.
  17. Datenverwaltungsverfahren nach Anspruch 14, weiter aufweisend: Speichern der Kompressionsrate der Speicherseiten-Daten.
  18. Datenverwaltungsverfahren nach Anspruch 17, weiter aufweisend: Auslesen des gespeicherten Kompressionsverhältnisses; und wenn das ausgelesene Kompressionsverhältnis größer ist als der Schwellwert, Auslesen der Speicherseiten-Daten aus dem DRAM (1200; 2200) zum Komprimieren der ausgelesenen Speicherseiten-Daten und wobei die Kompression der Speicherseiten-Daten übersprungen wird, wenn das ausgelesene Kompressionsverhältnis nicht höher ist als der Schwellwert.
  19. Datenverwaltungsverfahren nach Anspruch 13, weiter aufweisen: Erfassen eines Merkmals der Speicherseiten-Daten oder eines mit den Speicherseiten-Daten verknüpften Prozesses; und Verändern des Schwellwertes gemäß dem Erfassungsergebnis.
  20. Datenverwaltungsverfahren nach Anspruch 13, wobei das Bestimmen des Datentyps von in dem DRAM (1200; 2200) gespeicherten Speicherseiten-Daten aufweist: Komprimieren eines Teils der Speicherseiten-Daten; Bestimmen, ob ein Kompressionsverhältnis des Teils der Speicherseiten-Daten höher ist als ein Schwellwert; und wenn das Kompressions-Verhältnis nicht höher ist als der Schwellwert, Komprimieren der verbleibenden der Speicherseiten-Daten und entscheiden, dass der Datentyp ein verzögerter Typ ist; und wenn das Kompressionsverhältnis der Speicherseiten-Daten nicht höher ist als der Schwellwert, entscheiden des Datentyps als der sofortige Typ ohne Komprimieren der Verbleibenden der Speicherseiten-Daten.
  21. Datenverwaltungsverfahren nach Anspruch 13, wobei die sofortige Auslagerungs-Operation weiter aufweist: Verschieben der Speicherseiten-Daten von dem DRAM (1200; 2200) in einen Speicher (1300; 2300).
  22. Datenverwaltungsverfahren nach Anspruch 13, wobei die verzögerte Auslagerungs-Operation aufweist: Verschieben der Speicherseiten-Daten in einem Auslagerungs-Victim-Pufferbereich (1230; 2230) des DRAM (1200; 2200) in einem komprimierten Datenformat.
  23. Datenverwaltungsverfahren nach Anspruch 22, wobei der Auslagerungs-Victim-Pufferbereich (1230; 2230) derart konfiguriert ist, dass er eine Mehrzahl von Einträgen enthält, von denen jeder dazu konfiguriert ist, eine Mehrzahl von Speicherseiten-Einträgen (PE1-PEm) zu besitzen, wobei die Speicherseiten-Daten in einem Speicherseiten-Eintrag von der Mehrzahl der Einträge gespeichert werden, wobei die Speicherseiten-Daten in dem komprimierten Datenformat gespeichert werden.
  24. Datenverwaltungsverfahren nach Anspruch 23, wobei die Mehrzahl von Speicherseiten-Einträge (PE1–PEm) von jedem der Mehrzahl von Einträgen verwaltet wird unter Verwendung einer verketteten Liste.
  25. Datenverwaltungsverfahren nach Anspruch 23, wobei die verzögerte Auslagerungs-Operation weiter aufweist: Verschieben der komprimierten Speicherseiten-Daten von dem Auslagerungs-Victim-Pufferbereich (1230; 2230) in einen Speicher (1300; 2300).
  26. Datenverwaltungsverfahren nach Anspruch 25, wobei die komprimierten Speicherseiten-Daten ausgewählt werden, wenn die komprimierten Speicherseiten-Daten als erstes in den Auslagerungs-Victim-Pufferbereich (1230; 2230) gespeichert werden.
  27. Datenverwaltungsverfahren nach Anspruch 26, weiter aufweisend: Auslesen von komprimierten Speicherseiten-Daten von der Mehrzahl von Einträgen, wenn die komprimierten Speicherseiten-Daten, die in dem Auslagerungs-Victim-Pufferbereich (1230; 2230) gespeichert sind, angefordert werden; Dekomprimieren der komprimierten Speicherseiten-Daten; und Speichern der dekomprimierten Speicherseiten-Daten in dem normalen Datenbereich (1250; 2250).
  28. Datenverwaltungsverfahren nach Anspruch 13, wobei die verzögerte Auslagerungs-Operation, die unter Verwendung einer Direktspeicherzugriffs durchgeführt wird, und die sofortige Auslagerungs-Operation von einem Prozessor durchgeführt werden.
  29. Anwendungsprozessor mit: einer DRAM-Schnittstelle (1150; 2150); einer Flash-Speicher-Schnittstelle (1170; 2170); einer Direktspeicherzugriffseinheit (1130; 2130); und einem Prozessor (1120; 2120), der konfiguriert ist zum Bestimmen, ob die Auslagerungs-Operation angefordert wird, der konfiguriert ist zum Empfangen von Speicherseiten-Daten, die durch die DRAM-Schnittstelle (1150; 2150) ausgelagert werden sollen, und der dazu konfiguriert ist, die Auslagerungs-Operation an den Speicherseiten-Daten je nach Datentyp der Speicherseiten-Daten in einer sofortigen Auslagerungs-Operation oder in einer verzögerten Auslagerungs-Operation durchzuführen, wobei der Prozessor (1120; 2120) bei der verzögerten Auslagerungs-Operation dazu konfiguriert ist, die Speicherseiten-Daten zu komprimieren und die komprimierten Speicherseiten-Daten durch die DRAM-Schnittstelle (1150; 2150) auszugeben, und die Direktspeicherzugriffseinheit (1130; 2130) dazu konfiguriert ist, einen Datenpfad zwischen der DRAM-Schnittstelle (1150; 2150) und der Flash-Speicherschnittstelle (1170; 2170) zu steuern, um die ausgegebenen kontrollierten Speicherseiten-Daten von der DRAM-Schnittstelle (1150; 2150) zu der Flash-Speicher-Schnittstelle (1170; 2170) zu verschieben.
  30. Anwendungsprozessor nach Anspruch 29, wobei der Datentyp der Speicherseiten-Daten bestimmt wird durch ein Kompressionsverhältnis der Speicherseiten-Daten.
  31. Anwendungsprozessor nach Anspruch 29, wobei der Datentyp der Speicherseiten-Daten bestimmt wird durch Header-Information der Speicherseiten-Daten ohne Komprimieren der Speicherseiten-Daten.
  32. Anwendungsprozessor nach Anspruch 29, wobei die sofortige Auslagerungs-Operation durchgeführt wird ohne Komprimieren der Speicherseiten-Daten.
DE102013113189.1A 2012-12-11 2013-11-28 Mobile Vorrichtung und Verfahren zum Verwalten von Daten mit Auslagerung derselben Pending DE102013113189A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2012-0143722 2012-12-11
KR1020120143722A KR102011135B1 (ko) 2012-12-11 2012-12-11 모바일 장치 및 그것의 스왑을 통한 데이터 관리 방법

Publications (1)

Publication Number Publication Date
DE102013113189A1 true DE102013113189A1 (de) 2014-06-12

Family

ID=50778273

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013113189.1A Pending DE102013113189A1 (de) 2012-12-11 2013-11-28 Mobile Vorrichtung und Verfahren zum Verwalten von Daten mit Auslagerung derselben

Country Status (8)

Country Link
US (1) US9116631B2 (de)
JP (1) JP2014116017A (de)
KR (1) KR102011135B1 (de)
CN (1) CN103870212B (de)
AU (1) AU2013263762A1 (de)
DE (1) DE102013113189A1 (de)
NL (1) NL2011914B1 (de)
TW (1) TWI578225B (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10102148B2 (en) 2013-06-13 2018-10-16 Microsoft Technology Licensing, Llc Page-based compressed storage management
KR101468336B1 (ko) * 2013-11-25 2014-12-04 성균관대학교산학협력단 데이터 압축률 예측 기법에 기반한 데이터 분산 저장 방법, 이를 이용한 저장 장치 및 시스템
US9547447B2 (en) * 2014-01-03 2017-01-17 Advanced Micro Devices, Inc. Dedicated interface for coupling flash memory and dynamic random access memory
US9684625B2 (en) 2014-03-21 2017-06-20 Microsoft Technology Licensing, Llc Asynchronously prefetching sharable memory pages
KR101654724B1 (ko) 2014-11-18 2016-09-22 엘지전자 주식회사 적어도 하나의 메모리를 포함하는 디바이스의 제어 방법 및 스마트 tv
US9632924B2 (en) 2015-03-02 2017-04-25 Microsoft Technology Licensing, Llc Using memory compression to reduce memory commit charge
KR102314138B1 (ko) 2015-03-05 2021-10-18 삼성전자 주식회사 모바일 장치 및 모바일 장치의 데이터 관리 방법
US10037270B2 (en) * 2015-04-14 2018-07-31 Microsoft Technology Licensing, Llc Reducing memory commit charge when compressing memory
CA2986555A1 (en) * 2015-05-21 2016-11-24 Zeropoint Technologies Ab Methods, devices and systems for hybrid data compression and decompression
US10452614B2 (en) 2015-06-12 2019-10-22 International Business Machines Corporation Storage data reduction analysis and forecast
US10762030B2 (en) * 2016-05-25 2020-09-01 Samsung Electronics Co., Ltd. Storage system, method, and apparatus for fast IO on PCIE devices
JP7007557B2 (ja) * 2017-08-24 2022-01-24 富士通株式会社 情報処理装置、プロセス管理方法およびプロセス管理プログラム
KR102281966B1 (ko) 2017-11-01 2021-07-26 삼성전자주식회사 데이터 스토리지 장치 및 그 동작 방법
JP2019133391A (ja) * 2018-01-31 2019-08-08 東芝メモリ株式会社 メモリシステムおよび制御方法
KR102533726B1 (ko) 2018-04-06 2023-05-18 삼성전자주식회사 전자 장치 및 그의 제어방법
CN110457235B (zh) * 2019-08-20 2021-10-08 Oppo广东移动通信有限公司 内存压缩方法、装置、终端及存储介质
KR102379176B1 (ko) * 2019-12-31 2022-03-28 성균관대학교산학협력단 메모리 스왑 방법 및 시스템
KR20220116650A (ko) * 2021-02-15 2022-08-23 삼성전자주식회사 이형 메모리들을 포함하는 전자 장치 및 그것의 이형 메모리들 간 압축 데이터 이동 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256642B1 (en) 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory
JP2000276363A (ja) 1999-03-26 2000-10-06 Nec Corp 記憶階層システムにおけるスワッピング処理方法ならびに装置
US6681305B1 (en) 2000-05-30 2004-01-20 International Business Machines Corporation Method for operating system support for memory compression
CA2355473A1 (en) * 2000-09-29 2002-03-29 Linghsiao Wang Buffer management for support of quality-of-service guarantees and data flow control in data switching
US6877081B2 (en) 2001-02-13 2005-04-05 International Business Machines Corporation System and method for managing memory compression transparent to an operating system
US6687185B1 (en) * 2002-08-29 2004-02-03 Micron Technology, Inc. Method and apparatus for setting and compensating read latency in a high speed DRAM
US6762974B1 (en) * 2003-03-18 2004-07-13 Micron Technology, Inc. Method and apparatus for establishing and maintaining desired read latency in high-speed DRAM
EP1870814B1 (de) * 2006-06-19 2014-08-13 Texas Instruments France Verfahren und Vorrichtung für sicheren, nachfragebasierten Seitenabruf für Prozessorvorrichtungen
WO2007023975A1 (ja) 2005-08-22 2007-03-01 Ssd Company Limited マルチプロセッサ、ダイレクトメモリアクセスコントローラ、及びシリアルデータ送受信装置
KR100735560B1 (ko) 2005-11-09 2007-07-04 삼성전자주식회사 가상 메모리를 제어하는 장치 및 방법
EP1870813B1 (de) * 2006-06-19 2013-01-30 Texas Instruments France Seitenverarbeitende Schaltkreise, Vorrichtungen, Verfahren und Systeme für sicheren, nachfragebasierten Seitenabruf und andere Tätigkeiten
JP2008140236A (ja) 2006-12-04 2008-06-19 Nec Corp メモリ管理システム、情報処理装置及びメモリ管理方法
JP5018060B2 (ja) 2006-12-14 2012-09-05 日本電気株式会社 情報処理装置および情報処理方法
JP2008226082A (ja) 2007-03-15 2008-09-25 Nec Corp データ圧縮伸張装置、コンピュータに実行させるためのプログラム、及びデータ圧縮伸張方法
US8180981B2 (en) 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
KR101612922B1 (ko) * 2009-06-09 2016-04-15 삼성전자주식회사 메모리 시스템 및 메모리 시스템 관리 방법
CN102473140B (zh) * 2009-07-17 2015-05-13 株式会社东芝 存储器管理装置
JP2011128792A (ja) * 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
KR101739556B1 (ko) * 2010-11-15 2017-05-24 삼성전자주식회사 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법

Also Published As

Publication number Publication date
TW201423577A (zh) 2014-06-16
US9116631B2 (en) 2015-08-25
US20140164686A1 (en) 2014-06-12
NL2011914B1 (en) 2019-07-04
TWI578225B (zh) 2017-04-11
KR20140075416A (ko) 2014-06-19
JP2014116017A (ja) 2014-06-26
CN103870212B (zh) 2018-07-13
CN103870212A (zh) 2014-06-18
AU2013263762A1 (en) 2014-06-26
NL2011914A (en) 2014-06-12
KR102011135B1 (ko) 2019-08-14

Similar Documents

Publication Publication Date Title
DE102013113189A1 (de) Mobile Vorrichtung und Verfahren zum Verwalten von Daten mit Auslagerung derselben
WO2017112357A1 (en) Compressed caching of a logical-to-physical address table for nand-type flash memory
US9727246B2 (en) Memory device, computer system, and method of controlling memory device
US20140215170A1 (en) Block Compression in a Key/Value Store
TW201636845A (zh) 記憶體裝置與其操作方法
JP2006172458A (ja) 不揮発性保存装置にマルチメディアデータをブロック単位で保存する方法及び装置
DE102013218440A1 (de) Verfahren zum Betreiben eines Flash-Speicherbauelements sowie Bildverarbeitungssystem
DE102017128967A1 (de) Speichervorrichtung, welche eine Hashing-basierte Übersetzung zwischen einer logischen Adresse und einer physikalischen Adresse durchführt
CN104281528A (zh) 一种数据存储方法及装置
CN108958643B (zh) 数据存储装置及其操作方法
JP6139711B2 (ja) 情報処理装置
CN110968585B (zh) 面向列的存储方法、装置、设备及计算机可读存储介质
WO2017222739A1 (en) Selective flash memory compression/decompression using a storage usage collar
US20170003890A1 (en) Device, program, recording medium, and method for extending service life of memory
CN116340205B (zh) 访问请求处理方法以及缓存装置
CN111966531A (zh) 数据快照方法、装置、计算机设备及存储介质
US20200250101A1 (en) System and method for intelligent tile-based memory bandwidth management
JP2008140236A (ja) メモリ管理システム、情報処理装置及びメモリ管理方法
US20170344260A1 (en) Electronic device and operating method thereof
JP2013254357A (ja) 情報処理装置および方法、並びにプログラム
CN108196790B (zh) 数据管理方法、存储设备及计算机可读存储介质
JP3772003B2 (ja) メモリ管理システムおよびデータ管理方法
CN112181862A (zh) 内存空间管理方法、装置、计算机设备和存储介质
CN117931061A (zh) 车机系统插件化增值服务方法、装置及电子设备
WO2019124320A1 (ja) ストレージコントローラ、ストレージアレイ装置、データ格納方法、および記憶媒体

Legal Events

Date Code Title Description
R012 Request for examination validly filed