-
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]