(57)【要約】【課題】ハイブリット記憶アーキテクチャを有するデータ記憶デバイスを提供する。【解決手段】  本開示は、変化するパススルー型記憶アーキテクチャを実現するための装置および方法を対象とする。実施形態は、一般的に、少なくとも第１のメモリ階層と第２のメモリ階層との間にデータを割り当てるように構成された制御回路を含む。第１のメモリ階層は、ソリッドステートメモリを含むことができ、第２のメモリ階層は、不揮発性メモリを含むことができる。一部の実施形態では、パススルー型記憶デバイスが実現され得る。実施形態は更に、制御回路と、１つ以上のメモリ、デバイス、システム、またはこれらのいずれかの組み合わせとの間の通信を許容するように構成された１つ以上のインターフェースを含み得る。【選択図】図１
2014182812.tif 000002
【特許請求の範囲】
【請求項１】
装置であって、
少なくとも第１のメモリ階層と第２のメモリ階層との間にデータを割り当てるように構成された制御回路を備え、前記第１のメモリ階層は、不揮発性ソリッドステートメモリを含み、前記第２のメモリ階層は、別の不揮発性メモリを含み、
前記装置は、
前記制御回路とホストデバイスとの間で通信するように構成されたホストインターフェースと、
前記制御回路および、前記第２のメモリ階層を含むデータ記憶デバイスの間で通信するように構成され、前記データ記憶デバイスが前記ホストデバイスと直接にインターフェースしているかのように、前記データ記憶デバイスが前記装置とインターフェースするように前記ホストインターフェースを模倣する、データ記憶デバイスインターフェースとを備え、
前記制御回路は、前記ホストデバイス、前記第１のメモリ階層、および前記第２のメモリ階層に対するデータの転送を管理するようにさらに構成される、装置。
【請求項２】
前記制御回路は、前記ホストデバイス、前記第１のメモリ階層、および前記第２のメモリ階層の間でデータを送信することが可能であるように、前記ホストデバイスに統合される、請求項１に記載の装置。
【請求項３】
前記制御回路は、前記ホストデバイス、前記第１のメモリ階層、および前記第２のメモリ階層の間でデータを送信することが可能であるように、前記第２のメモリ階層の前記不揮発性メモリを含む前記データ記憶デバイスに統合される、請求項１に記載の装置。
【請求項４】
前記ホストインターフェースおよび前記データ記憶デバイスから接続を切ることが可能な個別に取り外し可能なハードウェアデバイスであって、バッファとして構成された不揮発性ソリッドステートメモリを含む、請求項１に記載の装置。
【請求項５】
データが前記不揮発性ソリッドステートメモリに割り当てられると、前記割り当てられたデータが前記不揮発性ソリッドステートメモリによって読み出し可能なフォーマットとなるように、前記割り当てられたデータを変換するプロトコル変換層を実現するように構成された不揮発性ソリッドステートメモリプロトコルプロセッサをさらに備える、請求項４に記載の装置。
【請求項６】
前記制御回路と通信し、バッファとして構成された１つ以上の揮発性メモリユニットにデータを割り当てるように構成されたバッファマネージャと、
前記バッファマネージャから受信したデータを記憶し、前記受信したデータを前記不揮発性ソリッドステートメモリプロトコルプロセッサに送信するように構成された先入れ先出し（ＦＩＦＯ）メモリユニットとをさらに備える、請求項５に記載の装置。
【請求項７】
前記不揮発性ソリッドステートメモリはフラッシュメモリであり、前記不揮発性メモリは磁気データ記憶媒体であり、
前記装置は、前記制御回路と通信し、かつ、バッファとして構成された１つ以上の揮発性メモリユニットにデータを割り当てるように構成されたバッファマネージャをさらに備える、請求項５に記載の装置。
【請求項８】
前記第１のメモリ階層と、
前記不揮発性ソリッドステートメモリプロトコルプロセッサからの出力部とをさらに備え、
前記出力部は、前記不揮発性ソリッドステートメモリプロトコルプロセッサを前記不揮発性ソリッドステートメモリに連結するように構成される、請求項５に記載の装置。
【請求項９】
前記不揮発性ソリッドステートメモリプロトコルプロセッサと前記不揮発性ソリッドステートメモリとの間で通信するように構成された不揮発性ソリッドステートメモリインターフェースをさらに備え、
前記第１のメモリ階層は、前記装置から接続を切ることが可能な１つ以上の個別に取り外し可能なハードウェアデバイスに統合される、請求項５に記載の装置。
【請求項１０】
前記制御回路は、
１つ以上のキャッシュ基準を満足するデータを、前記第１のメモリ階層の前記不揮発性ソリッドステートメモリにキャッシングし、かつ
前記第２のメモリ階層に対する１つ以上の記憶基準を満足するデータを、少なくとも部分的に記憶スペースとしての前記第２の階層の前記不揮発性メモリに記憶するようにさらに構成される、請求項１に記載の装置。
【請求項１１】
前記１つ以上のキャッシュ基準および前記１つ以上の記憶基準は、タイミング、容量、電力事象、およびアイドルタイムからなる群から選択される１つ以上のパラメータに基づいて判定される、請求項１０に記載の装置。
【請求項１２】
装置であって、
少なくとも第１のメモリ階層と第２のメモリ階層との間にデータを割り当てるように構成された制御回路を備え、前記第１のメモリ階層は、不揮発性ソリッドステートメモリを含み、前記第２のメモリ階層は、別の不揮発性メモリを含み、
前記装置は、
前記制御回路とイニシエータデバイスとの間で通信するように構成されたイニシエータインターフェースと、
前記制御回路と目標デバイスとの間で通信するように構成された目標インターフェースとを備え、
前記イニシエータインターフェースおよび前記目標インターフェースのうちの少なくとも一方は、前記第２のメモリ階層の前記不揮発性メモリを含むデータ記憶デバイスがホストデバイスとインターフェースしているかのように前記装置とインターフェースするように、ホストインターフェースを複製し、
前記制御回路は、前記ホストデバイス、前記第１のメモリ階層、および前記第２のメモリ階層に対するデータの転送を管理するようにさらに構成される、装置。
【請求項１３】
前記イニシエータインターフェースおよび前記目標インターフェースは各々は、インターフェース規格に準拠する、請求項１２に記載の装置。
【請求項１４】
前記制御回路は、全てのデータを、前記第２のメモリ階層の前記不揮発性メモリに記憶する前に、前記第１のメモリ階層の前記不揮発性ソリッドステートメモリに前記データをキャッシングするように構成される、請求項１２に記載の装置。
【請求項１５】
前記制御回路と通信し、また、バッファとして構成された１つ以上の揮発性メモリユニットにデータを割り当てるように構成されたバッファマネージャをさらに備える、請求項１４に記載の装置。
【請求項１６】
データが前記不揮発性ソリッドステートメモリに割り当てられると、前記割り当てられたデータが前記不揮発性ソリッドステートメモリによって読み出し可能なフォーマットとなるように、前記割り当てられたデータを変換するプロトコル変換層を実現するように構成された不揮発性ソリッドステートメモリプロトコルプロセッサをさらに備える、請求項１５に記載の装置。
【請求項１７】
前記不揮発性ソリッドステートメモリプロトコルプロセッサと前記不揮発性ソリッドステートメモリとの間で通信するように構成された不揮発性ソリッドステートメモリインターフェースと、
前記バッファマネージャと、バッファとして構成された１つ以上の揮発性メモリユニットとの間で通信するように構成された揮発性メモリインターフェースとをさらに備える、請求項１６に記載の装置。
【請求項１８】
装置であって、
制御回路を備え、
前記制御回路は、
選択されたデータを書き込む要求を、ホストシステムから受信し、
前記選択されたデータを、第１の不揮発性ソリッドステートメモリにキャッシングし、
前記選択されたデータの少なくともサブ集合を第２の不揮発性メモリに対して、トリガ事象に基づいて記憶するように構成され、
前記装置は、
前記制御回路と前記ホストシステムとの間で通信するように構成されたホストインターフェースと、
前記制御回路と前記第２の不揮発性メモリとの間で通信するように構成され、前記データ記憶デバイスが前記ホストシステムと直接にインターフェースしているかのように、前記データ記憶デバイスが前記装置とインターフェースするように前記ホストインターフェースを模倣する、データ記憶インターフェースとを備える、装置。
【請求項１９】
前記選択されたデータは、前記選択されたデータが前記第１の不揮発性ソリッドステートメモリによって読み出し可能なフォーマットとなるように、前記第１の不揮発性ソリッドステートメモリにキャッシングされる前に、プロトコルプロセッサによって変換される、請求項１８に記載の装置。
【請求項２０】
前記プロトコルプロセッサと前記第１の不揮発性ソリッドステートメモリとの間で通信するように構成された不揮発性ソリッドステートメモリインターフェースをさらに備える、請求項１９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１３年３月１５日に出願された、「パススルー階層記憶設計を用いた拡張容量ＳＳＤ(Extended Capacity SSD Using Pass Through Tiered Storage Design)」という題名の係属中の米国仮特許出願第６１／７９０，９７８号に対する優先権を主張するものであり、これはその全体が参照により本明細書に組み込まれる。
【０００２】
本開示は、少なくとも２つの異なるタイプのデータ記憶媒体を持つハイブリッド記憶アーキテクチャを有するデータ記憶デバイスに関する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国仮特許出願第６１／７９０，９７８号
【発明の概要】
【課題を解決するための手段】
【０００４】
本明細書に開示される実施形態は、一般的に、パススルー型記憶デバイスのための装置および方法を提供する。装置の一部の実施形態は、少なくとも第１のメモリ階層と第２のメモリ階層との間にデータを割り当てるように構成された制御回路を含み得る。第１のメモリ階層は、不揮発性ソリッドステートメモリを含み、第２のメモリ階層は、別の不揮発性メモリを含むことがある。この装置は、ホストインターフェースおよびデータ記憶デバイスインターフェースを含み得る。このホストインターフェースは、制御回路とホストデバイスとの間で通信するように構成され得る。このデータ記憶デバイスインターフェースは、制御回路と、第２のメモリ階層を含むデータ記憶デバイスとの間で通信するように構成され得る。データ記憶デバイスインターフェースは、データ記憶デバイスがホストデバイスと直接にインターフェースしているかのように該装置とインターフェースするように、ホストインターフェースを模倣または複製し得る。制御回路は、ホストデバイス、第１のメモリ階層、および第２のメモリ階層に対するデータの転送を管理するように更に構成され得る。
【０００５】
一部の実施形態は、制御回路、イニシエータインターフェース、および目標インターフェースを含む装置を提供する。制御回路は、少なくとも第１のメモリ階層および第２のメモリ階層との間にデータを割り当てるように構成され得るが、第１のメモリ階層は、不揮発性ソリッドステートメモリを含み、第２のメモリ階層は、別の不揮発性メモリを含む。このイニシエータインターフェースは、制御回路とイニシエータデバイスとの間で通信するように構成され得る。この目標インターフェースは、制御回路と目標デバイスとの間で通信するように構成され得る。イニシエータインターフェースおよび目標インターフェースのうちの少なくとも一方は、第２のメモリ階層インターフェースの不揮発性メモリを含むデータ記憶デバイスが、ホストデバイスとインターフェースしているかのように該装置とインターフェースするように、ホストコントローラを模倣し得る。
【０００６】
ある実施形態は、選択されたデータを書き込む要求をホストシステムから受信するように構成された制御回路を含む装置を提供する。この制御回路は、選択されたデータを第１の不揮発性ソリッドステートメモリにキャッシングするように更に構成され得る。制御回路は、選択されたデータの少なくともサブ集合を、トリガ事象に基づいて、第２の不揮発性メモリに更に記憶し得る。該装置は、ホストインターフェースおよびデータ記憶インターフェースを更に含み得る。ホストインターフェースは、制御回路とホストシステムとの間で通信するように構成され得る。データ記憶インターフェースは、制御回路と第２の不揮発性メモリとの間で通信するように構成され得る。データ記憶インターフェースは、データ記憶デバイスが、ホストシステムと直接にインターフェースしているかのように該装置とインターフェースするように、ホストインターフェースを模倣し得る。
【図面の簡単な説明】
【０００７】
【図１】パススルー型記憶デバイスのある実施形態の図である。
【図２】パススルー型記憶デバイスのある実施形態の機能ブロック図である。
【図３】パススルー型記憶デバイスのある実施形態の機能ブロック図である。
【図４】パススルー型記憶デバイスのための方法のある実施形態のフローチャートである。
【図５】パススルー型記憶デバイスのための方法のある実施形態のフローチャートである。
【発明を実施するための形態】
【０００８】
実施形態の以下の詳細な説明において、本明細書の一部を形成し、その明細書において特定の実施形態の例示として示される、添付の図面に対する参照がなされる。本開示の範囲から逸脱することなく、説明する様々な実施形態の特徴を組み合わせ得ること、他の実施形態が利用し得ること、および構造を変更し得ることを理解すべきである。
【０００９】
図１は、本発明の一部の実施形態に関わる、拡張ソリッドステートデバイス（extended solid state device:ＸＳＳＤ）モジュール１０４を含むシステム１００の図である。システム１００は、ホスト１０２と、ＸＳＳＤモジュール１０４に接続することが可能なデータ記憶媒体（data storage medium:ＤＳＭ）１０６（以後，ＤＳＭ１０６と呼ぶ）を有するデータ記憶デバイス（data storage device:ＤＳＤ）とを更に含み得る。
【００１０】
ホスト１０２はまた、ホストシステムまたはホストコンピュータとも呼ばれ得る。ホスト１０２は、デスクコンピュータ、ラップトップコンピュータ、サーバ、携帯情報端末（personal digital assistant:ＰＤＡ）、電話、音楽プレーヤー、別の電子デバイスまたはこれらのいずれかの組み合わせであったりする。ＤＳＭ１０６は、ホスト１０２に関してリストアップしたデバイスのうちのいずれか、または、ハードディスクドライブ（ＨＤＤ）などの、データを記憶するまたは回収するために用いられ得る他のいずれかのデバイスであり得る。
【００１１】
一部の実施形態では、ＸＳＳＤモジュール１０４は、ホスト１０２およびＤＳＭ１０６に接続して、これらとインターフェースするように構成されたブリッジアダプタに統合することが可能である。こうする代わりにまたはこうすることに加えて、ＸＳＳＤモジュール１０４は、ホスト１０２またはＤＳＭ１０６に統合することが可能である。
【００１２】
ＸＳＳＤモジュール１０４は、ＸＳＳＤモジュール１０４をホスト１０２、ＤＳＭ１０６、または双方から物理的に取り外すことを許容するコネクタを含み得る１つ以上のインターフェース１０８、１１０を介してホスト１０２およびＤＳＭ１０６と通信することが可能である。インターフェース１０８は、ハードウェア回路、ロジック、ファームウエアまたはこれらのいずれかの組み合わせを含み得る。一部の実施形態では、インターフェース１０８は、次の規格のうちの１つ以上に準拠するインターフェースを備える：ユニバーサルシリアルバス（universal serial bus:ＵＳＢ）、ＩＥＥＥ１３９４、シリアルアドバンストテクノロジーアタッチメント（serial advanced technology attachment:ＳＡＴＡ）、エクスターナルＳＡＴＡ（ｅＳＡＴＡ）、パラレルアドバンストテクノロジーアタッチメント（parallel advanced technology attachment:ＰＡＴＡ）、スモールコンピュータシステムインターフェース（small computer system interface:ＳＣＳＩ）、シリアルアタッチトＳＣＳＩ（ＳＡＳ）、ペリフェラルコンポーネントインターコネクトエクスプレス（peripheral component interconnect express:ＰＣＩｅ）、およびファイバチャネル（fiber channel:ＦＣ）。しかしながら、ＸＳＳＤモジュール１０４が、ホスト１０２、ＤＳＭ１０６、または双方と通信することを許容するのに適した他のいずれかのインターフェースを、用いることができる。ＸＳＳＤモジュール１０４、ＤＳＭ１０６、または双方は、ホスト１０２の筐体の内部または外部に配置し得る。
【００１３】
図２を参照すると、拡張ソリッドステートモジュールデバイス（ＸＳＳＤ）モジュール１０４を含むシステム２００の例示の実施形態の機能ブロック図が示されている。ＸＳＳＤモジュール１０４は、例えば、１つ以上のタイプの不揮発性データ記憶媒体などの様々なデバイスをそこに接続することを許容するための複数のポートを含み得る。
【００１４】
ＸＳＳＤモジュール１０４は、イニシエータインターフェース２０２および目標インターフェース２０４を含み得る。イニシエータインターフェース２０２は、ＸＳＳＤモジュール１０４がイニシエータ２０６とインターフェースすることを許容するように構成することが可能であり、目標インターフェース２０４は、ＸＳＳＤモジュール１０４が目標２０８と通信することを許容するように構成することが可能である。一部の実施形態では、イニシエータ２０６は、図１のホスト１０２に関連して上述したタイプのデバイスなどのホストデバイスであり得る。目標２０８は、図１のＤＳＭ１０６に関連して上述したタイプなどのデータ記憶デバイスであり得る。他の実施形態では、データ記憶デバイスがイニシエータ２０６とみなされ、ホストデバイスが目標２０８とみなされる場合もある。
【００１５】
ＸＳＳＤモジュール１０４は、１つ以上の関連付けされたプロセッサ２１２を有する制御回路２１０を含むことができる。制御回路２１０は、イニシエータ２０６、目標２０８、または双方から受信された、またはこれによって要求されたデータの割り当てを追跡して判定するハイブリッドファイルシステムを制御して実行するように構成し得る。
【００１６】
一部の実施形態では、ＸＳＳＤモジュール１０４は、少なくとも部分的に、１つ以上のキャッシュ基準を満たすデータのためのキャッシュとして用いられることになっているソリッドステートメモリ（ＳＳＭ）２１４を含み得る。ＳＳＭ２１４は、スタティックランダムアクセスメモリ（ＳＲＡＭ）またはダイナミックランダムアクセスメモリ（ＤＲＡＭ）などの揮発性ソリッドステートメモリ（ＶＳＳＭ）であったり、またはＳＳＭ２１４は、フラッシュメモリなどの不揮発性ソリッドステートメモリ（ＮＶＳＳＭ）であったりする。次の説明は主としてＮＶＳＳＭ、すなわちフラッシュメモリ２１４を参照するが、他のいかなるタイプまたは、ＳＳＭ２１４もしくはＮＶＳＳＭの組み合わせも用い得ることを理解すべきである。
【００１７】
ＸＳＳＤモジュール１０４は、バッファメモリ２１８として用いられる１つ以上のメモリユニットに／からデータを割り当てることが可能なバッファマネージャ２１６を含み得る。例えば、ＸＳＳＤモジュール１０４は、イニシエータ２０６に／から、目標２０８に／から、ＮＶＳＳＭに／から、またはこれらのいずれかの組み合わせに／からの読み出し動作および書き込み動作中に送信されたデータを一時的に記憶するために用いられる１つ以上のＳＲＡＭまたはＤＲＡＭユニット２１８を有し得る。バッファメモリ２１８は、アクセス動作を実行待ち状態に一時的に記憶することが可能な指令待ち行列（図示せず）を含み得る。ＳＲＡＭ／ＤＲＡＭユニット２１８は、ＸＳＳＤモジュール１０４内に常駐しているものとして図２に示されているが、これらは、これに加えてまたはこうする代わりに、例えば、図３に示すＤＲＡＭユニット３１２などのＸＳＳＤモジュール１０４の外部に配置され得ることを理解すべきである。
【００１８】
ＸＳＳＤモジュール１０４は、先入れ先出し（first-in-first-out:ＦＩＦＯ）メモリユニット２２０と、自身は、制御回路２１０に通信可能に連結されるバッファマネージャ２１６に対してフラッシュメモリ２１４を通信可能に連結するフラッシュプロトコルプロセッサ２２２とを含むことが更に可能である。ＦＩＦＯメモリユニット２２０は、バッファマネージャ２１６からデータを受信して、このデータを、それが先入れ先出し方式でフラッシュプロトコルプロセッサ２２２に送信されるまで記憶し得る。ＦＩＦＯメモリユニット２２０は、ＦＩＦＯメモリユニット２２０に受信されたデータにチェックを実施し、かつこのデータの保全性が維持されるようにいかなる誤りビットをも訂正するために、誤り訂正符号（error correction code:ＥＣＣ）を含むことが可能である。
【００１９】
フラッシュプロトコルプロセッサ２２２は、フラッシュプロトコルプロセッサ２２２がフラッシュメモリ２１４に記憶するに適したフォーマットでデータを送信するように１つ以上の通信プロトコルに従ってＦＩＦＯメモリユニット２２０から受信したデータを抽出し／処理し／構成することに専用の特殊化したプロセッサであり得る。
【００２０】
こうする代わりにまたはこうすることに加えて、ＸＳＳＤモジュール１０４は、１つ以上の外部フラッシュ（または他のいずれかのタイプのＮＶＳＳＭ）メモリユニット２１４の取り付けを許容するように構成され得る。図２は、１つ以上のフラッシュ入力／出力（Ｉ／Ｏ）ポート２２４を介してフラッシュプロトコルプロセッサ２２２に通信可能に連結されているフラッシュメモリ２１４の機能を示す。１つの外部フラッシュメモリ２１４が示されているが、複数の外部フラッシュメモリユニット２１４を、ＸＳＳＤモジュール１０４に取り付けることが可能であることを理解すべきである。
【００２１】
ＸＳＳＤモジュール１０４は、ＸＳＳＤモジュール１０４に対するＧＰＩＯピン（図示せず）の動作を制御することが可能な汎用の入力／出力（general purpose input/output:ＧＰＩＯ）制御機器２２６を更に含み得る。その上、ＸＳＳＤモジュール１０４は、ＸＳＳＤモジュール１０４と組み合わせて用いられるデバイスを接続するのに適した１つ以上の更なるポートを更に含み得る。例えば、ＸＳＳＤモジュール１０４は、モデムまたは類似の通信デバイスとインターフェースするために、ＲＳ−２３２規格に準拠した１つ以上のシリアルポート２２８を含むことがある。別の例として、ＸＳＳＤモジュール１０４は、例えば、ＸＳＳＤモジュール１０４の問題点を診断するために用いることが可能な試験デバイスとインターフェースするために、１つ以上の診断ポート２３０を含むことがある。
【００２２】
図３は、拡張ソリッドステートデバイス（ＸＳＳＤ）モジュール１０４を含むシステム３００の別の例示の実施形態の機能ブロック図を示す。ＸＳＳＤモジュール１０４は、一部の実施形態では、図２を参照して上述した制御回路２１０の例であるコントローラ３０２を含み得る。
【００２３】
コントローラ３０２は、ホストコントローラ３０４を含むインターフェースを介してホストシステム１０２と通信し得る。コントローラ３０２はまた、ホストインターフェースを模倣するコントローラ３０６を含むインターフェース１１０を介してデータ記憶デバイス（ＤＳＤ）１０６と通信することが可能である。ホストインターフェース模倣コントローラ３０６が模倣すると言われるのは、それが、ＤＳＤ１０６がホストシステム１０２と直接にインターフェースしているかのようにＸＳＳＤモジュール１０４とインターフェースするように、すなわちＤＳＤ１０６がＸＳＳＤモジュール１０４とインターフェースすることとホストシステム１０２とインターフェースすることとの間に相違がありえないようにホストコントローラ３０４を複製するように構成することが可能であるからである。
【００２４】
コントローラ３０２は、１つ以上のＮＶＳＳＭコントローラ３１０を介して１つ以上の不揮発性ソリッドステートメモリ（ＮＶＳＳＭ）ユニット３０８と更に通信し得る。一部の実施形態では、ＮＶＳＳＭユニット３０８は、ＮＡＮＤフラッシュメモリユニットであり、ＮＶＳＳＭコントローラ３１０は、ＮＡＮＤコントローラである。ＸＳＳＤモジュール１０４は、ＮＶＳＳＭユニット３０８を不揮発性キャッシュとして用い、ＤＳＤ１０６を永久記憶装置として更に用い得る。したがって、ＸＳＳＤモジュール１０４は、不揮発性キャッシュとして用いるのに適したいずれかのタイプのメモリと、永久記憶装置として用いるのに適したいずれかのタイプのメモリとに連結され、かつこれらと通信するように構成され得ることを理解すべきである。
【００２５】
コントローラ３０２は、バッファメモリコントローラ３１４を含むインターフェースを介してバッファメモリユニット３１２と更に通信し得る。一部の実施形態では、バッファメモリコントローラ３１４は、バッファメモリ３１２に／からデータを割り当てるために用いられるバッファマネージャ３１６のコンポーネントであり得る。バッファメモリユニット３１２は、イニシエータ２０６に／から、目標２０８に／から、ＮＶＳＳＭに／から、またはこれらのいずれかの組み合わせに／からの読み出し動作および書き込み動作中に送信されたデータを一時的に記憶するために用いられ得る。バッファメモリユニット３１２は、アクセス動作を実行待ち状態に一時的に記憶することが可能な指令待ち行列（図示せず）を含み得る。バッファメモリユニット３１２は、ＸＳＳＤモジュール１０４の外部の１つのＤＲＡＭユニットとして図３に示されているが、コントローラ３０２は、複数のバッファメモリユニット３１２（図２を参照して上述したように１つ以上のＤＲＡＭユニットを含む）と通信し得ることと、バッファメモリユニット３１２は、その上またはこうする代わりに、ＸＳＳＤモジュール１０４内に常駐し得ることとを理解すべきである。
【００２６】
一部の実施形態では、コントローラ３０２と、ホストシステム１０２、ＤＳＤ１０６、ＮＶＳＳＭユニット３０８およびバッファメモリユニット３１２の各々との間のインターフェースは、次の規格のうちの１つ以上に準拠する１つ以上のインターフェースを備える：ユニバーサルシリアルバス（ＵＳＢ）、ＩＥＥＥ１３９４、シリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）、エクスターナルＳＡＴＡ（ｅＳＡＴＡ）、パラレルアドバンストテクノロジーアタッチメント（ＰＡＴＡ）、スモールコンピュータシステムインターフェース（ＳＣＳＩ）、シリアルアタッチトＳＣＳＩ（ＳＡＳ）、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）およびファイバチャネル（ＦＣ）。しかしながら、コントローラ３０２が、ホストシステム１０２、ＤＳＤ１０６、ＮＶＳＳＭユニット３０８、バッファメモリユニット３１２またはこれらの組み合わせと通信することを許容するのに適した他のいずれかのインターフェースを、用い得る。
【００２７】
コントローラ３０２は、指令ＣＰＵ３１８、変換層ＣＰＵ３２０、指令メモリ３２２およびデータメモリ３２４を含み得る。コントローラ３０２に送信された指令データは指令メモリ３２２に一時的に記憶することが可能であり、一方、コントローラ３０２に送信されたユーザデータはデータメモリ３２４に一時的に記憶することが可能である。したがって、指令メモリ３２２およびデータメモリ３２４は、事実上バッファメモリユニット、または中間バッファメモリユニット（すなわち、バッファメモリユニット３１２とＣＰＵ３１８、３２０との間に配置されたバッファメモリユニット）であって、指令ＣＰＵ３１８、変換層ＣＰＵ３２０または双方による実行を待っている読み出しおよび書き込みの動作中に送信されたデータを一時的に記憶するために用いられる。
【００２８】
一部の実施形態によれば、指令ＣＰＵ３１８は、読み出し要求および書き込み要求を受信して、これら要求と関連付けられたユーザデータをホストシステム１０２、ＤＳＤ１０６、ＮＶＳＳＭユニット３０８およびバッファメモリユニット３１２の間にこれら要求を割り当てるように構成することが可能である。変換層ＣＰＵ３２０は、ＮＶＳＳＭユニット３０８に対する読み出しおよび書き込みのアクセスを管理するソフトウエア層を処理するように構成し得る。変換層ＣＰＵ３２０またはプロトコルプロセッサは、ＮＡＮＤフラッシュメモリに割り当てられたデータを、この割り当てられたデータがＮＡＮＤフラッシュメモリによって読み出し可能となるように変換するフラッシュ変換層（flash translation layer:ＦＴＬ）ＣＰＵであったりする。
【００２９】
図２〜３に示すコンポーネントの一部または全ては、１つのプロセッサまたはコントローラチップに構築し得るし、また、ＸＳＳＤモジュール１０４およびシステム２００、３００に関して本明細書で述べた機能および動作を実施するように、ファームウエアまたは回路を通じて、構成することが可能である。
【００３０】
図４は、階層型記憶アーキテクチャを実現するための方法４００のある例示の実施形態のフローチャートを示す。図４によって例示される方法４００の実施形態を説明するに際して、方法４００のある態様を明瞭化するために、図１〜３も参照する。
【００３１】
ブロック４０２で、ＸＳＳＤモジュール１０４は読み出し要求を受信する。例えば、ホストシステム１０２は、読み出し要求をＸＳＳＤモジュール１０４に送信し得る。しかしながら、この読み出し要求は、ＸＳＳＤモジュール１０４が通信可能に連結されるいかなるデバイスまたはシステムからも発し得る。
【００３２】
ブロック４０４で、ＸＳＳＤモジュール１０４が、読み出し要求はキャッシュヒットである（すなわち、要求されたデータは要求時にはキャッシュに記憶されている）と判定すると、ＸＳＳＤモジュール１０４は、この要求されたデータがＤＲＡＭ（またはＳＲＡＭ）にキャッシングされているかどうかを、ブロック４０５で判定する。要求されたデータがＤＲＡＭ中にキャッシングされていれば、ブロック４１０で、ＸＳＳＤモジュール１０４は、このデータをＤＲＡＭから回収して、このデータを読み出しリクエスタ（すなわち、この読み出し要求を始動したデバイスまたはシステム）に提供する。要求されたデータがＤＲＡＭ中にキャッシングされていなければ、ＸＳＳＤモジュール１０４は、このデータを第１のメモリ階層の不揮発性ソリッドステートメモリ（ＮＶＳＳＭ）から、ブロック４０６で回収して、このデータを、ブロック４１０で、読み出しリクエスタに提供する。
【００３３】
しかしながら、ブロック４０４で、ＸＳＳＤモジュール１０４が、読み出し要求がキャッシュヒットではないと判定すれば、ＸＳＳＤモジュール１０４は、このデータを第２のメモリ階層のデータ記憶デバイス／媒体から、ブロック４０８で回収して、このデータを、ブロック４１０で読み出しリクエスタに提供する。
【００３４】
本明細書では、「第１のメモリ階層」という用語は、キャッシュとして用いられるＮＶＳＳＭを含むメモリ階層を、永久記憶装置として用いられる不揮発性メモリを含む「第２のメモリ階層」から区別するために用いられる。しかしながら、「第１のメモリ階層」および「第２のメモリ階層」という用語は、どちらも、本開示の実施形態を２つのメモリ階層に制限することを意図するものでもなく、また、第１のメモリ階層および第２のメモリ階層の前、間または後における１つ以上のメモリ階層を排除することを意図するものでもない。図２〜３のフラッシュメモリ２１４、３０８は、一部の実施形態の第１のメモリ階層に含まれるＮＶＳＳＭを例示する。図３のデータ記憶デバイス／媒体（ＤＳＤ／ＤＳＭ）１０６は、一部の実施形態の第２のメモリ階層に含まれる不揮発性メモリを例示する。
【００３５】
一部の実施形態では、ＸＳＳＤモジュール１０４は、要求されたデータが、それぞれキャッシュ基準および永久記憶装置基準の一方または双方を満たすかどうかを判定する。ＸＳＳＤモジュール１０４が、データがそのキャッシュ基準を満足すると判定すれば、データは第１のメモリ階層のＮＶＳＳＭに、まだそこに記憶されていなければ、書き込まれる。ＸＳＳＤモジュール１０４が、データがその永久記憶装置基準を満足すると判定すれば、データは第２のメモリ階層の不揮発性メモリを含むＤＳＤ／ＤＳＭに、まだそこに記憶されていなければ、書き込まれる。一部の実施形態では、キャッシュ基準、永久記憶装置基準または双方は、１つ以上のパラメータに基づいて事前決定される。しかしながら、一部の実施形態では、キャッシュ基準、永久記憶装置基準のためのパラメータ、または双方は、ＸＳＳＤモジュール１０４によって決定するまたはオンザフライで更新することが可能である。キャッシュ基準、永久記憶装置基準または双方の基礎となり得るパラメータは、これに限られないが、年齢（タイミング）、容量（全体に対するパーセンテージ）、電力事象（例えば、シャットダウン）、検出されたアイドルタイム、他のパラメータ、またはこれらの組み合わせが可能である。
【００３６】
図５は、階層型記憶アーキテクチャを実現するための方法５００の別の例示の実施形態のフローチャートである。図５に例示される方法５００の実施形態を説明するに際して、方法５００のある態様を明瞭化するために、図１〜３も参照する。
【００３７】
ブロック５０２で、ＸＳＳＤモジュール１０４は書き込み要求を受信する。例えば、ホストシステム１０２は、書き込み要求をＸＳＳＤモジュール１０４に送信し得る。しかしながら、この書き込み要求は、ＸＳＳＤモジュール１０４が通信可能に連結されるいかなるデバイスまたはシステムからも発し得る。一部の実施形態では、書き込み要求は、揮発性メモリにバッファリングされた指令データおよびユーザデータを含み得る。
【００３８】
方法５００のある実施形態では、ブロック５０４で、ＸＳＳＤモジュール１０４は、選択されたデータ（すなわち、受信された書き込み要求の結果、書き込まれることになっているデータ）を、第１のメモリ階層の不揮発性ソリッドステートメモリ（ＮＶＳＳＭ）に書き込むことが可能である。したがって、全ての選択されたデータは、選択されたデータのいずれかをそれがどこか別のところでプッシュする前に、第１のメモリ階層のＮＶＳＳＭにキャッシングすることが可能である。
【００３９】
ある実施形態では、ＸＳＳＤモジュール１０４を通過する全てのデータは、ＮＶＳＳＭに記憶され得る。例えば、揮発性ランダムアクセスメモリであり得るキャッシュバッファにおけるしきい値時間後に、すべての書き込み内容をＮＶＳＳＭに対して提供することが可能である。このしきい値時間の後で（または別のトリガに基づいて）ＮＶＳＳＭに対してキャッシュをフラッシュすると、フラッシュメモリの１ページに等しいものなどの最小量の書き込みデータが必要とされ得る。更に、ＸＳＳＤモジュール１０４によって受信された読み出し内容は、ＮＶＳＳＭに記憶し得る。一部の実施形態では、読み出し指令によるデータはＸＳＳＤモジュール１０４に記憶されると、少なくとも項目が、ＮＶＳＳＭに記憶され得る。第一に、ホストによって要求された実際のデータが記憶され、第二に、更なる読み出しルックアヘッドデータがＮＶＳＳＭに記憶され得る。例えば、ホスト１０２が論理ブロックアドレス（logical block address:ＬＢＡ）１００からデータを要求し、しかも、それがＮＶＳＳＭ中には既にない場合、ＸＳＳＤモジュール１０４は、このデータをＤＳＤ１０６から回収して、このデータをＬＢＡ１００からホスト１０２に返送する。ＸＳＳＤモジュール１０４はまた、ＬＢＡ１００からのデータを、将来の読み出しのためにＮＶＳＳＭに記憶し、また、ホスト１０２からの後続の要求がＬＢＡ１０１向けである場合に備えて、ＬＢＡ１０１からの更なる読み出しルックアヘッドデータを記憶する。ＸＳＳＤモジュール１０４かＤＳＤ１０６かのいずれかは、読み出しルックアヘッドデータに対する読み出しを始動することが可能であるが、これは次にＸＳＳＤモジュール１０４のＮＶＳＳＭに記憶され得る。
【００４０】
ブロック５０６で、ＸＳＳＤモジュール１０４は、選択されたデータのいずれかまたは全てに対して、永久記憶装置トリガ事象が発生したかどうか、または、１つ以上の永久記憶装置基準が満足されたかどうか、または、これらの組み合わせを判定する。イエスであれば、ＸＳＳＤモジュール１０４は、ブロック５０８で、選択されたデータの少なくともサブ集合を第２のメモリ階層の不揮発性メモリに移動させる。永久記憶装置トリガ事象、永久記憶装置基準またはこれらの組み合わせは、年齢（タイミング）、容量（全体に対するパーセンテージ）、電力事象（例えば、シャットダウン）、検出されたアイドルタイム、他のパラメータまたはこれらの組み合わせなどの１つ以上のパラメータに基づいて判定され得る。
【００４１】
図５は、方法５００が、それが選択されたデータのいずれかをどこか別のところにプッシュする前に、第１のメモリ階層のＮＶＳＳＭに対してすべての選択されたデータをキャッシングするところを図示しているが、ある実施形態では、例えば、図４を参照して上述したキャッシュ基準などの所定のまたはオンザフライで決定されたキャッシュ基準を満足するデータのみがキャッシングされ得る。
【００４２】
図１〜５を参照して上述した装置および方法のこのような実施例を持つ一部の実施形態では、ハイブリッドデータ記憶システムは、ホストシステムまたはデータ記憶デバイス（例えば、ハードディスクドライブ（ＨＤＤ））をほとんどまたは全く修正することなく実現することが可能である。更に、ＸＳＳＤモジュール１０４は、不揮発性キャッシュとして用いられるまたはアドレス可能な記憶スペースとして用いられる複数のデバイスの間に、記憶スペースを選択的に割り当て得る。一部の例では、不揮発性ソリッドステートメモリ（ＮＶＳＳＭ）は、入力するデータもしくは出力するデータまたは、ＨＤＤより読み出しアクセス時間が早いようにキャッシュにピン止めされたデータのために、不揮発性キャッシュとして用いられ得るが、一方、ＨＤＤは永久記憶装置として用いられ得る。ある実施形態では、ホストシステムに報告されたストレージの合計容量は、ＨＤＤの容量にＮＶＳＳＭの容量を加えたものであり得る。更に、一部の実施形態では、複数の記憶デバイス／媒体は、互に対するバックアップとして機能し得るが、例えば、ＨＤＤは、ＮＶＳＳＭに対してバックアップであり得るし、逆も成り立つ。
【００４３】
ＸＳＳＤモジュール１０４は、データをホストシステム、第１のメモリ階層および第２のメモリ階層の間に送信することが可能なように、少なくとも部分的にホストシステムに統合され得る。これに加えてまたはこうする代わりに、ＸＳＳＤモジュール１０４は、データをホストシステム、第１のメモリ階層、および第２のメモリ階層の間に送信することが可能なように、第２のメモリ階層の不揮発性メモリを含むデータ記憶デバイスに、少なくとも部分的に統合され得る。これに加えてまたはこうする代わりに、ＸＳＳＤモジュール１０４は、データをホストシステム、第１のメモリ階層、および第２のメモリ階層の間に送信することが可能なように、ＸＳＳＤモジュール１０４が、ホストシステムと、第２のメモリ階層の不揮発性メモリを含むデータ記憶デバイスとに連結されることを許容するように構成されたブリッジアダプタに、少なくとも部分的に統合され得る。
【００４４】
様々な実施形態によれば、本明細書に説明する方法は、コンピュータプロセッサまたはコントローラ２０６などのコントローラ上を走行する１つ以上のソフトウエアプログラムとして実現され得る。別の実施形態によれば、本明細書に記載された方法は、ディスクドライブを使用しているパーソナルコンピュータなどのコンピューティングデバイス上で動く１つ以上のソフトウェアプログラムとして実装され得る。限定されるものではないが、特定用途向け集積回路、プログラム可能な論理アレイ、および他のハードウェアデバイスを含む専用ハードウェアの実装は、本明細書に記載された方法を実装するように同様に構築され得る。更に、本明細書に記載された方法は、実行されるときにプロセッサに方法を行わせる命令を含むコンピュータで読み出し可能な媒体として実装され得る。
【００４５】
本明細書に記載された実施形態の実例は、さまざまな実施形態の構造の一般的な理解を与えることを意図される。実例は、本明細書に記載された構造もしくは方法を利用する装置およびシステムの要素や特徴の全ての完全な記載として供されることを意図されない。多くの他の実施形態は、開示を検討すれば、当業者に明らかであろう。他の実施形態は、構造的および論理的置換や変更が開示の範囲から逸脱することなくなされ得るように、利用され得、開示から導かれ得る。その上、特定の実施形態が本明細書に例示され記載されたが、同じまたは類似目的を達成するように設計された任意の後続の配置が、示された特定の実施形態に置換され得ることが理解されるべきである。
【００４６】
この開示は、さまざまな実施形態の任意のおよび全ての後続の適応または変形を包含することが意図される。上記実施形態の組み合わせ、および本明細書に特に記載されていない他の実施形態は、説明を再検討すれば、当業者に明らかになるであろう。更に、実例は、単に代表するものであり、縮尺に合わせて描かれていない可能性がある。実例の範囲内の一定部分は、誇張され得る一方で、他の部分は縮小され得る。したがって、開示および図面は、限定的なものではなくて、例示的なものであるとして、みなされるべきである。
【符号の説明】
【００４７】
１００  システム、１０２  ホスト、１０４  ＸＳＳＤモジュール、１０６  データ記憶媒体、１０８，１１０  インターフェース。
【図１】
2014182812.tif 000003
【図２】
2014182812.tif 000004
【図３】
2014182812.tif 000005
【図４】
2014182812.tif 000006
【図５】
2014182812.tif 000007