(57)【要約】【課題】携帯電話等のコンピュータ利用機器内のデータを効率的に管理し、外部メモリ媒体への高速な書き落とし、及び外部メモリ媒体からの読み込み（転送）をＤＲＡＭの性能にまで引き上げる外部メモリ媒体に常駐されたキャッシュメモリプログラムを実現する。【解決手段】マイクロＳＤメモリカード１等の外部メモリ媒体を携帯電話２等のコンピュータ利用機器に装着することで、キャッシュメモリプログラムは自動的にインストールされ、コンピュータ利用機器中のシステムメモリ８の一部領域を仮想メモリとして確保し、この仮想メモリ上にキャッシュメモリ２３を割り当てて動作させ、コンピュータ利用機器のあらゆるデータについて、ＣＰＵ７等に対する書き込み読み出し、外部メモリ媒体についての書き落し読み込み（転送）を可能とする。【選択図】図２
2012155502.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ利用機器に装着及び取り外し自在な外部メモリ媒体に常駐されたキャッシュメモリプログラムであって、
コンピュータ利用機器を、
外部メモリ媒体がコンピュータ利用機器に装着されると同時に自動的にコンピュータ利用機器にキャッシュメモリプログラム自体をインストールし起動するインストール手段、
外部メモリ媒体をコンピュータ利用機器から取り外すと同時に自動的にコンピュータ利用機器からキャッシュメモリプログラム自体をアンインストールするアンインストール手段、
外部メモリ媒体がコンピュータ利用機器に装着されている時のみ、システムメモリの一部を、仮想メモリとして確保し、該仮想メモリを専用のキャッシュメモリのための領域として割り当てるキャッシュメモリ領域確保手段、
該キャッシュメモリにおいて、コンピュータ利用機器のデータをキャッシュデータとして書き込み及び読み出す書き込み読み出し手段、
キャッシュメモリから外部メモリ媒体へキャッシュデータを書き落とす書き落とし手段、
外部メモリ媒体に記憶させたキャッシュデータを外部メモリ媒体から読み出してキャッシュメモリに転送する転送手段、
として機能させることを特徴とするキャッシュメモリプログラム。
【請求項２】
コンピュータ利用機器を、
キャッシュメモリに入出力されるデータについて、ファイルサイズを含むファイルの属性を確認し、該ファイルの属性の情報を基に、外部メモリ媒体への書き落とすタイミング及びファイルの単位を決定する書き落とし条件作成手段、
として機能させることを特徴とする請求項１記載のキャッシュメモリプログラム。
【請求項３】
キャッシュメモリ領域確保手段がキャッシュメモリのための領域として割り当てるシステムメモリの領域は、６４ＭＢ以上であり、
キャッシュメモリから外部メモリ媒体への書き落とし手段は、一連のキャッシュデータを、連続して外部メモリ媒体に書き落とすことで、キャッシュデータを外部メモリ媒体へ書き込む時間を短縮し、コンピュータ利用機器の電源の遮断又は不意な外部メモリ媒体の取り外しに起因するキャッシュデータの消失及び破壊のリスクを低減することを特徴とする請求項１又は２記載のキャッシュメモリプログラム。
【請求項４】
キャッシュメモリから外部メモリ媒体への書き落とし手段は、 外部メモリ媒体内のコントローラにキャッシュデータを送り、コントローラが外部メモリ媒体の一部に一時的に保存させるように機能させることを特徴とする請求項１、２又は３記載のキャッシュメモリプログラム。
【請求項５】
キャッシュメモリプログラムは、コンピュータ利用機器のＯＳに対応した複数のモジュールを有し、前記インストール手段は、コンピュータ利用機器に外部メモリ媒体が装着されると、コンピュータ利用機器のＯＳを判断し、該ＯＳに応じたモジュールを自動的に実行することを特徴とする請求項１〜４のいずれかに記載のキャッシュメモリプログラム。
【請求項６】
コンピュータ利用機器を、キャッシュメモリに読み書きされる全てのブロックアドレスの情報を常にアクセス履歴テーブルに記述し、コンピュータ利用機器から外部記録媒体を取り外した時のアクセス履歴テーブルに記述した最終のキャッシュデータのブロックアドレスの情報を外部記録媒体内のメモリに保持し、次回のインストール時に、前記最終のキャッシュデータのブロックアドレスの情報を外部記録媒体からキャッシュメモリに先読みして保持するブロックアドレス情報保持手段として機能させることを特徴とする請求項１〜５のいずれかに記載のキャッシュメモリプログラム。
【請求項７】
外部メモリ媒体は、ＵＳＢメモリ、ＳＤメモリカード、マイクロＳＤメモリカード又はメモリステックであり、コンピュータ利用機器は、コンピュータ端末器、携帯電話、デジタルカメラ又はナビゲーションシステムであることを特徴とする請求項１〜６のいずれかに記載のキャッシュメモリプログラム。
【請求項８】
コンピュータ利用機器を、
連続書き込み要求において、ある一定以上のファイルサイズの場合に、仮想メモリ上に割り当てられたキャッシュメモリが、自動的に書き込みバッファーキャッシュとして動作するようにキャッシュポリシーを固定し、キャッシュサイズ以上の連続するデータでもキャッシュを行う手段として機能させることを特徴とする請求項１〜７のいずれかに記載のキャッシュメモリプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部記録媒体に常駐（搭載）されたキャッシュメモリプログラムに関するものである。
【０００２】
本願の本明細書等では、ＣＰＵ、システムメモリ、入出力部等を備えたコンピュータ、各種のコンピュータ端末、携帯電話、ナビゲーションシステム及びデジタルカメラ等を「コンピュータ利用機器」と称する。
【０００３】
また、コンピュータ利用機器に装着及び取り外し可能なＵＳＢメモリ（ＵＳＢは登録商標）、ＳＤメモリカード（ＳＤは登録商標）、マイクロＳＤメモリカード、メモリステック等の補助記憶装置を「外部メモリ媒体」と称す。
【背景技術】
【０００４】
近年、メモリデバイスの小型化が進んできたが、その背景にはＮＡＮＤ型フラッシュメモリの大容量化と低価格化がある。ＮＡＮＤ型フラッシュメモリは、不揮発性のメモリであるから、データの保存メディアとしてＵＳＢメモリ、ＳＤメモリカード等の外部メモリ媒体に利用されることが多くなった。
【０００５】
さらに、外部メモリ媒体自体が、記憶機能だけに止まらず、プログラムを搭載し各種の制御機能を有する技術も開発されている。例えば、メモリカード本体内にデータの圧縮・伸張を行うことができるファームウェア格納部とこれを統括制御するマイクロプロセッサを備え構成が公知である（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２９３３３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、外部メモリ媒体が小規模なメモリモジュールであるほど、その外部メモリ媒体の内部のＮＡＮＤ型フラッシュメモリの数量が制限されるので、入出力性能（Ｉ／Ｏ性能）が低い。特に、書き込み性能はマイクロＳＤカードに至っては、０．００５ＭＢｐｓ（ランダムファイル時において４ＫＢ）と極端に悪化する。
【０００８】
また、ＮＡＮＤ型フラッシュメモリの書き込み回数の寿命も数百回程度と少ないため、書き込み制限を運用で考慮する必要がある。
【０００９】
本発明は、上記従来の問題を解決することを目的とするものであり、外部メモリ媒体に常駐されたキャッシュメモリプログラムであって、外部メモリ媒体を携帯電話等の機器に装着することで該機器にインストールされ、該機器内のデータを効率的に管理し、外部メモリ媒体への高速な書き落とし、及び外部メモリ媒体からの転送を可能とし、しかも外部メモリ媒体のデータの消失や破壊を防止し、寿命も延ばす機能を発揮する外部メモリ媒体に常駐したキャッシュメモリプログラムを実現することを課題とする。
【課題を解決するための手段】
【００１０】
本発明は上記課題を解決するために、コンピュータ利用機器に装着及び取り外し自在な外部メモリ媒体に常駐されたキャッシュメモリプログラムであって、コンピュータ利用機器を、 外部メモリ媒体がコンピュータ利用機器に装着されると同時に自動的にコンピュータ利用機器にキャッシュメモリプログラム自体をインストールし起動するインストール手段、外部メモリ媒体をコンピュータ利用機器から取り外すと同時に自動的にコンピュータ利用機器からキャッシュメモリプログラム自体をアンインストールするアンインストール手段、外部メモリ媒体がコンピュータ利用機器に装着されている時のみ、システムメモリの一部を、専用のキャッシュメモリのための領域として確保するキャッシュメモリ領域確保手段、該キャッシュメモリにおいて、コンピュータ利用機器のデータをキャッシュデータとして書き込み及び読み出す書き込み読み出し手段、キャッシュメモリから外部メモリ媒体へキャッシュデータを書き落とす書き落とし手段、外部メモリ媒体に記憶させたキャッシュデータを外部メモリ媒体から読み出してキャッシュメモリに転送する転送手段、として機能させることを特徴とするキャッシュメモリプログラムを提供する。
【００１１】
本発明に係るキャッシュメモリプログラムは、コンピュータ利用機器を、さらに、キャッシュメモリに入出力されるデータについて、ファイルサイズを含むファイルの属性を確認し、該ファイルの属性の情報を基に、外部メモリ媒体への書き落とすタイミング及びファイルの単位を決定する書き落とし条件作成手段、として機能させる構成としてもよい。
【００１２】
本発明に係るキャッシュメモリプログラムでは、キャッシュメモリ領域確保手段がキャッシュメモリのための領域として割り当てるシステムメモリの領域は、６４ＭＢ以上であり、キャッシュメモリから外部メモリ媒体への書き落とし手段は、一連のキャッシュデータを、連続して外部メモリ媒体への書き込みを短時間で実行し、コンピュータ利用機器の電源の遮断又は不意な外部メモリ媒体の取り外しに起因するキャッシュデータの消失及び破壊のリスクを極小化とする。
【００１３】
本発明に係るキャッシュメモリプログラムでは、キャッシュメモリから外部メモリ媒体への書き落とし手段は、 外部メモリ媒体内のコントローラにキャッシュデータを送り、コントローラが外部メモリ媒体の一部に一時的に保存させるように機能させることもできる。                                   
【００１４】
本発明に係るキャッシュメモリプログラムは、コンピュータ利用機器のＯＳに対応した複数のモジュールを有し、前記インストール手段は、コンピュータ利用機器に外部メモリ媒体が装着されると、コンピュータ利用機器のＯＳを判断し、該ＯＳに応じたモジュールを自動的に実行するようにすることが好ましい。
【００１５】
本発明に係るキャッシュメモリプログラムは、コンピュータ利用機器を、コンピュータ利用機器で生じる全ての読み書きイベントのブロックアドレスとデータを、常にアクセス履歴テーブルに記述し、コンピュータ利用機器から外部記録媒体を取り外した時点までの最終イベント情報をアクセス履歴テーブルに記述したキャッシュデータのブロックアドレスの情報を外部記録媒体内のメモリに保持し、次回のインストール時に先読みするブロックアドレス情報保持手段として機能させることが好ましい。
【００１６】
外部メモリ媒体は、ＵＳＢメモリ、ＳＤメモリカード、マイクロＳＤメモリカード又はメモリステックであり、コンピュータ利用機器は、コンピュータ端末器、携帯電話、デジタルカメラ又はナビゲーションシステムに適用可能である。  
【００１７】
本発明に係るキャッシュメモリプログラムは、コンピュータ利用機器を、連続書き込み要求において、ある一定以上のファイルサイズの場合に、仮想メモリ上に割り当てられたキャッシュメモリが、自動的に書き込みバッファーキャッシュとして動作するようにキャッシュポリシーを固定し、キャッシュサイズ以上の連続するデータでもキャッシュを行う手段として機能させることで、平均書き込み性能を高めることができる。この結果、小規模な連続書き込みでは本キャッシュ効果を生じず、本キャッシュ効果の開始ポイントは自由に設定可能となる。
【発明の効果】
【００１８】
本発明に係るキャッシュメモリプログラムによると、主に、次のような効果が生じる。
（１）外部メモリ媒体を装着することで、自動的にコンピュータ利用機器中のシステムメモリにインストールされ、システムメモリの一部領域を仮想メモリとして確保し、この仮想メモリ上にキャッシュメモリを割り当てて動作させるので、ＣＰＵ等からの書き込み、ＣＰＵ等への読み出し、外部メモリ媒体への書き落とし、外部メモリ媒体からの転送をＤＲＡＭの性能にまで引き上げる。
【００１９】
（２）システムメモリから外部メモリ媒体に書き落とした一連のキャッシュデータのブロックアドレス情報は、外部メモリ媒体内に常駐されたアクセス履歴テーブル内に保存されるので、外部メモリ媒体をコンピュータ利用機器に装着すると、前回の取り外した際のキャッシュデータが、自動的にキャッシュメモリに先読みされて常駐する。
【００２０】
（３）キャッシュデータを外部メモリ媒体へ書き落としするに際し、一連のキャッシュデータを、連続して外部メモリ媒体に書き落とすことで、キャッシュデータを外部メモリ媒体への書き込みを短時間で実行し、コンピュータ利用機器の電源の遮断又は不意な外部メモリ媒体の取り外し時に起因するキャッシュデータの消失及び破壊のリスクを極小化することができる。
【００２１】
（４）連続書き込み要求において、ある一定以上のファイルサイズの場合に、仮想メモリ上に割り当てられたキャッシュメモリが、自動的に書き込みバッファーキャッシュとして動作するようにキャッシュポリシーを固定し、キャッシュサイズ以上の連続するデータでもキャッシュ効果を生む機能を備えており、これにより、平均書き込み性能を高めることができる。この結果、小規模な連続書き込みでは本キャッシュ効果を生じず、本キャッシュ効果の開始ポイントは自由に設定することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施例を説明する図であり、マイクロＳＤメモリカードと携帯電話の全体の構成を説明するためのブロック図を示す。
【図２】本発明の実施例を説明する図であり、キャッシュメモリプログラムの構成を模式的に説明するためキャッシュデータの流れを含めたブロック図を示す。
【図３】本発明に係るキャッシュメモリプログラムの全体動作のフローを示す図である。
【図４】本発明に係るキャッシュメモリプログラムプリフェッチングのフローを示す図である。
【発明を実施するための形態】
【００２３】
本発明に係るキャッシュメモリプログラムを実施するための形態を実施例に基づき図面を参照して、以下説明する。
【００２４】
（概要）
本発明に係るキャッシュメモリプログラムは、コンピュータ利用機器に装着及び取り外し自在な外部メモリ媒体に常駐（搭載）されており、コンピュータ利用機器に装着すると、自動的にコンピュータ利用機器のシステムメモリにインストールされる。
【００２５】
このように自動的にインストールされた本発明に係るキャッシュメモリプログラムは、起動してコンピュータ利用機器中のシステムメモリの一部領域を仮想メモリとして確保し、この仮想メモリ上にキャッシュメモリを割り当てて動作させる。
【００２６】
そして、インターネットからのダウンロード情報を含むあらゆるデータについて、ＣＰＵ等に対する書き込み読み出し、さらには、外部メモリ媒体のＮＡＮＤ型フラッシュメモリ（NAND FLASH MEMORY）への書き落とし、ＮＡＮＤ型フラッシュメモリからの読み出し（転送）をＤＲＡＭの性能にまで引き上げることのできるキャッシュメモリプログラムである。
【００２７】
なお、本明細書及び本発明においては、外部メモリ媒体のＮＡＮＤ型フラッシュメモリへの書き落としは、後記する実施例、全体フローの説明等でも説明するが、単にデータの書き落としをするのではなく、キャッシュデータをＮＡＮＤ型フラッシュメモリ（例．マイクロＳＤメモリカード等）へ書き落とし後も、当該書き落としされたデータと同じデータをキャッシュメモリに残しておく、要するにデータの同期をとることを伴うものである。
【００２８】
従って、キャッシュメモリ上のデータの再読み出しによるキャッシュ効果は維持され、新たにＣＰＵ等からのデータの再書き込みが要求されるまではその効果が持続し、新規データ上書きの可能なメモリ領域となる。
【実施例】
【００２９】
本発明の実施例について図１及び図２において説明する。この実施例では、外部メモリ媒体はマイクロＳＤメモリカードとし、このマイクロＳＤメモリカードを装着するコンピュータ利用機器は、携帯電話とした適用例で説明する。なお、他の外部メモリ媒体及びコンピュータ利用機器に適用しても、同様の構成であり、同様の動作を行う。
【００３０】
（外部メモリ媒体及びコンピュータ利用機器）
図１は、マイクロＳＤメモリカード１と携帯電話２の全体の構成を模式的に説明するための図を示す。
【００３１】
図２は、キャッシュメモリプログラムの構成を模式的に説明するためキャッシュデータの流れを含めたブロック図である。太い実線の記載部分は、携帯電話２のハード部分の本発明に関連する要部とマイクロＳＤメモリカード１の要部を示し、細い線の記載部分は、キャッシュメモリプログラムが携帯電話２（具体的にはＣＰＵ）を動作させることで機能する手段、及び該手段によるキャッシュデータの流れ等の重要な部分を模式的に示す。
【００３２】
マイクロＳＤメモリカード１は、複数のＮＡＮＤ型フラッシュメモリ３とコントローラ４を備えている。コントローラ４は、周知の構成であり、複数のＮＡＮＤ型フラッシュメモリ３へのデータの割り当て、読み出し、及びコンピュータ利用機器とのデータの転送（やり取り）を行い、複数のＮＡＮＤ型フラッシュメモリ３のうち、特定のＮＡＮＤ型フラッシュメモリ３に書き込みが集中しないよう制御して、記録エリアごとの書き込み回数を平準化する機能を発揮する。
【００３３】
ＮＡＮＤ型フラッシュメモリ３の一部に、図２に示すように、本発明に係るキャッシュメモリプログラムが常駐されている。図２では、キャッシュメモリプログラムが１つのＮＡＮＤ型フラッシュメモリ３を占有しているかのように記載されているが、実際は、１つのＮＡＮＤ型フラッシュメモリ３の一部に常駐している。
【００３４】
また、図２に示すように、ＮＡＮＤ型フラッシュメモリ３の一部が、仮記憶領域（ＴＥＭＰメモリ領域）として割り当てられる。携帯電話２の電源遮断等の際に、携帯電話２内のキャッシュデータをコントローラ４によって、この仮記憶領域に一時的にバッファして、後からコントローラ４が、マイクロＳＤメモリカード１（外部メモリ媒体）内のブロックアドレスに逐次割当てて記憶させる。
【００３５】
携帯電話２は、ＣＰＵ７、システムメモリ（「ローカルメモリ」とも呼ばれる。）８、ノースブリッジ（Ｎ／Ｂ）９、サウスブリッジ（Ｓ／Ｂ）１０、バス（ＢＵＳ）１１、入出力部（Ｉ／Ｏ）１２等を備えている。ＣＰＵ７とシステムメモリ８の間で、データはノースブリッジ９を介して互いにやりとりされる。
【００３６】
また、ＣＰＵ７とシステムメモリ８は、サウスブリッジ１０及びバス１１を介してマイクロＳＤカード１等の外部媒体に接続され、また、さらにネットワークを介してインターネット１３に接続される。システムメモリ８には、ＯＳ、アプリケーションソフト等が記憶されている。
【００３７】
（キャッシュメモリプログラム）
本発明に係るキャッシュメモリプログラムを中心に以下、さらに本発明の構成を図２を参照して説明する。
【００３８】
マイクロＳＤメモリカード１に常駐されている本発明に係るキャッシュメモリプログラムは、マイクロＳＤメモリカード１を携帯電話２に装着すると同時に、キャッシュメモリプログラム自体を自動的に携帯電話２のシステムメモリ８に転送し、自動的に通常のユーザープログラムと同様に、システムメモリ８の一部にインストールして起動するインストール手段２０（図２参照）として、携帯電話２を機能させる。
【００３９】
具体的には、携帯電話２（コンピュータ利用機器）のＣＰＵ７が、キャッシュメモリプログラムに従って、上記のようにインストールして起動する動作させることにより行われる。
【００４０】
なお、本明細書及び発明においては、携帯電話２（コンピュータ利用機器）を、インストールして起動する手段として機能させる、は具体的には、携帯電話２（コンピュータ利用機器）のＣＰＵ７を、キャッシュメモリプログラムに従ってインストールして起動する動作をさせることにより行われる。以下においても、「携帯電話２（コンピュータ利用機器）を、…………として機能させる」、は具体的には、携帯電話２（コンピュータ利用機器）のＣＰＵ７を、キャッシュメモリプログラムに従って…………する動作をさせることにより行われる。
【００４１】
このようにマイクロＳＤメモリカード１に常駐されているキャッシュメモリプログラムがコンピュータ利用機器である携帯電話２へ自動的に実装させる構成は、本発明に係るキャッシュメモリプログラムの特徴の一つである。
【００４２】
従来、コンピュータ利用機器で利用されているキャッシュプログラムは、コンピュータ利用機器のＯＳ中核の部分であるＫｅｒｎｅｌプログラム（階層型に設計されたオペレーティングシステム (OS) の中核となる部分であり、システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理するプログラム）である。
【００４３】
従って、インストールを必ず必要とする。さらに、システムメモリの一部をキャッシュメモリとして使用するので、システムメモリのメモリアロケーション（メモリ領域の確保）を事前に行う必要がある。このようなプロセスでは、必ずＯＳの再起動を要する。
【００４４】
しかし、本発明に係るキャッシュメモリプログラムは、システムメモリ８を使用するが、ＯＳのメモリアロケーションは、変更の必要がないユーザープログラムの一つとして実行される。
【００４５】
また、キャッシュメモリプログラムは、マイクロＳＤメモリカード１を携帯電話２から取り外すと同時に、キャッシュメモリプログラム自体のアンインストールするアンインストール手段２１（図２参照）として携帯電話２を、機能させる。
【００４６】
このように本発明に係るキャッシュメモリプログラムは、事前のインストール及びアンインストールの必要がない実装技術により、様々なコンピュータ利用機器、及び該機器にインストールされている様々なＯＳについても、プラグ＆プレイ（Plug & Play）で可動でき、コンピュータ利用機器のＯＳに依存しないキャッシュ効果を得ることが可能となる。
【００４７】
本発明に係るキャッシュメモリプログラムは、マイクロＳＤメモリカード１を携帯電話２に装着すれば、キャッシュメモリプログラム自体を自動的に携帯電話２のシステムメモリ８にインストールして起動し、システムメモリ８の一部に仮想のメモリ領域を確保するキャッシュメモリ領域確保手段２２として、携帯電話２を機能させる。
【００４８】
即ち、インストールされたキャッシュメモリプログラムが起動して携帯電話２にインストールされているＯＳ及び環境条件等を読み取り、その読み取ったＯＳ及び環境条件等に応じて、システムメモリ８上の一部に、仮想メモリとして運用されるメモリ領域を確保する。
【００４９】
そして、システムメモリ８上に確保した上記メモリ領域を、本発明に係るキャッシュメモリプログラムの下で、携帯電話２において、インターネット１３からのダウンロード情報を含むあらゆるデータについて、ＣＰＵ７等に対する書き込み読み出し、さらには、外部メモリ媒体のＮＡＮＤ型フラッシュメモリ３への書き落とし、ＮＡＮＤ型フラッシュメモリ３からの読み出し（転送）を可能とする、データ専用のキャッシュメモリ２３として割り当てて使用可能とする。
【００５０】
これをさらに説明すると、本発明に係るキャッシュメモリプログラムは、システムメモリ８の一部に確保した仮想のメモリ領域をキャッシュメモリ２３として使用し、携帯電話２のデータをキャッシュデータとして書き込み一時的に保存し、必要に応じて読み出す動作をする書き込み読み出し手段２４として、携帯電話２を機能させる。
【００５１】
このキャッシュメモリ２３の領域は、６４ＭＢ以上確保され、キャッシュメモリプログラムにより、ブロックアドレスをキャッシュメモリ２３上に作成し、入出力されるデータ（Ｉ／Ｏのファイル）の連続性と特徴を基にデータにブロックアドレスを付し、効果的に、書き込みして保持し、また読み出しの管理を実行する。
【００５２】
書き込み読み出し手段２４は、携帯電話２のデータを、ライトバックキャッシュ方式で、上記のとおり、キャッシュメモリ２３へ書き込み、一時的にキャッシュデータとして保持する。そして、必要に応じて、キャッシュデータをキャッシュメモリ２３から読み出しＣＰＵ７、入出力部等に送る。
【００５３】
そして、本発明に係るキャッシュメモリプログラムは、決められた書き落としタイミングで、キャッシュデータをマイクロＳＤメモリカード１に書き落としする（マイクロＳＤメモリカード１に転送して記憶させる）書き落とし手段２５（図２参照）として、携帯電話２を機能させる。
【００５４】
ここで、決められた書き落としタイミングは、書き落とし条件に応じて決められる。本発明に係るキャッシュメモリプログラムは、キャッシュメモリ２３に入出力されるデータについて、ファイルサイズを含むファイルの属性、キャッシュメモリ２３におけるキャッシュデータの保持状態等を確認し、該ファイルの属性の情報等を下に、携帯電話２（外部メモリ媒体）への書き落とすタイミング及びファイルの単位を決定する書き落とし条件作成手段２６（図２参照）として、携帯電話２を機能させる。
【００５５】
例えば、キャッシュメモリ２３として確保された領域のうち、予め決められた所定量の領域（例．確保されたキャッシュメモリ２３の領域全体が６４ＭＢの場合、例えばその２０％の領域）がキャッシュデータの保持に使用されると、ＣＰＵ７の空き時間などを利用して、キャッシュデータをマイクロＳＤメモリカード１のコントローラ４に向けて転送し、書き落としが行われる。
【００５６】
この書き落としの動作については、後記する「全体動作のフロー」の項でも説明するが、ここでもさらに説明をする。キャッシュメモリ２３の書き込みデータが、キャッシュサイズ（キャッシュメモリとして確保した全領域の量）のうち所定量占めた場合は、キャッシュデータをマイクロＳＤメモリカード１へ書き落としするとともに、当該書き落としされたデータと同じデータをキャッシュメモリに残しておく。
【００５７】
要するに、キャッシュデータをマイクロＳＤメモリカード１への書き落としとキャッシュメモリへの保存するデータの同期を取る処理が行われる。キャッシュメモリのうち、上記残された古いデータの領域は、先に書き込まれたデータの領域から順に、ＣＰＵ等からの新たなデータの再書き込み可能な領域（新たなデータの上書き可能な領域）として開放し再利用されることとなる。
【００５８】
さらに、このような同期の処理後、一定時間を経過した時点で、未同期のキャッシュデータをバックエンドのタスク処理でマイクロＳＤメモリカード１にデータの同期を行い（上記「データの同期を取り」と同じ動作）、結果的に全てキャッシュ領域に対してデータの再書き込み可能な領域（ＣＰＵ等からの新たなデータを上書き可能な領域）としてキャッシュメモリを開放する。
【００５９】
そして、マイクロＳＤメモリカード１のコントローラ４は、書き落としの際に転送されたキャッシュデータを、ＮＡＮＤ型フラッシュメモリ３の一部に割り当てられた仮記憶領域（一時的保存領域）に、一時的にバッファしておき、後からメモリ内のブロックアドレスに割当てて記憶する。このような割り当て動作は、マイクロＳＤメモリカード１に付与されている機能で行われる。
【００６０】
ところで、本発明に係るキャッシュメモリプログラムによれば、キャッシュメモリ２３に一時的に保持された一連のキャッシュデータを、フィフォ方式（ＦＩＦＯ方式）などの書き落としアルゴリズムで、マイクロＳＤメモリカード１のコントローラ４に連続的に転送し（引き渡し）、仮記憶領域に纏め書きして一時的にバッファし、後からメモリ内のブロックアドレスに割当てて記憶する。
【００６１】
このように、一連のキャッシュデータをキャッシュメモリ２３からマイクロＳＤメモリカード１に纏め書きして書き落とすことで、ＮＡＮＤ型フラッシュメモリ３への書き込み回数を削減する。そのために、キャッシュデータをマイクロＳＤメモリカードのＮＡＮＤ型フラッシュメモリのブロックアドレスに逐次、細切れで書き込む従来の構成に較べて、ＮＡＮＤ型フラッシュメモリ３の寿命を延ばすことが可能となる。
【００６２】
従来のＫｅｒｎｅｌプログラムによるマイクロＳＤメモリカードへの書き落としは、キャッシュデータを細切れでマイクロＳＤメモリカードのＮＡＮＤ型フラッシュメモリに書き落とす構成であるから、その書き落としの途中で、携帯電話２の電源を遮断したり、又はマイクロＳＤメモリカードを不意に取り外したりすると、キャッシュデータの消失や破壊のリスクが生じる危険があった。
【００６３】
しかしながら、本発明に係るキャッシュメモリプログラムによれば、纏め書きされた一連のキャッシュデータを、マイクロＳＤメモリカード１のコントローラ４に連続的に引き渡してマイクロＳＤメモリカード１に纏め書きする（マイクロＳＤメモリカード１に、キャッシュデータを、いわば、「一筆書き」する）ので、キャッシュデータを外部メモリ媒体へ書き落とす時間が削減され、携帯電話（コンピュータ利用機器）の電源の遮断又は不意なマイクロＳＤメモリカード１（外部メモリ媒体）の取り外しに起因するキャッシュデータの消失及び破壊のリスクを最小限にすることができる。
【００６４】
本発明に係るキャッシュメモリプログラムは、キャッシュメモリ２３からフィフォ方式で読み出したキャッシュデータのブロックアドレスの情報を常にアクセス履歴テーブルに記述し、携帯電話２（コンピュータ利用機器）からマイクロＳＤメモリカード１（外部メモリ媒体）を取り外した時のアクセス履歴テーブルに記述されたキャッシュデータのブロックアドレスの情報を、マイクロＳＤメモリカード１に保持し、マイクロＳＤメモリカード１を携帯電話２に装着すると、キャッシュデータのブロックアドレスの情報を、マイクロＳＤメモリカード１からシステムメモリ８に先読みして保持するブロックアドレス情報保持手段２７（図２参照）として、携帯電話２を機能させる。
【００６５】
この構成をさらに説明すると、発明のキャッシュメモリプログラムは、キャッシュデータが次々とキャッシュメモリ２３の領域に書き込まれる際に、キャッシュデータについてそれぞれファイル番号及び保存先のブロックアドレスを、キャッシュメモリ２３の領域に常駐されたアクセス履歴テーブル（Access Historical table）に、書き込み順に次々と記録、更新し、ブロックアドレス情報として保存するブロックアドレス情報保持手段２７として、携帯電話２を機能させる。
【００６６】
また、このブロックアドレス情報保持手段２７は、キャッシュデータをキャッシュメモリ２３から、フィフォ方式でマイクロＳＤメモリカード１に転送し書き落とす時点のブロックアドレス情報を、その都度、キャッシュメモリ２３の領域に常駐されたアクセス履歴テーブルに、書き落とし順に次々と記録、更新し、ブロックアドレス情報として保存する。
【００６７】
このブロックアドレス情報保持手段２７により、マイクロＳＤメモリカード１を携帯電話２から取り外した時点では、マイクロＳＤメモリカード１に保持し、マイクロＳＤメモリカード１を携帯電話２に装着すると、キャッシュデータのブロックアドレス情報を、マイクロＳＤメモリカード１からシステムメモリ８に先読みしてキャッシュメモリ２３の領域に常駐されたアクセス履歴テーブルに記憶される。
【００６８】
本発明に係るキャッシュメモリプログラムは、マイクロＳＤメモリカード１を携帯電話２に装着すると、携帯電話２（コンピュータ利用機器）からマイクロＳＤメモリカード１（外部記録媒体）を取り外し時のアクセス履歴テーブルに記述されていたキャッシュデータのブロックアドレスの情報を下にして、マイクロＳＤメモリカード１に保存されたキャッシュデータを自動的にシステムメモリ８に転送して再現する転送手段２８（図２参照）として、携帯電話２を機能させる。    
【００６９】
この点をさらに説明すると、携帯電話２（コンピュータ利用機器）からマイクロＳＤメモリカード１（外部記録媒体）を取り外す前の最後に読み出されたブロックアドレス情報を、取り外す時にマイクロＳＤメモリカード１のＮＡＮＤ型フラッシュメモリ３に保持し、このブロックアドレス情報は、マイクロＳＤメモリカード１を携帯電話２に装着すると、携帯電話２のシステムメモリ８に常駐されたアクセス履歴テーブルに先読みされて保存される。
【００７０】
従って、マイクロＳＤメモリカード１を携帯電話２に装着すると、ＮＡＮＤ型フラッシュメモリ３に保存された一連のキャッシュデータは、前回、マイクロＳＤメモリカード１を携帯電話２から取り外した時の状態で、自動的にシステムメモリ８に転送されて書き込まれ、キャッシュメモリ２３の状態を、マイクロＳＤメモリカード１を携帯電話２から取り外し時の状態に再現することが可能となる。この一連の動作は、プリフェッチング（prefetching）というプロセスで行われるが、このプリフェッチングによる動作は、後記するフローの説明において、図４を参照してさらに説明する。
【００７１】
このようにシステムメモリ８からマイクロＳＤメモリカード１に書き落とす一連のキャッシュデータの書き落とし及びマイクロＳＤメモリカード１からの読み出し（転送）プロセスでは、キャッシュデータの順番等のブロックアドレス情報について、システムメモリ８内に常駐されたアクセス履歴テーブル内に保存されているから、マイクロＳＤメモリカード１にアクセスすることなく、システムメモリ８のキャッシュ性能（読み込み、書き込み速度等の性能）をＤＲＡＭの性能にまで向上させることが出来る。
【００７２】
なお、本発明に係るキャッシュメモリプログラムでは、連続書き込み要求において、ある一定以上のファイルサイズの場合に、仮想メモリ上に割り当てられたキャッシュメモリが、自動的に書き込みバッファーキャッシュとして動作するようにキャッシュポリシーを固定し、連続するデータの長さに関わらずキャッシュ効果を生じる機能を備えている。
【００７３】
この機能により、平均書き込み性能を高めることができる。例えば、書き込み平均性能が１０ＭＢｐｓであった場合でも、上記機能による効果が生じることで、平均１５ＭＢｐｓの連続書き込み性能をそのバッファ機能で実現可能となる。逆に、一定以上のファイルの大きさに達しない小規模な連続書き込みでは、作動せずキャッシュ効果の開始ポイントは自由に設定できることを特徴とする。このように、初めは機能せずに、あるサイズのデータファイルから機能するような実装を施したキャッシュは、従来は、全く存在しなかった。
【００７４】
（全体動作のフロー）
本発明に係るキャッシュメモリプログラムの全体動作のフローを、図３に示すフロー図で説明する。
【００７５】
（１）外部記録媒体であるマイクロＳＤメモリカード１が、コンピュータ利用機器である携帯電話２に装着されると、自動的にインストローラ（インストール手段２０）が起動する（図３（ア）参照）。これにより、キャッシュメモリプログラムは、自動的に携帯電話２のシステムメモリ８にインストールされる。
【００７６】
（２）キャッシュメモリプログラムが起動し、携帯電話２中のシステムメモリ８の一部領域を仮想メモリとして確保し、この仮想メモリ上にキャッシュメモリ２３を割り当てて動作（キャッシュ動作）を開始する（図３（イ）参照）。
（３）キャッシュメモリ２３の書き込みデータが、キャッシュサイズ（キャッシュメモリとして確保した全領域の量）のうち所定量（例えば、図３に示すように９０％）を占めたか否か判断する（図３（ウ）参照）。
【００７７】
（４）その結果、キャッシュサイズの所定量を占めた場合は、キャッシュデータをマイクロＳＤメモリカード１へのデータの同期を取り、再書き込み可能な領域に設定される（図３（エ）参照）。
【００７８】
ここで、「キャッシュデータをマイクロＳＤメモリカード１へのデータの同期を取り」とは、キャッシュデータをマイクロＳＤメモリカード１へ書き落としするとともに、当該書き落としされたデータと同じデータをキャッシュメモリに残しておくことである。そして、上記残された古いデータの領域は、ＣＰＵ等からの新たなデータの再書き込み可能な領域（新たなデータの上書き可能な領域）として開放し供されることとなる。
【００７９】
（５）さらに、上記同期の処理後、一定時間を経過した時点で、未同期のキャッシュデータをバックエンドのタスク処理でマイクロＳＤメモリカード１にデータの同期を行い（上記「データの同期を取り」と同じ動作）、結果的に全てキャッシュ領域に対してデータの再書き込み可能な領域としてメモリとして開放する。（図３（オ）参照）。
【００８０】
（６）キャッシュサイズの所定量を占めていない場合は、上記同様に一定時間を経過した時点で、未同期のデータをバックエンドのタスク処理でマイクロＳＤメモリカード１にデータの同期を行い、結果的に全てキャッシュ領域に対してデータの再書き込み可能な領域としてメモリを開放する（図３（オ）参照）。
【００８１】
（７）携帯電話２からマイクロＳＤメモリカード１が抜かれた場合に、正規な処理をすることなく、携帯電話２からマイクロＳＤメモリカード１が抜かれたか否かを判断する（図３（カ）参照）。
【００８２】
（８）その結果、正規な処理をすることなく、携帯電話２からマイクロＳＤメモリカード１が抜かれた場合は、キャッシュメモリプログラムは自動的にアンインストールを開始し、携帯電話２にはキャッシュメモリプログラムは残さない（図３（キ）参照）で終了する。
（９）正規な処理をして、携帯電話２からマイクロＳＤメモリカード１が抜かれた場合は、キャッシュ動作を継続する（図３（ク）参照）。
【００８３】
（プレフェッチングのフロー）     
ところで、前記したとおり、本発明に係るキャッシュメモリプログラムは、コンピュータ利用機器から外部記録媒体を取り外した時にマイクロＳＤメモリカード１に保持し、マイクロＳＤメモリカード１を携帯電話２に装着すると、キャッシュデータのブロックアドレスの情報をマイクロＳＤメモリカード１からシステムメモリ８に先読みして保持するブロックアドレス情報保持手段２７（図２参照）として、携帯電話２を機能させ、次回インストールする時に、アクセス履歴テーブルに記述されたキャッシュデータのブロックアドレスの情報をキャッシュメモリ２３上に先読みして常駐させる。この一連の動作は、プリフェッチング（prefetching）というプロセスで行う。このプリフェッチングのフローを図４で説明する。
【００８４】
（１）キャッシュメモリ２３に書き込み、読み出すキャッシュデータのブロックアドレスの情報を、常にアクセス履歴テーブルに登録する（図４（ア）参照）。
（２）外部記録媒体であるマイクロＳＤメモリカード１を取り外してキャッシュメモリプログラムのアンインストールが開始されたら、その時点での最新のブロックアドレス情報をマイクロＳＤメモリカード１のアクセス履歴テーブルに保存する（図４（イ）参照）。
（３）キャッシュメモリプログラムのアンインストールが完了する（図４（ウ）参照）。
【００８５】
（４）次回のキャッシュメモリプログラムのインストールを行う（図４（エ）参照）。
（５）次回のキャッシュメモリプログラムのインストールを行うと、キャッシュメモリ２３に先読みするファイルサイズがキャッシュサイズより大きいか否か判断する（図４（オ）参照）。  
【００８６】
（６）その結果、先読みするファイルサイズがキャッシュサイズより大きい場合（図４中、Ｙの場合）は、アクセス履歴テーブルから最後のブロックアドレスのキャッシュデータから順に、マイクロＳＤメモリカード１からキャッシュメモリ２３上に先読みして常駐させ（図４（カ）参照）、先読みを終了する（図４（キ）参照）。
【００８７】
（７）先読みするファイルサイズがキャッシュサイズより大きくない場合（図４中、Ｎの場合）は、アクセス履歴テーブルから全てのブロックアドレスのキャッシュデータを、マイクロＳＤメモリカード１からキャッシュメモリ２３上に先読みして常駐させ（図４（ク）参照）、先読みを終了する（図４（キ）参照）。
【００８８】
以上、本発明に係るキャッシュメモリプログラムを実施するための形態を実施例に基づいて説明したが、本発明はこのような実施例に限定されるものではなく、特許請求の範囲に記載された技術的事項の範囲内でいろいろな実施例があることは言うまでもない。
【産業上の利用可能性】
【００８９】
以上のとおりの本発明に係るキャッシュメモリプログラムは、具体的には、例えば、次のようないろいろな機器に適用可能である。
（１）ＯＳがＷｉｎｄｏｗｓ（登録商標名）である汎用的ＰＣ
（２）ＯＳとしてＡＮＤＲＯＩＤ（登録商標名）を常駐した携帯電話２及び携帯機器
（３）ＩＯＳ（登録商標名）を常駐した携帯電話２及び携帯機器
（４）リアルタイムＯＳ常駐した機器
（５）センサーネットワーク
（６）ＷｉＦｉ内蔵型ＳＤカードとその編集ソフトウェア
（７）家庭内マルチメディアサーバー
（８）Ａｎｔｉ  Ｖｉｒｕｓソフトウエアを常駐した機器
（９）インターネットのファイアーウォール機器
（１０）デジタルカメラ
（１１）各種ネットワークスイッチ機器
【符号の説明】
【００９０】
１  マイクロＳＤメモリカード
２  携帯電話
３  ＮＡＮＤ型フラッシュメモリ
４  コントローラ
７  ＣＰＵ
８  システムメモリ
９  ノースブリッジ（Ｎ／Ｂ）
１０  サウスブリッジ（Ｓ／Ｂ）
１１  バス（ＢＵＳ）
１２  入出力部（Ｉ／Ｏ） 
１３  インターネット 
２０  インストール手段
２１  アンインストール手段
２２  キャッシュメモリ領域確保手段
２３  キャッシュメモリ
２４  書き込み読み出し手段
２５  書き落とし手段
２６  書き落とし条件作成手段
２７  ブロックアドレス情報保持手段
２８  転送手段
【図１】
2012155502.tif 000003
【図２】
2012155502.tif 000004
【図３】
2012155502.tif 000005
【図４】
2012155502.tif 000006