[go: up one dir, main page]

JP2014116017A - モバイル装置とアプリケーションプロセッサ及びそのデータ管理方法 - Google Patents

モバイル装置とアプリケーションプロセッサ及びそのデータ管理方法 Download PDF

Info

Publication number
JP2014116017A
JP2014116017A JP2013256247A JP2013256247A JP2014116017A JP 2014116017 A JP2014116017 A JP 2014116017A JP 2013256247 A JP2013256247 A JP 2013256247A JP 2013256247 A JP2013256247 A JP 2013256247A JP 2014116017 A JP2014116017 A JP 2014116017A
Authority
JP
Japan
Prior art keywords
data
page data
swap
page
type
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
JP2013256247A
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 JP2014116017A publication Critical patent/JP2014116017A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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

【課題】モバイル装置とアプリケーションプロセッサ及びそのデータ管理方法を提供する。
【解決手段】本発明のモバイル装置は、データを格納するためのストレージと、スワップビクティムバッファ領域及び通常のデータ領域に分割されるバッファメモリと、通常のデータ領域に格納されたページデータのスワップ動作が要求される時、ページデータを圧縮してスワップビクティムバッファ領域に格納するアプリケーションプロセッサと、で構成され、アプリケーションプロセッサは、スワップビクティムバッファ領域に格納されたデータが特定の条件を満たす場合、スワップビクティムバッファ領域に格納されたデータをストレージにスワップする。
【選択図】図11

Description

本発明は、モバイル装置に関し、より詳細には、アプリケーションプロセッサとスワップ(swap)を通じたそのデータ管理方法及びそれを備えるモバイル装置に関する。
近年、スマートフォン、タブレット端末、ノートパソコンなどのようなモバイル装置の利用が急増している。半導体技術及び通信技術の発展は、モバイル装置の情報処理量の増加を誘発している。モバイル装置の情報処理量が増加することによって、モバイル装置は、スマート機器という新しい形態に発展している。
スマート機器は、ユーザが自由にアプリケーションをインストールし、インストールされたアプリケーションを利用して情報を生成及び加工する機能を支援する。スマート機器の発展に伴い、スマート機器で駆動されるアプリケーションの製造技術も発展している。
一方、アプリケーションの製造技術が発展することによって、アプリケーション自体の容量、アプリケーションが扱うコンテンツの容量、アプリケーションが消費するモバイル装置の資源が急増している。しかし、モバイル装置の容量及び資源は限られており、モバイル装置の記憶容量及び資源を向上させることは、モバイル装置の価格上昇をもたらす。
したがって、モバイル装置の限られた記憶容量及び資源を利用して、様々なアプリケーションを円滑に駆動するための新しい技術が求められている。
米国特許公開第2011/0145486号公報
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、動作性能を向上させたアプリケーションプロセッサとそのデータ管理方法及びこれを実行するアプリケーションプロセッサを備えるモバイル装置を提供することにある。
上記目的を達成するためになされた本発明の一態様によるモバイル装置は、データを格納するためのストレージと、スワップビクティムバッファ領域及び通常のデータ領域を含むバッファメモリと、前記通常のデータ領域からスワップされるページデータを選択し、該選択されたページデータに対してスワップ動作を実行するアプリケーションプロセッサと、を備え、前記スワップ動作は、前記選択されたページデータのデータタイプに応じて、該選択されたページデータを前記通常のデータ領域から前記ストレージに移動するインスタントスワップ(instant swap)動作、又は該選択されたページデータを前記通常のデータ領域から前記スワップビクティムバッファ領域を通じて前記ストレージに移動するレイジースワップ(lazy swap)動作を実行することを特徴とする。
前記レイジースワップ動作時に、前記アプリケーションプロセッサは、前記選択されたページデータを圧縮し、該圧縮されたページデータを前記スワップビクティムバッファ領域に格納し、該圧縮されたページデータを前記ストレージに移動し得る。
前記ストレージはフラッシュメモリであり、前記バッファメモリは、ダイナミックランダムアクセスメモリ(DRAM)であり得る。
前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータが必要な場合、前記アプリケーションプロセッサは、前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータを読み出し、前記圧縮されたページデータの圧縮を解除し、該圧縮が解除されたデータを前記通常のデータ領域に格納し得る。
前記インスタントスワップ動作時に、前記アプリケーションプロセッサは、前記ページデータを前記通常のデータ領域から前記ストレージに前記スワップビクティムバッファ領域を使用せずに移動し得る。
前記選択されたページデータの圧縮率が閾値以下である場合、前記アプリケーションプロセッサは、前記インスタントスワップを実行し得る。
上記目的を達成するためになされた本発明の他の態様によるモバイル装置は、不揮発性メモリと、スワップビクティムバッファ領域及び通常のデータ領域を含むに分割されるダイナミックランダムアクセスメモリ(DRAM)と、前記不揮発性メモリ及び前記DRAMに接続されたアプリケーションプロセッサと、を備え、前記通常のデータ領域に格納されたページデータのスワップが要求された時、前記アプリケーションプロセッサは、前記ページデータのタイプに応じてインスタントスワップ(instant swap)動作又はレイジースワップ(lazy swap)動作を実行し、前記インスタントスワップ動作は、前記ページデータを前記不揮発性メモリに前記スワップビクティムバッファ領域を使用せずに移動させ、前記レイジースワップ動作は、前記ページデータを圧縮し、該圧縮されたページデータを前記不揮発性メモリに前記スワップビクティムバッファ領域を通じて移動させることを特徴とする。
前記アプリケーションプロセッサは、前記ページデータの圧縮率に応じて前記ページデータのタイプを判別し得る。
前記アプリケーションプロセッサは、前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータを前記不揮発性メモリに移動するように構成されたダイレクトメモリアクセスコントローラ(DMA)を含み得る。
前記圧縮されたページデータは、前記スワップビクティムバッファ領域から前記不揮発性メモリにデータチャンクの単位で移動され得る。
前記データチャンクの単位は、前記DMAによる前記データチャンクのデータ伝送時間が前記アプリケーションプロセッサによる前記データチャンクのデータ伝送時間と同一であるか又はそれより短くなるように設定され、前記DMAによる前記データチャンクのデータ伝送時間は、前記DMAのプログラム時間を含み得る。
前記データチャンクの単位は、32KB以上であり得る。
上記目的を達成するためになされた本発明の一態様によるアプリケーションプロセッサのデータ管理方法は、ダイナミックランダムアクセスメモリ(DRAM)の通常のデータ領域に格納されたページデータのデータタイプを判別する段階と、前記判別されたデータタイプがレイジータイプである場合、前記ページデータのレイジースワップ(lazy swap)動作を実行する段階と、前記判別されたデータタイプがインスタントタイプである場合、前記ページデータのインスタントスワップ(instant swap)動作を実行する段階と、を有することを特徴とする。
前記データタイプを判別する段階は、前記ページデータを圧縮する段階と、前記ページデータの圧縮率を判別する段階と、前記圧縮率が閾値より高い場合、前記ページデータのデータタイプをレイジータイプに判別する段階と、前記圧縮率が前記閾値以下である場合、前記ページデータのデータタイプをインスタントタイプに判別する段階と、を含み得る。
前記データ管理方法は、前記ページデータのデータタイプを格納する段階をさらに含むことができる。
前記データ管理方法は、前記ページデータのヘッダ情報を用いて前記ページデータのデータタイプを予測する段階と、前記データタイプがレイジータイプである場合、前記ページデータの圧縮動作を実行する段階と、前記データタイプがレイジータイプでない場合、前記ページデータの圧縮動作を省略する段階と、をさらに含むことができる。
前記データ管理方法は、前記ページデータの圧縮率を格納する段階をさらに含むことができる。
前記データ管理方法は、前記格納された圧縮率を読み出す段階と、前記読み出された圧縮率が前記閾値より高い場合、前記ページデータを前記DRAMから読み出して該読み出されたページデータを圧縮する段階と、前記読み出された圧縮率が前記閾値以下である場合、前記ページデータの圧縮を省略する段階と、をさらに含むことができる。
前記データ管理方法は、前記ページデータ又は前記ページデータに関連するプロセスの特性を検出する段階と、前記検出結果に応じて、前記閾値を調整する段階と、をさらに含むことができる。
前記データタイプを判別する段階は、前記ページデータの一部分を圧縮する段階と、前記ページデータの一部分の圧縮率が閾値より高いか否かを判別する段階と、前記ページデータの一部分の圧縮率が前記閾値より高い場合、前記ページデータの残りの部分を圧縮して前記データタイプを前記レイジータイプに判別する段階と、前記ページデータの一部分の圧縮率が前記閾値以下である場合、前記ページデータの残りの部分を圧縮せずに前記データタイプを前記インスタントタイプに判別する段階と、を含み得る。
前記インスタントスワップ動作を実行する段階は、前記ページデータを前記DRAMからストレージに移動する段階を含み得る。
前記レイジースワップ動作を実行する段階は、前記ページデータを圧縮されたページデータとして前記DRAMのスワップビクティムバッファ領域に移動する段階を含み得る。
前記スワップビクティムバッファ領域は複数のエントリを含み、各エントリは複数のページエントリを含み、前記ページデータは、前記複数のエントリのうちの一つのページエントリに格納され、前記ページデータは、前記圧縮されたページデータとして格納され得る。
前記複数のエントリの各々の前記複数のページエントリは、リンクされたリストで管理され得る。 前記レイジースワップ動作を実行する段階は、前記圧縮されたページデータを前記スワップビクティムバッファ領域からストレージに移動する段階をさらに含み得る。
前記前記圧縮されたページデータが前記スワップビクティムバッファ領域に最初に格納されたデータである場合、前記圧縮されたページデータが選択され得る。
前記データ管理方法は、前記スワップビクティムバッファに格納された前記圧縮されたページデータが要求された場合、前記複数のエントリから前記圧縮されたページデータを読み出す段階と、前記圧縮されたページデータの圧縮を解除する段階と、前記圧縮が解除されたページデータを前記通常のデータ領域に格納する段階と、をさらに含むことができる。
前記レイジースワップ動作を実行する段階は、ダイレクトメモリアクセスコントローラ(DMA)を用いて実行され、前記インスタントスワップ動作を実行する段階は、プロセッサによって実行され得る。
上記目的を達成するためになされた本発明の一態様によるアプリケーションプロセッサは、ダイナミックランダムアクセスメモリ(DRAM)インターフェースと、フラッシュメモリインターフェースと、ダイレクトメモリアクセスコントローラ(DMA)と、スワップ動作が必要であるか否かを判別し、前記DRAMインターフェースを通じてスワップされるページデータを受信し、前記ページデータのデータタイプに応じて前記ページデータに対してインスタントスワップ動作又はレイジースワップ動作を実行するプロセッサと、を有し、前記レイジースワップ動作時に、前記プロセッサは、前記ページデータを圧縮し、該圧縮されたページデータを前記DRAMインターフェースを通じて出力し、前記DMAは、前記DRAMインターフェースと前記フラッシュメモリインターフェースとの間のデータ経路を制御して、前記圧縮されたページデータが前記DRAMインターフェースから前記フラッシュメモリインターフェースに移動するように制御することを特徴とする。
前記ページデータのデータタイプは、前記ページデータの圧縮率によって判別され得る。
前記ページデータのデータタイプは、前記ページデータの圧縮なしに前記ページデータのヘッダ情報によって判別され得る。
前記インスタントスワップ動作は、前記ページデータの圧縮なしに実行され得る。
本発明のモバイル装置とアプリケーションプロセッサ及びそのデータ管理方法によれば、DRAMに格納されたページデータは、データタイプに応じて、インスタントスワップ(instant swap)又はレイジースワップ(lazy swap)に判別され、レイジースワップは、スワップビクティムバッファ領域を経由して実行される。したがって、呼び出されたページデータがスワップビクティムバッファ領域に格納されている場合、直ちにDRAMに復旧することができる。したがって、動作速度を向上させ、スラッシング(thrashing)を防止することができる。
また、レイジースワップが、アプリケーションプロセッサのダイレクトメモリアクセスコントローラ(DMA)を用いて実行されるため、消費電力が減少し、動作性能を向上させることができる。
本発明の一実施形態によるモバイル装置を示すブロック図である。 図1に示したDRAMとフラッシュメモリのデータ領域の構造を概念的に示すブロック図である。 図1に示したモバイル装置のデータ管理方法の一例を示すフローチャートである。 図3に示したS110段階において、アプリケーションプロセッサ1100が、スワップが要求されるか否かを判別する方法の一例を示すフローチャートである。 図3に示したS120段階において、アプリケーションプロセッサがページデータのデータタイプを判別する一例を示すフローチャートである。 図5で判別したデータタイプがログ情報として格納された後、データタイプの判別が再び要求された場合に、中央処理装置がデータタイプを判別する方法の一例を示すフローチャートである。 図3に示したS120段階において、アプリケーションプロセッサがページデータのデータタイプを判別する他の例を示すフローチャートである。 図7で判別したデータタイプがログ情報に格納された後、データタイプの判別が再び要求された場合に、中央処理装置がデータタイプを判別する方法の一例を示すフローチャートである。 図1に示した中央処理装置が閾値を調整する方法の一例を示すフローチャートである。 本発明の他の実施形態によるモバイル装置を示すブロック図である。 図10に示したDRAM、SRAM、及びフラッシュメモリのデータ領域の構造を概念的に示すブロック図である。 図10に示したアプリケーションプロセッサがページデータのデータタイプを判別する方法の一例を示すフローチャートである。 図12に示したS660段階におけるインスタントスワップ方法の一例を示すフローチャートである。 図12に示したS640段階におけるレイジースワップ方法の一例を示すフローチャートである。 図11のDRAMでインスタントスワップを実行する一例を説明するための図である。 図11のDRAMでレイジースワップを実行する一例を説明するための図である。 スワップされたページデータを復元する方法を説明するためのフローチャートである。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
図1は、本発明の一実施形態によるモバイル装置を示すブロック図である。図1を参照すると、モバイル装置1000は、アプリケーションプロセッサ(AP)1100、DRAM1200、フラッシュメモリ1300、モデム1400、及びユーザインターフェース1500を含む。
アプリケーションプロセッサ1100は、モバイル装置1000のすべての動作を制御し、論理演算を実行する。例えば、アプリケーションプロセッサ1100は、システムオンチップ(SoC)で構成される。
アプリケーションプロセッサ1100は、バス1110、中央処理装置(CPU)1120、ダイレクトメモリアクセスコントローラ(DMA)1130、圧縮解除器1140、DRAMインターフェース1150、SRAM1160、及びフラッシュインターフェース1170を含む。図1で、アプリケーションプロセッサ1100は、モデム1400及びユーザインターフェース1500と通信するインターフェースが省略されている。
バス1110は、アプリケーションプロセッサ1100の構成要素間のチャネルを提供する。中央処理装置1120は、アプリケーションプロセッサ1100のメイン演算、データ処理、及び制御を実行する核心の要素である。ダイレクトメモリアクセスコントローラ(DMA)1130は、メモリ間のデータ交換を制御する。
DMA1130は、中央処理装置1120の制御によって動作する。例えば、DMA1130は、中央処理装置1120によってプログラムされ、プログラムされた条件に従って動作する。プログラムされたDMA1130は、中央処理装置1120の制御なしにモバイル装置1000の格納要素間のデータの流れを制御する。例えば、DMA1130は、DRAM1200、SRAM1160、及びフラッシュメモリ1300のうちの少なくとも2つの間のデータの流れを制御する。
圧縮解除器1140は、ハードウェア(HW)で具現され、圧縮されたページデータの圧縮を解除する。DRAMインターフェース1150は、DRAM1200との通信を支援する。SRAM1160は、アプリケーションプロセッサ1100のキャッシュメモリ、バッファメモリ、又は一時メモリとして用いられる。フラッシュインターフェース1170は、フラッシュメモリ1300との通信を支援する。
DRAM1200は、モバイル装置1000のバッファメモリ又は動作メモリとして用いられる。モバイル装置1000の動作メモリは、DRAM1200である。しかし、モバイル装置1000の動作メモリは、SRAM、NORフラッシュメモリ、磁気ランダムアクセスメモリ(MRAM)、相変化ランダムアクセスメモリ(PRAM)、強誘電体ランダムアクセスメモリ(FeRAM)、抵抗性ランダムアクセスメモリ(ReRAM)などのように、揮発性及び不揮発性に関係なく、ランダムアクセス機能を支援する様々なメモリで代替可能である。
フラッシュメモリ1300は、ストレージ(storage)として用いられる。ストレージは、データの長期的な保存を目的とする記憶装置である。フラッシュメモリ1300は、磁気ランダムアクセスメモリ(MRAM)、相変化ランダムアクセスメモリ(PRAM)、強誘電体ランダムアクセスメモリ(FeRAM)、抵抗性ランダムアクセスメモリ(ReRAM)などのような不揮発性メモリを含むSSD(Solid State Drive)、又はハードディスクドライブ(HDD)で代替可能である。
モデム1400は、アプリケーションプロセッサ1100の制御により外部装置と無線又は有線通信を実行する。モデム1400は、WiFi、CDMA、GSM(登録商標)、LTE(登録商標)、ブルートゥース(登録商標)、NFCなどのような様々な通信規格のうちの少なくとも一つに基づいて通信を実行する。モデム1400は、アプリケーションプロセッサ1100と共にシステムオンチップ(SoC)を構成することができる。
ユーザインターフェース1500は、外部と信号を交換する。例えば、ユーザインターフェース1500は、キーボード、キーパッド、ボタン、タッチパネル、タッチスクリーン、タッチパッド、タッチボール、カメラ、マイク、ジャイロスコープセンサ、振動センサなどのようなユーザ入力インターフェースを含む。ユーザインターフェース1500は、LCD(Liquid Crystal Display)、OLED(Organic Light Emitting Diode)、AMOLED(Active Matrix OLED)、LED、スピーカ、モータなどのようなユーザ出力インターフェースを含む。
図2は、図1に示したDRAMとフラッシュメモリのデータ領域の構造を概念的に示すブロック図である。図2を参照すると、DRAM1200は、スワップビクティムバッファ(SVB:Swap Victim Buffer)領域1230及び通常のデータ領域(NDA:Normal Data Area)1250に分割される。
スワップビクティムバッファ領域1230は、通常のデータ領域1250に格納されたデータがフラッシュメモリ1300にスワップ(swap)される時、スワップされるデータが一時的に格納される領域である。例えば、通常のデータ領域1250に格納されたデータのうちの少なくとも一部は、スワップビクティムバッファ領域1230に移動した後、フラッシュメモリ1300に移動する。
通常のデータ領域1250は、アプリケーションプロセッサ1100によって駆動されるプロセス(又はアプリケーション)が使用する領域である。例えば、プロセスのコード、プロセスによって処理されるデータを通常のデータ領域1250に格納する。
DRAM1200では、データをページ単位で管理する。ページはモバイル装置1000のオペレーティングシステム(OS)により定義されたサイズを有する。プロセスのコードやデータはページ単位でDRAM1200に格納され、DRAM1200から読み出される。以下、ページ単位でアクセスされるデータをページデータという。
フラッシュメモリ1300は、モバイル装置1000のストレージとして用いられる。フラッシュメモリ1300は、ユーザデータ及びスワップデータを格納する。例えば、アプリケーションプロセッサ1100は、処理されるデータ(例えば、プロセス自体のデータ又はプロセスによって処理されるデータを含むデータ)をDRAM1200に格納し、処理されるデータの一部をフラッシュメモリ1300にスワップ(swap)する。スワップデータは、アプリケーションプロセッサ1100によってスワップされたデータである。
図3は、図1に示したモバイル装置のデータ管理方法の一例を示すフローチャートである。図1のアプリケーションプロセッサ1100のデータ管理方法を、図3を参照して説明する。
S110段階において、スワップが要求されるか否かを判別する。アプリケーションプロセッサ1100は、通常のデータ領域1250に格納されたページデータのスワップが要求されるか否かを判別する。スワップが要求されなければ、データの管理は終了し、スワップが要求されると、S120段階が実行される。スワップが要求されるか否かを判断するS110段階は、図4を参照してより詳細に説明する。
S120段階において、DRAM1200に格納されたページデータのタイプを判別する。アプリケーションプロセッサ1100は、通常のデータ領域1250に格納されたページデータのうちのスワップの対象として選択されたページデータのタイプを判別する。ページデータのタイプを判別する動作は、図5、7、及び図12を参照してより詳細に説明する。
S130段階において、S120段階で判別されたデータタイプに応じて、レイジースワップ(lazy swap)又はインスタントスワップ(instant swap)が実行される。スワップされるページデータのタイプに応じて、異なる方法でスワップを実行する動作は、図13〜図16を参照してより詳細に説明する。
図4は、図3に示したS110段階において、アプリケーションプロセッサ1100が、スワップが要求されるか否かを判別する方法の一例を示すフローチャートである。図1及び図4を参照すると、S210段階において、DRAM1200の新しい割り当てが要求されるか否かを判別する。例えば、アプリケーションプロセッサ1100は、新しいプロセス(又はアプリケーション)をローディングする時、ローディングされるプロセス(又はアプリケーション)に通常のデータ領域1250の少なくとも1つのページの割り当てを要求する。
S220段階において、DRAM1200の空きメモリ空間が十分であるか否かを判別する。アプリケーションプロセッサ1100は、プロセス(又はアプリケーション)に通常のデータ領域1250の予め決められた数のページを割り当てる。例えば、アプリケーションプロセッサ1100は、ローディングされるプロセス(又はアプリケーション)の実行履歴に基づいて、プロセス(又はアプリケーション)で要求されるページの数を判別する。
プロセス(又はアプリケーション)で要求されるページの容量が通常のデータ領域1250の空きメモリ容量より少ない場合、DRAM1200の空きメモリ空間は十分であると判別する。この場合、S230段階で、スワップが要求されないと判断する。
プロセス(又はアプリケーション)で要求されるページの容量が通常のデータ領域1250の空きメモリ容量より大きい場合、DRAM1200の空きメモリ空間は十分でないと判断する。この場合、S240段階で、スワップが要求されると判断する。
図5は、図3に示したS120段階において、アプリケーションプロセッサがページデータのデータタイプを判別する一例を示すフローチャートである。
S310段階において、通常のデータ領域1250からページデータが読み出され、読み出されたページデータが圧縮される。例えば、中央処理装置1120は、スワップが要求されると、選択されたページデータをDRAM1200の通常のデータ領域1250からDRAMインターフェース1150を通じて読み出す。中央処理装置1120は、読み出されたページデータを圧縮する。
S320段階において、圧縮率が閾値より高いか否かを判別する。中央処理装置1120は、読み出されたページデータの圧縮を実行した後、圧縮されたページデータの圧縮率を閾値と比較する。
圧縮率が閾値以下である場合、S340段階で、読み出されたページデータのデータタイプをインスタントタイプ(instant type)に判別する。すなわち、インスタントタイプのページデータは、閾値以下の低い圧縮率を有するページデータである。読み出されたページデータのデータタイプがインスタントタイプに判別されると、圧縮されたページデータは、廃棄される。
圧縮率が閾値より高い場合、S330段階で、読み出されたページデータのデータタイプをレイジータイプ(lazy type)に判別する。すなわち、レイジータイプのページデータは、閾値より高い圧縮率を有するページデータである。読み出されたページデータのデータタイプが、レイジータイプに判別されると、圧縮されたページデータは、スワップのために使用される。
S350段階において、データタイプがログ情報として格納される。中央処理装置1120は、ページデータのデータタイプをログ情報としてSRAM1160に格納する。中央処理装置1120は、ページデータを用いるプロセスの識別子、ページデータがコードであるか又はデータであるかを示す情報、及びページデータのデータタイプをログ情報として格納する。SRAM1160に格納されたログ情報は、定期的に、予め決められたスケジュール又は特定のイベント(例えば、電源オフ等)の発生に応答して、フラッシュメモリ1300にバックアップされる。モバイル装置1000の電源がオフされた後、再びオンになる時に、フラッシュメモリ1300にバックアップされたログ情報は、SRAM1160にコピーされる。
図6は、図5で判別したデータタイプがログ情報として格納された後、データタイプの判別が再び要求された場合に、中央処理装置がデータタイプを判別する方法の一例を示すフローチャートである。
S360段階において、ページデータのデータタイプがログ情報から読み出される。中央処理装置1120は、SRAM1160に格納されたログ情報を読み出し、ログ情報に含まれるページデータのデータタイプを識別する。
S370段階において、読み出されたデータタイプがレイジータイプ(lazytype)であるか否かを判別する。データタイプがレイジータイプでない場合、通常のデータ領域1250に格納されたページデータの圧縮が省略され、データタイプの判別動作は終了する。データタイプがレイジータイプである場合、S380段階で、通常のデータ領域1250からページデータが読み出され、読み出されたページデータは圧縮される。圧縮されたページデータはスワップのために使用される。
図7は、図3に示したS120段階において、アプリケーションプロセッサがページデータのデータタイプを判別する他の例を示すフローチャートである。図7に示したS410段階〜S440段階は、図5のS310段階〜S340段階と同じ方法で実行される。したがって、S410段階〜S440段階の詳細な説明は省略する。
S450段階において、ページデータの圧縮率がログ情報として格納される。例えば、中央処理装置1120は、ページデータの圧縮率(compression ratio)をログ情報としてSRAM1160に格納する。中央処理装置1120は、ページデータを用いるプロセスの識別子、ページデータがコードであるか又はデータであるかを示す情報、及びページデータの圧縮率をログ情報として格納する。
図8は、図7で判別したデータタイプがログ情報として格納された後、データタイプの判別が再び要求された場合に、中央処理装置がデータタイプを判別する方法の一例を示すフローチャートである。
S460段階において、ページデータの圧縮率がログ情報から読み出される。中央処理装置1120は、SRAM1160に格納されたログ情報を読み出し、ログ情報に含まれるページデータの圧縮率を判別する。
S470段階において、読み出された圧縮率が閾値より高いか否かを判別する。読み出された圧縮率が閾値以下である場合、通常のデータ領域1250に格納されたページデータの圧縮が省略され、データタイプの判別動作は終了する。圧縮率が閾値より高い場合、S480段階で、通常のデータ領域1250からページデータが読み出され、読み出されたページデータを圧縮する。圧縮されたページデータはスワップのために使用される。
本実施形態によれば、データタイプは、ページデータの圧縮率に応じて決められる。圧縮されたページデータは、データタイプに応じて、スワップのために使用されるか又は廃棄される。
一度決められたデータタイプは、ログ情報として格納される。したがって、以後にページデータのデータタイプの判定が再び要求された場合、ページデータを圧縮せずにログ情報を読み出すことによって、ページデータのデータタイプを判別することができる。データタイプを確認した後に圧縮が行われるため、不要な圧縮(例えば、圧縮の必要がないページデータの圧縮)を防止し、これによりモバイル装置1000の動作性能が向上する。
図9は、図1に示した中央処理装置が閾値を調整する方法の一例を示すフローチャートである。
S510段階において、ページデータ又はページデータに関連するプロセスの特性が検出される。S520段階において、検出された特性によって、閾値が決められる。すなわち、スワップのために選択されたページデータ又はページデータに関連するプロセスの特性に応じて、ページデータを圧縮するか否かを決める閾値を調節する。
例えば、文書編集のためのプロセス及びデータは、高い圧縮率を有する。高い圧縮率を有するプロセス及びデータがモバイル装置1000で駆動され、閾値が固定されている場合、すべてのページデータに対する圧縮が行われる。一方、動画編集のためのプロセス及びデータは、低い圧縮率を有する。低い圧縮率を有するプロセス及びデータがモバイル装置1000で駆動され、閾値が固定されている場合、どのようなページデータに対しても圧縮が実行されない。
プロセスの特性及びデータの圧縮率によって閾値が決まると、モバイル装置1000で駆動されるプロセス及びデータのうちの圧縮されるプロセス及びデータの割合が調節される。
図10は、本発明の他の実施形態によるモバイル装置を示すブロック図である。図10を参照すると、モバイル装置2000は、アプリケーションプロセッサ(AP)2100、DRAM2200、フラッシュメモリ2300、モデム2400、及びユーザインターフェース2500を含む。アプリケーションプロセッサ2100は、バス2110、中央処理装置(CPU)2120、ダイレクトメモリアクセスコントローラ(DMA)2130、圧縮器及び圧縮解除器2140、DRAMインターフェース2150、SRAM2160、及びフラッシュインターフェース2170を含む。
図10に示したモバイル装置2000は、圧縮器及び圧縮解除器2140を使用して、ページデータを圧縮し、圧縮されたページデータの圧縮を解除する。図1のアプリケーションプロセッサ1100と比較すると、アプリケーションプロセッサ2100は、ページデータの圧縮機能が中央処理装置2120ではなく、圧縮器及び圧縮解除器2140によって提供される。図10において、圧縮器及び圧縮解除器2140は、ハードウェア(HW)で具現される。
図11は、図10に示したDRAM、SRAM、及びフラッシュメモリのデータ領域の構造を概念的に示すブロック図である。図11を参照すると、DRAM2200は、スワップビクティムバッファ(SVB:Swap Victim Buffer)領域2230と通常のデータ領域(NDA:Normal Data Area)2250とに分割される。
スワップビクティムバッファ領域2230は、通常のデータ領域2250に格納されたデータがフラッシュメモリ2300にスワップ(swap)される時、スワップされるデータが格納される。図11を参照すると、スワップビクティムバッファ領域2230は、複数のエントリ(例えば、Entry1〜Entry16)を含む。各エントリ(例えば、Entry_K)は、複数のページエントリPE1〜PEmを格納する。1つのページエントリは、一つの圧縮されたページデータに対応する。すなわち、1つの圧縮されたページデータを1つのページエントリとしてスワップビクティムバッファ領域2230に格納する。
複数のエントリEntry1〜Entry16の各々で、1つのページエントリ(又は、圧縮されたページデータ)が選択されて、一つのデータチャンク(Data Chunk)を形成する。図11で、複数のエントリEntry1〜Entry16のページエントリPE1〜PEmは、行と列方向に沿ってマトリクス形態に示している。ページエントリPE1〜PEmの1つの列は、一つのデータチャンクDCを形成する。
複数のエントリEntry1〜Entry16の各々で、複数のページエントリPE1〜PEmは、リンクされたリスト(linked list)に従って管理される。一つのエントリ(例えば、Entry_K)に格納される1番目の圧縮されたページデータは第1ページエントリPE1に格納され、第Kエントリ(Entry_K)に格納される2番目の圧縮されたページデータは第2ページエントリPE2に格納される。第1ページエントリPE1は第2ページエントリPE2とリンクされる。同様に、第1〜第mページエントリ(PE1〜PEm)は互いにリンクされる。
互いにリンクされたページエントリPE1〜PEmのうちの一つのページエントリが除去されると、リンクが更新される。例えば、第2ページエントリPE2が除去されると、第1及び第3ページエントリ(PE1及びPE3)が互いにリンクされる。第3〜第mページエントリ(PE3〜PEm)は、第2〜第m−1ページエントリ(PE2〜PEm−1)として管理されるように更新される。その後、新たに格納される圧縮されたページデータは、第mページエントリPEmに格納される。すなわち、複数のエントリEntry1〜Entry16の各々で、一方の側に、最初に格納されたページエントリPE1が位置される。このページエントリPE1がデータチャンク(Data Chunk)を形成する。
通常のデータ領域2250は、アプリケーションプロセッサ2100によって駆動されるプロセス(又はアプリケーション)が使用する領域である。例えば、プロセスのコード及びプロセスによって処理されるデータを通常のデータ領域2250に格納する。
DRAM2200のデータはページ単位で管理される。ページはモバイル装置2000のオペレーティングシステム(OS)で定義されるサイズを有する。プロセスのコードやデータはページ単位でDRAM2200に格納され、DRAM2200から読み出される。
フラッシュメモリ2300は、モバイル装置2000のストレージとして使用される。アプリケーションプロセッサ2100は、処理されるデータ(例えば、プロセス自体のデータ又はプロセスによって処理されるデータ)をDRAM2200に格納し、処理されるデータの一部をフラッシュメモリ2300にスワップ(swap)する。
図12は、図10に示したアプリケーションプロセッサのページデータのデータタイプを判別する方法の一例を示すフローチャートである。
S610段階において、ページデータの圧縮が開始される。通常のデータ領域2250からスワップされる対象として選択されたページデータが読み出され、読み出されたページデータは圧縮器及び圧縮解除器2140に伝送される。圧縮器及び圧縮解除器2140は、受信したページデータの圧縮を行う。
S620段階において、ページデータの一部分の圧縮率が閾値より高いか否かを判別する。例えば、圧縮器及び圧縮解除器2140は、圧縮が完了する前に、圧縮率と閾値とを比較する。
圧縮率が閾値より高い場合、S630段階で、ページデータの圧縮は継続され、S640段階で、ページデータのデータタイプをレイジータイプに判別する。圧縮されたページデータはスワップのために使用される。
圧縮率が閾値以下である場合、S650段階で、ページデータの圧縮は中止され、S660段階で、ページデータのデータタイプをインスタントタイプに判別する。
本実施形態によれば、ページデータの圧縮及び圧縮の解除は、中央処理装置2120と分離された圧縮器及び圧縮解除器2140で行われる。したがって、中央処理装置2120の資源を消費せずにページデータの圧縮及び圧縮の解除が実行され、圧縮が完了する前に圧縮率を判別することができる。圧縮が完了する前に圧縮率と閾値が比較されるので、不要な圧縮の実行を防止することができる。
上述の実施形態において、ページデータのデータタイプは、圧縮率によって決められるものとして説明した。しかし、ページデータのデータタイプは、予測に基づいて決定可能である。例えば、マルチメディアデータは低い圧縮率を有し、テキストやコードは高い圧縮率を有する。アプリケーションプロセッサ2100は、ページデータのヘッダを読み出すことによって、ページデータがマルチメディアデータであるか、テキストであるか、又はコードであるかを判別する。判別の結果に基づいて、アプリケーションプロセッサ2100は、マルチメディアデータをインスタントタイプに判別し、テキストやコードをレイジータイプに判別する。
図13は、図12に示したS660段階におけるインスタントスワップ方法の一例を示すフローチャートである。ページデータがインスタントタイプに判別された時に、インスタントスワップを実行する。すなわち、ページデータの圧縮率が閾値以下である場合に、インスタントスワップが実行される。
図11及び図13を参照すると、S710段階においてで、通常のデータ領域2250からページデータが読み出される。アプリケーションプロセッサ2100は、オペレーティングシステムの上位レベルでスワップされる対象として選択されたページデータを、通常のデータ領域2250から読み出す。
S720段階において、読み出されたページデータがフラッシュメモリ2300に格納される。アプリケーションプロセッサ2100は読み出されたページデータをフラッシュメモリ2300に格納する。
S730段階において、通常のデータ領域2250からページデータが削除される。
すなわち、圧縮率が閾値以下のインスタントタイプのページデータは圧縮されず、フラッシュメモリ2300にスワップされる。アプリケーションプロセッサ2100は、スワップの要求がある時、インスタントタイプのページデータを直ちにスワップする。
図14は、図12に示したS640段階におけるレイジースワップ方法の一例を示すフローチャートである。ページデータがレイジータイプに判別された時に、レイジースワップを実行する。すなわち、ページデータの圧縮率が閾値より高い場合に、レイジースワップが実行される。
図11及び図14を参照すると、S810段階において、圧縮されたページデータがスワップビクティムバッファ領域2230の複数のエントリのうちの一つのエントリに格納される。スワップビクティムバッファ領域2230は、複数のエントリを有し、各エントリは、複数のページエントリを含む。一つの圧縮されたページデータは、選択されたエントリの選択されたページエントリに格納される。
S820段階において、スワップビクティムバッファ情報(SVB information)がSRAM2160に格納される。スワップビクティムバッファ情報は、スワップビクティムバッファ2230領域に格納された圧縮されたページデータの情報を含む。スワップビクティムバッファ情報は、スワップビクティムバッファ領域2230に格納された圧縮されたページデータに関連するプロセスの識別子(Process ID)、アドレス、及びLRU(Least Recently Used)情報を含む(図11参照)。アドレスは、圧縮されたページデータが格納されていた通常のデータ領域2250のアドレス又は圧縮されたページデータがスワップ対象として選択されたフラッシュメモリ2300のアドレスである。LRU情報は圧縮されたページデータが直前にアクセスした時刻に関する情報を含む。
S830段階において、スワップビクティムバッファ領域2230のスワップが要求されるか否かを判別する。アプリケーションプロセッサ2100は、スワップビクティムバッファ領域2230のスワップが要求されるか否かを判別する。図4で説明したように、アプリケーションプロセッサ2100は、スワップビクティムバッファ領域2230に要求される新しい割り当て容量と、スワップビクティムバッファ領域2230の空きメモリ容量とを比較し、比較結果に応じて、スワップが要求されるか否かを判別する。アプリケーションプロセッサ2100は、スワップビクティムバッファ領域2230の空きメモリ容量がない場合、空きメモリ容量が基準値より少ない場合などのような様々な条件に応じて、スワップが要求されるか否かを判別する。
スワップビクティムバッファ領域2230のスワップが要求されない場合、レイジースワップは終了する。スワップビクティムバッファ領域2230のスワップが要求されると、S840段階が実行される。
S840段階において、スワップビクティムバッファ領域2230の複数のエントリから圧縮されたページデータが選択される。アプリケーションプロセッサ2100は、複数のエントリの各々で一つの圧縮されたページデータを選択する。例えば、アプリケーションプロセッサ2100は、複数のエントリの各々で、最初に格納された圧縮されたページデータを選択する。選択された圧縮されたページデータは、データチャンク(data chunk)を形成する。
データチャンクの単位は、ダイレクトメモリアクセスコントローラ(DMA)によるデータチャンクのデータ伝送時間が、アプリケーションプロセッサによるデータチャンクのデータ伝送時間と同一であるか、又はそれより短くなるように設定される。
ダイレクトメモリアクセスコントローラ(DMA)によるデータチャンクのデータ伝送時間は、ダイレクトメモリアクセスコントローラのプログラム時間を含む。例えば、データチャンクの単位は、32KB(キロバイト)以上である。
S850段階において、選択された圧縮されたページデータをフラッシュメモリ2300に移動するように、ダイレクトメモリアクセスコントローラ(図10参照)2130が制御する。アプリケーションプロセッサ2100は、選択された圧縮されたページデータを、データチャンクの単位でフラッシュメモリ2300に移動するようにダイレクトメモリアクセスコントローラ2130をプログラムする。
S860段階において、選択された圧縮されたページデータがスワップビクティムバッファ領域2230から削除される。アプリケーションプロセッサ2100は、選択された圧縮されたページデータをスワップビクティムバッファ領域2230から削除する。
S870段階において、スワップビクティムバッファ領域の情報が更新される。アプリケーションプロセッサ2100は、スワップされた圧縮されたページデータに関する情報を削除するようにスワップビクティムバッファ情報を更新する。
スワップビクティムバッファ情報はログ情報と共にSRAM(図11参照)2160のSVB説明テーブル2161(SVB descriptor table)を通じて管理する。
図15及び図16は、図11のDRAMでインスタントスワップ及びレイジースワップを実行する一例を説明するための図である。図15及び図16において、通常のデータ領域2250は、複数のページデータPDを格納するように構成される。説明を簡単にするために、通常のデータ領域2250を、第1〜第i行(R1〜Ri)と、第1〜第j列(C1〜Cj)を有するマトリックス形態で図示する。
図15を参照すると、通常のデータ領域2250の第3行R3の第1列C1及び第2列C2のページデータPD’がインスタントスワップされる対象に選択される。選択されたページデータPD’は、通常のデータ領域2250から読み出され、フラッシュメモリ2300に格納される。その後、選択されたページデータPD’は、DRAM2200から削除される。
図16を参照すると、通常のデータ領域2250の第2行R2の第1列C1及び第2列C2のページデータPD’がレイジースワップされる対象に選択される。選択されたページデータPD’は、圧縮された後にスワップビクティムバッファ2230に格納される。例えば、圧縮されたページデータは、第2エントリEntry2及び第3エントリEntry3に各々ページエントリとして格納される。
その後、スワップビクティムバッファ領域2230のスワップ条件が満足された場合、レイジースワップを通じて、圧縮されたページデータは、フラッシュメモリ2300にスワップされる。例えば、圧縮されたページデータがスワップビクティムバッファ領域2230で最初に格納された圧縮されたページデータとしてデータチャンクDCを形成する場合、レイジースワップを通じて、圧縮されたページデータはフラッシュメモリ2300にスワップされる。
図17は、スワップされたページデータを復元する方法を説明するためのフローチャートである。図10及び図17を参照すると、S910段階において、スワップされたページデータが要求されるか否かを判別する。例えば、モバイル装置2000で駆動されるオペレーティングシステム又はアプリケーションがスワップされたページにアクセスする場合に、スワップされたページが要求される。スワップされたページが要求されない場合、ページデータの復元は実行されない。スワップされたページデータが要求されると、S920段階が実行される。
S920段階において、スワップされたページデータがレイジータイプのページデータであるか否かを判別する。アプリケーションプロセッサ2100は、ログ情報を参照してスワップされたページデータがレイジータイプのページデータであるか否かを判別する。
スワップされたページデータがレイジータイプのページデータでない場合、すなわち、インスタントタイプのページデータである場合、S930段階で、要求されたページデータがフラッシュメモリ2300から読み出され、読み出されたページデータが通常のデータ領域(NDA)2250に格納され、要求されたページデータはフラッシュメモリ2300から削除される。インスタントタイプのページデータは圧縮なしにフラッシュメモリ2300にインスタントスワップされるページデータである。したがって、要求されたページデータをフラッシュメモリ2300から読み出し、通常のデータ領域2250に格納することによって、要求されたページデータの復元を完了する。
スワップされたページデータがレイジータイプのページデータである場合、S940段階で、要求されたページデータがスワップビクティムバッファ領域2230に格納されているか否かを判別する。上述のように、レイジータイプのページデータは、スワップビクティムバッファ領域2230に格納され、スワップビクティムバッファ領域2230のスワップ条件が満たされるまで、スワップビクティムバッファ領域2230で維持される。したがって、要求されたページデータがスワップビクティムバッファ領域2230に格納されているか否かに応じて、要求されたページデータの復元方法が変わる。
要求されたページデータがスワップビクティムバッファ領域2230に格納されていない場合、要求されたページデータは、フラッシュメモリ2300にスワップされた状態である。したがって、S950段階で、要求されたページデータがフラッシュメモリ2300から読み出され、読み出されたページデータの圧縮が解除される。圧縮が解除されたページデータは通常のデータ領域2250に格納され、要求されたページデータ(すなわち、圧縮されたページデータ)は、フラッシュメモリ2300から削除される。
要求されたページデータがスワップビクティムバッファ領域2230に格納されている場合、S960段階で、要求されたページデータがスワップビクティムバッファ2230から読み出され、読み出されたページデータの圧縮が解除される。圧縮が解除されたページデータは通常のデータ領域2250に格納され、要求されたページデータ(すなわち、圧縮されたページデータ)がスワップビクティムバッファ領域2230から削除される。その後、S970段階で、スワップビクティムバッファ情報及びスワップビクティムバッファのエントリが更新される。
スワップを実行するモバイル装置2000で発生する第1の問題は、スラッシング(thrashing)である。スラッシングは、モバイル装置2000がページデータのスワップ及びスワップされたページデータの復元(つまり、ページング)に過度の資源を消費する現象を意味する。
本実施形態によれば、圧縮されたページデータは、直ちにフラッシュメモリ2300にスワップされず、DRAM2200のスワップビクティムバッファ領域2230に一定期間格納される。したがって、スラッシングが防止され、モバイル装置2000の動作性能が向上する。また、スワップビクティムバッファ領域2230に格納されたデータは、DMAによってスワップされる。DMAがデータを移動する時に消費する電力は、アプリケーションプロセッサ2100がデータを移動する時に消費する電力より少ない。したがって、消費電力を減少させたモバイル装置2000を提供することができる。
また、アプリケーションプロセッサ2100は、データを移動する時に、アプリケーションプロセッサ2100のキャッシュメモリに、移動されるデータを格納する。一方、DMAによってデータが移動される場合、アプリケーションプロセッサ2100のキャッシュメモリに、移動されるデータが格納されないため、アプリケーションプロセッサ2100のキャッシュメモリがスワップによって汚染されることを防止し、動作性能を向上させたモバイル装置2000を提供することができる。
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限られるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
1000、2000 モバイル装置
1100、2100 アプリケーションプロセッサ(AP)
1110、2110 バス
1120、2120 中央処理装置(CPU)
1130、2130 ダイレクトメモリアクセスコントローラ(DMA)
1140 圧縮解除器
1150、2150 DRAMインターフェース
1160、2160 SRAM
1170、2170 フラッシュインターフェース
1200、2200 DRAM
1230、2230 スワップビクティムバッファ(SVB)領域
1250、2250 通常のデータ領域(NDA)
1300、2300 フラッシュメモリ
1400、2400 モデム
1500、2500 ユーザインターフェース
2140 圧縮器及び圧縮解除器
2161 SVB説明テーブル

Claims (32)

  1. データを格納するためのストレージと、
    スワップビクティムバッファ領域及び通常のデータ領域を含むバッファメモリと、
    前記通常のデータ領域からスワップされるページデータを選択し、該選択されたページデータに対してスワップ動作を実行するアプリケーションプロセッサと、を備え、
    前記スワップ動作は、前記選択されたページデータのデータタイプに応じて、該選択されたページデータを前記通常のデータ領域から前記ストレージに移動するインスタントスワップ動作、又は該選択されたページデータを前記通常のデータ領域から前記スワップビクティムバッファ領域を通じて前記ストレージに移動するレイジースワップ動作を実行することを特徴とするモバイル装置。
  2. 前記レイジースワップ動作時に、前記アプリケーションプロセッサは、前記選択されたページデータを圧縮し、該圧縮されたページデータを前記スワップビクティムバッファ領域に格納し、該圧縮されたページデータを前記ストレージに移動することを特徴とする請求項1に記載のモバイル装置。
  3. 前記ストレージはフラッシュメモリであり、前記バッファメモリはDRAMであることを特徴とする請求項2に記載のモバイル装置。
  4. 前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータが必要な場合、前記アプリケーションプロセッサは、前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータを読み出し、前記圧縮されたページデータの圧縮を解除し、該圧縮が解除されたデータを前記通常のデータ領域に格納することを特徴とする請求項1に記載のモバイル装置。
  5. 前記インスタントスワップ動作時に、前記アプリケーションプロセッサは、前記ページデータを前記通常のデータ領域から前記ストレージに前記スワップビクティムバッファ領域を使用せずに移動することを特徴とする請求項1に記載のモバイル装置。
  6. 前記選択されたページデータの圧縮率が閾値以下である場合、前記アプリケーションプロセッサは、前記インスタントスワップを実行することを特徴とする請求項5に記載のモバイル装置。
  7. 不揮発性メモリと、
    スワップビクティムバッファ領域及び通常のデータ領域を含むDRAMと、
    前記不揮発性メモリ及び前記DRAMに接続されたアプリケーションプロセッサと、を備え、
    前記通常のデータ領域に格納されたページデータのスワップが要求された時、前記アプリケーションプロセッサは、前記ページデータのタイプに応じてインスタントスワップ動作又はレイジースワップ動作を実行し、
    前記インスタントスワップ動作は、前記ページデータを前記不揮発性メモリに前記スワップビクティムバッファ領域を使用せずに移動させ、
    前記レイジースワップ動作は、前記ページデータを圧縮し、該圧縮されたページデータを前記不揮発性メモリに前記スワップビクティムバッファ領域を通じて移動させることを特徴とするモバイル装置。
  8. 前記アプリケーションプロセッサは、前記ページデータの圧縮率に応じて前記ページデータのタイプを判別することを特徴とする請求項7に記載のモバイル装置。
  9. 前記アプリケーションプロセッサは、前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータを前記不揮発性メモリに移動するように構成されたダイレクトメモリアクセスコントローラ(DMA)を含むことを特徴とする請求項7に記載のモバイル装置。
  10. 前記圧縮されたページデータは、前記スワップビクティムバッファ領域から前記不揮発性メモリにデータチャンクの単位で移動されることを特徴とする請求項7に記載のモバイル装置。
  11. 前記データチャンクの単位は、前記DMAによる前記データチャンクのデータ伝送時間が前記アプリケーションプロセッサによる前記データチャンクのデータ伝送時間と同一であるか又はそれより短くなるように設定され、
    前記DMAによる前記データチャンクのデータ伝送時間は、前記DMAのプログラム時間を含むことを特徴とする請求項10に記載のモバイル装置。
  12. 前記データチャンクの単位は、32KB以上であることを特徴とする請求項10に記載のモバイル装置。
  13. アプリケーションプロセッサのデータ管理方法であって、
    DRAMの通常のデータ領域に格納されたページデータのデータタイプを判別する段階と、
    前記判別されたデータタイプがレイジータイプである場合、前記ページデータのレイジースワップ動作を実行する段階と、
    前記判別されたデータタイプがインスタントタイプである場合、前記ページデータのインスタントスワップ動作を実行する段階と、を有することを特徴とするデータ管理方法。
  14. 前記データタイプを判別する段階は、
    前記ページデータを圧縮する段階と、
    前記ページデータの圧縮率を判別する段階と、
    前記圧縮率が閾値より高い場合、前記ページデータのデータタイプを前記レイジータイプに判別する段階と、
    前記圧縮率が前記閾値以下である場合、前記ページデータのデータタイプを前記インスタントタイプに判別する段階と、を含むことを特徴とする請求項13に記載のデータ管理方法。
  15. 前記ページデータのデータタイプを格納する段階をさらに含むことを特徴とする請求項14に記載のデータ管理方法。
  16. 前記ページデータのヘッダ情報を用いて前記ページデータのデータタイプを予測する段階と、
    前記データタイプがレイジータイプである場合、前記ページデータの圧縮動作を実行する段階と、
    前記データタイプがレイジータイプでない場合、前記ページデータの圧縮動作を省略する段階と、をさらに含むことを特徴とする請求項13に記載のデータ管理方法。
  17. 前記ページデータの圧縮率を格納する段階をさらに含むことを特徴とする請求項14に記載のデータ管理方法。
  18. 前記格納された圧縮率を読み出す段階と、
    前記読み出された圧縮率が前記閾値より高い場合、前記ページデータを前記DRAMから読み出して該読み出されたページデータを圧縮する段階と、
    前記読み出された圧縮率が前記閾値以下である場合、前記ページデータの圧縮を省略する段階と、をさらに含むことを特徴とする請求項17に記載のデータ管理方法。
  19. 前記ページデータ又は前記ページデータに関連するプロセスの特性を検出する段階と、
    前記検出結果に応じて、前記閾値を調整する段階と、をさらに含むことを特徴とする請求項13に記載のデータ管理方法。
  20. 前記データタイプを判別する段階は、
    前記ページデータの一部分を圧縮する段階と、
    前記ページデータの一部分の圧縮率が閾値より高いか否かを判別する段階と、
    前記ページデータの一部分の圧縮率が前記閾値より高い場合、前記ページデータの残りの部分を圧縮して前記データタイプを前記レイジータイプに判別する段階と、
    前記ページデータの一部分の圧縮率が前記閾値以下である場合、前記ページデータの残りの部分を圧縮せずに前記データタイプを前記インスタントタイプに判別する段階と、を含むことを特徴とする請求項13に記載のデータ管理方法。
  21. 前記インスタントスワップ動作を実行する段階は、
    前記ページデータを前記DRAMからストレージに移動する段階を含むことを特徴とする請求項13に記載のデータ管理方法。
  22. 前記レイジースワップ動作を実行する段階は、
    前記ページデータを圧縮されたページデータとして前記DRAMのスワップビクティムバッファ領域に移動する段階を含むことを特徴とする請求項13に記載のデータ管理方法。
  23. 前記スワップビクティムバッファ領域は複数のエントリを含み、各エントリは複数のページエントリを含み、
    前記ページデータは、前記複数のエントリのうちの一つのページエントリに格納され、
    前記ページデータは、前記圧縮されたページデータとして格納されることを特徴とする請求項22に記載のデータ管理方法。
  24. 前記複数のエントリの各々の前記複数のページエントリは、リンクされたリストで管理されることを特徴とする請求項23に記載のデータ管理方法。
  25. 前記レイジースワップ動作を実行する段階は、
    前記圧縮されたページデータを前記スワップビクティムバッファ領域からストレージに移動する段階をさらに含むことを特徴とする請求項23に記載のデータ管理方法。
  26. 前記圧縮されたページデータが前記スワップビクティムバッファ領域に最初に格納されたデータである場合、前記圧縮されたページデータが選択されることを特徴とする請求項25に記載のデータ管理方法。
  27. 前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータが要求された場合、前記複数のエントリから前記圧縮されたページデータを読み出す段階と、
    前記圧縮されたページデータの圧縮を解除する段階と、
    前記圧縮が解除されたページデータを前記通常のデータ領域に格納する段階と、をさらに含むことを特徴とする請求項26に記載のデータ管理方法。
  28. 前記レイジースワップ動作を実行する段階は、ダイレクトメモリアクセスコントローラ(DMA)を用いて実行され、
    前記インスタントスワップ動作を実行する段階は、プロセッサによって実行されることを特徴とする請求項13に記載のデータ管理方法。
  29. DRAMインターフェースと、
    フラッシュメモリインターフェースと、
    ダイレクトメモリアクセスコントローラ(DMA)と、
    スワップ動作が必要であるか否かを判別し、前記DRAMインターフェースを通じてスワップされるページデータを受信し、前記ページデータのデータタイプに応じて前記ページデータに対してインスタントスワップ動作又はレイジースワップ動作を実行するプロセッサと、を有し、
    前記レイジースワップ動作時に、前記プロセッサは、前記ページデータを圧縮し、該圧縮されたページデータを前記DRAMインターフェースを通じて出力し、前記DMAは、前記DRAMインターフェースと前記フラッシュメモリインターフェースとの間のデータ経路を制御して、前記圧縮されたページデータが前記DRAMインターフェースから前記フラッシュメモリインターフェースに移動するように制御することを特徴とするアプリケーションプロセッサ。
  30. 前記ページデータのデータタイプは、前記ページデータの圧縮率によって判別されることを特徴とする請求項29に記載のアプリケーションプロセッサ。
  31. 前記ページデータのデータタイプは、前記ページデータの圧縮なしに前記ページデータのヘッダ情報によって判別されることを特徴とする請求項29に記載のアプリケーションプロセッサ。
  32. 前記インスタントスワップ動作は、前記ページデータの圧縮なしに実行されることを特徴とする請求項29に記載のアプリケーションプロセッサ。
JP2013256247A 2012-12-11 2013-12-11 モバイル装置とアプリケーションプロセッサ及びそのデータ管理方法 Pending JP2014116017A (ja)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
JP2014116017A true JP2014116017A (ja) 2014-06-26

Family

ID=50778273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013256247A Pending JP2014116017A (ja) 2012-12-11 2013-12-11 モバイル装置とアプリケーションプロセッサ及びそのデータ管理方法

Country Status (8)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022031735A (ja) * 2015-05-21 2022-02-22 ゼロポイント テクノロジーズ アーベー ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム

Families Citing this family (19)

* 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
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 삼성전자주식회사 전자 장치 및 그의 제어방법
KR102322727B1 (ko) 2019-07-29 2021-11-05 에스케이하이닉스 주식회사 데이터 스왑을 위한 메모리 시스템 및 그 동작방법
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 삼성전자주식회사 이형 메모리들을 포함하는 전자 장치 및 그것의 이형 메모리들 간 압축 데이터 이동 방법
KR102561316B1 (ko) * 2023-03-20 2023-07-31 메티스엑스 주식회사 전자 장치 및 이를 포함하는 컴퓨팅 시스템

Family Cites Families (20)

* 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
US5586297A (en) * 1994-03-24 1996-12-17 Hewlett-Packard Company Partial cache line write transactions in a computing system with a write back cache
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 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
WO2007023975A1 (ja) 2005-08-22 2007-03-01 Ssd Company Limited マルチプロセッサ、ダイレクトメモリアクセスコントローラ、及びシリアルデータ送受信装置
KR100735560B1 (ko) 2005-11-09 2007-07-04 삼성전자주식회사 가상 메모리를 제어하는 장치 및 방법
EP1870813B1 (en) * 2006-06-19 2013-01-30 Texas Instruments France Page processing circuits, devices, methods and systems for secure demand paging and other operations
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 삼성전자주식회사 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022031735A (ja) * 2015-05-21 2022-02-22 ゼロポイント テクノロジーズ アーベー ハイブリッドデータ圧縮および解凍のための方法、デバイス、およびシステム

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102011135B1 (ko) 모바일 장치 및 그것의 스왑을 통한 데이터 관리 방법
US9274983B2 (en) Memory systems including nonvolatile buffering and methods of operating the same
CN105190525B (zh) 管理在节电模式中对混合式驱动器的访问
US20170177497A1 (en) Compressed caching of a logical-to-physical address table for nand-type flash memory
KR20190054448A (ko) 호스트 메모리 버퍼를 사용하기 위해 호스트 장치와 속성 정보를 공유하는 스토리지 장치 및 그것을 포함하는 전자 장치
US20170199814A1 (en) Non-volatile random access system memory with dram program caching
US9684625B2 (en) Asynchronously prefetching sharable memory pages
US20170123988A1 (en) System and method for flash read cache with adaptive pre-fetch
WO2017176534A1 (en) Managing container pause and resume
US9940029B2 (en) Semiconductor memory device that switches between states and moves data in accordance with a current state
US20150370488A1 (en) Memory device, computer system, and method of controlling memory device
US20170371593A1 (en) Selective flash memory compression/decompression using a storage usage collar
JP6258525B2 (ja) 再構成可能フェッチパイプライン
US10642493B2 (en) Mobile device and data management method of the same
CN110554837A (zh) 易疲劳存储介质的智能交换
US20140297927A1 (en) Information processing apparatus, information processing method, and recording medium
JP2018063505A (ja) メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム
CN112231238B (zh) 使用存储器压缩来减少存储器提交开销
KR20150106144A (ko) 메모리 스왑 오퍼레이션 제어 방법 및 이를 적용하는 데이터 처리 시스템
KR101175355B1 (ko) 스토리지 제어 장치, 이를 포함하는 모바일 장치 및 스토리지 제어 방법
KR20140079137A (ko) 불휘발성 메모리를 메인 메모리로 사용하는 컴퓨팅 시스템 및 그것의 데이터 관리 방법
WO2013153714A1 (ja) 情報処理装置