説明

システムパフォーマンスを改善するための外部メモリデバイスの使用

【課題】回転式ストレージデバイス(例えば、ハードドライブ)のセクタをキャッシュするために外部メモリデバイスを利用して、システムパフォーマンスを改善するためのシステムおよび方法を提供すること。
【解決手段】外部メモリデバイス(EMD)が、コンピューティングデバイス、またはコンピューティングデバイスが接続されたネットワークに接続されたとき、システムは、EMDを認識し、ディスクセクタによってEMDをポピュレートする。システムは、ディスクセクタに対するI/O読取り要求を、実際のディスクセクタの代わりにEMDキャシュに向けて送る。EMDの使用は、コンピューティングデバイスにメモリを追加するコストに対してわずかのコストで、コンピューティングデバイスシステムにおけるパフォーマンスおよび生産性を向上させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、コンピュータシステムに関し、より詳細には、コンピュータシステムのパフォーマンスを改善することに関する。
【背景技術】
【0002】
パーソナルコンピュータ、ゲームコンソール、およびスマートフォンなどのコンピューティングデバイスは、アプリケーションによって使用されたページを、メモリにロードしてキャッシュするために、しばしば、時間のかかるプロセスを利用する。これらのページは、通常、磁気ハードディスク(例えば、ハードドライブ)のような回転式の不揮発性媒体に記憶される。しかし、コンピューティングデバイスのプロセッサは、DRAMや他のタイプの揮発性電子メモリのようなアドレス可能メモリのみからの命令を実行する。コンピューティングデバイスにおいて使用されるオペレーティングシステムは、アプリケーションによって使用されるページをメモリにキャッシュして、アプリケーションが、回転式媒体から頻繁にページをロードする必要がないようにする。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願第10/837986号明細書「Non−Volatile Memory Cashe Performance Improvement」、2004年5月3日出願
【特許文献2】米国特許出願第10/325591号「Methods and Mechanisms for Proactive Memory Management」、2002年12月20日出願
【特許文献3】米国特許出願第10/186164号明細書、「Apparatus and Method to Decrease Boot Time and Hibernate Awaken Time of a Computer System」、2002年6月27日出願
【発明の概要】
【発明が解決しようとする課題】
【0004】
ハードドライブからのページの転送は、速度が遅く、特に、大きいファイルをアプリケーションがロードするときに遅い。これは、一般に、コンピュータシステムをハイバネートモード(hibernate mode)から回復するときにも当てはまる。転送時間の重要な1つの因子は、ディスクドライブのスピンアップ速度である。比較的遅いRPMで回転する比較的小さいディスクは、スピンアップするために5から6秒を必要とし、それから使用可能になる。複数プラッタ(multi−platter)のデバイスのような、より大きなディスク、および、より速いRPMで回転するディスクは、スピンアップするために10から12秒またはそれより長い時間を必要とする。
【0005】
この問題は、セキュリティフィックス(security fix)を組み込むためアプリケーションのサイズが大きくなり信頼性が高くなるに従って悪化する。これらのアプリケーションは、継続的にデータを回転式記憶媒体へ/から転送することを必要とすることなく動作するために、より大きなメモリを必要とすることが多い。しかし、マシンのメモリのアップグレードは、会社およびユーザが引き受けるにはコストが高く、個々のユーザの技術レベルを超えることが多い。メモリそれ自体のコストが低くても、各マシンを物理的に開いてRAMを追加することに関する労力およびダウン時間によって、数百ドルのコストを費やすこともある。
【0006】
マシンのメモリのアップグレードによって負担するコストがしばしば高くなりすぎる他の問題は、システムが、ときとして通常よりも大きく複雑なアプリケーションを実行することを求められる場合に起きる。例えば、会社の経理スタッフが、1ヶ月に数回、統合アプリケーションを実行する必要がある場合である。より大きくより複雑なアプリケーションは、効率的に動作するために追加のメモリを必要とする。メモリそれ自体のコストが低くても、各マシンを物理的に開いてRAMを追加することに関する労力およびダウン時間によって、数百ドルのコストを費やすことがある。このようなコストは、アプリケーションが実行されるわずか数回のためにメモリを追加することを正当化することができない。
【課題を解決するための手段】
【0007】
本発明は、(揮発性または不揮発性の)外部メモリデバイスを利用して、ハードディスク(すなわちディスクセクタ)、および/またはより低速のメモリコンポーネントからセクタをキャッシュして、システムのパフォーマンスを改善する、システム、方法、およびメカニズムを提供する、改善されたメモリ管理アーキテクチャに関する。外部メモリデバイス(EMD)が、コンピューティングデバイスにプラグインされる、またはコンピューティングデバイスが接続されたネットワークに接続されると、システムは、EMDを認識し、ディスクセクタおよび/またはメモリセクタによってEMDをポピュレートする。システムは、I/O読取り要求を、実際のセクタの代わりにEMDキャッシュに対するセクタに向けて送る。EMDが、UBS2ローカルバスに接続されている場合、アクセス時間は、ハードディスクから読み取るよりも20倍速くなりうる。EMDのこのような使用は、コンピューティングデバイスにメモリを追加するコストのほんのわずかのコストで、コンピューティングデバイスシステム上のパフォーマンスおよび生産性を向上させる。さらに、例えばXbox(登録商標)などの家庭用装置が、EMDのメモリによって、よりリッチなソフトウェアを実行することができる。
【0008】
システムは、コンピューティングデバイスに関してEMDが最初に使用されることの検出を行う。EMDのタイプが検出され、EMD上のディスクセクタをキャッシュするために使用されるドライバがインストールされる。ドライバが、非同期キャッシュとしてEMDを使用して、任意のディスク、および/またはシステム上のより低速のメモリデバイスから、セクタをキャッシュする。頻度の高いアクセスという点からどのセクタが重要であるかについて事前に知識がない場合、システムは、コンピューティングマシン上のデータを用いて、EMDキャッシュをポピュレートするためにどのセクタが使用されるかを決定する。あるいは、システムは、稼動中に特定のセクタがアクセスされたとき、その特定のセクタによって、EMDキャッシュをポピュレートする。その特定のセクタが読取りオペレーションのために次にアクセスされるとき、システムは、EMDにおけるコピーにアクセスするために読取りオペレーションを検出する。
【0009】
システムは、使用パターンを追跡し、どのディスクセクタが、最も頻繁にアクセスされるかを決定することができる。EMDの次の使用では、システムは、EMDに取り込むために最も頻繁にアクセスされたセクタをキャッシュする。コンピューティングデバイスがパワーアップしたときにEMDが存在する場合、オペレーティングシステムの始動時に、EMDを予めポピュレートすることができる。
【0010】
本発明の追加の特徴および利点は、添付の図面を参照して行われる例示的実施形態の以下の詳細な説明から明らかにされよう。
【0011】
添付の特許請求の範囲により、本発明の特徴が精密に示されるが、本発明ならびにその目的および利点は、添付の図面と関連した以下の詳細な説明から最も良く理解することができる。
【図面の簡単な説明】
【0012】
【図1】本発明が存在する例示的コンピュータシステムを概略的に示すブロック図である。
【図2】本発明の一態様による、メモリ管理アーキテクチャを示すブロック図である。
【図3a】本発明が外部メモリデバイスを利用してシステムのパフォーマンスを改善する際に講じるステップを概略的に示すフローチャートである。
【図3b】本発明が外部メモリデバイスを利用してシステムのパフォーマンスを改善する際に講じるステップを概略的に示すフローチャートである。
【発明を実施するための形態】
【0013】
本発明は、ハードディスク(すなわちディスクセクタ)またはより低速のメモリデバイスからセクタをキャッシュするために、(揮発性または不揮発性の)外部メモリデバイスを利用して、システムのパフォーマンスを改善する、システム、方法、およびメカニズムを提供する、改善されたメモリ管理アーキテクチャに関する。例えば、多くの種類のポータブルコンピューティングデバイスは、ハードドライブまたは回転式媒体記憶装置を有していないが、階層的メモリアーキテクチャを実装している。これらのポータブルコンピューティングデバイスは、本発明により、職場においてより大規模で複雑なエンタープライズアプリケーション(enterprise application)を実行することが可能になるという点で、本発明の利益を大いに得ることになる。802.11nの出現により、任意の無線デバイスに対して200〜500Mbの無線接続が利用可能となり、外部メモリデバイス、および/またはネットワークベースのメモリサーバの使用は、システムのパフォーマンスを改善することになる。
【0014】
外部メモリは、データへのアクセスの速度が概してより遅いデバイスからデータをキャッシュするために使用され、したがって、アプリケーション/オペレーティングシステムによって使用されるデータに対して、より迅速にアクセスすることができるようになり、それによってパフォーマンスが改善される。実際のRAMを追加することに非常にコストがかかる、より古いコンピューティングデバイスについては、外部メモリデバイスの使用によって、わずかなコストで、より古いデバイスのパフォーマンスおよび生産性を向上させ、ユーザが、既存のハードウェア上でより新しいソフトウェアの信頼性、セキュリティ、および生産性の向上の利益を得ることを可能にする。例えば、Xbox(登録商標)などの家庭用デバイスは、改善されたグラフィックスおよびパフォーマンスという点から、よりリッチなソフトウェアを実行することによって利益を得る。さらに、この目的のために必要なメモリの量は、システムを所与のレベルまで更新するために必要なメモリ量よりはるかに少ないことが見込まれる。
【0015】
図面を参照すると、同様の参照番号は、同様の要素を指し示しており、本発明は、適切なコンピューティング環境で実装されるものとして例示されている。本発明は、必ずしもそうである必要はないが、パーソナルコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的コンテキストで説明される。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などを含む。さらに、本発明を、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルの家庭用電化製品、ネットワークPC、ミニコンピュータ、およびメインフレームコンピュータなどを含めた他のコンピュータシステム構成によって実施することもできることは、当業者には理解されよう。本発明は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される、分散コンピューティング環境において実施することもできる。分散コンピューティング環境では、ローカルとリモートの両方のメモリ記憶装置に、プログラムモジュールを配置することができる。
【0016】
図1は、本発明が実装されうる適切なコンピューティングシステム環境100の一例を示す。コンピューティングシステム環境100は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に関してどんな限定も示唆するものではない。また、コンピューティング環境100は、例示的動作環境100に示すコンポーネントのいずれか1つまたは組み合わせに関係する、どのような依存性または要件も有していると解釈されるべきではない。
【0017】
本発明を、他の多数の汎用または専用のコンピューティングシステム環境または構成で使用することができる。本発明での使用に適切となり得る周知のコンピューティングシステム、環境、および/または構成の例には、以下に限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家庭用電化製品、ネットワークPC、ゲームコンソール、スマートフォン、PDA、ミニコンピュータ、メインフレームコンピュータ、および、上記の任意のシステムまたは装置を含む分散コンピューティング環境などが含まれる。
【0018】
本発明は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的コンテキストで説明することができる。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、およびデータ構造などを含む。本発明は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される、分散コンピューティング環境において実施することもできる。分散コンピューティング環境では、メモリ記憶装置を含め、ローカルおよび/またはリモートのコンピュータ記憶媒体に、プログラムモジュールを配置することができる。
【0019】
図1を参照すると、本発明を実装するための例示的システムが、コンピュータ110の形態で汎用コンピューティングデバイスを含んでいる。コンピュータ110のコンポーネントには、以下に限定されないが、処理装置120、システムメモリ130、ならびに、システムメモリから処理装置120までも含め様々なシステムコンポーネントを結合するシステムバス121が含まれうる。システムバス121は、様々なバスアーキテクチャのうち任意のアーキテクチャを使用した、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含めて、いくつかのタイプのうちの任意のバス構造とすることができる。このようなアーキテクチャには、限定ではなく例として挙げれば、ISA(業界標準アーキテクチャ)バス、MCA(マイクロチャネルアーキテクチャ(Micro Channel Architecture))バス、EISA(拡張ISA)バス、VESA(ビデオ電子規格協会)ローカルバス、USB(ユニバーサルシリアルバス)、および、メザニン(Mezzanine)バスとしても知られるPCI(周辺コンポーネント相互接続)バスが含まれる。
【0020】
コンピュータ110は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110がアクセスすることができる任意の利用可能な媒体とすることができ、それには、揮発性と不揮発性の両方の媒体、および、リムーバルと固定の両方の媒体が含まれる。限定ではなく例として挙げると、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するための任意の方法または技術で実装される、揮発性および不揮発性のリムーバルおよび固定の媒体が含まれる。コンピュータ記憶媒体には、以下に限定されないが、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、あるいは、CDROM、DVD(デジタル多用途ディスク)、または他の光ディスクストレージ、あるいは、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ディスク記憶装置、あるいは、所望の情報を格納するために使用することができコンピュータ110によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は、通常、搬送波または他の移送メカニズムなどの変調されたデータ信号として、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを具体化し、また任意の情報送達媒体を含む。用語「変調されたデータ信号」は、信号として情報を符号化するようにセットまたは変更された1つまたは複数の信号特性を有する信号を意味する。限定ではなく例として挙げると、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、ならびに、音響、RF、赤外線、および他の無線媒体などの無線媒体が含まれる。上記の媒体の任意の組み合わせも、コンピュータ可読媒体の範囲に含まれることになる。
【0021】
システムメモリ130は、コンピュータ記憶媒体を、ROM(読取り専用メモリ)131およびRAM(ランダムアクセスメモリ)132などの揮発性および/または不揮発性のメモリの形態で含む。始動時などにコンピュータ110内の要素間で情報を転送する助けとなる基本ルーチンを含むBIOS(基本入出力システム)133は、通常、ROM131に格納されている。RAM132は、通常、処理装置120により、即座にアクセス可能および/または現在処理中である、データおよび/またはプログラムモジュールを含む。図1は、限定ではなく例として、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示す。
【0022】
コンピュータ110は、他のリムーバル/固定、および揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。単に例として示すが、図1では、固定で不揮発性の磁気媒体から読み取りまたはそれに書き込むハードディスクドライブ141、リムーバルで不揮発性の磁気ディスク152から読み取りまたはそれに書き込む磁気ディスクドライブ151、および、CD−ROMまたは他の光媒体などリムーバルで不揮発性の光ディスク156から読み取りまたはそれに書込みを行う光ディスクドライブ155を示している。例示的動作環境において使用することができる他のリムーバル/固定で揮発性/不揮発性のコンピュータ記憶媒体には、以下に限定されないが、磁気テープカセット、フラッシュメモリカード、DVD、デジタルビデオテープ、半導体RAM、および半導体ROMなどが含まれる。ハードディスクドライブ141は、通常、インターフェース140などの固定メモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、通常、インターフェース150などのリムーバルメモリインターフェースによってシステムバス121に接続される。
【0023】
前述の図1に示すドライブおよび関連するコンピュータ記憶媒体は、コンピュータ110のための、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータ(例えば、マルチメディアデータ、音声データ、ビデオデータなど)のストレージを提供する。例えば、図1では、ハードディスク141が、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納するものとして図示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じにすることも異なるようにすることもできることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147には、これらが少なくとも互いに異なるコピーであることを示すために、ここでは異なる番号を与えている。ユーザは、マウス、トラックボール、またはタッチパッドとして通常表されるポインティングデバイス161、キーボード162、マイク163、および、タブレットまたは電子デジタイザ164などの入力装置を介して、コマンドおよび情報をコンピュータ110に入力することができる。他の入力装置(図示せず)には、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどが含まれうる。上記その他の入力装置は、多くの場合、システムバスに結合されたユーザ入力インターフェース160を介して処理装置120に接続されるが、パラレルポート、ゲームポート、またはUSB(ユニバーサルシリアルバス)など他のインターフェースおよびバス構造によって接続してもよい。モニタ191または他のタイプの表示装置も、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタ191は、タッチスクリーンパネルなどと一体化することもできる。タブレット型のパーソナルコンピュータなどでは、モニタおよび/またはタッチスクリーンパネルは、コンピューティングデバイス110を内蔵するハウジングに物理的に結合することができることに留意されたい。さらに、コンピューティングデバイス110などのコンピュータは、スピーカ197およびプリンタ196など他の出力周辺装置を含むこともでき、これらは、出力周辺装置インターフェース194などを介して接続することができる。
【0024】
コンピュータ110は、リモートコンピュータ180など1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することもできる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードとすることができ、図1にはメモリ記憶装置181のみが示されているが、通常、コンピュータ110に関係する上述の要素の多くまたは全部を含む。図1に示す論理接続は、LAN(ローカルエリアネットワーク)171、およびWAN(広域ネットワーク)173を含むが、他のネットワークを含むこともできる。このようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて一般的なものである。例えば、コンピュータ110は、発信元マシンを含み、データは発信元マシンから移行され、リモートコンピュータ180は、その宛先マシンを含むことができる。ただし、発信元と宛先のマシンを、ネットワークまたは他の任意の手段によって接続する必要はなく、代わりに、発信元プラットフォームによって書き込み、1つまたは複数の宛先プラットフォームによって読み取ることができる任意の媒体を介してデータを移行することもできることに留意されたい。
【0025】
LANネットワーク環境で使用される場合、コンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーク環境で使用される場合、コンピュータ110は、通常、モデム172、または、インターネットなどのWAN173を介して接続を確立する他の手段を含む。モデム172は、内蔵モデムでも外部のモデルでもよく、ユーザ入力インターフェース160または他の適切なメカニズムを介してシステムバス121に接続することができる。ネットワーク環境では、コンピュータ110に関して示されたプログラムモジュールまたはその部分をリモートメモリ記憶装置に格納することができる。図1に、限定ではなく例として、メモリ装置181に常駐するリモートアプリケーションプログラム185が示されている。ここに示したネットワーク接続は例示であり、コンピュータ間で接続リンクを確立する他の手段を使用することもできることが認識されよう。
【0026】
以下の説明では、本発明は、他に指定がない限り、1つまたは複数のコンピュータによって実行される、動作、およびオペレーションの記号表現によって説明される。したがって、折に触れてコンピュータで実行されるものとして言及される、そのような動作およびオペレーションは、構造化された形式でデータを表している電気信号のコンピュータ処理装置による操作を含むことは理解されよう。この操作は、コンピュータのメモリシステム内の位置においてデータを変換し、それにより、当業者に周知のやり方でコンピュータのオペレーションを再構成あるいは変更する。データが維持されているデータ構造は、データのフォーマットによって定義される特定の属性を有するメモリの物理的位置である。ただし、本発明は、上述の文脈で記述されているが、これは限定を意味するものではなく、当業者には認識されるように、以下の様々な動作およびオペレーションは、ハードウェアで実装することもできる。
【0027】
次に図2を参照すると、本発明は、従来のデバイスメモリ202を制御し、また外部メモリデバイス(EMD)マネージャ204と通信する、メモリマネージャ200を提供する。EMDマネージャ204は、メモリマネージャ200の下方で、かつ物理ハードウェア206、206、208、およびネットワーク210の上方に示されている。物理ハードウェアは、ローカルに配置された、あるいはネットワークを介してリモードでアクセス可能な、ハードドライブ、CDドライブ、DVDドライブ、またはその組み合わせのCD/DVDドライブなどのマルチメディアドライブ、および光ディスクなどとすることができる。EMDマネージャ204は、別個のものとして示されているが、EMDマネージャ204は、メモリマネージャ200と一体化してもよいことを認識されたい。EMDマネージャ204は、外部メモリデバイス(EMD)212が、プラグアンドプレイなど従来の方法によってアクセス可能になったことを検出する。EMD212は、例えば、CompactFlash Association(コンパクトフラッシュ(登録商標)協会)などで提唱されているCompactFlashの仕様による、コンピューティングデバイスに差し込むことができるリムーバルで固体素子の不揮発性のメモリデバイスの形態にすることができる。それはまた、揮発性のメモリデバイスの形態を取ることもできる。実際には、EMDを、外部に取り付けられているマウス、キーボード、ネットワーク接続デバイスなどの既存の製品の内部に収容することができ、また、このようなデバイスは、同時に複数を付加することができる。外部メモリデバイスの他の代替の位置は、ネットワーク210上のリモートの位置、あるいは、サーバ上のメモリのようなネットワークインフラストラクチャの一部分である。
【0028】
本発明では、EMDにおいて使用可能なメモリを活用して、アプリケーションによって使用されることが見込まれるディスクセクタをメモリ内に維持し、ディスク上のセクタの代わりに、EMDメモリ内にコピーされたディスクセクタ内のデータに向けられたI/O要求を送る。
【0029】
次に、図3aおよび3bを参照して、外部メモリデバイスを活用するために本発明で実施されるステップを説明する。以下の説明では、本発明を記述するために使用されているセクタは、ハードドライブ206上に存在する。本発明は、上述の文脈で説明されているが、それは限定を意味するものではなく、当業者には理解されるように、CD/DVDデバイス208などのようにスピンアップを必要とする、他のデバイスにおけるディスクセクタも、ディスク上にキャッシュすることができる。キャッシュされるセクタは、より低速のメモリデバイスに存在することもできる。図3aおよび3bは、連続したステップを示しているが、これらのステップは、異なる順序および/または並列で行われてもよいことは理解されたい。EMDマネージャ204は、EMD212が使用可能になったことを検出する(ステップ300)。EMDを検出するための1つの手法は、検出インターフェースであり、このインターフェースは記載されている(例えば、特許文献1参照。その全体が参照により本明細書に組み込まれる。)。従来のプラグアンドプレイ方法など他の方法を用いることもできる。EMD212において使用可能なメモリのサイズおよびタイプが決定される。コンピューティングデバイスにおいて最初にEMD212が使用されている場合、EMD212のためのドライバがインストールされる(ステップ302)。このドライバは、EMD212と通信するために使用され、EMDを、システム上でディスク206におけるセクタをキャッシュするための非同期ブロックキャッシュ(asynchronous block cache)として使用する。キャッシュの更新が、EMDが低速であり、更新されるのを待機するために、元の読取り要求に対する増大したレイテンシがもたらされることがありうる場合に、非同期である。
【0030】
他のEMDが使用可能な場合、システムは、他の使用可能なEMDと比較して、より良好な帯域幅およびレイテンシを有するEMD上で、より使用されることが見込まれるディスクセクタをキャッシュすることによって、複数のEMDがどのようにポピュレートされるかの優先順位を付ける(ステップ304)。いくつかのコンピューティングデバイスは、どのディスクセクタがオペレーティングシステムならびにアプリケーションによって最も頻繁にアクセスされるかや、最後のアクセス時間、アクセスパターン、およびアクセス頻度などのディスク使用状況を追跡する。このヒストリが使用可能な場合、EMDは、このヒストリに基づいてポピュレートされる(ステップ306)。このヒストリが使用可能でない場合、EMDは、アプリケーションがディスクから読取りを行う時間に、アプリケーション(またはコンピューティングデバイス)によってアクセスされているディスクセクタによってポピュレートされる。(ステップ308)。EMDに必要とされるフォーマットで、EMDをポピュレートできることに留意されたい。ディスクセクタの使用情報(すなわちヒストリ)は、EMDが使用可能な次の時間に、EMD上にどのセクタをミラーリング(mirror)すべきかを決定するために追跡される。これに使用されるアルゴリズムは、ページメモリを事前に対策を講じて管理するために使用されるアルゴリズムと同様であり、そのアルゴリズムは記載されている(例えば、特許文献2参照。その全体が参照により本明細書に組み込まれる。)。違いは、メモリ内でどのページが、キャッシュのために有用であるかを決定する代わりに、本発明では、どのディスクセクタがキャッシュのために有用かを決定することである。
【0031】
コンピューティングデバイスがネットワーク化されたシステム内にある一実施形態では、ネットワークサーバが、コンピューティングデバイスについての情報を保持し、コンピューティングデバイス用のローカルメモリの管理においてEMDマネージャ204を支援するリモートアルゴリズムを用いる。この実施形態は、どのディスクセクタがキャッシュされるべきかを決定するためのメモリまたはコンピュータ処理能力を持たないローエンド(low−end)クライアントに対して特に適切である。リモートアルゴリズムは、クライアント上のデータパターンおよびアクセスパターンなどについて詳細な解析を行い、ローエンドクライアントが作成するよりも最適な結果を作成する。
【0032】
アプリケーションまたはコンピューティングデバイスは、稼動中に、EMDにコピーされるディスクセクタに書込みを行うことができる。EMDは、アプリケーションまたはコンピューティングデバイスによって書き込まれることは決してない。代わりに、ディスクセクタに書込みオペレーションが適用される。書込みオペレーションか完了した後、ディスクセクタは、EMD上に再びコピーされる(ステップ310)。この手法が使用されると、EMDが除去された場合、リモートファイルシステムの場合のように、リモートファイルシステムへのリンクが機能しないとき、コンピューティングデバイスがEMDの代わりにディスクから読取りを行い、データは失われない。その結果、本発明は、接続の欠損やEMDの除去などの接続性の問題についてより耐性を有するようになる。
【0033】
I/O読取り要求を受け取るたびに、EMDマネージャ204は、その要求が、EMD212のメモリにコピーされているディスクセクタに向けられているかどうかを確かめる検査を行う。読取り要求が、EMDのメモリにコピーされているディスクセクタに向けられている場合、EMDマネージャ204は、読取り要求をEMDにリダイレクトする(ステップ312)。その結果、読取り要求は、ハードディスク206において完了する場合よりも速く完了する。
【0034】
EMD212を、いつでもユーザによって除去することができる。EMDが除去された場合、システムは、この除去を検出する。他のEMDが使用可能な場合、除去されたEMDが使用可能な最も低速のEMDでなかったならば、残りのEMDは、再ポピュレートされる(ステップ314)。他のEMDが使用可能でない場合(または除去されたEMDが最も低速のEMDであった場合)、データは、ハードディスクから読み取られる(ステップ316)。ステップ300から316は、EMDが追加または除去されるたびに繰り返され、ステップ310および312は、EMDが使用可能である限り繰り返される。
【0035】
EMDが不揮発性の場合、パワーダウンまたはハイバネーション時に、構成データを有するセクタによって、EMDメモリを、予めポピュレートすることができる。パワーアップまたは復元の際に、ディスクをスピンアップしている間に、EMDの内容を読み取ることができる。この技法を使用することにより、コンピュータシステムの、ブート時間、およびハイバネーションからの回復時間(hibernate awaken time)を減少させることができる。さらなる詳細を見ることができる(例えば、特許文献3参照。その全体が参照により本明細書に組み込まれる。)。
【0036】
すべてのステップを説明したので、次に、パフォーマンスの改善について説明する。外部メモリデバイスについて期待できるパフォーマンスの改善を決定する主要な因子は、EMDに対する転送レイテンシおよびスループット、EMDのバス(例えば、USB1/2、PCMCIA、Ethernet(登録商標)100BaseTなど)、外部メモリのサイズ、キャッシュの管理に用いられるポリシー、ならびに、外部メモリの使用の仕方のシナリオおよびワークロードである。
【0037】
EMDが接続される最も典型的ないくつかのバスに対する転送レイテンシおよびスループットは変動することがある。EMDが特定のバスに接続できるデバイスとしてパッケージ化されたRAMからなる場合、バスは、ほとんどのオペレーションについての主なボトルネックとなることが予想される。USB1、USB2、およびPCI/PCMIAのバスのレイテンシおよびスループットは、バスに接続されたディスクの(一般には通常のメモリである)トラックバッファ(track buffer)にヒットすることになる、逓増していくサイズ(4KB、8KB、16KB、32KB、および64KB)のバッファされていないディスクI/Oを、発行することによって推定される。表1の下記の値は、I/Oサイズを転送するためにかけた時間に単に直線を適合させることにより導かれた。
【0038】
【表1】

【0039】
ディスクキャッシュとして有意義にするために、EMDからのデータのコピーは、それが対応するディスクに移動するよりも高速でなければならない。シークを伴う4KBランダムディスクI/Oは、通常のデスクトップおよびラップトップのディスク上では、5〜15msの間のいずれかの時間がかかる。シークを伴う4KBディスクI/Oのために10msの時間がかかるとすると、データは、PCMCIA上でEMDキャッシュから60倍速く取り出すことができ、あるいは、UBS2上でEMDから20倍速く取り出すことができはずである。全般的に見て、UBS2は、EMDに接続するのに非常に適切なバスと考えられる。
【0040】
USB1に関する1つの問題は、4msのセットアップ時間が、どんなパフォーマンス向上も見込めなくしてしまうことでる。この問題は、アイソクロナス(isochronous)転送チャネルをいつもオープンに維持することによって対処される。USB1上でEMDから4KBを得ることは、通常、2倍の速さとなり、したがって、それはシークを伴うディスクから得られる。USB1での低いスループットレートのため、クライアントシステム上で通常見られる16KB、32KB、および64KBI/Oについて、ディスクへ移動するほうが、依然としてより高速である。しかし、通常4KBランダムI/Oによってアクセスされるページファイルおよびファイルシステムメタデータのみに使用されるUSB1キャッシュは、依然としてパフォーマンス向上をもたらすことができる。
【0041】
Windows(登録商標)XP(登録商標)のサービスパック1がリリースされたあと初めて、USB2の採用が開始された。EMDから主に便益を得る64MBおよび128MBシステムのほとんどは、通常、USB2を有していない。しかし、これらのシステムは、たいてい、100Base−T Ethernet(登録商標)ネットワークカードを有していない。10MB/sの転送時間は、EMDから有効なパフォーマンス向上を得るために充分である。コンピュータの小さいネットワークのパフォーマンスを改善するために、EMDを、コンピュータごとにパススルーネットワークデバイスとして付加することができ、あるいは、ネットワークスイッチに押し込むこともできる。スイッチの範囲を超えることは、共有されたネットワークの帯域幅に起因する、起こりうる多数の信頼性およびセキュリティの問題をもたらす。
【0042】
いかなるキャッシュとも同様に、どのデータをキャッシュ内に維持するかを管理する際に使用される実際のポリシーは、その結果のパフォーマンスの利得を決定する大きな因子である。EMDが、基礎をなすディスクおよび他のデバイスに対するブロックキャッシュとして使用される場合、EMDキャッシュは、基礎をなすデバイスからの読取りが完了したとき、ならびに、アプリケーションおよびファイルシステムから書込みが発行されたときにポピュレートされうる。前述のように、元のデバイスの要求の時間の増大を防止するために、EMDキャッシュにおけるデータは、非同期で更新される必要がある。要求が非同期で更新される範囲からの場合、基礎をなすデバイスに単純に要求を渡すことができる。非同期更新が、未処理の場合、更新を開始する同じ領域について、直近の要求があるはずであり、その範囲におけるデータは、デバイス(例えば、トラックバッファ)またはコントローラにおいてキャッシュされることが見込まれる。
【0043】
ブロックキャッシュは、通常、LRUアルゴリズムによって管理される。このアルゴリズムでは、参照されたブロックは、読取り要求がキャッシュにヒットまたはミスするたびに、LRUリストの最後に置かれる。キャッシュ内にないブロックが、読み取られるまたは書き込まれる場合、LRUリストの前部のブロックを再ポピュレートして、新しいブロックの内容をキャッシュする。その結果、LRUアルゴリズムは、キャッシュ内の有用なブロックが時を経て撹拌されているため、弱体化される傾向にある。このようなアルゴリズムで、リストを優先順位の付けられた複数のサブリストに分割し、最後のアクセス時間を超えてよりリッチなヒストリを維持するものは、より大きい回復力を有することになる。
【0044】
Windows(登録商標)NT上では、ファイルおよびページデータのキャッシュは、待機ページリストを介してメモリマネージャによって行われる。ファイルシステム、レジストリ、および他のシステムコンポーネントは、ファイルオブジェクト/マッピングメカニズムを用いて、メモリおよびキャッシュマネージャを通して同じレベルで、それらのデータをキャッシュする。別のキャッシュが、他のいずれかのレベルにおかれた場合、結果として、データのダブルキャッシング(double cashing)がもたらされる。これは、EMDキャッシュについても同様に当てはまる。これを回避するために、本発明のメモリマネージャは、より重要でない待機ページを、より低速の外部メモリデバイスにプッシュするように拡張することができる。それらのページがアクセスされるたびに、メモリマネージャは、物理メモリページを割り当てることができ、外部メモリデバイスからデータを再度コピーする。EMDメモリマネージャおよび関連するキャッシュマネージャは、事前に対策を講じ回復力のあるページの統合キャッシュの管理のためのページ優先度ヒント(page priority hint)(例えば、特許文献2参照。)を使用することができる。これには、カーネルメモリマネージャ(kernel memory manager)の変更が必要とされるため、Windows(登録商標)XP用に構築されたEMDの解決策は、データのダブルキャッシングの問題にさらされる可能性が高い。ダブルキャッシングにもかかわらず、シミュレーションは、依然として実質的なパフォーマンスの向上を得ることが可能であることを示している。
【0045】
キャッシングのための他の重要なパラメータは、ブロックサイズ、ならびにクラスタリングおよび先読みの量である。キャッシュでミスがあるたびに、より少量のデータが要求された場合でも、基礎をなすディスクまたはデバイスから少なくともデータのブロックサイズを読み取る必要があり、場合によっては、要求されたオフセットの周辺の追加のブロックのクラスタも読み取る必要がある。クラスタリングにより、ディスク上の同じ位置に戻って行われる将来のシークを排除することができる。しかし、クラスタリングにより、元の要求の完了のための時間が増大することもあり、各要求ごとに追加のブロックが参照されるのに伴い、LRUリストにおいてさらなる撹拌を引き起こすおそれもある。さらに、先読みは、より多くの連続データを得るために、キューに入れることが効率的な間、元の要求に対する時間に影響することなく、キューに入れることができる。しかし、この結果、デバイス上の他の場所をシークすることを必要とする後続の要求に対するレイテンシの増大をもたらすことがある。
【0046】
キャッシュにとって有用とみなされるデバイスの位置のリストは、ブートや、キャッシュの通常の内容を消去する集中使用期間などのパワーの状態の変化にまたがって持続することができることに留意されたい。このリストを、バックグランドI/Oに対する適切な優先順位付けのサポートを有する上記のような変化の後、キャッシュ内容を再ポピュレートするために使用することができる。
【0047】
他のパフォーマンス解析と同様に、意味のある有用なデータを得るために、代表的シナリオおよびワークロードに注目することが重要である。既存のWindows(登録商標)(XPおよび2000)におけるEMDキャッシュに期待できるパフォーマンスの改善を明らかにするために、ディスクレベルでの単純なLRUライトスルー(write−through)ブロックキャッシングを用いた実験を行った。上述のように、これは、データのダブルキャッシングの問題にさらされる。しかし、これらの実験は、エミュレーション、シミュレーション、実際のこのようなEMDキャッシュの構築、および、それらの影響の測定がより容易である。その結果は、このような単純なキャッシュでさえも、ディスクおよびシステムのパフォーマンスに大きな影響を与えることができることを示している。コンピューティングデバイスのメモリマネージャとの一体化と、より洗練したポリシーの使用によって、さらに利得が増大する。
【0048】
実験では、基本的にディスクアクセスに対してキャッシュするため、キャッシュの成功は、キャッシュなしの場合および様々な構成のキャッシュについて、代表的ワークロードまたはシナリオから得られた同じ組のディスクアクセスのプレイバックの全体的時間を比較することによって測定される。ほとんどのクライアントのシナリオでは、ディスク読取り時間の減少の結果、それに比例して、応答性またはベンチマークスコア(benchmark score)が増大した。
【0049】
EMDキャッシュの現実の影響を判定するために、2つのシナリオが調べられた。一方のシナリオでは、128MBおよび256MBのシステム上で数時間にわたって、現実のエンドユーザシステムから収集されたディスクトレース(disk trace)を用いる。他方のシナリオでは、Business Winstone 2001、Content Creation Winstone 2002、ならびに、Office 2003アプリケーションを使用する修正版のBusiness Winstoneのような業界ベンチマークによるディスクトレースが用いられる。トレースは複数のメモリサイズで取得され、したがって、それらの利得を、単純なEMDキャッシュから、システムの実際に増大するメモリサイズまで比較することができる。
【0050】
EMDデバイスは、通常のブロックキャッシュを使用し、望ましいEMDバスに基づいてキャッシュヒットに遅延を追加することによって、正確にエミュレートされうる。メモリから要求されたバイトをコピーした後、表1に示されるようなセットアップ時間およびスループット値に基づいて、望ましいEMDバスについて計算された転送時間を決定することができる。
【0051】
この評価の手順では、ターゲットシステムを、maxmem boot.iniスイッチによるターゲットメモリで実行するように構成し、典型的な使用シナリオまたは業界ベンチマークを実行して、生成されたディスクI/Oをトレースし、キャッシュサイズの望ましいパラメータ、およびEMDデバイスのスループット/レイテンシによってブロックキャッシュを構成し、トレースされたディスクI/Oをリプレイして、キャッシュミスによる結果のディスクI/Oを捕捉し、この2つの実行の時間およびディスクアクセスを比較する。
【0052】
理想的には、これらのシナリオを、適切に構成されたブロックキャッシュで実行するべきであり、最終結果(応答時間またはベンチマークスコア)が比較される。しかし、ディスク時間と最終結果の関連が既に確立されている場合、捕捉されたディスクI/Oの単純なプレイバックは、評価される必要のある多数のEMD構成に対して、より短い時間を消費する。単純なシミュレータが、EMDキャッシュからの潜在的利得を大まかに推定するために使用される。128MBカスタマシステム(customer system)ならびに内部開発システム(internal development system)からの数時間単位のディスクトレースの処理を可能にし、EMDキャッシュの様々な構成の影響を測定する。さらに簡略に説明するために、ディスクが読取りの処理にかかる時間に焦点を当て、ディスクの書込み時間を無視する。代表的シーク時間は、2ms未満と20msより大きいシーク時間を無視する。ディスクヘッドの最終の位置の対が、「トラックバッファリング(buffering)」をシミュレートするために追跡される。上述のような複雑な状態にもかかわらず、ディスクシミュレーションは、一般に、許容域内にあり、すなわち、予測の75%が実時間の15%の範囲内となる。予測の誤りは、一般に、控えめなシミュレーションと、より高度のディスク読取り時間に起因する。ディスクシミュレータは、特定のトレースにおけるディスクのパフォーマンス特性を常に正確に捕捉することができるものではないが、それ自体のパフォーマンス特性が、典型的な実際のデスクトップ/ラップトップのディスクの特徴を表している。
【0053】
表2は、様々なコンピューティングシステムの数時間の稼動にわたる実際の使用の際に獲得された、ディスクトレースのEMDキャッシュシミュレーションにおけるディスク読取り時間の減少を示している。
【0054】
【表2】

【0055】
表2のデータの解釈の仕方の例として、システム1を検討すると、128MBのUSB2のEMDデバイスの結果は、現在のユーザが経験しているディスク読取り時間の37%(すなわち63%の減少)となっている。
【0056】
システム1および2は、会社において128MBシステム上でWindows(登録商標)XP、Ofiice2003、および最新のSMSにアップグレードしたいが、ビジネスソフトウェアのラインを稼動するときに深刻な減速が起きるような場合である。システム3のトレースは、ラップトップに由来する場合である。これらのシステムにおいて改善が最も大きいのは、より低速のディスクと128MBのみのメモリを有するシステムであることが見られる。
【0057】
下部の3つのシステム(システム4、5、6)は、大きなファイルの構築、同期、および処理を含む重い開発タスクが実行される開発者システムである。これらのシステムは、より高速のディスクを有し、これらのタスクによって生成される大部分のディスクI/Oは順次であり、ディスク上の同じセクタに何度も再アクセス(例えば同期)しないため、単純なLRUブロックキャッシュからそれほど利益を受けない。したがって、全体のディスク時間が、エンドユーザの応答性を表していない。キャッシュは、UIブロッキングディスク(UI blocking disk)の読取り時間を大幅に減少させることがある。
【0058】
表3は、Content Creation Winston2002において得られた、EMDキャッシュのディスクトレースのシミュレーションにおけるキャッシュディスク読取り時間の減少を示している。
【0059】
【表3】

【0060】
テーブル4は、Business Winstone2001において得られた、EMDキャッシュのディスクトレースのシミュレーションにおけるキャッシュディスク読取り時間の減少を示している。
【0061】
【表4】

【0062】
上記の事例のように、128MB以下の低速のディスクを有するシステム上で最も大きい改善が見られる。Business Winstone2001は、メモリとして256MBにほとんど収まり、したがって、全体のディスク時間、およびEMDによる利得は、システムのメモリサイズにおいて、より小さいものとなる。
【0063】
表5は、Content Creation Winston2002を実行している場合で、追加のEMDキャッシュによる利得を、実際により多くの物理メモリを追加したシステムと比較している。前述のように、EMDキャッシュシミュレーションは、データのダブルキャッシングの問題にさらされ、単純なLRUポリシーで管理される。通常、より多くの物理的メモリをシステムに追加することは、より多数のシナリオにおいてより良好なパフォーマンスをもたらす。他方で、EMDキャッシュが、メモリマネージャと一体化され、提供されうる(例えば、特許文献2参照。)アルゴリズムと同じ高度なアルゴリズムによって管理することができる場合、EMDキャッシュは、実際のメモリをシステムに追加することに匹敵するパフォーマンスの向上を提供することができる。
【0064】
【表5】

【0065】
以上から分かるように、外部メモリを使用してコンピューティングデバイスのパフォーマンスを改善するためのシステムおよび方法を記述した。本発明は、容量が小さいメモリを有するレガシコンピューティングデバイスおよび他のデバイスを、物理的にデバイスを開くことを必要とせずに、メモリを効率的にアップグレードすることを可能にする。外部メモリを使用して、より高速でより信頼できるパフォーマンスという点で生産性の向上を達成することができる。回転式ストレージ媒体とより低速のメモリデバイスは、非同期的に外部メモリにキャッシュされる。リモートファイルシステムとは異なり、データは依然として回転式ストレージ媒体またはより低速のデバイス上にあるため、データは外部メモリが除去された場合に失われない。
【0066】
特許、特許出願、および刊行物を含む本明細書に引用されたすべての参照文献は、それらの全体は参照により本明細書に組み込まれる。本発明を記述する文脈(特に添付の特許請求の範囲における文脈)における、「1つの」、「ある」、「その」、「前記」の語、および同様の指示物の使用は、本明細書で他に指定がない限りまたは文脈により明らかに矛盾しない限り、単数と複数の両方を含むと解釈されるべきである。「含む」および「有する」(“comprising,”“having,”“including,”and“containing”)という語は、他の指定がない限り、オープンエンドな語として解釈されるべきである。本明細書に記載のすべての方法は、本明細書で他に指定がない限りまたは文脈によって明らかに矛盾しない限り、任意の適切な順序で実施することができる。本明細書に記載の、任意およびすべての例、あるいは例示の言葉(例えば、「などの」、「のような」(such as))は、単に本発明をより適切に説明することを意図しており、請求項で指定されない限り、本発明の範囲を限定するものではない。例えば、Windows(登録商標)オペレーティングシステムが、本発明を記述するために参照された。本発明は、LinuxおよびSunOsなど他のオペレーティングシステム上で実装することもできることは当業者には理解されよう。本明細書のいずれの言葉も、請求項にない要素を、本発明の実施において本質的なものとして示す言葉として解釈されるべきではない。
【0067】
本発明の原理が適用されうる多数の可能な実施形態を考慮すると、図面に関連する本明細書に記載の実施形態は、例示のみが目的であり、本発明の範囲を限定するものとして捉えられるべきではない。例えば、本発明の趣旨から逸脱することなく、ソフトウェアとして示された例示の実施形態の要素をハードウェアとして実装することができ、その逆も同様に可能であり、あるいは、例示の実施形態の構成および細部を修正することができることは当業者には理解されよう。したがって、本明細書に記載の発明は、このようなすべての実施形態が、添付の特許請求の範囲およびその均等物の範囲に含まれうることを企図している。
【符号の説明】
【0068】
100 コンピューティングシステム環境
110 コンピュータ
120 処理装置
121 システムバス
130 システムメモリ
131 ROM
132 RAM
133 BIOS
134 オペレーティングシステム
135 アプリケーションプログラム
136 他のプログラムモジュール
137 プログラムデータ
140 固定非揮発性メモリインターフェース
141 ハードディスクドライブ
144 オペレーティングシステム
145 アプリケーションプログラム
146 他のプログラムモジュール
147 プログラムデータ
150 リムーバル非揮発性メモリインターフェース
151 磁気ディスクドライブ
152 リムーバルで不揮発性の磁気ディスク
155 光ディスクドライブ
156 リムーバルで不揮発性の光ディスク
160 ユーザ入力インターフェース
161 マウス
162 キーボード
163 マイク
164 タブレット
170 ネットワークインターフェース
171 LAN
172 モデム
173 WAN
180 リモートコンピュータ
181 メモリ記憶装置
185 リモートアプリケーションプログラム
190 ビデオインターフェース
195 出力周辺装置インターフェース
196 プリンタ
197 スピーカ
200 メモリマネージャ
202 コンピューティングデバイスメモリ
204 外部メモリデバイスマネージャ
206 ハードドライブ
206 ハードドライブ
208 CD/DVDデバイス
210 ネットワーク
212 外部メモリ
212 外部メモリデバイス
212 外部メモリデバイス
212 外部メモリデバイス
300 EMDを検出する
302 ドライバをインストールする
304 EMDの優先順位を付ける
306 ヒストリに基づいてEMDをポピュレートする
308 アクセスされているセクタによってEMDをポピュレートする
310 EMDを再ポピュレートする
312 EMDキャッシュから読み取る
314 他のEMDを再ポピュレートする
316 ディスクから読み取る

【特許請求の範囲】
【請求項1】
外部メモリデバイスを使用して、回転式ストレージデバイスを有するコンピューティングデバイスのパフォーマンスを改善するための、コンピュータにより実行される方法であって、
前記外部メモリデバイスを前記回転式ストレージデバイスのセクタのコピーによってポピュレートするステップと、
前記セクタ上に格納されたデータを要求する、前記コンピューティングデバイスまたはアプリケーションからのI/O読取り要求を、透過的に、前記外部メモリデバイスから読みとるように、前記コンピューティングデバイスまたは前記アプリケーションに対してリダイレクトするステップとを備え、
前記外部メモリデバイスを、前記回転式ストレージデバイスのセクタの前記コピーによってポピュレートするステップは、
前記回転式ストレージデバイスの使用状況のヒストリが使用可能であるかどうかを検出するステップと、
前記ヒストリに基づいて、前記外部メモリデバイスを、前記外部メモリデバイスにおいてより使用されることが見込まれる前記回転式ストレージデバイスのセクタのコピーによってポピュレートするステップとを含み、
他の外部メモリデバイスが使用可能である場合、前記外部メモリデバイスを前記回転式ストレージデバイスのセクタのコピーによってポピュレートするステップにおいて、前記コンピュータは、他の使用可能な外部メモリデバイスと比較して、より良好な帯域幅およびレイテンシを有する外部メモリデバイス上で、より使用されることが見込まれるディスクセクタをキャッシュすることによって、前記外部メモリデバイスがどのようにポピュレートされるかの優先順位を付けることを特徴とする方法。
【請求項2】
前記使用状況のヒストリが使用可能でない場合、前記コンピューティングデバイスまたは前記アプリケーションによってアクセスされるセクタのコピーによって、前記外部メモリデバイスをポピュレートするステップをさらに備えることを特徴とする請求項1に記載の方法。
【請求項3】
前記外部メモリデバイスのためのドライバをインストールするステップをさらに備えることを特徴とする請求項1に記載の方法。
【請求項4】
前記外部メモリデバイスを、前記回転式ストレージデバイスのセクタの前記コピーによってポピュレートするステップは、
どのセクタがアクセスされることが見込まれるかを予測するステップと、
前記外部メモリデバイスを、アクセスされることが見込まれるセクタによってポピュレートするステップとを含むことを特徴とする請求項1に記載の方法。
【請求項5】
前記外部メモリデバイスを、前記回転式ストレージデバイスのセクタの前記コピーによってポピュレートするステップは、前記外部メモリデバイスを、前記回転式ストレージデバイスのセクタの前記コピーによって非同期でポピュレートするステップを含むことを特徴とする請求項1に記載の方法。
【請求項6】
外部メモリデバイスを利用して、回転式ストレージデバイスを有するコンピューティングデバイスのパフォーマンスを改善するためのシステムであって、
前記コンピューティングデバイスのメモリマネージャおよび前記回転式ストレージデバイスと通信する外部メモリデバイスマネージャモジュールを含み、前記外部メモリデバイスマネージャモジュールは、
前記外部メモリデバイスを、前記回転ストレージデバイスにあるセクタのコピーによってポピュレートする手段と、
前記セクタに格納されたデータを要求する、前記コンピューティングデバイスまたはアプリケーションからのI/O読取り要求を、前記外部メモリデバイスから読み取られるようにリダイレクトする手段
とを含み、
前記外部メモリデバイスを、前記回転式ストレージデバイスのセクタの前記コピーによってポピュレートする手段は、
前記回転式ストレージデバイスの使用状況のヒストリが使用可能であるかどうかを検出する手段と、
前記ヒストリに基づいて、前記外部メモリデバイスを、前記外部メモリデバイスにおいてより使用されることが見込まれる前記回転式ストレージデバイスのセクタのコピーによってポピュレートする手段とを含み、
他の外部メモリデバイスが使用可能である場合、前記外部メモリデバイスを前記回転式ストレージデバイスのセクタのコピーによってポピュレートする手段は、前記コンピュータは、他の使用可能な外部メモリデバイスと比較して、より良好な帯域幅およびレイテンシを有する外部メモリデバイス上で、より使用されることが見込まれるディスクセクタをキャッシュすることによって、前記外部メモリデバイスがどのようにポピュレートされるかの優先順位を付けることを特徴とするシステム。
【請求項7】
前記外部メモリデバイスは、前記システムとリモートで接続されることを特徴とする請求項6に記載のシステム。
【請求項8】
前記外部メモリデバイスは、前記コンピューティングデバイスのUSB2(ユニバーサルシリアルバス2)に接続されることを特徴とする請求項6に記載のシステム。
【請求項9】
請求項1に記載のステップを実行するためのコンピュータ実行可能命令を格納することを特徴とする少なくとも1つのコンピュータ可読記憶媒体。
【請求項10】
前記使用状況のヒストリが使用可能な場合に、前記コンピューティングデバイスまたは前記アプリケーションによってアクセスされるセクタのコピーによって、前記外部メモリデバイスをポピュレートするステップを含むステップを実行するための、コンピュータ実行可能命令をさらに格納することを特徴とする請求項9に記載の少なくとも1つのコンピュータ可読記憶媒体。
【請求項11】
前記外部メモリデバイスのためのドライバをインストールするステップを含むステップを実行するためのコンピュータ実行可能命令をさらに格納することを特徴とする請求項9に記載の少なくとも1つのコンピュータ可読記憶媒体。
【請求項12】
前記外部メモリデバイスを、前記回転式ストレージデバイスのセクタの前記コピーによってポピュレートするステップは、
どのセクタがアクセスされることが見込まれるかを予測するステップと、
前記外部メモリデバイスを、アクセスされることが見込まれるセクタによってポピュレートするステップとを含むことを特徴とする請求項9に記載の少なくとも1つのコンピュータ可読記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3a】
image rotate

【図3b】
image rotate


【公開番号】特開2012−181863(P2012−181863A)
【公開日】平成24年9月20日(2012.9.20)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−111004(P2012−111004)
【出願日】平成24年5月14日(2012.5.14)
【分割の表示】特願2005−306948(P2005−306948)の分割
【原出願日】平成17年10月21日(2005.10.21)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】