データストレージシステムであって、利用可能な状態および利用不可能な状態に置かれえ、第1範囲の論理アドレスを有する第1不揮発性マスストレージデバイス、前記第1不揮発性マスストレージデバイスよりもより高速なアクセスタイムおよびより低い容量を有し、第2範囲の論理アドレスを有する第2不揮発性マスストレージデバイス、および前記第1不揮発性マスストレージデバイスが前記利用不可能な状態であるときに、前記第2不揮発性マスストレージデバイス内でデータにアクセスでき、前記第1不揮発性マスストレージデバイスが前記利用可能な状態にあるときに前記第1および第2不揮発性マスストレージデバイスの両方の中でデータにアクセスするよう動作可能であるストレージコントローラを備え、前記第1不揮発性マスストレージデバイスと、前記第2不揮発性マスストレージデバイスとに、ホストから供給されたデータを並行して書き込む、データストレージシステム。前記第1不揮発性マスストレージデバイスは、前記データの全てが前記第2不揮発性マスストレージデバイスに記憶される前に、前記データを記憶し、前記データストレージシステムは、前記データの全てが前記第2不揮発性マスストレージデバイスに記憶される前に、前記データに従って動作し始める、請求項1に記載のデータストレージシステム。マスストレージデバイスを改良する継続された努力がなされている。本発明は、2つの不揮発性マスストレージデバイスおよびストレージコントローラを含みえるデータストレージシステムを提供する。第2不揮発性マスストレージデバイスは、第1不揮発性マスストレージデバイスよりもより高速なアクセスタイムおよびより小さい容量を有する。2つの不揮発性マスストレージデバイスは、重複するアドレス範囲を有する。換言すれば、データの一部は、両方のマスストレージデバイス上で利用可能でありえる。ある局面において、第1不揮発性マスストレージデバイスは、利用可能な状態および利用不可能な状態に置かれえる。第1マスストレージデバイスがその利用不可能な状態にあるとき、ストレージコントローラは、第2マスストレージデバイスだけにアクセスする。利用不可能な状態は、そのデバイスが物理的に利用不可能である例えば取り外されているか、または単にストレージコントローラが、利用可能な状態にそれが戻るまで、それにアクセスしないかを意味する。第1マスストレージデバイスが利用可能な状態にあるとき、ストレージコントローラは、第1マスストレージデバイスまたは第2マスストレージデバイスのいずれかにアクセスするよう動作可能である。他の局面において、ストレージコントローラは、入ってくるデータを第1不揮発性マスストレージデバイスまたは第2不揮発性マスストレージデバイスのいずれかに導く。もしデータが第2マスストレージデバイスに導かれるなら、そのデータは後に第2マスストレージデバイスから第1マスストレージデバイスにコピーされる。どの不揮発性マスストレージデバイスに入ってくるデータが導かれるかの前記ストレージコントローラの選択は、前記第1不揮発性マスストレージデバイスへコピーされていない前記第2不揮発性マスストレージデバイス中のデータ量に少なくとも部分的には依存する。他の局面において、ストレージコントローラは、前記第2不揮発性マスストレージデバイス中に記憶されるデータによって、またはもしリクエストされたデータが前記第2不揮発性マスストレージデバイス中に存在しないなら、前記第1不揮発性マスストレージデバイス中に記憶されるデータによって、外部データリクエストを満足させる。本発明の他の局面および優位性は、添付の図面と併せて以下の詳細な説明から明らかになろう。図面は例示的に本発明の原理を示す。本発明は、添付の図面と併せて以下の詳細な説明によって容易に理解されよう。図面において同様の参照番号は同様の構成要素を示すことが理解されよう。また図中の描写は必ずしも正しい縮尺ではないことが理解されよう。以下の記載において、本発明の完全な理解を提供するために多くの具体的な詳細が述べられる。しかし、本発明はこれら特定の詳細の一部または全てがなくても実施されえることが当業者には明らかだろう。あるいは、よく知られたプロセスステップは、本発明を不必要にぼかさないために詳細には記載されていない。本発明は、それぞれ長所および短所を有する2つの別個のマスストレージデバイスを組み合わせることによって、補助メモリともふつう呼ばれる、従来のマスストレージデバイスを一般に改良する。例えばフラッシュマスストレージデバイスフラッシュメモリシステムがハードドライブと比較されるとき、フラッシュメモリシステムは、より衝撃に強く、可動部品なしに動作できるためにより携帯アプリケーションに望ましい。フラッシュメモリシステムは、ハードドライブより高速なアクセスタイムを有するが、一般にはそれは同じ値段のハードドライブの記憶容量を有しない。加えて、フラッシュメモリシステムは、フラッシュメモリシステムをある期間、アクセス不能にする、周期的なガーベジコレクション動作を典型的には要求する。本発明の改良されたマスストレージデバイスは、ある状況についてどのデバイスがより適するかに依存して、フラッシュメモリシステムまたはハードドライブのいずれかを用いる。当業者には理解されるように、一方が他方よりも、より高速なアクセスタイムを有し、より小さい容量を有する限り、任意の2つの不揮発性マスストレージデバイスが本発明においては用いられえる。いくつかの異なる優位性が、改良されたマスストレージデバイスで得られうる。ある実施形態において、改良されたマスストレージデバイスは、高速なシステムブートおよび高速なアプリケーションスタートアップを提供しえる。オペレーティングシステムおよびコンフィギュレーションファイルのような、そのブートプロセスのあいだにホストシステムによって要求される情報は、フラッシュメモリシステム内に記憶されえ、オプションとして2つ目のコピーがハードドライブ内に記憶される。このようなシステムにおいては、フラッシュメモリシステムは、不揮発性リードキャッシュとして用いられえ、その高速ランダムリードアクセス特性のためにより高速なシステムスタートアップが可能になる。この情報は、頻繁にリードされる情報として初期的に特定されえ、その初期アクセスのあいだにハードドライブからフラッシュメモリシステムへコピーされえる。このような情報は、マスストレージデバイス中のフラッシュメモリシステムを用いる他のアプリケーションによってオーバライトされることを防ぐためにプロテクトされえる。アプリケーションソフトウェアファイルは、アプリケーションの高速スタートアップを提供するために同じように取り扱われえる。他の実施形態において、改良されたマスストレージデバイスは、低電力ストレージデバイスとして働きえる。この改良されたマスストレージデバイスは、フラッシュメモリシステムにおいて最近にアクセスされた情報のコピーを、最近に書き込まれた情報のコピーと共に保持することによって、フラッシュメモリシステムをリード/ライトキャッシュとして用いえる。このデバイスは、携帯アプリケーションにおける電力を低減し、フラッシュメモリの低電力特性を利用するために、それから磁気ハードディスクをスピンダウンでき、一方、フラッシュメモリ中のキャッシュヒットによって要求された情報についての高速レスポンスの高い確率を維持できる。同様に、改良されたマスストレージデバイスは、ショック耐性のストレージデバイスであることの優位性をも提供しえる。高い機械的衝撃のリスクがある状況において磁気ハードディスクをスピンダウンすることは、半導体メモリの高衝撃耐性の優位性を与え、一方で、フラッシュメモリシステム中に記憶された情報で動作可能性を保持する。改良されたマスストレージデバイスのさらに他の潜在的優位性は、短期バックアップを持つ高度に信頼性の高い記憶デバイスを提供するその能力である。もしフラッシュメモリシステムが最近に書き込まれた情報をライトキャッシュとしてのフラッシュメモリシステム中に保持するなら、この情報は、それがハードドライブに転送された後でもフラッシュメモリシステムに保持される。もし情報ができるだけ長く保持され、かつスペースが必要なときだけオーバライトされるなら、ライトキャッシュは、最近に書き込まれた情報の第2コピーによるセキュリティを提供する。したがって改良されたマスストレージデバイスは、ディスククラッシュのような機械的故障による、まだバックアップがとられていない最近に書き込まれた情報のロスに対して保護するために、半導体メモリの高衝撃耐性を利用する高信頼性ストレージデバイスを生みえる。図1Aは、本発明を利用しえる例示的汎用コンピュータシステム100を示す。要素は、コンピュータ105、マウス110およびキーボード115のようなさまざまな入力デバイス、およびモニタ120およびプリンタ125のようなさまざまな出力デバイスを含む。図1Bは、その本質的な要素を示す図1Aのコンピュータシステム100の要約された表現を示す。単一の要素130は、マウスおよびキーボードのようなユーザがコンピュータシステム100と相互対話することを可能にする入力デバイスを示す。同様に、単一の要素135は、モニタおよびプリンタのようなコンピュータシステム100が達成したことを表示する出力デバイスを示す。コンピュータシステム100の中心は、中央処理ユニットCPU140であり、命令を実行する要素である。メインメモリ145は、典型的には揮発性であり、CPU140に実行されるべき命令およびその命令によって操作されるべきデータを提供する。これらの要素130、135、140、および145はこの技術分野ではよく知られている。改良されたマスストレージデバイス150は、コンピュータ100が持続的に大量のデータを保持することを可能にする。要素130、135、140、145、および150は、互いにホストバス155を介して情報を交換できる。図2Aは、本発明の例示的実施形態による改良されたマスストレージデバイス150Aを示す。2つのマスストレージデバイス、フラッシュメモリシステム205およびハードドライブ210は、並列に接続される。フラッシュメモリシステム205は、フラッシュメモリアレイ215およびフラッシュコントローラ220を含む。ハードドライブ210は、磁気ハードディスク225およびディスクコントローラ230を含む。それぞれのコントローラ220および230は、それぞれのメモリタイプについて特定の動作を管理する。例えば、フラッシュコントローラ220は、全てのデータセクタの論理物理マッピングおよび全てのフラッシュメモリ管理を制御し、それによりフラッシュコントローラ220およびフラッシュメモリアレイ215の間のインタフェース250が物理的なインタフェースになるようにする。ディスクコントローラ230は、リードおよびライトのための磁気ハードディスク225の動作を管理する。コントローラ220および230の両方は、論理インタフェース260および265を介してルータ235に接続する。他の実施形態において、コントローラ220および230の機能は、統合化されたコントローラデバイスにおいて、ルータ235と共にマージされる。このデバイスは、記憶コントローラ245およびホストインタフェース240も含みえる。しかし、このようなコンフィギュレーションは、新しいコントローラユニットの製造を必要とする。したがって、コントローラ220および230のうちのいずれかまたは両方は、単にメモリデバイス中には含まれない。このようなコンフィギュレーションは新しい制御回路が開発されることを必要とするが、要求される全要素の数も減らしえる。図2Aにおいて、ホストインタフェース240およびストレージコントローラ245は、両方ともルータ235の上流に配置され、ルータは、データおよび制御情報が、ホストインタフェース240と、ディスクコントローラ230またはフラッシュコントローラ220のいずれかとの間でいずれかの方向へ渡されることを可能にする。加えて、ルータ235は、ディスクコントローラ230およびフラッシュコントローラ220の間でいずれかの方向へデータの転送を制御しえる。このような転送は、スタンドアローン動作としてなされえる。代替として、このような転送は、ホストインタフェース240およびマスストレージコントローラ220または230のうちの1つの間でいずれかの方向へのデータ転送と共になされえる。ルータ235は、このようなデータ転送についての制御論理を組み込みえる。ホストインタフェース240は、ホストバス155への直接インタフェースを提供し、ホストバス155上で用いられる特定のプロトコルについての全てのサポートを提供しえる。ホストインタフェース240、ディスクコントローラ230および磁気ハードディスク225によって形成されるサブシステムは、ホストインタフェース240、フラッシュコントローラ220およびフラッシュメモリアレイ215によって形成されるサブシステムと共に、それぞれ完全なマスデータストレージシステムを形成する。ルータ235は、ホストインタフェース240から変更を加えることなくデータおよび制御信号を通しえ、またはコントローラ220および230と通信するための代替のプロトコルを確立しえる。ルータ235およびマスストレージコントローラ220または230間のインタフェース260および265は、ATAのような標準的プロトコルでありえ、または改良されたマスストレージデバイス150のために定義された特別なインタフェースでありえる。インタフェース260および265は典型的には、フラッシュメモリシステム205およびハードドライブ210中のデータの個別のセクタにランダムリードおよびライトアクセスを提供する論理インタフェースであり、それぞれの記憶メディアの物理的特性に依存しない。加えて、フラッシュコントローラ220は、フラッシュメモリアレイ215の予約された領域への直接アクセスを行うために、インタフェース260上で特別のコマンドまたは操作をサポートしえ、これはストレージコントローラ245によって用いられるテーブルおよび情報ログの記憶のために用いられえる。代替として、ストレージコントローラ245は、そのようなテーブルおよびログのためのそれ自身の不揮発性メモリを有してもよい。ストレージコントローラ245は、ホストインタフェース240およびマスストレージコントローラ220および230の間の情報の転送を指令するインテリジェントコントロールユニットである。ストレージコントローラ245は、フラッシュメモリシステム205またはハードドライブ210へのデータの記憶またはそれからのデータのリードを調整する。ストレージコントローラ245は、フラッシュメモリアレイ215中に記憶された情報、実施形態によっては磁気ハードディスク225中に記憶された情報のためのアドレステーブルを保持する。揮発性メモリは、ホストインタフェース240、ルータ235、フラッシュコントローラ220またはディスクコントローラ230を含む改良されたマスストレージデバイス150の要素の多くにおいてバッファまたはキャッシュメモリとして機能する。単一の揮発性メモリがさまざまな要素において動作するようスケジューリングされてもよく、または別個の揮発性メモリ群がそれぞれの要素の専用として機能してもよい。図2Bは、改良されたマスストレージデバイスの代替の実施形態150Bである。論理インタフェース260はなくされ、フラッシュメモリアレイ280へ直接の物理インタフェース275によって置き換えられている。フラッシュメモリアレイ280の直接制御は、統合化されたコントローラ285によって実現され、このコントローラは、ストレージコントローラ245およびルータ235の両方の機能を実行しえる。この実施形態において、フラッシュコントローラ220の機能は必要とされず、フラッシュメモリアレイ280は、論理データ記憶デバイスの一部を形成しないが、物理記憶として直接に用いられる。これはデータのストリームの一時記憶には特に適する。図3は、リングバッファ300の形態の、フラッシュメモリアレイ280中のデータのストリームにおけるセクタの記憶を整理する一方法を示す。データのセクタを書き込む現在の位置は、ライトポインタ305によって定義され、これは無限サイクルとしてアドレス空間を通して図3の時計回りに移動する。アドレス空間は、メタブロック例えば310および315によって定義され、これらは、所定の順序で、またはライトポインタ305が完全なメタブロックから新しい消去されたメタブロックへ移動するときに動的に決定される順序で、リンクされる例えば320。消去ポインタ325は、無限サイクルとしてアドレス空間を通して同様に図3で時計回りに移動する。消去ポインタ325によって特定されたメタブロックは、新しいデータセクタの記憶のために、ライトポインタ305の前に少数の消去されたメタブロックのプールが維持されるような速度で消去されていく。消去されるブロックは、リングバッファ300中では最も古く書き込まれたデータを含む。改良されたマスストレージデバイス150は、磁気ハードドライブ210から読み出された全てのデータのコピーを記憶するフラッシュメモリシステム205をリードキャッシュとして用いることによってその2つの性質を利用しえる。フラッシュメモリシステム205は、リードキャッシュとしてアロケートされたその論理アドレス空間の領域を有するか、またはその機能のためだけに設けられたその論理アドレス空間を有するかのいずれでもよい。論理アドレス空間の特定された領域内のキャッシュされたデータを記憶する位置は、サイクリックバッファを定義するライトアドレスポインタをインクリメントすることによって決定されえ、または磁気ハードドライブ210内のデータの論理アドレスの決定関数でありえる。代替として、マスストレージデバイス150Bにおいて、リングバッファ300は、磁気ハードドライブ210から読み出された全てのデータのコピーを、ライトポインタによって定義される位置において記憶するのに用いられえる。したがって、最近読み出されたデータは、常にリングバッファ300内に存在し、一方、古いデータは、その関連するメタブロックが消去ポインタによって特定されるとき消去される。代替として、ディスクデバイスから読み出されるデータは、リードキャッシュへと選択的にコピーされえる。これは、データが読み出される頻度、読み出されるファイルの性質、または他のなんらかの基準に基づいてなされえる。他の実施形態において、改良されたマスストレージデバイス150は、ライトキャッシュとして機能するそのフラッシュメモリシステム205と共に動作しえる。リードキャッシュについて前述のものと同様のサイクリックバッファが、ホストバス155から供給されるデータをハードドライブ210に書き込むのと並列して記憶するのに用いられえる。このようにして、入ってくるデータは、改良されたマスストレージデバイス150において記憶され、もし唯一のマスストレージデバイスが単一の磁気ハードドライブ210だったときに可能であろう場合よりも、システム100がそのライト動作をより速く完了することを可能にする。データがホストシステムバス155上で送られることを停止するとき、まだ改良されたマスストレージデバイス150は、フラッシュメモリシステム205から磁気ハードドライブ210へデータの転送を完了しなければならないが、CPU140は、データがその最終的な宛先に到達したように振る舞いえる。この転送は、典型的には、マスストレージデバイス150がそうでなければ使われていないときに起こる。しかし、もしフラッシュメモリシステム205が単一のサイクル中にリードおよびライトを行う機能を有するなら例えば、デュアルポインタメモリ構造を用いる、この転送は、フラッシュメモリシステム205へのライトのあいだに起こりえる。システムパフォーマンスの全体的な向上は、フラッシュメモリシステム205の容量およびどの程度頻繁に改良されたマスストレージデバイス150がアクセスされるかの両方に依存する。マスストレージデバイスとして適さない小さな容量のフラッシュは、単にフラッシュキャッシュの等価物になり、システムパフォーマンスを大きくは改善しないだろう。しかし、図4Aに示されるように、フラッシュが大きくなるに従い、システムパフォーマンスの効果はより大きくなる。フラッシュメモリシステム205が大きいほど、より多くのデータがアクティビティのバーストのあいだに記憶されえる。同様に、図4Bは、改良されたマスストレージデバイス150がより多く利用されるに従い、システムパフォーマンスが低下することを示す。もしマスストレージデバイス150が常にアクセスされるなら、フラッシュメモリシステム205からハードドライブ210へデータを転送する充分な時間がないことになる。結果として、マスストレージデバイス150は、フラッシュメモリシステム205を用いるのを止めて、ハードドライブ210だけを用いなければならない。もしそうなると、システムパフォーマンスは、ハードドライブ210だけを用いるシステムと同じになってしまうだろう。当業者には理解されるように、改良されたマスストレージデバイス150は、フラッシュメモリシステム205をバイパスしながら、データをハードドライブ210へ導くことを可能にするエラーハンドリングルーチンを持たなければならない。もしフラッシュメモリシステム205がフルになるなら、改良されたマスストレージデバイス150は、データが成功裡にハードドライブ210に転送されるまで、単純にはフラッシュメモリシステム205をオーバライトできない。同じエラーハンドリングルーチンは、フラッシュメモリシステム205が一時的に利用可能でない例えば、フラッシュメモリシステム205がガーベジコレクションプロセスを処理している場合にも利用されえる。ライトキャッシュは、フラッシュメモリシステム205の論理アドレス空間の一部または論理アドレス空間全体のいずれかを占有して、リードキャッシュと独立して存在しえ、またはそれはリードキャッシュと共存しえる。改良されたマスストレージデバイス150が動作しえる他のやり方は、ある状況においてフラッシュメモリシステム205だけを用いることによる。例えば、場合によっては、システムが、衝撃の影響をより受けやすいハードドライブ210が利用不可能である、携帯モードに入ることが望ましいかもしれない。利用不可能であることは、データが単にハードドライブ210に送られないことを意味するかもしれず、ハードドライブ210が電力を節約するためにシャットオフされていることを意味するかもしれず、またはハードドライブ210が物理的に改良されたマスストレージデバイス150から取り外されていることを意味するかもしれない。もし例えばハードドライブ210が携帯デバイスのためのドッキングステーションの一部であったなら、携帯デバイスをドッキングステーションから取り外すことは、ハードドライブ210を利用不可能にすることになろう。いったんハードドライブ210が利用可能になれば、ストレージコントローラ245は2つのマスストレージデバイス205および210を互いにシンクロナイズさせる。携帯デバイスの場合、ハードドライブ210は、いったん携帯デバイスがそのドッキングステーションの元の位置に戻されると利用可能になる。他の場合、ハードドライブ210は、動き検出回路が、システムがもはや衝撃を受ける危険がなくなったと決定するために利用可能になるかもしれない。さらに他の場合、ユーザは、そのモードを手動で変えることによって、またはおそらくはシステムを電気のコンセントに差し込むことによって、システムがハードドライブ210を利用可能な状態に置くようにする。さらに他の状況においては、システムは、フラッシュメモリシステム205のスペースを空けるために、単にハードドライブ210を自分で再びアクティブにさせる。全ての場合において、フラッシュメモリシステム205は、一時バックアップとして機能しえるが、これはデータが新しいデータでオーバライトされるまでフラッシュメモリシステム205内に存在するからである。リードキャッシング、ライトキャッシング、および排他的記憶は、同じデバイス中に組み込まれえる。それぞれの状況において、フラッシュメモリシステム205のための論理アドレス空間は、ハードドライブ210のための論理アドレス空間のサブセットである。換言すれば、データリクエストがホストバス155から来るとき、データリクエストは、単一の論理アドレスと関連付けられる。その論理アドレスと対応する最も新しいデータは、フラッシュメモリシステム205、ハードドライブ210、またはその両方に存在しえる。ある実施形態において、ある動作の専用のフラッシュメモリシステムの一部は状況に応じて変更されえる。例えば、もしハードドライブ210が、排他的記憶モードのあいだに物理的に利用不可能であるなら、そのモードのあいだフラッシュメモリシステム205のいずれの部分もキャッシング動作に用いる必要はない。いったんドッキングされると、システムは、フラッシュメモリシステム205をキャッシュ目的リード、ライトまたはその両方で用いるように復帰しえる。本発明は、現在、考えられるベストモードにおいて記載されてきたが、多くの改変、動作のモードおよび実施形態が可能であること明らかであり、これらは当業者の能力および技術の範囲内で、さらなる発明的活動なしに実施可能である。例えば、もしフラッシュメモリシステム中に永続的に記憶されるために、ある種のプログラムがよりよく適するなら、対応する論理アドレスは、それらプログラムのためにハードドライブ中には記憶されなくてもよいだろう。さらに、他のマスストレージデバイスは、フラッシュまたはハードドライブ以外の技術を用いえ、バッテリーバックアップされたRAM、光学ディスク、オボニックユニファイドメモリOUM、磁気RAMMRAM、強誘電ポリマー、強誘電RAMFeRAM、シリコンオンインシュレータSoIなどを含みえる。したがって、特許証によって保護されるべきであると意図されるものは、特許請求の範囲に記載され、特許請求の範囲の精神および範囲内に入る全ての改変物および変更物を含む。