(57)【特許請求の範囲】
【請求項１】
取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、該バーチャルデバイスインタフェースは、
オペレーティングシステムのドライバスタック内のカーネル空間内をランするように構成されたカーネルコンポーネントであって、該カーネルコンポーネントは、ドライブインタフェースポートに第一のコマンドのセットをパスする一方で第二のコマンドのセットを分離して取り出す、カーネルコンポーネントと、
ユーザー空間内をランするように構成されたユーザーコンポーネントであって、該ユーザーコンポーネントは、
該カーネルコンポーネントから該第二のコマンドのセットを受信し、
該カーネルコンポーネントおよび該取り外し可能なハードドライブカートリッジのうちの一つもしくは両方を認証し、
該取り外し可能なハードドライブカートリッジの使用を許可する、
ユーザーコンポーネントと
を含む、バーチャルデバイスインタフェース。
【請求項２】
請求項１に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、
前記カーネルコンポーネントは、前記ユーザーコンポーネントからオフセットを受信し、
該オフセットは、前記オペレーティングシステムからアクセス可能なユーザーデータエリアを識別するために使用される、バーチャルデバイスインタフェース。
【請求項３】
前記ユーザーコンポーネントからカートリッジドックへとコマンドを伝達する制御インタフェースをさらに含む、請求項１に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェース。
【請求項４】
請求項１に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、前記カーネルコンポーネントは、前記オペレーティングシステムからの読み取りおよび書き込み要求を該取り外し可能なハードドライブカートリッジへとパスし、該読み取りおよび書き込み要求は前記ユーザーコンポーネントへとパスされない、バーチャルデバイスインタフェース。
【請求項５】
請求項１に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、前記カーネルコンポーネントは、
該取り外し可能なハードドライブカートリッジを移動させるためのイジェクトメカニズム、
該取り外し可能なハードドライブカートリッジ上の書き込み保護スイッチ、
ステータスインタフェース、
ボタン、
のうちの二つ以上と相互作用するためにカートリッジドックへとコマンドを伝達する、バーチャルデバイスインタフェース。
【請求項６】
請求項１に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、該取り外し可能なハードドライブカートリッジは、ソリッドステートドライブを含む、バーチャルデバイスインタフェース。
【請求項７】
請求項１に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、該取り外し可能なハードドライブカートリッジの使用を許可することは、該ハードドライブカートリッジのハードドライブをアンロックする該取り外し可能なハードドライブカートリッジに固有なパスワードを提供することを含む、バーチャルデバイスインタフェース。
【請求項８】
取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、該バーチャルデバイスインタフェースは、
第一のコンポーネントであって、該第一のコンポーネントは、第一のコマンドのセットをドライブインタフェースポートにパスする一方で第二のコマンドのセットを分離して取り出し、該第一のコンポーネントは、オペレーティングシステムのドライバスタック内のカーネル空間内もしくはユーザー空間内のいずれかをランする、第一のコンポーネントと、
第二のコンポーネントであって、該第二のコンポーネントは、
該第一のコンポーネントから該第二のコマンドのセットを受信し、
該第一のコンポーネントおよび該取り外し可能なハードドライブカートリッジのうちの一つもしくは両方を認証し、
該取り外し可能なハードドライブカートリッジの使用を許可し、
該オペレーティングシステムの該ドライバスタック内のカーネル空間内もしくはユーザー空間内のいずれかをランする、第二のコンポーネントと
を含む、バーチャルデバイスインタフェース。
【請求項９】
請求項８に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、
前記第一のコンポーネントは、前記第二のコンポーネントからオフセットを受信し、
該オフセットは、前記オペレーティングシステムからアクセス可能な該取り外し可能なハードドライブカートリッジのユーザーデータエリアを識別するために使用される、バーチャルデバイスインタフェース。
【請求項１０】
前記第二のコンポーネントからカートリッジドックへとコマンドを伝達する制御インタフェースをさらに含む、請求項８に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェース。
【請求項１１】
請求項８に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、前記第一のコンポーネントは、
該取り外し可能なハードドライブカートリッジを移動させるためのイジェクトメカニズム、
該取り外し可能なハードドライブカートリッジ上の書き込み保護スイッチ、
ステータスインタフェース、
ボタン、
のうちの二つ以上と相互作用するためにカートリッジドックへとコマンドを伝達する、バーチャルデバイスインタフェース。
【請求項１２】
請求項８に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、該取り外し可能なハードドライブカートリッジは、ソリッドステートドライブを含む、バーチャルデバイスインタフェース。
【請求項１３】
請求項８に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、該取り外し可能なハードドライブカートリッジの使用を許可することは、該ハードドライブカートリッジのハードドライブをアンロックする該取り外し可能なハードドライブカートリッジに固有なパスワードを提供することを含む、バーチャルデバイスインタフェース。
【請求項１４】
請求項８に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、前記第一のコンポーネントは、カーネル空間内をランする、バーチャルデバイスインタフェース。
【請求項１５】
請求項８に記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、前記第二のコンポーネントは、ユーザー空間内をランする、バーチャルデバイスインタフェース。
【請求項１６】
取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体であって、該バーチャルデバイスインタフェースコードは、
第一のコンポーネントであって、該第一のコンポーネントは、第一のコマンドのセットをドライブインタフェースポートにパスする一方で第二のコマンドのセットを分離して取り出し、該第一のコンポーネントは、オペレーティングシステムのドライバスタック内のカーネル空間内もしくはユーザー空間内のいずれかをランする、第一のコンポーネントと、
第二のコンポーネントであって、該第二のコンポーネントは、
該第一のコンポーネントから該第二のコマンドのセットを受信し、
該第一のコンポーネントおよび該取り外し可能なハードドライブカートリッジのうちの一つもしくは両方を認証し、
該取り外し可能なハードドライブカートリッジの使用を許可し、
該オペレーティングシステムの該ドライバスタック内のカーネル空間内もしくはユーザー空間内のいずれかをランする、第二のコンポーネントと
のためのコードを含む、記憶媒体。
【請求項１７】
前記第一のコンポーネントが前記第二のコンポーネントからオフセットを受信するためのコードをさらに含み、該オフセットは、前記オペレーティングシステムからアクセス可能な前記取り外し可能なハードドライブカートリッジのユーザーデータエリアを識別するために使用される、請求項１６に記載の取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体。
【請求項１８】
前記取り外し可能なハードドライブカートリッジを移動させるためのイジェクトメカニズム、
前記取り外し可能なハードドライブカートリッジ上の書き込み保護スイッチ、
ステータスインタフェース、
ボタン、
のうちの二つ以上と相互作用するために前記第一のコンポーネントがカートリッジドックへとコマンドを伝達するためのコードをさらに含む、請求項１６に記載の取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体。
【請求項１９】
請求項１６に記載の取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体であって、該取り外し可能なハードドライブカートリッジの使用を許可することは、該ハードドライブカートリッジのハードドライブをアンロックする該取り外し可能なハードドライブカートリッジに固有なパスワードを提供することを含む、記憶媒体。
【請求項２０】
請求項１６に記載の取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体であって、前記第一のコンポーネントは、カーネル空間内をランする、記憶媒体。
【請求項２１】
請求項１６に記載の取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体であって、前記第二のコンポーネントは、ユーザー空間内をランする、記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許協力条約出願は、２０１０年１０月８日に出願された「Ｖｉｒｔｕａｌ  Ｒｅｍｏｖａｂｌｅ  Ｄｉｓｋ  Ｄｅｖｉｃｅ」と題された米国本出願第１２／９０１，３９４号の利益を主張する。その出願の開示は、その全体がここで参照により援用される。
【０００２】
（背景）
本開示は一般的に、取り外し可能なディスクプロダクトおよび、限定することはないが、永続装置予約に関する。
【背景技術】
【０００３】
コンピュータの種々の接続（例えば、ＳＡＴＡ、ｅＳＡＴＡ、ＵＳＢ、ＰＡＴＡ、ＳＣＳＩ、ＦｉｒｅＷｉｒｅなど）に取り付けられ得る取り外し可能なハードドライブがある。取り外し可能なハードドライブはコンピュータに取り付けられ、そしてオペレーティングシステム（ＯＳ）により割り当てられるドライブレターを有するようにマウントされる。ある種のその他の媒体は、フロッピー（登録商標）ディスクおよびコンパクトディスクのような媒体挿入を待機してドライブレターを予約する。ハードドライブは、マウントされるまでドライブレターを予約しない。
【０００４】
テープカートリッジは典型的に、テープ媒体をスプールおよび再生する特殊なテープドライブを要求する。これらのテープドライブはＳＣＳＩコマンドおよびＳＣＳＩインタフェースを使用し、そして特定のテープのためにカスタマイズされる。時々大容量のテープが開発されるが、古いテープドライブは新しいテープを読み取ることができない。ユーザーは新しいテープを使用するために自身のドライブをアップグレードするが、アップグレードされたドライブはしばしば古いタイプのフォーマットを読み取らない。
【０００５】
カスタムドライバはテープもしくはその他のドライバとインタフェースすることで公知である。これらのドライバがオープンソースライセンスを受ける場合、これらは分析が容易でありおよびことによるとセキュリティメジャーを妨げる。カートリッジを認証および許可することは正当であるが、セキュリティメジャーが十分に公知であれば、セキュリティメジャーは不法侵入される可能性がある。しばしばテープドライブの価格は、テープカートリッジからの収入を回復するための計画で、援助される。
【発明の概要】
【課題を解決するための手段】
【０００６】
（概要）
一実施形態において、本開示はホストコンピュータをハードドライブカートリッジとインタフェースするための方法および装置を提供する。バーチャルデバイスインタフェースは、カーネル空間のドライバスタック内のカーネルコンポーネント、およびユーザー空間内をランするように構成されたユーザーコンポーネントの間で分けられる。カーネルコンポーネントはデータコマンドをオペレーティングシステムからカートリッジドックへとパスし、一方でユーザーコンポーネントへとパスされたその他のコマンドを分離する。ユーザーコンポーネントは、カーネルコンポーネントおよび／もしくはハードドライブカートリッジを認証する。取り外し可能なハードドライブカートリッジの使用もまた、ユーザーコンポーネントにより認証される。
【０００７】
もう一つの実施形態において、取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースが開示される。バーチャルデバイスインタフェースは、カーネルコンポーネントおよびユーザーコンポーネントを含む。カーネルコンポーネントは、オペレーティングシステムのドライバスタック内のカーネル空間内をランするように構成される。カーネルコンポーネントは、第一のコマンドのセットをドライブインタフェースポートへとパスし、一方で第二のコマンドのセットを分離して取り出す。ユーザーコンポーネントは、ユーザー空間内をランするように構成される。ユーザーコンポーネントは、カーネルコンポーネントから第二のコマンドのセットを受信し、カーネルコンポーネントおよび取り外し可能なハードドライブカートリッジのうちの一つもしくは両方を認証し、取り外し可能なハードドライブカートリッジの使用を許可する。
【０００８】
その上もう一つの実施形態において、取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースが開示される。バーチャルデバイスインタフェースは、第一のコンポーネントおよび第二のコンポーネントを含む。第一のコンポーネントは、第一のコマンドのセットをドライブインタフェースポートへとパスし、一方で第二のコマンドのセットを分離して取り出す。第二のコンポーネントは、第一のコンポーネントから第二のコマンドのセットを受信し、第一のコンポーネントおよび取り外し可能なハードドライブカートリッジのうちの一つもしくは両方を認証し、そして取り外し可能なハードドライブカートリッジの使用を許可する。第一のコンポーネントはオペレーティングシステムのドライバスタック内のカーネル空間内もしくはユーザー空間内のいずれかをランする。第一のコンポーネントはオペレーティングシステムのドライバスタック内のカーネル空間内もしくはユーザー空間内のいずれかをランする。
【０００９】
なおもう一つの実施形態において、取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体が開示される。バーチャルデバイスインタフェースコードは、第一のコンポーネントおよび第二のコンポーネントのためのコードを含む。第一のコンポーネントは第一のコマンドのセットをドライブインタフェースポートへとパスし、一方で第二のコマンドのセットを分離して取り出す。第二のコンポーネントは、第一のコンポーネントから第二のコマンドのセットを受信し、第一のコンポーネントおよび取り外し可能なハードドライブカートリッジのうちの一つもしくは両方を認証し、そして取り外し可能なハードドライブカートリッジの使用を許可する。第一のコンポーネントはオペレーティングシステムのドライバスタック内のカーネル空間内もしくはユーザー空間内のいずれかをランする。第一のコンポーネントはオペレーティングシステムのドライバスタック内のカーネル空間内もしくはユーザー空間内のいずれかをランする。
【００１０】
本開示の適用可能なのさらなる領域が、以下に提供される詳細な記述から明瞭となる。詳細な記述および具体的な例は、種々の実施形態を示すが、単に説明の目的が意図されているのであり、必ずしも本開示の範囲を限定するよう意図されていないことが理解されなければならない。
例えば、本願発明は以下の項目を提供する。
（項目１）
取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、該バーチャルデバイスインタフェースは、
オペレーティングシステムのドライバスタック内のカーネル空間内をランするように構成されたカーネルコンポーネントであって、該カーネルコンポーネントはドライブインタフェースポートに第一のコマンドのセットをパスし一方で第二のコマンドのセットを分離して取り出すカーネルコンポーネントと、
ユーザー空間内をランするように構成されたユーザーコンポーネントであって、該ユーザーコンポーネントは、
該カーネルコンポーネントから該第二のコマンドのセットを受信し、
該カーネルコンポーネントおよび該取り外し可能なハードドライブカートリッジのうちの一つもしくは両方を認証し、
該取り外し可能なハードドライブカートリッジの使用を許可するユーザーコンポーネントと、
を含む、バーチャルデバイスインタフェース。
（項目２）
項目１記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、
前記カーネルコンポーネントは前記ユーザーコンポーネントからオフセットを受信し、
該オフセットは前記オペレーティングシステムからアクセス可能なユーザーデータエリアを識別するために使用される、
バーチャルデバイスインタフェース。
（項目３）
前記ユーザーコンポーネントからカートリッジドックへとコマンドを伝達する制御インタフェースをさらに含む、項目１記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェース。
（項目４）
項目１記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、前記カーネルコンポーネントは前記オペレーティングシステムからの読み取りおよび書き込み要求を該取り外し可能なハードドライブカートリッジへとパスし、該読み取りおよび書き込み要求は前記ユーザーコンポーネントへとパスされない、
バーチャルデバイスインタフェース。
（項目５）
項目１記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、前記カーネルコンポーネントは、
該取り外し可能なハードドライブカートリッジを移動させるためのイジェクトメカニズム、
該取り外し可能なハードドライブカートリッジ上の書き込み保護スイッチ、
ステータスインタフェース、
ボタン、
のうちの二つ以上と相互作用するためにカートリッジドックへとコマンドを伝達する、
バーチャルデバイスインタフェース。
（項目６）
項目１記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、該取り外し可能なハードドライブカートリッジはソリッドステートドライブを含む、バーチャルデバイスインタフェース。
（項目７）
項目１記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、該取り外し可能なハードドライブカートリッジの使用を許可することは該ハードドライブカートリッジのハードドライブをアンロックする該取り外し可能なハードドライブカートリッジに固有なパスワードを提供することを含む、バーチャルデバイスインタフェース。
（項目８）
取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、該バーチャルデバイスインタフェースは、
第一のコンポーネントであって、該第一のコンポーネントは第一のコマンドのセットをドライブインタフェースポートへとパスし一方で第二のコマンドのセットを分離して取り出す第一のコンポーネントと、
第二のコンポーネントであって、該第二のコンポーネントは、
該第一のコンポーネントから該第二のコマンドのセットを受信し、
該第一のコンポーネントおよび該取り外し可能なハードドライブカートリッジのうちの一つもしくは両方を認証し、
該取り外し可能なハードドライブカートリッジの使用を許可し、
該第一のコンポーネントはオペレーティングシステムのドライバスタック内のカーネル空間内もしくはユーザー空間内のいずれかをランし、
該第一のコンポーネントは該オペレーティングシステムの該ドライバスタック内のカーネル空間内もしくはユーザー空間内のいずれかをランする、第二のコンポーネントと、
を含む、バーチャルデバイスインタフェース。
（項目９）
項目８記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、
前記第一のコンポーネントは前記第二のコンポーネントからオフセットを受信し、
該オフセットは前記オペレーティングシステムからアクセス可能な該取り外し可能なハードドライブカートリッジのユーザーデータエリアを識別するために使用される、
バーチャルデバイスインタフェース。
（項目１０）
前記第二のコンポーネントからカートリッジドックへとコマンドを伝達する制御インタフェースをさらに含む、項目８記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェース。
（項目１１）
項目８記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、前記第一のコンポーネントは、
該取り外し可能なハードドライブカートリッジを移動させるためのイジェクトメカニズム、
該取り外し可能なハードドライブカートリッジ上の書き込み保護スイッチ、
ステータスインタフェース、
ボタン、
のうちの二つ以上と相互作用するためにカートリッジドックへとコマンドを伝達する、
バーチャルデバイスインタフェース。
（項目１２）
項目８記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、該取り外し可能なハードドライブカートリッジはソリッドステートドライブを含む、バーチャルデバイスインタフェース。
（項目１３）
項目１記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、該取り外し可能なハードドライブカートリッジの使用を許可することは該ハードドライブカートリッジのハードドライブをアンロックする該取り外し可能なハードドライブカートリッジに固有なパスワードを提供することを含む、バーチャルデバイスインタフェース。
（項目１４）
項目８記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、前記第一のコンポーネントはカーネル空間をランする、バーチャルデバイスインタフェース。
（項目１５）
項目８記載の取り外し可能なハードドライブカートリッジのためのバーチャルデバイスインタフェースであって、前記第二のコンポーネントはユーザー空間をランする、バーチャルデバイスインタフェース。
（項目１６）
取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体であって、該バーチャルデバイスインタフェースコードは、
第一のコンポーネントであって、該第一のコンポーネントは第一のコマンドのセットをドライブインタフェースポートへとパスし一方で第二のコマンドのセットを分離して取り出す第一のコンポーネントと、
第二のコンポーネントであって、該第二のコンポーネントは、
該第一のコンポーネントから該第二のコマンドのセットを受信し、
該第一のコンポーネントおよび該取り外し可能なハードドライブカートリッジのうちの一つもしくは両方を認証し、
該取り外し可能なハードドライブカートリッジの使用を許可し、
該第一のコンポーネントはオペレーティングシステムのドライバスタック内のカーネル空間内もしくはユーザー空間内のいずれかをランし、
該第一のコンポーネントは該オペレーティングシステムの該ドライバスタック内のカーネル空間内もしくはユーザー空間内のいずれかをランする、第二のコンポーネントと、
のためのコードを含む、記憶媒体。
（項目１７）
前記第一のコンポーネントが前記第二のコンポーネントからオフセットを受信するためのコードをさらに含み、該オフセットは前記オペレーティングシステムからアクセス可能な前記取り外し可能なハードドライブカートリッジのユーザーデータエリアを識別するために使用される、
項目１６記載の取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体。
（項目１８）
前記取り外し可能なハードドライブカートリッジを移動させるためのイジェクトメカニズム、
前記取り外し可能なハードドライブカートリッジ上の書き込み保護スイッチ、
ステータスインタフェース、
ボタン、
のうちの二つ以上と相互作用するために前記第一のコンポーネントがカートリッジドックへとコマンドを伝達するためのコードをさらに含む、項目１６記載の取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体。
（項目１９）
項目１６記載の取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体であって、該取り外し可能なハードドライブカートリッジの使用を許可することは該ハードドライブカートリッジのハードドライブをアンロックする該取り外し可能なハードドライブカートリッジに固有なパスワードを提供することを含む、記憶媒体。
（項目２０）
項目１６記載の取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体であって、前記第一のコンポーネントはカーネル空間をランする、記憶媒体。
（項目２１）
項目１６記載の取り外し可能なハードドライブカートリッジを作動させるためのプロセッサ上での実行のためのバーチャルデバイスインタフェースコードを有する記憶媒体であって、前記第二のコンポーネントはユーザー空間をランする、記憶媒体。
【図面の簡単な説明】
【００１１】
（図面の簡単な説明）
本開示は、添付された図と関連して記述される。
【図１Ａ】図１Ａは、取り外し可能なハードドライブシステムの実施形態のブロック図を描写する。
【図１Ｂ】図１Ｂは、取り外し可能なハードドライブシステムの実施形態のブロック図を描写する。
【図２】図２は、データカートリッジの実施形態の図を描写する。
【図３Ａ】図３Ａは、ソフトウェアアーキテクチャの実施形態のブロック図を描写する。
【図３Ｂ】図３Ｂは、ソフトウェアアーキテクチャの実施形態のブロック図を描写する。
【図４】図４は、ハードドライブのためのデータ構造の実施形態のブロック図を描写する。
【図５Ａ】図５Ａは、バーチャルデバイスカーネルコンポーネント（ＶＤＫＣ）およびバーチャルデバイスユーザーコンポーネント（ＶＤＵＣ）の実施形態の詳細なブロック図を描写する。
【図５Ｂ】図５Ｂは、バーチャルデバイスカーネルコンポーネント（ＶＤＫＣ）およびバーチャルデバイスユーザーコンポーネント（ＶＤＵＣ）の実施形態の詳細なブロック図を描写する。
【図６】図６は、データカートリッジとインタフェースするプロセスの実施形態のフローチャートを示す。
【図７】図７は、コンピュータシステムの実施形態のブロック図を描写する。
【図８】図８は、専用コンピュータシステムの実施形態のブロック図を描写する。
【発明を実施するための形態】
【００１２】
添付された図において、類似のコンポーネントおよび／もしくは特徴は同一の参照ラベルを有し得る。さらに、同一のタイプの種々のコンポーネントは、参照ラベルにダッシュおよび類似のコンポーネント間を区別する第二のラベルを続けることで、区別され得る。第一のラベルが明細書中で使用されている場合に限り記述は、第二の参照ラベルを考慮することなく同一の第一の参照ラベルを有する類似のコンポーネントのいずれにも適用可能である。
【００１３】
（詳細な記述）
次の記述は、最適で例示的な実施形態のみを提供し、本開示の範囲、適用可能性もしくは解釈を限定するよう意図されていない。むしろ、最適で例示的な実施形態の次の記述は、当業者が最適で例示的な実施形態をインプリメントすることを可能にする記述を提供する。添付された特許請求の範囲に示されているように、真意および範囲から逸れることなく、構成要素の機能および配置に種々の変化が行われ得ることが理解される。
【００１４】
初めに図１Ａを参照すると、取り外し可能なハードドライブシステム１００−１の実施形態が示されている。ホストコンピュータ８００は、一つもしくは複数のインタフェースにより取り外し可能なカートリッジドック１０８に結合されている。取り外し可能なカートリッジドック１０８は、ハードドライブデータカートリッジ１１２を取り外し可能に受け入れる。データカートリッジ１１２は、取り外し可能なカートリッジドック１０８の開口を通して受けとられる。開口上にキーを付けることはデータカートリッジ１１２が誤って挿入されることを防ぐ。示されていないが、その他の実施形態は、任意の数のカートリッジドック、ライブラリ、機械式挿入メカニズム、ロボットカートリッジトランスポートなど、をサポートするホストコンピュータを有し得る。
【００１５】
この実施形態は、直接、もしくはケーブルを使用して、もしくはワイヤレスで、合致する制御インタフェースポート１１６および周辺インタフェースポート１２４を有する。ホストコンピュータ８００上の周辺インタフェースポート１２４（例えば、ＳＡＴＡ、ＰＡＴＡ、ｅＳＡＴＡ、ＳＣＳＩ、ＦｉｒｅＷｉｒｅ、ＵＳＢ、ｗｉｒｅｌｅｓｓ  ＵＳＢ、ＵＷＢ、ＰＣＩ、ｍｉｎｉＰＣＩなど）は、データカートリッジ１１２の合致する周辺インタフェースポート１２４と接続する。この実施形態のデータカートリッジ１１２は、スピニングもしくはソリッドステートハードドライブ１１０を部分的に囲み、そのハードドライブ１１０上の周辺インタフェースポート１２４はカートリッジハウジングの外側に露出している。その他の実施形態は、ハードドライブ１１０が、周辺インタフェースポート１２４と結合されたコネクタと接続され得る。
【００１６】
カートリッジドック１０８は、ホストコンピュータ８００に結合されたとき、データカートリッジ１１２を適切な場所に機械的に保持する。カートリッジドック１０８は、ホストコンピュータ８００の内部、もしくは外部の筐体にあり得る。示されていないが、カートリッジドックは、ホストコンピュータ８００から伝達されたデータ／コマンドをデータカートリッジ１１２にパスする二つの周辺インタフェースポートを有する。その他の実施形態においては、データカートリッジ上の周辺インタフェースポート１２４は、直接もしくはケーブルを通り、ホストコンピュータの周辺インタフェースポート１２４と結合し得る。
【００１７】
ホストコンピュータ８００は、カートリッジドック１０８の機能性を管理するために、制御インタフェースポート１１６を通してカートリッジドック１０８との接続を使用する。制御インタフェースポート１１６は、ＩＰＭＩ（ｉｎｔｅｌｌｉｇｅｎｔ  ｐｌａｔｆｏｒｍ  ｍａｎａｇｅｍｅｎｔ  ｉｎｔｅｒｆａｃｅ）、Ｉ２Ｃ（ｉｎｔｅｒ−ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、ＳＰＩ（ｓｅｒｖｉｃｅ  ｐｒｏｖｉｄｅｒ  ｉｎｔｅｒｆａｃｅ）、ＵＳＢおよび／もしくはその他の種類のインタフェースを制御チャネルに使用し得る。制御チャネルは、ロードステータスへの変化がカートリッジドック１０８により検出されたとき、ソフトウェアもしくはボタン１４０の起動によるイジェクト、ステータスライト１３２もしくはその他の表示の変化、イジェクトメカニズム１３２の起動、データカートリッジ１１２上の書き込み防止スイッチの状態、および／もしくは、カートリッジドック１０８および／もしくはデータカートリッジ１１２のその他の機能性を、通信するために使用される。
【００１８】
カートリッジドック１０８は、この実施形態においては変化していないデータチャネルをパスするが、その他の実施形態においては、増幅、バッファリング、もしくは電気／プロトコル変換をし得る。制御チャネルは、制御インタフェースポート１１６で受けとられ、ドック制御装置１２０へとパスされる。ドック制御装置は、ボタン１４０、イジェクトメカニズム１３２、ステータスライト１３６、そしてその他の任意選択機能性を管理するために、プロセッサおよび／もしくは状態機械を含み得る。その他の実施形態においては、制御チャネルを通してアップデートされた、カートリッジドックでの表示を含み得る。一部の実施形態においては、温度、カートリッジバーコードもしくはシリアルナンバー、現在の消費量、電源供給健康状態などのような基準値が、ドック制御装置により集められ得る。
【００１９】
図１Ｂを参照すると、もう一つの実施形態の取り外し可能なハードドライブシステム１００−２が示されている。この実施形態は、制御情報をパスするために、ホストコンピュータ１０４とカートリッジドック１０８との間にサブチャネルを開く。ホストコンピュータは、共通の周辺インタフェースポート１２４を通り、データサブチャネルおよび制御サブチャネルを構成する。例えば、共通のインタフェース上のデータから制御を分離するために、２つのＳＡＴＡチャネルが構成される。カートリッジドック１０８の内部で、インタフェースデマルチプレクサ１２８が２つのサブチャネルを分ける。
【００２０】
制御情報はドック制御装置１２０と結合され、そしてデータ情報はデータカートリッジへとパスされる。例えば、インタフェースデマルチプレクサ１２８は、データカートリッジ１１２が１つのＳＡＴＡポート上にあり、そしてドック制御装置１２０がもう１つのＳＡＴＡポート上にあるように構成され得る。ドック制御装置１２０は、ＳＡＴＡプロトコルを使用して情報を伝達および受けとることができ得る。オフザシェルフポート乗算回路が、インタフェースデマルチプレクサに使用され得る。ドック制御装置１２０は、サブチャネルで制御情報の伝達をサポートするために、カスタムＡＳＩＣもしくはＦＰＧＡであり得る。あるいは、ドック制御装置１２０は、制御サブチャネル上でＳＡＴＡからＩ２Ｃへの変換を実行するために、一部のポート乗算回路に組み込まれているシステムメッセージバス（ＳＭＢ）機能性を行使し得る。Ｉ２Ｃポートは、ドック制御装置１２０ハードウェアもしくはインタフェースと、一実施形態においてはこの目的のために使用される、安価なマイクロ制御装置とを直接相互作用し得る。
【００２１】
次に図２を参照すると、データカートリッジ１１２の実施形態が示されている。この実施形態は、ハードディスクドライブもしくはソリッドステートドライブを囲むために、プラスチックシェル２００を設置している。ディスクドライブ上の周辺インタフェースポート１２４は、プラスチックシェルの開口２０４を通して露出される。書き込み防止スイッチ２０８は、カートリッジドック１０８がデータカートリッジ１１２への書き込みを許可されている場合を示す。カートリッジドック内のセンサーは、書き込み防止スイッチ２０８の状態を読み込む。キー付き特徴２１２が、データカートリッジ１１２の長さにわたり、カートリッジドック１０８の開口の傾斜した角は、データカートリッジ１１２の誤った挿入を防ぐ。
【００２２】
図３Ａを参照して、取り外し可能なカートリッジドック１０８とインタフェースするソフトウェアアーキテクチャ３００−１の実施形態が示される。ソフトウェアアーキテクチャ３００−１は一般的に、カーネル空間３０４およびユーザー空間３０６に分けられる。一般的に、カーネル空間３０４にソフトウェアコードを追加することは、ユーザー空間３０６にソフトウェアコードを追加することよりも難しい。さらに、一部のオペレーティングシステムにおいては、カーネル空間３０４には、ユーザー空間３０６よりも、厳しいオープンソースライセンス要求がある。バーチャルデバイスカーネルコンポーネント（ＶＤＫＣ）３２０およびバーチャルデバイスユーザーコンポーネント（ＶＤＵＣ）３０８は、この実施形態の取り外し可能なカートリッジドック１０８の機能性をサポートするために生成される。この実施形態においては、ＶＤＫＣ３２０はＧＰＬ  ｖｅｒｓｉｏｎ  ２でライセンスされているが、ＶＤＵＣ３０８はオープンソースではない。
【００２３】
カーネル空間３０４は、ＶＤＫＣ３２０とインタフェースするオペレーティングシステム（ＯＳ）３０４（例えば、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）など）を含む。ＶＤＫＣ３２０は、ＯＳの一部としてもしくは周辺インタフェースポート１２４のハードウェアメーカーにより、典型的に供給されるソフトウェアドライバであるインタフェースポートドライバ３１６と相互作用する。この実施形態においては、周辺インタフェースポート１２４は、ホストコンピュータ１０４の内部にあり得るＳＡＴＡポート、もしくは、外部で使用可能なｅＳＡＴＡポートである。
【００２４】
ユーザー空間３０６は、ＯＳ３２４でランするアプリケーションソフトウェアを含む。ＶＤＵＣ３０８は、カートリッジドック１０８を作動するためにＶＤＫＣ３２０とインタフェースする。制御インタフェースポート１１６は、カートリッジドック１０８と制御チャネルを確立するために、ＶＤＵＣ３０８からアクセスされる。その他の実施形態においては、カーネル空間３０４内にソフトウェアドライバがあり得るが、ＶＤＵＣ３０８のこの実施形態では制御インタフェースポート１１６と直接相互作用する。制御インタフェースポート１１６は、ホストコンピュータ１０４のマザーボードに作られ得るか、もしくはアドオンボードもしくはカードであり得る。
【００２５】
一部の実施形態においては、カーネルおよびユーザーコンポーネントは、潜在的に組み合わせられ得る。ライセンス限定のないオペレーティングシステム（例えば、Ｗｉｎｄｏｗｓ（登録商標））に関しては、ユーザー空間の機能性はカーネル空間に設置され得、もしくは逆もまた同様である。もう一つの実施形態においては、ＶＤＫＣおよびＶＤＵＣの機能性は、オペレーティングシステムの中にコンパイルされ得る。
【００２６】
次に図３Ｂを参照すると、もう一つの実施形態である、取り外し可能なカートリッジドック１０８とインタフェースするソフトウェアアーキテクチャ３００−２が示されている。この実施形態においては、ＶＤＵＣ３０８は、ＶＤＫＣ３２０を通して制御情報を通信する。制御サブチャネルは、データサブチャネルと共通の周辺インタフェースポート３１２を使用する。カートリッジドック１０８は、カートリッジドック１０８内で使用するために、その制御サブチャネルを取り除く。
【００２７】
図４を参照して、ハードドライブ１００のためのデータ構造４００の実施形態が示される。この実施形態におけるハードドライブ１１０は、ユーザーデータのためにアクセス可能エリア全体が通常は使用可能であるオフザシェルフ回転ハードドライブである。ＶＤＫＣ３２０、ＶＤＵＣ３０８および／もしくはカートリッジドック１０８は、図４で示されているデータ構造４００を認識する。ホストコンピュータ１０４で通常はアクセス可能でない、認証情報４０４およびメタデータ情報４１２がある。メタデータは、ハードドライブの健康状態情報、ユーザーデータエリア４０８のための読み取りおよび／もしくは書き込み防止情報、もしくは、その他、他ホストコンピュータソフトウェアでアクセス不可能な方法でデータカートリッジ１１２上で格納されるもののいずれかであり得る。
【００２８】
ＶＤＵＣ３０８は、いったん一定の条件が満たされると、ＶＤＫＣ３２０にオフセット情報を提供する。ユーザーデータエリア４０８は、ホストコンピュータソフトウェアにとって、データカートリッジ１１２上で使用可能に現れるものである。ハードドライブ１１０はパスワード保護され得、そしてデータはハードドライブ１１０に暗号保護されて格納される。その他の実施形態は、認証情報４０４およびメタデータエリア４１２が隣接しないように、もしくはデータ構造４００のどこかにいるように、認証情報４０４およびメタデータエリア４１２を分け得る。
【００２９】
次に図５Ａを参照すると、ＶＤＫＣ３２０およびＶＤＵＣ３０８の実施形態がより詳細に示されている。ＶＤＫＣ３２０は、ＳＣＳＩバーチャルドライバ５２４、コマンドディバイダ５２８、プロトコルトランスレータ５３２、データマッパー５３６、そしてＳＡＴＡドライバインタフェース５４０を含む。ＶＤＫＣ３２０はこの実施形態において、２つのデータ経路、すなわちＯＳインタフェースおよびカートリッジインタフェースを通りインタフェースする。ＶＤＵＣ３０８は、ＳＣＳＩコマンドハンドラ５０４、カートリッジメタデータＡＰＩ５０８、認証ＡＰＩ５１２、カートリッジトランスポート５１６およびＳＣＳＩトランスポート５２０を含む。
【００３０】
ＶＤＫＣ３２０はカーネル空間３０４のドライバスタック内にあり、そしてＶＤＫＣ３２０はＯＳ３２４にとって、ＳＣＳＩブロック型装置へのＳＣＳＩドライバとして現れる。さらに、ＶＤＫＣ３２０は、データカートリッジ１１２が実際に存在するかどうかとは関係なく、カートリッジドック１０８に割り当てられたドライブレターを保つために、永続装置予約を提供する。ＳＣＳＩバーチャルドライバ５２４は、ＯＳ３２４へのインタフェースである。データ、コマンドおよびステータスは、ＳＣＳＩブロック装置をインプリメントする実際のハードウェアおよびソフトウェアから抽出された、ＳＣＳＩバーチャルドライバ５２４を通して前後にパスされる。
【００３１】
ＶＤＫＣ３２０は、コマンドディバイダ５２８を使用し、ＯＳ３２４から読み取り／書き込みコマンドを取り除く。この実施形態においてＶＤＫＣ３２０は、ＶＤＵＣ３０８を伴うことなくすべてのデータＳＣＳＩコマンドを扱う。ＶＤＫＣ３２０は、データコマンドと、ドライバ温度に対する問い合わせと、ドライバファームウェアアップデートと、に対する最小の処理を伴いインタフェースを通してパスを提供する。もう一つの実施形態においては、温度およびファームウェアアップデートは、読み取り／書き込みアクセスだけに備えられたパススルーインタフェースを使用しない。
【００３２】
ＶＤＫＣ３２０を通してパスされたＳＣＳＩコマンドに対する処理は、変換およびマッピングを含む。プロトコルトランスレータ５３２は、ＳＣＳＩコマンドを、それらのＳＡＴＡもしくはその他のプロトコルの相当物に変換する。データマッパー５３６は、ユーザーデータエリア４０８がハードドライブ１１０上のどこに位置しているかをＶＤＵＣ３０８から知らされ、そしてそれに従い読み取りおよび書き込みをオフセットする。ＳＡＴＡドライバインタフェース５４０は、要求されたコマンドを実行するための適切なＳＡＴＡコマンドを発するために、ＳＡＴＡインタフェースポートドライバ３１６と結合する。
【００３３】
パスされていないＳＣＳＩコマンドに対しては、コマンドディバイダ５２８は、それらを処理のためにＶＤＵＣ３０８へとパスする。ＳＣＳＩトランスポートは、新しいＳＣＳＩコマンドがいつ使用可能であるかをＶＤＵＣ３０８に通知し、ＶＤＫＣ３２０へと応答をパスする。受信されたコマンドはＳＣＳＩコマンドハンドラ５０４へとパスされ、そこで解釈される。ＳＣＳＩコマンドハンドラ５０４は、コマンドに応答するために、カートリッジドック１０８およびことによるとその他のコンポーネントと相互作用する。いずれの結果も、ＳＣＳＩトランスポート５２０からＶＤＫＣ３２０へとパスされる。
【００３４】
カートリッジトランスポート５１６は、制御チャネルおよびデータチャネルを使用して、ＶＤＵＣ３０８とＶＤＫＣ３２０、カートリッジドック１０８およびデータカートリッジ１１２との相互作用を管理する。カートリッジトランスポート５１６は、カートリッジドック１０８にデータカートリッジ１１２が挿入されたときもしくは取り外されたときにＶＤＫＣ３２０に通知し、データカートリッジ１１２のキャパシティを識別する。キャパシティは、ユーザーデータエリア４０８のサイズである。ＳＡＴＡコマンドはハードドライブ１１０に伝達され、応答はカートリッジトランスポート５１６により戻される。さらに、ドック制御装置１２０はカートリッジトランスポート５１６とインタフェースされている。
【００３５】
認証ＡＰＩ５１２は、ＶＤＫＣ３２０およびデータカートリッジ１１２を認証する。ＶＤＫＣ３２０と相互作用する前に、認証ＡＰＩ５１２はそれが変更もしくは不法侵入されていないかを確認する。チェックサムもしくはハッシュは、ＶＤＫＣ３２０のためのソフトウェアコードに対して計算され得る。その他の実施形態はＶＤＫＣ３２０をテストするために、暗号化、暗号および／もしくはコードブックを使用し得る。ハードドライブ１１０は、ハードドライブ１１０の固有な情報に基づきかつ簡単に変更されないアルゴリズムを使用して認証され得る認証情報４０４を伴うセクタを有する。ＶＤＫＣ３２０の認証の後、認証ＡＰＩ５１２はユーザーアクセスのために、ハードドライブ１１０をアンロックするパスワードをハードドライブ１１０に提供する。
【００３６】
カートリッジメタデータＡＰＩ５０８は、メタデータエリア４１２、およびデータカートリッジ１１２のその他のメモリエリアにアクセスする。メタデータＡＰＩ５０８は、ユーザーデータエリア４０８を識別するデータ構造４００にオフセットを提供する。カートリッジメタデータＡＰＩ５０８により提供されたユーザーデータエリア４０８の知識、および認証ＡＰＩ５１２により提供されたパスワードアンロックの知識がなければ、ＶＤＫＣ３２０はデータカートリッジ１１２と実効的に相互作用することができない。例えば、カートリッジメタデータＡＰＩ５０８は、カートリッジメーカー情報、モデルナンバー、シリアルナンバー、ラベル情報などと相互作用する。さらに、カートリッジメタデータＡＰＩ５０８は、カートリッジロードカウント、書き込まれたバイト、読み込まれたバイト、エラーカウント、読み取り保護、書き込み保護などのためのフィールドを読み取り、アップデートする。新しいベンダ特定情報およびフィールドが、メタデータエリア４１２に加えられ得る。この実施形態においては、ＶＤＵＣ３０８のみがメタデータエリア４１２へのアクセスを有する。一部の実施形態は、メタデータエリア４１２の完全性を認証するために、認証ＡＰＩ５１２を使用し得る。
【００３７】
図５Ｂを参照して、ＶＤＫＣ３２０およびＶＤＵＣ３０８のもう一つの実施形態が詳細に示される。この実施形態は個別のコマンドチャネルを使用するのではなく、組み合わせられたコマンドおよびデータチャネルを有する。
【００３８】
次に図６を参照すると、データカートリッジ１１２とインタフェースするためのプロセス６００の実施形態が示されている。描かれているプロセスの一部は、新しいデータカートリッジ１１２がカートリッジドック１０８に挿入されるところであるブロック６０４において始まる。ブロック６０８において、ＶＤＵＣ３０８はＶＤＫＣ３２０を認証する。この実施形態においては、ハードドライブ１１０はＳＡＴＡプロトコルに従ってパスワードロックを有する。パスワードはハードドライブ１１０に固有であるが、ハードドライブ１１０からの情報により、ＶＤＵＣ３０８により決定され得る。ブロック６１２において、ハードドライブ１１０はアンロックされる。
【００３９】
ハードドライブ１１０上の認証情報４０４は、ブロック６１６において、データカートリッジ１１２が認証されていることをさらに確認するために認証される。ＶＤＵＣ３０８によるハードドライブ１１０の問い合わせの後、ユーザーデータエリア４０８の位置が決定される。加えて、この実施形態はハードドライブ１１０上の情報の任意選択の暗号化を使用する。ユーザーデータエリア４０８の位置を識別するオフセットおよびデータを保護する暗号化キーは、ＶＤＵＣ３０８からＶＤＫＣ６２０へと伝達される。この時点で、ＶＤＫＣ６２０は、ハードドライブ１１０と通信ができる。
【００４０】
ある時点で、ブロック６２４においてＯＳ３２４はＳＣＳＩコマンドをＶＤＫＣ３２０へと伝達する。ブロック６２８において、データコマンドをブロック６３２へと分け、そしてその他のコマンドをブロック６４０へと分ける決定が行われる。データコマンドであると決定された場合には、ブロック６３２において、ＶＤＫＣ３２０はコマンドをハードドライブ１１０のプロトコルに変換しそしてユーザーデータエリア４０８内の適切な位置に要求をオフセットする。ブロック６３６において、データコマンドからのいずれの結果もＯＳ３２４へとパスされる。
【００４１】
ＳＣＳＩコマンドがＶＤＵＣ３０８のためのものであれば、ブロック６４０においてＳＣＳＩコマンドはＶＤＵＣ３０８へとパスされる。ブロック６４４において、ＶＤＵＣ３０８はコマンドをプロセスする。一部のコマンドはデータカートリッジ１１２および／もしくはカートリッジドック１０８に問い合わせもしくは命令を要求する一方、その他のコマンドは要求しない。ブロック６４８における決定が行われる。コマンドもしくはデータチャネルを参照せずにＶＤＵＣ３０８によりコマンドがプロセスされ得る場合には、処理はブロック６４８から、いずれの応答もＶＤＫＣ３２０を通してＯＳ３２４へとパスされるブロック６６０へと進む。
【００４２】
カートリッジドック１０８および／もしくはデータカートリッジ１１２との相互作用が要求される場合には、ブロック６５２において実行される。ブロック６５６においていずれの結果も集められもしくは決定され、そしてブロック６６０においてＯＳへとパスされる。一部の決定は、いずれの応答もされないのでブロック６６０が不要となる。例えば、コマンドはデータカートリッジ１１２をカートリッジドック１０８にロックするものであり得る。もう一つの例においては、コマンドはデータカートリッジ１１２をイジェクトするものであり得る。イジェクトの後のステータスの変化は、カートリッジドック１０８が空であることを反映するために、ＯＳ３２４へと報告される。
【００４３】
次に図７を参照すると、本発明の実施形態がインプリメントされ得る例示的な環境が、カートリッジドックおよび取り外し可能なデータカートリッジと協働するようにユーザー７０４によって使用され得るコンピュータシステム７００と共に示される。コンピュータシステム７００は、コンピュータ７０２、キーボード７２２、ネットワークルーター７１２、プリンタ７０８およびモニタ７０６を含み得る。モニタ７０６、プロセッサ７０２およびキーボード７２２は、ラップトップコンピュータ、デスクトップコンピュータ、ハンドヘルドコンピュータ、メインフレームコンピュータなどであり得るコンピュータシステム７２６の一部である。モニタ７０６は、ＣＲＴ、平面型画面などであり得る。
【００４４】
ユーザー７０４は、マウス、キーボード７２２、トラックボール、タッチスクリーンなどの種々の入力装置を使用してコンピュータ７０２にコマンドを入力し得る。コンピュータシステム７００がメインフレームを含んでいれば、ユーザー７０４は、例えば端末もしくは端末インタフェースを使用して、コンピュータ７０２にアクセスし得る。加えて、コンピュータシステム７２６は、インターネット７１８もしくはＷＡＮと接続し得るネットワークルーター７１２を使用してプリンタ７０８およびサーバー７１０と接続し得る。
【００４５】
サーバー７１０は、例えば、追加のソフトウェアプログラムおよびデータを格納するために使用され得る。一実施形態においては、ここで記述されたシステムおよび方法をインプリメントするソフトウェアは、サーバー７１０内の記憶媒体に格納され得る。従って、ソフトウェアはサーバー７１０内の記憶媒体からランされ得る。もう一つの実施形態においては、ここで記述されたシステムおよび方法をインプリメントするソフトウェアは、コンピュータ７０２内の記憶媒体に格納され得る。従って、ソフトウェアはコンピュータシステム７２６内の記憶媒体からランされ得る。その結果、この実施形態においてはソフトウェアは、コンピュータ７０２がネットワークルーター７１２と接続されていようといまいと使用され得る。プリンタ７０８はコンピュータ７０２と直接接続され得、その場合、コンピュータシステム７２６はネットワークルーター７１２と接続されていようといまいとプリントし得る。
【００４６】
図８を参照して、専用ホストコンピュータシステム１０４の実施形態が示される。上記の方法は、上記された方法およびコンポーネントの動作を実行するようコンピュータシステムに指示するコンピュータプログラムプロダクトによりインプリメントされ得る。各々のそのようなコンピュータプログラムプロダクトは、コンピュータシステムのプロセッサに、対応する動作を実行するよう指示するコンピュータ読み取り可能媒体上で具体化された命令（コード）のセットを含み得る。これらの命令は、順次、もしくは並列（例えば異なる処理スレッド下）、もしくはこれらの組み合わせでランするように構成され得る。汎用コンピュータシステム７２６にコンピュータプログラムプロダクトをロードした後、汎用コンピュータシステム７２６はハードドライブドック１０８およびデータカートリッジ１１２にインタフェースを実行するために専用ホストコンピュータシステム１０４に変換される。
【００４７】
専用ホストコンピュータシステム１０４は、コンピュータ７０２、コンピュータ７０２と結合したモニタ７０６、コンピュータ７０２と結合した一つもしくは複数の追加のユーザー出力装置８３０（オプション）、コンピュータ７０２と結合した一つもしくは複数のユーザー入力装置８４０（例えば、キーボード、マウス、トラックボール、タッチスクリーン）、コンピュータ７０２と結合したオプションの通信インタフェース８５０、コンピュータ７０２内の実態のあるコンピュータ読み取り可能メモリに格納されたコンピュータプログラムプロダクト８０５を含む。コンピュータプログラムプロダクト８０５は、上記
された方法を実行するようホストシステム１０４に指示する。コンピュータ７０２は、バスサブシステム８９０経由で複数の周辺装置と通信する一つもしくは複数のプロセッサ８６０を含み得る。これらの周辺装置は、一つもしくは複数ユーザー出力装置８３０、一つもしくは複数ユーザー入力装置８４０、通信インタフェース８５０、そして実体のあるコンピュータ読み取り可能メモリの形態である、読み込み書き込み記憶装置（ＲＡＭ）８７０および不揮発性記憶ドライブ８８０（例えば、ディスクドライブ、光ドライブ、ソリッドステートドライブ）のような記憶サブシステムを含み得る。
【００４８】
コンピュータプログラムプロダクト８０５は、不揮発性記憶ドライブ８８０か、もしくはコンピュータ７０２にアクセス可能でありかつメモリ８７０にロードされているもう一つのコンピュータ読み取り可能媒体かに格納され得る。各々のプロセッサ８６０は、Ｉｎｔｅｌ（登録商標）もしくはＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｉｎｃ．（登録商標）、もしくはこれらと類するところのマイクロプロセッサのような、マイクロプロセッサを含み得る。コンピュータプログラムプロダクト８０５をサポートするためにコンピュータ７０２は、上記言及されているコンポーネントとの間の通信だけでなく、プロダクト８０５と上記言及されているコンポーネントとの通信を扱う、コンピュータプログラムプロダクト８０５をサポートするオペレーティングシステムをランする。例示的なオペレーティングシステムは、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＷｉｎｄｏｗｓ（登録商標）もしくはこれに類するもの、Ｓｕｎ  ＭｉｃｒｏｓｙｓｔｅｍｓのＳｏｌａｒｉｓ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、そしてこれらに類するものを含む。
【００４９】
ユーザー入力装置８４０は、コンピュータシステム７０２に情報を入力するためのすべての可能なタイプの装置およびメカニズムを含む。それらは、キーボード、キーパッド、マウス、スキャナ、デジタル描画用パッド、ディスプレイに組み入れられたタッチスクリーン、音声認識システムのような音声入力装置、マイクロフォン、そしてその他のタイプの入力装置を含み得る。種々の実施形態においては、ユーザー入力装置８４０は典型的に、コンピュータマウス、トラックボール、トラックパッド、ジョイスティック、ワイヤレスリモコン、描画用タブレット、音声コマンドシステムとして具体化される。ユーザー入力装置８４０は典型的に、ボタンのクリックもしくはこれに類するもののようなコマンドを経由してモニタ７０６上に現れる、オブジェクト、アイコン、テキストおよびこれらに類するものを選択することをユーザーに許可する。ユーザー出力装置８３０は、コンピュータ７０２から情報を出力するためのすべての可能なタイプの装置およびメカニズムを含む。それらは、ディスプレイ（例えば、モニタ７０６）、プリンタ、音声出力装置のような非視覚ディスプレイなどを含み得る。
【００５０】
通信インタフェース８５０は、その他の通信ネットワークおよび装置にインタフェースを提供し、そしてその他のシステム、ＷＡＮおよび／もしくはインターネット７１８からデータを受信およびそれらへとデータを伝送するインタフェースとして働き得る。通信インタフェース８５０の実施形態は典型的にイーサネット（登録商標）カード、モデム（電話、衛星、ケーブル、ＩＳＤＮ）、（非同期）デジタル加入者回線（ＤＳＬ）装置、ＦｉｒｅＷｉｒｅ（登録商標）インタフェース、ＵＳＢ（登録商標）インタフェース、ワイヤレスネットワークアダプタ、そしてこれらに類するものを含む。例えば、通信インタフェース８５０は、コンピュータネットワーク、ＦｉｒｅＷｉｒｅ（登録商標）バス、もしくはこれらに類するものと結合し得る。その他の実施形態においては、通信インタフェース８５０は、コンピュータ７０２のマザーボード上に物理的に統合され得るか、および／もしくはソフトウェアプログラム、もしくはこれに類するものであり得る。
【００５１】
ＲＡＭ８７０および不揮発性記憶ドライブ８８０は、実行可能コンピュータコード、人間読み取り可能コード、もしくはこれらに類するものを含む、本発明のコンピュータプログラムプロダクト実施形態のようなデータを格納するように構成される実体のあるコンピュータ読み取り可能媒体の例である。実体のあるコンピュータ読み取り可能媒体のその他のタイプは、フロッピー（登録商標）ディスク、取り外し可能なハードディスク、ＣＤ−ＲＯＭ、ＤＶＤ、バーコードのような光記憶媒体、フラッシュメモリのような半導体メモリ、読み取り専用メモリ（ＲＯＭ）、電池でバックアップされた揮発性メモリ、ネットワーク接続された記憶装置、そしてこれらに類するものを含む。ＲＡＭ８７０および不揮発性記憶ドライブ８８０は、上記されている本発明の種々の実施形態の機能性を提供する、基本のプログラミングおよびデータ構造を格納するように構成され得る。
【００５２】
本発明の機能性を提供するソフトウェア命令セットは、ＲＡＭ８７０および不揮発性記憶ドライブ８８０に格納され得る。これらの命令セットもしくはコードは、プロセッサ８６０により実行され得る。ＲＡＭ８７０および不揮発性記憶ドライブ８８０はまた、本発明に従って使用されるデータおよびデータ構造を格納するためのリポジトリを提供し得る。ＲＡＭ８７０および不揮発性記憶ドライブ８８０は、プログラム実行の間命令およびデータを格納する主読み込み書き込み記憶装置（ＲＡＭ）、そして固定命令が格納されている読み取り専用メモリ（ＲＯＭ）を含む複数のメモリを含み得る。ＲＡＭ８７０および不揮発性記憶ドライブ８８０は、プログラムおよび／もしくはデータファイルの永続（不揮発性）記憶を提供するファイル記憶サブシステムを含み得る。ＲＡＭ８７０および不揮発性記憶ドライブ８８０はまた、取り外し可能なフラッシュメモリのような取り外し可能な記憶システムを含み得る。
【００５３】
バスサブシステム８９０は、種々のコンポーネントおよびコンピュータ７０２のサブシステムに互いに意図された通りに通信させるメカニズムを提供する。バスサブシステム８９０は図では単一のバスとして示されているが、バスサブシステムの代替の実施形態は、コンピュータ７０２内で複数のバスもしくは通信パスを利用し得る。
【００５４】
開示された実施形態の複数の変形および改変もまた使用され得る。例えば、上記の実施形態はＳＣＳＩをＳＡＴＡに変換するが、その他の実施形態は任意の二つのプロトコルの間を変換し得る。例えば、一実施形態は、ＳＡＴＡコマンドを受信し、そしてそれらをＳＣＳＩデータカートリッジのためのＳＣＳＩに変換し得る。
【００５５】
本開示の原理が具体的な装置および方法と関連して上記されているが、本記述は本開示の範囲を限定するのではなく、単に例として記述されていることは明瞭に理解される。
【図１Ａ】
0005917531.tif 000002
【図１Ｂ】
0005917531.tif 000003
【図２】
0005917531.tif 000004
【図３Ａ】
0005917531.tif 000005
【図３Ｂ】
0005917531.tif 000006
【図４】
0005917531.tif 000007
【図５Ａ】
0005917531.tif 000008
【図５Ｂ】
0005917531.tif 000009
【図６】
0005917531.tif 000010
【図７】
0005917531.tif 000011
【図８】
0005917531.tif 000012