説明

外部記録媒体に常駐されたキャッシュメモリプログラム

【課題】携帯電話等のコンピュータ利用機器内のデータを効率的に管理し、外部メモリ媒体への高速な書き落とし、及び外部メモリ媒体からの読み込み(転送)をDRAMの性能にまで引き上げる外部メモリ媒体に常駐されたキャッシュメモリプログラムを実現する。
【解決手段】マイクロSDメモリカード1等の外部メモリ媒体を携帯電話2等のコンピュータ利用機器に装着することで、キャッシュメモリプログラムは自動的にインストールされ、コンピュータ利用機器中のシステムメモリ8の一部領域を仮想メモリとして確保し、この仮想メモリ上にキャッシュメモリ23を割り当てて動作させ、コンピュータ利用機器のあらゆるデータについて、CPU7等に対する書き込み読み出し、外部メモリ媒体についての書き落し読み込み(転送)を可能とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部記録媒体に常駐(搭載)されたキャッシュメモリプログラムに関するものである。
【0002】
本願の本明細書等では、CPU、システムメモリ、入出力部等を備えたコンピュータ、各種のコンピュータ端末、携帯電話、ナビゲーションシステム及びデジタルカメラ等を「コンピュータ利用機器」と称する。
【0003】
また、コンピュータ利用機器に装着及び取り外し可能なUSBメモリ(USBは登録商標)、SDメモリカード(SDは登録商標)、マイクロSDメモリカード、メモリステック等の補助記憶装置を「外部メモリ媒体」と称す。
【背景技術】
【0004】
近年、メモリデバイスの小型化が進んできたが、その背景にはNAND型フラッシュメモリの大容量化と低価格化がある。NAND型フラッシュメモリは、不揮発性のメモリであるから、データの保存メディアとしてUSBメモリ、SDメモリカード等の外部メモリ媒体に利用されることが多くなった。
【0005】
さらに、外部メモリ媒体自体が、記憶機能だけに止まらず、プログラムを搭載し各種の制御機能を有する技術も開発されている。例えば、メモリカード本体内にデータの圧縮・伸張を行うことができるファームウェア格納部とこれを統括制御するマイクロプロセッサを備え構成が公知である(特許文献1参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2005−293336号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、外部メモリ媒体が小規模なメモリモジュールであるほど、その外部メモリ媒体の内部のNAND型フラッシュメモリの数量が制限されるので、入出力性能(I/O性能)が低い。特に、書き込み性能はマイクロSDカードに至っては、0.005MBps(ランダムファイル時において4KB)と極端に悪化する。
【0008】
また、NAND型フラッシュメモリの書き込み回数の寿命も数百回程度と少ないため、書き込み制限を運用で考慮する必要がある。
【0009】
本発明は、上記従来の問題を解決することを目的とするものであり、外部メモリ媒体に常駐されたキャッシュメモリプログラムであって、外部メモリ媒体を携帯電話等の機器に装着することで該機器にインストールされ、該機器内のデータを効率的に管理し、外部メモリ媒体への高速な書き落とし、及び外部メモリ媒体からの転送を可能とし、しかも外部メモリ媒体のデータの消失や破壊を防止し、寿命も延ばす機能を発揮する外部メモリ媒体に常駐したキャッシュメモリプログラムを実現することを課題とする。
【課題を解決するための手段】
【0010】
本発明は上記課題を解決するために、コンピュータ利用機器に装着及び取り外し自在な外部メモリ媒体に常駐されたキャッシュメモリプログラムであって、コンピュータ利用機器を、 外部メモリ媒体がコンピュータ利用機器に装着されると同時に自動的にコンピュータ利用機器にキャッシュメモリプログラム自体をインストールし起動するインストール手段、外部メモリ媒体をコンピュータ利用機器から取り外すと同時に自動的にコンピュータ利用機器からキャッシュメモリプログラム自体をアンインストールするアンインストール手段、外部メモリ媒体がコンピュータ利用機器に装着されている時のみ、システムメモリの一部を、専用のキャッシュメモリのための領域として確保するキャッシュメモリ領域確保手段、該キャッシュメモリにおいて、コンピュータ利用機器のデータをキャッシュデータとして書き込み及び読み出す書き込み読み出し手段、キャッシュメモリから外部メモリ媒体へキャッシュデータを書き落とす書き落とし手段、外部メモリ媒体に記憶させたキャッシュデータを外部メモリ媒体から読み出してキャッシュメモリに転送する転送手段、として機能させることを特徴とするキャッシュメモリプログラムを提供する。
【0011】
本発明に係るキャッシュメモリプログラムは、コンピュータ利用機器を、さらに、キャッシュメモリに入出力されるデータについて、ファイルサイズを含むファイルの属性を確認し、該ファイルの属性の情報を基に、外部メモリ媒体への書き落とすタイミング及びファイルの単位を決定する書き落とし条件作成手段、として機能させる構成としてもよい。
【0012】
本発明に係るキャッシュメモリプログラムでは、キャッシュメモリ領域確保手段がキャッシュメモリのための領域として割り当てるシステムメモリの領域は、64MB以上であり、キャッシュメモリから外部メモリ媒体への書き落とし手段は、一連のキャッシュデータを、連続して外部メモリ媒体への書き込みを短時間で実行し、コンピュータ利用機器の電源の遮断又は不意な外部メモリ媒体の取り外しに起因するキャッシュデータの消失及び破壊のリスクを極小化とする。
【0013】
本発明に係るキャッシュメモリプログラムでは、キャッシュメモリから外部メモリ媒体への書き落とし手段は、 外部メモリ媒体内のコントローラにキャッシュデータを送り、コントローラが外部メモリ媒体の一部に一時的に保存させるように機能させることもできる。
【0014】
本発明に係るキャッシュメモリプログラムは、コンピュータ利用機器のOSに対応した複数のモジュールを有し、前記インストール手段は、コンピュータ利用機器に外部メモリ媒体が装着されると、コンピュータ利用機器のOSを判断し、該OSに応じたモジュールを自動的に実行するようにすることが好ましい。
【0015】
本発明に係るキャッシュメモリプログラムは、コンピュータ利用機器を、コンピュータ利用機器で生じる全ての読み書きイベントのブロックアドレスとデータを、常にアクセス履歴テーブルに記述し、コンピュータ利用機器から外部記録媒体を取り外した時点までの最終イベント情報をアクセス履歴テーブルに記述したキャッシュデータのブロックアドレスの情報を外部記録媒体内のメモリに保持し、次回のインストール時に先読みするブロックアドレス情報保持手段として機能させることが好ましい。
【0016】
外部メモリ媒体は、USBメモリ、SDメモリカード、マイクロSDメモリカード又はメモリステックであり、コンピュータ利用機器は、コンピュータ端末器、携帯電話、デジタルカメラ又はナビゲーションシステムに適用可能である。
【0017】
本発明に係るキャッシュメモリプログラムは、コンピュータ利用機器を、連続書き込み要求において、ある一定以上のファイルサイズの場合に、仮想メモリ上に割り当てられたキャッシュメモリが、自動的に書き込みバッファーキャッシュとして動作するようにキャッシュポリシーを固定し、キャッシュサイズ以上の連続するデータでもキャッシュを行う手段として機能させることで、平均書き込み性能を高めることができる。この結果、小規模な連続書き込みでは本キャッシュ効果を生じず、本キャッシュ効果の開始ポイントは自由に設定可能となる。
【発明の効果】
【0018】
本発明に係るキャッシュメモリプログラムによると、主に、次のような効果が生じる。
(1)外部メモリ媒体を装着することで、自動的にコンピュータ利用機器中のシステムメモリにインストールされ、システムメモリの一部領域を仮想メモリとして確保し、この仮想メモリ上にキャッシュメモリを割り当てて動作させるので、CPU等からの書き込み、CPU等への読み出し、外部メモリ媒体への書き落とし、外部メモリ媒体からの転送をDRAMの性能にまで引き上げる。
【0019】
(2)システムメモリから外部メモリ媒体に書き落とした一連のキャッシュデータのブロックアドレス情報は、外部メモリ媒体内に常駐されたアクセス履歴テーブル内に保存されるので、外部メモリ媒体をコンピュータ利用機器に装着すると、前回の取り外した際のキャッシュデータが、自動的にキャッシュメモリに先読みされて常駐する。
【0020】
(3)キャッシュデータを外部メモリ媒体へ書き落としするに際し、一連のキャッシュデータを、連続して外部メモリ媒体に書き落とすことで、キャッシュデータを外部メモリ媒体への書き込みを短時間で実行し、コンピュータ利用機器の電源の遮断又は不意な外部メモリ媒体の取り外し時に起因するキャッシュデータの消失及び破壊のリスクを極小化することができる。
【0021】
(4)連続書き込み要求において、ある一定以上のファイルサイズの場合に、仮想メモリ上に割り当てられたキャッシュメモリが、自動的に書き込みバッファーキャッシュとして動作するようにキャッシュポリシーを固定し、キャッシュサイズ以上の連続するデータでもキャッシュ効果を生む機能を備えており、これにより、平均書き込み性能を高めることができる。この結果、小規模な連続書き込みでは本キャッシュ効果を生じず、本キャッシュ効果の開始ポイントは自由に設定することができる。
【図面の簡単な説明】
【0022】
【図1】本発明の実施例を説明する図であり、マイクロSDメモリカードと携帯電話の全体の構成を説明するためのブロック図を示す。
【図2】本発明の実施例を説明する図であり、キャッシュメモリプログラムの構成を模式的に説明するためキャッシュデータの流れを含めたブロック図を示す。
【図3】本発明に係るキャッシュメモリプログラムの全体動作のフローを示す図である。
【図4】本発明に係るキャッシュメモリプログラムプリフェッチングのフローを示す図である。
【発明を実施するための形態】
【0023】
本発明に係るキャッシュメモリプログラムを実施するための形態を実施例に基づき図面を参照して、以下説明する。
【0024】
(概要)
本発明に係るキャッシュメモリプログラムは、コンピュータ利用機器に装着及び取り外し自在な外部メモリ媒体に常駐(搭載)されており、コンピュータ利用機器に装着すると、自動的にコンピュータ利用機器のシステムメモリにインストールされる。
【0025】
このように自動的にインストールされた本発明に係るキャッシュメモリプログラムは、起動してコンピュータ利用機器中のシステムメモリの一部領域を仮想メモリとして確保し、この仮想メモリ上にキャッシュメモリを割り当てて動作させる。
【0026】
そして、インターネットからのダウンロード情報を含むあらゆるデータについて、CPU等に対する書き込み読み出し、さらには、外部メモリ媒体のNAND型フラッシュメモリ(NAND FLASH MEMORY)への書き落とし、NAND型フラッシュメモリからの読み出し(転送)をDRAMの性能にまで引き上げることのできるキャッシュメモリプログラムである。
【0027】
なお、本明細書及び本発明においては、外部メモリ媒体のNAND型フラッシュメモリへの書き落としは、後記する実施例、全体フローの説明等でも説明するが、単にデータの書き落としをするのではなく、キャッシュデータをNAND型フラッシュメモリ(例.マイクロSDメモリカード等)へ書き落とし後も、当該書き落としされたデータと同じデータをキャッシュメモリに残しておく、要するにデータの同期をとることを伴うものである。
【0028】
従って、キャッシュメモリ上のデータの再読み出しによるキャッシュ効果は維持され、新たにCPU等からのデータの再書き込みが要求されるまではその効果が持続し、新規データ上書きの可能なメモリ領域となる。
【実施例】
【0029】
本発明の実施例について図1及び図2において説明する。この実施例では、外部メモリ媒体はマイクロSDメモリカードとし、このマイクロSDメモリカードを装着するコンピュータ利用機器は、携帯電話とした適用例で説明する。なお、他の外部メモリ媒体及びコンピュータ利用機器に適用しても、同様の構成であり、同様の動作を行う。
【0030】
(外部メモリ媒体及びコンピュータ利用機器)
図1は、マイクロSDメモリカード1と携帯電話2の全体の構成を模式的に説明するための図を示す。
【0031】
図2は、キャッシュメモリプログラムの構成を模式的に説明するためキャッシュデータの流れを含めたブロック図である。太い実線の記載部分は、携帯電話2のハード部分の本発明に関連する要部とマイクロSDメモリカード1の要部を示し、細い線の記載部分は、キャッシュメモリプログラムが携帯電話2(具体的にはCPU)を動作させることで機能する手段、及び該手段によるキャッシュデータの流れ等の重要な部分を模式的に示す。
【0032】
マイクロSDメモリカード1は、複数のNAND型フラッシュメモリ3とコントローラ4を備えている。コントローラ4は、周知の構成であり、複数のNAND型フラッシュメモリ3へのデータの割り当て、読み出し、及びコンピュータ利用機器とのデータの転送(やり取り)を行い、複数のNAND型フラッシュメモリ3のうち、特定のNAND型フラッシュメモリ3に書き込みが集中しないよう制御して、記録エリアごとの書き込み回数を平準化する機能を発揮する。
【0033】
NAND型フラッシュメモリ3の一部に、図2に示すように、本発明に係るキャッシュメモリプログラムが常駐されている。図2では、キャッシュメモリプログラムが1つのNAND型フラッシュメモリ3を占有しているかのように記載されているが、実際は、1つのNAND型フラッシュメモリ3の一部に常駐している。
【0034】
また、図2に示すように、NAND型フラッシュメモリ3の一部が、仮記憶領域(TEMPメモリ領域)として割り当てられる。携帯電話2の電源遮断等の際に、携帯電話2内のキャッシュデータをコントローラ4によって、この仮記憶領域に一時的にバッファして、後からコントローラ4が、マイクロSDメモリカード1(外部メモリ媒体)内のブロックアドレスに逐次割当てて記憶させる。
【0035】
携帯電話2は、CPU7、システムメモリ(「ローカルメモリ」とも呼ばれる。)8、ノースブリッジ(N/B)9、サウスブリッジ(S/B)10、バス(BUS)11、入出力部(I/O)12等を備えている。CPU7とシステムメモリ8の間で、データはノースブリッジ9を介して互いにやりとりされる。
【0036】
また、CPU7とシステムメモリ8は、サウスブリッジ10及びバス11を介してマイクロSDカード1等の外部媒体に接続され、また、さらにネットワークを介してインターネット13に接続される。システムメモリ8には、OS、アプリケーションソフト等が記憶されている。
【0037】
(キャッシュメモリプログラム)
本発明に係るキャッシュメモリプログラムを中心に以下、さらに本発明の構成を図2を参照して説明する。
【0038】
マイクロSDメモリカード1に常駐されている本発明に係るキャッシュメモリプログラムは、マイクロSDメモリカード1を携帯電話2に装着すると同時に、キャッシュメモリプログラム自体を自動的に携帯電話2のシステムメモリ8に転送し、自動的に通常のユーザープログラムと同様に、システムメモリ8の一部にインストールして起動するインストール手段20(図2参照)として、携帯電話2を機能させる。
【0039】
具体的には、携帯電話2(コンピュータ利用機器)のCPU7が、キャッシュメモリプログラムに従って、上記のようにインストールして起動する動作させることにより行われる。
【0040】
なお、本明細書及び発明においては、携帯電話2(コンピュータ利用機器)を、インストールして起動する手段として機能させる、は具体的には、携帯電話2(コンピュータ利用機器)のCPU7を、キャッシュメモリプログラムに従ってインストールして起動する動作をさせることにより行われる。以下においても、「携帯電話2(コンピュータ利用機器)を、…………として機能させる」、は具体的には、携帯電話2(コンピュータ利用機器)のCPU7を、キャッシュメモリプログラムに従って…………する動作をさせることにより行われる。
【0041】
このようにマイクロSDメモリカード1に常駐されているキャッシュメモリプログラムがコンピュータ利用機器である携帯電話2へ自動的に実装させる構成は、本発明に係るキャッシュメモリプログラムの特徴の一つである。
【0042】
従来、コンピュータ利用機器で利用されているキャッシュプログラムは、コンピュータ利用機器のOS中核の部分であるKernelプログラム(階層型に設計されたオペレーティングシステム (OS) の中核となる部分であり、システムのリソースを管理し、ハードウェアとソフトウェアコンポーネントのやりとりを管理するプログラム)である。
【0043】
従って、インストールを必ず必要とする。さらに、システムメモリの一部をキャッシュメモリとして使用するので、システムメモリのメモリアロケーション(メモリ領域の確保)を事前に行う必要がある。このようなプロセスでは、必ずOSの再起動を要する。
【0044】
しかし、本発明に係るキャッシュメモリプログラムは、システムメモリ8を使用するが、OSのメモリアロケーションは、変更の必要がないユーザープログラムの一つとして実行される。
【0045】
また、キャッシュメモリプログラムは、マイクロSDメモリカード1を携帯電話2から取り外すと同時に、キャッシュメモリプログラム自体のアンインストールするアンインストール手段21(図2参照)として携帯電話2を、機能させる。
【0046】
このように本発明に係るキャッシュメモリプログラムは、事前のインストール及びアンインストールの必要がない実装技術により、様々なコンピュータ利用機器、及び該機器にインストールされている様々なOSについても、プラグ&プレイ(Plug & Play)で可動でき、コンピュータ利用機器のOSに依存しないキャッシュ効果を得ることが可能となる。
【0047】
本発明に係るキャッシュメモリプログラムは、マイクロSDメモリカード1を携帯電話2に装着すれば、キャッシュメモリプログラム自体を自動的に携帯電話2のシステムメモリ8にインストールして起動し、システムメモリ8の一部に仮想のメモリ領域を確保するキャッシュメモリ領域確保手段22として、携帯電話2を機能させる。
【0048】
即ち、インストールされたキャッシュメモリプログラムが起動して携帯電話2にインストールされているOS及び環境条件等を読み取り、その読み取ったOS及び環境条件等に応じて、システムメモリ8上の一部に、仮想メモリとして運用されるメモリ領域を確保する。
【0049】
そして、システムメモリ8上に確保した上記メモリ領域を、本発明に係るキャッシュメモリプログラムの下で、携帯電話2において、インターネット13からのダウンロード情報を含むあらゆるデータについて、CPU7等に対する書き込み読み出し、さらには、外部メモリ媒体のNAND型フラッシュメモリ3への書き落とし、NAND型フラッシュメモリ3からの読み出し(転送)を可能とする、データ専用のキャッシュメモリ23として割り当てて使用可能とする。
【0050】
これをさらに説明すると、本発明に係るキャッシュメモリプログラムは、システムメモリ8の一部に確保した仮想のメモリ領域をキャッシュメモリ23として使用し、携帯電話2のデータをキャッシュデータとして書き込み一時的に保存し、必要に応じて読み出す動作をする書き込み読み出し手段24として、携帯電話2を機能させる。
【0051】
このキャッシュメモリ23の領域は、64MB以上確保され、キャッシュメモリプログラムにより、ブロックアドレスをキャッシュメモリ23上に作成し、入出力されるデータ(I/Oのファイル)の連続性と特徴を基にデータにブロックアドレスを付し、効果的に、書き込みして保持し、また読み出しの管理を実行する。
【0052】
書き込み読み出し手段24は、携帯電話2のデータを、ライトバックキャッシュ方式で、上記のとおり、キャッシュメモリ23へ書き込み、一時的にキャッシュデータとして保持する。そして、必要に応じて、キャッシュデータをキャッシュメモリ23から読み出しCPU7、入出力部等に送る。
【0053】
そして、本発明に係るキャッシュメモリプログラムは、決められた書き落としタイミングで、キャッシュデータをマイクロSDメモリカード1に書き落としする(マイクロSDメモリカード1に転送して記憶させる)書き落とし手段25(図2参照)として、携帯電話2を機能させる。
【0054】
ここで、決められた書き落としタイミングは、書き落とし条件に応じて決められる。本発明に係るキャッシュメモリプログラムは、キャッシュメモリ23に入出力されるデータについて、ファイルサイズを含むファイルの属性、キャッシュメモリ23におけるキャッシュデータの保持状態等を確認し、該ファイルの属性の情報等を下に、携帯電話2(外部メモリ媒体)への書き落とすタイミング及びファイルの単位を決定する書き落とし条件作成手段26(図2参照)として、携帯電話2を機能させる。
【0055】
例えば、キャッシュメモリ23として確保された領域のうち、予め決められた所定量の領域(例.確保されたキャッシュメモリ23の領域全体が64MBの場合、例えばその20%の領域)がキャッシュデータの保持に使用されると、CPU7の空き時間などを利用して、キャッシュデータをマイクロSDメモリカード1のコントローラ4に向けて転送し、書き落としが行われる。
【0056】
この書き落としの動作については、後記する「全体動作のフロー」の項でも説明するが、ここでもさらに説明をする。キャッシュメモリ23の書き込みデータが、キャッシュサイズ(キャッシュメモリとして確保した全領域の量)のうち所定量占めた場合は、キャッシュデータをマイクロSDメモリカード1へ書き落としするとともに、当該書き落としされたデータと同じデータをキャッシュメモリに残しておく。
【0057】
要するに、キャッシュデータをマイクロSDメモリカード1への書き落としとキャッシュメモリへの保存するデータの同期を取る処理が行われる。キャッシュメモリのうち、上記残された古いデータの領域は、先に書き込まれたデータの領域から順に、CPU等からの新たなデータの再書き込み可能な領域(新たなデータの上書き可能な領域)として開放し再利用されることとなる。
【0058】
さらに、このような同期の処理後、一定時間を経過した時点で、未同期のキャッシュデータをバックエンドのタスク処理でマイクロSDメモリカード1にデータの同期を行い(上記「データの同期を取り」と同じ動作)、結果的に全てキャッシュ領域に対してデータの再書き込み可能な領域(CPU等からの新たなデータを上書き可能な領域)としてキャッシュメモリを開放する。
【0059】
そして、マイクロSDメモリカード1のコントローラ4は、書き落としの際に転送されたキャッシュデータを、NAND型フラッシュメモリ3の一部に割り当てられた仮記憶領域(一時的保存領域)に、一時的にバッファしておき、後からメモリ内のブロックアドレスに割当てて記憶する。このような割り当て動作は、マイクロSDメモリカード1に付与されている機能で行われる。
【0060】
ところで、本発明に係るキャッシュメモリプログラムによれば、キャッシュメモリ23に一時的に保持された一連のキャッシュデータを、フィフォ方式(FIFO方式)などの書き落としアルゴリズムで、マイクロSDメモリカード1のコントローラ4に連続的に転送し(引き渡し)、仮記憶領域に纏め書きして一時的にバッファし、後からメモリ内のブロックアドレスに割当てて記憶する。
【0061】
このように、一連のキャッシュデータをキャッシュメモリ23からマイクロSDメモリカード1に纏め書きして書き落とすことで、NAND型フラッシュメモリ3への書き込み回数を削減する。そのために、キャッシュデータをマイクロSDメモリカードのNAND型フラッシュメモリのブロックアドレスに逐次、細切れで書き込む従来の構成に較べて、NAND型フラッシュメモリ3の寿命を延ばすことが可能となる。
【0062】
従来のKernelプログラムによるマイクロSDメモリカードへの書き落としは、キャッシュデータを細切れでマイクロSDメモリカードのNAND型フラッシュメモリに書き落とす構成であるから、その書き落としの途中で、携帯電話2の電源を遮断したり、又はマイクロSDメモリカードを不意に取り外したりすると、キャッシュデータの消失や破壊のリスクが生じる危険があった。
【0063】
しかしながら、本発明に係るキャッシュメモリプログラムによれば、纏め書きされた一連のキャッシュデータを、マイクロSDメモリカード1のコントローラ4に連続的に引き渡してマイクロSDメモリカード1に纏め書きする(マイクロSDメモリカード1に、キャッシュデータを、いわば、「一筆書き」する)ので、キャッシュデータを外部メモリ媒体へ書き落とす時間が削減され、携帯電話(コンピュータ利用機器)の電源の遮断又は不意なマイクロSDメモリカード1(外部メモリ媒体)の取り外しに起因するキャッシュデータの消失及び破壊のリスクを最小限にすることができる。
【0064】
本発明に係るキャッシュメモリプログラムは、キャッシュメモリ23からフィフォ方式で読み出したキャッシュデータのブロックアドレスの情報を常にアクセス履歴テーブルに記述し、携帯電話2(コンピュータ利用機器)からマイクロSDメモリカード1(外部メモリ媒体)を取り外した時のアクセス履歴テーブルに記述されたキャッシュデータのブロックアドレスの情報を、マイクロSDメモリカード1に保持し、マイクロSDメモリカード1を携帯電話2に装着すると、キャッシュデータのブロックアドレスの情報を、マイクロSDメモリカード1からシステムメモリ8に先読みして保持するブロックアドレス情報保持手段27(図2参照)として、携帯電話2を機能させる。
【0065】
この構成をさらに説明すると、発明のキャッシュメモリプログラムは、キャッシュデータが次々とキャッシュメモリ23の領域に書き込まれる際に、キャッシュデータについてそれぞれファイル番号及び保存先のブロックアドレスを、キャッシュメモリ23の領域に常駐されたアクセス履歴テーブル(Access Historical table)に、書き込み順に次々と記録、更新し、ブロックアドレス情報として保存するブロックアドレス情報保持手段27として、携帯電話2を機能させる。
【0066】
また、このブロックアドレス情報保持手段27は、キャッシュデータをキャッシュメモリ23から、フィフォ方式でマイクロSDメモリカード1に転送し書き落とす時点のブロックアドレス情報を、その都度、キャッシュメモリ23の領域に常駐されたアクセス履歴テーブルに、書き落とし順に次々と記録、更新し、ブロックアドレス情報として保存する。
【0067】
このブロックアドレス情報保持手段27により、マイクロSDメモリカード1を携帯電話2から取り外した時点では、マイクロSDメモリカード1に保持し、マイクロSDメモリカード1を携帯電話2に装着すると、キャッシュデータのブロックアドレス情報を、マイクロSDメモリカード1からシステムメモリ8に先読みしてキャッシュメモリ23の領域に常駐されたアクセス履歴テーブルに記憶される。
【0068】
本発明に係るキャッシュメモリプログラムは、マイクロSDメモリカード1を携帯電話2に装着すると、携帯電話2(コンピュータ利用機器)からマイクロSDメモリカード1(外部記録媒体)を取り外し時のアクセス履歴テーブルに記述されていたキャッシュデータのブロックアドレスの情報を下にして、マイクロSDメモリカード1に保存されたキャッシュデータを自動的にシステムメモリ8に転送して再現する転送手段28(図2参照)として、携帯電話2を機能させる。
【0069】
この点をさらに説明すると、携帯電話2(コンピュータ利用機器)からマイクロSDメモリカード1(外部記録媒体)を取り外す前の最後に読み出されたブロックアドレス情報を、取り外す時にマイクロSDメモリカード1のNAND型フラッシュメモリ3に保持し、このブロックアドレス情報は、マイクロSDメモリカード1を携帯電話2に装着すると、携帯電話2のシステムメモリ8に常駐されたアクセス履歴テーブルに先読みされて保存される。
【0070】
従って、マイクロSDメモリカード1を携帯電話2に装着すると、NAND型フラッシュメモリ3に保存された一連のキャッシュデータは、前回、マイクロSDメモリカード1を携帯電話2から取り外した時の状態で、自動的にシステムメモリ8に転送されて書き込まれ、キャッシュメモリ23の状態を、マイクロSDメモリカード1を携帯電話2から取り外し時の状態に再現することが可能となる。この一連の動作は、プリフェッチング(prefetching)というプロセスで行われるが、このプリフェッチングによる動作は、後記するフローの説明において、図4を参照してさらに説明する。
【0071】
このようにシステムメモリ8からマイクロSDメモリカード1に書き落とす一連のキャッシュデータの書き落とし及びマイクロSDメモリカード1からの読み出し(転送)プロセスでは、キャッシュデータの順番等のブロックアドレス情報について、システムメモリ8内に常駐されたアクセス履歴テーブル内に保存されているから、マイクロSDメモリカード1にアクセスすることなく、システムメモリ8のキャッシュ性能(読み込み、書き込み速度等の性能)をDRAMの性能にまで向上させることが出来る。
【0072】
なお、本発明に係るキャッシュメモリプログラムでは、連続書き込み要求において、ある一定以上のファイルサイズの場合に、仮想メモリ上に割り当てられたキャッシュメモリが、自動的に書き込みバッファーキャッシュとして動作するようにキャッシュポリシーを固定し、連続するデータの長さに関わらずキャッシュ効果を生じる機能を備えている。
【0073】
この機能により、平均書き込み性能を高めることができる。例えば、書き込み平均性能が10MBpsであった場合でも、上記機能による効果が生じることで、平均15MBpsの連続書き込み性能をそのバッファ機能で実現可能となる。逆に、一定以上のファイルの大きさに達しない小規模な連続書き込みでは、作動せずキャッシュ効果の開始ポイントは自由に設定できることを特徴とする。このように、初めは機能せずに、あるサイズのデータファイルから機能するような実装を施したキャッシュは、従来は、全く存在しなかった。
【0074】
(全体動作のフロー)
本発明に係るキャッシュメモリプログラムの全体動作のフローを、図3に示すフロー図で説明する。
【0075】
(1)外部記録媒体であるマイクロSDメモリカード1が、コンピュータ利用機器である携帯電話2に装着されると、自動的にインストローラ(インストール手段20)が起動する(図3(ア)参照)。これにより、キャッシュメモリプログラムは、自動的に携帯電話2のシステムメモリ8にインストールされる。
【0076】
(2)キャッシュメモリプログラムが起動し、携帯電話2中のシステムメモリ8の一部領域を仮想メモリとして確保し、この仮想メモリ上にキャッシュメモリ23を割り当てて動作(キャッシュ動作)を開始する(図3(イ)参照)。
(3)キャッシュメモリ23の書き込みデータが、キャッシュサイズ(キャッシュメモリとして確保した全領域の量)のうち所定量(例えば、図3に示すように90%)を占めたか否か判断する(図3(ウ)参照)。
【0077】
(4)その結果、キャッシュサイズの所定量を占めた場合は、キャッシュデータをマイクロSDメモリカード1へのデータの同期を取り、再書き込み可能な領域に設定される(図3(エ)参照)。
【0078】
ここで、「キャッシュデータをマイクロSDメモリカード1へのデータの同期を取り」とは、キャッシュデータをマイクロSDメモリカード1へ書き落としするとともに、当該書き落としされたデータと同じデータをキャッシュメモリに残しておくことである。そして、上記残された古いデータの領域は、CPU等からの新たなデータの再書き込み可能な領域(新たなデータの上書き可能な領域)として開放し供されることとなる。
【0079】
(5)さらに、上記同期の処理後、一定時間を経過した時点で、未同期のキャッシュデータをバックエンドのタスク処理でマイクロSDメモリカード1にデータの同期を行い(上記「データの同期を取り」と同じ動作)、結果的に全てキャッシュ領域に対してデータの再書き込み可能な領域としてメモリとして開放する。(図3(オ)参照)。
【0080】
(6)キャッシュサイズの所定量を占めていない場合は、上記同様に一定時間を経過した時点で、未同期のデータをバックエンドのタスク処理でマイクロSDメモリカード1にデータの同期を行い、結果的に全てキャッシュ領域に対してデータの再書き込み可能な領域としてメモリを開放する(図3(オ)参照)。
【0081】
(7)携帯電話2からマイクロSDメモリカード1が抜かれた場合に、正規な処理をすることなく、携帯電話2からマイクロSDメモリカード1が抜かれたか否かを判断する(図3(カ)参照)。
【0082】
(8)その結果、正規な処理をすることなく、携帯電話2からマイクロSDメモリカード1が抜かれた場合は、キャッシュメモリプログラムは自動的にアンインストールを開始し、携帯電話2にはキャッシュメモリプログラムは残さない(図3(キ)参照)で終了する。
(9)正規な処理をして、携帯電話2からマイクロSDメモリカード1が抜かれた場合は、キャッシュ動作を継続する(図3(ク)参照)。
【0083】
(プレフェッチングのフロー)
ところで、前記したとおり、本発明に係るキャッシュメモリプログラムは、コンピュータ利用機器から外部記録媒体を取り外した時にマイクロSDメモリカード1に保持し、マイクロSDメモリカード1を携帯電話2に装着すると、キャッシュデータのブロックアドレスの情報をマイクロSDメモリカード1からシステムメモリ8に先読みして保持するブロックアドレス情報保持手段27(図2参照)として、携帯電話2を機能させ、次回インストールする時に、アクセス履歴テーブルに記述されたキャッシュデータのブロックアドレスの情報をキャッシュメモリ23上に先読みして常駐させる。この一連の動作は、プリフェッチング(prefetching)というプロセスで行う。このプリフェッチングのフローを図4で説明する。
【0084】
(1)キャッシュメモリ23に書き込み、読み出すキャッシュデータのブロックアドレスの情報を、常にアクセス履歴テーブルに登録する(図4(ア)参照)。
(2)外部記録媒体であるマイクロSDメモリカード1を取り外してキャッシュメモリプログラムのアンインストールが開始されたら、その時点での最新のブロックアドレス情報をマイクロSDメモリカード1のアクセス履歴テーブルに保存する(図4(イ)参照)。
(3)キャッシュメモリプログラムのアンインストールが完了する(図4(ウ)参照)。
【0085】
(4)次回のキャッシュメモリプログラムのインストールを行う(図4(エ)参照)。
(5)次回のキャッシュメモリプログラムのインストールを行うと、キャッシュメモリ23に先読みするファイルサイズがキャッシュサイズより大きいか否か判断する(図4(オ)参照)。
【0086】
(6)その結果、先読みするファイルサイズがキャッシュサイズより大きい場合(図4中、Yの場合)は、アクセス履歴テーブルから最後のブロックアドレスのキャッシュデータから順に、マイクロSDメモリカード1からキャッシュメモリ23上に先読みして常駐させ(図4(カ)参照)、先読みを終了する(図4(キ)参照)。
【0087】
(7)先読みするファイルサイズがキャッシュサイズより大きくない場合(図4中、Nの場合)は、アクセス履歴テーブルから全てのブロックアドレスのキャッシュデータを、マイクロSDメモリカード1からキャッシュメモリ23上に先読みして常駐させ(図4(ク)参照)、先読みを終了する(図4(キ)参照)。
【0088】
以上、本発明に係るキャッシュメモリプログラムを実施するための形態を実施例に基づいて説明したが、本発明はこのような実施例に限定されるものではなく、特許請求の範囲に記載された技術的事項の範囲内でいろいろな実施例があることは言うまでもない。
【産業上の利用可能性】
【0089】
以上のとおりの本発明に係るキャッシュメモリプログラムは、具体的には、例えば、次のようないろいろな機器に適用可能である。
(1)OSがWindows(登録商標名)である汎用的PC
(2)OSとしてANDROID(登録商標名)を常駐した携帯電話2及び携帯機器
(3)IOS(登録商標名)を常駐した携帯電話2及び携帯機器
(4)リアルタイムOS常駐した機器
(5)センサーネットワーク
(6)WiFi内蔵型SDカードとその編集ソフトウェア
(7)家庭内マルチメディアサーバー
(8)Anti Virusソフトウエアを常駐した機器
(9)インターネットのファイアーウォール機器
(10)デジタルカメラ
(11)各種ネットワークスイッチ機器
【符号の説明】
【0090】
1 マイクロSDメモリカード
2 携帯電話
3 NAND型フラッシュメモリ
4 コントローラ
7 CPU
8 システムメモリ
9 ノースブリッジ(N/B)
10 サウスブリッジ(S/B)
11 バス(BUS)
12 入出力部(I/O)
13 インターネット
20 インストール手段
21 アンインストール手段
22 キャッシュメモリ領域確保手段
23 キャッシュメモリ
24 書き込み読み出し手段
25 書き落とし手段
26 書き落とし条件作成手段
27 ブロックアドレス情報保持手段
28 転送手段

【特許請求の範囲】
【請求項1】
コンピュータ利用機器に装着及び取り外し自在な外部メモリ媒体に常駐されたキャッシュメモリプログラムであって、
コンピュータ利用機器を、
外部メモリ媒体がコンピュータ利用機器に装着されると同時に自動的にコンピュータ利用機器にキャッシュメモリプログラム自体をインストールし起動するインストール手段、
外部メモリ媒体をコンピュータ利用機器から取り外すと同時に自動的にコンピュータ利用機器からキャッシュメモリプログラム自体をアンインストールするアンインストール手段、
外部メモリ媒体がコンピュータ利用機器に装着されている時のみ、システムメモリの一部を、仮想メモリとして確保し、該仮想メモリを専用のキャッシュメモリのための領域として割り当てるキャッシュメモリ領域確保手段、
該キャッシュメモリにおいて、コンピュータ利用機器のデータをキャッシュデータとして書き込み及び読み出す書き込み読み出し手段、
キャッシュメモリから外部メモリ媒体へキャッシュデータを書き落とす書き落とし手段、
外部メモリ媒体に記憶させたキャッシュデータを外部メモリ媒体から読み出してキャッシュメモリに転送する転送手段、
として機能させることを特徴とするキャッシュメモリプログラム。
【請求項2】
コンピュータ利用機器を、
キャッシュメモリに入出力されるデータについて、ファイルサイズを含むファイルの属性を確認し、該ファイルの属性の情報を基に、外部メモリ媒体への書き落とすタイミング及びファイルの単位を決定する書き落とし条件作成手段、
として機能させることを特徴とする請求項1記載のキャッシュメモリプログラム。
【請求項3】
キャッシュメモリ領域確保手段がキャッシュメモリのための領域として割り当てるシステムメモリの領域は、64MB以上であり、
キャッシュメモリから外部メモリ媒体への書き落とし手段は、一連のキャッシュデータを、連続して外部メモリ媒体に書き落とすことで、キャッシュデータを外部メモリ媒体へ書き込む時間を短縮し、コンピュータ利用機器の電源の遮断又は不意な外部メモリ媒体の取り外しに起因するキャッシュデータの消失及び破壊のリスクを低減することを特徴とする請求項1又は2記載のキャッシュメモリプログラム。
【請求項4】
キャッシュメモリから外部メモリ媒体への書き落とし手段は、 外部メモリ媒体内のコントローラにキャッシュデータを送り、コントローラが外部メモリ媒体の一部に一時的に保存させるように機能させることを特徴とする請求項1、2又は3記載のキャッシュメモリプログラム。
【請求項5】
キャッシュメモリプログラムは、コンピュータ利用機器のOSに対応した複数のモジュールを有し、前記インストール手段は、コンピュータ利用機器に外部メモリ媒体が装着されると、コンピュータ利用機器のOSを判断し、該OSに応じたモジュールを自動的に実行することを特徴とする請求項1〜4のいずれかに記載のキャッシュメモリプログラム。
【請求項6】
コンピュータ利用機器を、キャッシュメモリに読み書きされる全てのブロックアドレスの情報を常にアクセス履歴テーブルに記述し、コンピュータ利用機器から外部記録媒体を取り外した時のアクセス履歴テーブルに記述した最終のキャッシュデータのブロックアドレスの情報を外部記録媒体内のメモリに保持し、次回のインストール時に、前記最終のキャッシュデータのブロックアドレスの情報を外部記録媒体からキャッシュメモリに先読みして保持するブロックアドレス情報保持手段として機能させることを特徴とする請求項1〜5のいずれかに記載のキャッシュメモリプログラム。
【請求項7】
外部メモリ媒体は、USBメモリ、SDメモリカード、マイクロSDメモリカード又はメモリステックであり、コンピュータ利用機器は、コンピュータ端末器、携帯電話、デジタルカメラ又はナビゲーションシステムであることを特徴とする請求項1〜6のいずれかに記載のキャッシュメモリプログラム。
【請求項8】
コンピュータ利用機器を、
連続書き込み要求において、ある一定以上のファイルサイズの場合に、仮想メモリ上に割り当てられたキャッシュメモリが、自動的に書き込みバッファーキャッシュとして動作するようにキャッシュポリシーを固定し、キャッシュサイズ以上の連続するデータでもキャッシュを行う手段として機能させることを特徴とする請求項1〜7のいずれかに記載のキャッシュメモリプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−155502(P2012−155502A)
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願番号】特願2011−13579(P2011−13579)
【出願日】平成23年1月26日(2011.1.26)
【出願人】(399004175)DTS株式会社 (5)
【Fターム(参考)】