(57)【要約】本発明のさまざまな実施形態は、階層不揮発性ストレージのためのシステムおよび方法を提供する。一例として、ハード・ディスク・ストレージと、ハード・ディスク・ストレージ上に含まれるデータのサブセットをキャッシングするソリッド・ステート不揮発性ストレージと、ソリッド・ステート不揮発性ストレージとハード・ディスク・ストレージとの間のデータ転送を制御するように動作可能であるコントローラ回路とを含む多階層不揮発性ストレージ・デバイスが開示される。
2012533112.tif 000002
【特許請求の範囲】
【請求項１】
多階層不揮発性ストレージ・デバイスであって、
ハード・ディスク・ストレージと、
前記ハード・ディスク・ストレージ上に含まれるデータのサブセットをキャッシングするソリッド・ステート不揮発性ストレージと、
前記ソリッド・ステート不揮発性ストレージと前記ハード・ディスク・ストレージとの間のデータ転送を制御するように動作可能であるコントローラ回路とを含む、デバイス。
【請求項２】
前記ハード・ディスク・ストレージは、単一次元ハード・ディスク・ストレージおよび２次元ハード・ディスク・ストレージからなる群から選択される、請求項１に記載のデバイス。
【請求項３】
前記ハード・ディスク・ストレージは、単一次元ハード・ディスク・ストレージと２次元ハード・ディスク・ストレージとの両方を含む、請求項１に記載のデバイス。
【請求項４】
前記単一次元ハード・ディスク・ストレージは、前記２次元ハード・ディスク・ストレージ上に含まれるデータのサブセットをキャッシングする、請求項３に記載のデバイス。
【請求項５】
前記コントローラ回路は、前記ソリッド・ステート不揮発性ストレージと前記ハード・ディスク・ストレージとの間のデータ転送を制御するように動作可能である、請求項４に記載のデバイス。
【請求項６】
前記２次元ハード・ディスク・ストレージは、前記単一次元ハード・ディスク・ストレージより３倍大きい、請求項４に記載のデバイス。
【請求項７】
前記コントローラ回路は、ホストと前記ハード・ディスク・ストレージとの間のマルチブロック転送を実行するときに、前記ソリッド・ステート不揮発性ストレージをバイパスするように動作可能である、請求項１に記載のデバイス。
【請求項８】
前記コントローラ回路の制御の下で、前記ハード・ディスク・ストレージからのデータのブロックを格納し、要求元ホストへの一連のサブブロック転送を実行するように動作可能であるバッファをさらに含む、請求項７に記載のデバイス。
【請求項９】
前記コントローラ回路の制御の下で、ホストからの一連のサブブロック転送を受け取り、前記サブブロック転送を前記ハード・ディスク・ストレージへの単一ブロック転送に組み合わせるように動作可能であるバッファをさらに含む、請求項７に記載のデバイス。
【請求項１０】
前記ハード・ディスク・ストレージは、前記ソリッド・ステート不揮発性ストレージより少なくとも１桁大きい、請求項１に記載のデバイス。
【請求項１１】
不揮発性データ・ストレージのための方法であって、
多階層不揮発性メモリを提供することを含み、前記多階層不揮発性メモリは、
ハード・ディスク・ストレージと、
前記ハード・ディスク・ストレージ上に含まれるデータのサブセットをキャッシングするソリッド・ステート不揮発性ストレージと、
前記ソリッド・ステート不揮発性ストレージと前記ハード・ディスク・ストレージとの間のデータ転送を制御するように動作可能であるコントローラ回路とを含み、前記方法はさらに、
前記多階層不揮発性メモリにアクセスする要求をホストから受け取ること、そして、
前記要求に応答すること、を含む方法。
【請求項１２】
前記要求は読取要求であり、前記読取要求に応答することは、
前記読取要求に対応するアドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれるかどうかを判定することと、
前記読取要求に対応する前記アドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれるときに、前記ソリッド・ステート不揮発性ストレージから前記読取要求に応答すること、とを含む請求項１１に記載の方法。
【請求項１３】
前記要求は読取要求であり、前記読取要求に応答することは、
前記読取要求に対応するアドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれるかどうかを判定することと、
前記読取要求に対応する前記アドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれないときに、前記ハード・ディスク・ストレージから前記ソリッド・ステート不揮発性ストレージにデータのブロックを転送することとを含み、データの前記ブロックは、前記読取要求に対応する前記アドレス空間を含み、さらに、
前記ソリッド・ステート不揮発性ストレージから前記読取要求に応答することを含む、請求項１１に記載の方法。
【請求項１４】
前記要求は、拡張読取要求であり、前記拡張読取要求に応答することは、
前記拡張読取要求に対応するアドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれるかどうかを判定することと、
前記読取要求に対応する前記アドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれないときに、前記ソリッド・ステート不揮発性ストレージを通過せずに前記ハード・ディスク・ストレージから前記拡張読取要求に応答することとを含む、請求項１１に記載の方法。
【請求項１５】
前記要求は、書込要求であり、前記書込要求に応答することは、
前記書込要求に対応するアドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれるかどうかを判定することと、
前記書込要求に対応する前記アドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれるときに、前記書込要求に対応するデータを前記ソリッド・ステート不揮発性ストレージに書き込むことによって前記書込要求に応答することとを含む、請求項１１に記載の方法。
【請求項１６】
前記要求は、書込要求であり、前記書込要求に応答することは、
前記書込要求に対応するアドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれるかどうかを判定することと、
前記書込要求に対応する前記アドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれないときに、前記ハード・ディスク・ストレージから前記ソリッド・ステート不揮発性ストレージにデータのブロックを転送することとを含み、データの前記ブロックは、前記書込要求に対応する前記アドレス空間を含み、さらに、
前記書込要求に対応するデータを前記ソリッド・ステート不揮発性ストレージに書き込むことによって前記書込要求に応答することとを含む、請求項１１に記載の方法。
【請求項１７】
前記要求は、拡張書込要求であり、前記拡張書込要求に応答することは、
前記拡張書込要求に対応するアドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれるかどうかを判定することと、
前記拡張書込要求に対応する前記アドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれないときに、前記拡張書込要求に対応するデータを前記ソリッド・ステート不揮発性ストレージを通過せずに前記ハード・ディスク・ストレージに書き込むことによって前記拡張書込要求に応答することとを含む、請求項１１に記載の方法。
【請求項１８】
前記要求は、拡張書込要求であり、前記拡張書込要求に応答することは、
前記拡張書込要求に対応するアドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれるかどうかを判定することと、
前記拡張書込要求に対応する前記アドレス空間が前記ソリッド・ステート不揮発性ストレージに少なくとも部分的に含まれるときに、前記ソリッド・ステート不揮発性ストレージ内の前記拡張書込要求に対応する前記アドレス空間を無効化することと、前記拡張書込要求に対応するデータを前記ソリッド・ステート不揮発性ストレージを通過させずに前記ハード・ディスク・ストレージに書き込むこととによって前記拡張書込要求に応答することとを含む、請求項１１に記載の方法。
【請求項１９】
前記要求は、拡張読取要求であり、前記拡張読取要求に応答することは、
前記拡張読取要求に対応するアドレス空間が前記ソリッド・ステート不揮発性ストレージに含まれるかどうかを判定することと、
前記読取要求に対応する前記アドレス空間が前記ソリッド・ステート不揮発性ストレージに少なくとも部分的に含まれるときに、前記ソリッド・ステート不揮発性ストレージから前記ハード・ディスク・ストレージに前記拡張読取要求に対応する前記アドレス空間を書き込むことと、前記ソリッド・ステート不揮発性ストレージを通過させずに前記ハード・ディスク・ストレージから前記拡張読取要求に応答することとによって前記拡張読取要求に応答することとを含む、請求項１１に記載の方法。
【請求項２０】
不揮発性ストレージ・システムであって、
ハード・ディスク・ストレージを含み、前記ハード・ディスク・ストレージは、
記憶媒体と、
前記記憶媒体への単一次元アクセスと前記記憶媒体への２次元アクセスとの両方を制御するように動作可能であるインターフェース・コントローラ回路とを含み、前記システムはさらに、
前記ハード・ディスク・ストレージ上に含まれるデータのサブセットをキャッシングするソリッド・ステート不揮発性ストレージと、
前記ソリッド・ステート不揮発性ストレージと前記ハード・ディスク・ストレージとの間のデータ転送を制御するように動作可能であるコントローラ回路とを含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ・デバイスを実施するためのシステムおよび方法に関し、より詳細には、ストレージの階層（ｔｉｅｒ）を有するストレージ・デバイスを実施するためのシステムおよび方法に関する。
【背景技術】
【０００２】
ハード・ディスク・ドライブは、しばしば、セクタごとにデータを書き込むように設計される。したがって、たとえば、ハード・ディスク・ドライブへの書込は、図１に絵図的に示されているように、所与の書込プロセス中に４０９６バイトを書き込むことを伴う場合がある。図１に従えば、ハード・ディスク・ドライブに書き込まれるデータの５１２バイト・セットが、ホストによって供給される（ステップＡ）。ハード・ディスク・ドライブは、書き込まれるアドレス空間１３０を含む４０９６バイト・データ・セット１２０を取り出す（ステップＢ）。ハード・ディスク・ドライブは、書き込まれるアドレス空間に書き込むべきデータ１１０を上書きし、その後、４０９６バイト・ブロック全体を不揮発性メモリにライト・バックする（ステップＣ）。そのような読取／変更／書込プロセスは、ホストおよびハード・ディスク・ドライブによってサポートされるメモリ・ブロックのサイズの不一致をサポートすることを可能にする。しかし、そのような手法は、ハード・ディスク・ドライブにアクセスする際にかなりの待ち時間をこうむる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
したがって、少なくとも前述の理由から、当技術分野には、不揮発性ストレージの高度なシステムおよび方法の必要が存在する。
【課題を解決するための手段】
【０００４】
本発明は、ストレージ・デバイスを実施するためのシステムおよび方法に関し、より詳細には、ストレージの階層を有するストレージ・デバイスを実施するためのシステムおよび方法に関する。
【０００５】
本発明のさまざまな実施形態は、多階層（ｍｕｌｔｉ−ｔｉｅｒｅｄ）不揮発性ストレージ・デバイスを提供する。上記デバイスは、ハード・ディスク・ストレージと、ソリッド・ステート不揮発性ストレージと、コントローラ回路とを含む。ソリッド・ステート不揮発性ストレージは、ハード・ディスク・ストレージ上に含まれるデータのサブセットをキャッシングし、コントローラ回路は、ソリッド・ステート不揮発性ストレージとハード・ディスク・ストレージとの間のデータ転送を制御するように動作可能である。いくつかの場合に、ハード・ディスク・ストレージは、ソリッド・ステート不揮発性ストレージより少なくとも１桁大きい。前述の実施形態のいくつかの実例では、ハード・ディスク・ストレージは、単一次元ハード・ディスク・ストレージまたは２次元ハード・ディスク・ストレージのいずれかとすることができる。他の実例では、ハード・ディスク・ストレージは、単一次元ハード・ディスク・ストレージと２次元ハード・ディスク・ストレージとの両方を含む。そのような実例では、単一次元ハード・ディスク・ストレージは、２次元ハード・ディスク・ストレージ上に含まれるデータのサブセットをキャッシングすることができ、コントローラ回路は、ソリッド・ステート不揮発性ストレージとハード・ディスク・ストレージとの間のデータ転送を制御するように動作可能とすることができる。特定の場合に、２次元ハード・ディスク・ストレージは、単一次元ハード・ディスク・ストレージより３倍大きい。
【０００６】
前述の実施形態の他の実例では、コントローラ回路は、ホストとハード・ディスク・ストレージとの間のマルチブロック転送を実行する時に、ソリッド・ステート不揮発性ストレージをバイパスするように動作可能である。いくつかのそのような実例では、デバイスは、コントローラ回路の制御の下で、ハード・ディスク・ストレージからのデータのブロックを格納し、要求元ホストへの一連のサブブロック転送を実行するように動作可能であるバッファをさらに含む。バッファを、コントローラ回路の制御の下で、ホストからの一連のサブブロック転送を受け取り、サブブロック転送をハード・ディスク・ストレージへの単一ブロック転送に組み合わせるように動作可能とすることもできる。
【０００７】
本発明の他の実施形態は、不揮発性データ・ストレージのための方法を提供する。そのような方法は、ハード・ディスク・ストレージと、ソリッド・ステート不揮発性ストレージと、コントローラ回路とを有する多階層不揮発性メモリを提供することを含む。ソリッド・ステート不揮発性ストレージは、ハード・ディスク・ストレージ上に含まれるデータのサブセットをキャッシングし、コントローラ回路は、ソリッド・ステート不揮発性ストレージとハード・ディスク・ストレージとの間のデータ転送を制御するように動作可能である。この方法は、多階層不揮発性メモリにアクセスする要求をホストから受け取ることと、要求に応答することとをさらに含む。
【０００８】
いくつかの場合に、要求は読取要求であり、読取要求に応答することは、読取要求に対応するアドレス空間がソリッド・ステート不揮発性ストレージに含まれるかどうかを判定することと、読取要求に対応するアドレス空間がソリッド・ステート不揮発性ストレージに含まれる場合に、ソリッド・ステート不揮発性ストレージから読取要求に応答することとを含む。他の場合に、読取要求に応答することは、ハード・ディスク・ストレージからソリッド・ステート不揮発性ストレージにデータのブロックを転送することを含む。データのブロックは、読取要求に対応するアドレス空間を含み、読取要求に対応するアドレス空間は、ソリッド・ステート不揮発性ストレージに含まれない。応答は、ソリッド・ステート不揮発性ストレージから読取要求に応答することをも含む。
【０００９】
前述の実施形態の特定の実例では、要求は、拡張読取要求である。そのような実例では、拡張読取要求に応答することは、拡張読取要求に対応するアドレス空間がソリッド・ステート不揮発性ストレージに含まれるかどうかを判定することと、読取要求に対応するアドレス空間がソリッド・ステート不揮発性ストレージに含まれない場合に、ソリッド・ステート不揮発性ストレージを通過せずにハード・ディスク・ストレージから拡張読取要求に応答することとを含むことができる。他の実例では、読取要求に対応するアドレス空間がソリッド・ステート不揮発性ストレージに少なくとも部分的に含まれる場合に、ソリッド・ステート不揮発性ストレージからハード・ディスク・ストレージに拡張読取要求に対応するアドレス空間を書き込むことと、ソリッド・ステート不揮発性ストレージを通過させずにハード・ディスク・ストレージから拡張読取要求に応答することとによって拡張読取要求に応答することと。
【００１０】
前述の実施形態の他の実例では、要求は、書込要求である。いくつかのそのような実例では、読取要求に応答することは、書込要求に対応するアドレス空間がソリッド・ステート不揮発性ストレージに含まれるかどうかを判定することと、書込要求に対応するアドレス空間がソリッド・ステート不揮発性ストレージに含まれる場合に、書込要求に対応するデータをソリッド・ステート不揮発性ストレージに書き込むことによって書込要求に応答することとを含む。その代わりに、書込要求に対応するアドレス空間がソリッド・ステート不揮発性ストレージに含まれない場合に、応答することは、ハード・ディスク・ストレージからソリッド・ステート不揮発性ストレージにデータのブロックを転送することを含む。データのブロックは、書込要求に対応するアドレス空間を含む。書込要求に対する応答は、書込要求に対応するデータをソリッド・ステート不揮発性ストレージに書き込むことを含む。
前述の実施形態の特定の実例では、要求は、拡張書込要求である。そのような実例では、拡張書込要求に応答することは、拡張書込要求に対応するアドレス空間がソリッド・ステート不揮発性ストレージに含まれるかどうかを判定することと、拡張書込要求に対応するアドレス空間がソリッド・ステート不揮発性ストレージに含まれない場合に、拡張書込要求に対応するデータをソリッド・ステート不揮発性ストレージを通過せずにハード・ディスク・ストレージに書き込むことによって拡張書込要求に応答することとを含む。他の場合に、拡張書込要求に対応するアドレス空間がソリッド・ステート不揮発性ストレージに少なくとも部分的に含まれる場合に、拡張書込要求に応答することは、ソリッド・ステート不揮発性ストレージ内の拡張書込要求に対応するアドレス空間を無効化することと、拡張書込要求に対応するデータをソリッド・ステート不揮発性ストレージを通過させずにハード・ディスク・ストレージに書き込むこととを含む。
【００１１】
本発明のさらに他の実施形態は、不揮発性ストレージ・システムを提供する。そのような不揮発性ストレージ・システムは、記憶媒体とインターフェース・コントローラ回路とを含むハード・ディスク・ストレージを含む。インターフェース・コントローラ回路は、記憶媒体への単一次元アクセスと記憶媒体への２次元アクセスとの両方を制御するように動作可能である。このストレージ・システムは、ハード・ディスク・ストレージ上に含まれるデータのサブセットをキャッシングするソリッド・ステート不揮発性ストレージと、ソリッド・ステート不揮発性ストレージとハード・ディスク・ストレージとの間のデータ転送を制御するように動作可能であるコントローラ回路とをさらに含む。
【００１２】
この要約は、本発明のいくつかの実施形態の全般的な概略だけを提供するものである。本発明の多数の他の目的、特徴、利益、および他の実施形態は、次の詳細な説明、添付の特許請求の範囲、および添付図面からより十分に明白になる。
【００１３】
本発明のさまざまな実施形態のさらなる理解を、本明細書の残りの部分で説明される図面を参照することによって実現することができる。図面では、類似する符号が、複数の図面全体を通じて類似するコンポーネントを参照するのに使用される。いくつかの場合に、小文字からなるサブラベルが、複数の類似するコンポーネントのうちの１つを表すために符号に関連付けられる。参照が、既存のサブラベルへの指定なしで符号に対して行われる時には、そのような複数の類似するコンポーネントのすべてを参照することが意図されている。
【図面の簡単な説明】
【００１４】
【図１】従来技術でハード・ディスク・ドライブにデータのブロックを書き込むのに使用される読取／変更／書込手法を絵図的に示す図である。
【図２】本発明の１つまたは複数の実施形態による、ホストに伝達可能に結合された階層不揮発性メモリを示す図である。
【図３】本発明のさまざまな実施形態による、ホストに伝達可能に結合されたもう１つの階層不揮発性メモリを示す図である。
【図４】本発明のいくつかの実施形態による、ホストに伝達可能に結合されたもう１つの階層不揮発性メモリを示す図である。
【図５】単一次元ハード・ディスク・ストレージ・デバイスで使用される単一次元トラックを絵図的に示す図である。
【図６】本発明のさまざまな実施形態による２次元ハード・ディスク・ストレージ・デバイスで使用される複数のトラックを絵図的に示す図である。
【図７】図７ａ乃至図７ｃは、本発明のいくつかの実施形態による２次元ハード・ディスク・ストレージ・デバイスにデータを書き込むプロセスを絵図的に示す図である。
【図８】本発明のいくつかの実施形態による多階層ストレージ・デバイスを示す図である。
【図９】本発明のいくつかの実施形態による階層不揮発性ストレージ・デバイスに関するデータを格納する方法を示す流れ図である。
【図１０】本発明の１つまたは複数の実施形態による上位階層ソリッド・ステート不揮発性ストレージをバイパスする方法を示す流れ図である。
【発明を実施するための形態】
【００１５】
本発明は、ストレージ・デバイスを実施するためのシステムおよび方法に関し、より詳細には、ストレージの階層を有するストレージ・デバイスを実施するためのシステムおよび方法に関する。
【００１６】
図２に移ると、本発明の１つまたは複数の実施形態による、ホスト２１０に伝達可能に結合された階層不揮発性メモリ２２０を含むシステム２００が示されている。ホスト２１０は、ストレージ・デバイスへおよびこれからデータを転送することができる任意のデバイスまたはシステムとすることができる。したがって、ホスト２１０は、当技術分野で既知のマイクロプロセッサ、コンピュータ・ベースのシステム、またはインターフェース回路とすることができるが、これらに限定はされない。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態に従ってホストとして働くことができるさまざまなデバイスおよび／またはシステムを認めるであろう。
【００１７】
階層不揮発性メモリ２２０は、メモリの３つの階層を含む。具体的に言うと、階層不揮発性メモリ２２０は、ソリッド・ステート不揮発性ストレージ２３０を含む第１階層、単一次元ハード・ディスク・ストレージ２４０を含む第２階層、および２次元ハード・ディスク・ストレージ２４５を含む第３階層を含む。ソリッド・ステート不揮発性ストレージ２３０を、当技術分野で既知の任意のソリッド・ステート・メモリ・テクノロジを使用して実施することができる。したがって、ソリッド・ステート不揮発性ストレージ２３０は、フラッシュ・メモリ、相変化メモリ、スピントルク・メモリ、強誘電体メモリ、磁気メモリ、抵抗メモリ、レーストラック・メモリ、酸化物トラップ・ベースのフラッシュ・メモリ、または当技術分野で既知の他の不揮発性ソリッド・ステート・メモリ（これらに限定はされない）を使用して実施することができる。ソリッド・ステート不揮発性ストレージ２３０は、減らされた電力および穏当な信頼性を含むソリッド・ステート・デバイスの他の利益と一緒に、高速Ｉ／Ｏアクセスという利益を提供する。さらに、ソリッド・ステート不揮発性ストレージ２３０は、ホスト２１０と階層不揮発性メモリ２２０との間で長いメモリ・アクセスと短いメモリ・アクセスとを変換する能力を提供する。
【００１８】
単一次元ハード・ディスク・ストレージ２４０は、トラック幅が実質的にディスクからのデータの書込に使用される書込ヘッドと同一幅であるハード・ディスクである。これは、図５に関して絵図的に図示され、下でより詳細に説明される。単一次元ハード・ディスク・ストレージ２４０は、データの比較的長いセクタを含む場合がある。そのようなセクタは、ホスト２１０によってサポートされるアクセス・ブロックよりはるかに長い場合がある。たとえば、そのようなセクタは、長さが４０９６バイトである場合があるが、ホスト２１０によってサポートされるアクセス長は、５１２バイトに過ぎない場合がある。さらに、単一次元ハード・ディスク・ストレージ２４０は、通常、増やされたアクセス待ち時間でではあるが、ソリッド・ステート不揮発性メモリと比較してより低いビットあたりのコストを提供する。
【００１９】
対照的に、２次元ハード・ディスク・ストレージ２４５は、トラック幅がディスクからデータを書き込むのに使用される書込ヘッドの幅より狭いハード・ディスクである。これは、図６〜７に関して絵図的に図示され、下でより詳細に説明される。書込幅あたりの幅より小さいトラック幅を提供することによって、２次元ハード・ディスク・ストレージ２４５は、高められた面密度を提供し、したがってストレージのビットあたりのコストを下げることができる。そのような手法は、一般に、複数のトラックにまたがる強力なコードに頼る。高められたビット密度を提供すると同時に、比較的遅いＩ／Ｏレートがサポートされる。しかし、これらの遅いアクセス時間は、平均して、ソリッド・ステート不揮発性ストレージ２３０および単一次元ハード・ディスク・ストレージ２４０を介するアクセスによって隠蔽される。
【００２０】
本発明のいくつかの実施形態では、ソリッド・ステート不揮発性ストレージ２３０は、単一次元ハード・ディスク・ストレージ２４０に対してキャッシュとして動作し、単一次元ハード・ディスク・ストレージ２４０は、２次元ハード・ディスク・ストレージ２４５のキャッシュとして動作する。キャッシュのレベルのそれぞれの間でのキャッシングは、コントローラ回路２３５によって制御される。そのようなキャッシングは、読取／変更／書込命令の待ち時間をホスト２１０からマスクすることができるという利益を提供する。言い換えると、読取／変更  書込プロセスが、いくつかの場合に、それでもソリッド・ステート不揮発性ストレージ２３０と単一次元ハード・ディスク・ストレージ２４０との間および／または単一次元ハード・ディスク・ストレージ２４０と２次元ハード・ディスク・ストレージ２４５との間で実行される場合があるが、そのようなプロセスによって引き起こされる待ち時間は、ホスト２１０からマスクされる。代替案では、いくつかの場合に、ソリッド・ステート不揮発性ストレージ２３０が、単一次元ハード・ディスク・ストレージ２４０からプルされたセクタ全体（またはデータのより大きいブロック）を含み、所与のセクタの一部だけの上書きを可能にすることができる。ソリッド・ステート不揮発性ストレージ２３０が満杯であり、ソリッド・ステート不揮発性ストレージ２３０に含まれないアドレスがアクセスされる時には、キャッシュ・ミスが発生する。そのようなキャッシュ・ミスは、ソリッド・ステート不揮発性ストレージ２３０から単一次元ハード・ディスク・ストレージ２４０へのデータの少なくとも１セクタのライト・バック（またはソリッド・ステート不揮発性ストレージ２３０内のデータのセクタの無効化）およびアクセスされるアドレスを含む単一次元ハード・ディスク・ストレージ２４０からのデータのセクタの読取を引き起こす。アクセスされるアドレスを含むデータが単一次元ハード・ディスク・ストレージ２４０に含まれない場合には、別のキャッシュ・ミスが発生する。このキャッシュ・ミスは、単一次元ハード・ディスク・ストレージ２４０から２次元ハード・ディスク・ストレージ２４５へのデータの少なくとも１セクタのライト・バック（または単一次元ハード・ディスク・ストレージ２４０内のデータの少なくとも１セクタの無効化）およびアクセスされるアドレスを含む２次元ハード・ディスク・ストレージ２４５からのデータのセクタの読取を引き起こす。当技術分野で既知のすべてのキャッシュ・ミス・サポート手法および／またはキャッシュ置換方式を、キャッシュ・ミスが発生したかどうかを判定するのに、およびキャッシュ置換を実行するキャッシュの異なるレベルの間でデータを転送するに使用できることに留意されたい。
【００２１】
いくつかの他の利益として、階層不揮発性ストレージ２２０のより短いアクティブ・デューティ・サイクルを、マルチレベル・キャッシング方式が使用される場合に使用することができる。さらに、読取／変更／書込プロセスの待ち時間がホスト２１０からマスクされるので、単一次元ハード・ディスク・ストレージ２４０内のハード・ディスクは、はるかに低い回転速度で動作することができる。
【００２２】
本発明の特定の一実施形態では、単一次元ハード・ディスク・ストレージ２４０は、ソリッド・ステート不揮発性ストレージ２３０より１０倍大きく、２次元ハード・ディスク・ストレージ２４５は、単一次元ハード・ディスク・ストレージ２４０より１０倍大きい。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態に従ってサポートできるソリッド・ステート不揮発性ストレージ２３０、単一次元ハード・ディスク・ストレージ２４０、および／または２次元ハード・ディスク・ストレージ２４５の間のさまざまな異なる比を認めるであろう。本発明の特定の一実施形態では、２次元ハード・ディスク・ストレージ２４５は、２テラバイトであり、一次元ハード・ディスク・ストレージ２４０は、５ギガバイトであり、ソリッド・ステート不揮発性ストレージ２３０は、５０メガバイトである。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態による２次元ハード・ディスク・ストレージ、単一次元ハード・ディスク・ストレージ、およびソリッド・ステート不揮発性ストレージのそれぞれに使用できるさまざまなメモリ・サイズを認めるであろう。
【００２３】
注目すべきことに、ホスト２１０から階層不揮発性メモリ２２０への連続データ要求が受け取られる場合に、コントローラ回路２３５は、ソリッド・ステート不揮発性ストレージ２３０をバイパスさせることができる。このバイパスは、バッファ２５０を使用して単一次元ハード・ディスク・ストレージ２４０とホスト２１０との間でデータをバッファリングすることによって達成することができる。バッファ２５０は、当技術分野で既知の任意のメモリ・デバイスとすることができる。たとえば、バッファ２５０を、単一次元ハード・ディスク・ストレージ２４０によって望まれる転送ブロックをバッファリングするのに十分なサイズのランダム・アクセス揮発性ソリッド・ステート・メモリとすることができる。したがって、たとえば、単一次元ハード・ディスク・ストレージが、アクセスあたり４０９６バイトを転送する場合には、バッファ２５０を８１９２バイトとすることができる。バッファ２５０および単一次元ハード・ディスク・ストレージ２４０ヘ／からの転送は、コントローラ回路２３５によって制御される。一例として、データの複数のセクタがホスト２１０によって読み取られ、そのセクタのどれもがソリッド・ステート不揮発性ストレージ２３０に含まれない場合には、コントローラ回路２３５は、ソリッド・ステート不揮発性ストレージ２３０を介してデータを渡さずに、直接に読取をサポートするように単一次元ハード・ディスク・ストレージ２４０に指示することができる。そのような手法は、ソリッド・ステート不揮発性ストレージ２３０の寿命を減らす、ソリッド・ステート不揮発性ストレージ２３０への不必要な書込を回避する。データの一部がソリッド・ステート不揮発性ストレージ２３０に存在し、単一次元ハード・ディスク・ストレージ２４０上で維持されるデータと比較して更新されている場合には、ソリッド・ステート不揮発性ストレージ２３０から単一次元ハード・ディスク・ストレージ２４０へのライト・バックを、単一次元ハード・ディスク・ストレージ２４０からのブロック転送を開始する前にトリガすることができる。この議論に基づいて、当業者は、ソリッド・ステート不揮発性ストレージ２３０への不必要な書込を回避するために本発明の異なる実施形態に従って使用できる他のバイパス手法を認めるであろう。
【００２４】
図３に移ると、本発明の１つまたは複数の実施形態による、ホスト３１０に伝達可能に結合された階層不揮発性メモリ３２０を含むシステム３００が示されている。ホスト３１０は、ストレージ・デバイスにおよびこれからデータを転送することができる任意のデバイスまたはシステムとすることができる。したがって、ホスト３１０を、当技術分野で既知のマイクロプロセッサ、コンピュータ・ベースのシステム、またはインターフェース回路とすることができるが、これらに限定はされない。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態に従ってホストとして働くことができるさまざまなデバイスおよび／またはシステムを認めるであろう。
【００２５】
階層不揮発性メモリ３２０は、メモリの２つの階層を含む。具体的に言うと、階層不揮発性メモリ３２０は、ソリッド・ステート不揮発性ストレージ３３０を含む第１階層と、単一次元ハード・ディスク・ストレージ３４０を含む第２階層とを含む。ソリッド・ステート不揮発性ストレージ３３０は、当技術分野で既知の任意のソリッド・ステート・メモリ・テクノロジを使用して実施することができる。したがって、ソリッド・ステート不揮発性ストレージ３３０を、フラッシュ・メモリ、相変化メモリ、スピントルク・メモリ、強誘電体メモリ、磁気メモリ、抵抗メモリ、レーストラック・メモリ、酸化物トラップ・ベースのフラッシュ・メモリ、または当技術分野で既知の他の不揮発性ソリッド・ステート・メモリ（これらに限定はされない）を使用して実施することができる。ソリッド・ステート不揮発性ストレージ３３０は、減らされた電力および穏当な信頼性を含むソリッド・ステート・デバイスの他の利益と一緒に、高速Ｉ／Ｏアクセスという利益を提供する。さらに、ソリッド・ステート不揮発性ストレージ３３０は、ホスト３１０と階層不揮発性メモリ３２０との間で長いメモリ・アクセスと短いメモリ・アクセスとを変換する能力を提供する。
【００２６】
単一次元ハード・ディスク・ストレージ３４０は、トラック幅が実質的にディスクからのデータの書込に使用される書込ヘッドと同一幅であるハード・ディスクである。単一次元ハード・ディスク・ストレージ３４０は、データの比較的長いセクタを含む場合がある。そのようなセクタは、ホスト３１０によってサポートされるアクセス・ブロックよりはるかに長い場合がある。たとえば、そのようなセクタは、長さが４０９６バイトである場合があるが、ホスト３１０によってサポートされるアクセス長は、５１２バイトに過ぎない場合がある。さらに、単一次元ハード・ディスク・ストレージ３４０は、通常、増やされたアクセス待ち時間でではあるが、ソリッド・ステート不揮発性メモリと比較してより低いビットあたりのコストを提供する。
【００２７】
本発明のいくつかの実施形態では、ソリッド・ステート不揮発性ストレージ３３０は、単一次元ハード・ディスク・ストレージ３４０に対してキャッシュとして動作する。この２つのレベルの間でのキャッシングは、コントローラ回路３３５によって制御される。そのようなキャッシングは、読取／変更／書込命令の待ち時間をホスト３１０からマスクすることができるという利益を提供する。言い換えると、読取／変更  書込プロセスが、いくつかの場合に、それでもソリッド・ステート不揮発性ストレージ３３０と単一次元ハード・ディスク・ストレージ３４０との間で実行される場合があるが、そのようなプロセスによって引き起こされる待ち時間は、ホスト３１０からマスクされる。代替案では、いくつかの場合に、ソリッド・ステート不揮発性ストレージ３３０が、単一次元ハード・ディスク・ストレージ３４０からプルされたセクタ全体（またはデータのより大きいブロック）を含み、所与のセクタの一部だけの上書きを可能にすることができる。ソリッド・ステート不揮発性メモリ３３０が満杯であり、ソリッド・ステート不揮発性メモリ３３０に含まれないアドレスがアクセスされる時には、キャッシュ・ミスが発生する。そのようなキャッシュ・ミスは、ソリッド・ステート不揮発性ストレージ３３０から単一次元ハード・ディスク・ストレージ３４０へのデータの少なくとも１セクタのライト・バック（またはソリッド・ステート不揮発性ストレージ３３０のデータのセクタの無効化）およびアクセスされるアドレスを含む単一次元ハード・ディスク・ストレージ３４０からのデータのセクタの読取を引き起こす。当技術分野で既知のすべてのキャッシュ・ミス・サポート手法および／またはキャッシュ置換方式を、キャッシュ・ミスが発生したかどうかを判定するのに、およびキャッシュの異なるレベルの間でデータを転送するに使用できることに留意されたい。いくつかの他の利益として、階層不揮発性ストレージ３２０のより短いアクティブ・デューティ・サイクルを、そのようなキャッシング方式が使用される場合に使用することができる。さらに、読取／変更／書込プロセスの待ち時間がホスト３１０からマスクされるので、単一次元ハード・ディスク・ストレージ３４０内のハード・ディスクは、はるかに低い回転速度で動作することができる。
【００２８】
本発明の特定の一実施形態では、単一次元ハード・ディスク・ストレージ３４０は、ソリッド・ステート不揮発性ストレージ３３０より５０倍大きい。本明細書で提供される開示に基づいて、当業者は、ソリッド・ステート不揮発性ストレージ３３０と単一次元ハード・ディスク・ストレージ３４０との間のさまざまな異なる比を認めるであろう。本発明の特定の一実施形態では、単一次元ハード・ディスク・ストレージ３４０は、１テラバイトであり、ソリッド・ステート不揮発性ストレージは、５ギガバイトである。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態による単一次元ハード・ディスク・ストレージおよびソリッド・ステート不揮発性ストレージのそれぞれに使用できるさまざまなメモリ・サイズを認めるであろう。
【００２９】
注目すべきことに、ホスト３１０から階層不揮発性メモリ３２０への連続データ要求が受け取られる場合に、コントローラ回路３３５は、ソリッド・ステート不揮発性ストレージ３３０をバイパスさせることができる。このバイパスは、バッファ３５０を使用して単一次元ハード・ディスク・ストレージ３４０とホスト３１０との間でデータをバッファリングすることによって達成することができる。バッファ３５０は、当技術分野で既知の任意のメモリ・デバイスとすることができる。たとえば、バッファ３５０を、単一次元ハード・ディスク・ストレージ３４０によって望まれる転送ブロックをバッファリングするのに十分なサイズのランダム・アクセス揮発性ソリッド・ステート・メモリとすることができる。したがって、たとえば、単一次元ハード・ディスク・ストレージが、アクセスあたり４０９６バイトを転送する場合には、バッファ３５０を４０９６バイトとすることができる。バッファ３５０および単一次元ハード・ディスク・ストレージ３４０ヘ／からの転送は、コントローラ回路３３５によって制御される。一例として、データの複数のセクタがホスト３１０によって読み取られ、そのセクタのどれもがソリッド・ステート不揮発性ストレージ３３０に含まれない場合には、コントローラ回路３３５は、ソリッド・ステート不揮発性ストレージ３３０を介してデータを渡さずに、直接に読取をサポートするように単一次元ハード・ディスク・ストレージ３４０に指示することができる。そのような手法は、ソリッド・ステート不揮発性ストレージ３３０の寿命を減らす、ソリッド・ステート不揮発性ストレージ３３０への不必要な書込を回避する。データの一部がソリッド・ステート不揮発性ストレージ３３０に存在し、単一次元ハード・ディスク・ストレージ３４０上で維持されるデータと比較して更新されている場合には、ソリッド・ステート不揮発性ストレージ３３０から単一次元ハード・ディスク・ストレージ３４０へのライト・バックを、単一次元ハード・ディスク・ストレージ３４０からのブロック転送を開始する前にトリガすることができる。この議論に基づいて、当業者は、ソリッド・ステート不揮発性ストレージ３３０への不必要な書込を回避するために本発明の異なる実施形態に従って使用できる他のバイパス手法を認めるであろう。
【００３０】
図４に移ると、本発明の１つまたは複数の実施形態による、ホスト４１０に伝達可能に結合された階層不揮発性メモリ４２０を含むシステム４００が示されている。ホスト４１０は、ストレージ・デバイスへおよびこれからデータを転送することができる任意のデバイスまたはシステムとすることができる。したがって、ホスト４１０は、当技術分野で既知のマイクロプロセッサ、コンピュータ・ベースのシステム、またはインターフェース回路とすることができるが、これらに限定はされない。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態に従ってホストとして働くことができるさまざまなデバイスおよび／またはシステムを認めるであろう。
【００３１】
階層不揮発性メモリ４２０は、メモリの２つの階層を含む。具体的に言うと、階層不揮発性メモリ４２０は、ソリッド・ステート不揮発性ストレージ４３０を含む第１階層と２次元ハード・ディスク・ストレージ３４５を含む第２階層とを含む。ソリッド・ステート不揮発性ストレージ４３０を、当技術分野で既知の任意のソリッド・ステート・メモリ・テクノロジを使用して実施することができる。したがって、ソリッド・ステート不揮発性ストレージ４３０は、フラッシュ・メモリ、相変化メモリ、スピントルク・メモリ、強誘電体メモリ、磁気メモリ、抵抗メモリ、レーストラック・メモリ、酸化物トラップ・ベースのフラッシュ・メモリ、または当技術分野で既知の他の不揮発性ソリッド・ステート・メモリ（これらに限定はされない）を使用して実施することができる。ソリッド・ステート不揮発性ストレージ４３０は、減らされた電力および穏当な信頼性を含むソリッド・ステート・デバイスの他の利益と一緒に、高速Ｉ／Ｏアクセスという利益を提供する。さらに、ソリッド・ステート不揮発性ストレージ４３０は、ホスト４１０と階層不揮発性メモリ４２０との間で長いメモリ・アクセスと短いメモリ・アクセスとを変換する能力を提供する。
【００３２】
２次元ハード・ディスク・ストレージ４４５は、トラック幅がディスクからデータを書き込むのに使用される書込ヘッドの幅より狭いハード・ディスクである。書込幅あたりの幅より小さいトラック幅を提供することによって、２次元ハード・ディスク・ストレージ４４５は、高められた面密度を提供し、したがってストレージのビットあたりのコストを下げることができる。そのような手法は、一般に、複数のトラックにまたがる強力なコードに頼る。高められたビット密度を提供すると同時に、比較的遅いＩ／Ｏレートがサポートされる。しかし、これらの遅いアクセス時間を、平均して、ソリッド・ステート不揮発性ストレージ４３０を介するアクセスによって隠蔽することができる。
【００３３】
本発明のいくつかの実施形態では、ソリッド・ステート不揮発性ストレージ４３０は、２次元ハード・ディスク・ストレージ４４５に対してキャッシュとして動作する。キャッシュの２つのレベルの間でのキャッシングは、コントローラ回路４３５によって制御される。そのようなキャッシングは、読取／変更／書込命令の待ち時間をホスト４１０からマスクすることができるという利益を提供する。言い換えると、読取／変更  書込プロセスが、いくつかの場合に、それでもソリッド・ステート不揮発性ストレージ４３０と２次元ハード・ディスク・ストレージ４４５との間で実行される場合があるが、そのようなプロセスによって引き起こされる待ち時間は、ホスト４１０からマスクされる。代替案では、いくつかの場合に、ソリッド・ステート不揮発性ストレージ４３０が、単一次元ハード・ディスク・ストレージ４４０からプルされたセクタ全体（またはデータのより大きいブロック）を含み、所与のセクタの一部だけの上書きを可能にすることができる。ソリッド・ステート不揮発性メモリ４３０が満杯であり、ソリッド・ステート不揮発性メモリ４３０に含まれないアドレスがアクセスされる時には、キャッシュ・ミスが発生する。そのようなキャッシュ・ミスは、ソリッド・ステート不揮発性ストレージ４３０から２次元ハード・ディスク・ストレージ４４５へのデータの少なくとも１セクタのライト・バック（またはソリッド・ステート不揮発性ストレージ４３０のデータのセクタの無効化）および少なくともアクセスされるアドレスを含む２次元ハード・ディスク・ストレージ４４５からのデータのセクタの読取を引き起こす。当技術分野で既知のすべてのキャッシュ・ミス・サポート手法および／またはキャッシュ置換方式を、キャッシュ・ミスが発生したかどうかを判定するのに、およびキャッシュの異なるレベルの間でデータを転送するに使用できることに留意されたい。
【００３４】
本発明の特定の一実施形態では、２次元ハード・ディスク・ストレージ４４５は、ソリッド・ステート不揮発性ストレージ４３０より５０倍大きい。本明細書で提供される開示に基づいて、当業者は、ソリッド・ステート不揮発性ストレージ４３０と２次元ハード・ディスク・ストレージ４４５との間のさまざまな異なる比を認めるであろう。本発明の特定の一実施形態では、２次元ハード・ディスク・ストレージ４４５は、２テラバイトであり、ソリッド・ステート不揮発性ストレージは、１６ギガバイトである。本明細書で提供される開示に基づいて、当業者は、本発明の異なる実施形態による単一次元ハード・ディスク・ストレージおよびソリッド・ステート不揮発性ストレージのそれぞれに使用できるさまざまなメモリ・サイズを認めるであろう。
【００３５】
注目すべきことに、ホスト４１０から階層不揮発性メモリ４２０の連続データ要求が受け取られる場合に、コントローラ回路４３５は、ソリッド・ステート不揮発性ストレージ４３０をバイパスさせる。このバイパスは、バッファ４５０を使用して２次元ハード・ディスク・ストレージ４４５とホスト４１０との間でデータをバッファリングすることによって達成することができる。バッファ４５０は、当技術分野で既知の任意のメモリ・デバイスとすることができる。たとえば、バッファ４５０を、２次元ハード・ディスク・ストレージ４４５によって望まれる転送ブロックをバッファリングするのに十分なサイズのランダム・アクセス揮発性ソリッド・ステート・メモリとすることができる。したがって、たとえば、２次元ハード・ディスク・ストレージが、アクセスあたり３２Ｋバイトを転送する場合には、バッファ４５０を６４Ｋバイトとすることができる。バッファ４５０および２次元ハード・ディスク・ストレージ４４５ヘ／からの転送は、コントローラ回路４３５によって制御される。一例として、データの複数のセクタがホスト４１０によって読み取られ、そのセクタのどれもがソリッド・ステート不揮発性ストレージ４３０に含まれない場合には、コントローラ回路４３５は、ソリッド・ステート不揮発性ストレージ４３０を介してデータを渡さずに、直接に読取をサポートするように２次元ハード・ディスク・ストレージ４４５に指示することができる。そのような手法は、ソリッド・ステート不揮発性ストレージ４３０の寿命を減らす、ソリッド・ステート不揮発性ストレージ４３０への不必要な書込を回避する。データの一部がソリッド・ステート不揮発性ストレージ４３０に存在し、２次元ハード・ディスク・ストレージ４４５上で維持されるデータと比較して更新されている場合には、ソリッド・ステート不揮発性ストレージ４３０から２次元ハード・ディスク・ストレージ４４５へのライト・バックを、２次元ハード・ディスク・ストレージ４４５からのブロック転送を開始する前にトリガすることができる。この議論に基づいて、当業者は、ソリッド・ステート不揮発性ストレージ４３０への不必要な書込を回避するために本発明の異なる実施形態に従って使用できる他のバイパス手法を認めるであろう。
【００３６】
図５に移ると、単一次元ハード・ディスク・ストレージ・デバイスの一部５００が示されている。一部５００は、サーボ・データ領域５２０、５３０が散在する複数のユーザ・データ領域５２５を含む単一のトラック５４０を含む。書込ヘッド５１０は、トラック５４０に関して配置され、書込ヘッド５１０が領域の上を通過する際に磁気パターンをユーザ・データ領域５２５に書き込ませるように動作可能である。注目すべきことに、トラック５４０の幅は、書込ヘッド５１０の幅５１２とほぼ同一である。トラック５４０が、当技術分野で既知のように記憶媒体の表面に配置された多数の平行トラックのうちの１つであることに留意されたい。
【００３７】
動作中に、書込ヘッドは、定義された速度でユーザ・データ領域５２５の上を通過する。書込ヘッド５１０がユーザ・データ領域５２５の上を通過する時の各ビット期間中に、異なる電流が書込ヘッド５１０に通され、書込ヘッド５１０の周囲に磁界を誘導する。この磁界は、ユーザ・データ領域５２５に対応する記憶媒体の表面上に変化するレベルの磁化を引き起こす。この磁界を、後に感知し、ユーザ・データ領域５２５に対応する記憶媒体の表面上に最初に書き込まれたデータを再生成するのに使用することができる。注目すべきことに、ユーザ・データ領域へのデータ・パターンの書込は、トラック５４０の上に書込ヘッドを１回だけ通過させることを伴う。
【００３８】
図６に移ると、２次元ハード・ディスク・ストレージ・デバイスの一部６００が示されている。一部６００は、それぞれサーボ・データ領域６２０、６２２、６２４、６３０、６３２、および６３４が散在するそれぞれのユーザ・データ領域６２５、６２７、および６２９をそれぞれが含む複数のトラック６４０を含む。書込ヘッド６１０は、複数のトラック６４０に関して配置され、書込ヘッド６１０がそれぞれの領域の上を通過する際に磁気パターンをユーザ・トウまたはより多くのデータ領域６２５、６２７、および６２９に書き込ませるように動作可能である。注目すべきことに、複数のトラック６４０の個々のトラックのいずれの幅（すなわち、トラック幅６１４、トラック幅６１６、およびトラック幅６１８）も、それぞれ、書込ヘッド６１０の幅６１２より実質的に狭い。複数のトラック６４０の個々のトラックが、当技術分野で既知のように記憶媒体の表面に配置された多数の平行トラックのうちのいくつかに過ぎないことに留意されたい。書込ヘッド６１０が、任意の所与のトラックの幅の約２倍として図示されているが、他の実施形態が、互いに対して異なる比率である幅を示す書込ヘッドおよびトラックを使用できることに留意されたい。
【００３９】
そのような２次元ハード・ディスク・ストレージの使用を、図７ａ〜７ｃに関してより十分に説明する。図７ａを参照すると、書込ヘッド６１０は、ユーザ・データ領域７２５およびユーザ・データ領域７２７を含む最初の２つのトラックの上を通過する。書込ヘッド６１０がユーザ・データ領域７２５およびユーザ・データ領域７２７の上を通過する時の各ビット期間中に、異なる電流が書込ヘッド６１０に通され、書込ヘッド６１０の周囲に磁界を誘導する。この磁界は、ユーザ・データ領域７２５およびユーザ・データ領域７２７に対応する記憶媒体の表面上に変化するレベルの磁化を引き起こす。これが、ユーザ・データ領域７２５とユーザ・データ領域７２７との両方への同一の「第１書込ユーザ・データ」の書込をもたらす。
【００４０】
図７ｂに示されているように、書込ヘッド６１０は、その後、ユーザ・データ領域７２７およびユーザ・データ領域７２９の上を同時に飛ぶように移動される。書込ヘッド６１０がユーザ・データ領域７２７およびユーザ・データ領域７２９の上を通過する各ビット期間中に、異なる電流が書込ヘッド６１０に通され、書込ヘッド６１０の周囲に磁界を誘導する。この磁界は、ユーザ・データ領域７２７およびユーザ・データ領域７２９に対応する記憶媒体の表面上に変化するレベルの磁化を引き起こす。これが、ユーザ・データ領域７２７とユーザ・データ領域７２９との両方への同一の「第２書込ユーザ・データ」の書込をもたらす。注目すべきことに、以前に第１書込ユーザ・データを書き込まれたユーザ・データ領域７２７は、第２書込ユーザ・データを上書きされる。
【００４１】
図７ｃに示されているように、プロセスは、書込ヘッド６１０がユーザ・データ領域７２９およびユーザ・データ領域７３１の上を同時に飛ぶように書込ヘッド６１０を移動することによって継続される。書込ヘッド６１０がユーザ・データ領域７２９およびユーザ・データ領域７３１の上を通過する各ビット期間中に、異なる電流が書込ヘッド６１０に通され、書込ヘッド６１０の周囲に磁界を誘導する。この磁界は、ユーザ・データ領域７２９およびユーザ・データ領域７３１に対応する記憶媒体の表面上に変化するレベルの磁化を引き起こす。これが、ユーザ・データ領域７２９とユーザ・データ領域７３１との両方への同一の「第３書込ユーザ・データ」の書込をもたらす。注目すべきことに、以前に第２書込ユーザ・データを書き込まれたユーザ・データ領域７２９は、第３書込ユーザ・データを上書きされる。
【００４２】
図７ａ〜７ｃに示された「シングリング（ｓｈｉｎｇｌｉｎｇ）」効果は、一緒にブロック化される複数のトラックについて繰り返される。注目すべきことに、書込ヘッド６１０の幅に基づく以前の制限が除去されるので、非常に高いビット密度を達成することができる。そのようなシングリングされた書込の待ち時間が、図５に関して上で述べた単一次元トラック書込プロセスと比較した時に実質的に増える可能性があることにも留意されたい。
【００４３】
本発明のいくつかの実施形態では、単一次元ハード・ディスク・ストレージは、２次元ハード・ディスク・ストレージとは別の別々のデバイス上で実施される。他の場合には、単一次元ハード・ディスク・ストレージは、２次元ハード・ディスク・ストレージと同一のデバイス上で実施される。図８に移ると、本発明のいくつかの実施形態による、２次元ハード・ディスク・ストレージと同一デバイス上で実施される単一次元ハード・ディスク・ストレージを含む多階層ストレージ・デバイス８００が示されている。具体的に言うと、多階層ストレージ・デバイス８００は、ソリッド・ステート不揮発性ストレージ８９０を含む。インターフェース・コントローラ８２０は、単一次元ハード・ディスク・ストレージ・アクセスまたは２次元ハード・ディスク・ストレージ・アクセスのいずれかとしてディスク・プラッタ８７８にアクセスするための制御を提供する。多階層ストレージ・デバイス８００は、前置増幅器８７０、ハード・ディスク・コントローラ８６６、モーター・コントローラ８６８、スピンドル・モーター８７２、および読取／書込ヘッド８７６をも含む。インターフェース・コントローラ８２０は、ディスク・プラッタ８７８へ／からのデータのアドレッシングおよびタイミングを制御する。ディスク・プラッタ８７８上のデータは、読取／書込ヘッド・アセンブリ８７６がディスク・プラッタ８７８の上に正しく位置決めされる時に読取／書込ヘッド・アセンブリ８７６によって検出できる磁気信号のグループからなる。一実施形態では、ディスク・プラッタ８７８は、長手記録方式または垂直記録方式のいずれかに従って記録された磁気信号を含む。やはり、ディスク・プラッタ８７８に格納されるデータを、図５に関して上で述べたものに類似する単一次元ストレージ・デバイスまたは図６〜７に関して上で述べたものに類似する２次元ストレージ・デバイスのいずれかに従って書き込むことができる。
【００４４】
通常の書込動作では、書き込まれるアドレスがソリッド・ステート不揮発性ストレージ８９０に含まれるかどうかが判定される。そのアドレスがソリッド・ステート不揮発性ストレージ８９０に含まれる場合に、インターフェース・コントローラ８２０は、ホスト（図示せず）からの書込データ８０２をソリッド・ステート不揮発性ストレージ８９０内の適切なアドレスに書き込ませる。その一方で、そのアドレスがソリッド・ステート不揮発性ストレージ８９０に含まれないが、ディスク・プラッタ８７８の単一次元部分に含まれる場合には、読取／書込ヘッド・アセンブリ８７６が、モーター・コントローラ８６８によってディスク・プラッタ８７８上の所望のデータ・トラックの上に正確に位置決めされる。モーター・コントローラ８６８は、ハード・ディスク・コントローラ８６６の指示の下で読取／書込ヘッド・アセンブリをディスク・プラッタ８７８上の正しいデータ・トラックに移動することによって、ディスク・プラッタ８７８に関して読取／書込ヘッド・アセンブリ８７６を位置決めすると同時に、スピンドル・モーター８７２を駆動する。スピンドル・モーター８７２は、決定されたスピン・レート（ＲＰＭ）でディスク・プラッタ８７８を回転させる。読取／書込ヘッド・アセンブリ８７８が正しいデータ・トラックに隣接して位置決めされた後に、ディスク・プラッタ８７８上のデータを表す磁気信号が、ディスク・プラッタ８７８がスピンドル・モーター８７２によって回転される時に読取／書込ヘッド・アセンブリ８７６によって感知される。感知された磁気信号は、ディスク・プラッタ８７８上の磁気データを表す連続微細アナログ信号として供給される。この微細アナログ信号は、読取／書込ヘッド・アセンブリ８７６から前置増幅器８７０を介して読取チャネル・モジュール８６４に転送される。前置増幅器８７０は、ディスク・プラッタ８７８からアクセスされた微細アナログ信号を増幅するように動作可能である。読取チャネル・モジュール８１０は、受け取られたアナログ信号を復号し、ディジタル化して、ディスク・プラッタ８７８に最初に書き込まれた情報を再作成する。このデータは、読取データ８０５としてソリッド・ステート不揮発性ストレージ８９０に供給され、そこでキャッシングされる。ソリッド・ステート不揮発性ストレージ８９０は、書込データ８０２に対応するソリッド・ステート不揮発性ストレージ８９０に最近に格納されたデータの一部を上書きする。この書込データ８０２は、多階層ストレージ・デバイス８００によって使用されるキャッシュ置換ポリシに従ってソリッド・ステート不揮発性ストレージ８９０からディスク・プラッタにフラッシュされるまで、ソリッド・ステート不揮発性ストレージ８９０上に留まる。
【００４５】
対照的に、データがディスク・プラッタ８７８の単一次元部分でも使用可能ではない場合には、書き込まれるアドレスを含むデータの大きいブロックを、ディスク・プラッタ８７８の２次元部分から読み取り、ディスク・プラッタ８７８の単一次元部分に書き込んで、キャッシュ置換アルゴリズムに従ってディスク・プラッタ８７８の単一次元部分上で以前に維持されたデータを置換することができる。その後、そのブロックのサブセットを、読取データ８０５を介してソリッド・ステート不揮発性ストレージ８９０に転送することができる。その後、書き込まれる部分は、ソリッド・ステート不揮発性ストレージ８９０内で変更され、書き込まれる部分は、多階層ストレージ・デバイス８００によって使用されるキャッシュ置換ポリシに従ってソリッド・ステート不揮発性ストレージ８９０からディスク・プラッタにフラッシュされるまで、ソリッド・ステート不揮発性ストレージ８９０内に留まる。
【００４６】
読取転送は、類似する形で達成される。さらに、ホストからの大きい転送が書き込まれなければならず、そのデータがソリッド・ステート不揮発性ストレージ８９０内にない場合には、その書込は、ソリッド・ステート不揮発性ストレージ８９０をバイパスし、その代わりに読取チャネル回路８１０を介してディスク・プラッタ８７８に書込データ８０７として直接に書き込まれ得る。これは、インターフェース・コントローラ回路８２０によって認識されるホストからの特殊化された命令を使用して行うことができる。そのような手法は、ソリッド・ステート不揮発性ストレージ８９０の損耗を制限し、これによってその寿命を延ばすのに使用することができる。同様に、大きい読取要求がホストによって要求され、そのデータがソリッド・ステート不揮発性ストレージ８９０内にない場合には、その読取要求は、ソリッド・ステート不揮発性ストレージ８９０をバイパスし、その代わりに読取チャネル回路８１０を介してディスク・プラッタ８７８から読取データ８０３として直接に読み取られ得る。これは、インターフェース・コントローラ回路８２０によって認識されるホストからの特殊化された命令を使用して行うことができる。そのような手法は、ソリッド・ステート不揮発性ストレージ８９０の損耗を制限し、これによってその寿命を延ばすのに使用することができる。
【００４７】
図９に移ると、流れ図９００は、本発明のいくつかの実施形態による階層不揮発性ストレージ・デバイスに関するデータを格納する方法を示す。流れ図９０５に従うと、多階層不揮発性メモリを提供する（ブロック９０５）。メモリ書込要求（ブロック９１０）またはメモリ読取要求（ブロック９５５）のどちらがホストから受け取られたのかを判定する。そのようなメモリ書込要求およびメモリ読取要求は、当技術分野で既知の任意の要求タイプとすることができる。一例として、メモリ書込要求は、データがそこから書き込まれる開始アドレスと、書き込まれるデータの長さとを識別する。いくつかの場合に、そのような書込は、ブロック・ベースで行われる。同様に、メモリ読取要求は、データがそこから読み取られる開始アドレスと、書き込まれるデータの長さとを識別する。いくつかの場合に、そのような書込および読取は、ブロック・ベースで行われる。一例として、ブロックを５１２バイトとすることができる。
【００４８】
メモリ書込要求が受け取られる（ブロック９１０）場合には、書き込まれるアドレス空間がソリッド・ステート・ストレージに格納されているかどうかを判定する（ブロック９１５）。書き込まれるアドレス空間がソリッド・ステート・ストレージに格納されている（ブロック９１５）場合には、新しいデータをソリッド・ステート・ストレージに書き込み（ブロック９２０）、書込プロセスは完了する。
【００４９】
その代わりに、書き込まれるアドレス空間がソリッド・ステート・ストレージに含まれない（ブロック９１５）場合には、書き込まれるアドレス空間が単一次元ハード・ディスクに格納されているかどうかを判定する（ブロック９２５）。書き込まれるアドレス空間が単一次元ハード・ディスクに格納されている（ブロック９２５）場合には、書き込まれるアドレス空間を含むデータ・ブロックを単一次元ハード・ディスクから読み取り、ソリッド・ステート・ストレージに書き込む（ブロック９３０）。これは、ソリッド・ステート・ストレージ内のブロックを置換することを含む。そのような置換は、当技術分野で既知の任意のキャッシュ置換アルゴリズムに従って行うことができる。その後、新しいデータをソリッド・ステート・ストレージに書き込み（ブロック９３５）、書込プロセスは完了する。
【００５０】
その代わりに、書き込まれるアドレス空間が単一次元ハード・ディスクに含まれない（ブロック９２５）場合には、書き込まれるアドレス空間を含むデータ・ブロックを２次元ハード・ディスクから読み取り、単一次元ハード・ディスクに書き込む（ブロック９４０）。これは、単一次元ハード・ディスク内のブロックを置換することを含む。そのような置換は、当技術分野で既知の任意のキャッシュ置換アルゴリズムに従って行うことができる。さらに、書き込まれるアドレス空間を含むデータ・ブロックを単一次元ハード・ディスクから読み取り、ソリッド・ステート・ストレージに書き込む（ブロック９４５）。これは、ソリッド・ステート・ストレージ内のブロックを置換することを含む。そのような置換は、当技術分野で既知の任意のキャッシュ置換アルゴリズムに従って行うことができる。その後、新しいデータをソリッド・ステート・ストレージに書き込み（ブロック９５０）、書込プロセスは完了する。
【００５１】
その一方で、メモリ読取要求が受け取られる（ブロック９５５）場合には、読み取られるアドレス空間がソリッド・ステート・ストレージに格納されているかどうかを判定する（ブロック９６０）。読み取られるアドレス空間がソリッド・ステート・ストレージに格納されている（ブロック９６０）場合には、新しいデータをソリッド・ステート・ストレージから読み取り（ブロック９６５）、読取プロセスは完了する。
【００５２】
その代わりに、読み取られるアドレス空間がソリッド・ステート・ストレージに含まれない（ブロック９６０）場合には、読み取られるアドレス空間が単一次元ハード・ディスクに格納されているかどうかを判定する（ブロック９７０）。読み取られるアドレス空間が単一次元ハード・ディスクに格納されている（ブロック９７０）場合には、読み取られるアドレス空間を含むデータ・ブロックを単一次元ハード・ディスクから読み取り、ソリッド・ステート・ストレージに書き込む（ブロック９７５）。これは、ソリッド・ステート・ストレージ内のブロックを置換することを含む。そのような置換は、当技術分野で既知の任意のキャッシュ置換アルゴリズムに従って行うことができる。その後、新しいデータをソリッド・ステート・ストレージから読み取り（ブロック９８０）、読取プロセスは完了する。いくつかの場合に、読取データを、ソリッド・ステート・ストレージへの書込と並列に、単一次元ハード・ディスクからホストに直接に渡すことができることに留意されたい。これは、キャッシュ・ミス中にこうむる読取待ち時間を減らす。
【００５３】
その代わりに、読み取られるアドレス空間が単一次元ハード・ディスクに含まれない（ブロック９７０）場合には、読み取られるアドレス空間を含むデータ・ブロックを２次元ハード・ディスクから読み取り、単一次元ハード・ディスクに書き込む（ブロック９８５）。これは、単一次元ハード・ディスク内のブロックを置換することを含む。そのような置換は、当技術分野で既知の任意のキャッシュ置換アルゴリズムに従って行うことができる。さらに、読み取られるアドレス空間を含むデータ・ブロックを単一次元ハード・ディスクから読み取り、ソリッド・ステート・ストレージに書き込む（ブロック９９０）。これは、ソリッド・ステート・ストレージ内のブロックを置換することを含む。そのような置換は、当技術分野で既知の任意のキャッシュ置換アルゴリズムに従って行うことができる。その後、データをソリッド・ステート・ストレージから読み取り（ブロック９９５）、その後、書込プロセスは完了する。いくつかの場合に、読取データを、単一次元ハード・ディスクへの書込と並列に、２次元ハード・ディスクからホストに直接に渡すことができ、あるいは、ソリッド・ステート・ストレージへの書込と並列に、単一次元ハード・ディスクから直接に渡すことができることに留意されたい。これは、キャッシュ・ミス中にこうむる読取待ち時間を減らす。
【００５４】
図１０に移ると、流れ図１０００は、本発明の１つまたは複数の実施形態による上位階層ソリッド・ステート不揮発性ストレージをバイパスする方法を示す。流れ図１０００に従うと、大きいメモリ要求をホストから受け取る（ブロック１００５）。メモリ要求は、たとえばそれがソリッド・ステート・ストレージのサイズより大きい場合に、大きいと考えることができる。もう１つの例として、メモリ要求は、たとえばそれが定義されたサイズより雌である場合に、大きいと考えることができる。本明細書で提供される開示に基づいて、当業者は、大きいと考えることのできるさまざまな要求サイズを認めるであろう。
【００５５】
メモリ要求が読取要求または書込要求のどちらであるのかを判定する（ブロック１０１０）。そのようなメモリ書込要求およびメモリ読取要求は、当技術分野で既知の任意の要求タイプとすることができる。一例として、メモリ書込要求は、データがそこから書き込まれる開始アドレスと、書き込まれるデータの長さとを識別する。いくつかの場合に、そのような書込は、ブロック・ベースで行われる。同様に、メモリ読取要求は、データがそこから読み取られる開始アドレスと、書き込まれるデータの長さとを識別する。いくつかの場合に、そのような書込および読取は、ブロック・ベースで行われる。一例として、ブロックを５１２バイトとすることができる。
【００５６】
メモリ書込要求が受け取られる（ブロック１０１０）場合には、書き込まれるアドレス空間がソリッド・ステート・ストレージに格納されているかどうかを判定する（ブロック１０１５）。書き込まれるアドレス空間がソリッド・ステート・ストレージに格納されている（ブロック１０１５）場合には、新しいデータをソリッド・ステート・ストレージに書き込み（ブロック１０２０）、書込プロセスは完了する。これは、ソリッド・ステート・ストレージ内で維持されるデータの一部を置換することを含む場合がある。そのような置換は、当技術分野で既知の任意のキャッシュ置換アルゴリズムに従って行うことができる。
【００５７】
その代わりに、書き込まれるアドレス空間がソリッド・ステート・ストレージに含まれない（ブロック１０１５）場合には、書き込まれるアドレス空間が単一次元ハード・ディスクに含まれるかどうかを判定する（ブロック１０２５）。書き込まれるアドレス空間が単一次元ハード・ディスクに格納されている（ブロック１０２５）場合には、単一次元ハード・ディスクへの書込を実行し（ブロック１０３０）、書込プロセスは完了する。これは、単一次元ハード・ディスク上で維持されるデータの一部を置換することを含む場合がある。そのような置換は、当技術分野で既知の任意のキャッシュ置換アルゴリズムに従って行うことができる。その代わりに、書き込まれるアドレス空間が単一次元ハード・ディスクに含まれない（ブロック１０３５）場合には、２次元ハード・ディスクへの書込を実行し（ブロック１０３５）、書込プロセスは完了する。
【００５８】
その一方で、メモリ・アクセス要求が読取アクセス要求である（ブロック１０１０）場合には、読み取られるアドレス空間の全体がソリッド・ステート・ストレージに格納されているかどうかを判定する（ブロック１０５０）。読み取られるアドレス空間の全体がソリッド・ステート・ストレージに格納されている（ブロック１０５０）場合には、新しいデータをソリッド・ステート・ストレージから読み取り（ブロック１０５５）、読取プロセスは完了する。
【００５９】
その代わりに、読み取られるアドレス空間の全体がソリッド・ステート・ストレージに含まれるのではない（ブロック１０５０）場合には、読み取られるアドレス空間の一部がソリッド・ステート・ストレージに格納されているかどうかを判定する（ブロック１０６０）。一部がソリッド・ステート・ストレージに格納されている（ブロック１０６０）場合には、その一部を単一次元ハード・ディスクにライト・バックし、かつ／またはソリッド・ステート・ストレージ上で無効化する（ブロック１０６５）。読み取られるアドレス空間のどの部分もソリッド・ステート・ストレージに格納されていない（ブロック１０６０）またはライト・バックおよび／もしくは無効化が実行された（ブロック１０６５）のいずれかの場合には、読み取られるアドレス空間の全体が単一次元ハード・ディスクに格納されているかどうかを判定する（ブロック１０７０）。読み取られるアドレス空間の全体が単一次元ハード・ディスクに格納されている（ブロック１０７０）場合には、読取要求を単一次元ハード・ディスクから実行し（ブロック１０７５）、読取プロセスは完了する。
【００６０】
その代わりに、読み取られるアドレス空間の全体が単一次元ハード・ディスクに格納されている（ブロック１０７０）場合には、そのアドレス空間の一部が単一次元ハード・ディスク上で維持されているかどうかを判定する（ブロック１０８０）。一部が単一次元ハード・ディスク上に格納されている（ブロック１０８０）場合には、その部分を２次元ハード・ディスクにライト・バックし、かつ／または単一次元ハード・ディスク上で無効化する（ブロック１０８５）。読み取られるアドレス空間のどの部分も単一次元ハード・ディスク上に格納されていない（１０８０）か、ライト・バックおよび／または無効化が実行された（ブロック１０８５）かのいずれかの場合には、２次元ハード・ディスクからの読取を実行し（ブロック１０９０）、読取プロセスは完了する。
【００６１】
結論として、本発明は、複数階層を有するストレージを提供する新規のシステム、デバイス、方法、および配置を提供する。本発明の１つまたは複数の実施形態の詳細な説明を上で与えたが、本発明の趣旨から変化しないさまざまな代替形態、修正形態、および同等物が、当業者には明白であろう。したがって、上の説明は、本発明の範囲を限定するものと解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲によって定義される。
【図１】
2012533112.tif 000003
【図２】
2012533112.tif 000004
【図３】
2012533112.tif 000005
【図４】
2012533112.tif 000006
【図５】
2012533112.tif 000007
【図６】
2012533112.tif 000008
【図７】
2012533112.tif 000009
【図８】
2012533112.tif 000010
【図９】
2012533112.tif 000011
【図１０】
2012533112.tif 000012
【国際調査報告】
2012533112.tif 000013
2012533112.tif 000014