(57)【要約】【課題】  データストレージデバイスを提供する。【解決手段】  ディスクデバイスは、不揮発性メモリデバイスと結合されて、ディスクデバイス単体で達成されるよりもより短いライトアクセスタイムおよびより高いデータライトスピードを提供する。２つのストレージデバイス間でセクタライトのバーストをインターリーブすることは、実効的にはディスクデバイスのシークタイムの効果をなくしえる。ホストシステムからの不連続な論理アドレス遷移に続いて、ストレージコントローラは、現在のデータを不揮発性メモリデバイスにライトしながら、ルックアヘッド動作をディスクデバイス上で実行できる。このようなシステムは、不揮発性メモリデバイスの本質的により速いライトアクセスを利用して、ディスクシークタイムによってふつう生じるデッドタイムをなくしえる。【選択図】  図２Ａ
2011192298.tif 000002
【特許請求の範囲】
【請求項１】
回転ディスクドライブを有するデータストレージシステムであって、
前記回転ディスクドライブの設定されたスタートアドレスを有するバーストデータをリードするための第１コマンドをホストシステムから受信する手段と、
前記第１コマンドの前記バーストデータの前記アドレスが、前にアクセスされたアドレスと不連続であるかどうかを判定する手段と、
前記アドレスが不連続であると判定される場合、前記要求されたデータを前記回転ディスクドライブからリードし、前記データの初期位置を不揮発性メモリデバイスにコピーする手段と、
前記回転ディスクドライブの同一の前記スタートアドレスを有するバーストデータをリードするための第２コマンドをホストシステムから受信する手段と、
前記バーストデータの前記アドレスが、前にアクセスされたアドレスと不連続であるかどうかを前記第２コマンドから判定する手段と、
前記アドレスが不連続であると判定される場合、前記要求されたデータの初期位置を前記不揮発性メモリからリードし、前記要求されたデータの残り部分を前記回転ディスクドライブからリードすることにより、前記回転ディスクドライブにおけるシークタイムに起因する前記ホストシステムへのデータ供給の遅延を除去する手段と、
を備える、データストレージシステム。
【請求項２】
前記回転ディスクドライブおよび前記不揮発性メモリは、コンピュータシステムの一部であり、前記不揮発性メモリは、前記コンピュータシステムから取り外し可能であり、且つフラッシュメモリを含む半導体メモリであり、前記回転ディスクドライブは、磁気ハードディスクドライブである、請求項１に記載のデータストレージシステム。
【請求項３】
コンピュータシステムに提供されるハードドライブからのデータのリード処理を向上させる方法であって、
前記ハードドライブの設定されたスタートアドレスを有するバーストデータをリードするためのリクエストをホストシステムから受信すること、
前記要求されたリクエストの前記アドレスが、前にアクセスされたアドレスと不連続であるかどうかを判定すること、
前記要求されたリクエストの前記アドレスが、前にアクセスされたアドレスと連続する場合、前記ハードドライブから前記要求されたデータをリードすること、
前記要求されたリクエストのアドレスが、前にアクセスされたアドレスと連続ではない場合、前記要求されたデータの第１部分が不揮発性マスストレージデバイスに存在するかどうかを判定すること、
前記要求されたデータの前記第１部分が前記不揮発性マスストレージデバイスに存在する場合、前記要求されたデータの前記第１部分を前記不揮発性マスストレージデバイスからリードし、前記要求されたデータの残りの部分を前記ハードドライブからリードすること、
前記要求されたデータの前記第１部分が前記不揮発性マスストレージデバイスに存在しない場合、前記要求されたデータの前記第１部分を前記ハードドライブからリードし、前記要求されたデータの前記第１部分を前記不揮発性マスストレージデバイスにコピーすること、を備える方法。
【請求項４】
前記ハードドライブおよび前記不揮発性マスストレージデバイスは、コンピュータシステムの一部であり、前記不揮発性マスストレージデバイスは、前記コンピュータシステムから取り外し可能であり、且つフラッシュメモリを含む半導体メモリであり、前記ハードドライブは、磁気ハードディスクドライブである、請求項３に記載の方法。
【請求項５】
データストレージシステムであって、
第１不揮発性ストレージデバイスと、
前記第１不揮発性ストレージデバイスよりもより遅い平均アクセスタイムおよびより大きい容量を有する第２不揮発性ストレージデバイスであって、前記より遅い平均アクセスタイムは、前記第２不揮発性ストレージデバイスがデータをリードし始める前に必要な平均遅延である、前記第２不揮発性ストレージデバイスと、
ストレージコントローラであって、
前記第１ストレージデバイスからデータの第１部分をリードさせ、前記第２ストレージデバイスからデータの第２部分をリードさせ、
前記第２ストレージデバイスの設定されたスタートアドレスを有するデータフラグメントをリードするための第１コマンドをホストシステムから受信し、
前記データフラグメントの前記アドレスが、前にアクセスされたアドレスと不連続であるかどうかを前記第１コマンドから判定し、
前記アドレスが不連続であると判定された場合、前記第２ストレージデバイスから前記要求されたデータをリードさせ、前記データの初期位置を前記第１ストレージデバイスにコピーさせるように動作可能である前記ストレージコントローラと、を備える、データストレージシステム。
【請求項６】
前記ストレージコントローラは、
前記第２ストレージデバイスの同一の前記スタートアドレスを有するデータフラグメントをリードするための第２コマンドをホストシステムから受信し、
前記データフラグメントの前記アドレスが、前にアクセスされたアドレスと不連続であるかどうかを前記第２コマンドから判定し、
前記アドレスが不連続であると判定された場合、前記要求されたデータの初期位置を前記第１ストレージデバイスからリードさせ、前記要求されたデータの残り部分を前記第２ストレージデバイスからリードさせるようにさらに動作可能である、請求項５に記載のデータストレージシステム。
【請求項７】
前記第１ストレージデバイスは半導体メモリであり、前記第２ストレージデバイスはハードドライブであり、
前記アドレスが不連続であると判定された場合、前記要求されたデータの初期位置を前記第１ストレージデバイスからリードすることにより、前記不連続なアドレスへの遷移における前記ハードドライブのシーク遅延に起因する前記ホストシステムへのデータ供給の遅延を低減させる、請求項６に記載のデータストレージシステム。
【請求項８】
データをリードする方法であって、
データアドレスのデータをリードするためのリードコマンドをホストシステムから受信すること、
前記データの第１部分が第１ストレージデバイスに存在するかどうかを判定すること、
前記データの第１部分が前記第１ストレージデバイスに存在する場合、前記第１ストレージデバイスから前記データの前記第１部分をリードすること、
前記第１ストレージデバイスにおける前記データの前記第１部分のリードが完了する前に、前記データの残り部分をリードするための準備を第２ストレージデバイスにさせること、
前記第２ストレージデバイスが前記データの前記残り部分をリードする準備が完了した後に、前記データの残り部分を前記第２ストレージデバイスからリードすること、
前記データの第１部分が前記第１ストレージデバイスに存在しない場合、前記データの第１部分および前記データの残り部分の両方を前記第２ストレージデバイスからリードすること、を備える、方法。
【請求項９】
前記データの第１部分および前記データの残り部分の両方は、前記第１ストレージデバイスが利用可能ではない場合に前記第２ストレージデバイスからリードされる、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストレージデバイスに一般に関し、より具体的にはデュアルメディアストレージに関する。
【背景技術】
【０００２】
汎用コンピュータは、マスストレージシステムを必要とする。データの直接操作のために用いられるメインメモリとは違い、マスストレージはデータを保持するために用いられる。一般に、プログラムはマスストレージに記憶され、プログラムが実行されるときに、プログラム全体またはプログラムの一部がメインメモリにコピーされる。システムがプログラムおよびそれに関連するデータの位置を特定し、マスストレージデバイスからメインメモリに転送するスピードは、システムの全体的なスピードに不可欠である。
【０００３】
通常のマスストレージデバイスには、フロッピーディスク（登録商標）、ハードディスク、光学ディスクおよびテープがある。それぞれのデバイスには、長所および短所の両方があり、これらは容量、価格、スピードおよび携帯性に関しえる。
【０００４】
加えて、フラッシュメモリのような他のデバイスは、不揮発性記憶を提供しえる。フラッシュメモリは、電気的に消去可能なプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）の一種である。フラッシュメモリは典型的には揮発性メインメモリほど速くはないが、ハードディスクよりは速い。
【０００５】
本発明者は、それぞれのデバイスの長所を最大にし、それぞれのデバイスの短所を最小にするために、別個のデバイスを単一のマスストレージシステムに統合するコンセプトを以前に吟味した。例えば、本発明者は、１９９７年１２月３１日に公開されたＰＣＴ出願「Memory Device」ＷＯ９７／５００３５の発明者としても挙げられており、この出願は
全ての目的のためにここで参照によって援用される。このＰＣＴ出願は、ハードディスクのような比較的、低速なアクセスのマスデータストレージデバイス、およびフラッシュメモリのような比較的、高速なアクセスのデータストレージデバイスの両方を含むメモリシステムを記載していた。同様のコンセプトは、２０００年１月１８日にDaniel AuclairおよびEliyahou Harariに発行された米国特許「Mass Computer Storage System Having Both Solid State and Rotating Disk Types of Memory」、米国特許第6,016,530号において吟味されており、この特許はその全体が全ての目的のためにここで参照によって援用される。
【０００６】
不揮発性フラッシュメモリデバイスを不揮発性ハードディスクと組み合わせることによって、結果として生じるマスストレージシステムは、その部分の和よりも大きくなりえる。しかし、そのようなメモリシステムは、それぞれのデータセクタのうちの１つのバージョンだけが維持されるシチュエーションに特に限定されていた。このデータセクタは、高速メモリまたは低速アクセスのマスデータストレージデバイスのうちのいずれかにおいて記憶され、論理アドレス空間を高速メモリおよび低速アクセスマスストレージデバイスの容量の和に等しくしていた。
【０００７】
１つ以上の集積回路チップ上に形成されたフラッシュセルのアレイを採用する、現在用いられている多くの商業的に成功した不揮発性メモリ製品が存在する。ふつう（必ずしもそうではないが）別個の集積回路チップ上にあるメモリコントローラはメモリアレイの動作を制御する。そのようなコントローラとしては典型的には、マイクロプロセッサ、ある種の不揮発性読み出し専用メモリ（ＲＯＭ）、揮発性ランダムアクセスメモリ（ＲＡＭ）
およびプログラミングおよび読み出し操作のあいだにデータがコントローラを通るときにデータから誤り訂正符号（ＥＣＣ）を計算するもののような、１つ以上の特別の回路がある。
【０００８】
典型的なフラッシュアレイのメモリセルは、共に消去されるセル群の別個のブロック群に分割される。すなわち、消去ブロックは、同時に消去可能な最小限の個数のセルの消去単位である。それぞれの消去ブロックは典型的には、データの１つ以上のページを記憶し、このページは、異なるサブアレイまたはプレーンでパラレルにプログラムされまたはリードされる。それぞれのプレーンは、典型的にはデータの１つ以上のセクタを記憶し、このセクタのサイズは、ホストシステムによって定義される。セクタの例は、磁気ディスクドライブについて設定された標準に従って、ユーザデータとして５１２バイトを含む。このようなメモリは典型的には、それぞれの消去ブロック内で１６、３２またはそれより多いページで構成され、それぞれのページは１つまたはいくつかのホストセクタデータを記憶する。
【０００９】
プログラミングおよびリード動作のあいだの並列性の度合いを増すために、アレイは、ふつうプレーンと呼ばれるサブアレイに典型的には分割される。それぞれのプレーンは、並列動作を可能にするためにそれ自身のデータレジスタおよび他の回路を含み、それによってデータのセクタは、同時に全てのプレーンにプログラムされ、またはそれらからリードされえる。単一の集積回路上のアレイは、物理的にプレーンに分割されえ、またはそれぞれのプレーンは、別個の１つ以上の集積回路チップから形成されえる。そのようなメモリ実現例の例は、１９９８年８月２５日にLeeらに発行された「Plane decode/virtual sector architecture」米国特許第5,798,968号、および１９９９年３月３０日にLeeらに発行された「Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM」米国特許第5,890,192号に記載され、これらはその全体が全ての目的のためにここで参照によって援用される。
【００１０】
さらに効率的にメモリを管理するために、消去ブロックは、共にリンクされて、仮想ブロックまたはメタブロックを形成しえる。すなわち、それぞれのメタブロックは、それぞれのプレーンから１つの消去ブロックを含むように定義づけられる。メタブロックの使用は、２００２年７月２５日の公開番号WO02/058074の国際特許出願「Partial Block Data Programming And Reading Operations In A Non-Volatile Memory」に記載され、その全体が全ての目的のためにここで参照によって援用される。このメタブロックは、データをプログラミングおよびリードするために、ホスト論理ブロックアドレスによって宛先（destination）として特定される。同様に、メタブロックの全ての消去ブロックは共に消去される。そのような大きなブロックおよび／またはメタブロックによって動作されるメモリシステム中のコントローラは、ホストから受け取られた論理ブロックアドレス（ＬＢＡ）、およびメモリセルアレイ内の物理ブロックナンバ（ＰＢＮ）の間の変換を含む多くの機能を実行する。ブロック内の個別のページは、典型的にはブロックアドレス内のオフセットによって特定される。
【００１１】
このタイプのフラッシュメモリシステムは、携帯アプリケーションにおけるマスストレージデバイスとしてふつう用いられる。フラッシュメモリデバイスは、論理インタフェースを介してＡＴＡのようなプロトコルを用いてホストシステムと通信し、しばしばリムーバブルカードの形態をとる。商業的に入手可能なカードのいくつかは、コンパクトフラッシュＴＭ（ＣＦ）カード（登録商標）、マルチメディアカード（ＭＭＣ）、セキュアディジタル（ＳＤ）カード、スマートメディアカード、パーソネルタグ（Ｐ−Ｔａｇ）およびメモリスティックカードである。ホストは、パーソナルコンピュータ、ノートブックコンピュータ、携帯情報端末（ＰＤＡ）、さまざまなデータ通信システム、および同様のタイプの装置を含む。メモリカード実現例の他に、このタイプのメモリは、代替として、さまざまなタイプのホストシステム内に組み込まれえる。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
マスストレージデバイスを改良する継続された努力がなされている。
【課題を解決するための手段】
【００１３】
本発明は、一般に第１ストレージデバイス、第２ストレージデバイスおよびストレージコントローラを含むデータストレージシステムを提供する。第２ストレージデバイスは、第１ストレージデバイスよりもより低速な平均アクセスタイムおよびより大きい容量を有する。平均アクセスタイムは、そのデバイスがデータをリードまたはライトし始める前に必要な平均遅延である。
【００１４】
ある実施形態において、ストレージコントローラは、データの第１部分を第１ストレージデバイスに、データの第２部分を第２ストレージデバイスに導くよう動作可能である。他の実施形態において、ストレージコントローラは、データの第１部分を第１ストレージデバイスから、データの第２部分を第２ストレージデバイスから取り出す。
【００１５】
典型的には、データの第１部分は、連続的なデータストリーム中のデータの第１部分である。同様に、データの第２部分は、そのデータストリームの残りの部分である。データの第１部分の位置およびデータの第２部分の位置に関する情報を保持するためには、テーブルがふつう用いられる。
【００１６】
他の実施形態において、データは、まずデータアドレスにライトするためのライトコマンドをホストシステムバスから受け取ることによって記憶される。データの第１部分が第１ストレージデバイスにそれから記憶される。第１デバイスに前記データの第１部分が完全に記憶される前に、第２ストレージデバイスがデータをライトできるよう準備される。第２ストレージデバイスが準備できた後、第２ストレージデバイスにデータの残りの部分が記憶される。
【００１７】
さらに他の実施形態において、リードコマンドがまずホストシステムバスから受け取られる。データストレージシステムはそれから、データの第１部分が第１ストレージデバイス上に存在するかを決定する。もしデータが第１ストレージデバイス上に存在するなら、データの第１部分が第１ストレージデバイスからリードされる。データの第１部分をリードすることの完了の前に、第２ストレージデバイスがデータの残りの部分をリードできるよう準備される。そうでなければ、もしデータの第１部分が第１ストレージデバイス上に存在しないなら、データの第１部分およびデータの残りの部分の両方は第２ストレージデバイスからリードされる。
【００１８】
本発明の他の局面および優位性は、添付の図面と併せて以下の詳細な説明から明らかになろう。図面は例示的に本発明の原理を示す。
【図面の簡単な説明】
【００１９】
【図１Ａ】本発明を利用できる例示的汎用コンピュータシステムを示す図である。
【図１Ｂ】図１Ａの汎用コンピュータシステムの要約された表現を示す図である。
【図２Ａ】本発明の例示的実施形態による改良されたマスストレージデバイスを示す図である。
【図２Ｂ】本発明の他の例示的実施形態による改良されたマスストレージデバイスを示す図である。
【図３Ａ】ハードドライブアドレス空間およびフラッシュアドレス空間内のヘッドデータおよびボディデータの要約された表現を示す図である。
【図３Ｂ】改良されたマスストレージデバイスの全体に対するハードドライブアドレス空間およびフラッシュアドレス空間内の要約された表現を示す図である。
【図４Ａ】ディスクアクセラレーションを用いないシステムによってライトコマンドが受け取られるときに起こる従来のライト処理を示すタイミング図である。
【図４Ｂ】本発明の例示的実施形態によるディスクアクセラレーションを用いるシステムによってライトコマンドが受け取られるときに起こるライト処理を示すタイミング図である。
【図５Ａ】フラッシュ容量が増すときのシステムパフォーマンスの効果を示す図である。
【図５Ｂ】改良されたマスストレージデバイスの利用が減るときのシステムパフォーマンスの効果を示す図である。
【図６】リングバッファの定型化された表現を示す図である。
【図７】本発明の例示的実施形態による例示的ライト技術のフロー図である。
【図８】本発明の例示的実施形態による例示的リード技術のフロー図である。
【図９】図６のリングバッファ内のセクタ記憶位置のマップの図である。
【発明を実施するための最良の形態】
【００２０】
本発明は、添付の図面と併せて以下の詳細な説明によって容易に理解されよう。
図面において同様の参照番号は同様の構成要素を示すことが理解されよう。また図中の描写は必ずしも正しい縮尺ではないことが理解されよう。
【００２１】
以下の記載において、本発明の完全な理解を提供するために多くの具体的な詳細が述べられる。しかし、本発明はこれら特定の詳細の一部または全てがなくても実施されえることが当業者には明らかだろう。あるいは、よく知られたプロセスステップは、本発明を不必要にぼかさないために詳細には記載されていない。
【００２２】
本発明は、それぞれ長所および短所を有する２つの別個のマスストレージデバイスを組み合わせることによって、補助メモリともふつう呼ばれる、従来のマスストレージデバイスを一般に改良する。例えば、フラッシュは、ハードドライブより速いアクセスタイムを有するが、ふつうはハードドライブほどの記憶容量を有しない。当業者には理解されるように、一方が他方よりも速いアクセスタイムを有する限り、任意の２つの不揮発性記憶装置が本発明では用いられえる。記憶デバイスに適用されるように、アクセスタイムは、ストレージデバイスがデータリクエストを受け取る時と、そのストレージデバイスが実際にそのデータをリードおよび／またはライトし始める時との間の時間としてふつう定義される。例えば、ハードまたはフロッピー（登録商標）のいずれのディスク上のデータについても、アクセスタイムは、一般には、コマンドオーバヘッドタイム（command overhead time）、シークタイム（seek time）、セトルタイム（settle time）、およびレイテンシ（latency）の和に等しい。
【００２３】
シークタイムおよびレイテンシがディスクのアクセスタイム全体を支配する。ディスクのシークタイムは、リード／ライトヘッドがあるトラックから他へと移動するのにかかる時間である。ハードディスクについては、これは典型的には、隣接するトラックへのシークの場合、１ミリ秒であり、フルストロークのシークについては１５ミリ秒（内側から外側トラックへのシーク、またはその逆）およびランダムシークの平均は１０ミリ秒である。レイテンシは、いったんヘッドがアドレスされたトラック上に位置してから、プラッタ上のアドレスされたセクタがヘッドまで回転する時間であり、ディスクの回転速度の関数である。７２００ｒｐｍの回転速度については、レイテンシは、平均４．１４ミリ秒であり、最大８．３ミリ秒である。
【００２４】
対照的に、典型的なフラッシュディスクデバイス上では、データのセクタは、約３０μＳでデバイスに転送され、８セクタがフラッシュメモリ中ではパラレルに２００μＳでプログラムされえる。これは、約１６ＭＢ／ｓのバーストライトスピードを提供し、ここで８セクタが２５０μＳ毎に書き込まれえる。しかし、デバイスは、ガーベジコレクション、データのブロックを完成させるためのデータセクタのリロケーション、およびブロック消去のような、管理上の動作もときどき実行しなければならない。したがって、８個のセクタをプログラムするための実効時間は、時としてこれよりもかなり長くなりえる。したがって、フラッシュの持続されたライトレートは、約１５ＭＢ／秒でありえる。もちろん、他のセクタ転送およびパラレルプログラミングスキームもフラッシュディスクデバイスでは採用されえ、異なる動作スピードを与えうる。
【００２５】
図１Ａは、本発明を利用しえる例示的汎用コンピュータシステム１００を示す。要素は、コンピュータ１０５、マウス１１０およびキーボード１１５のようなさまざまな入力デバイス、およびモニタ１２０およびプリンタ１２５のようなさまざまな出力デバイスを含む。
【００２６】
図１Ｂは、その本質的な要素を示す図１Ａのコンピュータシステム１００の要約された表現を示す。単一の要素１３０は、マウスおよびキーボードのようなユーザがコンピュータシステム１００と相互対話することを可能にする入力デバイスを示す。同様に、単一の要素１３５は、モニタおよびプリンタのようなコンピュータシステム１００が達成したことを表示する出力デバイスを示す。コンピュータシステム１００の中心は、中央処理ユニット（ＣＰＵ）１４０であり、命令を実行する要素である。メインメモリ１４５は、典型的には揮発性であり、ＣＰＵ１４０に実行されるべき命令およびその命令によって操作されるべきデータを提供する。これらの要素１３０、１３５、１４０、および１４５はこの技術分野ではよく知られている。
【００２７】
改良されたマスストレージデバイス１５０は、コンピュータ１００が持続的に大量のデータを保持することを可能にする。要素１３０、１３５、１４０、１４５、および１５０は、互いにホストバス１５５を介して情報を交換できる。
【００２８】
図２Ａは、本発明のある実施形態による改良されたマスストレージデバイス１５０Ａを示す。２つのマスストレージデバイス、フラッシュメモリシステム２０５およびハードドライブ２１０は、並列に接続される。フラッシュメモリシステム２０５は、フラッシュメモリアレイ２１５およびフラッシュコントローラ２２０を含む。ハードドライブ２１０は、磁気ハードディスク２２５およびディスクコントローラ２３０を含む。それぞれのコントローラ２２０および２３０は、それぞれのメモリタイプについて特定の動作を管理する。例えば、フラッシュコントローラ２２０は、全てのデータセクタの論理・物理マッピングおよび全てのフラッシュメモリ管理を制御し、それによりフラッシュコントローラ２２０およびフラッシュメモリアレイ２１５の間のインタフェース２５０が物理的なインタフェースになるようにする。ディスクコントローラ２３０は、リードおよびライトのための磁気ハードディスク２２５の動作を管理する。コントローラ２２０および２３０の両方は、論理インタフェース２６０および２６５を介してルータ２３５に接続する。
【００２９】
ホストインタフェース２４０およびストレージコントローラ２４５は、両方ともルータ２３５の上流に配置され、ルータは、データおよび制御情報が、ホストインタフェース２４０と、ディスクコントローラ２３０またはフラッシュコントローラ２２０のいずれかとの間でいずれかの方向へ渡されることを可能にする。加えて、ルータ２３５は、ディスクコントローラ２３０およびフラッシュコントローラ２２０の間でいずれかの方向へデータの転送を制御しえる。このような転送は、スタンドアローン動作としてなされえる。代替として、このような転送は、ホストインタフェース２４０およびマスストレージコントローラ２２０または２３０のうちの１つの間でいずれかの方向へのデータ転送と共になされえる。ルータ２３５は、このようなデータ転送についての制御論理を組み込みえる。
【００３０】
ホストインタフェース２４０は、ホストバス１５５への直接インタフェースを提供し、ホストバス１５５上で用いられる特定のプロトコルについての全てのサポートを提供しえる。ホストインタフェース２４０、ディスクコントローラ２３０および磁気ハードディスク２２５によって形成されるサブシステムは、ホストインタフェース２４０、フラッシュコントローラ２２０およびフラッシュメモリアレイ２１５によって形成されるサブシステムと共に、それぞれ完全なマスデータストレージシステムを形成する。ルータ２３５は、ホストインタフェース２４０から変更を加えることなくデータおよび制御信号を通しえ、またはコントローラ２２０および２３０と通信するための代替のプロトコルを確立しえる。ルータ２３５およびマスストレージコントローラ２２０または２３０間のインタフェース２６０および２６５は、ＡＴＡのような標準的プロトコルでありえ、または改良されたマスストレージデバイス１５０のために定義された特別なインタフェースでありえる。インタフェース２６０および２６５は典型的には、フラッシュメモリシステム２０５およびハードドライブ２１０中のデータの個別のセクタにランダムリードおよびライトアクセスを提供する論理インタフェースであり、それぞれの記憶メディアの物理的特性に依存しない。
【００３１】
加えて、フラッシュコントローラ２２０は、フラッシュメモリアレイ２１５の予約された領域への直接アクセスを行うために、インタフェース２６０上で特別のコマンドまたは操作をサポートしえ、これはストレージコントローラ２４５Ａによって用いられるテーブルおよび情報ログの記憶のために用いられえる。代替として、ストレージコントローラ２４５Ａは、そのようなテーブルおよびログのためのそれ自身の不揮発性メモリを有してもよい。
【００３２】
ストレージコントローラ２４５Ａは、ホストインタフェース２４０およびマスストレージコントローラ２２０および２３０の間の情報の転送を指令するインテリジェントコントロールユニットである。ストレージコントローラ２４５Ａは、フラッシュメモリシステム２０５またはハードドライブ２１０へのデータの記憶またはそれからのデータのリードを調整する。ストレージコントローラ２４５Ａは、フラッシュメモリアレイ２１５中に記憶された情報のためのアドレステーブルを保持しえる。
【００３３】
揮発性メモリは、ホストインタフェース２４０、ルータ２３５、フラッシュコントローラ２２０またはディスクコントローラ２３０を含む改良されたマスストレージデバイス１５０の要素の多くにおいてバッファまたはキャッシュメモリとして機能する。単一の揮発性メモリがさまざまな要素において動作するようスケジューリングされてもよく、または別個の揮発性メモリ群がそれぞれの要素の専用として機能してもよい。
【００３４】
他の実施形態において、コントローラ２２０および２３０の機能は、統合化されたコントローラデバイスにおいて、ルータ２３５と共にマージされる。このデバイスは、記憶コントローラ２４５およびホストインタフェース２４０も含みえる。しかし、このようなコンフィギュレーションは、新しいコントローラユニットの製造を必要とする。したがって、コントローラ２２０および２３０のうちのいずれかまたは両方は、単にメモリデバイス中には含まれない。このようなコンフィギュレーションは新しい制御回路が開発されることを必要とするが、要求される全要素の数も減らしえる。
【００３５】
図２Ｂは、本発明の他の実施形態による改良されたマスストレージデバイス１５０Ｂを示す。この改良されたマスストレージデバイス１５０Ｂは、図２Ａの改良されたマスストレージデバイス１５０Ａにおけるのと同じハードドライブ２１０の要素を維持するが、図２Ａのストレージコントローラ２４５Ａのメイン機能と共にルータ２３５およびホストインタフェース２４０の機能を含むストレージコントローラ２４５Ｂを用いる。論理インタフェース２６０はなくされ、フラッシュメモリアレイ２１５Ｂへ直接の物理インタフェース２７５によって置き換えられている。このような構成においては、ディスクアクセラレータ２５０は、好ましくは、ハードドライブ２１０へのＡＴＡインタフェース上のフロントエンドキャッシュであるか、またはハードドライブ２１０の既存の要素を利用するためにハードドライブ２１０のアセンブリに統合されえる。この実施形態において、フラッシュコントローラ２２０の機能は必要とされず、フラッシュメモリアレイ２１５Ｂは、論理データ記憶デバイスの一部を形成しないが、物理記憶として直接に用いられる。これはデータのストリームの一時記憶には特に適する。
【００３６】
用いられる具体的なアーキテクチャにかかわりなく、ディスクアクセラレーションは、第２ストレージデバイスがレイテンシを起こしているあいだに、一般に「ヘッド」データを第１ストレージデバイスにライトおよび／またはそれからリードすることによって達成されえる。図２Ａおよび図２Ｂに示される実施形態において、フラッシュメモリアレイ２１５は、磁気ハードディスク２２５よりも相当少ないレイテンシしか起こさない。磁気ハードディスク２２５のリード／ライトヘッドが適切に位置するまで待つ代わりに、データストリーム（「ヘッドデータ」）の初期位置は、フラッシュメモリシステム２０５のフラッシュメモリアレイ２１５に書き込まれる。いったん磁気ハードディスク２２５がデータを受け入れる準備ができると、残りの部分（「ボディデータ」）がハードドライブ２１０の磁気ハードディスク２２５に書き込まれる。それと共に、ヘッドデータおよびボディデータは、単一のデータフラグメントをなす。データフラグメントは、第２ストレージデバイスが非トリビアルなアクセスタイムを生じるデータのバーストとして定義されえる。磁気ハードディスク２２５の場合、データフラグメントは、先行データと不連続なためにハードドライブ２１０にシークタイムおよび／またはレイテンシを起こすシーケンシャルなデータとして記述されえる。
【００３７】
改良されたマスストレージデバイス１５０がどのように利用されるかに依存して、ヘッドデータのサイズは、必要に応じて計算されてもよく、または単に標準的なサイズでありえる。標準的なサイズは、ハードドライブ２１０の平均シークタイム、フラッシュメモリアレイ２１５のサイズ、および／またはガーベジコレクション動作の結果大きく延びた実効的プログラミングタイムが発生する前にライトされえる論理的に連続なセクタを含む、多くのファクタに基づきえる。
【００３８】
図３Ａは、ハードドライブアドレス空間３１５およびフラッシュアドレス空間３２０中のヘッドデータ３０５およびボディデータ３１０の要約された表現を示す。ヘッドマッピングテーブル３２５は、ストレージコントローラ２４５Ａまたは２４５Ｂによって用いられ、ヘッドデータ３０５およびボディデータ３１０の記憶を調整する。もしフラッシュアドレス空間３２０が充分大きければ、ヘッドデータ３０５は、フラッシュメモリアレイ２１５中に永続的に常駐しえる。しかし、もしフラッシュ空間が限られるなら、新しいヘッドデータのためのスペースを作るために、ヘッドデータ３０５がフラッシュメモリアレイ２１５から除去されることを可能にするメカニズムが実現されなければならない。
【００３９】
あるそのようなメカニズムは、ヘッドデータ３０５のためにディスクアドレス空間内にスペース３３０を予約しておくことを含みえる。フラッシュメモリアレイ２１５内でスペースが必要になると、ヘッドデータ３０５が予約されたスペース３３０へコピーされ、磁気ハードディスク２２５上のデータフラグメント全体が連続になるようにされえる。好ましくは、ヘッドデータ３０５をコピーをすることは、改良されたマスストレージデバイス１５０Ａまたは１５０Ｂが使用中ではないときに、バックグラウンド動作としてなされえる。このようなセクタリロケーションの頻度は、ディスクデバイスおよびフラッシュメモリデバイスの記憶容量の比、および改良されたマスストレージデバイス１５０に書き込まれる別個の連続したセクタシーケンス群の個数に好ましくは依存する。
【００４０】
同様に、図３Ｂは、改良されたマスストレージデバイス全体についてのアドレス空間３５０に対するディスクアドレス空間３１５およびフラッシュアドレス空間３２０の要約された表現を示す。空間がヘッドデータのためにディスクアドレス空間３１５内に予約されるので、改良されたマスストレージデバイスのアドレス空間３５０は、ディスクアドレス空間３１５に等しい。
【００４１】
改良されたマスストレージデバイスを用いることによるシステムパフォーマンスの向上は、図４Ａおよび図４Ｂの間の差でわかる。図４Ａは、ライトコマンド４０５がマスストレージシステムによって受け取られるときに起こる、従来のライト処理を示すタイミング図である。ここで、マスストレージシステムは、本発明によって提供されるディスクアクセラレーションを使用していない。典型的には、データは、ハードドライブ２１０のためのリード／ライトヘッドが所定位置に動き（４１５）始める時刻とほぼ同じ時にディスクキャッシュへ転送（４１０）され始める。いったんリード／ライトヘッドおよび磁気ハードディスク２２５が所定位置にくると、データは磁気ハードディスク２２５に書き込まれ（４２０）始める。典型的には、データをキャッシュから磁気ハードディスク２２５に書くのにかかる時間（４２０）は、入ってくるデータをキャッシュに転送するのにかかる時間（４１０）より長い。
【００４２】
図４Ｂは、ライトコマンド４０５が本発明の実施形態によるディスクアクセラレーションを用いるマスストレージシステムによって受け取られるときに起こる、ライト処理を示すタイミング図である。いくつかの異なる動作が、受け取られるライトコマンド４０５の結果として始まりえる。例えば、ヘッドデータ４２５および４３０のフラッシュメモリへの転送が開始されえる。揮発性バッファメモリは、フラッシュのような管理上の動作を必要としない。したがって、ヘッドデータをフラッシュメモリシステム２０５に記憶させること（４３０）は、ヘッドデータをバッファに転送すること（４２５）、およびそれからヘッドデータをバッファからフラッシュメモリシステム２０５に転送すること（４２５）によって、ヘッドデータをフラッシュメモリシステム２０５内に生じること（４３０）を典型的には含む。ヘッドデータ４２５および４３０が記憶されるとき、ハードドライブ２１０は、データを受け取る準備をする。もしヘッドデータのためのスペースが予約されているなら、新しいライトコマンド４３５がハードドライブ２１０に提示される。この新しいライトコマンド４３５は、リード／ライトヘッドをデータフラグメントのアドレスには導かないが、ボディデータのアドレスには導き、このアドレスは単に、ヘッドデータのためにアロケートされたスペースによってオフセットされたフラグメントアドレスである。新しいライトコマンド４３５がハードドライブ２１０によって受け取られた後、リード／ライトヘッドおよびハードディスクは適切に配置される（４４０）。
【００４３】
いったんヘッドデータ４２５が完全にフラッシュバッファ４２５に転送されると、ボディデータが改良されたマスストレージデバイスのディスクキャッシュ内へ記憶され始める（４４５）。したがって、ホストシステムがデータを改良されたマスストレージデバイス１５０へ転送しえるスピードは、ディスクアクセラレーションを用いないシステムと同じである。リード／ライトヘッドおよびハードディスクが所定位置にあるとき、ボディデータ４５０は、ボディデータが利用可能になるとすぐに磁気ハードディスクへ書き込まれ始めえる。図４Ｂにおいてデータフラグメントをライトするのにかかる総時間は、図４Ａにおいて必要とされる総時間より大幅に少ない。
【００４４】
しかし、システムパフォーマンスの全体的な向上は、フラッシュメモリアレイ２１５の容量、およびどのくらい頻繁に改良されたマスストレージデバイス１５０がアクセスされるかに依存する。フラッシュメモリアレイ２１５の容量が増すにつれて、システムパフォーマンスの効果は図５Ａに示されるように、より劇的になる。フラッシュメモリアレイ２１５が大きければ大きいほど、複数のデータフラグメントを有するアクティビティのバーストのあいだに記憶されえるデータは大きくなる。
【００４５】
同様に、図５Ｂは、改良されたマスストレージデバイス１５０がより多く利用されるほど、システムパフォーマンスが低下することを示す。もしマスストレージデバイス１５０が常にアクセスされるなら、ヘッドデータをフラッシュメモリアレイ２１５から磁気ハードディスク２２５に転送するのに充分な時間が存在しないことになる（転送が必要であると仮定して）。その結果、マスストレージデバイス１５０は、そのエラーハンドリングルーチンに依存して、新しいヘッドデータを受け取る前に古いヘッドデータを転送するか、またはフラッシュメモリアレイ２１５を使うのを止め、新しいデータフラグメントについてはハードドライブ２１０だけを使うかをしなければならない。もし後者のエラーハンドリングルーチンが使われるなら、システムパフォーマンスは図５Ｂに示されるようにハードドライブ２１０だけを使ったシステムと同じになるだろう。このようなエラーハンドリングルーチンは、フラッシュメモリアレイ２１５が一時的に利用可能ではない（例えば、フラッシュメモリアレイ２１５がガーベジコレクションプロセスを処理している）場合にも利用されえる。ガーベジコレクションとのコリジョンは、もしガーベジコレクション動作が、ホストデータがハードドライブ２１０に書き込まれているあいだに実行されたなら低減されえ、これは典型的にはフラッシュメモリアレイ２１５についてアクティビティがない時間である。
【００４６】
図６は、リングバッファ６００の形態の、フラッシュメモリアレイ２１５Ｂ中のデータのストリームにおけるセクタの記憶を整理する一方法を示す。データのセクタを書き込む現在の位置は、ライトポインタ６０５によって定義され、これは無限サイクルとしてアドレス空間を通して図３の時計回りに移動する。アドレス空間は、メタブロック（例えば６１０および６１５）によって定義され、これらは、所定の順序で、またはライトポインタ６０５が完全なメタブロックから新しい消去されたメタブロックへ移動するときに動的に決定される順序で、リンクされる（例えば６２０）。消去ポインタ６２５は、無限サイクルとしてアドレス空間を通して同様に図６で時計回りに移動する。消去ポインタ６２５によって特定されたメタブロックは、新しいデータセクタの記憶のために、ライトポインタ６０５の前に少数の消去されたメタブロックのプールが維持されるような速度で消去されていく。消去されるブロックは、リングバッファ６００中では最も古く書き込まれたデータを含む。
【００４７】
ヘッドデータは、サイクリックアドレス空間中に記憶され、すなわち、これは最高アドレスから最低アドレスへとインクリメントステップを提供することによってインクリメントアドレス遷移が連続的になされえるアドレス空間である。図２Ａに示された改良されたマスストレージデバイス１５０Ａの実施形態においては、サイクリックアドレス空間は、フラッシュメモリシステム２０５の論理アドレス空間の一部の中でサイクリックバッファによって提供される。図２Ｂに示される改良されたマスストレージデバイス１５０Ｂの実施形態において、サイクリックアドレス空間は、フラッシュメモリアレイ２１５Ｂの物理アドレス空間内にリングバッファ６００によって提供される。
【００４８】
フラッシュメモリのコストをなるべく下げるために、フラッシュメモリアレイ２１５の容量は、改良されたマスストレージデバイス１５０のためのアドレス空間全体３５０に関する全てのヘッドデータを記憶するのに必要とされる容量よりも通常は小さい。したがって、ヘッドデータの連続した記憶のためにフラッシュメモリアレイ２１５内のスペースを空けるために、ヘッドデータをフラッシュメモリアレイ２１５から磁気ハードディスク２２５上の適切な予約された空間へコピーするための条件が存在する。これが実行される手段は、改良されたマスストレージデバイス１５０によって達成されるシステムパフォーマンスの全体的向上に対する重要な効果を有しえる。
【００４９】
図９は、ハードドライブ２１０へのヘッドデータのコピーを管理する方法に関する、リングバッファ６００内のセクタ記憶位置のマップを示す。リングバッファ６００は、サイクリックアドレス空間を有し、その最後の物理アドレスからその最初の物理アドレスへの逆戻りを持つ。リングバッファ６００は、メタブロック９６０、９６５、９７０、９７５、９８０、９８５、９９０、および９９５を含む。セクタデータは、インクリメントライトポインタ６０５によって定義される位置においてバッファに書き込まれる。図９は、バッファ９１０のトップとしてアサインされるライトポインタ６０５を含むメタブロック９６０で、移動するリニアアドレス空間としてこのサイクリックアドレス空間を示す。サイクリックバッファ６００においてライトポインタ６０５の直前のメタブロック９９５は、バッファ９４０のエンドとしてアサインされる。消去ポインタ６２５は、消去のための次のターゲットブロックを定義し、バッファ中のヘッドデータエントリの最後も定義する。消去ポインタ６２５およびバッファ９４０のエンドの間のメタブロックは、消去された状態にある。
【００５０】
有効なヘッドデータは、消去ポインタ６２５によって特定されたメタブロック９９０からコピーされ、メタブロック９９０の消去を可能にする。ヘッドデータ３０５は、もしそれがリングバッファ６００に書き込まれてから読み出されたことがなければ、磁気ハードディスク２２５上の対応する予約された空間３３０にコピーされる。しかし、ヘッドデータ３０５は、もし書き込まれてから読み出されたなら、ライトポインタ６０５においてフラッシュメモリに再びコピーされえ、したがってリングバッファ６００内に保持されえる。これにより、ホストシステムによって読み出される可能性が高いヘッドデータが、リングバッファ６００内に利用可能なまま残ることを可能にする。有効なヘッドデータは、ヘッドマッピングテーブル３２５、およびデータセクタそのもののヘッダ中の論理アドレス情報を用いて特定されえる。もし有効なヘッドデータが、メタブロック９９０および他のメタブロックの間の境界と重なるなら、ヘッドデータ全体がそのままコピーされる。
【００５１】
しかしヘッドデータは、同じ論理アドレスについてのより最近のヘッドデータがリングバッファ６００内の他のどこかに存在するために無効でありえる。この場合、ヘッドデータは、メタブロック９９０の消去の前にコピーされる必要はない。
【００５２】
消去ポインタ６２５によって特定されたもの以外のメタブロックには、コピーアヘッド操作が実行されえる。これは例えば、ホストによって要求されてハードディスク２２５へのコピー操作が一時的にディスクアクセスによって妨げられるあいだの、フラッシュメモリアレイ１１５へのコピー操作が継続することを可能にする。フラッシュコピーポインタ９１５およびディスクコピーポインタ９０５は、次に必要とされるコピー操作の位置を特定するために用いられる。消去ポインタ６２５およびコピーポインタ９０５および９１５の間に位置する有効なヘッドデータは、その必要とされるコピー操作が全て実行されていなければならない。リングバッファ６００内にはできるだけ多くの有効なヘッドデータを記憶することが望ましいので、実行されるそのようなコピーアヘッド操作の程度には制限が設けられている。ディスクコピーリミット９２０およびフラッシュコピーリミット９３０は、ディスクコピーポインタ９０５およびフラッシュコピーポインタ９１５が消去ポインタ６２５より前に移動しえる最大限度を定義する。
【００５３】
メタブロック消去は、消去ポインタ６２５によって特定されるメタブロックに制限される必要はない。例えば、もし消去ポインタ６２５におけるメタブロック９９０がさらなるフラッシュコピー操作を必要とするなら、消去ポインタ６２５およびディスクコピーポインタ９０５の間のメタブロック９８０は、既に未コピー有効データを含まず、メタブロック９８０はただちに消去されえる。この場合、リングバッファを形成するようメタブロックがリンクされる順序を定義するブロックリンクテーブルが変更され、新しく消去されたメタブロック９８０を消去ポインタ６２５より下に移動しえる。
【００５４】
ヘッドデータのコピーは、可能である限りバックグラウンドタスクとして実行される。フラッシュメモリアレイ２１５へのコピーは、ホスト・ディスクまたはディスク・ホストデータ転送と同時に実行されえる。代替として、もし完全なメタブロックがコピーされなければならないなら、実際のデータは動かされる必要はない。ブロックリンクテーブルは、単にバッファ内でのデータをリロケートするよう変更されえる。高速ディスクコピーは、ホストインタフェースが非アクティブであるときに、リングバッファ６００およびハードディスクキャッシュの間で実行されえる。ディスクコピーは、もしホストアクティビティが開始するなら安全にアボートされえ、後に再開または反復されえる。
【００５５】
フラッシュメモリアレイ２１５中に記憶される管理テーブルは、ヘッドマッピングテーブル３２５およびブロックリンキングテーブルを含みえる。ある実施形態において、ヘッドマッピングテーブル３２５は、フラッシュメモリアレイ２１５中に記憶されたそれぞれの有効なヘッドデータフラグメントについて、ただ一つのエントリしか有しない。エントリは、それから、定義された論理アドレスを持つエントリをサーチすることを可能にするために、専用のブロックにおけるヘッドマッピングテーブルセクタのセットの中に不連続な論理アドレス順で記憶される。それぞれのエントリは、改良されたマスストレージデバイス内での論理アドレス、リングバッファ内での物理アドレス、ヘッドデータのサイズ（もし固定されたヘッドサイズが用いられないなら）、書き込まれてからヘッドデータが読み出されたことを示すリードフラグ、およびヘッドデータがハードドライブ２１０にコピーされたことを示すコピーフラグのための別個のフィールド群を有しえる。ブロックリンキングテーブルは、リングバッファ６００中のそれぞれのリンクされたメタブロックについて１つのエントリを有する。エントリは、専用のブロックにおいてリンクテーブルセクタのセット中にブロックリンキング順に記憶される。新しいリンクテーブルセクタが追加されえ、それらの順序が変更されえる。それぞれのセクタはフルである必要はなく、新しいエントリが追加されえる。最後に書き込まれたリンクテーブルセクタは、専用ブロック内にある全ての有効なリンクテーブルセクタの位置およびそれらの順序を定義する情報を含みえる。
【００５６】
図７は、本発明の例示的実施形態による例示的ライト技術のフロー図である。７０５において、データをあるアドレスＸに書き込むために、コマンドがホストシステムバス１５５から受け取られる。７１０において、改良されたマスストレージデバイス１５０は、アドレスＸが以前にアクセスされたアドレスと連続し、したがって既存のデータフラグメントの一部であるか、または以前のアドレスとは不連続であるかを決定し、新しいデータフラグメントの開始を定義する。もしアドレスが連続であるなら、データは、既存のデータフラグメントに連続して、７１５においてハードドライブ２１０に直接に書き込まれる。もしアドレスが不連続であるなら、データを、新しいデータフラグメントのためのヘッドデータとしてフラッシュメモリアレイ２１５に書き込むための試みがなされる。
【００５７】
もしヘッドデータが書き込まれるなら、システムは、フラッシュメモリアレイ２１５が準備ができているかを７２０において決定する。もしフラッシュメモリアレイ２１５がなんらかの理由で利用可能でないなら、システムは単にハードドライブ２１０に７１５において書き込みえ、このフラグメントについてはアクセラレーションを実施しない。もしフラッシュメモリアレイ２１５が利用可能であるなら、次の３つの動作がほぼ同時に起こりえる。
【００５８】
３つの動作の最初は、シークコマンドをハードドライブ２１０に７２５において送ることである。このシークコマンドは、もしデータが最終的にハードドライブ２１０にフラッシュメモリアレイ２１５から転送されることになっているなら、ヘッドデータのサイズに等しいオフセットを考慮しなければならない。したがってハードドライブ２１０は、リード／ライトヘッドをアドレスＸ＋Ｈに位置付けるためのシークコマンドを受け取らなければならず、ここでＨはヘッドデータオフセットのサイズである。７３０において、ヘッドデータは、フラッシュメモリアレイ２１５に書き込まれる。もしリングバッファが用いられるなら、ヘッドデータはライトポインタにおいて書き込まれる。７３５において、ブロックマッピングテーブルは、ヘッドデータがフラッシュメモリアレイ２１５だけに記憶されていることを示すようアップデートされる。適切にデータを調整するために、ストレージコントローラ２４５は、磁気ハードディスク２２５中の論理アドレスおよびフラッシュメモリアレイ２１５中の物理アドレスに関する情報を有さなければならない。加えて、他の情報もブロックマッピングテーブル中に記憶されてもよい。例えば、もしヘッドサイズが可変であるなら、ヘッドのサイズも記憶されなければならない。他のフラグは図８について以下に説明される。
【００５９】
ヘッドデータがフラッシュメモリアレイ２１５に書き込まれ、ブロックマッピングテーブルがアップデートされるあいだ、ハードドライブ２１０は、磁気ハードディスク２２５が適切に位置付けられるのを７４０において待つ。いったん所定の位置になると、改良されたマスストレージデバイス１５０がボディデータをホストシステムバス１５５から受け取ったと仮定して、ボディデータが７４５において磁気ハードディスク２２５に書き込まれ始めえる。
【００６０】
図８は、本発明の例示的実施形態による例示的リード技術のフロー図である。８０５において、データをあるアドレスＸにおいて読み出すために、コマンドがホストシステムバス１５５から受け取られる。８１０において、ストレージコントローラ２４５は、アドレ
スＸについてのエントリがブロックマッピングテーブル中に存在するかを決定する。もしアドレスがブロックマッピングテーブル中にないなら、システムはデータをハードドライブ２１０から８１５において読み出す。それから、８２０において、システムは、フラッシュメモリアレイ２１５が書き込みの準備ができているかを決定する。もしフラッシュメモリアレイ２１５がなんらかの理由（例えばガーベジコレクション）で利用可能でないなら、プロセスは単に終了し、ディスクアクセラレーションなしのシステムとして振る舞う。しかし、もしフラッシュメモリアレイ２１５が利用可能であるなら、データがハードドライブ２１０から読み出されているあいだ、ヘッドデータはフラッシュメモリアレイ２１５から８２５においてコピーされえる。それから、８３０において、ブロックマッピングテーブルは、ヘッドデータが今はフラッシュメモリアレイ２１５上に存在することを示すようアップデートされえる。
【００６１】
いったんエントリがブロックマッピングテーブル中に存在すると、ストレージコントローラ２４５は、リードコマンドが８０５において受け取られた後に異なるパスをたどる。もし８１０においてアドレスがブロックマッピングテーブルにあるなら、ストレージコントローラ２４５は、ハードドライブ２１０中のボディデータのアドレスのためのシークコマンドをハードドライブ２１０に送る。本実施形態においては、ボディデータのアドレスは、ヘッドデータのサイズだけオフセットされたアドレスＸである。８４０において、ストレージコントローラ２４５は、典型的にはフラッシュメモリアレイ２１５が準備できるのを待つ。しかしある実施形態は、ヘッドのコピーがハードドライブ２１０にも存在するかを決定し、もし適切であるなら、もしハードドライブ２１０がフラッシュメモリアレイ２１５より前に利用可能になるなら単にハードドライブ２１０からデータを読み出す、追加のエラーハンドリングルーチンを有してもよい。リード技術だけを用いるある実施形態においては、ヘッドデータのコピーは常にハードドライブ中に存在する。いったんフラッシュメモリアレイ２１５が利用可能になると、ヘッドデータは、フラッシュから８４５において読み出される。８５０において、ブロックマッピングテーブル中のフラグは、テーブルエントリに対応するデータが読み出されたことを示すようセットされえる。もしリングバッファ構成が用いられるなら、そのようなフラグは、それを含むメタブロックが消去されなければならないときに、ハードドライブではなくバッファのトップへコピーすることによって、リングバッファ内にエントリが保持されることを可能にする。
【００６２】
ヘッドデータが完全にフラッシュメモリアレイ２１５から読み出されたあと、システムは、磁気ハードディスク２２５が正しく位置付けられるのを８５５において待たなければならない。いったん適切に位置付けられると、ボディデータは、磁気ハードディスク２２５から８６０において読み出される。
【００６３】
本発明は、現在、考えられるベストモードにおいて記載されてきたが、多くの改変、動作のモードおよび実施形態が可能であること明らかであり、これらは当業者の能力および技術の範囲内で、さらなる発明的活動なしに実施可能である。例えば、他のマスストレージデバイスは、フラッシュまたはハードドライブ以外の技術を用いえ、バッテリーバックアップされたＲＡＭ、光学ディスク、オボニックユニファイドメモリ（ＯＵＭ）、磁気ＲＡＭ（ＭＲＡＭ）、強誘電ポリマー、強誘電ＲＡＭ（ＦｅＲＡＭ）、シリコン・オン・インシュレータ（ＳｏＩ）などを含みえる。したがって、特許証によって保護されるべきであると意図されるものは、特許請求の範囲に記載され、特許請求の範囲の精神および範囲内に入る全ての改変物および変更物を含む。
【図１Ａ】
2011192298.tif 000003
【図１Ｂ】
2011192298.tif 000004
【図２Ａ】
2011192298.tif 000005
【図２Ｂ】
2011192298.tif 000006
【図３Ａ】
2011192298.tif 000007
【図３Ｂ】
2011192298.tif 000008
【図４Ａ】
2011192298.tif 000009
【図４Ｂ】
2011192298.tif 000010
【図５Ａ】
2011192298.tif 000011
【図５Ｂ】
2011192298.tif 000012
【図６】
2011192298.tif 000013
【図７】
2011192298.tif 000014
【図８】
2011192298.tif 000015
【図９】
2011192298.tif 000016