(57)【要約】本発明の実施形態は、キャッシュ情報を格納するための第１の不揮発性メモリをセグメント化してピン留めすることに関する。１実施形態では、第１の不揮発性メモリが複数のセグメントに分割される。次に、複数のタイプのソフトウェアのうちの第１のタイプのソフトウェアが複数のセグメントのうちの第１のセグメントにピン留めされる。ピン留めされた第１のセグメントは、第１のタイプのソフトウェアに関連するキャッシュ情報を格納する。【選択図】図１
2014534520.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュをセグメント化するための方法であって、
キャッシュ情報を格納するための第１の不揮発性メモリを複数のセグメントに分割するステップと、
複数のタイプのソフトウェアのうちの第１のタイプのソフトウェアを、前記複数のセグメントのうちの第１のセグメントにピン留めするステップ
を含み、
ピン留めされた前記第１のセグメントは、前記第１のタイプのソフトウェアに関連するキャッシュ情報を格納する、方法。
【請求項２】
前記ピン留めするステップは、前記複数のタイプのソフトウェアのうちの第２のタイプのソフトウェアを、前記複数のセグメントのうちの第２のセグメントにピン留めし、
ピン留めされた前記第２のセグメントは、前記第２のタイプのソフトウェアに関連するキャッシュ情報を格納する、請求項１の方法。
【請求項３】
前記第１及び第２のタイプのソフトウェアは、あるタイプのアプリケーションと、オペレーティングシステム（OS）に関連するあるタイプのプロセスとのうちの少なくとも一方であり、
前記アプリケーションは、ウェブブラウザ、ユーザーアプリケーション、及びベンダーアプリケーションのうちの少なくとも１つであり、
前記プロセスは、ブートプロセス、休止プロセス、シャットダウンプロセス、及びスリーププロセスのうちの少なくとも１つである、請求項２の方法。
【請求項４】
前記ピン留めするステップは、前記複数のセグメントのうちの第３のセグメントをピン留めせず、
前記ピン留めするステップは、前記第１のセグメントが一杯の場合には、前記第１のタイプのソフトウェアに関連するキャッシュ情報を前記第３のセグメントに格納し、
前記ピン留めするステップは、前記第２のセグメントが一杯の場合には、前記第２のタイプのソフトウェアに関連するキャッシュ情報を前記第３のセグメントに格納する、請求項３の方法。
【請求項５】
前記分割するステップは、最初に、ベンダー仕様、ユーザーコマンド、及び、前記第１の不揮発性メモリのサイズのうちの少なくとも１つに基づいて、前記複数のセグメントのセグメントの数及びサイズを設定し、
前記分割するステップは、前記ユーザーコマンドと前記複数のタイプのソフトウェアの使用形態との少なくとも一方に基づいて、前記複数のセグメントの前記数と前記サイズとの少なくとも一方を動的に変化させる、請求項１の方法。
【請求項６】
前記ピン留めするステップは、前記複数のタイプのソフトウェアの使用形態とユーザーコマンドとの少なくとも一方に基づいて、前記複数のタイプのソフトウェアのうちの１つのタイプのソフトウェアを、前記複数のセグメントのうちの１つのセグメントに動的にピン留めする、請求項１の方法。
【請求項７】
前記ピン留めするステップは、前記第１のタイプのソフトウェアに分類される第１及び第２のアプリケーションの使用率を決定し、
前記ピン留めするステップは、前記決定された使用率に基づいて、前記第１及び第２のアプリケーションの一方を前記ピン留めされた第１のセグメントに動的にピン留めする、請求項１の方法。
【請求項８】
前記ピン留めするステップは、前記第１のタイプのソフトウェアを変更することと前記第１のタイプのソフトウェアを起動することとのうちの少なくとも一方が実施された場合に、前記ピン留めされた第１のセグメントを更新し、
前記ピン留めするステップは、前記ピン留めされた第１のセグメントから前記第１のタイプのソフトウェアを起動することと、前記第１のタイプのソフトウェアの呼び出しを前記ピン留めされた第１のセグメントに向けることとの少なくとも一方を実施する、請求項１の方法。
【請求項９】
前記第１の不揮発性メモリを備える少なくとも１つの装置が低電力状態に移行することになり、かつ、ユーザーが、前記複数のセグメントのうちの消去すべき１以上のセグメントを選択した場合には、該１以上のセグメントを個別に消去するステップをさらに含む、請求項１の方法。
【請求項１０】
前記消去するステップは、前記装置が前記低電力状態に移行する前に前記１以上のセグメントの消去が完了しない場合には、前記装置が高電力状態に戻ったときに前記１以上のセグメントの消去を続行し、
前記消去が完了するまでは、前記１以上のセグメントは、前記キャッシュ情報を格納するためには使用できない、請求項９の方法。
【請求項１１】
命令を格納している非一時的なコンピュータ可読記憶媒体であって、
前記命令は、装置のプロセッサによって実行されると、該プロセッサに、
キャッシュ情報を格納するための第１の不揮発性メモリを複数のセグメントにセグメント化するステップと、
複数のタイプのソフトウェアのうちの第１のタイプのソフトウェアを、前記複数のセグメントのうちの第１のセグメントにピン留めするステップ
を実行させ、
ピン留めされた前記第１のセグメントは、前記第１のタイプのソフトウェアに関連するキャッシュ情報を格納することからなる、コンピュータ可読記憶媒体。
【請求項１２】
前記プロセッサによって実行されると、該プロセッサに、前記複数のタイプのソフトウェアのうちの第２のタイプのソフトウェアを、前記複数のセグメントのうちの第２のセグメントにピン留めするステップを実行させる命令をさらに含み、
前記ピン留めされた第２のセグメントは、前記第２のタイプのソフトウェアに関連するキャッシュ情報を格納し、
ユーザーコマンド、ベンダー仕様、及び使用率のうちの少なくとも１つに基づいて、前記第１と前記第２のタイプのソフトウェアのうちの少なくとも一方がピン留めされるために選択される、請求項１１のコンピュータ可読記憶媒体。
【請求項１３】
前記プロセッサによって実行されると、該プロセッサに、
前記第１のセグメントが一杯の場合には、前記第１のタイプのソフトウェアに関連する情報を、前記複数のセグメントのうちの第３のセグメントに格納するステップと、
前記第２のセグメントが一杯の場合には、前記第２のタイプのソフトウェアに関連する情報を前記第３のセグメントに格納するステップ
を実行させる命令をさらに含む、請求項１２のコンピュータ可読記憶媒体。
【請求項１４】
キャッシュ情報を格納するための第１の不揮発性メモリと、
前記第１の不揮発性メモリを複数のセグメントに分割するためのセグメント化モジュールと、
複数のタイプのソフトウェアのうちの第１のタイプのソフトウェアを、前記複数のセグメントのうちの第１のセグメントにピン留めするためのピン留めモジュール
を備え、
ピン留めされた前記第１のセグメントは、前記第１のタイプのソフトウェアに関連するキャッシュ情報を格納することからなる、装置。
【請求項１５】
前記第１のタイプのソフトウェアを格納するための第２の不揮発性メモリと、
前記第１及び前記第２の不揮発性メモリを制御するためのメモリコントローラ
をさらに備え、
前記セグメント化モジュール及び前記ピン留めモジュールは、前記複数のセグメントの生成とピン留めの少なくとも一方を実施するために、オペレーティングシステム（OS）を介して前記メモリコントローラと通信する、請求項１４の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピューティング装置（計算装置）は、フラッシュメモリなどのアクセス時間が比較的速い高速記憶装置を備えている場合がある。頻繁にアクセスされる情報を記憶するためのキャッシュとして高速記憶装置を使用することができる。しかしながら、高速記憶装置は、ハードディスクドライブ（HDD）などのアクセス時間が比較的遅い他のタイプの記憶装置に比べて、記憶単位あたりのコストは高くなりうる。
【０００２】
その結果、高速記憶装置の記憶容量は比較的小さくなりうる。高速記憶装置が一杯になると、コンピューティング装置の性能が影響を受けうる。製造業者は、コンピューティング装置の性能を改善するために、高速記憶装置をより効率的に使用する必要性に迫られている。
【図面の簡単な説明】
【０００３】
【図１】複数のセグメントを有する第１の不揮発性メモリを備える装置のブロック図の１例である。
【図２】図１の第１の不揮発性メモリのブロック図の例である。
【図３】第１の不揮発性メモリをセグメント化してピン留めするための命令を有するコンピューティング装置のブロック図の１例である。
【図４】第１の不揮発性メモリをセグメント化してピン留めするための方法のフローチャートの１例である。
【図５】第１の不揮発性メモリをセグメント化してピン留めするための方法のフローチャートの別の例である。
【発明を実施するための形態】
【０００４】
以下、添付の図面を参照して詳細に説明する。
【０００５】
実施形態を十分に理解できるようにするために、以下の説明において特定の細部が与えられている。しかしながら、当業者には、それらの特定の細部がなくても実施形態を実施できることが理解されよう。たとえば、いくつかのブロック図では、不要な細部に関して実施形態が不明瞭にならないようにシステムを図示している場合がある。他の例では、実施形態が不明瞭にならないようにするために、周知のプロセス、構成、及び技術については、不要な細部は省いて説明ないし図示されている場合がある。
【０００６】
コンピューティング装置は、ハードディスクドライブ（HDD）などの比較的低速の記憶装置に加えて、フラッシュメモリなどの比較的高速の記憶装置を備えている場合がある。比較的高速の記憶装置の方が比較的低速の記憶装置よりも待ち時間が短いであろう。コンピューティング装置は、キャッシュ情報などのより頻繁にアクセスされる情報を、比較的低速の記憶装置ではなく、比較的高速の記憶装置に格納することによって性能を高めることができる。たとえば、コンピューティング装置は、頻繁にアクセスされるソフトウェアコード及び／またはそのデータを含むキャッシュ情報を格納するためのキャッシュとして比較的高速の記憶装置を使用することができる。コンピューティング装置は、比較的高速の記憶装置にある最新のキャッシュ情報を比較的低速の記憶装置にただちに書き込む（ライトスルー）か、または、ある時間経過後に書き込む（ライトバック）ことができる。たとえば、キャッシュをクリアした後に、比較的高速の記憶装置内の非一時的ファイルを比較的低速の記憶装置にミラーリング（複製）することができる。
【０００７】
しかしながら、比較的高速の記憶装置は、コンピューティング装置によって使用されているキャッシュ情報の全てを格納するのに十分な記憶容量を有していない場合がある。また、キャッシュミスの際などに、キャッシュ情報を比較的高速な記憶装置から取り出すことができない場合には、（該比較的高速な記憶装置には）存在しないキャッシュ情報は比較的低速な記憶装置から取り出されるだろう。したがって、比較的高速の記憶装置の記憶容量は、コンピューティング装置の性能に対するボトルネックとして間接的に作用しうる。さらに、比較的高速の記憶装置は、一般に、比較的低速の記憶装置に比べて、単位記憶容量あたりのコストがかなり高いので、通常は、比較的高速の記憶装置の記憶容量を増やすことができない。
【０００８】
さらに、第１のアプリケーションがユーザーによって連続的に使用されるにつれて、第１のアプリケーションのより多くのキャッシュ情報を比較的高速の記憶装置に格納していくことができ、これによって、第１のアプリケーションの応答性を次第に向上させることができ、及び／または、該アプリケーションの性能を向上させることができる。たとえば、第１のアプリケーションの起動または実行（動作）が次第に速くなりうる。しかしながら、ユーザーが第２のアプリケーションの使用を開始すると、この応答性は失われうる。なぜなら、ユーザーは、第２のアプリケーションのキャッシュ情報が比較的高速の記憶装置に徐々に格納されていくのを待つことになるからである。
【０００９】
さらに、比較的高速の記憶装置の記憶容量が限られているために、第１のアプリケーションのキャッシュ情報が第２のアプリケーションのキャッシュ情報で上書きされる場合がある。したがって、ユーザーが第１のアプリケーションに切り替えて戻った場合には、第１のアプリケーションの（切り替えた後の）最初のうちの応答性は、以前よりも劣る場合がある。このように、比較的高速の記憶装置に現在使用しているアプリケーションのキャッシュ情報が格納されていくのを待つことに起因して、新たに起動したアプリケーションは即座に応答することができず、及び／または、以前使用したアプリケーションに戻ったときに応答性が失われる場合がある。
【００１０】
本発明の実施形態によれば、第１のアプリケーション（などのソフトウェア）に最初にアクセスする場合でも、または、第１のアプリケーション（などのソフトウェア）にアクセスしている間に第２のアプリケーションなどの別のアプリケーションが頻繁に使用される場合でも、第１のアプリケーションなどのソフトウェアが、即座に応答するようにすることができ、または、初期の期間により良好な応答性を有するようにすることができる。たとえば、いくつかの実施形態では、比較的高速な記憶装置をセグメントに分割することができる。それらのセグメントのうちの少なくとも１つのセグメント、たとえば第１のセグメントを、第１のアプリケーションなどのあるタイプのソフトウェアにピン留めする（すなわち、固定的に割り当てる。尚、「ピン留めする」の具体的意味は後述）ことによって、当該タイプのソフトウェアのキャッシュ情報だけを格納するようにすることができる。さらに、当該タイプのソフトウェアのキャッシュ情報を、当該タイプのソフトウェアにアクセスする前であっても、当該タイプのソフトウェアにピン留めされたセグメントに格納することができる。
【００１１】
たとえば、第１のアプリケーションを第１のセグメントにピン留めすることができる。したがって、第１のアプリケーションにアクセスする前であっても、第１のアプリケーションのキャッシュ情報のうちの少なくともいくつか（たとえば、第１のアプリケーションを起動するためのソフトウェアコード）を第１のセグメントに格納することができる。それゆえ、ユーザーが第１のアプリケーションに最初にアクセスしたときでも、第１のアプリケーションをより速く起動させることなどによって、第１のアプリケーションの応答性をより良好にすることができる。ユーザーが、第２のアプリケーションを頻繁に使用した後、再び第１のアプリケーションに切り替えて戻る場合がある。それにもかかわらず、第１のアプリケーションの応答性は維持されるであろう。なぜなら、第１のアプリケーションのキャッシュ情報は第１のセグメントに保持されているであろうからである。
【００１２】
図１は、複数のセグメント１４２−１〜１４２−ｎを含む第１の不揮発性メモリ１４０を有する装置１００のブロック図の１例である。装置１００の例には、ノート型コンピュータ（またはノートパソコン）、デスクトップコンピュータ、オールインワンシステム、スレートコンピューティング装置、携帯型読取装置、無線電子メール装置、及び携帯電話などを含めることができる。図１の実施形態では、装置１００は、プロセッサ１１０、セグメント化モジュール１２０、ピン留めモジュール１３０（ピン留めモジュールは固定化モジュールともいう）、及び、第１の不揮発性メモリ１４０を備えている。第１の不揮発性メモリ１４０はさらに、複数のセグメント１４２−１〜１４２−ｎ（ｎは１より大きな自然数）を備えている。
【００１３】
プロセッサ１１０を、第１の不揮発性メモリ１４０から命令を取り出して実行するのに適したCPU、GPU、またはマイクロプロセッサ、及び／または、後述のモジュール１２０、１３０のうちの任意のモジュールの機能を実行するように構成された電子回路とすることができる。第１の不揮発性メモリ１４０を、電力が供給されていないときでも格納されている情報を保持する任意の電子記憶装置、磁気記憶装置、光学記憶装置、もしくはその他の物理的記憶装置などの１以上の不揮発性機械可読記憶媒体とすることができる。第１の不揮発性メモリ１４０の例には、ソリッドステートドライブ（SSD）やフラッシュメモリを含めることができる。
【００１４】
モジュール１２０、１３０の各々は、たとえば、後述の機能を実施するための電子回路を有するハードウェア装置を備えることができる。これに加えて、または、これに代えて、それぞれのモジュールを、第１の不揮発性メモリ１４０などの機械可読記憶媒体における符号化された一連の命令であって、プロセッサ１１０によって実行可能な一連の命令として実施することができる。いくつかの実施形態では、モジュール１２０、１３０のうちの一部分をハードウェア装置として実施し、他の部分を実行可能命令として実施することができる。たとえば、モジュール１２０、１３０を、装置１００上で動作するオペレーティングシステム（OS）（不図示）によって実行されるアプリケーションの一部として実施することができる。
【００１５】
第１の不揮発性メモリ１４０を、キャッシュ情報を格納するためのキャッシュとして使用することができる。第１の不揮発性メモリ１４０は、装置１００の第２の不揮発性メモリ（不図示）よりも待ち時間が短いものとすることができる。第２の不揮発性メモリは、第１のタイプ及び／または第２のタイプのソフトウェアなどの複数のタイプのソフトウェアを格納することができる。第２の不揮発性メモリを、電力が供給されていないときでも格納されている情報を保持する任意の電子記憶装置、磁気記憶装置、光学記憶装置、もしくはその他の物理的記憶装置などの１以上の不揮発性機械可読記憶媒体とすることができる。第２の不揮発性メモリの例には、ハードディスクドライブ（HDD）や記憶ドライブ（磁気ディスク装置など）を含めることができる。
【００１６】
キャッシュ情報は、ソフトウェア命令及び／または該命令に関連するデータ（たとえば、ユーザーもしくはソフトウェアによって生成されもしくは変更されるメタデータ及び／もしくはデータ）などの、再使用されるか頻繁に使用される可能性が高い情報を含むことができる。キャッシュデータにより高速にアクセスするために、たとえば、OSやアプリケーションやウェブブラウザなどの複数のタイプのソフトウェアのキャッシュ情報、または、プロセッサ１１０や別のメモリなどのハードウェアのキャッシュ情報を第１の不揮発性メモリ１４０に格納することができる。
【００１７】
セグメント化モジュール１２０は、第１の不揮発性メモリ１４０を複数のセグメント１４２−１〜１４２−ｎに分割するためのものである。セグメント１４２−１〜１４２−ｎのセグメントの数、及び、セグメント１４２−１〜１４２−ｎの各々のセグメントのサイズ（大きさ）を変更可能とすることができる。ピン留めモジュール１３０は、複数のタイプのソフトウェアのうちの１以上のタイプのソフトウェアを複数のセグメント１４２−１〜１４２−ｎのうちの１以上のセグメントにピン留めすることができる。たとえば、ピン留めモジュール１３０は、複数のタイプのソフトウェアのうちの第１のタイプのソフトウェアを、複数のセグメント１４２−１〜１４２−ｎのうちの第１のセグメント１４２−１にピン留めすることができる。
【００１８】
ピン留めモジュール１３０はさらに、たとえば、複数のタイプのソフトウェアのうちの第２のタイプのソフトウェアを、複数のセグメント１４２−１〜１４２−ｎのうちの第２のセグメント１４２−２にピン留めすることができる。この場合、ピン留めされた第２のセグメント１４２−２は、該第２のタイプのソフトウェアに関連するキャッシュ情報を格納する。第２のセグメント１４２−２を、複数のセグメント１４２−１〜１４２−ｎのうちのまだピン留めされていない任意のセグメントとすることができる。いくつかの実施形態は、最大で、複数のセグメント１４２−１〜１４２−ｎの全てがピン留めされる場合を含むことができる。しかしながら、一般に、複数のセグメント１４２−１〜１４２−ｎのうちの１つ、たとえば第３のセグメント１４２−３を、汎用キャッシュ（汎用的に使用される一般的なキャッシュ）として動作するようにピン留めされないままとすることができる。第１の不揮発性メモリ１４０の１例については、図２に関してより詳細に後述する。
【００１９】
セグメント１４２−１〜１４２−ｎのうちの１つをピン留めするとは、該ピン留めされたセグメントのメモリ空間を特定の用途専用に確保すること、すなわち、該メモリ空間を特定の用途専用のものとして割り当てることを意味する。そのため、第１のタイプのソフトウェアが第１のセグメント１４２−１にピン留めされた場合には、ピン留めされた第１のセグメント１４２−１は、該第１のタイプのソフトウェアに関連するキャッシュ情報を格納することができる。さらに、ピン留めされた第１のセグメント１４２−１は、該第１のタイプのソフトウェアに関連しないどのキャッシュ情報（たとえば、第２のタイプのソフトウェアのキャッシュ情報）も格納することはできない。これらタイプのソフトウェアの例には、OS、または、ブートプロセスや休止プロセス（ハイバネーションプロセスともいう。以下同じ）やシャットダウンプロセスやスリーププロセスなどのプロセス、または、ウェブブラウザ、または、グラフィックス（画像ないし図形）編集プログラムやCADプログラムエディタなどの生産性向上ツール、または、ソフトウェアフレームワーク、または、ユーザーアプリケーション、または、ベンダーアプリケーションなどの少なくとも一部を含めることができる。
【００２０】
これらのタイプのソフトウェアのうちの１つ、たとえば第１のタイプのソフトウェアが、セグメント１４２−１〜１４２−ｎのうちの１つ、たとえば第１のセグメント１４２−１にピン留めされたときは、ピン留めモジュール１３０は、第１のセグメント１４２−１に対して最も頻繁に使用される、第１のタイプのソフトウェアに関連するファイルもしくは論理ブロックアドレス（LBA）などのコード及び／もしくはデータを格納することができる。たとえば、該コードは、ソースコード及び／またはランタイムコード（runtime code）を含むことができ、該データは、メタデータ及び／またはユーザーデータを含むことができる。さらに、該コードのうちの少なくともいくつか、たとえば第１のタイプのソフトウェアを起動させるためのコードを、該第１のタイプのソフトウェアが最初に起動される前であっても、第１のセグメント１４２−１に格納することができ、これによって、該第１のタイプのソフトウェアをより速く起動させることができる。その場合は、第１のタイプのソフトウェアの呼び出し（または第１のタイプのソフトウェアに対する要求）を、第２の不揮発性メモリから第１の不揮発性メモリ１４０に向けて送ることができる。
【００２１】
さらに、第１のタイプのソフトウェアが、起動され及び／または変更されたとき、並びに、第１のセグメント１４２−１がアクセスされたときに、第１のセグメント１４２−１を、第１のタイプのソフトウェアのコードで更新することができる。この代わりに、または、これに加えて、第１のセグメント１４２−１を、第１のタイプのソフトウェアの使用率に基づいて更新することができる。あるタイプのソフトウェアの使用率とは、所定の時間の間に該あるタイプのソフトウェアがアクセスされる回数及び／または変更される回数を意味する。たとえば、第１のタイプのソフトウェアの使用率が使用率のある閾値（使用率閾値）より大きい場合には、ピン留めモジュール１３０は、第１のセグメント１４２−１を更新することができる。ピン留めモジュール１３０は、第１のセグメント１４２−１の旧バージョンを置き換えるために、第２の不揮発性メモリに格納されている第１のタイプのソフトウェアのファイルまたはLBAの最新バージョンを第１のセグメント１４２−１に転送する（またはプッシュする）ことによって、第１のセグメント１４２−１を更新することができる。
【００２２】
図１は、セグメント１４２−１〜１４２−ｎのうちの１つに１つのタイプのソフトウェアだけがピン留めされる場合を説明するものであるが、いくつかの実施形態は、セグメント１４２−１〜１４２−ｎのうちの１つに２以上のタイプのソフトウェアがピン留めされる態様を含むことができる。セグメント１４２−１〜１４２−ｎのサイズ及び数、並びに、セグメント１４２−１〜１４２−ｎのうちの任意のセグメントにピン留めされるソフトウェアのタイプを、たとえば、ベンダー及び／またはユーザー及び／またはモジュール１２０及び１３０によって決定することができる。さらに、いくつかの実施形態では、セグメント１４２−１〜１４２−ｎのサイズ、数、及びピン留めのうちの任意のものを、静的なものとすることができ、または、動的に変更することができる。「静的」という用語は、固定されている状態、すなわち、変更できない状態を意味する。たとえば、ユーザーは、静的なセグメントのサイズまたは該セグメントにピン留めされたソフトウェアのタイプを変更することはできない。ピン留めモジュール１３０は、どのタイプのソフトウェアをセグメント１４２−１〜１４２−ｎのうちのどのセグメントにピン留めするかを、それらのタイプのソフトウェアの使用率に基づいて決定することができる。
【００２３】
１例では、ベンダー（装置１００のメーカーないし販売業者など）は、装置１００が速くブートするのを確保しようとする場合がある。そのため、ベンダーは、装置１００のブート時間を短くするために、第１のセグメント１４２−１を生成して、ブートプロセスなどのOSプロセスを第１のセグメント１４２−１に静的に（すなわち不変的に）ピン留めすることができる。第１の不揮発性メモリ１４０は電力が供給されなくても情報を保持することができるので、ブートプロセスに関連するキャッシュ情報は、装置１００の電源が切られている場合でも失われないだろう。
【００２４】
別の例では、ユーザーは、グラフィカルユーザーインターフェース（GUI）を介して、セグメント１４２−１〜１４２−ｎのサイズを変更し、及び／または、セグメント１４２−１〜１４２−ｎ（中のセグメント）を削除もしくは追加し、及び／または、セグメント１４２−１〜１４２−ｎにピン留めするソフトウェアのタイプを変更することができる。GUIは、装置１００のOS上で動作することができ、アプリケーションプログラミングインターフェース（API）を介して第１の不揮発性メモリ１４０と相互作用することができる。
【００２５】
さらに他の例では、セグメント化モジュール１２０及び／またはピン留めモジュール１３０は、適合アルゴリズムを用いて、セグメント１４２−１〜１４２−ｎのサイズ及び／または数及び／またはピン留めを動的に変更することができる。たとえば、セグメント化モジュール１２０は、セグメント１４２−１〜１４２−ｎのうち通常は完全には一杯ではない（すなわち、通常は記憶容量の全てが使用されているわけではない）セグメントのサイズを自動的に小さくすることができ、または、セグメント１４２−１〜１４２−ｎのうち通常は完全に一杯である（すなわち、通常は記憶容量の全てが使用されている）別のセグメントのサイズを自動的に大きくすることができる。あるタイプのソフトウェアの応答性は、該ソフトウェアにピン留めされているセグメントのサイズの関数でありうる。セグメント化モジュール１２０はまた、セグメント１４２−１〜１４２−ｎのうち、該タイプのソフトウェアにピン留めされているアクセス頻度が低いセグメントを削除し、これによって、セグメント１４２−１〜１４２−ｎのうちアクセス頻度が高い別のセグメントのサイズを大きくすることができる。
【００２６】
装置１００は、１つのタイプのソフトウェアに対して複数の実体を備えることもできる。たとえば、装置１００は、インターネットエクスプローラー（Internet Explorer）やファイアフォックス（Firefox）などの２つのウェブブラウザを備えることができる。この場合、ウェブブラウザタイプのソフトウェアの全ての実体のキャッシュ情報を、該ウェブブラウザタイプのソフトウェアにピン留めされたセグメント、たとえば第３のセグメント１４２−３に送ることができる。代替的には、ユーザー及び／またはベンダー及び／またはピン留めモジュール１３０は、あるタイプのソフトウェアのどの実体をピン留めするかを決定することができる。たとえば、ユーザーは、インターネットエクスプローラーよりもファイアフォックスをより多く使用するために、該ユーザーは、ファイアフォックスを第３のセグメント１４２−３にピン留めすることができるが、インターネットエクスプローラーを第３のセグメント１４２−３にピン留めしないようにすることができる。ピン留めモジュール１３０は、使用率に基づいて、単一のタイプのソフトウェアのどの実体をピン留めするかを決定することができる。たとえば、ピン留めモジュール１３０は、最も高い使用率を有する実体をピン留めすることができる。
【００２７】
１実施形態では、たとえば、第１の不揮発性メモリ１４０及び第２の不揮発性メモリがハイブリッドドライブ（hybrid drive）の一部である場合に、装置１００は、第１の不揮発性メモリ１４０及び第２の不揮発性メモリを制御するためのメモリコントローラ（不図示）を備えることができる。この場合、セグメント化モジュール１２０とピン留めモジュール１３０は、OSを介してメモリコントローラと通信して、複数のセグメント１４２−１〜１４２−ｎのうちの少なくとも１つのセグメントを生成してピン留めすることができる。たとえば、セグメント化モジュール１２０とピン留めモジュール１３０は、SATAインターフェース、PATAインターフェース、タグ付けされた短いコマンドファイル（tagged short command file）、または、他のハイブリッド駆動通信メカニズム（hybrid drive communication mechanism）を介して、メモリコントローラと通信することができる。
【００２８】
上記したように、RAMとは異なり、装置１００が電源オフ状態にある場合（すなわち、装置１００に電力が供給されていない場合）でも、キャッシュ情報は第１の不揮発性メモリ１４０に保持される。しかしながら、ユーザー及び／またはベンダーは、全てのキャッシュ情報が保持されるのを望まないかもしれない。たとえば、ユーザー及び／またはベンダーは、個人情報や専有情報（企業秘密など）のような秘密のキャッシュ情報、及び／または、装置１００の構成要素の一時的なコンテキスト情報のような不要なキャッシュ情報を消去することを望む場合がある。それでも、ユーザー及び／またはベンダーは、装置１００をより速くブートするためのブートプロセスのキャッシュ情報やユーザーアプリケーションをより速く起動及び／または実行させるためのユーザーアプリケーションのキャッシュ情報などの他のキャッシュ情報は依然として保持しようとする場合がある。
【００２９】
装置１００は、消去モジュール（不図示）を備えることができる。該消去モジュールは、少なくとも１つのOSが低電力状態（たとえば低消費電力状態）に移行することになり、かつ、ユーザーが、複数のセグメント１４２−１〜１４２−ｎのうちの消去すべき１以上のセグメントを選択した場合に、該１以上のセグメントを個別に消去する（消去するとは、記憶されている内容を消去することを意味する。この場合は、セグメントに記憶されている内容が個別に消去される）。低電力状態の例には、装置１００の電源オフ状態、休止状態、またはスリープ状態を含めることができる。たとえば、ユーザー及び／またはベンダーは、低電力状態に移行する前に、セグメント１４２−１〜１４２−ｎのうちの１以上のセグメントを自動的に消去するように装置１００を設定することができる。さらに、ユーザーは、装置１００の動作中に、GUIなどを介して、セグメント１４２−１〜１４２−ｎのうちの１以上のセグメントを消去することができる。該１以上のセグメントが首尾よく消去されると、そのことをユーザーに知らせることができる。消去モジュールについては、図５に関してより詳細に後述する。
【００３０】
第１のセグメント１４２−１及び／または第２のセグメント１４２−２に関して説明した任意の動作または特性は、複数のセグメント１４２−１〜１４２−ｎのうちの他の任意のセグメントにも妥当しうる。このため、いくつかの実施形態は、たとえば、複数のタイプのソフトウェアのキャッシュ情報に対するアクセス時間を短くすることにより、起動時間または実行時間を短くすることによって、それらのタイプのソフトウェアの応答性を向上させることができる。さらに、複数のセグメント１４２−１〜１４２−ｎは、あるタイプのソフトウェアの最初の起動時に、この向上した応答性が生じるようにすることができ、及び／または、異なるタイプのソフトウェアとの間で切り替えられたときでも、該応答性が維持されるようにすることができる。さらに、ベンダーは、すぐ使える状態になる（OBE：out of box）ように装置１００の性能を向上させることができる。
【００３１】
図２は、図１の第１の不揮発性メモリ１４０のブロック図の１例である。この実施形態では、第１の不揮発性メモリ１４０は、たとえば、ｎが６の場合である、６つのセグメント１４２−１〜１４２−６を備えている。第１のセグメント１４２−１は、OSプロセスなどの第１のタイプのソフトウェアに関連するキャッシュ情報を格納するものとして図示されている。OSプロセスの例には、ブートプロセス、休止プロセス、シャットダウンプロセス、またはスリーププロセスを含めることができる。第２のセグメント１４２−２は、ベンダーアプリケーションなどの第２のタイプのソフトウェアに関連するキャッシュ情報を格納するものとして図示されている。ベンダーアプリケーションの例には、プロプライエタリソフトウェアや、装置１００のハードウェア構成要素に固有のソフトウェアなどの、装置１００に予めインストールされているソフトウェアを含めることができる。
【００３２】
第３のセグメント１４２−３は、ウェブブラウザなどの第３のタイプのソフトウェアに関連するキャッシュ情報を格納するものとして図示されている。ウェブブラウザの例には、インターネットエクスプローラー、ファイアフォックス、グーグルクローム（Google Chrome）、サファリ（Safari）、オペラ（Opera）などのソフトウェアを含めることができる。第４のセグメント１４２−４は、第１のユーザーアプリケーションなどの第４のタイプのソフトウェアに関連するキャッシュ情報を格納するものとして図示されており、第５のセグメント１４２−５は、第２のユーザーアプリケーションなどの第５のタイプのソフトウェアに関連するキャッシュ情報を格納するものとして図示されている。第１及び第２のユーザーアプリケーションの例には、グラフィックスプログラムム、ビデオゲーム、マルチメディアソフトウェアなどのユーザーがインストールした任意のタイプのアプリケーション及び／または任意のタイプの非ベンダーアプリケーションを含めることができる。
【００３３】
第６のセグメント１４２−６は、任意のキャッシュ情報を格納することができる汎用キャッシュとして図示されている。汎用キャッシュは、最長時間未使用法（LRU：Reast Recently Used）や最短時間未使用（MRU：MostRecently Used）などのキャッシュアルゴリズムにしたがって動作することができる。したがって、この例では、第１〜第５のセグメント１４１−１〜１４２−５はピン留めされるが、第６のセグメント１４２−６はピン留めされないままである。たとえば、第１〜第５のセグメント１４２−１〜１４２−５にはピン留めされていない任意のキャッシュ情報を、第６のセグメント１４２−６に格納することができる。さらに、第１〜第５のセグメント１４２−１〜１４２−５のうちの任意のセグメントが一杯になった場合には、該一杯になったセグメントへの追加のキャッシュ情報または該一杯になったセグメントに入りきらないキャッシュ情報を（該キャッシュ情報が第６のセグメント１４２−６にピン留めされていないにもかかわらず）、第６のセグメント１４２−６に格納することもできる。たとえば、第１のセグメント１４２−１または第２のセグメント１４２−２が一杯になった場合には、OSプロセスなどの第１のタイプのソフトウェアに関連するキャッシュ情報や、ベンダーアプリケーション情報などの第２のタイプのソフトウェアに関連するキャッシュ情報を第６のセグメント１４２−６に格納することができる。セグメント１４２−１〜１４２−５のうちのセグメントにピン留めされたキャッシュ情報は、そのピン留めされているセグメントが一杯になるまでは、汎用キャッシュすなわち第６のセグメント１４２−６には格納されず、したがって、第１の不揮発性メモリ１４０の記憶容量の一部が浪費されるかまたは使用されない可能性が低くなる。
【００３４】
図２の第１の不揮発性メモリ１４０は、６つのセグメント１４２−１〜１４２−６を有するものとして図示されているが、第１の不揮発性メモリ１４０のいくつかの実施形態は、７以上または５以下の数のセグメントを有することができる。さらに、第１の不揮発性メモリ１４０のセグメントのサイズ及び／または数は、第１の不揮発性メモリ１４０の記憶容量に依存しうる。たとえば、第１の不揮発性メモリ１４０の記憶容量が大きい場合は、該記憶容量が小さい場合よりも、セグメントのサイズ及び／または数は大きくなりうる。
【００３５】
図３は、第１の不揮発性メモリ１４０をセグメント化してピン留めするための命令を含むコンピューティング装置３００のブロック図の１例である。図３の実施形態では、コンピューティング装置３００は、プロセッサ３１０、（上記の）第１の不揮発性メモリ１４０、及び、機械可読記憶媒体３２０を備えている。機械可読記憶媒体３２０はさらに、第１の不揮発性メモリ１４０をセグメント化し及びピン留めするための命令３２２及び３２４を含んでいる。
【００３６】
コンピューティング装置３００を、たとえば、チップセット、ノート型コンピュータ、スレートコンピューティング装置、携帯型読取装置、無線電子メール装置、携帯電話、または、命令３２２及び３２４を実行することができる他の任意の装置とすることができる。いくつかの例では、コンピューティング装置３００は、メモリ（記憶装置）、センサー、ディスプレイ（表示装置）などの追加の構成要素（コンポーネント）を含むことができ、または、コンピューティング装置３００を該追加の構成要素に接続することができる。たとえば、コンピューティング装置３００は、図１に関して説明した第２の不揮発性メモリに類似の第２の不揮発性メモリ（不図示）を備えることができる。代替的には、該第２の不揮発性メモリを、機械可読記憶媒体３２０の一部とすることができる。
【００３７】
プロセッサ３１０を、少なくとも１つの中央処理装置（CPU）、少なくとも１つの半導体ベースのマイクロプロセッサ、少なくとも１つのグラフィックプロセッシングユニット（GPU）、機械可読記憶媒体３２０に格納されている命令の取り出し及び実行に適した他のハードウェア装置、または、それらの組み合わせとすることができる。プロセッサ３１０は、第１の不揮発性メモリ１４０のセグメント化及びピン留めを実施するために命令３２２及び３２４をフェッチし、デコード（復号）し、及び実行することができる。命令を取り出して実行する代わりに、または、命令を取り出して実行することに加えて、プロセッサ３１０は、少なくとも１つの集積回路（IC）、または、その他の制御論理回路（制御ロジック）、または、その他の電子回路、または、それらの組み合わせ（これらは、命令３２２及び３２４の機能を実行するための複数の電子部品を含む）を備えることができる。
【００３８】
機械可読記憶媒体３２０を、実行可能命令を含んでいるかまたは格納する任意の電子記憶装置、磁気記憶装置、光学記憶装置、または、その他の物理的記憶装置とすることができる。したがって、機械可読記憶媒体３２０を、たとえば、ランダムアクセスメモリ（RAM）、電気的消去可能プログラマブルROM（EEPROM）、記憶ドライブ（磁気ディスク装置など）、CD-ROM（Compact Disk Read Only Memory）などとすることができる。したがって、機械可読記憶媒体３２０を非一時的なもの（すなわち持続的に記憶可能なもの）とすることができる。後述するように、機械可読記憶媒体３２０を、第１の不揮発性メモリ１４０をセグメント化し及びピン留めするための一連の実行可能命令で符号化することができる。
【００３９】
さらに、命令３２２及び３２４がプロセッサによって（たとえば、該プロセッサの１つの処理要素もしくは複数の処理要素によって）実行されると、それらの命令は、図４または図５に示されているプロセスなどのプロセスを、該プロセッサに実行させることができる。たとえば、セグメント化命令３２２を、プロセッサ３１０によって実行して、第１の不揮発性メモリ１４０を複数のセグメントにセグメント化（分割）することができる。ピン留め命令３２４をプロセッサ３１０によって実行して、複数のタイプのソフトウェアのうちの第１のタイプのソフトウェアを、複数のセグメント１４２−１〜１４２−ｎのうちの第１のセグメント１４２−１にピン留めすることができる。ピン留めされた第１のセグメントは、第１のタイプのソフトウェアに関連するキャッシュ情報を格納する。また、ピン留め命令３２４をプロセッサ３１０によって実行して、複数のタイプのソフトウェアのうちの第２のタイプのソフトウェアを、複数のセグメント１４２−１〜１４２−ｎのうちの第２のセグメント１４２−２にピン留めすることもできる。ピン留めされた第２のセグメント１４２−２は、第２のタイプのソフトウェアに関連するキャッシュ情報を格納する。
【００４０】
機械可読記憶媒体３２０はまた、第１のセグメントが一杯の場合には、第１のタイプのソフトウェアに関連する情報を、複数のセグメント１４２−１〜１４２−ｎのうちの第３のセグメント１４２−３に格納し、及び、第２のセグメントが一杯の場合には、第２のタイプのソフトウェアに関連する情報を第３のセグメント１４２−３に格納するための命令（不図示）を含むこともできる。装置３００の動作を図４及び図５に関してより詳細に説明する。
【００４１】
図４は、第１の不揮発性メモリ１４０をセグメント化してピン留めするための方法４００のフローチャートの１例である。以下では、方法４００の実行を装置１００を参照して説明するが、装置３００などの、方法４００を実行するための他の適切なコンポーネント（構成要素や装置）を使用することもできる。さらに、方法４００を実行するためのそれらのコンポーネントを複数の装置（たとえば、入力装置及び出力装置と通信する処理装置）間に分散させることができる。いくつかの状況では、連係して動作する複数の装置を、方法４００を実行する単一の装置とみなすことができる。方法４００を、記憶媒体３２０などの機械可読記憶媒体に格納されている実行可能命令の形態で、及び／または、電子回路の形態で、実装ないし実施することができる。
【００４２】
ブロック４１０において、装置１００は、キャッシュ情報を格納するための第１の不揮発性メモリ１４０を複数のセグメント１４２−１〜１４２−ｎに分割する（または、キャッシュ情報を複数のセグメント１４２−１〜１４２−ｎに格納するために、第１の不揮発性メモリ１４０を分割する）。ブロック４１０において、装置１００は、初めに、ベンダー仕様（メーカー仕様など）、ユーザーコマンド、及び第１の不揮発性メモリ１４０のサイズのうちの少なくとも１つに基づいて、複数のセグメント１４２−１〜１４２−ｎのセグメントの数及びサイズを設定することができる。ブロック４１０において、ユーザーコマンドと複数のタイプのソフトウェアの使用形態（または使用パターン）との少なくとも一方に基づいて、複数のセグメント１４２−１〜１４２−ｎのセグメントの数とサイズの少なくとも一方を動的に変更することができる。
【００４３】
次に、ブロック４２０において、装置１００は、複数のタイプのソフトウェアのうちの第１のタイプのソフトウェアを、複数のセグメント１４２−１〜１４２−ｎのうちの第１のセグメント１４２−１にピン留めする。ピン留めされた第１のセグメント１４２−１は、第１のタイプのソフトウェアに関連するキャッシュ情報を格納する。ブロック４２０において、上記のように、装置１００は、該複数のタイプのソフトウェアの使用形態とユーザーコマンドとの少なくとも一方に基づいて、該複数のタイプのソフトウェアのうちの１以上のタイプのソフトウェアを複数のセグメント１４２−１〜１４２−ｎのうちの１つに動的にピン留めすることができる。
【００４４】
たとえば、装置１００は、第２のタイプのソフトウェアを、複数のセグメント１４２−１〜１４２−ｎのうちの第２のセグメント１４２−２にピン留めすることができる。ブロック４２０において、装置１００は、複数のセグメント１４２−１〜１４２−ｎの全てをピン留めしなくてもよく、たとえば、複数のセグメント１４２−１〜１４２−ｎのうちの第３のセグメント１４２−３をピン留めしないようにすることができる。さらに、ブロック４２０において、第１のセグメント１４２−１が一杯の場合には、装置１００は、第１のタイプのソフトウェアに関連するキャッシュ情報を第３のセグメント１４２−３に格納することができ、第２のセグメント１４２−２が一杯の場合には、第２のタイプのソフトウェアに関連するキャッシュ情報を第３のセグメント１４２−３に格納することができる。
【００４５】
ブロック４２０において、装置１００はまた、第１のタイプのソフトウェアに分類される第１及び第２のアプリケーションの使用率を決定することができ、及び、決定された使用率に基づいて、第１及び第２のアプリケーションの一方をピン留めされている第１のセグメント１４２−１に動的にピン留めすることができる。ブロック４２０において、第１のタイプのソフトウェアの変更と、第１のタイプのソフトウェアの起動のうちの少なくとも一方が実施された場合には、装置１００はピン留めされている第１のセグメント１４２−１を更新する。装置１００は、ピン留めされている第１のセグメント１４２−１から第１のタイプのソフトウェアを起動することと、第１のタイプのソフトウェアに対する呼び出しをピン留めされている第１のセグメント１４２−１に向けることとの少なくとも一方を実施する。
【００４６】
図５は、第１の不揮発性メモリ１４０をセグメント化してピン留めするためのもう１つの方法５００のフローチャートの１例である。以下では、方法５００の実行を装置１００を参照して説明するが、装置３００などの、方法５００を実行するための他の適切なコンポーネント（構成要素や装置）を使用することもできる。さらに、方法５００を実行するためのそれらのコンポーネントを複数の装置（たとえば、入力装置及び出力装置と通信する処理装置）間に分散させることができる。いくつかの状況では、連係して動作する複数の装置を、方法５００を実行する単一の装置とみなすことができる。方法５００を、記憶媒体３２０などの機械可読記憶媒体に格納されている実行可能命令の形態で、及び／または、電子回路の形態で、実装ないし実施することができる。
【００４７】
図５のブロック５１０を図４のブロック４１０に類似のものとすることができ、図５のブロック５２０を図４のブロック４２０に類似のものとすることができる。たとえば、ブロック５１０において、装置１００は、キャッシュ情報を格納するための第１の不揮発性メモリ１４０を複数のセグメント１４２−１〜１４２−ｎに分割する（または、キャッシュ情報を複数のセグメント１４２−１〜１４２−ｎに格納するために、第１の不揮発性メモリ１４０を分割する）。次に、ブロック５２０において、装置１００は、複数のタイプのソフトウェアのうちの第１のタイプのソフトウェアを、複数のセグメント１４２−１〜１４２−ｎのうちの第１のセグメント１４２−１にピン留めする。ピン留めされた第１のセグメント１４２−１は、第１のタイプのソフトウェアに関連するキャッシュ情報を格納する。ブロック５３０において、少なくとも１つの装置１００が低電力状態（たとえば低消費電力状態）に移行し、及び、ユーザーが複数のセグメント１４２−１〜１４２−ｎのうちの消去すべき１以上のセグメントを選択した場合には、装置１００は、該１以上のセグメントを個別に消去する。たとえば、装置１００の消去モジュールは、ユーザーからコマンド（命令）を受け取って、複数のセグメント１４２−１〜１４２−ｎのうちの第１のセグメント１４２−１をすぐに消去することができ、及び／または、装置１００のOSからコマンド（命令）を受け取って、装置１００が低電力状態に移行する前に、第１のセグメント１４２−１を消去することができる。
【００４８】
しかしながら、第１の不揮発性メモリ１４０がフラッシュメモリまたはSSDメモリを含んでいる場合には、複数のセグメント１４２−１〜１４２−ｎのアドレス指定構造には対応しないブロック単位でしか第１の不揮発性メモリ１４０を消去できない。たとえば、複数のブロックのうちの１つのブロックを消去すると、複数のセグメント１４２−１〜１４２−ｎのうちの、第１のセグメント１４２−１の一部だけ及び／または第２のセグメント１４２−２の一部だけが消去される場合がある。第１のセグメント１４２−１だけが確実に消去されるようにするために、消去モジュールは、第１の不揮発性メモリ１４０のフラッシュコントローラ（不図示）と通信することができる。
【００４９】
フラッシュコントローラは、データを格納し、取り出し、及び更新するための手順を提供し、並びに、第１の不揮発性メモリ１４０上の利用可能な空間を管理するために使用されるフラッシュファイルシステムを維持することができる。たとえば、ブロックに書き込む前に該ブロックを明確に消去する必要があるので、フラッシュコントローラは、時間を節約するために、装置１００が動作を停止している間に、使用されていないブロックを消去することができる。さらに、フラッシュコントローラは、（複数のブロックのうちのブロックに繰り返し上書きすることによって該ブロックの寿命が短くなったときに行われる）ウェアレベリング（wear leveling）を低減しまたは阻止するために、書き込みを第１の不揮発性メモリ１４０全体に均等に分散させることができる。
【００５０】
消去モジュールは、フラッシュコントローラと通信して、複数のセグメント１４２−１〜１４２−ｎのマッピングと第１の不揮発性メモリ１４０の複数のブロックとの間の相互関係を決定することができる。また、消去モジュールは、フラッシュコントローラと通信して、複数のセグメント１４２−１〜１４２−ｎのうちの消去されないセグメントのキャッシュ情報を保持することができる。たとえば、第１のセグメント１４２−１と第２のセグメント１４２−２が同じブロックの一部を共有している場合などのように、第１のセグメント１４２−１を消去すると、第２のセグメント１４２−２の少なくとも一部も消去されてしまう場合には、消去モジュールはフラッシュコントローラと通信して、先に、消去されるブロック内の第２のセグメント１４２−２のキャッシュ情報を、別のメモリブロックなどの別の場所に保存することができる。代替的には、消去されるブロック内の第３のセグメント１４２−３のキャッシュ情報を、記憶媒体３２０や第２の不揮発性メモリなどの別のメモリに保存することができる。次に、消去モジュールは、フラッシュコントローラと通信して、第１のセグメント１４２−１のキャッシュ情報を格納している１以上のブロックを消去することによって第１のセグメント１４２−１を消去することができる。その後、消去モジュールは、第３のセグメント１４２−３のキャッシュ情報がどこに格納されたかに依存して、第３のセグメント１４２−３のキャッシュ情報をライトバックするようにフラッシュコントローラに命じることができる。
【００５１】
さらに、ブロック５３０において、消去モジュールは、OSと通信して、セグメント１４２−１〜１４２−ｎのうちの１以上のセグメントの消去が完了するまで、装置１００が低電力状態（たとえば低消費電力状態）に移行するのを遅らせることができる。しかしながら、装置１００が低電力状態に移行する前に該１以上のセグメントの消去が完了しない場合には、消去モジュールは、装置１００が電源オン状態（パワーオン状態ともいう）などの高電力状態（たとえば高消費電力状態）に戻ったときに該１以上のセグメントの消去を続行することになる。さらに、複数のセグメント１４２−１〜１４２−ｎのうちの消去されるべき１以上のセグメントの消去が完了するまで、該１以上のセグメントをキャッシュ情報の格納用に使用できないようにすることができる。上記の手順を消去に関して説明したが、本発明の実施形態はこれには限定されない。たとえば、装置１００は、セグメント１４２−１〜１４２−ｎのうちの少なくとも１つのセグメントのキャッシュ情報を上書きし、及び／または、暗号化ないし暗号解読するための類似の手順を実行することもできる。
【００５２】
上記によれば、本発明の実施形態は、キャッシュ情報を格納している第１の不揮発性メモリをセグメント化してピン留めするための方法及び／または装置を提供する。たとえば、第１のタイプのソフトウェアのキャッシュ情報を、複数のセグメントのうちの第１のセグメントにピン留めすることができる。したがって、いくつかの実施形態では、第１のタイプのソフトウェアに最初にアクセスする場合や、第１のタイプのソフトウェアへのアクセスの間に第２のタイプのソフトウェアが頻繁に使用される場合でも、第１のタイプのソフトウェアがすぐに応答するようにすることができ、または、第１のタイプのソフトウェアの初期の応答性をより向上させることができる。
【図１】
2014534520.tif 000003
【図２】
2014534520.tif 000004
【図３】
2014534520.tif 000005
【図４】
2014534520.tif 000006
【図５】
2014534520.tif 000007
【国際調査報告】
2014534520.tif 000008
2014534520.tif 000009