複数の異種のソリッドステートストレージロケーションを選択的に利用するためのコンピューターによって実施される方法[300]であって、前記複数の異種のソリッドステートストレージロケーションに関するクラスタイプを受け取るステップ[305]と、受け取られたデータの特性を決定するステップ[310]と、前記特性に基づいて、前記複数の異種のソリッドステートストレージロケーションの1つに、前記受け取られたデータを割り当てるステップ[315]とを含む方法[300]。前記複数の異種のソリッドステートストレージロケーションを利用することを介してハードディスクドライブをエミュレートするステップをさらに含む請求項1に記載のコンピューターによって実施される方法[300]。前記複数の異種のソリッドステートストレージロケーションを介してオペレーティングシステムをサポートするステップをさらに含む請求項1に記載のコンピューターによって実施される方法[300]。少なくとも1つのフラッシュメモリーストレージロケーションを含む前記複数の異種のソリッドステートストレージロケーションを介してオペレーティングシステムをサポートするステップをさらに含む請求項1に記載のコンピューターによって実施される方法[300]。受け取られたデータの特性を前記決定するステップは、入力/出力操作に関連する前記受け取られたデータを、前記複数の異種のソリッドステートストレージロケーションに関する前記クラスタイプに対応する少なくとも1つのクラスに分類するステップをさらに含む請求項1に記載のコンピューターによって実施される方法[300]。受け取られたデータの特性を前記決定するステップ[310]は、前記複数の異種のソリッドステートストレージロケーションの1つに格納されたファイルの属性に、前記ファイルの前記属性に基づいて、アクセスするステップをさらに含む請求項1に記載のコンピューターによって実施される方法[300]。前記複数の異種のソリッドステートストレージロケーションの1つから前記複数の異種のソリッドステートストレージロケーションの別の1つに前記ファイルを移すステップをさらに含む請求項6に記載のコンピューターによって実施される方法[300]。前記複数の異種のソリッドステートストレージロケーションに関する前記クラスタイプを前記受け取るステップ[305]は、オペレーティングシステムを利用して、前記クラスタイプを決定するステップをさらに含む請求項1に記載のコンピューターによって実施される方法[300]。受け取られたデータの特性を前記決定するステップ[310]は、データ重要度特性を利用するステップをさらに含む請求項1に記載のコンピューターによって実施される方法[300]。複数の異種のソリッドステートストレージロケーション[240]に関するクラスタイプデータを受け取るように構成されたクラスタイプレシーバー[210]と、受け取られたデータの特性を決定するように構成された受け取りデータ特性ディターミナー[220]と、前記特性に基づいて、前記複数の異種のソリッドステートストレージロケーションの1つに、前記受け取られたデータを割り当てるように構成された異種ソリッドステートストレージロケーションアロケーター[230]とを含むオペレーティングシステムに関連するメモリーを割り当てるためのソリッドステート割り当てモジュール。前記ソリッドステート割り当てモジュールは、フラッシュメモリーストレージモジュールをさらに含む請求項10に記載のソリッドステート割り当てモジュール。前記フラッシュメモリーストレージモジュールは、ハードディスクドライブエミュレーターである請求項11に記載のソリッドステート割り当てモジュール。前記受け取られたデータの前記特性は、入力/出力操作のタイプである請求項10に記載のソリッドステート割り当てモジュール。実行されると、複数の異種のソリッドステートストレージロケーションに関するクラスタイプを受け取るステップ[405]と、前記複数の異種のソリッドステートストレージロケーションの前記クラスタイプ、および入力/出力操作の受け取られた特性を利用して、ストレージロケーションを選択するステップ[410]と、前記入力/出力操作に関連するデータを、受け取りデータ特性ディターミナーによって選択された前記ストレージロケーションにルーティングするステップ[415]とを含む、複数の異種のソリッドステートストレージロケーションを選択的に利用する方法を、コンピューターシステムに実行させるコンピューターが使用できる媒体上の命令。前記複数の異種のソリッドステートストレージロケーションに関するクラスタイプを前記受け取るステップは、オペレーティングシステム[122]を利用して、前記クラスタイプを決定するステップをさらに含む請求項14に記載のコンピューターが使用できる媒体上の命令。前記複数の異種のソリッドステートストレージロケーションの前記クラスタイプ、および入力/出力操作の受け取られた特性を前記利用して、ストレージロケーションを選択するステップは、データ重要度特性を利用するステップをさらに含む請求項14に記載のコンピューターが使用できる媒体上の命令。前記入力/出力操作に関連するデータを、受け取りデータ特性ディターミナー[220]によって選択された前記ストレージロケーションに前記ルーティングするステップは、前記複数の異種のソリッドステートストレージロケーションの集合を表す単一のアドレス指定可能なストレージ名前空間を利用するステップをさらに含む請求項14に記載のコンピューターが使用できる媒体上の命令。前記複数の異種のソリッドステートストレージロケーションの1つに格納されたファイルの属性に、前記ファイルの前記属性に基づいて、アクセスするステップをさらに含む請求項14に記載のコンピューターが使用できる媒体上の命令。前記ファイルの前記属性に基づいて、或る前記複数の異種のソリッドステートストレージロケーションから別の複数の異種のソリッドステートストレージロケーションに前記ファイルを再配置するステップをさらに含む請求項14に記載のコンピューターが使用できる媒体上の命令。前記複数の異種のソリッドステートストレージロケーションを利用することを介してハードディスクドライブをエミュレートするステップをさらに含む請求項14に記載のコンピューターが使用できる媒体上の命令。この説明において参照される図面は、特に明記される場合を除き、一律の縮尺に従わずに描かれているものと理解されたい。次に、添付の図面に実施例が示される、複数の異種のソリッドステートストレージロケーションを選択的に利用するための本技術の実施形態を詳細に参照する。複数の異種のソリッドステートストレージロケーションを選択的に利用するための技術は、様々な実施形態に関連して説明されるが、これらの実施形態は、複数の異種のソリッドステートストレージロケーションを選択的に利用するための本技術を、これらの実施形態に限定することは意図していないことが理解されよう。それどころか、複数の異種のソリッドステートストレージロケーションを選択的に利用するための本技術は、添付の特許請求の範囲によって規定される様々な実施形態の趣旨と範囲に含まれることが可能な代替形態、変形形態、および均等形態を範囲に含むものとされる。さらに、以下の詳細な説明において、複数の異種のソリッドステートストレージロケーションを選択的に利用するための本技術の徹底的な理解をもたらすために、多数の特定の詳細が示される。しかし、複数の異種のソリッドステートストレージロケーションを選択的に利用するための本技術は、これらの特定の詳細なしに実施されることも可能である。その他、よく知られた方法、手続き、構成要素、および回路は、本実施形態の態様を不必要に不明瞭にしないよう、詳細に説明されてはいない。特に明記しない限り、以下の説明から明白なとおり、この詳細な説明の全体にわたって、受け取ること、決定すること、割り当てること、エミュレートすること、サポートすること、分類すること、アクセスすること、動かすこと、利用すること、ルーティングすること、再配置することなどの用語を利用する説明は、コンピューターシステム、または類似した電子コンピューティングデバイスのアクションおよびプロセスを指すものと理解される。このコンピューターシステム、または類似した電子コンピューティングデバイスは、コンピューターシステムのレジスタ内およびメモリー内の物理的電子的量として表されたデータを操作して、コンピューターシステムメモリ内もしくはコンピューターシステムレジスタ内、あるいは他のそのような情報記憶デバイス、情報伝送デバイス、または情報表示デバイスの内部の物理的量として同様に表された他のデータに変換する。複数の異種のソリッドステートストレージロケーションを選択的に利用するための本技術は、例えば、光コンピューターおよび機械コンピューターなどの他のコンピューターシステムの使用にもよく適している。例示的なコンピューターシステム環境次に図1を参照すると、複数の異種のソリッドステートストレージロケーションを選択的に利用するための技術のいくつかの部分は、例えば、コンピューターシステムのコンピューターが使用できる媒体の中に存在するコンピューター可読命令およびコンピューター実行可能命令から成る。つまり、図1は、複数の異種のソリッドステートストレージロケーションを選択的に利用するための本技術の、後段で説明される、実施形態を実施するのに使用されることが可能なタイプのコンピューターの一例を示す。図1は、複数の異種のソリッドステートストレージロケーションを選択的に利用するための本技術の実施形態に従って使用される例示的なコンピューターシステム100を示す。図1のシステム100は、一例に過ぎず、複数の異種のソリッドステートストレージロケーションを選択的に利用するための本技術は、汎用のネットワーク化されたコンピューターシステム、組み込み型コンピューターシステム、ルーター、スイッチ、サーバーデバイス、家庭用デバイス、様々な中間デバイス/人工物、スタンドアロンのコンピューターシステムなどを含む、いくつかの異なるコンピューターシステム上、またはそのようなシステム内で動作することが可能であるものと理解される。図1に示されるとおり、図1のコンピューターシステム100は、例えば、システム100に結合されたフロッピー登録商標ディスク、コンパクトディスクなどの周辺コンピューター可読媒体102を有することによく適している。図1のシステム100は、情報を通信するためのアドレス/データバス104、および情報および命令を処理するためにバス104に結合されたプロセッサー106Aを含む。図1に示されるとおり、システム100は、複数のプロセッサー106A、106B、および106Cが存在するマルチプロセッサー環境にもよく適している。逆に、システム100は、例えば、プロセッサー106Aなどの単一のプロセッサーを有することにもよく適している。プロセッサー106A、106B、および106Cは、様々なタイプのマイクロプロセッサーのいずれであってもよい。また、システム100は、プロセッサー106A、106B、および106Cのための情報および命令を格納するためにバス104に結合された、コンピューターが使用できる揮発性メモリー108、例えば、RAMランダムアクセスメモリーなどのデータストレージフィーチャーも含む。また、システム100は、プロセッサー106A、106B、および106Cのための静的な情報および命令を格納するためにバス104に結合された、コンピューターが使用できる不揮発性メモリー110、例えば、ROM読み取り専用メモリーも含む。やはりシステム100内に存在するのが、情報および命令を格納するためにバス104に結合されたデータストレージユニット112例えば、磁気ディスクおよび磁気ディスクドライブ、または光ディスクおよび光ディスクドライブである。また、システム100は、情報およびコマンド選択をプロセッサー106Aに、またはプロセッサー106A、106B、および106Cに通信するためにバス104に結合された、英数字キーおよびファンクションキーを含むオプションの英数字入力デバイス114も含む。また、システム100は、ユーザーによって入力された情報およびコマンド選択をプロセッサー106Aに、またはプロセッサー106A、106B、および106Cに通信するためにバス104に結合されたオプションのカーソル制御デバイス116も含む。また、本実施形態のシステム100は、情報を表示するためにバス104に結合されたオプションのディスプレイデバイス118も含む。やはり図1を参照すると、図1のオプションのディスプレイデバイス118は、液晶ディスプレイ、陰極線管、プラズマディスプレイデバイス、またはユーザーに認識可能なグラフィックイメージおよび英数字を作成するのに適した他のディスプレイデバイスであることが可能である。オプションのカーソル制御デバイス116は、コンピューターユーザーが、ディスプレイデバイス118の表示スクリーン上で目に見えるシンボルカーソルの動きを動的に伝達することを可能にする。トラックボール、マウス、タッチパッド、ジョイスティック、あるいは所与の方向、または所与の変位の仕方の動きを伝達することができる英数字入力デバイス114上の特殊キーを含め、カーソル制御デバイス116の多くの実施形態が、当技術分野において知られている。代替として、カーソルは、特殊キーおよびキーシーケンスコマンドを使用する英数字入力デバイス114からの入力を介して導かれ、さらに/または活性化され得ることが理解されよう。また、システム100は、例えば、音声コマンドなどの他の手段によって導かれるカーソルを有することにもよく適している。また、システム100は、システム100を外部エンティティーに結合するための入出力デバイス120も含む。例えば、一実施形態では、入出力デバイス120は、システム100と、インターネットなどの、ただし、インターネットには限定されない外部ネットワークとの間で有線通信または無線通信を可能にするためのモデムである。複数の異種のソリッドステートストレージロケーションを選択的に利用するための本技術のより詳細な説明が、後段で見られる。やはり図1を参照すると、システム100に関する他の様々な構成要素が示されている。具体的には、存在する場合、オペレーティングシステム122、アプリケーション124、モジュール126、およびデータ128が、通常、コンピューターが使用できる揮発性メモリー108、例えば、RAMランダムアクセスメモリーとデータストレージユニット122のいずれか、または何らかの組み合わせの中に存在するものとして示される。しかし、一部の実施形態では、オペレーティングシステム122は、ネットワーク上、またはフラッシュドライブ上などの他のロケーションに格納されることが可能であること、さらにオペレーティングシステム122は、例えば、インターネットへの結合を介して遠隔ロケーションからアクセスされることが可能であることが理解される。一実施形態では、複数の異種のソリッドステートストレージロケーションを選択的に利用するための本技術は、例えば、RAM108内部のメモリーロケーション、およびデータストレージユニット112内部のメモリー領域にアプリケーション124またはモジュール126として格納される。また、システム100は、オペレーティングシステム122に結合されたソリッドステート割り当てモジュール130も含む。一実施形態では、ソリッドステート割り当てモジュール130は、オペレーティングシステム122内に組み込まれることが可能であるが、別の実施形態では、ソリッドステート割り当てモジュール130は、オペレーティングシステムと通信するように結合されて、オペレーティングシステムの外部にあることが可能である。さらに別の実施形態では、ソリッドステート割り当てモジュール130は、フラッシュメモリーデバイスである。コンピューティングシステム100は、適切なコンピューティング環境の一例に過ぎず、本技術の用法または機能の範囲について何ら限界を示唆することは意図していない。また、コンピューティング環境100が、例示的なコンピューティングシステム100に示される構成要素のいずれか1つの構成要素または構成要素の組み合わせと関係する依存関係または要件を有すると解釈されるべきでもない。本技術は、コンピューターによって実行される、プログラムモジュールなどのコンピューター実行可能命令の一般的な文脈で説明されることが可能である。一般に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。また、本技術は、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散コンピューティング環境において実施されることも可能である。分散コンピューティング環境では、プログラムモジュールは、メモリーストレージデバイスを含むローカルのコンピューター記憶媒体と遠隔のコンピューター記憶媒体の両方の中に配置されることが可能である。概要概要として、一実施形態では、本技術は、複数の異種のソリッドステートストレージロケーションを選択的に利用するための方法を提供し、したがって、ソリッドステート割り当てモジュールは、低いストレージ当たりの費用比率を可能にする。例えば、オペレーティングシステムが、ソリッドステート割り当てモジュールのクラスタイプレシーバーに、それぞれの異種のソリッドステートストレージロケーションが、どのような種類のデータを保持することを選好するかを記述するクラスタイプを送る。また、オペレーティングシステムは、ソリッドステート割り当てモジュールの受け取りデータ特性ディターミナーに、入力/出力操作に関連するデータを送信する。次に、受け取りデータ特性ディターミナーが、受け取られたデータがいずれのソリッドステートストレージロケーションに属するかを決定する。次に、受け取りデータ特性ディターミナーは、この決定を、ソリッドステート割り当てモジュールの異種ソリッドステートストレージロケーションアロケーターに伝える。次に、異種ソリッドステートストレージロケーションアロケーターが、受け取りデータ特性ディターミナーの命令に従って、受け取られたデータを異種のソリッドステートストレージロケーションに割り当てる。一実施形態では、オペレーティングシステムは、ソリッドステート割り当てモジュールと通信するように結合されるが、別の実施形態は、ソリッドステート割り当てモジュールが、オペレーティングシステム内に完全に組み込まれることを可能にする。さらに、別の実施形態では、ソリッドステート割り当てモジュールは、異種のソリッドステートストレージロケーションと通信するように結合される一方で、リムーバブルなスマートカードなどの単一のユニット内に組み込まれてもいる。別の実施形態では、ソリッドステート割り当てモジュールは、異種のソリッドステートストレージロケーションの外部にあり、異種のソリッドステートストレージロケーションと通信するように結合される。さらに、組み込まれた異種ソリッドステートストレージロケーションアロケーターを有するソリッドステート割り当てモジュールが無い状態で、一実施形態では、オペレーティングシステムが、類似した機能を実行することができる。一実施形態では、ソリッドステートストレージロケーションは、ハードディスクドライブをエミュレートする。別の実施形態では、ソリッドステートストレージロケーションは、少なくとも1つのフラッシュメモリーストレージロケーションを含む。要するに、本技術の実施形態は、複数の異種のソリッドステートストレージロケーションの各ロケーションに関するクラスタイプを受け取るクラスタイプレシーバーと、この受け取られたデータの特性を決定する受け取りデータ特性ディターミナーと、この受け取られたデータの特性に基づいて、その複数の異種のソリッドステートストレージロケーションの1つに、この受け取られたデータを割り当てる異種ソリッドステートストレージロケーションアロケーターとを含む、複数の異種のソリッドステートストレージロケーションを選択的に利用するためのコンピューターによって実施される方法を提供する。ソリッドステート割り当てモジュールに結合された複数の異種のソリッドステートストレージロケーションを使用することにより、本技術は、データの低いストレージ当たりの費用比率を可能にする。アーキテクチャ次に図2Aを参照すると、本技術の一実施形態による、オペレーティングシステムに関連するメモリーを割り当てるための例示的なソリッドステート割り当てモジュールのブロック図が、示されている。一般に、オペレーティングシステム200に関連するメモリーを割り当てるためのソリッドステート割り当てモジュールは、クラスタイプレシーバー210と、受け取りデータ特性ディターミナー220と、異種ソリッドステートストレージロケーションアロケーター230とを含み、以上すべては、ソリッドステートストレージロケーションA240、ソリッドステートストレージロケーションB245、ソリッドステートストレージロケーションC250、およびソリッドステートストレージロケーションn...255と通信するように結合される。さらに、線205は、オペレーティングシステム200からクラスタイプレシーバー210に送られるデータの経路を表す。線225は、オペレーティングシステム200から受け取りデータ特性ディターミナー220に送られるデータの特性を記述する情報の経路を表す。線235は、ソリッドステートストレージロケーションアロケーター230から異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255に送られるデータの経路を表す。さらに、経路205、225、および235は、有線または無線を含むいくつかの仕方で、様々な構成要素を接続することが可能である。一実施形態では、経路205上でクラスタイプレシーバー210は、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255のクラスタイプを受け取るように構成される。クラスタイプレシーバー210は、各ソリッドステートストレージロケーションA240、B245、C250、およびn...255がどのような種類のデータを保持するかを記述するクラスタイプデータを受け取る。ソリッドステートストレージロケーションn...255は、ソリッドステートストレージロケーションA240、B245、およびC250のロケーションの他の、所定の数の異種のソリッドステートストレージロケーションを表す。例えば、ソリッドステートストレージロケーションA240は、1回、書き込まれ、稀にしか読み取られないデータを保持し、ソリッドステートストレージロケーションB245は、稀にしか書き込まれず、頻繁に読み取られるデータを保持し、さらにソリッドステートストレージロケーションC250は、頻繁に書き込まれ、頻繁に読み取られるデータを保持する。さらに、ソリッドステートストレージロケーションn...255は、さらに2つのソリッドステートストレージデバイス、DおよびEというデバイスを表す。ソリッドステートストレージデバイスDは、稀にしか書き込まれず、稀にしか読み取られないデータを保持し、さらにソリッドステートストレージデバイスEは、かなり頻繁に書き込まれ、かなり頻繁に読み取られるデータを保持する。ソリッドステートストレージロケーションA240、B245、C250、およびn...255が保持するデータのタイプは、クラスタイプとして表現される。別の実施形態では、クラスタイプレシーバー210が、2つだけの異種のソリッドステートストレージロケーションA240およびB245に関するクラスタイプを受け取るように構成される。ソリッドステートストレージロケーションA240は、1回、書き込まれ、稀にしか読み取られないデータを保持し、ソリッドステートストレージロケーションB245は、稀にしか書き込まれず、稀にしか読み取られないデータを保持する。ソリッドステートストレージロケーションA240およびB245が保持するデータのタイプは、クラスタイプとして表現される。さらなる一例では、クラスタイプレシーバー210が、3つだけの異種のソリッドステートストレージロケーションA240、B245、およびC250に関するクラスタイプを受け取るように構成される。ソリッドステートストレージロケーションA240は、1回、書き込まれ、稀にしか読み取られないデータを保持し、ソリッドステートストレージロケーションB245は、稀にしか書き込まれず、頻繁に読み取られるデータを保持し、さらにソリッドステートストレージロケーションC250は、頻繁に書き込まれ、頻繁に読み取られるデータを保持する。ソリッドステートストレージロケーションA240、B245、およびC250が保持するデータのタイプは、クラスタイプとして表現される。一実施形態では、受け取りデータ特性ディターミナー220は、オペレーティングシステム200から受け取られたデータの特性を決定するように構成される。受け取りデータ特性ディターミナー220によってオペレーティングシステム200から受け取られるデータは、入力/出力操作のタイプに関連する。例えば、データは、入力/出力操作のタイプに基づいて、以下のクラスに分類されることが可能である。すなわち、11回、書き込まれ、書き込みの後、読み取り専用、2稀にしか書き込まれず、頻繁に読み取られる、および3頻繁に書き込まれ、頻繁に読み取られる、である。1回、書き込まれ、書き込みの後、読み取り専用であるデータの例には、オペレーティングシステムファイルおよびアプリケーションバイナリファイルが含まれる。稀にしか書き込まれず、頻繁に読み取られるデータの例には、ユーザーデータ、設定、ワードファイル、データスプレッドシート、およびアドレス帳が含まれる。頻繁に書き込まれ、頻繁に読み取られるデータの例には、オペレーティングシステムページファイル、オペレーティングシステムファイル、レジストリ、ログ、およびキャッシュが含まれる。受け取りデータ特性ディターミナー220は、経路225上から入力/出力操作に関連するデータの様々なタイプの組み合わせを受け取ることが可能である。例えば、一実施形態では、受け取りデータ特性ディターミナー220は次いで、1回、書き込み、書き込みの後、読み取り専用であることを要求する入力/出力操作に関連するデータ、および頻繁に書き込み、頻繁に読み取ることを要求する入力/出力操作に関連するデータを受け取る。別の実施形態では、受け取りデータ特性ディターミナー220は、稀にしか書き込まず、頻繁に読み取ることを要求する入力/出力操作に関連するデータ、および頻繁に書き込み、頻繁に読み取ることを要求する入力/出力操作に関連するデータを受け取る。例えば、以下のソリッドステートストレージロケーションA240、B245、C250、およびn...255の少なくとも2つに関するクラスタイプ、ならびにオペレーティングシステム200からの入力/出力操作に関連するデータを受け取った後、受け取りデータ特性ディターミナー220は次いで、入力/出力操作に関連する受け取られたデータを、いずれのソリッドステートストレージロケーションA240、B245、C250、およびn...255に入れるかを決定する。この決定は、各ソリッドステートストレージロケーションのクラスタイプと互いに関係する、オペレーティングシステム200からの受け取られたデータに基づく。次に、受け取りデータ特性ディターミナー220は、この決定を異種ソリッドステートストレージロケーションアロケーター230に伝える。一実施形態では、異種ソリッドステートストレージロケーションアロケーター230が、受け取られたデータの特性に基づいて、複数の異種のソリッドステートストレージロケーションの1つに、オペレーティングシステム200から受け取られたデータを割り当てるように構成される。異種ソリッドステートストレージロケーションアロケーター230は、この受け取られたデータを、経路225に沿って、以下のソリッドステートストレージロケーションA240、B245、C250、およびn...255の少なくとも2つに送る。本技術において、クラスタイプレシーバー210、受け取りデータ特性ディターミナー220、および異種ソリッドステートストレージロケーションアロケーター230が、或るモジュール内部で組み合わされて、ただし、ソリッドステートストレージロケーションA240、B245、C250、およびn...255を含む別個のモジュールと通信するように結合されて現れるようにすることが可能である。さらに、本技術の別の例は、クラスタイプレシーバー210、受け取りデータ特性ディターミナー220、および異種ソリッドステートストレージロケーションアロケーター230が、互いに通信するように結合されているが、別々のモジュールの中に存在している一方で、それでも、ソリッドステートストレージロケーションA240、B245、C250、およびn...255と通信するように結合されているようにすることが可能である。一実施形態では、異種ソリッドステートストレージロケーションアロケーター230が、他のソリッドステートストレージロケーションA240、B245、C250、およびn...255に加え、フラッシュメモリーストレージモジュールに、受け取られたデータを割り当てる。さらに別の実施形態では、異種ソリッドステートストレージロケーションアロケーター230が、ハードディスクドライブエミュレーターであるフラッシュメモリーストレージモジュールに、受け取られたデータを割り当てる。本技術の実施例において、ソリッドステート割り当てモジュール215が、単一のストレージロケーション260上で組み合わされるように、ソリッドステートストレージロケーションA240、B245、C250、およびn...255と通信するように結合される。この単一のストレージロケーションは、リムーバブルなカードであることが可能である。コンピューターチップが、このリムーバブルなカード内に組み込まれる。このコンピューターチップは、ソリッドステート割り当てモジュール215と異種ソリッドステートストレージロケーションアロケーター230の組み合わせを含む。このリムーバブルなカードの挿入は、ユーザーが、コンピューターデバイスの中に、ソリッドステートストレージロケーションA240、B245、C250、およびn...255と通信するように結合されたソリッドステート割り当てモジュール215を挿入することを可能にする。リムーバブルなカードが挿入されると、ソリッドステート割り当てモジュール215は、コンピューターデバイスのオペレーティングシステム200と通信するように結合されているようになる。次に図2Bを参照すると、本技術の一実施形態による、オペレーティングシステム200に関連するメモリーを割り当てるための例示的なソリッドステート割り当てモジュールのブロック図が、示されている。一般に、オペレーティングシステム200に関連するメモリーを割り当てるためのソリッドステート割り当てモジュールは、クラスタイプレシーバー210、受け取りデータ特性ディターミナー220、異種ソリッドステートストレージロケーションアロケーター230、ソリッドステートストレージロケーションA240、ソリッドステートストレージロケーションB245、ソリッドストレージロケーションC250、およびソリッドステートストレージロケーションn...255を含む。さらに、線235は、ソリッドステートストレージロケーションアロケーター230から異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255に送られるデータの経路を表す。さらに、経路235は、有線または無線を含むいくつかの仕方で、異種ソリッドステートストレージロケーションアロケーター230をソリッドステートストレージロケーションA240、B245、C250、およびn...255に接続することが可能である。一実施形態では、ソリッドステート割り当てモジュール215は、オペレーティングシステム200内に組み込まれるが、ソリッドステートストレージロケーションA240、B245、C250、およびn...255と通信するように外部から結合される。さらに、異種ソリッドステートストレージロケーションアロケーター230が、ソリッドステート割り当てモジュール220内で実施され、組み込まれること、またはオペレーティングシステム200の一部としてソフトウェアで実施されることが可能である。さらに、ソリッドステートストレージロケーションA240、B245、C250、およびn...255は、オペレーティングシステム200に外部から結合される。動作次に図3を参照すると、本技術の一実施形態による、複数の異種のソリッドステートストレージロケーションを選択的に利用するためのコンピューターによって実施される例示的な方法の流れ図300が、示されている。次に図3の305、および図2Aを参照すると、一実施形態が、複数の異種のソリッドステートストレージロケーションのそれぞれに関するクラスタイプを受け取る。本明細書で説明されるとおり、本技術の別の実施形態では、経路205に沿って送られるクラスタイプが、クラスタイプレシーバー210によって受け取られる。一般に、クラスタイプは、各ソリッドステートストレージロケーションA240、B245、C250、およびn...255が、どのような種類のデータを保持するかを記述する。ソリッドステートストレージロケーションn...255は、ソリッドステートストレージロケーションA240、B245、およびC250のロケーションの他の、所定の数の異種のソリッドステートストレージロケーションを表す。本技術の一実施形態は、オペレーティングシステム200を利用してクラスタイプを決定することによって、複数の異種のソリッドステートストレージロケーションに関するクラスタイプを受け取る305。オペレーティングシステム200が、ソリッドステート割り当てモジュール215と通信するように結合され、モジュール215の外部にあることが可能であり、あるいはソリッドステート割り当てモジュール215が、オペレーティングシステム200内に組み込まれることが可能である。次に、クラスタイプレシーバー210が、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255の各ロケーションのクラスタイプを受け取りデータ特性ディターミナー220に伝える。次に図3の310、および図2Aを参照すると、一実施形態が、受け取られたデータの特性を決定する310。本明細書で説明されるとおり、本技術の別の実施形態では、受け取られたデータの特性を決定すること310は、入力/出力操作に関連する受け取られたデータを、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255のそれぞれに関するクラスタイプに対応する少なくとも1つのクラスに分類することを含む。入力/出力操作に関連する、この受け取られたデータは、オペレーティングシステム200から経路225に沿って受け取りデータ特性ディターミナー220に送られた。さらに、受け取りデータ特性ディターミナー220が、ソリッドステートストレージロケーションA240、B245、C250、およびn...255への、この受け取られたデータの割り当てを決定した後、受け取りデータ特性ディターミナー220は、この決定を異種のソリッドステートストレージロケーションアロケーター230に通信する。本技術の別の実施形態では、受け取られたデータの特性を決定すること310は、データ重要度特性を利用することを含む。データ重要度特性は、このデータを保持するのにどのようなタイプのメモリーが要求されるかを記述する役割をする、入力/出力操作に関連するデータの態様を含む。例えば、オペレーティングシステム200は、入力/出力操作に関連するデータを、経路225に沿って受け取り特性ディターミナー220に送る。受け取り特性ディターミナー220は、このデータを、以下の特性に従ってグループに分割する。すなわち、11回、書き込まれ、書き込まれた後、読み取り専用であるデータ、2稀にしか書き込まれず、頻繁に読み取られるデータ、および3頻繁に書き込まれ、頻繁に読み取られるデータである。次に、受け取りデータ特性ディターミナー220は、クラスタイプレシーバー210から受け取られたソリッドステートストレージロケーションのクラスタイプに基づいて、これらのグループ化された、受け取られたデータのそれぞれが、いずれのソリッドステートストレージロケーションA240、B245、C250、およびn...255に送られるかを決定する。例えば、オペレーティングシステム200が、ソリッドステートストレージロケーションA240は、稀にしか書き込まれず、頻繁に読み取られるデータのためのストレージロケーションであるという情報をクラスタイプレシーバー210に送る。オペレーティングシステム200は、ソリッドステートストレージロケーションA240、B245、C250、およびn...255のいずれか1つに格納されることが意図される、入力/出力操作に関連するデータを、経路225を介して受け取りデータ特性ディターミナー220に送る。受け取りデータ特性ディターミナー220は、これらの入力/出力操作に関連するデータのタイプを決定する。次に、受け取りデータ特性ディターミナー220は、受け取られたデータの或るパーセンテージが、稀にしか書き込まれず、頻繁に読み取られるデータであることを決定する。次に、データ特性ディターミナー220は、この稀にしか書き込まれず、頻繁に読み取られる受け取られたデータが、ソリッドステートストレージロケーションA240に割り当てられるべきことを、このストレージロケーションが、稀にしか書き込まれず、頻繁に読み取られるデータを保持するように構成されているので、決定する。次に図3の315、および図2Aを参照すると、一実施形態が、受け取りデータ特性ディターミナー220によって決定された特性に基づいて、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255の1つに、受け取られたデータを割り当てる。受け取られたデータは、異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255の少なくとも2つに送られる。受け取られたデータの特性に基づいて、複数の異種のソリッドステートストレージロケーションの1つに、受け取られたデータを割り当てること315は、受け取りデータ特性ディターミナー220が、ファイルの属性にアクセスした後、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255の1つから、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255の別の1つにファイルを移すことを含み、このファイルは、このファイルの前記属性に基づいて、複数の異種のソリッドステートストレージロケーションの1つに格納される。ファイルの属性には、コンピューターの使用中にファイルにどれだけ頻繁にアクセスが行われたか、本日の操作に、このファイルがどれだけ重要であるか、このファイルのサイズなどのデータ、ならびに入力/出力操作に関連するデータが含まれる。一般に、受け取りデータ特性ディターミナー220は、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255内に格納されたデータの属性を監視する能力を有する。受け取りデータ特性ディターミナー220が、ソリッドステートストレージロケーションA240、B245、C250、およびn...255の1つに格納されたファイルにアクセスし、そのファイルの属性が、ソリッドステートストレージロケーションA240、B245、C250、およびn...255の異なるロケーションに、そのファイルが移されるようにすることを決定した場合、その際、受け取りデータ特性ディターミナー220は、この決定を異種ソリッドステートストレージロケーションアロケーター230に伝える。さらに、異種ソリッドステートストレージロケーションアロケーター230が、或るファイルが、ソリッドステートストレージロケーションA240、B245、C250、およびn...255の異なるロケーションに移される必要が或るという通信を、受け取りデータ特性ディターミナー220から受け取った後、異種ソリッドステートストレージロケーションアロケーター230は、これらの命令に従う。異種ソリッドステートストレージロケーションアロケーター230は、ソリッドステートストレージロケーションA240、B245、C250、およびn...255の中に入り込み、受け取りデータ特性ディターミナー220の命令に従って、それらのファイルを再配置する。例えば、データファイルが、6ヶ月の期間にわたって読み取られていないものとする。また、受け取りデータ特性ディターミナー220も、このデータファイルが、6ヶ月の期間にわたって読み取られていないことを認識する。また、このファイルは、偶々、稀にしか書き込まれず、頻繁に読み取られるデータを収容するソリッドステートストレージロケーションに現在、存在している。このデータファイルは、或る期間にわたって、もはや頻繁に読み取られていないので、受け取りデータ特性ディターミナー220は、稀にしか書き込まれず、稀にしか読み取られないデータを収容するソリッドステートストレージロケーションn...255にこのデータファイルを入れることによって、このデータファイルを再配置するよう異種ソリッドステートストレージロケーションアロケーター230に命令する。さらに、組み込まれたディターミナーを有するソリッドステート割り当てモジュール215が存在しない状態で、一実施形態では、オペレーティングシステム200が、ソリッドステート割り当てモジュール215と同様の機能を実行することが可能である。例えば、オペレーティングシステム200に、2つより多くの不揮発性ソリッドステートストレージロケーションn...255が接続されているものとする。その場合、オペレーティングシステム200は、ハードウェアベースの異種ソリッドステートストレージロケーションアロケーター230が決定を行うのと同一の仕方で、いずれのソリッドステートストレージロケーションn...255にデータブロックを格納するかの決定を行うことができる。図3および図2Aを再び参照すると、複数の異種のソリッドステートストレージロケーション300を選択的に利用するためのコンピューターによって実施される方法の別の実施形態、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255が、ハードディスクドライブをエミュレートする。一実施形態では、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255は、ハードディスクドライブをエミュレートして、ハードディスクドライブに実質的に取って代わる。別の実施形態では、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255は、ハードディスクドライブの一部分をエミュレートする。本技術の別の実施例において、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255は、オペレーティングシステム200をサポートする。ソリッドステート割り当てモジュール215が、オペレーティングシステム200と通信するように結合される。別の実施形態では、ソリッドステート割り当てモジュール215が、オペレーティングシステム200内に組み込まれる。また、ソリッドステート割り当てモジュール215は、ソリッドステートストレージロケーションA240、B245、C250、およびn...255と通信するように結合される。ソリッドステートストレージロケーションA240、B245、C250、およびn...255は、オペレーティングシステム200のためのメモリー記憶空間の役割をする。別の実施例において、オペレーティングシステム200をサポートする複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255が、少なくとも1つのフラッシュメモリーストレージロケーションを含む。例えば、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255のうち、ソリッドステートストレージロケーションA240が、フラッシュメモリーストレージロケーションであるのに対して、ソリッドステートストレージロケーションB245、C250、およびn...255は、他の何らかのタイプのソリッドステートストレージロケーションである。別の例示的な方法において、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255のすべてが、フラッシュメモリーストレージロケーションである。さらに、別の実施例では、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255のうち、ソリッドステートストレージロケーションA240およびB245が、フラッシュメモリーストレージロケーションであるのに対して、ストレージロケーションC250およびn...255は、他の何らかのタイプのソリッドステートストレージロケーションである。次に図4を参照すると、本技術の一実施形態による、実行された際、複数の異種のソリッドステートストレージロケーションを選択的に利用する方法をコンピューターシステムに実行させる、コンピューターが使用できる媒体上の命令の流れ図400が、示されている。図4の405、および図2Aを参照すると、一実施形態が、複数の異種のソリッドステートストレージロケーションに関するクラスタイプを受け取る405。複数の異種のソリッドステートストレージロケーションに関するクラスタイプを受け取ること405は、複数の異種のソリッドステートストレージロケーションに関するクラスタイプを受け取ること305と同様である。複数の異種のソリッドステートストレージロケーションに関するクラスタイプを受け取ること305に関するここでの説明は、複数の異種のソリッドステートストレージロケーションに関するクラスタイプを受け取ること405に当てはまるので、簡明のため、これらの説明は、繰り返されない。図4の410、および図2Aを参照すると、一実施形態が、複数の異種のソリッドステートストレージロケーションのクラスタイプ、および入力/出力操作の受け取られた特性を利用して、ストレージロケーションを選択する410。複数の異種のソリッドステートストレージロケーションのクラスタイプ、および入力/出力操作の受け取られた特性を利用して、ストレージロケーションを選択すること410は、受け取られたデータの特性を決定すること310と同様である。受け取られたデータの特性を決定すること310に関するここでの説明は、複数の異種のソリッドステートストレージロケーションのクラスタイプ、および入力/出力操作の受け取られた特性を利用して、ストレージロケーションを選択すること410に当てはまるので、簡明のため、これらの説明は、繰り返されない。さらに、図4の410、および図2Aを参照すると、一実施形態では、複数の異種のソリッドステートストレージロケーションのクラスタイプ、および入力/出力操作の受け取られた特性を利用して、ストレージロケーションを選択すること410は、アクセス頻度特性を利用することをさらに含む。このアクセス頻度特性は、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255の1つが、どれだけ頻繁に書き込まれ、さらに/または読み取られるかを記述するデータを指す。例として、異種のソリッドステートストレージロケーションA240が、稀にしか書き込まれず、頻繁に読み取られるべきファイル用のメモリー空間を含むものとする。また、異種のソリッドステートストレージロケーションA240に格納されたファイルが、前年に1回だけしか読み取られていないものとする。受け取りデータ特性ディターミナー220は、所定の命令に応じて、このファイルを異種のソリッドステートストレージロケーションB245に移すことを、異種のソリッドステートストレージロケーションB245が、稀にしか書き込まれず、稀にしか読み取られないファイル用のメモリー空間を含むので、決定することができる。次に図4の415、および図2Aを参照すると、一実施形態が、入力/出力動作に関連するデータを選択されたストレージロケーションにルーティングする415。別の実施形態では、入力/出力操作に関連するデータを選択されたストレージロケーションにルーティングすること415は、複数の異種のソリッドステートストレージロケーションn...255の集合を表す単一のアドレス指定可能なストレージ名前空間を利用することをさらに含む。例えば、異種ソリッドステートストレージロケーションアロケーター230が、複数のソリッドステートストレージロケーションn...255に関する単一のストレージ名前空間だけを公開する。その結果、バックアップシステムまたはオペレーティングシステム200のようなアプリケーションには、個別の各ソリッドステートストレージロケーションA240、B245、C250、および/またはn...255ではなく、すべてのソリッドステートストレージロケーションn...255を表す単一のアドレス指定可能なストレージ名前空間だけが見える。入力/出力操作に関連するデータを選択されたストレージロケーションにルーティングすること415は、受け取られたデータの特性に基づいて、複数の異種のソリッドステートストレージロケーションの1つに、受け取られたデータを割り当てること315と同様である。受け取られたデータの特性に基づいて、複数の異種のソリッドステートストレージロケーションの1つに、受け取られたデータを割り当てること315に関するここでの説明は、入力/出力操作に関連するデータを選択されたストレージロケーションにルーティングすること415に当てはまるので、簡明のため、これらの説明は、繰り返されない。このように、本技術は、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255を選択的に利用するためのコンピューターによって実施される方法を提供する。さらに、入力/出力操作に関連する様々なデータに適した複数の異種のソリッドステートストレージロケーションを本技術が可能にすることは、メモリー空間における格納されたデータのストレージ当たりの費用比率の低減を可能にする。さらに、本技術は、複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255、または以上の何らかの組み合わせが、ハードディスクドライブをエミュレートすることを可能にする。さらに、本技術は、フラッシュメモリー記憶空間の使用が、任意の数の複数の異種のソリッドステートストレージロケーションA240、B245、C250、およびn...255として使用されることを可能にする。主題は、構造上の特徴、および/または方法論上の動作に特有の言葉で説明されてきたが、添付の特許請求の範囲において規定される主題は、前述した特定の特徴または動作に必ずしも限定されないことを理解されたい。むしろ、前述した特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示されている。