(57)【特許請求の範囲】
【請求項１】
固体ドライブ（ＳＳＤ）と、
ディスクドライブと、
複数の前記ドライブと通信し、０からＬまでの論理アドレス空間内に論理ブロックアドレスをマップするプロセッサ電子部品と、
を備え、
Ｌは０よりも大きく、
前記ＳＳＤと前記ディスクドライブとは単一の論理ドライブとして仮想化され、
前記プロセッサ電子部品は、前記論理アドレス空間における第１アドレス領域の複数の論理ブロックアドレスを前記ＳＳＤにマップし、前記論理アドレス空間における前記第１アドレス領域と異なる第２アドレス領域の複数の論理ブロックアドレスを前記ディスクドライブにマップし、
前記第１アドレス領域は、０からＫまでの複数のアドレスを含み、
前記第２アドレス領域は、Ｋ＋１からＬまでの複数のアドレスを含み、
ＬはＫよりも大きく、
Ｋは０よりも大きく、
前記第１アドレス領域は前記ＳＳＤに割り当てられ、
前記第２アドレス領域は前記ディスクドライブに割り当てられ、
前記プロセッサ電子部品は、
前記論理ドライブに書き込まれるべきファイルに基づいて、前記ＳＳＤおよび前記ディスクドライブの１つに対応するターゲット論理アドレスを決定することと、
前記ターゲット論理アドレスの前記論理ドライブに前記ファイルを書き込み、前記ＳＳＤおよび前記ディスクドライブの１つにおける格納を実行することと
を含むオペレーションを実行し、
前記ターゲット論理アドレスを決定することは、管理者またはルートに関連付けられた前記ファイルを書き込むために、前記論理アドレス空間における前記第１アドレス領域を選択することを含む
システム。
【請求項２】
前記オペレーションは、前記論理ドライブに関連付けられた複数のファイルの使用量情報を監視することを含み、
前記ターゲット論理アドレスを決定することは、前記使用量情報を用いて前記ＳＳＤおよび前記ディスクドライブの１つを選択することを含む請求項１に記載のシステム。
【請求項３】
前記ファイルは前記ディスクドライブに既に格納されており、
前記ターゲット論理アドレスを決定することは、前記ＳＳＤに対応するターゲット論理アドレスを選択することを含み、
前記論理ドライブに前記ファイルを書き込むことは、前記ディスクドライブから前記ＳＳＤへ前記ファイルを移動することを含む請求項２に記載のシステム。
【請求項４】
前記ファイルは前記ＳＳＤに既に格納されており、
前記論理ドライブに前記ファイルを書き込むことは、対応する使用量情報に基づいて、前記ＳＳＤに格納された前記ファイルを前記ディスクドライブに移動することを含む請求項２または３に記載のシステム。
【請求項５】
前記オペレーションは前記ファイルのタイプを識別することを含み、
前記ターゲット論理アドレスを決定することは、前記ファイルの前記タイプのレイテンシ要件に基づいて、前記ＳＳＤに対応するターゲット論理アドレスを選択することを含み、
前記ファイルを前記論理ドライブに書き込むことは、前記ファイルを前記ＳＳＤに書き込むことを含む請求項１から４のいずれか１項に記載のシステム。
【請求項６】
前記ＳＳＤは複数のエクステントに分割され、
前記論理ドライブは、前記複数のエクステントの１つのエクステントと前記ディスクドライブとに基づく請求項１から５のいずれか１項に記載のシステム。
【請求項７】
前記ディスクドライブは、第１のディスクドライブおよび第２のディスクドライブを含み、
前記ＳＳＤは複数のエクステントに分割され、
第１の論理ドライブは、前記ＳＳＤの第１のエクステントと前記第１のディスクドライブとに基づき、第２の論理ドライブは、前記ＳＳＤの第２のエクステントと前記第２のディスクドライブとに基づく請求項１から５のいずれか１項に記載のシステム。
【請求項８】
前記論理ドライブにファイルを書込む場合に、オペレーティングシステムによって低いアドレス値から高いアドレス値へと論理アドレスが指定される請求項１から７のいずれか１項に記載のシステム。
【請求項９】
固体ドライブ（ＳＳＤ）と通信する第１インターフェイスと、
ディスクドライブと通信する第２インターフェイスと、
複数の前記ドライブと通信し、０からＬまでの論理アドレス空間内に論理ブロックアドレスをマップするプロセッサ電子部品と、
を備え、
Ｌは０よりも大きく、
前記ＳＳＤと前記ディスクドライブとは単一の論理ドライブとして仮想化され、
前記プロセッサ電子部品は、前記論理アドレス空間における第１アドレス領域の複数の論理ブロックアドレスを前記ＳＳＤにマップし、前記論理アドレス空間における前記第１アドレス領域と異なる第２アドレス領域の複数の論理ブロックアドレスを前記ディスクドライブにマップし、
前記第１アドレス領域は、０からＫまでの複数のアドレスを含み、
前記第２アドレス領域は、Ｋ＋１からＬまでの複数のアドレスを含み、
ＬはＫよりも大きく、
Ｋは０よりも大きく、
前記第１アドレス領域は前記ＳＳＤに割り当てられ、
前記第２アドレス領域は前記ディスクドライブに割り当てられ、
前記プロセッサ電子部品は、
前記論理ドライブに書き込まれるべきファイルに基づいて、前記ＳＳＤおよび前記ディスクドライブの１つに対応するターゲット論理アドレスを決定することと、
前記ターゲット論理アドレスの前記論理ドライブに前記ファイルを書き込み、前記ＳＳＤおよび前記ディスクドライブの１つにおける格納を実行することと
を含むオペレーションを実行し、
前記ターゲット論理アドレスを決定することは、管理者またはルートに関連付けられた前記ファイルを書き込むために、前記論理アドレス空間における前記第１アドレス領域を選択することを含む
装置。
【請求項１０】
前記オペレーションは、前記論理ドライブに関連付けられた複数のファイルの使用量情報を監視することを含み、
前記ターゲット論理アドレスを決定することは、前記使用量情報を用いて前記ＳＳＤおよび前記ディスクドライブの１つを選択することを含む請求項９に記載の装置。
【請求項１１】
前記ファイルは前記ディスクドライブに既に格納されており、
前記ターゲット論理アドレスを決定することは、前記ＳＳＤに対応するターゲット論理アドレスを選択することを含み、
前記論理ドライブに前記ファイルを書き込むことは、前記ディスクドライブから前記ＳＳＤへ前記ファイルを移動することを含む請求項１０に記載の装置。
【請求項１２】
前記ファイルは前記ＳＳＤに既に格納されており、
前記論理ドライブに前記ファイルを書き込むことは、対応する使用量情報に基づいて、前記ＳＳＤに格納された前記ファイルを前記ディスクドライブに移動することを含む請求項１０または１１に記載の装置。
【請求項１３】
前記オペレーションは前記ファイルのタイプを識別することを含み、
前記ターゲット論理アドレスを決定することは、前記ファイルの前記タイプのレイテンシ要件に基づいて、前記ＳＳＤに対応するターゲット論理アドレスを選択することを含み、
前記ファイルを前記論理ドライブに書き込むことは、前記ファイルを前記ＳＳＤに書き込むことを含む請求項９から１２のいずれか１項に記載の装置。
【請求項１４】
前記ＳＳＤは複数のエクステントに分割され、
前記論理ドライブは、前記複数のエクステントの１つのエクステントと前記ディスクドライブとに基づく請求項９から１３のいずれか１項に記載の装置。
【請求項１５】
前記ディスクドライブは、第１のディスクドライブおよび第２のディスクドライブを含み、
前記ＳＳＤは複数のエクステントに分割され、
第１の論理ドライブは、前記ＳＳＤの第１のエクステントと前記第１のディスクドライブとに基づき、第２の論理ドライブは、前記ＳＳＤの第２のエクステントと前記第２のディスクドライブとに基づく請求項９から１３のいずれか１項に記載の装置。
【請求項１６】
前記論理ドライブにファイルを書込む場合に、オペレーティングシステムによって低いアドレス値から高いアドレス値へと論理アドレスが指定される請求項９から１５のいずれか１項に記載の装置。
【請求項１７】
固体ドライブ（ＳＳＤ）とディスクドライブとが、０からＬまでの論理アドレス空間を有する単一の論理ドライブとして仮想化されるように、前記ＳＳＤおよび前記ディスクドライブを含む複数のドライブを操作する段階と、
前記論理ドライブに書き込まれるべきファイルに基づいて、前記ＳＳＤおよび前記ディスクドライブの１つに対応するターゲット論理アドレスを決定する段階と、
前記ＳＳＤおよび前記ディスクドライブの１つにおける格納を実行するために、前記ターゲット論理アドレスの前記論理ドライブに前記ファイルを書き込む段階と
を備え、
Ｌは０よりも大きく、
前記複数のドライブを操作する段階は、前記論理アドレス空間における第１アドレス領域の複数の論理ブロックアドレスを前記ＳＳＤにマップし、前記論理アドレス空間における前記第１アドレス領域と異なる第２アドレス領域の複数の論理ブロックアドレスを前記ディスクドライブにマップする段階を含み、
前記第１アドレス領域は、０からＫまでの複数のアドレスを含み、
前記第２アドレス領域は、Ｋ＋１からＬまでの複数のアドレスを含み、
ＬはＫよりも大きく、
Ｋは０よりも大きく、
前記第１アドレス領域は前記ＳＳＤに割り当てられ、
前記第２アドレス領域は前記ディスクドライブに割り当てられ、
前記ターゲット論理アドレスを決定する段階は、管理者またはルートに関連付けられた前記ファイルを書き込むために、前記論理アドレス空間における前記第１アドレス領域を選択する段階を含む
方法。
【請求項１８】
前記論理ドライブに関連付けられた複数のファイルの使用量情報を監視する段階を含み、
前記ターゲット論理アドレスを決定する段階は、前記使用量情報を用いて前記ＳＳＤおよび前記ディスクドライブの１つを選択する段階を含む請求項１７に記載の方法。
【請求項１９】
前記ファイルは前記ディスクドライブに既に格納されており、
前記ターゲット論理アドレスを決定する段階は、前記ＳＳＤに対応するターゲット論理アドレスを選択する段階を含み、
前記論理ドライブに前記ファイルを書き込む段階は、前記ディスクドライブから前記ＳＳＤへ前記ファイルを移動する段階を含む請求項１８に記載の方法。
【請求項２０】
前記ファイルは前記ＳＳＤに既に格納されており、
前記論理ドライブに前記ファイルを書き込む段階は、対応する使用量情報に基づいて、前記ＳＳＤに格納された前記ファイルを前記ディスクドライブに移動する段階を含む請求項１８または１９に記載の方法。
【請求項２１】
前記ファイルのタイプを識別する段階を含み、
前記ターゲット論理アドレスを決定する段階は、前記ファイルの前記タイプのレイテンシ要件に基づいて、前記ＳＳＤに対応するターゲット論理アドレスを選択する段階を含み、
前記論理ドライブに前記ファイルを書き込む段階は、前記ファイルを前記ＳＳＤに書き込む段階を含む請求項１７から２０のいずれか１項に記載の方法。
【請求項２２】
前記論理ドライブに前記ファイルを書き込む段階は、コントローラに（ｉ）前記ターゲット論理アドレスに基づいて、前記ＳＳＤおよび前記ディスクドライブの１つを選択させ、（ｉｉ）選択された前記ドライブに前記ファイルを書き込ませる段階を含む請求項１７から２１のいずれか１項に記載の方法。
【請求項２３】
前記論理ドライブにファイルを書込む場合に、オペレーティングシステムによって低いアドレス値から高いアドレス値へと論理アドレスが指定される請求項１７から２２のいずれか１項に記載の方法。
【請求項２４】
前記ディスクドライブは、第１のディスクドライブおよび第２のディスクドライブを含み、
前記ＳＳＤは複数のエクステントに分割され、
第１の論理ドライブは、前記ＳＳＤの第１のエクステントと前記第１のディスクドライブとに基づき、第２の論理ドライブは、前記ＳＳＤの第２のエクステントと前記第２のディスクドライブとに基づく請求項１７から２３のいずれか１項に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
［関連出願］  本開示は、２００９年１２月４日に出願された"Hyper SSD"と題する米国特許仮出願第６１／２６６，９２４号からの優先権を主張し、上記の出願の開示内容全体を参照により本明細書に組み込む。
【０００２】
本願の開示は格納技術に関する。
【０００３】
コンピュータシステムのようなデータ処理システムは、１つ以上の格納デバイスを用いて情報を格納し、また、引き出すことができる。格納デバイスの様々な例としては、固体ドライブ（ＳＳＤ）、テープドライブ、および、ハードディスクドライブ（ＨＤＤ）や光学式ドライブ等のディスクドライブが含まれる。ＳＳＤには、フラッシュメモリのような不揮発性メモリが含まれる。格納デバイスは、オペレーティングシステムファイルやアプリケーションファイル等のファイルを格納することができる。ＳＳＤはＨＤＤよりも低いレイテンシを提供し、ＨＤＤはＳＳＤよりも大きな格納容量を提供してよい。
【発明の概要】
【０００４】
本開示は、特に仮想ドライブを含む格納技術に関するシステムおよび技術を含む。
【０００５】
記載されるシステムおよび技術の１つの側面によれば、格納技術とともに使用される方法は、固体ドライブ（ＳＳＤ）およびディスクドライブを含む複数のドライブを操作することを含む。ＳＳＤおよびディスクドライブは、論理アドレス空間を有する単一の論理ドライブとして仮想化され、論理ドライブは、ＳＳＤおよびディスクドライブに論理ブロックアドレスをマップする。本技術は、論理ドライブに書き込まれるべきファイルに基づいて、ＳＳＤおよびディスクドライブの一方に対応するターゲット論理アドレスを決定すること、および、ターゲット論理アドレスの論理ドライブにファイルを書き込み、ＳＳＤおよびディスクドライブの一方における格納を実行することを含む。いくつかの実施形態において複数のドライブを操作することは、ＳＳＤおよびテープドライブ等の大容量格納デバイスを操作することを含む。いくつかの実施形態において複数のドライブを操作することは、第２のドライブよりも高速であり、容量の小さい第１のドライブを操作することを含む。ターゲット論理アドレスを決定することは、ファイルの特性を使用してターゲット論理アドレスを選択することを含んでよい。ターゲット論理アドレスを決定することは、第１アドレス領域および第２アドレス領域の一方を選択することを含んでよい。
【０００６】
記載されるシステムおよび技術の別の側面によれば、格納技術とともに使用される方法は、ＳＳＤおよびディスクドライブを含む複数のドライブを操作すること、ＳＳＤおよびディスクドライブを仮想化して、論理アドレス空間を有する単一の論理ドライブとすること、論理ドライブに書き込まれるべきファイルの特性に基づいて、ＳＳＤおよびディスクドライブの一方に対応するターゲット論理アドレスを選択すること、および、ターゲット論理アドレスの論理ドライブにファイルを書き込み、ＳＳＤおよびディスクドライブの一方における格納を実行することを含む。論理ドライブは、ＳＳＤおよびディスクドライブに論理ブロックアドレスをマップする。この方法は、ＳＳＤおよびディスクドライブを仮想化して、０からＬまでの論理アドレス空間を有する単一の論理ドライブとすることができる。ここで、Ｌは０よりも大きい。仮想化することは、論理アドレス空間における第１アドレス領域の論理ブロックアドレスをＳＳＤにマップし、論理アドレス空間における第１アドレス領域と異なる第２アドレス領域の論理ブロックアドレスをディスクドライブにマップすることを含んでよい。
【０００７】
実施形態には、論理ドライブに関連付けられたファイルの使用量情報を監視することが含まれる。いくつかの実施形態においては、ファイルの特性は、相対的な使用頻度等の使用量情報に基づくものである。ターゲット論理アドレスを選択することは、使用量情報を用いてＳＳＤおよびディスクドライブの一方を選択することを含んでよい。いくつかの場合には、ファイルはディスクドライブに予め格納されている。ターゲット論理アドレスを選択することは、ＳＳＤに対応するターゲット論理アドレスを選択することを含んでよい。論理ドライブにファイルを書き込むことは、ディスクドライブからＳＳＤにファイルを移動し、ファイルの読み出しアクセスレイテンシを下げることを含んでよい。いくつかの場合には、ファイルはＳＳＤに既に格納されている。論理ドライブにファイルを書き込むことは、対応する使用量情報に基づいて、ＳＳＤに格納されたファイルをディスクドライブに移動し、ＳＳＤ上の利用可能な空間を増大させることを含んでよい。実施形態には、論理ドライブに関連付けられたファイルの使用量情報を監視することが含まれる。ターゲット論理アドレスを決定することは、使用量情報を用いてＳＳＤおよびディスクドライブの一方を選択することを含んでよい。
【０００８】
実施形態には、論理ドライブに関連付けられたファイルのタイプを識別することが含まれる。ファイルの特性は、ファイルのタイプを含んでよい。ターゲット論理アドレスを選択することは、ファイルタイプのレイテンシ要件に基づいて、ＳＳＤに対応するターゲット論理アドレスを選択することを含んでよい。論理ドライブにファイルを書き込むことは、ＳＳＤにファイルを書き込むことを含んでよい。
【０００９】
ＳＳＤおよびディスクドライブを仮想化することは、０からＫまでの第１アドレス領域の論理ブロックアドレスをＳＳＤにマップし、Ｋ＋１からＬまでの第２アドレス領域の論理ブロックアドレスをディスクドライブにマップすることを含んでよい。ここで、ＬはＫよりも大きく、Ｋは０よりも大きい。論理ドライブにファイルを書き込むことは、ターゲット論理アドレスに基づいて、ＳＳＤおよびディスクドライブの一方をコントローラに選択させ、選択されたドライブにファイルを書き込ませることを含んでよい。
【００１０】
記載されるシステムおよび技術は、本明細書に開示される構造的な手段およびそれらの構造的等価物のような、電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、あるいはそれらの組み合わせによって実施することができる。これは、少なくとも１つのコンピュータ読み取り可能な媒体を含んでよく、１つ以上のデータ処理装置（例えば、プログラマブルプロセッサを含む信号処理デバイス）に対し、記載されるオペレーションを実行させるように動作するプログラムを実現させる。従って、プログラムの実施は、開示される方法、システム、又は装置により実現され、装置の実施は、開示されるシステム、コンピュータ読み取り可能な媒体、又は方法によって実現される。同様に、方法の実施は、開示されるシステム、コンピュータ読み取り可能な媒体、又は装置により実現され、システムの実施は、開示される方法、コンピュータ読み取り可能な媒体、又は装置によって実現される。
【００１１】
例えば、開示される１つ以上の実施例は、これらに限定されるものではないが、特定用途向データ処理装置（例えば、ワイヤレスアクセスポイント等のワイヤレス通信デバイス、リモート環境モニタ、ルータ、スイッチ、コンピュータシステム部品、媒体アクセスユニット）、移動型データ処理装置（例えばワイヤレスクライアント、携帯電話、スマートフォン、携帯情報端末（ＰＤＡ）、モバイルコンピュータ、デジタルカメラ）、コンピュータのような一般用途向データ処理装置、またはこれらの組み合わせを含む、様々なシステム及び装置として実施されてよい。
【００１２】
システムおよび装置は、ＳＳＤと通信する第１インターフェイス、ディスクドライブと通信する第２インターフェイス、および、ドライブと通信し、０からＬまでの論理アドレス空間における論理ブロックアドレスをマップするプロセッサ電子部品を含んでよい。ここで、Ｌは０よりも大きい。ＳＳＤおよびディスクドライブは、単一の論理ドライブとして仮想化される。いくつかの実施形態においてプロセッサ電子部品は、論理アドレス空間における第１アドレス領域の論理ブロックアドレスをＳＳＤにマップし、論理アドレス空間における第１アドレス領域と異なる第２アドレス領域の論理ブロックアドレスをディスクドライブにマップする。いくつかの実施形態においてプロセッサ電子部品は、論理ドライブに書き込まれるべきファイルに基づいて、ＳＳＤおよびディスクドライブの一方に対応するターゲット論理アドレスを決定すること、および、ターゲット論理アドレスの論理ドライブにファイルを書き込み、ＳＳＤおよびディスクドライブの一方における格納を実行することを含んだオペレーションを実行するように構成される。
【００１３】
これらの、およびその他の実施形態は、以下の特徴の１つ以上を含むことができる。ターゲット論理アドレスを決定することは、ファイルの特性を使用してターゲット論理アドレスを選択することを含んでよい。オペレーションは、論理ドライブに関連付けられたファイルの使用量情報を監視することを含んでよい。いくつかの実施形態においては、ファイルの特性は使用量情報に基づくものである。ターゲット論理アドレスを選択することは、使用量情報を用いてＳＳＤおよびディスクドライブの一方を選択することを含んでよい。いくつかの場合、ファイルは既にディスクドライブに格納されている。ターゲット論理アドレスを選択することは、ＳＳＤに対応するターゲット論理アドレスを選択することを含んでよい。論理ドライブにファイルを書き込むことは、ディスクドライブからＳＳＤへファイルを移動し、ファイルの読み出しアクセスレイテンシを下げることを含んでよい。いくつかの場合、ファイルは既にＳＳＤに格納されている。論理ドライブにファイルを書き込むことは、対応する使用量情報に基づいて、ＳＳＤに格納されているファイルをディスクドライブに移動し、ＳＳＤ上の利用可能な空間を増大させることを含んでよい。
【００１４】
実施形態には、論理ドライブに関連付けられたファイルのタイプを識別する動作が含まれる。ファイルの特性としてタイプを含んでよい。ターゲット論理アドレスを選択することは、ファイルタイプのレイテンシ要件に基づいて、ＳＳＤに対応するターゲット論理アドレスを選択することを含んでよい。論理ドライブにファイルを書き込むことは、ＳＳＤにファイルを書き込むことを含んでよい。
【００１５】
いくつかの実施形態においては、ＳＳＤは複数のエクステントに分割される。仮想化することは、複数のエクステントの１つのエクステントとディスクドライブとを仮想化して単一の論理ドライブとすることを含んでよい。いくつかの実施形態においては、第１アドレス領域は０からＫまでのアドレスを含み、第２アドレス領域はＫ＋１からＬまでのアドレスを含む。ここで、ＬはＫよりも大きく、Ｋは０よりも大きい。
【００１６】
別の側面によれば、システムおよび装置は、ＳＳＤ、ディスクドライブ、および、ドライブと通信し、０からＬまでの論理アドレス空間における論理ブロックアドレスをマップするプロセッサ電子部品を含んでよい。いくつかの実施形態においてプロセッサ電子部品は、第１アドレス領域の論理ブロックアドレスをＳＳＤにマップし、異なる第２アドレス領域の論理ブロックアドレスをディスクドライブにマップする。いくつかの実施形態においては、第１アドレス領域は０からＫまでのアドレスを含み、第２アドレス領域はＫ＋１からＬまでのアドレスを含む。ここで、ＬはＫよりも大きく、Ｋは０よりも大きい。ターゲット論理アドレスを決定することは、第１アドレス領域および第２アドレス領域の一方を選択することを含んでよい。
【００１７】
１つ以上の実施例の詳細を、添付する図面及び以下の記載において説明する。その他の特徴および利点は、この記載、図面、及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１８】
【図１】２つの物理ドライブに関連付けられた１つの仮想ドライブに対するマッピング技術の例を示す。
【００１９】
【図２】ＳＳＤおよびＨＤＤを含むシステム構成の例を示す。
【００２０】
【図３】ＳＳＤおよびＨＤＤを含むシステム構成の別の例を示す。
【００２１】
【図４】２つのコントローラ、ＳＳＤ、およびＨＤＤを含むシステム構成の例を示す。
【００２２】
【図５】２つのＨＤＤおよび複数に分割されたＳＳＤを含むシステム構成の例を示す。
【００２３】
【図６】オペレーティングシステム格納スタック構成の例を示す。
【００２４】
【図７】仮想ドライブ格納プロセスの例を示す。
【００２５】
【図８】仮想ドライブ格納プロセスの別の例を示す。
【００２６】
【図９】ファイル使用量情報を監視することを含んだ仮想ドライブ格納プロセスの例を示す。
【００２７】
【図１０】ファイル使用量情報を監視することを含んだ仮想ドライブ格納プロセスの別の例を示す。
【００２８】
【図１１】ファイルタイブの識別を含む仮想ドライブ格納プロセスの別の例を示す。
【００２９】
様々な図面中の参照符号は構成要素を示す。
【発明を実施するための形態】
【００３０】
本開示は、仮想ドライブ格納技術の詳細および例を提供する。記載されるシステムおよび技術は、ディスクドライブやＳＳＤ等の物理格納デバイスを仮想化して仮想ドライブとする機構を含む。記載されるシステムおよび技術は、仮想ドライブの物理ドライブ間でファイルを移動し、仮想ドライブの性能を最適化する機構を含む。タイプの異なる複数の物理ドライブを使用することにより、アクセス性能の増大や格納量の増大といった利点をもたらすことができる。
【００３１】
図１は、２つの物理ドライブに関連付けられた１つの仮想ドライブに対するマッピング技術の例を示す。論理ドライブは、ＳＳＤ１２０およびディスクドライブ１３０等、２つ以上の物理ドライブと関連付けられてよい。マッピング技術１００は、仮想ドライブの論理ブロックアドレス（ＬＢＡ）のような論理アドレス１１０を、仮想ドライブの物理ドライブ１２０、１３０の一方に入力するのに適した論理アドレスにマップする。この例においては、ＬＢＡ空間１０５が、第１および第２アドレス領域１１５、１２５に分割される。第１領域１１５は０からＫまでのアドレスを含む。第２領域１２５はＫ＋１からＬまでのアドレスを含む。ここで、ＬはＫよりも大きく、Ｋは０よりも大きい。第１マッピングは、第１領域１１５中のＬＢＡを、必要に応じてＳＳＤ１２０に適したＬＢＡに変換する。第２マッピングは、第２領域１２５中のＬＢＡを、ディスクドライブ１３０に適したＬＢＡに変換する。ここで、Ｋ＋１からＬまでのＬＢＡは、それぞれアドレス０からＬ−Ｋにマップされる。アドレスＬ−Ｋは、ディスクドライブ１３０の最大論理アドレス値である。
【００３２】
マッピング技術１００は、マッピングに基づいて、論理ブロックアドレス１１０を複数のアドレス領域の１つにマップする。アドレス領域は、物理ドライブ１２０、１３０にそれぞれ関連付けられる。マッピング技術１００は、２つの物理ドライブに限定されるものではなく、仮想ドライブに関連付けられた３つ以上の物理ドライブ、あるいはそれらの複数のパーティションに適用することができる。上述した、ＳＳＤおよびディスクドライブを含む仮想ドライブの様々な潜在的利点には、高速な起動時間、高速な読み出しおよび書き込み性能、並びに、格納容量の増大が含まれる。
【００３３】
図２は、ＳＳＤおよびＨＤＤを含むシステム構成の例を示す。プロセッサ２０５は、コントローラ２１０を使用して、単一の論理ドライブに仮想化された２つの物理ドライブ２１５、２２０と通信する。物理ドライブ２１５、２２０の様々な例としては、ＳＳＤ２１５およびＨＤＤ２２０が含まれる。いくつかの実施形態においては、ＳＳＤ２１５はＮＡＮＤフラッシュメモリを含む。いくつかの実施形態においては、ＳＳＤ２１５はＮＯＲフラッシュメモリを含む。いくつかの実施形態においてＳＳＤ２１５は、バッテリバックアップを有するダブルデータレート（ＤＤＲ）メモリを含む。
【００３４】
プロセッサ２０５とコントローラ２１０との間の物理インターフェイスの様々な例としては、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、シリアルエーティーエー（Serial Advanced Technology Attachment：ＳＡＴＡ）、スモールコンピュータシステムインターフェイス（ＳＣＳＩ）、シリアル接続ＳＣＳＩ（ＳＡＳ）、ユニバーサルシリアルバス（ＵＳＢ）、および、マルチメディアカード（ＭＭＣ）等のメモリカード用インターフェイスが含まれる。ホストソフトウェア通信プロトコルの様々な例としては、アドバンストホストコントローラインターフェイス（ＡＨＣＩ）、不揮発性メモリホストコントローラインターフェイス（ＮＶＭＨＣＩ）、インテグレーテッドドライブエレクトロニクス（ＩＤＥ）、および、インテリジェント入出力（Ｉ２Ｏ）が含まれる。
【００３５】
いくつかの実施例においてプロセッサ２０５は、マッピング技術１００を用いて、論理ドライブにデータを格納するための物理ドライブ２１５、２２０の選択を制御する。例えば、プロセッサ２０５で実行される仮想化プロセスは、物理ドライブ２１５、２２０の仮想化を維持することができる。プロセッサ２０５上で実行されるアプリケーションは、特定のＬＢＡに書き込むことができる。仮想化プロセスは、ＬＢＡを、変換された論理アドレスに変換することができる。仮想化プロセスは、変換された論理アドレスと、ターゲットの物理ドライブ２１５、２２０を識別するものとを有する書き込みコマンドを、コントローラ２１０に対して発行することができる。プロセッサ２０５は、論理ドライブにファイルを書き込むことができる。いくつかの場合においては、論理ドライブにファイルを書き込むことは、移動操作によって、異なる論理アドレスの論理ドライブにファイルを書き直すことを含む。いくつかの実施形態においてプロセッサ２０５は、物理ドライブ２１５、２２０の一方からファイルを読み出し、他方のドライブにファイルを書き込むことを含んだ移動操作を実行する。いくつかの実施形態において移動操作は、１つ以上のファイルを物理ドライブ２１５、２２０の間で移動させるようにコントローラ２１０を操作することを含む。
【００３６】
いくつかの実施形態においてコントローラ２１０は、プロセッサ２０５からの書き込みコマンドを処理する場合に、マッピング技術１００を用いて物理ドライブ２１５、２２０の選択を制御する。例えば、コントローラ２１０は、物理ドライブ２１５、２２０の仮想化を維持することができる。コントローラ２１０は、プロセッサ２０５上で実行されるアプリケーションによって生成された書き込みコマンドを受信することができる。書き込みコマンドは、ＬＢＡおよび書き込みデータを含んでよい。コントローラ２１０は、書き込みコマンドに含まれるＬＢＡに基づいて物理ドライブ２１５、２２０を選択する。
【００３７】
図３は、ＳＳＤおよびＨＤＤを含むシステム構成の別の例を示す。データ処理システムは、コントローラ３０５のようなプロセッサ電子部品を含んでよい。コントローラ３０５は、１つ以上のプロセッサ３１０、メモリ３１５、および、ＳＳＤ３３０やＨＤＤ３３５等の対応する物理ドライブとの通信用インターフェイス３２０、３２５を含む。物理ドライブとの通信用インターフェイス３２０、３２５は、アドレス信号、データ信号、またはその両者を生成するための回路を含むことができる。いくつかの実施形態においてコントローラ３０５は、プロセッサ３１０、メモリ３１５、およびインターフェイス３２０、３２５を実現するための集積回路を含む。
【００３８】
図４は、２つのコントローラ、ＳＳＤ、およびＨＤＤを含むシステム構成の例を示す。データ処理システムは、１つ以上のプロセッサ４０５および１つ以上のコントローラ４１０、４２０等のプロセッサ電子部品を含んでよい。プロセッサ４０５は、それぞれがＳＳＤ４３０およびＨＤＤ４４０のような２つ以上の物理ドライブを制御する２つ以上のコントローラ４１０、４２０と通信することができる。プロセッサ４０５は、仮想化プロセスを実行して、ＳＳＤ４３０およびＨＤＤ４４０から仮想ドライブを生成することができる。
【００３９】
図５は、２つのＨＤＤおよび複数に分割されたＳＳＤを含むシステム構成の例を示す。コントローラ５１０は、ＳＳＤ５３０を２つ以上のパーティション５４０、５４５に分割することができる。パーティションはエクステントとみなすことができる。コントローラ５１０は、ＳＳＤ５３０の第１パーティション５４０と第１ＨＤＤ５２０とをグループ化して第１仮想ドライブを形成することができる。コントローラ５１０は、ＳＳＤ５３０の第２パーティション５４５と第２ＨＤＤ５２５とをグループ化して第２仮想ドライブを形成することができる。ホストシステム５０５は、コントローラ５１０を介して、第１または第２仮想ドライブのどちらかと通信することができる。ホストシステム５０５は、１つ以上のプロセッサを含んでよい。いくつかの実施形態においては、ホストシステム５０５がコントローラ５１０を含む。ホストシステム５０５は、仮想ドライブまたは物理ドライブ等のドライブに格納されたファイルシステムへのアクセスを提供するオペレーティングシステム（ＯＳ）を実行することができる。ＯＳは、物理ドライブを仮想化するドライバを読み込むことができる。いくつかの実施形態においてＯＳは、仮想ドライブとして構成された物理ドライブと通信することのできるドライバを読み込む。
【００４０】
図６は、オペレーティングシステム格納スタック構成の例を示す。オペレーティングシステム格納スタック構成は、ＯＳファイルシステムドライバ６００、１つ以上のＯＳ格納スタックドライバ６０５、ＯＳディスククラスドライバ６１０、およびディスクフィルタドライバ６１５を含むことができる。ＯＳファイルシステムドライバ６００は、オペレーティングシステムおよび様々なアプリケーションに、ファイルシステム機能を提供することができる。
【００４１】
ディスクフィルタドライバ６１５は、複数の異なる物理ドライブに関連付けられた複数のドライバと通信することができる。ディスクフィルタドライバ６１５は、ＨＤＤ６２５等の物理ドライブに関連付けられた格納コントローラドライバ６２０と通信することができる。ディスクフィルタドライバ６１５は、ＳＳＤ６４５等の物理ドライブに関連付けられた別のコントローラドライバ６４０と通信することができる。例えば、ディスクフィルタドライバ６１５は、ＳＳＤ６４５中のフラッシュメモリと相互作用するように動作可能なフラッシュコントローラドライバ６４０と通信することができる。
【００４２】
いくつかの実施形態においては、ブリッジドライバ６３０が、ディスクフィルタドライバ６１５およびフラッシュコントローラドライバ６４０と通信するように結合される。いくつかの実施形態においてブリッジドライバ６３０は、ディスクフィルタドライバ６１５とフラッシュコントローラドライバ６４０との間でコマンドを変換するように動作することができる。
【００４３】
いくつかの実施形態においてディスクフィルタドライバ６１５は、仮想ドライブを生成する機能を含む。いくつかの実施形態においてディスクフィルタドライバ６１５は、２つ以上のドライブを１つの仮想ドライブに結合するコントローラを認識している。いくつかの実施形態においては、ＯＳファイルシステムドライバ６００のような１つ以上のドライバは、仮想ドライブを認識せず、そのようなドライブを物理ドライブとして扱う。
【００４４】
図７は、仮想ドライブ格納プロセスの例を示す。コントローラ、ホストシステム、またはそれらの組み合わせによって、仮想ドライブ格納プロセスを実行することができる。７０５において、ＳＳＤおよびＨＤＤを含むドライブをプロセスが操作する。いくつかの実施形態においては、ドライブを操作することは、ＳＳＤおよびＨＤＤと通信状態にあるコントローラと通信することを含む。いくつかの実施形態においては、ドライブを操作することは、それぞれがＳＳＤおよびＨＤＤと通信状態にある２つ以上のコントローラと通信することを含む。いくつかの実施形態においては、ドライブを操作することは、コントローラによって、あるいはコントローラを必要とせずに、ＳＳＤおよびＨＤＤと通信することを含む。
【００４５】
７１０においてプロセスは、ＳＳＤおよびＨＤＤを仮想化して、０からＬまでの論理アドレス空間を有する単一の論理ドライブとする。いくつかの実施形態においてプロセスは、ＳＳＤおよびＨＤＤが、オペレーティングシステムにとって単一のドライブとして見えるようにする。いくつかの実施形態においては、コントローラが物理ドライブを仮想化する。コントローラおよびホストシステムが電源投入されるたびに仮想化を行ってよい。いくつかの実施形態においては、電源が投入された後の初期化プロセスの間に、仮想ドライブに対する物理ドライブのマッピングを特定するコンフィグレーションファイルにアクセスすることが仮想化に含まれる。
【００４６】
７２０においてプロセスは、論理ドライブに書き込まれるべきファイルに基づいて、ＳＳＤおよびＨＤＤの一方に対応するターゲット論理アドレスを決定する。ターゲット論理アドレスを決定することは、ファイルの特性に基づいて、論理ドライブの論理アドレス空間内においてターゲット論理アドレスを選択することを含んでよい。例えば、オペレーティングシステムは、論理ドライブにファイルを書き込むことができる。プロセスは、ファイルタイプあるいはファイル使用量といったファイルの特性を特定することができる。プロセスは、タイプに基づいて、ファイルがＳＳＤに書き込まれるようにターゲット論理アドレスを選択することができる。あるいは、プロセスは、ファイルがＨＤＤに書き込まれるように、異なるターゲット論理アドレスを選択する。いくつかの実施形態においては、ターゲット論理アドレスは論理ブロックアドレスを含む。いくつかの実施形態においては、ターゲット論理アドレスを決定することは、論理ドライブの論理アドレス空間内における論理アドレスを、ＳＳＤおよびＨＤＤの一方の論理アドレス空間内における論理アドレスに変換することを含んでよい。
【００４７】
７３０においてプロセスは、ターゲット論理アドレスの論理ドライブにファイルを書き込み、ＳＳＤおよびＨＤＤの一方における格納を実行する。いくつかの場合、７３０においてファイルを書き込むことは、ＳＳＤからＨＤＤへ、またはＨＤＤからＳＳＤへファイルを移動することを含んでよい。いくつかの実施形態においては、ターゲット論理アドレスは、ＳＳＤおよびＨＤＤの一方の論理アドレス空間に基づいている。いくつかの実施形態においては、ターゲット論理アドレスは、仮想ドライブの論理アドレス空間に基づいている。
【００４８】
いくつかの実施形態においては、オペレーティングシステムのファイルシステムドライバは、ターゲット論理アドレスの外部選択を許可しない。そのような実施形態においてプロセスは、オペレーティングシステムが選択したターゲット論理アドレスにオペレーティングシステムが書き込むことを許可できる。オペレーティングシステムによる初期書き込みの後、７２０においてプロセスは、ファイルの特性に基づいて異なるターゲット論理アドレスを選択することができる。例えば、初期のターゲット論理アドレスがＨＤＤに対応する場合、プロセスは、ＳＳＤに対応するターゲット論理アドレスを選択することができる。７３０においてプロセスは、ファイルを論理ドライブに書き込み、新たなターゲット論理アドレスにファイルを移動する。オペレーティングシステムは、低いアドレス値から高いアドレス値へと論理アドレス、例えば論理ブロックアドレスを指定してよい。従って、空間が許す範囲においてファイルの初期位置がＳＳＤ上にあるように、仮想ドライブのＳＳＤを、仮想ドライブのＨＤＤよりも低いアドレス領域にマップすることが有利である。ＳＳＤ上の空間を管理するために、プロセスは、使用頻度の低いファイルをＳＳＤからＨＤＤへ移動させることができる。
【００４９】
いくつかの実施形態においては、オペレーティングシステムが、既にドライブに書き込まれているファイルを移動するためのアプリケーションプログラミングインターフェイス（ＡＰＩ）を提供する。例えば、格納プロセスは、ドライブへの初期書き込み後に、そのようなＡＰＩを使用してファイルを移動することができる。いくつかの実施形態においてオペレーションシステムは、ドライブへのファイルの初期書き込み用ターゲット論理アドレスの選択を制御するためのＡＰＩを提供することができる。
【００５０】
図８は、仮想ドライブ格納プロセスの別の例を示す。８０５において仮想ドライブ格納プロセスは、２つ以上の物理ドライブを仮想化して、０からＬまでの論理アドレス空間を有する単一の論理ドライブとする。８１０においてプロセスは、０からＫまでの第１アドレス領域の論理ブロックアドレスを第１物理ドライブにマップする。８１５においてプロセスは、Ｋ＋１からＬまでの第２アドレス領域の論理ブロックアドレスを第２物理ドライブにマップする。ここでＬはＫよりも大きく、Ｋは０よりも大きい。
【００５１】
８２０においてプロセスは、複数の物理ドライブの１つに対応するターゲット論理アドレスを選択する。プロセスは、論理ドライブに書き込まれるべきファイルの特性に基づいてターゲット論理アドレスを選択する。いくつかの実施形態においては、ターゲット論理アドレスを選択することは、物理ドライブの１つから他の物理ドライブへファイルを移動するためのターゲット論理アドレスを選択することを含む。
【００５２】
８２５においてプロセスは、ターゲット論理アドレスに基づいて、物理ドライブの１つをコントローラに選択させる。コントローラに選択させることは、ターゲット論理アドレスを含む書き込みコマンドをコントローラに送ることを含んでよい。いくつかの実施形態においてプロセスは、書き込みコマンド中にドライブ識別子を含む。例えば、コントローラは、書き込みコマンド中のドライブ識別子に基づいてドライブを選択することができる。いくつかの実施形態においては、ターゲット論理アドレスの一部分、例えばターゲット論理アドレスの最も重要なビットが、ドライブ識別子として動作する。いくつかの実施形態においてプロセスは、ターゲット論理アドレスを、ドライブに関連付けられたアドレス領域と互換性のあるアドレスに変換する。８３０においてプロセスは、コントローラに、選択された物理ドライブへファイルを書き込ませる。いくつかの実施形態においては、コントローラに書き込みコマンドを送ることによって、コントローラに物理ドライブの１つを選択させ、選択された物理ドライブにファイルを書き込ませる。
【００５３】
図９は、ファイル使用量情報を監視することを含んだ仮想ドライブ格納プロセスの例を示す。９０５において仮想ドライブ格納プロセスは、ＳＳＤおよびＨＤＤに関連付けられた論理ドライブ上のファイルの使用量情報を監視する。９１０においてプロセスは、使用頻度等の使用量情報に基づいて、ＨＤＤからＳＳＤへ移動するファイルを選択する。使用量情報に基づいてファイルを選択することは、ファイルの相対的な使用頻度を用いることを含んでよい。プロセスは、ファイル使用ログあるいはテーブル等のデータ構造に基づいて、論理ドライブに格納されたファイルの相対的な使用頻度を決定することができる。例えばプロセスは、他のファイルよりも使用されることの多い１つ以上のファイルを選択してＳＳＤに移動することができる。９１５においてプロセスは、ＳＳＤに対応するターゲット論理アドレスを選択する。９２０においてプロセスは、選択されたターゲット論理アドレスに基づいて、ファイルをＨＤＤからＳＳＤへ移動して、ファイルの読み出しアクセスレイテンシを下げる。
【００５４】
図１０は、ファイル使用量情報を監視することを含んだ仮想ドライブ格納プロセスの別の例を示す。１０１０において格納プロセスは、ＳＳＤおよびＨＤＤに関連付けられた論理ドライブ上のファイルの使用量情報を監視する。使用量情報を監視することは、最終アクセス時刻、あるいはアクセス回数等のファイルアクセス情報を追跡するオペレーションシステムファイルにアクセスすることを含む。１０１５においてプロセスは、使用量情報に基づいて、ＳＳＤからＨＤＤへ転送するファイルを選択する。ファイルを選択することは、２つ以上のファイルの使用量情報に基づいて相対的な使用頻度を決定することを含んでよい。いくつかの実施形態においてプロセスは、最終アクセス日時を閾値として使用し、まれにしか使用されないファイルを検索する。本例においては、ＳＳＤに対応するアドレス領域内のアドレスに検索が限定されてよい。
【００５５】
１０２０においてプロセスは、ＨＤＤに対応するターゲット論理アドレスを選択する。そのようなターゲット論理アドレスを選択することは、１つ以上のアドレス領域および１つ以上の物理アドレスをそれぞれ識別するマッピングテーブルの使用を含んでよい。１０２５においてプロセスは、選択されたターゲット論理アドレスに基づいて、ＳＳＤからＨＤＤへとファイルを移動し、ＳＳＤ上の利用可能な空間を増大させる。ファイルを移動することは、ＳＳＤからファイルを読み出し、ＨＤＤにファイルを書き込み、ＳＳＤからファイルを削除することを含んでよい。ファイルを削除することは、ファイルの消去を必要とせずに、削除されたものとしてファイルをマークすることを含んでよい。
【００５６】
図１１は、ファイルタイブの識別を含む仮想ドライブ格納プロセスの別の例を示す。１１１０において格納プロセスは、ＳＳＤおよびＨＤＤに関連付けられた論理ドライブに書き込まれるべきファイルのタイプを識別する。ファイルのタイプを識別することは、移動によって論理ドライブに書き込まれるべきファイルを識別することを含んでよい。ファイルタイプを識別することは、ファイル拡張子列といった、ファイル名の一部分にアクセスすることを含んでよい。いくつかの実施形態においてファイルタイブを識別することは、ファイルの一部分にアクセスしてファイルタイプを決定することを含んでよい。いくつかの実施形態においてファイルタイプを識別することは、ファイルのソース、例えば、書き込まれるべきファイルを提供するプロセスの所有者を決定することを含んでよい。いくつかの実施形態においては、"管理者"または"ルート"といった所有者に関連付けられたファイルがＳＳＤに割り当てられてよい。
【００５７】
１１１５においてプロセスは、論理ドライブに書き込まれるべきファイルのタイプに基づいて、ＳＳＤおよびＨＤＤの一方に対応するターゲット論理アドレスを選択する。１１２０においてプロセスは、ターゲット論理アドレスの論理ドライブにファイルを書き込み、ＳＳＤおよびＨＤＤの一方における格納を実行する。いくつかの実施形態においてプロセスは、ＳＳＤからＨＤＤへの、または、ＨＤＤからＳＳＤへのファイルの移動を含む。ファイルを移動することは、１１１５における選択、および１１２０における書き込みを含んでよい。
【００５８】
ホストシステムは、ハイパードライブユーティリティを実行して、１つ以上の仮想ドライブ、例えばハイパードライブと相互作用することができる。いくつかの実施形態においては、ハイパードライブユーティリティが不揮発性メモリを１つ以上のエクステントに分割できる。ハイパードライブユーティリティは、不揮発性メモリエクステントおよびＨＤＤを、単一のディスクとして仮想化することができる。ハイパードライブユーティリティは、バックグラウンドのプロセスとして実行することができる。いくつかの実施形態においては、そのようなユーティリティがファイルシステムドライバの一部として含まれる。
【００５９】
ハイパードライブユーティリティは、ハイパードライブ上のファイルの格納を最適化することができる。ハイパードライブユーティリティは、ホットな（例えば頻繁に使用される）アプリケーションを、不揮発性メモリを含むＳＳＤに存在するハイパーエクステントに配置することができる。例えば、ユーティリティは、実行可能なアプリケーションファイルをハイパーエクステントに移動することができる。ユーティリティは、コールドな（例えば滅多に使用されない）アプリケーションを、ハイパーエクステントからＨＤＤエクステントへ移動することができる。例えば、ある期間アプリケーションが使用されていない場合、ユーティリティは、そのアプリケーションに関連付けられたファイルを、ハイパーエクステントからＨＤＤエクステントに移動することができる。
【００６０】
いくつかの実施形態においてハイパードライブユーティリティは、ファイルタイプ、ファイル使用量、またはその両者等、１つ以上の特性に基づいて、ファイルを識別してハイパーエクステントに割り当てる。ユーティリティは、ページファイルあるいはスワップファイル等のオペレーティングシステムファイルをハイパーエクステントに格納させることができる。ユーティリティは、スタートアップアプリケーションファイルをハイパーエクステントに格納させることができる。ユーティリティは、頻繁に使用されるアプリケーションに関連付けられたファイルをハイパーエクステントに格納させることができる。ホットなアプリケーションの最新版がある場合、ユーティリティは、最新版をハイパーエクステントへ移動することができる。いくつかの実施形態においてユーティリティは、予め定義されたファイルタイプのリストにアクセスし、ファイルをハイパーエクステントに格納するかどうかを決定する。
【００６１】
ハイパードライブアドレス空間等の仮想ドライブアドレス空間は、ＳＳＤに割り当てられた領域［ＬＢＡ  ０，ＬＢＡ  Ｎ］、およびＨＤＤに割り当てられた領域［ＬＢＡ  Ｎ＋１，ＭＡＸ＿ＬＢＡ］を含むことができる。ＭＡＸ＿ＬＢＡは、ハイパードライブアドレス空間に関連付けられた最大ＬＢＡ値を表す。いくつかの実施形態においてオペレーティングシステムは、ファイルがアドレス空間の最初から始まるように書き込むことができる。もしもオペレーティングシステムがハイパードライブの物理ドライブレイアウトに不可知である場合、ハイパードライブユーティリティは、物理ドライブ間でファイルを移動してハイパードライブ性能を最適化することができる。ドライブ間でファイルを移動することは、ファイルのデータを読み出すこと、ファイルに関連付けられるべき新たなＬＢＡを使用すること、および、新たなＬＢＡにファイルデータを書き込むことを含んでよい。いくつかの実施形態においてユーティリティは、１つ以上のファイルタイプに対して予め定義されたＬＢＡ領域を、オペレーティングシステムに備えさせることができる。そのように予め定義された領域は、ハイパードライブのＳＳＤに対応することができる。いくつかの実施形態においてハイパードライブアドレス空間は、ＨＤＤに割り当てられた領域［ＬＢＡ  ０，ＬＢＡ  Ｎ］、およびＳＳＤに割り当てられた領域［ＬＢＡ  Ｎ＋１，ＭＡＸ＿ＬＢＡ］を含むことができる。
【００６２】
いくつかの実施例を上記のように詳細に記載したが、様々な変更が可能である。本明細書に記載される機能的なオペレーションを含め、開示される主題は、電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、又はそれらの組み合わせ等、本明細書に開示される構造的な手段、及び構造的なその等価物として実施することができる。これは、記載されるオペレーションを１つ以上のデータ処理装置に実行させるべく動作可能なプログラム（メモリデバイス、格納デバイス、機械読み取り可能な格納基板、あるいは、その他の物理的機械読み取り可能な媒体、又はそれらの１つ以上の組み合わせであり、コンピュータ読み取り可能な媒体中の符号化されたプログラム等）を含む。
【００６３】
"データ処理装置"という用語は、例としてプログラム可能なプロセッサ、コンピュータ、あるいは複数のプロセッサまたはコンピュータを含め、データ処理のためのすべての装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、当該コンピュータプログラムに対する実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいは、それらの１つ以上の組み合わせを構成するコードを含むことができる。
【００６４】
（コンピュータプログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている）プログラムは、コンパイラ型またはインタープリタ型言語、あるいは宣言型またはプロシージャ型言語を含む任意のプログラム言語で書かれてよい。プログラムは、スタンドアロンプログラムまたはモジュール、コンポーネント、サブルーチン、あるいは、コンピュータ環境における使用に適したその他のユニットを含む、任意の形式で展開されてよい。プログラムは、ファイルシステム中のファイルに必ずしも対応しなくてもよい。プログラムは、他のプログラムまたはデータ（例えば、マークアップ言語ドキュメントに格納される１つ以上のスクリプト）を保持するファイルの一部分に、または当該プログラム専用の単一のファイルに、あるいは、複数の協調されたファイル（例えば、１つ以上のモジュール、サブプログラム、あるいはコードの一部分を格納するファイル）に格納されてよい。プログラムは、１つのコンピュータ上で実行されるべく展開されてよい。あるいは、１つのサイトに位置するか、または、複数のサイトに渡って分配され、通信ネットワークによって相互に接続された複数のコンピュータ上で実行されるべく展開されてよい。
【００６５】
本明細書には多くの詳細な点が含まれているが、これらは、特許請求の範囲に対する限定とみなされるべきではなく、むしろ、特定の実施例に対して具体的な特徴を記載するものとみなされるべきである。個々の実施例の関係において本明細書に記載されるいくつかの特徴は、１つの実施例において組み合わせて実行されてもよい。反対に、１つの実施例に関連して記載される様々な特徴が、複数の実施例において別々に実行されてよく、あるいは、任意の適切なサブコンビネーションにおいて実行されてもよい。さらに、上記の特徴は、特定の組み合わせにおいて作用するように記載され、元々そのように請求されてもいるかもしれないが、いくつかの場合においては、請求される組み合わせから１つ以上の特徴が削除されてよく、また、請求される組み合わせが、サブコンビネーション又はサブコンビネーションの変形に向けられたものでもよい。
【００６６】
同様に、オペレーションは特定の順序で図面に記述されているが、これは、示されている特定の順序で、又は連続した順序でそのようなオペレーションが実行される必要があると理解されるべきではない。あるいは、望ましい結果を達成するために、示される全てのオペレーションが実行される必要があると理解されるべきではない。特定の環境においては、多重タスク処理および並行処理が有利なこともある。さらに、上述の実施例における様々なシステム構成要件を分離することは、全ての実施例においてそのような分離が必要であると理解されるべきではない。
【００６７】
その他の実施例は、以下の特許請求の範囲の範囲内に入るものである。
【図１】
0005984118.tif 000002
【図２】
0005984118.tif 000003
【図３】
0005984118.tif 000004
【図４】
0005984118.tif 000005
【図５】
0005984118.tif 000006
【図６】
0005984118.tif 000007
【図７】
0005984118.tif 000008
【図８】
0005984118.tif 000009
【図９】
0005984118.tif 000010
【図１０】
0005984118.tif 000011
【図１１】
0005984118.tif 000012