(57)【要約】【課題】モバイル装置とアプリケーションプロセッサ及びそのデータ管理方法を提供する。【解決手段】本発明のモバイル装置は、データを格納するためのストレージと、スワップビクティムバッファ領域及び通常のデータ領域に分割されるバッファメモリと、通常のデータ領域に格納されたページデータのスワップ動作が要求される時、ページデータを圧縮してスワップビクティムバッファ領域に格納するアプリケーションプロセッサと、で構成され、アプリケーションプロセッサは、スワップビクティムバッファ領域に格納されたデータが特定の条件を満たす場合、スワップビクティムバッファ領域に格納されたデータをストレージにスワップする。【選択図】図１１
2014116017.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するためのストレージと、
スワップビクティムバッファ領域及び通常のデータ領域を含むバッファメモリと、
前記通常のデータ領域からスワップされるページデータを選択し、該選択されたページデータに対してスワップ動作を実行するアプリケーションプロセッサと、を備え、
前記スワップ動作は、前記選択されたページデータのデータタイプに応じて、該選択されたページデータを前記通常のデータ領域から前記ストレージに移動するインスタントスワップ動作、又は該選択されたページデータを前記通常のデータ領域から前記スワップビクティムバッファ領域を通じて前記ストレージに移動するレイジースワップ動作を実行することを特徴とするモバイル装置。
【請求項２】
前記レイジースワップ動作時に、前記アプリケーションプロセッサは、前記選択されたページデータを圧縮し、該圧縮されたページデータを前記スワップビクティムバッファ領域に格納し、該圧縮されたページデータを前記ストレージに移動することを特徴とする請求項１に記載のモバイル装置。
【請求項３】
前記ストレージはフラッシュメモリであり、前記バッファメモリはＤＲＡＭであることを特徴とする請求項２に記載のモバイル装置。
【請求項４】
前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータが必要な場合、前記アプリケーションプロセッサは、前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータを読み出し、前記圧縮されたページデータの圧縮を解除し、該圧縮が解除されたデータを前記通常のデータ領域に格納することを特徴とする請求項１に記載のモバイル装置。
【請求項５】
前記インスタントスワップ動作時に、前記アプリケーションプロセッサは、前記ページデータを前記通常のデータ領域から前記ストレージに前記スワップビクティムバッファ領域を使用せずに移動することを特徴とする請求項１に記載のモバイル装置。
【請求項６】
前記選択されたページデータの圧縮率が閾値以下である場合、前記アプリケーションプロセッサは、前記インスタントスワップを実行することを特徴とする請求項５に記載のモバイル装置。
【請求項７】
不揮発性メモリと、
スワップビクティムバッファ領域及び通常のデータ領域を含むＤＲＡＭと、
前記不揮発性メモリ及び前記ＤＲＡＭに接続されたアプリケーションプロセッサと、を備え、
前記通常のデータ領域に格納されたページデータのスワップが要求された時、前記アプリケーションプロセッサは、前記ページデータのタイプに応じてインスタントスワップ動作又はレイジースワップ動作を実行し、
前記インスタントスワップ動作は、前記ページデータを前記不揮発性メモリに前記スワップビクティムバッファ領域を使用せずに移動させ、
前記レイジースワップ動作は、前記ページデータを圧縮し、該圧縮されたページデータを前記不揮発性メモリに前記スワップビクティムバッファ領域を通じて移動させることを特徴とするモバイル装置。
【請求項８】
前記アプリケーションプロセッサは、前記ページデータの圧縮率に応じて前記ページデータのタイプを判別することを特徴とする請求項７に記載のモバイル装置。
【請求項９】
前記アプリケーションプロセッサは、前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータを前記不揮発性メモリに移動するように構成されたダイレクトメモリアクセスコントローラ（ＤＭＡ）を含むことを特徴とする請求項７に記載のモバイル装置。
【請求項１０】
前記圧縮されたページデータは、前記スワップビクティムバッファ領域から前記不揮発性メモリにデータチャンクの単位で移動されることを特徴とする請求項７に記載のモバイル装置。
【請求項１１】
前記データチャンクの単位は、前記ＤＭＡによる前記データチャンクのデータ伝送時間が前記アプリケーションプロセッサによる前記データチャンクのデータ伝送時間と同一であるか又はそれより短くなるように設定され、
前記ＤＭＡによる前記データチャンクのデータ伝送時間は、前記ＤＭＡのプログラム時間を含むことを特徴とする請求項１０に記載のモバイル装置。
【請求項１２】
前記データチャンクの単位は、３２ＫＢ以上であることを特徴とする請求項１０に記載のモバイル装置。
【請求項１３】
アプリケーションプロセッサのデータ管理方法であって、
ＤＲＡＭの通常のデータ領域に格納されたページデータのデータタイプを判別する段階と、
前記判別されたデータタイプがレイジータイプである場合、前記ページデータのレイジースワップ動作を実行する段階と、
前記判別されたデータタイプがインスタントタイプである場合、前記ページデータのインスタントスワップ動作を実行する段階と、を有することを特徴とするデータ管理方法。
【請求項１４】
前記データタイプを判別する段階は、
前記ページデータを圧縮する段階と、
前記ページデータの圧縮率を判別する段階と、
前記圧縮率が閾値より高い場合、前記ページデータのデータタイプを前記レイジータイプに判別する段階と、
前記圧縮率が前記閾値以下である場合、前記ページデータのデータタイプを前記インスタントタイプに判別する段階と、を含むことを特徴とする請求項１３に記載のデータ管理方法。
【請求項１５】
前記ページデータのデータタイプを格納する段階をさらに含むことを特徴とする請求項１４に記載のデータ管理方法。
【請求項１６】
前記ページデータのヘッダ情報を用いて前記ページデータのデータタイプを予測する段階と、
前記データタイプがレイジータイプである場合、前記ページデータの圧縮動作を実行する段階と、
前記データタイプがレイジータイプでない場合、前記ページデータの圧縮動作を省略する段階と、をさらに含むことを特徴とする請求項１３に記載のデータ管理方法。
【請求項１７】
前記ページデータの圧縮率を格納する段階をさらに含むことを特徴とする請求項１４に記載のデータ管理方法。
【請求項１８】
前記格納された圧縮率を読み出す段階と、
前記読み出された圧縮率が前記閾値より高い場合、前記ページデータを前記ＤＲＡＭから読み出して該読み出されたページデータを圧縮する段階と、
前記読み出された圧縮率が前記閾値以下である場合、前記ページデータの圧縮を省略する段階と、をさらに含むことを特徴とする請求項１７に記載のデータ管理方法。
【請求項１９】
前記ページデータ又は前記ページデータに関連するプロセスの特性を検出する段階と、
前記検出結果に応じて、前記閾値を調整する段階と、をさらに含むことを特徴とする請求項１３に記載のデータ管理方法。
【請求項２０】
前記データタイプを判別する段階は、
前記ページデータの一部分を圧縮する段階と、
前記ページデータの一部分の圧縮率が閾値より高いか否かを判別する段階と、
前記ページデータの一部分の圧縮率が前記閾値より高い場合、前記ページデータの残りの部分を圧縮して前記データタイプを前記レイジータイプに判別する段階と、
前記ページデータの一部分の圧縮率が前記閾値以下である場合、前記ページデータの残りの部分を圧縮せずに前記データタイプを前記インスタントタイプに判別する段階と、を含むことを特徴とする請求項１３に記載のデータ管理方法。
【請求項２１】
前記インスタントスワップ動作を実行する段階は、
前記ページデータを前記ＤＲＡＭからストレージに移動する段階を含むことを特徴とする請求項１３に記載のデータ管理方法。
【請求項２２】
前記レイジースワップ動作を実行する段階は、
前記ページデータを圧縮されたページデータとして前記ＤＲＡＭのスワップビクティムバッファ領域に移動する段階を含むことを特徴とする請求項１３に記載のデータ管理方法。
【請求項２３】
前記スワップビクティムバッファ領域は複数のエントリを含み、各エントリは複数のページエントリを含み、
前記ページデータは、前記複数のエントリのうちの一つのページエントリに格納され、
前記ページデータは、前記圧縮されたページデータとして格納されることを特徴とする請求項２２に記載のデータ管理方法。
【請求項２４】
前記複数のエントリの各々の前記複数のページエントリは、リンクされたリストで管理されることを特徴とする請求項２３に記載のデータ管理方法。
【請求項２５】
前記レイジースワップ動作を実行する段階は、
前記圧縮されたページデータを前記スワップビクティムバッファ領域からストレージに移動する段階をさらに含むことを特徴とする請求項２３に記載のデータ管理方法。
【請求項２６】
前記圧縮されたページデータが前記スワップビクティムバッファ領域に最初に格納されたデータである場合、前記圧縮されたページデータが選択されることを特徴とする請求項２５に記載のデータ管理方法。
【請求項２７】
前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータが要求された場合、前記複数のエントリから前記圧縮されたページデータを読み出す段階と、
前記圧縮されたページデータの圧縮を解除する段階と、
前記圧縮が解除されたページデータを前記通常のデータ領域に格納する段階と、をさらに含むことを特徴とする請求項２６に記載のデータ管理方法。
【請求項２８】
前記レイジースワップ動作を実行する段階は、ダイレクトメモリアクセスコントローラ（ＤＭＡ）を用いて実行され、
前記インスタントスワップ動作を実行する段階は、プロセッサによって実行されることを特徴とする請求項１３に記載のデータ管理方法。
【請求項２９】
ＤＲＡＭインターフェースと、
フラッシュメモリインターフェースと、
ダイレクトメモリアクセスコントローラ（ＤＭＡ）と、
スワップ動作が必要であるか否かを判別し、前記ＤＲＡＭインターフェースを通じてスワップされるページデータを受信し、前記ページデータのデータタイプに応じて前記ページデータに対してインスタントスワップ動作又はレイジースワップ動作を実行するプロセッサと、を有し、
前記レイジースワップ動作時に、前記プロセッサは、前記ページデータを圧縮し、該圧縮されたページデータを前記ＤＲＡＭインターフェースを通じて出力し、前記ＤＭＡは、前記ＤＲＡＭインターフェースと前記フラッシュメモリインターフェースとの間のデータ経路を制御して、前記圧縮されたページデータが前記ＤＲＡＭインターフェースから前記フラッシュメモリインターフェースに移動するように制御することを特徴とするアプリケーションプロセッサ。
【請求項３０】
前記ページデータのデータタイプは、前記ページデータの圧縮率によって判別されることを特徴とする請求項２９に記載のアプリケーションプロセッサ。
【請求項３１】
前記ページデータのデータタイプは、前記ページデータの圧縮なしに前記ページデータのヘッダ情報によって判別されることを特徴とする請求項２９に記載のアプリケーションプロセッサ。
【請求項３２】
前記インスタントスワップ動作は、前記ページデータの圧縮なしに実行されることを特徴とする請求項２９に記載のアプリケーションプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モバイル装置に関し、より詳細には、アプリケーションプロセッサとスワップ（ｓｗａｐ）を通じたそのデータ管理方法及びそれを備えるモバイル装置に関する。
【背景技術】
【０００２】
近年、スマートフォン、タブレット端末、ノートパソコンなどのようなモバイル装置の利用が急増している。半導体技術及び通信技術の発展は、モバイル装置の情報処理量の増加を誘発している。モバイル装置の情報処理量が増加することによって、モバイル装置は、スマート機器という新しい形態に発展している。
スマート機器は、ユーザが自由にアプリケーションをインストールし、インストールされたアプリケーションを利用して情報を生成及び加工する機能を支援する。スマート機器の発展に伴い、スマート機器で駆動されるアプリケーションの製造技術も発展している。
一方、アプリケーションの製造技術が発展することによって、アプリケーション自体の容量、アプリケーションが扱うコンテンツの容量、アプリケーションが消費するモバイル装置の資源が急増している。しかし、モバイル装置の容量及び資源は限られており、モバイル装置の記憶容量及び資源を向上させることは、モバイル装置の価格上昇をもたらす。
したがって、モバイル装置の限られた記憶容量及び資源を利用して、様々なアプリケーションを円滑に駆動するための新しい技術が求められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許公開第２０１１／０１４５４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、動作性能を向上させたアプリケーションプロセッサとそのデータ管理方法及びこれを実行するアプリケーションプロセッサを備えるモバイル装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するためになされた本発明の一態様によるモバイル装置は、データを格納するためのストレージと、スワップビクティムバッファ領域及び通常のデータ領域を含むバッファメモリと、前記通常のデータ領域からスワップされるページデータを選択し、該選択されたページデータに対してスワップ動作を実行するアプリケーションプロセッサと、を備え、前記スワップ動作は、前記選択されたページデータのデータタイプに応じて、該選択されたページデータを前記通常のデータ領域から前記ストレージに移動するインスタントスワップ（ｉｎｓｔａｎｔ  ｓｗａｐ）動作、又は該選択されたページデータを前記通常のデータ領域から前記スワップビクティムバッファ領域を通じて前記ストレージに移動するレイジースワップ（ｌａｚｙ  ｓｗａｐ）動作を実行することを特徴とする。
【０００６】
前記レイジースワップ動作時に、前記アプリケーションプロセッサは、前記選択されたページデータを圧縮し、該圧縮されたページデータを前記スワップビクティムバッファ領域に格納し、該圧縮されたページデータを前記ストレージに移動し得る。
前記ストレージはフラッシュメモリであり、前記バッファメモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）であり得る。
前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータが必要な場合、前記アプリケーションプロセッサは、前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータを読み出し、前記圧縮されたページデータの圧縮を解除し、該圧縮が解除されたデータを前記通常のデータ領域に格納し得る。
前記インスタントスワップ動作時に、前記アプリケーションプロセッサは、前記ページデータを前記通常のデータ領域から前記ストレージに前記スワップビクティムバッファ領域を使用せずに移動し得る。
前記選択されたページデータの圧縮率が閾値以下である場合、前記アプリケーションプロセッサは、前記インスタントスワップを実行し得る。
【０００７】
上記目的を達成するためになされた本発明の他の態様によるモバイル装置は、不揮発性メモリと、スワップビクティムバッファ領域及び通常のデータ領域を含むに分割されるダイナミックランダムアクセスメモリ（ＤＲＡＭ）と、前記不揮発性メモリ及び前記ＤＲＡＭに接続されたアプリケーションプロセッサと、を備え、前記通常のデータ領域に格納されたページデータのスワップが要求された時、前記アプリケーションプロセッサは、前記ページデータのタイプに応じてインスタントスワップ（ｉｎｓｔａｎｔ  ｓｗａｐ）動作又はレイジースワップ（ｌａｚｙ  ｓｗａｐ）動作を実行し、前記インスタントスワップ動作は、前記ページデータを前記不揮発性メモリに前記スワップビクティムバッファ領域を使用せずに移動させ、前記レイジースワップ動作は、前記ページデータを圧縮し、該圧縮されたページデータを前記不揮発性メモリに前記スワップビクティムバッファ領域を通じて移動させることを特徴とする。
【０００８】
前記アプリケーションプロセッサは、前記ページデータの圧縮率に応じて前記ページデータのタイプを判別し得る。
前記アプリケーションプロセッサは、前記スワップビクティムバッファ領域に格納された前記圧縮されたページデータを前記不揮発性メモリに移動するように構成されたダイレクトメモリアクセスコントローラ（ＤＭＡ）を含み得る。
前記圧縮されたページデータは、前記スワップビクティムバッファ領域から前記不揮発性メモリにデータチャンクの単位で移動され得る。
前記データチャンクの単位は、前記ＤＭＡによる前記データチャンクのデータ伝送時間が前記アプリケーションプロセッサによる前記データチャンクのデータ伝送時間と同一であるか又はそれより短くなるように設定され、前記ＤＭＡによる前記データチャンクのデータ伝送時間は、前記ＤＭＡのプログラム時間を含み得る。
前記データチャンクの単位は、３２ＫＢ以上であり得る。
【０００９】
上記目的を達成するためになされた本発明の一態様によるアプリケーションプロセッサのデータ管理方法は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）の通常のデータ領域に格納されたページデータのデータタイプを判別する段階と、前記判別されたデータタイプがレイジータイプである場合、前記ページデータのレイジースワップ（ｌａｚｙ  ｓｗａｐ）動作を実行する段階と、前記判別されたデータタイプがインスタントタイプである場合、前記ページデータのインスタントスワップ（ｉｎｓｔａｎｔ  ｓｗａｐ）動作を実行する段階と、を有することを特徴とする。
【００１０】
前記データタイプを判別する段階は、前記ページデータを圧縮する段階と、前記ページデータの圧縮率を判別する段階と、前記圧縮率が閾値より高い場合、前記ページデータのデータタイプをレイジータイプに判別する段階と、前記圧縮率が前記閾値以下である場合、前記ページデータのデータタイプをインスタントタイプに判別する段階と、を含み得る。
前記データ管理方法は、前記ページデータのデータタイプを格納する段階をさらに含むことができる。
前記データ管理方法は、前記ページデータのヘッダ情報を用いて前記ページデータのデータタイプを予測する段階と、前記データタイプがレイジータイプである場合、前記ページデータの圧縮動作を実行する段階と、前記データタイプがレイジータイプでない場合、前記ページデータの圧縮動作を省略する段階と、をさらに含むことができる。
前記データ管理方法は、前記ページデータの圧縮率を格納する段階をさらに含むことができる。
前記データ管理方法は、前記格納された圧縮率を読み出す段階と、前記読み出された圧縮率が前記閾値より高い場合、前記ページデータを前記ＤＲＡＭから読み出して該読み出されたページデータを圧縮する段階と、前記読み出された圧縮率が前記閾値以下である場合、前記ページデータの圧縮を省略する段階と、をさらに含むことができる。
前記データ管理方法は、前記ページデータ又は前記ページデータに関連するプロセスの特性を検出する段階と、前記検出結果に応じて、前記閾値を調整する段階と、をさらに含むことができる。
前記データタイプを判別する段階は、前記ページデータの一部分を圧縮する段階と、前記ページデータの一部分の圧縮率が閾値より高いか否かを判別する段階と、前記ページデータの一部分の圧縮率が前記閾値より高い場合、前記ページデータの残りの部分を圧縮して前記データタイプを前記レイジータイプに判別する段階と、前記ページデータの一部分の圧縮率が前記閾値以下である場合、前記ページデータの残りの部分を圧縮せずに前記データタイプを前記インスタントタイプに判別する段階と、を含み得る。
前記インスタントスワップ動作を実行する段階は、前記ページデータを前記ＤＲＡＭからストレージに移動する段階を含み得る。
前記レイジースワップ動作を実行する段階は、前記ページデータを圧縮されたページデータとして前記ＤＲＡＭのスワップビクティムバッファ領域に移動する段階を含み得る。
前記スワップビクティムバッファ領域は複数のエントリを含み、各エントリは複数のページエントリを含み、前記ページデータは、前記複数のエントリのうちの一つのページエントリに格納され、前記ページデータは、前記圧縮されたページデータとして格納され得る。
前記複数のエントリの各々の前記複数のページエントリは、リンクされたリストで管理され得る。  前記レイジースワップ動作を実行する段階は、前記圧縮されたページデータを前記スワップビクティムバッファ領域からストレージに移動する段階をさらに含み得る。
前記前記圧縮されたページデータが前記スワップビクティムバッファ領域に最初に格納されたデータである場合、前記圧縮されたページデータが選択され得る。
前記データ管理方法は、前記スワップビクティムバッファに格納された前記圧縮されたページデータが要求された場合、前記複数のエントリから前記圧縮されたページデータを読み出す段階と、前記圧縮されたページデータの圧縮を解除する段階と、前記圧縮が解除されたページデータを前記通常のデータ領域に格納する段階と、をさらに含むことができる。
前記レイジースワップ動作を実行する段階は、ダイレクトメモリアクセスコントローラ（ＤＭＡ）を用いて実行され、前記インスタントスワップ動作を実行する段階は、プロセッサによって実行され得る。
【００１１】
上記目的を達成するためになされた本発明の一態様によるアプリケーションプロセッサは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）インターフェースと、フラッシュメモリインターフェースと、ダイレクトメモリアクセスコントローラ（ＤＭＡ）と、スワップ動作が必要であるか否かを判別し、前記ＤＲＡＭインターフェースを通じてスワップされるページデータを受信し、前記ページデータのデータタイプに応じて前記ページデータに対してインスタントスワップ動作又はレイジースワップ動作を実行するプロセッサと、を有し、前記レイジースワップ動作時に、前記プロセッサは、前記ページデータを圧縮し、該圧縮されたページデータを前記ＤＲＡＭインターフェースを通じて出力し、前記ＤＭＡは、前記ＤＲＡＭインターフェースと前記フラッシュメモリインターフェースとの間のデータ経路を制御して、前記圧縮されたページデータが前記ＤＲＡＭインターフェースから前記フラッシュメモリインターフェースに移動するように制御することを特徴とする。
前記ページデータのデータタイプは、前記ページデータの圧縮率によって判別され得る。
前記ページデータのデータタイプは、前記ページデータの圧縮なしに前記ページデータのヘッダ情報によって判別され得る。
前記インスタントスワップ動作は、前記ページデータの圧縮なしに実行され得る。
【発明の効果】
【００１２】
本発明のモバイル装置とアプリケーションプロセッサ及びそのデータ管理方法によれば、ＤＲＡＭに格納されたページデータは、データタイプに応じて、インスタントスワップ（ｉｎｓｔａｎｔ  ｓｗａｐ）又はレイジースワップ（ｌａｚｙ  ｓｗａｐ）に判別され、レイジースワップは、スワップビクティムバッファ領域を経由して実行される。したがって、呼び出されたページデータがスワップビクティムバッファ領域に格納されている場合、直ちにＤＲＡＭに復旧することができる。したがって、動作速度を向上させ、スラッシング（ｔｈｒａｓｈｉｎｇ）を防止することができる。
また、レイジースワップが、アプリケーションプロセッサのダイレクトメモリアクセスコントローラ（ＤＭＡ）を用いて実行されるため、消費電力が減少し、動作性能を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態によるモバイル装置を示すブロック図である。
【図２】図１に示したＤＲＡＭとフラッシュメモリのデータ領域の構造を概念的に示すブロック図である。
【図３】図１に示したモバイル装置のデータ管理方法の一例を示すフローチャートである。
【図４】図３に示したＳ１１０段階において、アプリケーションプロセッサ１１００が、スワップが要求されるか否かを判別する方法の一例を示すフローチャートである。
【図５】図３に示したＳ１２０段階において、アプリケーションプロセッサがページデータのデータタイプを判別する一例を示すフローチャートである。
【図６】図５で判別したデータタイプがログ情報として格納された後、データタイプの判別が再び要求された場合に、中央処理装置がデータタイプを判別する方法の一例を示すフローチャートである。
【図７】図３に示したＳ１２０段階において、アプリケーションプロセッサがページデータのデータタイプを判別する他の例を示すフローチャートである。
【図８】図７で判別したデータタイプがログ情報に格納された後、データタイプの判別が再び要求された場合に、中央処理装置がデータタイプを判別する方法の一例を示すフローチャートである。
【図９】図１に示した中央処理装置が閾値を調整する方法の一例を示すフローチャートである。
【図１０】本発明の他の実施形態によるモバイル装置を示すブロック図である。
【図１１】図１０に示したＤＲＡＭ、ＳＲＡＭ、及びフラッシュメモリのデータ領域の構造を概念的に示すブロック図である。
【図１２】図１０に示したアプリケーションプロセッサがページデータのデータタイプを判別する方法の一例を示すフローチャートである。
【図１３】図１２に示したＳ６６０段階におけるインスタントスワップ方法の一例を示すフローチャートである。
【図１４】図１２に示したＳ６４０段階におけるレイジースワップ方法の一例を示すフローチャートである。
【図１５】図１１のＤＲＡＭでインスタントスワップを実行する一例を説明するための図である。
【図１６】図１１のＤＲＡＭでレイジースワップを実行する一例を説明するための図である。
【図１７】スワップされたページデータを復元する方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
【００１５】
図１は、本発明の一実施形態によるモバイル装置を示すブロック図である。図１を参照すると、モバイル装置１０００は、アプリケーションプロセッサ（ＡＰ）１１００、ＤＲＡＭ１２００、フラッシュメモリ１３００、モデム１４００、及びユーザインターフェース１５００を含む。
【００１６】
アプリケーションプロセッサ１１００は、モバイル装置１０００のすべての動作を制御し、論理演算を実行する。例えば、アプリケーションプロセッサ１１００は、システムオンチップ（ＳｏＣ）で構成される。
【００１７】
アプリケーションプロセッサ１１００は、バス１１１０、中央処理装置（ＣＰＵ）１１２０、ダイレクトメモリアクセスコントローラ（ＤＭＡ）１１３０、圧縮解除器１１４０、ＤＲＡＭインターフェース１１５０、ＳＲＡＭ１１６０、及びフラッシュインターフェース１１７０を含む。図１で、アプリケーションプロセッサ１１００は、モデム１４００及びユーザインターフェース１５００と通信するインターフェースが省略されている。
【００１８】
バス１１１０は、アプリケーションプロセッサ１１００の構成要素間のチャネルを提供する。中央処理装置１１２０は、アプリケーションプロセッサ１１００のメイン演算、データ処理、及び制御を実行する核心の要素である。ダイレクトメモリアクセスコントローラ（ＤＭＡ）１１３０は、メモリ間のデータ交換を制御する。
【００１９】
ＤＭＡ１１３０は、中央処理装置１１２０の制御によって動作する。例えば、ＤＭＡ１１３０は、中央処理装置１１２０によってプログラムされ、プログラムされた条件に従って動作する。プログラムされたＤＭＡ１１３０は、中央処理装置１１２０の制御なしにモバイル装置１０００の格納要素間のデータの流れを制御する。例えば、ＤＭＡ１１３０は、ＤＲＡＭ１２００、ＳＲＡＭ１１６０、及びフラッシュメモリ１３００のうちの少なくとも２つの間のデータの流れを制御する。
【００２０】
圧縮解除器１１４０は、ハードウェア（ＨＷ）で具現され、圧縮されたページデータの圧縮を解除する。ＤＲＡＭインターフェース１１５０は、ＤＲＡＭ１２００との通信を支援する。ＳＲＡＭ１１６０は、アプリケーションプロセッサ１１００のキャッシュメモリ、バッファメモリ、又は一時メモリとして用いられる。フラッシュインターフェース１１７０は、フラッシュメモリ１３００との通信を支援する。
【００２１】
ＤＲＡＭ１２００は、モバイル装置１０００のバッファメモリ又は動作メモリとして用いられる。モバイル装置１０００の動作メモリは、ＤＲＡＭ１２００である。しかし、モバイル装置１０００の動作メモリは、ＳＲＡＭ、ＮＯＲフラッシュメモリ、磁気ランダムアクセスメモリ（ＭＲＡＭ）、相変化ランダムアクセスメモリ（ＰＲＡＭ）、強誘電体ランダムアクセスメモリ（ＦｅＲＡＭ）、抵抗性ランダムアクセスメモリ（ＲｅＲＡＭ）などのように、揮発性及び不揮発性に関係なく、ランダムアクセス機能を支援する様々なメモリで代替可能である。
【００２２】
フラッシュメモリ１３００は、ストレージ（ｓｔｏｒａｇｅ）として用いられる。ストレージは、データの長期的な保存を目的とする記憶装置である。フラッシュメモリ１３００は、磁気ランダムアクセスメモリ（ＭＲＡＭ）、相変化ランダムアクセスメモリ（ＰＲＡＭ）、強誘電体ランダムアクセスメモリ（ＦｅＲＡＭ）、抵抗性ランダムアクセスメモリ（ＲｅＲＡＭ）などのような不揮発性メモリを含むＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、又はハードディスクドライブ（ＨＤＤ）で代替可能である。
【００２３】
モデム１４００は、アプリケーションプロセッサ１１００の制御により外部装置と無線又は有線通信を実行する。モデム１４００は、ＷｉＦｉ、ＣＤＭＡ、ＧＳＭ（登録商標）、ＬＴＥ（登録商標）、ブルートゥース（登録商標）、ＮＦＣなどのような様々な通信規格のうちの少なくとも一つに基づいて通信を実行する。モデム１４００は、アプリケーションプロセッサ１１００と共にシステムオンチップ（ＳｏＣ）を構成することができる。
【００２４】
ユーザインターフェース１５００は、外部と信号を交換する。例えば、ユーザインターフェース１５００は、キーボード、キーパッド、ボタン、タッチパネル、タッチスクリーン、タッチパッド、タッチボール、カメラ、マイク、ジャイロスコープセンサ、振動センサなどのようなユーザ入力インターフェースを含む。ユーザインターフェース１５００は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）、ＡＭＯＬＥＤ（Ａｃｔｉｖｅ  Ｍａｔｒｉｘ  ＯＬＥＤ）、ＬＥＤ、スピーカ、モータなどのようなユーザ出力インターフェースを含む。
【００２５】
図２は、図１に示したＤＲＡＭとフラッシュメモリのデータ領域の構造を概念的に示すブロック図である。図２を参照すると、ＤＲＡＭ１２００は、スワップビクティムバッファ（ＳＶＢ：Ｓｗａｐ  Ｖｉｃｔｉｍ  Ｂｕｆｆｅｒ）領域１２３０及び通常のデータ領域（ＮＤＡ：Ｎｏｒｍａｌ  Ｄａｔａ  Ａｒｅａ）１２５０に分割される。
【００２６】
スワップビクティムバッファ領域１２３０は、通常のデータ領域１２５０に格納されたデータがフラッシュメモリ１３００にスワップ（ｓｗａｐ）される時、スワップされるデータが一時的に格納される領域である。例えば、通常のデータ領域１２５０に格納されたデータのうちの少なくとも一部は、スワップビクティムバッファ領域１２３０に移動した後、フラッシュメモリ１３００に移動する。
【００２７】
通常のデータ領域１２５０は、アプリケーションプロセッサ１１００によって駆動されるプロセス（又はアプリケーション）が使用する領域である。例えば、プロセスのコード、プロセスによって処理されるデータを通常のデータ領域１２５０に格納する。
【００２８】
ＤＲＡＭ１２００では、データをページ単位で管理する。ページはモバイル装置１０００のオペレーティングシステム（ＯＳ）により定義されたサイズを有する。プロセスのコードやデータはページ単位でＤＲＡＭ１２００に格納され、ＤＲＡＭ１２００から読み出される。以下、ページ単位でアクセスされるデータをページデータという。
【００２９】
フラッシュメモリ１３００は、モバイル装置１０００のストレージとして用いられる。フラッシュメモリ１３００は、ユーザデータ及びスワップデータを格納する。例えば、アプリケーションプロセッサ１１００は、処理されるデータ（例えば、プロセス自体のデータ又はプロセスによって処理されるデータを含むデータ）をＤＲＡＭ１２００に格納し、処理されるデータの一部をフラッシュメモリ１３００にスワップ（ｓｗａｐ）する。スワップデータは、アプリケーションプロセッサ１１００によってスワップされたデータである。
【００３０】
図３は、図１に示したモバイル装置のデータ管理方法の一例を示すフローチャートである。図１のアプリケーションプロセッサ１１００のデータ管理方法を、図３を参照して説明する。
【００３１】
Ｓ１１０段階において、スワップが要求されるか否かを判別する。アプリケーションプロセッサ１１００は、通常のデータ領域１２５０に格納されたページデータのスワップが要求されるか否かを判別する。スワップが要求されなければ、データの管理は終了し、スワップが要求されると、Ｓ１２０段階が実行される。スワップが要求されるか否かを判断するＳ１１０段階は、図４を参照してより詳細に説明する。
【００３２】
Ｓ１２０段階において、ＤＲＡＭ１２００に格納されたページデータのタイプを判別する。アプリケーションプロセッサ１１００は、通常のデータ領域１２５０に格納されたページデータのうちのスワップの対象として選択されたページデータのタイプを判別する。ページデータのタイプを判別する動作は、図５、７、及び図１２を参照してより詳細に説明する。
【００３３】
Ｓ１３０段階において、Ｓ１２０段階で判別されたデータタイプに応じて、レイジースワップ（ｌａｚｙ  ｓｗａｐ）又はインスタントスワップ（ｉｎｓｔａｎｔ  ｓｗａｐ）が実行される。スワップされるページデータのタイプに応じて、異なる方法でスワップを実行する動作は、図１３〜図１６を参照してより詳細に説明する。
【００３４】
図４は、図３に示したＳ１１０段階において、アプリケーションプロセッサ１１００が、スワップが要求されるか否かを判別する方法の一例を示すフローチャートである。図１及び図４を参照すると、Ｓ２１０段階において、ＤＲＡＭ１２００の新しい割り当てが要求されるか否かを判別する。例えば、アプリケーションプロセッサ１１００は、新しいプロセス（又はアプリケーション）をローディングする時、ローディングされるプロセス（又はアプリケーション）に通常のデータ領域１２５０の少なくとも１つのページの割り当てを要求する。
【００３５】
Ｓ２２０段階において、ＤＲＡＭ１２００の空きメモリ空間が十分であるか否かを判別する。アプリケーションプロセッサ１１００は、プロセス（又はアプリケーション）に通常のデータ領域１２５０の予め決められた数のページを割り当てる。例えば、アプリケーションプロセッサ１１００は、ローディングされるプロセス（又はアプリケーション）の実行履歴に基づいて、プロセス（又はアプリケーション）で要求されるページの数を判別する。
【００３６】
プロセス（又はアプリケーション）で要求されるページの容量が通常のデータ領域１２５０の空きメモリ容量より少ない場合、ＤＲＡＭ１２００の空きメモリ空間は十分であると判別する。この場合、Ｓ２３０段階で、スワップが要求されないと判断する。
【００３７】
プロセス（又はアプリケーション）で要求されるページの容量が通常のデータ領域１２５０の空きメモリ容量より大きい場合、ＤＲＡＭ１２００の空きメモリ空間は十分でないと判断する。この場合、Ｓ２４０段階で、スワップが要求されると判断する。
【００３８】
図５は、図３に示したＳ１２０段階において、アプリケーションプロセッサがページデータのデータタイプを判別する一例を示すフローチャートである。
【００３９】
Ｓ３１０段階において、通常のデータ領域１２５０からページデータが読み出され、読み出されたページデータが圧縮される。例えば、中央処理装置１１２０は、スワップが要求されると、選択されたページデータをＤＲＡＭ１２００の通常のデータ領域１２５０からＤＲＡＭインターフェース１１５０を通じて読み出す。中央処理装置１１２０は、読み出されたページデータを圧縮する。
【００４０】
Ｓ３２０段階において、圧縮率が閾値より高いか否かを判別する。中央処理装置１１２０は、読み出されたページデータの圧縮を実行した後、圧縮されたページデータの圧縮率を閾値と比較する。
【００４１】
圧縮率が閾値以下である場合、Ｓ３４０段階で、読み出されたページデータのデータタイプをインスタントタイプ（ｉｎｓｔａｎｔ  ｔｙｐｅ）に判別する。すなわち、インスタントタイプのページデータは、閾値以下の低い圧縮率を有するページデータである。読み出されたページデータのデータタイプがインスタントタイプに判別されると、圧縮されたページデータは、廃棄される。
【００４２】
圧縮率が閾値より高い場合、Ｓ３３０段階で、読み出されたページデータのデータタイプをレイジータイプ（ｌａｚｙ  ｔｙｐｅ）に判別する。すなわち、レイジータイプのページデータは、閾値より高い圧縮率を有するページデータである。読み出されたページデータのデータタイプが、レイジータイプに判別されると、圧縮されたページデータは、スワップのために使用される。
【００４３】
Ｓ３５０段階において、データタイプがログ情報として格納される。中央処理装置１１２０は、ページデータのデータタイプをログ情報としてＳＲＡＭ１１６０に格納する。中央処理装置１１２０は、ページデータを用いるプロセスの識別子、ページデータがコードであるか又はデータであるかを示す情報、及びページデータのデータタイプをログ情報として格納する。ＳＲＡＭ１１６０に格納されたログ情報は、定期的に、予め決められたスケジュール又は特定のイベント（例えば、電源オフ等）の発生に応答して、フラッシュメモリ１３００にバックアップされる。モバイル装置１０００の電源がオフされた後、再びオンになる時に、フラッシュメモリ１３００にバックアップされたログ情報は、ＳＲＡＭ１１６０にコピーされる。
【００４４】
図６は、図５で判別したデータタイプがログ情報として格納された後、データタイプの判別が再び要求された場合に、中央処理装置がデータタイプを判別する方法の一例を示すフローチャートである。
【００４５】
Ｓ３６０段階において、ページデータのデータタイプがログ情報から読み出される。中央処理装置１１２０は、ＳＲＡＭ１１６０に格納されたログ情報を読み出し、ログ情報に含まれるページデータのデータタイプを識別する。
【００４６】
Ｓ３７０段階において、読み出されたデータタイプがレイジータイプ（ｌａｚｙｔｙｐｅ）であるか否かを判別する。データタイプがレイジータイプでない場合、通常のデータ領域１２５０に格納されたページデータの圧縮が省略され、データタイプの判別動作は終了する。データタイプがレイジータイプである場合、Ｓ３８０段階で、通常のデータ領域１２５０からページデータが読み出され、読み出されたページデータは圧縮される。圧縮されたページデータはスワップのために使用される。
【００４７】
図７は、図３に示したＳ１２０段階において、アプリケーションプロセッサがページデータのデータタイプを判別する他の例を示すフローチャートである。図７に示したＳ４１０段階〜Ｓ４４０段階は、図５のＳ３１０段階〜Ｓ３４０段階と同じ方法で実行される。したがって、Ｓ４１０段階〜Ｓ４４０段階の詳細な説明は省略する。
【００４８】
Ｓ４５０段階において、ページデータの圧縮率がログ情報として格納される。例えば、中央処理装置１１２０は、ページデータの圧縮率（ｃｏｍｐｒｅｓｓｉｏｎ  ｒａｔｉｏ）をログ情報としてＳＲＡＭ１１６０に格納する。中央処理装置１１２０は、ページデータを用いるプロセスの識別子、ページデータがコードであるか又はデータであるかを示す情報、及びページデータの圧縮率をログ情報として格納する。
【００４９】
図８は、図７で判別したデータタイプがログ情報として格納された後、データタイプの判別が再び要求された場合に、中央処理装置がデータタイプを判別する方法の一例を示すフローチャートである。
【００５０】
Ｓ４６０段階において、ページデータの圧縮率がログ情報から読み出される。中央処理装置１１２０は、ＳＲＡＭ１１６０に格納されたログ情報を読み出し、ログ情報に含まれるページデータの圧縮率を判別する。
【００５１】
Ｓ４７０段階において、読み出された圧縮率が閾値より高いか否かを判別する。読み出された圧縮率が閾値以下である場合、通常のデータ領域１２５０に格納されたページデータの圧縮が省略され、データタイプの判別動作は終了する。圧縮率が閾値より高い場合、Ｓ４８０段階で、通常のデータ領域１２５０からページデータが読み出され、読み出されたページデータを圧縮する。圧縮されたページデータはスワップのために使用される。
【００５２】
本実施形態によれば、データタイプは、ページデータの圧縮率に応じて決められる。圧縮されたページデータは、データタイプに応じて、スワップのために使用されるか又は廃棄される。
【００５３】
一度決められたデータタイプは、ログ情報として格納される。したがって、以後にページデータのデータタイプの判定が再び要求された場合、ページデータを圧縮せずにログ情報を読み出すことによって、ページデータのデータタイプを判別することができる。データタイプを確認した後に圧縮が行われるため、不要な圧縮（例えば、圧縮の必要がないページデータの圧縮）を防止し、これによりモバイル装置１０００の動作性能が向上する。
【００５４】
図９は、図１に示した中央処理装置が閾値を調整する方法の一例を示すフローチャートである。
【００５５】
Ｓ５１０段階において、ページデータ又はページデータに関連するプロセスの特性が検出される。Ｓ５２０段階において、検出された特性によって、閾値が決められる。すなわち、スワップのために選択されたページデータ又はページデータに関連するプロセスの特性に応じて、ページデータを圧縮するか否かを決める閾値を調節する。
【００５６】
例えば、文書編集のためのプロセス及びデータは、高い圧縮率を有する。高い圧縮率を有するプロセス及びデータがモバイル装置１０００で駆動され、閾値が固定されている場合、すべてのページデータに対する圧縮が行われる。一方、動画編集のためのプロセス及びデータは、低い圧縮率を有する。低い圧縮率を有するプロセス及びデータがモバイル装置１０００で駆動され、閾値が固定されている場合、どのようなページデータに対しても圧縮が実行されない。
【００５７】
プロセスの特性及びデータの圧縮率によって閾値が決まると、モバイル装置１０００で駆動されるプロセス及びデータのうちの圧縮されるプロセス及びデータの割合が調節される。
【００５８】
図１０は、本発明の他の実施形態によるモバイル装置を示すブロック図である。図１０を参照すると、モバイル装置２０００は、アプリケーションプロセッサ（ＡＰ）２１００、ＤＲＡＭ２２００、フラッシュメモリ２３００、モデム２４００、及びユーザインターフェース２５００を含む。アプリケーションプロセッサ２１００は、バス２１１０、中央処理装置（ＣＰＵ）２１２０、ダイレクトメモリアクセスコントローラ（ＤＭＡ）２１３０、圧縮器及び圧縮解除器２１４０、ＤＲＡＭインターフェース２１５０、ＳＲＡＭ２１６０、及びフラッシュインターフェース２１７０を含む。
【００５９】
図１０に示したモバイル装置２０００は、圧縮器及び圧縮解除器２１４０を使用して、ページデータを圧縮し、圧縮されたページデータの圧縮を解除する。図１のアプリケーションプロセッサ１１００と比較すると、アプリケーションプロセッサ２１００は、ページデータの圧縮機能が中央処理装置２１２０ではなく、圧縮器及び圧縮解除器２１４０によって提供される。図１０において、圧縮器及び圧縮解除器２１４０は、ハードウェア（ＨＷ）で具現される。
【００６０】
図１１は、図１０に示したＤＲＡＭ、ＳＲＡＭ、及びフラッシュメモリのデータ領域の構造を概念的に示すブロック図である。図１１を参照すると、ＤＲＡＭ２２００は、スワップビクティムバッファ（ＳＶＢ：Ｓｗａｐ  Ｖｉｃｔｉｍ  Ｂｕｆｆｅｒ）領域２２３０と通常のデータ領域（ＮＤＡ：Ｎｏｒｍａｌ  Ｄａｔａ  Ａｒｅａ）２２５０とに分割される。
【００６１】
スワップビクティムバッファ領域２２３０は、通常のデータ領域２２５０に格納されたデータがフラッシュメモリ２３００にスワップ（ｓｗａｐ）される時、スワップされるデータが格納される。図１１を参照すると、スワップビクティムバッファ領域２２３０は、複数のエントリ（例えば、Ｅｎｔｒｙ１〜Ｅｎｔｒｙ１６）を含む。各エントリ（例えば、Ｅｎｔｒｙ＿Ｋ）は、複数のページエントリＰＥ１〜ＰＥｍを格納する。１つのページエントリは、一つの圧縮されたページデータに対応する。すなわち、１つの圧縮されたページデータを１つのページエントリとしてスワップビクティムバッファ領域２２３０に格納する。
【００６２】
複数のエントリＥｎｔｒｙ１〜Ｅｎｔｒｙ１６の各々で、１つのページエントリ（又は、圧縮されたページデータ）が選択されて、一つのデータチャンク（Ｄａｔａ  Ｃｈｕｎｋ）を形成する。図１１で、複数のエントリＥｎｔｒｙ１〜Ｅｎｔｒｙ１６のページエントリＰＥ１〜ＰＥｍは、行と列方向に沿ってマトリクス形態に示している。ページエントリＰＥ１〜ＰＥｍの１つの列は、一つのデータチャンクＤＣを形成する。
【００６３】
複数のエントリＥｎｔｒｙ１〜Ｅｎｔｒｙ１６の各々で、複数のページエントリＰＥ１〜ＰＥｍは、リンクされたリスト（ｌｉｎｋｅｄ  ｌｉｓｔ）に従って管理される。一つのエントリ（例えば、Ｅｎｔｒｙ＿Ｋ）に格納される１番目の圧縮されたページデータは第１ページエントリＰＥ１に格納され、第Ｋエントリ（Ｅｎｔｒｙ＿Ｋ）に格納される２番目の圧縮されたページデータは第２ページエントリＰＥ２に格納される。第１ページエントリＰＥ１は第２ページエントリＰＥ２とリンクされる。同様に、第１〜第ｍページエントリ（ＰＥ１〜ＰＥｍ）は互いにリンクされる。
【００６４】
互いにリンクされたページエントリＰＥ１〜ＰＥｍのうちの一つのページエントリが除去されると、リンクが更新される。例えば、第２ページエントリＰＥ２が除去されると、第１及び第３ページエントリ（ＰＥ１及びＰＥ３）が互いにリンクされる。第３〜第ｍページエントリ（ＰＥ３〜ＰＥｍ）は、第２〜第ｍ−１ページエントリ（ＰＥ２〜ＰＥｍ−１）として管理されるように更新される。その後、新たに格納される圧縮されたページデータは、第ｍページエントリＰＥｍに格納される。すなわち、複数のエントリＥｎｔｒｙ１〜Ｅｎｔｒｙ１６の各々で、一方の側に、最初に格納されたページエントリＰＥ１が位置される。このページエントリＰＥ１がデータチャンク（Ｄａｔａ  Ｃｈｕｎｋ）を形成する。
【００６５】
通常のデータ領域２２５０は、アプリケーションプロセッサ２１００によって駆動されるプロセス（又はアプリケーション）が使用する領域である。例えば、プロセスのコード及びプロセスによって処理されるデータを通常のデータ領域２２５０に格納する。
【００６６】
ＤＲＡＭ２２００のデータはページ単位で管理される。ページはモバイル装置２０００のオペレーティングシステム（ＯＳ）で定義されるサイズを有する。プロセスのコードやデータはページ単位でＤＲＡＭ２２００に格納され、ＤＲＡＭ２２００から読み出される。
【００６７】
フラッシュメモリ２３００は、モバイル装置２０００のストレージとして使用される。アプリケーションプロセッサ２１００は、処理されるデータ（例えば、プロセス自体のデータ又はプロセスによって処理されるデータ）をＤＲＡＭ２２００に格納し、処理されるデータの一部をフラッシュメモリ２３００にスワップ（ｓｗａｐ）する。
【００６８】
図１２は、図１０に示したアプリケーションプロセッサのページデータのデータタイプを判別する方法の一例を示すフローチャートである。
【００６９】
Ｓ６１０段階において、ページデータの圧縮が開始される。通常のデータ領域２２５０からスワップされる対象として選択されたページデータが読み出され、読み出されたページデータは圧縮器及び圧縮解除器２１４０に伝送される。圧縮器及び圧縮解除器２１４０は、受信したページデータの圧縮を行う。
【００７０】
Ｓ６２０段階において、ページデータの一部分の圧縮率が閾値より高いか否かを判別する。例えば、圧縮器及び圧縮解除器２１４０は、圧縮が完了する前に、圧縮率と閾値とを比較する。
【００７１】
圧縮率が閾値より高い場合、Ｓ６３０段階で、ページデータの圧縮は継続され、Ｓ６４０段階で、ページデータのデータタイプをレイジータイプに判別する。圧縮されたページデータはスワップのために使用される。
【００７２】
圧縮率が閾値以下である場合、Ｓ６５０段階で、ページデータの圧縮は中止され、Ｓ６６０段階で、ページデータのデータタイプをインスタントタイプに判別する。
【００７３】
本実施形態によれば、ページデータの圧縮及び圧縮の解除は、中央処理装置２１２０と分離された圧縮器及び圧縮解除器２１４０で行われる。したがって、中央処理装置２１２０の資源を消費せずにページデータの圧縮及び圧縮の解除が実行され、圧縮が完了する前に圧縮率を判別することができる。圧縮が完了する前に圧縮率と閾値が比較されるので、不要な圧縮の実行を防止することができる。
【００７４】
上述の実施形態において、ページデータのデータタイプは、圧縮率によって決められるものとして説明した。しかし、ページデータのデータタイプは、予測に基づいて決定可能である。例えば、マルチメディアデータは低い圧縮率を有し、テキストやコードは高い圧縮率を有する。アプリケーションプロセッサ２１００は、ページデータのヘッダを読み出すことによって、ページデータがマルチメディアデータであるか、テキストであるか、又はコードであるかを判別する。判別の結果に基づいて、アプリケーションプロセッサ２１００は、マルチメディアデータをインスタントタイプに判別し、テキストやコードをレイジータイプに判別する。
【００７５】
図１３は、図１２に示したＳ６６０段階におけるインスタントスワップ方法の一例を示すフローチャートである。ページデータがインスタントタイプに判別された時に、インスタントスワップを実行する。すなわち、ページデータの圧縮率が閾値以下である場合に、インスタントスワップが実行される。
【００７６】
図１１及び図１３を参照すると、Ｓ７１０段階においてで、通常のデータ領域２２５０からページデータが読み出される。アプリケーションプロセッサ２１００は、オペレーティングシステムの上位レベルでスワップされる対象として選択されたページデータを、通常のデータ領域２２５０から読み出す。
【００７７】
Ｓ７２０段階において、読み出されたページデータがフラッシュメモリ２３００に格納される。アプリケーションプロセッサ２１００は読み出されたページデータをフラッシュメモリ２３００に格納する。
【００７８】
Ｓ７３０段階において、通常のデータ領域２２５０からページデータが削除される。
すなわち、圧縮率が閾値以下のインスタントタイプのページデータは圧縮されず、フラッシュメモリ２３００にスワップされる。アプリケーションプロセッサ２１００は、スワップの要求がある時、インスタントタイプのページデータを直ちにスワップする。
【００７９】
図１４は、図１２に示したＳ６４０段階におけるレイジースワップ方法の一例を示すフローチャートである。ページデータがレイジータイプに判別された時に、レイジースワップを実行する。すなわち、ページデータの圧縮率が閾値より高い場合に、レイジースワップが実行される。
【００８０】
図１１及び図１４を参照すると、Ｓ８１０段階において、圧縮されたページデータがスワップビクティムバッファ領域２２３０の複数のエントリのうちの一つのエントリに格納される。スワップビクティムバッファ領域２２３０は、複数のエントリを有し、各エントリは、複数のページエントリを含む。一つの圧縮されたページデータは、選択されたエントリの選択されたページエントリに格納される。
【００８１】
Ｓ８２０段階において、スワップビクティムバッファ情報（ＳＶＢ  ｉｎｆｏｒｍａｔｉｏｎ）がＳＲＡＭ２１６０に格納される。スワップビクティムバッファ情報は、スワップビクティムバッファ２２３０領域に格納された圧縮されたページデータの情報を含む。スワップビクティムバッファ情報は、スワップビクティムバッファ領域２２３０に格納された圧縮されたページデータに関連するプロセスの識別子（Ｐｒｏｃｅｓｓ  ＩＤ）、アドレス、及びＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）情報を含む（図１１参照）。アドレスは、圧縮されたページデータが格納されていた通常のデータ領域２２５０のアドレス又は圧縮されたページデータがスワップ対象として選択されたフラッシュメモリ２３００のアドレスである。ＬＲＵ情報は圧縮されたページデータが直前にアクセスした時刻に関する情報を含む。
【００８２】
Ｓ８３０段階において、スワップビクティムバッファ領域２２３０のスワップが要求されるか否かを判別する。アプリケーションプロセッサ２１００は、スワップビクティムバッファ領域２２３０のスワップが要求されるか否かを判別する。図４で説明したように、アプリケーションプロセッサ２１００は、スワップビクティムバッファ領域２２３０に要求される新しい割り当て容量と、スワップビクティムバッファ領域２２３０の空きメモリ容量とを比較し、比較結果に応じて、スワップが要求されるか否かを判別する。アプリケーションプロセッサ２１００は、スワップビクティムバッファ領域２２３０の空きメモリ容量がない場合、空きメモリ容量が基準値より少ない場合などのような様々な条件に応じて、スワップが要求されるか否かを判別する。
【００８３】
スワップビクティムバッファ領域２２３０のスワップが要求されない場合、レイジースワップは終了する。スワップビクティムバッファ領域２２３０のスワップが要求されると、Ｓ８４０段階が実行される。
【００８４】
Ｓ８４０段階において、スワップビクティムバッファ領域２２３０の複数のエントリから圧縮されたページデータが選択される。アプリケーションプロセッサ２１００は、複数のエントリの各々で一つの圧縮されたページデータを選択する。例えば、アプリケーションプロセッサ２１００は、複数のエントリの各々で、最初に格納された圧縮されたページデータを選択する。選択された圧縮されたページデータは、データチャンク（ｄａｔａ  ｃｈｕｎｋ）を形成する。
データチャンクの単位は、ダイレクトメモリアクセスコントローラ（ＤＭＡ）によるデータチャンクのデータ伝送時間が、アプリケーションプロセッサによるデータチャンクのデータ伝送時間と同一であるか、又はそれより短くなるように設定される。
ダイレクトメモリアクセスコントローラ（ＤＭＡ）によるデータチャンクのデータ伝送時間は、ダイレクトメモリアクセスコントローラのプログラム時間を含む。例えば、データチャンクの単位は、３２ＫＢ（キロバイト）以上である。
【００８５】
Ｓ８５０段階において、選択された圧縮されたページデータをフラッシュメモリ２３００に移動するように、ダイレクトメモリアクセスコントローラ（図１０参照）２１３０が制御する。アプリケーションプロセッサ２１００は、選択された圧縮されたページデータを、データチャンクの単位でフラッシュメモリ２３００に移動するようにダイレクトメモリアクセスコントローラ２１３０をプログラムする。
【００８６】
Ｓ８６０段階において、選択された圧縮されたページデータがスワップビクティムバッファ領域２２３０から削除される。アプリケーションプロセッサ２１００は、選択された圧縮されたページデータをスワップビクティムバッファ領域２２３０から削除する。
【００８７】
Ｓ８７０段階において、スワップビクティムバッファ領域の情報が更新される。アプリケーションプロセッサ２１００は、スワップされた圧縮されたページデータに関する情報を削除するようにスワップビクティムバッファ情報を更新する。
【００８８】
スワップビクティムバッファ情報はログ情報と共にＳＲＡＭ（図１１参照）２１６０のＳＶＢ説明テーブル２１６１（ＳＶＢ  ｄｅｓｃｒｉｐｔｏｒ  ｔａｂｌｅ）を通じて管理する。
【００８９】
図１５及び図１６は、図１１のＤＲＡＭでインスタントスワップ及びレイジースワップを実行する一例を説明するための図である。図１５及び図１６において、通常のデータ領域２２５０は、複数のページデータＰＤを格納するように構成される。説明を簡単にするために、通常のデータ領域２２５０を、第１〜第ｉ行（Ｒ１〜Ｒｉ）と、第１〜第ｊ列（Ｃ１〜Ｃｊ）を有するマトリックス形態で図示する。
【００９０】
図１５を参照すると、通常のデータ領域２２５０の第３行Ｒ３の第１列Ｃ１及び第２列Ｃ２のページデータＰＤ’がインスタントスワップされる対象に選択される。選択されたページデータＰＤ’は、通常のデータ領域２２５０から読み出され、フラッシュメモリ２３００に格納される。その後、選択されたページデータＰＤ’は、ＤＲＡＭ２２００から削除される。
【００９１】
図１６を参照すると、通常のデータ領域２２５０の第２行Ｒ２の第１列Ｃ１及び第２列Ｃ２のページデータＰＤ’がレイジースワップされる対象に選択される。選択されたページデータＰＤ’は、圧縮された後にスワップビクティムバッファ２２３０に格納される。例えば、圧縮されたページデータは、第２エントリＥｎｔｒｙ２及び第３エントリＥｎｔｒｙ３に各々ページエントリとして格納される。
【００９２】
その後、スワップビクティムバッファ領域２２３０のスワップ条件が満足された場合、レイジースワップを通じて、圧縮されたページデータは、フラッシュメモリ２３００にスワップされる。例えば、圧縮されたページデータがスワップビクティムバッファ領域２２３０で最初に格納された圧縮されたページデータとしてデータチャンクＤＣを形成する場合、レイジースワップを通じて、圧縮されたページデータはフラッシュメモリ２３００にスワップされる。
【００９３】
図１７は、スワップされたページデータを復元する方法を説明するためのフローチャートである。図１０及び図１７を参照すると、Ｓ９１０段階において、スワップされたページデータが要求されるか否かを判別する。例えば、モバイル装置２０００で駆動されるオペレーティングシステム又はアプリケーションがスワップされたページにアクセスする場合に、スワップされたページが要求される。スワップされたページが要求されない場合、ページデータの復元は実行されない。スワップされたページデータが要求されると、Ｓ９２０段階が実行される。
【００９４】
Ｓ９２０段階において、スワップされたページデータがレイジータイプのページデータであるか否かを判別する。アプリケーションプロセッサ２１００は、ログ情報を参照してスワップされたページデータがレイジータイプのページデータであるか否かを判別する。
【００９５】
スワップされたページデータがレイジータイプのページデータでない場合、すなわち、インスタントタイプのページデータである場合、Ｓ９３０段階で、要求されたページデータがフラッシュメモリ２３００から読み出され、読み出されたページデータが通常のデータ領域（ＮＤＡ）２２５０に格納され、要求されたページデータはフラッシュメモリ２３００から削除される。インスタントタイプのページデータは圧縮なしにフラッシュメモリ２３００にインスタントスワップされるページデータである。したがって、要求されたページデータをフラッシュメモリ２３００から読み出し、通常のデータ領域２２５０に格納することによって、要求されたページデータの復元を完了する。
【００９６】
スワップされたページデータがレイジータイプのページデータである場合、Ｓ９４０段階で、要求されたページデータがスワップビクティムバッファ領域２２３０に格納されているか否かを判別する。上述のように、レイジータイプのページデータは、スワップビクティムバッファ領域２２３０に格納され、スワップビクティムバッファ領域２２３０のスワップ条件が満たされるまで、スワップビクティムバッファ領域２２３０で維持される。したがって、要求されたページデータがスワップビクティムバッファ領域２２３０に格納されているか否かに応じて、要求されたページデータの復元方法が変わる。
【００９７】
要求されたページデータがスワップビクティムバッファ領域２２３０に格納されていない場合、要求されたページデータは、フラッシュメモリ２３００にスワップされた状態である。したがって、Ｓ９５０段階で、要求されたページデータがフラッシュメモリ２３００から読み出され、読み出されたページデータの圧縮が解除される。圧縮が解除されたページデータは通常のデータ領域２２５０に格納され、要求されたページデータ（すなわち、圧縮されたページデータ）は、フラッシュメモリ２３００から削除される。
【００９８】
要求されたページデータがスワップビクティムバッファ領域２２３０に格納されている場合、Ｓ９６０段階で、要求されたページデータがスワップビクティムバッファ２２３０から読み出され、読み出されたページデータの圧縮が解除される。圧縮が解除されたページデータは通常のデータ領域２２５０に格納され、要求されたページデータ（すなわち、圧縮されたページデータ）がスワップビクティムバッファ領域２２３０から削除される。その後、Ｓ９７０段階で、スワップビクティムバッファ情報及びスワップビクティムバッファのエントリが更新される。
【００９９】
スワップを実行するモバイル装置２０００で発生する第１の問題は、スラッシング（ｔｈｒａｓｈｉｎｇ）である。スラッシングは、モバイル装置２０００がページデータのスワップ及びスワップされたページデータの復元（つまり、ページング）に過度の資源を消費する現象を意味する。
【０１００】
本実施形態によれば、圧縮されたページデータは、直ちにフラッシュメモリ２３００にスワップされず、ＤＲＡＭ２２００のスワップビクティムバッファ領域２２３０に一定期間格納される。したがって、スラッシングが防止され、モバイル装置２０００の動作性能が向上する。また、スワップビクティムバッファ領域２２３０に格納されたデータは、ＤＭＡによってスワップされる。ＤＭＡがデータを移動する時に消費する電力は、アプリケーションプロセッサ２１００がデータを移動する時に消費する電力より少ない。したがって、消費電力を減少させたモバイル装置２０００を提供することができる。
また、アプリケーションプロセッサ２１００は、データを移動する時に、アプリケーションプロセッサ２１００のキャッシュメモリに、移動されるデータを格納する。一方、ＤＭＡによってデータが移動される場合、アプリケーションプロセッサ２１００のキャッシュメモリに、移動されるデータが格納されないため、アプリケーションプロセッサ２１００のキャッシュメモリがスワップによって汚染されることを防止し、動作性能を向上させたモバイル装置２０００を提供することができる。
【０１０１】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限られるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【０１０２】
１０００、２０００    モバイル装置
１１００、２１００    アプリケーションプロセッサ（ＡＰ）
１１１０、２１１０    バス
１１２０、２１２０    中央処理装置（ＣＰＵ）
１１３０、２１３０    ダイレクトメモリアクセスコントローラ（ＤＭＡ）
１１４０    圧縮解除器
１１５０、２１５０    ＤＲＡＭインターフェース
１１６０、２１６０    ＳＲＡＭ
１１７０、２１７０    フラッシュインターフェース
１２００、２２００    ＤＲＡＭ
１２３０、２２３０    スワップビクティムバッファ（ＳＶＢ）領域
１２５０、２２５０    通常のデータ領域（ＮＤＡ）
１３００、２３００    フラッシュメモリ
１４００、２４００    モデム
１５００、２５００    ユーザインターフェース
２１４０    圧縮器及び圧縮解除器
２１６１    ＳＶＢ説明テーブル
【図１】
2014116017.tif 000003
【図２】
2014116017.tif 000004
【図３】
2014116017.tif 000005
【図４】
2014116017.tif 000006
【図５】
2014116017.tif 000007
【図６】
2014116017.tif 000008
【図７】
2014116017.tif 000009
【図８】
2014116017.tif 000010
【図９】
2014116017.tif 000011
【図１０】
2014116017.tif 000012
【図１１】
2014116017.tif 000013
【図１２】
2014116017.tif 000014
【図１３】
2014116017.tif 000015
【図１４】
2014116017.tif 000016
【図１５】
2014116017.tif 000017
【図１６】
2014116017.tif 000018
【図１７】
2014116017.tif 000019