(57)【特許請求の範囲】
【請求項１】
ホストと記憶装置との間のＳＡＴＡリンクを介して非ＳＡＴＡメッセージを通信するためのＳｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（「ＳＡＴＡ」）通信装置であって、
第１のＳＡＴＡ準拠コマンドと関連付けられた複数のＳＡＴＡメッセージにある第１の非ＳＡＴＡメッセージを識別し、
前記第１のＳＡＴＡ準拠コマンドと関連付けられた複数のＳＡＴＡメッセージのうち異なるＳＡＴＡメッセージ各々から前記第１の非ＳＡＴＡメッセージの部分を獲得し、
獲得した前記部分から前記第１の非ＳＡＴＡメッセージを構成し、
第２のＳＡＴＡ準拠コマンドと関連付けられた各ＳＡＴＡメッセージ内に、第２の非ＳＡＴＡメッセージの部分を挿入する、
ように構成され、前記第１の非ＳＡＴＡメッセージ及び前記第２の非ＳＡＴＡメッセージを前記ＳＡＴＡ通信装置と前記ホストとの間で伝達するための隠し通信チャネルを形成するように作動する、ＳＡＴＡトランシーバを備えることを特徴とするＳＡＴＡ通信装置。
【請求項２】
前記第１のＳＡＴＡ準拠コマンドがＲＥＡＤコマンドであり、前記第２のＳＡＴＡ準拠コマンドがＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドであることを特徴とする請求項１に記載のＳＡＴＡ通信装置。
【請求項３】
第１のＳＡＴＡメッセージにおいて、前記第１のＳＡＴＡ準拠コマンドをＲＥＡＤコマンドとして検知し、
前記第１のＳＡＴＡメッセージからメッセージ・フィールドの少なくとも部分を受け取る、
ように構成されたダウンリンク・レシーバをさらに備えることを特徴とする請求項２に記載のＳＡＴＡ通信装置。
【請求項４】
前記メッセージ・フィールドの前記部分は、論理ブロック・アドレス（「ＬＢＡ」）の一部であることを特徴とする請求項３に記載のＳＡＴＡ通信装置。
【請求項５】
前記メッセージ・フィールドの前記部分から非ＳＡＴＡメッセージを構成するように構成された非ＳＡＴＡメッセージ構成バッファをさらに備えることを特徴とする請求項３に記載のＳＡＴＡ通信装置。
【請求項６】
前記非ＳＡＴＡメッセージ構成バッファが有効な非ＳＡＴＡメッセージを含むことを検証するように構成された非ＳＡＴＡメッセージ検証ユニットをさらに備えることを特徴とする請求項５に記載のＳＡＴＡ通信装置。
【請求項７】
第２のＳＡＴＡメッセージにおいて、前記第２のＳＡＴＡ準拠コマンドをＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドとして検知し、
前記第２のＳＡＴＡメッセージのメッセージ・フィールド内に非ＳＡＴＡ応答メッセージの少なくとも部分を挿入する、
ように構成された、アップリンクを形成するためのアップリンク・トランスミッタをさらに備えることを特徴とする請求項２に記載のＳＡＴＡ通信装置。
【請求項８】
前記メッセージ・フィールドがベンダー特有フィールドであることを特徴とする請求項７に記載のＳＡＴＡ通信装置。
【請求項９】
前記非ＳＡＴＡ応答メッセージの前記部分を維持し、
ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドを含む別のＳＡＴＡメッセージを受け取る前記ＳＡＴＡトランシーバに応答して、前記非ＳＡＴＡ応答メッセージの前記部分を前記アップリンク・トランスミッタに公開する、
ように構成された非ＳＡＴＡメッセージ応答バッファをさらに備えることを特徴とする請求項７に記載のＳＡＴＡ通信装置。
【請求項１０】
ホストと装置との間のＳＡＴＡリンクを介して非ＳＡＴＡメッセージを通信するためのデュアル・モードのＳｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（「ＳＡＴＡ」）トランシーバであって、
ＳＡＴＡオリジネータ又はＳＡＴＡイニシエータのいずれか一方又は両方である上流エンティティから発するＳＡＴＡメッセージのうち異なるＳＡＴＡメッセージ各々から、第１の非ＳＡＴＡメッセージの部分を受け取り、当該部分から前記第１の非ＳＡＴＡメッセージを構成するように構成されたＳＡＴＡダウンリンク・レシーバと、
前記上流エンティティへの伝送のために、第２の非ＳＡＴＡメッセージの部分を各ＳＡＴＡメッセージ内に挿入するように構成されたＳＡＴＡアップリンク・トランスミッタと、
プロトコル準拠コマンドを発行し、１つ又はそれ以上のターゲット装置に、非ＳＡＴＡ応答メッセージを含むプロトコル準拠応答メッセージを生成させるように構成されたＳＡＴＡコマンド・プロセッサと、
を備えることを特徴とするデュアル・モードＳＡＴＡトランシーバ。
【請求項１１】
前記ＳＡＴＡダウンリンク・レシーバは、ＲＥＡＤコマンドを含むＳＡＴＡパケットから第１の非ＳＡＴＡメッセージの部分を獲得するように構成され、前記ＳＡＴＡアップリンク・トランスミッタは、前記第２の非ＳＡＴＡメッセージの部分を、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドについての応答メッセージを含む各ＳＡＴＡパケット内に挿入するように構成され、前記ＳＡＴＡコマンド・プロセッサは、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドを発行するように構成されることを特徴とする請求項１０に記載のデュアル・モードＳＡＴＡトランシーバ。
【請求項１２】
非ＳＡＴＡメッセージを、ターゲット装置によって使用可能なメッセージに変換し、
前記メッセージを非ＳＡＴＡメッセージにフォーマットする、
ように構成されたターゲット・インターフェースをさらに備えることを特徴とする請求項１０に記載のデュアル・モードＳＡＴＡトランシーバ。
【請求項１３】
前記ターゲット装置が記憶装置であることを特徴とする請求項１２に記載のデュアル・モードＳＡＴＡトランシーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、記憶装置に関し、より具体的には、記憶装置システムのために、Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（「ＳＡＴＡ」）リンクのようなリンク内に隠し通信チャネルを確立するための装置に関する。
本出願は、代理人整理番号第ＳＩＬＩ−０１３／００ＵＳ号により２００５年８月２５日に出願された「Ｓｍａｒｔ  Ｓｃａｌａｂｌｅ  Ｓｔｏｒａｇｅ  Ｓｗｉｔｃｈ  Ａｒｃｈｉｔｅｃｔｕｒｅ」という名称の米国仮特許出願第６０／７１１，８６３号を、引用により組み入れるものである。
【背景技術】
【０００２】
一般に、格納システムの設計者は、格納用製品の開発に必要とされる技術的知識及び資本的支出を最小にするために、少なくとも一部的に標準化された通信プロトコルを用いる。標準化された通信プロトコルはまた、性能及び品質のためのベンチマークを設定するための手段も提供する。しかしながら、標準化されたプロトコルによって改善点をサポートすることができない場合、厳しいプロトコル標準への厳守が、革新を遅らせる可能性がある。説明のために、Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（「ＳＡＴＡ」）仕様が、１つ又はそれ以上の記憶装置（例えば、１つ又はそれ以上のハードディスク）との間のデータ転送を標準化するために開発されたと考える。ＳＡＴＡ仕様は、ユーザに、強化された性能及び信頼性のみならず、記憶装置を容易にアップグレードするための技術も提供する。さらに、ＳＡＴＡ仕様は、ポート・マルチプライヤの使用を定めるので、単一のＳＡＴＡポートが多数のドライブと通信することが可能である。機能的なものではあるが、ＳＡＴＡ仕様は、ホスト・コンピュータと、例えばポート・マルチプライヤのような記憶装置システム内の任意のポイントとの間に通信チャネルを確立し、ＳＡＴＡ仕様によってサポートされていない格納関連の機能を実行するための柔軟性を提供するものではない。コマンドを記憶装置システムに転送し、格納関連機能を実行するための通信チャネルがない場合には、ホスト・コンピュータが、それらの格納関連機能を実行することが必要である。したがって、ホスト・コンピュータは、ＳＡＴＡがもたらす強化された性能又は信頼性機能から恩恵を受けない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記を鑑みて、ＳＡＴＡプロトコルのような標準化されたプロトコルの欠点を最小にする通信装置、ＳＡＴＡ通信装置、システム、強化されたポート・マルチプライヤ及び方法を提供することが望ましい。
【課題を解決するための手段】
【０００４】
特に、プロトコル準拠リンク内に隠し通信チャネルを確立するための通信装置、ＳＡＴＡ通信装置、システム、強化されたポート・マルチプライヤ及び方法が開示される。１つの実施形態においては、通信装置は、リンク・インターフェース及び補足メッセージ・インターフェースを含む。リンク・インターフェースは、標準化されたプロトコルに従ってリンクを通過するデータ・ストリームにアクセスするために、通信装置をリンクに通信可能に結合するように構成される。補足メッセージ・インターフェースは、補足メッセージをデータ・ストリームと交換し、リンク内に隠し通信チャネルを確立するように構成される。補足メッセージは、プロトコルに違反することなく、標準化されたプロトコルを補足する。
【０００５】
有利に、隠し通信チャネルは、プロトコル準拠リンク、及びホスト・コンピューティング装置及び任意の記憶装置を含むことができるエンドポイント装置間でプロトコル準拠メッセージを伝達する能力に影響を与えることなく又は妨害することなく、補足メッセージを伝達する。したがって、隠し通信チャネルを形成するために、プロトコル準拠装置の修正を必要としない。また、隠し通信チャネルは、有利に、記憶装置システムが、ホスト・コンピューティング装置以外において強化された格納関連機能を実行することを可能にする。このことは、ホスト・コンピューティング装置の計算リソースを保存するだけでなく、ホスト・コンピューティング装置が、強化された格納関連機能を実行するための専用プログラムを含む必要性も無くす。特に、強化された格納関連機能を実装するために、特別なオペレーティング・システム又は装置ドライバを必要としない（すなわち、標準的な一般用ユーザ・アプリケーションで十分である）。１つの実施形態において、補足メッセージは、補足コマンドを、ホスト・コンピューティング装置の下流にある任意のポイントに伝達し、ストライピング機能、ミラーリング機能、連結機能、エンクロージャ管理機能、ファームウェア・アップグレード機能、管理ポリシー機能、及び他の何らかの同様の格納関連機能のような強化された格納関連機能を実行することができる。
【０００６】
ホストと記憶装置との間のＳＡＴＡリンクを介して非ＳＡＴＡメッセージを通信するためのＳＡＴＡ通信装置も開示される。ＳＡＴＡ通信装置は、非ＳＡＴＡメッセージを、第１のＳＡＴＡ準拠コマンドと関連付けられたＳＡＴＡメッセージから少なくとも検索するように構成されたＳＡＴＡトランシーバを含む。ＳＡＴＡトランシーバはまた、非ＳＡＴＡメッセージを、第２のＳＡＴＡ準拠コマンドと関連付けられたＳＡＴＡメッセージ内に挿入することもできる。１つの実施形態において、ＳＡＴＡトランシーバは、ＳＡＴＡ準拠メッセージ内で非ＳＡＴＡメッセージをエンコードすることによって、非ＳＡＴＡメッセージを送信する。このように、ＳＡＴＡトランシーバは、ＳＡＴＡ通信装置とホストとの間で非ＳＡＴＡメッセージを伝達するための隠し通信チャネルを形成するように作動する。有利に、隠し通信チャネルは、ＳＡＴＡ仕様に違反することなく、少なくとも１つのＳＡＴＡ準拠メッセージを有するＳＡＴＡリンクを介して、少なくとも１つの非ＳＡＴＡメッセージを同時に移送するように構成される。
【０００７】
ＳＡＴＡ準拠記憶装置のシステムのための、強化された格納関連機能を実行する強化されたポート・マルチプライヤがさらに開示される。強化されたポート・マルチプライヤは、隠し通信チャネルを形成するように構成されたＳＡＴＡトランシーバを含む。このチャネルは、強化されたポート・マルチプライヤとホストとの間で非ＳＡＴＡメッセージを伝達する。強化されたポート・マルチプライヤはまた、非ＳＡＴＡメッセージ内の非ＳＡＴＡコマンドを実行するように構成された非ＳＡＴＡメッセージ実行ユニットも含む。したがって、強化されたポート・マルチプライヤは、ＳＡＴＡ準拠記憶装置のシステム内で強化された格納関連機能を実行することができる。種々の実施形態において、強化されたポート・マルチプライヤはまた、他の強化されたポート・マルチプライヤと通信することができるだけでなく、非ＳＡＴＡメッセージを暗号化することもできる。
【図面の簡単な説明】
【０００８】
【図１】本発明の少なくとも１つの特定の実施形態による、隠し通信チャネルを確立するための通信装置のブロック図である。
【図２】本発明の実施形態による、図１の補足メッセージ・インターフェースの特定の実施を示す図である。
【図３】本発明の実施形態による、ＳＡＴＡ仕様に準拠したリンク内に隠し通信チャネルを確立するためのＳｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（「ＳＡＴＡ」）トランシーバを示す図である。
【図４】本発明の特定の実施形態による、隠し通信チャネルのダウンリンクを確立するためのＳＡＴＡダウンリンク・レシーバを示す機能図である。
【図５】本発明の特定の実施形態による、隠し通信チャネルのアップリンクを確立するためのＳＡＴＡアップリンク・トランスミッタを示す機能図である。
【図６】本発明の少なくとも１つの特定の実施形態による、ＳＡＴＡ準拠記憶装置システムのために強化された格納関連機能を実施する強化されたポート・マルチプライヤのブロック図である。
【図７】本発明の１つの実施形態による、コンピューティング装置において隠し通信チャネルの別の終端を確立するためのＳＡＴＡホスト・トランシーバを示す。
【図８】本発明の１つ又はそれ以上の実施形態による、ＳＡＴＡパケットのイニシエータ又はターゲットのいずれか一方又は両方として作動するデュアル・モードＳＡＴＡトランシーバを示すブロック図である。
【図９】本発明の実施形態による、イニシエータ・ターゲット階層におけるデュアル・モードＳＡＴＡトランシーバの例示的な実装を示すブロック図である。
【発明を実施するための形態】
【０００９】
本発明は、添付の図面と共に次の詳細な説明と関連してより完全に理解される。
同様の参照符号は、図面の幾つかの図の全体にわたって対応する部品を指す。大部分の参照符号は、その参照符号を最初に導入する図を全体的に識別する１つ又は２つの左端の数字を含むことに留意されたい。
【００１０】
図１は、本発明の少なくとも１つの特定の実施形態による、隠し通信チャネルを確立するための通信装置のブロック図１００である。概念的には、通信装置１３０は、ホスト・コンピューティング装置（「ホスト」）１０２のホスト・バス・アダプタ（図示せず）と記憶装置１４０のシステム１２０（「記憶装置システム」）内の任意のポイントとの間のプロトコル準拠リンク１０６を介して、補足メッセージ（「Ｓｕｐｐ．Ｍｓｇ．」）１１０を伝達するための隠し通信チャネル１０４を確立する。補足メッセージ１１０は、プロトコル準拠リンク１０６を支えるプロトコルによって定義されない非準拠メッセージである。例えば、補足メッセージ１１０は、プロトコルによって定義されないフォーマット、伝送モード、又は機能を持つことができる。したがって、補足メッセージ１１０は、特定のプロトコルを「補足」又は増強し、強化された機能を与える。したがって、ここで用いられる「隠し」という用語は、プロトコル準拠装置間で非準拠メッセージを転送するために、プロトコル準拠リンク１０６上に重畳された通信チャネルを指すことができる。
【００１１】
有利に、隠し通信チャネル１０４は、プロトコル準拠リンク１０６、並びにホスト・コンピューティング装置１０２及びいずれかの記憶装置１４０を含み得るエンドポイント装置間でプロトコル準拠メッセージを伝達できるその能力に悪影響を及ぼすことなく又はそれらを妨害することなく、補足メッセージ１１０を伝達する。したがって、隠し通信チャネル１０４を形成するために、プロトコル準拠装置の修正は必要ない。また、隠し通信チャネル１０４は、有利に、記憶装置システム１２０が、ホスト・コンピューティング装置１０２以外において強化された格納関連機能を実行することを可能にする。このことは、ホスト・コンピューティング装置１０２の計算リソースを保存するだけでなく、ホスト・コンピューティング装置１０２が、強化された格納関連機能を実行するための専用プログラムを含む必要性も無くす。特に、強化された格納関連機能を実装するために、特別なオペレーティング・システム又は装置ドライバを必要としない（すなわち、標準的な一般用ユーザ・アプリケーションで十分である）。１つの実施形態において、補足メッセージ１１０は、強化された格納関連機能を実行するために、補足コマンドを、ホスト・コンピューティング装置１０２の下流にある任意のポイントに伝達することができる。同じプロトコル又は異なるプロトコルを用いて、そのようなメッセージを付加的な装置に送ることができる。強化された格納関連機能の例は、ストライピング機能、ミラーリング機能、連結機能、エンクロージャ管理機能、ファームウェア・アップグレード機能、管理ポリシー機能、及び他の何らかの同様の格納関連機能を含む。
【００１２】
図１に示されるように、プロトコル準拠リンク１０６は、ホスト・コンピューティング装置１０２を記憶装置１４０に結合し、プロトコルによって定められる名目上の格納機能を実行する。記憶装置１４０の例は、１つ又はそれ以上のハードディスク・ドライブと、機械的手段、磁気的手段、電気的手段、又は光学的手段を用いてデータを格納するための何らかの媒体とを含む。ダイアグラム１００は、隠し通信チャネル１０４の終端を形成する通信装置１３０を示す。通信装置１３０は、リンク・インターフェース（「Ｌ．Ｉ．」）１３２及び補足メッセージ・インターフェース１３４を含む。リンク・インターフェース１３２は、標準化プロトコルに従ってプロトコル準拠リンク１０６を通過するデータ・ストリームにアクセスするために、通信装置１３０をプロトコル準拠リンク１０６に通信可能に結合する。補足メッセージ・インターフェース１３４は、１つ又はそれ以上の補足メッセージ１１０をデータ・ストリームと交換し、プロトコル準拠リンク１０６内に隠し通信チャネル１０４を確立するように作動可能である。特に、隠し通信チャネル１０４は、プロトコル準拠リンク１０６が関連した標準化プロトコルに準拠したままの方法で、補足メッセージ１１０をデータ・ストリーム内に組み込む。１つの実施形態において、プロトコル準拠リンク１０６は、シリアル・リンクである。幾つかの実施形態においては、通信装置１３０をホスト・コンピューティング装置１０２のバックプレーン（図示せず）上に配置することができるが、本発明の他の実施形態によると、記憶装置１４０のシステム１２０内の任意の位置に、通信装置１３０を配置することができる。本発明の種々の実施形態においては、ホスト・コンピューティング装置１０２は、通信装置１３０とホスト・コンピューティング装置１０２との間に単方向のデータ・ストリーム又は双方向のデータ・ストリームのいずれかを形成するための別の補足メッセージ・インターフェース１３４（又はその均等物）を含む。
【００１３】
図２は、本発明の実施形態による、図１の補足メッセージ・インターフェース１３４の特定の実装を示すダイアグラム２００である。ダイアグラム２００は、補足メッセージ（又はその部分）をプロトコル準拠リンク２０６内のデータ・ストリーム２０７と交換するように構成されている補足メッセージ・インターフェース２３４を示す。この例証において、補足メッセージ・インターフェース２３４は、データ・ストリーム２０７を観察又は「盗聴」し、プロトコル準拠メッセージの部分２０８及び２１０に対して補足メッセージ部分２０９を識別するように作動可能である。次いで、補足メッセージ・インターフェース２３４は、補足メッセージ部分２０９を、識別された補足ダウンリンク・メッセージ２２０（又はその部分）として獲得することができる。補足メッセージ・インターフェース２３４はまた、プロトコル準拠メッセージ部分２０８と部分２１０との間に補足アップリンク・メッセージ２２２（又はその部分）を挿置し、補足メッセージ部分２０９を形成するようにも作動可能である。プロトコル準拠メッセージ部分２０８及び２１０は、同じプロトコル準拠メッセージとすることも又は異なるプロトコル準拠メッセージとすることもできることに留意されたい。種々の実施形態において、補足メッセージ・インターフェース２３４による補足メッセージの獲得は、プロトコル準拠リンク２０６に影響を及ぼさない。したがって、データ・ストリーム２０７は、プロトコル準拠リンク２０６の特定のプロトコルを変更することなく且つこれに違反することなく、メッセージ・インターフェース２３４を通る又は通り過ぎることができる。
【００１４】
少なくとも１つの実施形態において、プロトコル準拠リンク２０６は、ＲＥＡＤ、ＷＲＩＴＥ、及び／又はＩＤＥＮＴＩＦＹ意味論を有するプロトコルを実装する。このようなプロトコルにおいて、ＲＥＡＤコマンドは、記憶装置からデータを読み取るために用いられ、例えば、ディスク・アドレス、長さ及び他の情報を指定する。ＷＲＩＴＥコマンドは、データを記憶装置に格納するために用いられ、ディスク・アドレス、長さ、及び格納されることになるデータを指定することができる。ＩＤＥＮＴＩＦＹコマンドは、記憶装置の詳細を識別するために用いられ、製造番号、型式番号、タイプ、能力その他同様の情報について、記憶装置に問い合わせることができる。
【００１５】
補足メッセージ・インターフェース２３４は、補足メッセージ・オブザーバ２５０及び補足メッセージ・インターポーザ２６０を含む。補足メッセージ・オブザーバ２５０は、ダウンリンク・レシーバ（「Ｒｘ」）２５２及びメッセージ構成バッファ２５４を含む。ダウンリンク・レシーバ２５２は、データ・ストリーム２０７を観察又は盗聴し、補足メッセージ部分２０９を検知するように構成される。特に、ダウンリンク・レシーバ２５２は、データ・ストリーム２０７を監視することができ、次いで、どちらのデータ・ストリーム２０７も修正又は妨害することなく、補足メッセージ部分２０９（例えば、そのコピーのような）を獲得することができる。このように、データ・ストリーム２０７は、プロトコル準拠リンク２０６のプロトコルに違反することなく、変更されずに下流の装置に渡される。特定の実施形態において、ダウンリンク・レシーバ２５２は、データ・ストリーム２０７内の１つのタイプのプロトコル準拠メッセージを検知するように作動可能である。その１つのタイプが検知されると、ダウンリンク・レシーバ２５２は、データ・ストリーム２０７を走査して補足メッセージ部分２０９を識別し、その後、識別された補足ダウンリンク・メッセージ２２０を獲得することができる。１つの実施形態において、１つのタイプのプロトコル準拠メッセージは、一般に、記憶装置から情報を読み取るために用いられる、何らかの「ＲＥＡＤ」コマンドである。こうしたコマンドを含むプロトコル準拠メッセージは下流の記憶装置を変更しないので、補足メッセージを通信する際にＲＥＡＤコマンドは特に有用である。メッセージ構成バッファ２５４は、ダウンリンク・レシーバ２５２に結合され、識別された補足ダウンリンク・メッセージ２２０の部分を獲得し、そこから補足メッセージ全体を構成する。
【００１６】
補足メッセージ・インターポーザ２６０は、アップリンク・トランスミッタ（「Ｔｘ」）２６２及びメッセージ応答バッファ２６４を含む。メッセージ応答バッファ２６４は、別のタイプのプロトコル準拠メッセージによって生成された要求されたデータを含む補足応答メッセージ（又はその部分）を維持する。アップリンク・トランスミッタ２６２は、補足応答メッセージの部分を、補足アップリンク・メッセージ２２２としてプロトコル準拠メッセージ部分２０８と２１０との間に挿置し、補足メッセージ部分２０９を形成するように作動可能である。特に、アップリンク・トランスミッタ２６２は、メッセージ応答バッファ２６４から補足アップリンク・メッセージ２２２を取り出し、次いで、それを、例えばホスト・コンピューティング装置に送る。特定の実施形態において、アップリンク・トランスミッタ２６２は、他のタイプのプロトコル準拠メッセージに応答して作動する。１つの実施形態において、他のタイプのプロトコル準拠メッセージは、応答メッセージを戻す非書き込みコマンドである。こうした１つの非書き込みコマンドが、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドである。
【００１７】
図３は、本発明の実施形態による、ＳＡＴＡ仕様に準拠したリンク内に隠し通信チャネルを確立するためのＳｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（「ＳＡＴＡ」）トランシーバを示すダイアグラム３００である。ダイアグラム３００は、ホスト・コンピューティング装置と記憶装置（どちらも図示せず）との間のＳＡＴＡリンク３０６を介して、非ＳＡＴＡメッセージを伝達するためのＳＡＴＡトランシーバ３５０を示す。特に、ＳＡＴＡトランシーバ３５０は、ＳＡＴＡダウンリンク・レシーバ（「Ｒｘ」）３６０及びＳＡＴＡアップリンク・トランスミッタ（「Ｔｘ」）３７０を含む。ＳＡＴＡダウンリンク・レシーバ３６０は、第１のＳＡＴＡ準拠コマンドと関連付けられたＳＡＴＡメッセージ３０２から非ＳＡＴＡメッセージを検索するように構成される。対照的に、ＳＡＴＡアップリンク・トランスミッタ３７０は、非ＳＡＴＡメッセージを、第２のＳＡＴＡ準拠コマンドと関連付けられたＳＡＴＡメッセージ３０４内に挿入するように構成される。したがって、ＳＡＴＡトランシーバ３５０は、ＳＡＴＡトランシーバ３５０又はＳＡＴＡ通信装置のどちらかとホスト・コンピューティング装置（図示せず）との間で非ＳＡＴＡメッセージを伝達するための隠し通信チャネルを形成するように作動する。このように、隠し通信チャネルは、ＳＡＴＡメッセージ３０２及び３０４の少なくとも１つを有するＳＡＴＡリンク３０６を介して、少なくとも１つの非ＳＡＴＡメッセージ（又はその部分）を同時に転送することができる。例えば、非ＳＡＴＡメッセージ３１６（又はその部分）は、ＳＡＴＡメッセージ３０２を有するリンク３０６を同時に横断することができ、一方、非ＳＡＴＡメッセージ３２６（又はその部分）は、ＳＡＴＡメッセージ３０４を有するリンク３０６を同時に横断することができる。ＳＡＴＡメッセージ３０２及び３０４は、それぞれホスト・コンピューティング装置からのダウンリンク・メッセージ及びホスト・コンピューティング装置に向かうアップリンク・メッセージである。「ＳＡＴＡ」という用語は、オレゴン州ポートランド所在のＳｅｒｉａｌ  ＡＴＡ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ（「ＳＡＴＡ−ＩＯ」）によって規定される、ＳＡＴＡ仕様におけるプロトコルを指すことに留意されたい。
【００１８】
図３に示されるように、ＳＡＴＡダウンリンク・レシーバ３６０は、非ＳＡＴＡメッセージを生成するための非ＳＡＴＡメッセージ構成バッファ３６２及び非ＳＡＴＡメッセージ検証ユニット３６４を含む。１つの実施形態において、上述された第１のＳＡＴＡ準拠コマンドはＲＥＡＤコマンドであり、上述された第２のＳＡＴＡ準拠コマンドはＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドである。さらに、ＳＡＴＡメッセージ３０２は、各々が、ＳＡＴＡ仕様によって規定されるような多数のフィールド３１４を含む１つ又はそれ以上のＳＡＴＡパケット３１０から構成することができる。作動において、ＳＡＴＡダウンリンク・レシーバ３６０は、コマンド・フィールド３１２内のＲＥＡＤコマンドのような第１のＳＡＴＡ準拠コマンドを検知するように機能する。次いで、ＳＡＴＡダウンリンク・レシーバ３６０は、ＳＡＴＡパケット３１０からメッセージ・フィールド３１４の少なくとも部分３１６を検索する。特定の実施形態において、メッセージ・フィールド３１４の部分３１６は、例えば、論理ブロック・アドレス（「ＬＢＡ」）の一部とすることができる。非ＳＡＴＡメッセージ構成バッファは、メッセージ・フィールド３１４の部分３１６を蓄積し、非ＳＡＴＡメッセージ３８０の全体を構成するように構成される。非ＳＡＴＡメッセージ検証ユニット３６４は、非ＳＡＴＡメッセージ３８０が有効であることを検証するように構成される。幾つかの実施形態において、ＳＡＴＡパケット３１０という用語は、一般に、Ｆｒａｍｅ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｔｒｕｃｔｕｒｅ（「ＦＩＳ」）を指す。
【００１９】
さらに図３に関連して、ＳＡＴＡアップリンク・トランスミッタ３７０は、どちらも非ＳＡＴＡ応答メッセージをリンク３０６内に導入するために用いられるアップリンク挿入装置３７２及び非ＳＡＴＡメッセージ応答バッファ３７４を含む。ＳＡＴＡメッセージ３０４は、各々が、ＳＡＴＡ仕様によって定められる多数のフィールド３２４を含む１つ又はそれ以上のＳＡＴＡパケット３２０から構成することができる。作動において、ＳＡＴＡアップリンク・トランスミッタ３７０は、コマンド・フィールド３１２内のＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドのようなＳＡＴＡ準拠コマンドの受信を検知する。次いで、ＳＡＴＡアップリンク・トランスミッタ３７０は、非ＳＡＴＡ応答メッセージ３９０の少なくとも一部をメッセージ・フィールド３２６内に挿入することによって応答する。特定の実施形態において、メッセージ・フィールド３２６（又はその部分）は、例えば、ベンダー特有のフィールドとすることができる。非ＳＡＴＡメッセージ応答バッファ３７４は、非ＳＡＴＡ応答メッセージ３９０の少なくとも一部を維持するように構成される。ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドを含む別のＳＡＴＡメッセージを受信するＳＡＴＡトランシーバ３５０に応答して、非ＳＡＴＡメッセージ応答バッファ３７４は、非ＳＡＴＡ応答メッセージ３９０の部分をアップリンク挿入装置３７２に公開する。例えば、他のＳＡＴＡメッセージの受信は、アップリンク挿入装置３７２を作動させるＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ（「ＩＤＥＮＴ」）受信表示信号３５２を生成することができる。ＳＡＴＡ仕様自体が、非ＳＡＴＡ応答メッセージ３９０を非同期式に伝送できないように、ＳＡＴＡアップリンク・トランスミッタ３７０を本質的に制限していることに留意されたい。したがって、ホストは、ＳＡＴＡメッセージ３０２内のＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドを送ることによって、非ＳＡＴＡ応答メッセージ３９０を「要求する」。ＳＡＴＡトランシーバ３５０において受信されると、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ（「ＩＤＥＮＴ」）受信表示信号３５２がトリガされ、非ＳＡＴＡ応答メッセージ３９０の部分の挿置を開始する。
【００２０】
図４は、本発明の特定の実施形態による、隠し通信チャネルのためのダウンリンクを確立するためのＳＡＴＡダウンリンク・レシーバの機能を示す機能図４００である。特に、ＳＡＴＡダウンリンク・レシーバ（「Ｒｘ」）４１０は、ＳＡＴＡリンクから非ＳＡＴＡメッセージを獲得することによって、ホスト・コンピューティング装置からＳＡＴＡトランシーバ（図示せず）への単方向リンクを形成する。示される例において、ＳＡＴＡダウンリンク・レシーバ４１０は、ＳＡＴＡパケットを「盗聴」し、ＳＡＴＡパケット４０２ａ−４０２ｎの各々について、コマンド・フィールド４０４内のＲＥＡＤ（「ＲＤ」）コマンドを検知する。この例において、ＳＡＴＡ  ＦＩＳは、記憶装置のような１つ又はそれ以上の下流装置に完全な状態で（すなわち、プロトコル準拠メッセージを修正することなく）送られる。次いで、ＳＡＴＡダウンリンク・レシーバ４１０は、ホスト・コンピューティング装置（図示せず）からそれらの宛先（すなわち、記憶装置）へのＳＡＴＡパケット４０２ａ−４０２ｎの転送に影響を与えることなく、例えば、メッセージ・フィールド４０５内の部分４０６ａ−４０６ｎから非ＳＡＴＡメッセージの部分を獲得する（すなわち、取り込む又はコピーする）。１つの実施形態において、メッセージ・フィールド４０５は、データを読み取るディスク上の領域を指定する論理ブロック・アドレス（「ＬＢＡ」）である。メッセージ・フィールド４０５は、ＳＡＴＡ仕様によってサポートされる種々のサイズの論理ブロック・アドレスを含むことができることに留意されたい。
【００２１】
一例において、メッセージ・フィールド４０５は、４８ビットのＬＢＡを含み、２バイト（すなわち、１６ビット）が、非ＳＡＴＡメッセージの５１２バイトのメッセージ本体の部分を指定するために用いられている。メッセージ・フィールド４０５からの別の単一バイト（すなわち、８ビット）は、２バイトをメッセージ構成バッファ４２０内に配置するために、０から２５５までのオフセットを指定することができる。１つの実施形態において、ＳＡＴＡダウンリンク４１０は、１６ビットを、ＳＡＴＡパケット４０２ａ−４０２ｎのいずれかからの部分４１２内のデータ４１４として識別するように作動する。ＳＡＴＡダウンリンク４１０はまた、８ビットの部分４１２を関連したオフセット４１６としても識別する。したがって、ホスト・コンピューティング装置（図示せず）は、各々のＲＥＡＤコマンドが記憶装置システムの下流に伝送される際に、非ＳＡＴＡメッセージの小片（すなわち、１バイト又は２バイト）を送ることによって、何らかの任意の非ＳＡＴＡメッセージをＳＡＴＡダウンリンク・レシーバ４１０に伝達することができる。特に、非ＳＡＴＡメッセージを論理ブロック・アドレスすなわちＬＢＡにコード化することができる。例証のために、ＳＡＴＡダウンリンク・レシーバ４１０が、部分４０６ｃを部分４１２として獲得すると考える。さらに、オフセット４１６が「２」であると考える。したがって、ＳＡＴＡダウンリンク・レシーバ４１０は、メッセージ構成バッファ４２０の位置４２２に、データ４１４を置く。ＳＡＴＡダウンリンク・レシーバ４１０は、非ＳＡＴＡメッセージを構成するために何らかの順番でオフセットを使用することによって、メッセージ構成バッファ４２０を読み込むことができるが、１つの実施形態においては、構成バッファの最後のバイトが書き込まれる度に非ＳＡＴＡメッセージが形成される。
【００２２】
メッセージ構成バッファ４２０が一杯になった後（さもなければ、他の何らかの基準を満たした後）、ＳＡＴＡダウンリンク・レシーバ４１０は、４２４においてバッファを構文解析し、非ＳＡＴＡメッセージ４３０及び任意の検証値（「ＣＲＣ」）４３２を認識する。転送中、他のＳＡＴＡパケットからのＲＥＡＤコマンドが、ＳＡＴＡパケット４０２ａ−４０２ｎと混ざり合うことがあるので、ホストからのＲＥＡＤ要求のランダム・シーケンスが、うっかりと実行可能であるが不適切な非ＳＡＴＡメッセージ４３０を生成することがある。実行時に非ＳＡＴＡメッセージ４３０がディスクを破損することがあるが、こうしたメッセージが、あまり破滅的でない結果を引き起こすこともある。例えば、実行時に不適切なメッセージが、誤った記憶装置構成を生成するか、又は不良ポリシーを設定するといった不適切な動作を実行することがある。非ＳＡＴＡメッセージ検証ユニット４４０は、不適切な非ＳＡＴＡメッセージを無効にするように作動する。示される例において、検証値４３２は、伝送前にホストにおいて巡回冗長検査（「Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ、ＣＲＣ」）アルゴリズムによって生成されたＣＲＣ値である。検証値４３２のようなＣＲＣ値は、メッセージ４３０の完全性を検証し、不適切な非ＳＡＴＡメッセージが用いられていないことを保証する。非ＳＡＴＡメッセージ検証ユニット４４０は、非ＳＡＴＡメッセージ４３０からのＣＲＣを計算し、結果をＣＲＣ４３２と比較するように作動し、２つの間の合致が有効に送信されたメッセージ４３０を示す。特定の実施形態においては、３２ビットのＣＲＣが用いられ、ＲＥＡＤ要求のランダムな組が、間違っているが外観上有効なパケットを生み出す可能性を、特定の用途には不可能だと考えられるくらい十分に起こり得なくなるまで低減させる。
【００２３】
別の実施形態においては、チャレンジ・レスポンス方式の技術を用いることによって、不適切な有効メッセージを生み出すＲＥＡＤ要求のシーケンスを意図せず作成する可能性を低減させることができる。この場合、ＳＡＴＡダウンリンク・レシーバ４１０は、チャレンジ・アップリンク（図示せず）を含む。ＳＡＴＡダウンリンク・レシーバ４１０が有効な非ＳＡＴＡメッセージ４３０を形成するとき、ＳＡＴＡダウンリンク・レシーバ４１０は、図３のもののような非ＳＡＴＡ応答メッセージ内にチャレンジ・トークンを配置し、非ＳＡＴＡメッセージ４３０の受信が成功したことを示す。次いで、ホストは、チャレンジ・トークンへの既知の応答を用いて、別の非ＳＡＴＡメッセージ４３０に応答し、これにより元の非ＳＡＴＡメッセージ４３０が検証される。
【００２４】
幾つかの用途において、ＣＲＣ４２０を計算することが、望ましくない量の時間を消費する可能性があることに留意されたい。１つの実施形態において、非ＳＡＴＡメッセージ４３０は、非ＳＡＴＡメッセージ検証ユニット４４０による検知のための特別の署名を含む。正確な署名の値が存在しない場合には、ＣＲＣ４３２を計算する必要はなく、よって他の場合には無効なメッセージについてＣＲＣを計算するのに用いられる時間を節約する。少なくとも１つの実施形態において、受信するＲＥＡＤ要求が非ＳＡＴＡメッセージ４３０を上書きしないように、非ＳＡＴＡメッセージ４３０の処理の間、メッセージ構成バッファ４２０がロックされることに留意されたい。非ＳＡＴＡメッセージ本体が処理されると、新しいメッセージを既知の状態から構成できるように、メッセージ構成バッファ４２０が消去される。代替的な実施形態において、メッセージ構成バッファ４２０は、各々が類似した構造及び／又は機能を有する幾つもの数のメッセージ構成バッファ４２０（図示せず）を含むキューを含む。メッセージ構成バッファ４２０の１つが有効メッセージで一杯になったとき、別のメッセージ構成バッファ４２０が満たされる間、これを処理することができる。キューの深さは用途特有のものであり、未完了メッセージの最大数を決定する。例えば、１つ又は２つのこうしたバッファのキューの深さは、多くの場合、記憶関連用途には十分なものである。
【００２５】
図５は、本発明の特定の実施形態による、隠し通信チャネルのためのアップリンクを確立するためのＳＡＴＡアップリンク・トランスミッタの機能を示す機能図５００である。特に、ＳＡＴＡアップリンク・トランスミッタ（「Ｔｘ」）５５０は、非ＳＡＴＡメッセージをＳＡＴＡリンク５０２内に挿入することによって、ＳＡＴＡアップリンク・トランスミッタ５５０（及び／又は記憶装置）からホスト・コンピューティング装置までの単方向リンクを形成する。示される例において、ＳＡＴＡアップリンク・トランスミッタ５５０は、非ＳＡＴＡ応答メッセージを非同期式に伝送しない。寧ろ、ＳＡＴＡアップリンク・トランスミッタ５５０のアップリンク挿入装置５５２は、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンド表示信号５３０の受信に応答して、非ＳＡＴＡ応答メッセージ（又はその部分）を挿入する。この信号は、対象となる非ＳＡＴＡ応答メッセージの形成を引き起こす以前のＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドに続くＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドの受信に応答することに留意されたい。１つの実施形態においては、ＳＡＴＡトランシーバ又はＳＡＴＡダウンリンク・レシーバのいずれかにおける論理が、信号５３０を生成することができる。応答（すなわち、非ＳＡＴＡ応答メッセージ）を受信するために、ホストは、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドを含むＳＡＴＡメッセージを生成し、これが、通常、記憶装置のようなエンドポイント装置の性質及び能力を照会するために用いられる。ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドへの応答は、メッセージをホストに伝播する前に非ＳＡＴＡ応答メッセージ（又はその部分）を含ませるように修正された（又は合成された）ＳＡＴＡ応答メッセージ（「プロトコル準拠メッセージ」）５０４である。
【００２６】
作動において、ＳＡＴＡトランシーバは、非ＳＡＴＡ応答メッセージ（又はその部分）５３２を用いて多数のメッセージ応答バッファ５５４の１つをロードする。しかしながら、ＳＡＴＡアップリンク・トランスミッタは、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドの受信と同期であるので、非ＳＡＴＡ応答メッセージは、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドが受信されるまでバッファ内に留まる。受信されると、アップリンク挿入装置５５２は、メッセージ応答バッファ５５４内にある次の非ＳＡＴＡ応答メッセージを取り出す。１つの実施形態においては、メッセージ応答バッファ５５４において、「上部」バッファ及び「下部」バッファが指定され、アップリンク挿入装置５５２は、「ラウンドロビン」方式で（すなわち、上部から下部に、再び上部に戻る）バッファからデータを取り出す。このように、ホストは、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドを有するＳＡＴＡパケットを繰り返し送ることによって、非ＳＡＴＡ応答メッセージ又はその一部の完全な補数を（ＳＡＴＡメッセージ５０４内の状態情報と共に）集めることができる。特定の実施形態において、アップリンク挿入装置５５２は、非ＳＡＴＡ応答メッセージ又はその部分を、ＳＡＴＡパケット５１０の利用可能フィールド５１２内に挿入する。ＳＡＴＡパケット５１０は、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドの実行に続くＳＡＴＡ応答メッセージを構成することができる。利用可能フィールド５１２は、ベンダー特有フィールド・データ５２０を含ませるためのフィールドとすることができ、状態情報及び非ＳＡＴＡ応答メッセージ（又はその部分）５２８を含むことができる。応答メッセージ内に含ませることができる情報の例は、ソース・アドレス（「Ｓｒｃ  Ａｄｄｒｅｓｓ」）５２２、長さ５２４、シーケンス番号（「Ｎｏ．」）５２６、及びベンダー特有フィールド・データ５２０が含む他のタイプの情報、改訂情報、環境データ（例えば、記憶装置の周囲温度）、仮想ドライブ構成、物理的ドライブ構成、性能統計値、隠しチャネル上で通信する下流装置からの応答メッセージ等のような他の状態情報を含むことができる。特定の実施形態において、ＳＡＴＡパケット５１０は、５１２バイトのパケットであり、利用可能フィールド５１２は、一般に、ベンダー特有情報のために取っておかれる６２バイトのフィールドである。１つの実施形態においては、ベンダー特有フィールド・データ５２０は、強化された格納関連機能及び／又はホストの下流の仮想化を容易にするために用いられる「ステータス・ページ」と呼ばれる。
【００２７】
図６は、本発明の少なくとも１つの特定の実施形態による、Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（「ＳＡＴＡ」）準拠の記憶装置システムのために強化された格納関連機能を実行する、強化されたポート・マルチプライヤのブロック図６００である。概念的には、ＳＡＴＡトランシーバ６３２は、ホスト・コンピューティング装置６０２のホスト・バス・アダプタ（「ＨＢＡ」）６０４と強化されたポート・マルチプライヤ６３０が記憶装置のシステム（「記憶装置システム」）６２０内に常駐する任意のポイントとの間のＳＡＴＡ準拠リンク６０８を介して、非ＳＡＴＡメッセージ（「非ＳＡＴＡ  Ｍｓｇ．」）６１０を伝達するための隠し通信チャネル６０６を確立する。非ＳＡＴＡメッセージ６１０は、ＳＡＴＡの機能を「補足」又は増強する非準拠メッセージである。非準拠メッセージとは、ＳＡＴＡプロトコルによって定義されていないメッセージである。幾つかの実施形態において、ホスト・バス・アダプタ６０４は、ホスト・コンピューティング装置の内部バスと、１つ又はそれ以上の記憶装置と関連付けられたバス又はリンクとの間のデータ転送を適合させるための何らかの入力／出力（「Ｉ／Ｏ」）装置とすることができる。
【００２８】
強化されたポート・マルチプライヤ６３０は、ホスト・コンピューティング装置６０２の１つのＳＡＴＡポートが、多数のＳＡＴＡドライブに接続するのを可能にするファン・アウト装置であるポート・マルチプライヤ６３１を含む。強化されたポート・マルチプライヤ６３０は、記憶装置６５０及び６５２に対してトランスペアレントであり、これらの装置が、あたかもホスト・バス・アダプタ６０４に直接取り付けられているかのように機能することを可能にする。ポート・マルチプライヤ６３１の一般的な機能及び構造は周知であり、さらに説明する必要はない。強化されたポート・マルチプライヤ６３０はまた、ＳＡＴＡトランシーバ６３２、任意のＳＡＴＡコマンド・プロセッサ６３４、実行ユニット６３６、任意の仮想化ユニット６３８及び任意の暗号化装置／復号化装置６３９を含む。実行ユニットは、ＳＡＴＡトランシーバ６３２によって識別された非ＳＡＴＡコマンドを実行し、ＳＡＴＡ準拠の記憶装置システム６２０内の強化された格納関連機能を実行するように構成される。有利に、実行ユニット６３６は、システム・メモリ内の命令を実行し、記憶装置６５０及び６５２の仮想表現においてストライピング機能、ミラーリング機能、連結機能といった強化された格納関連機能を実行するための、ホスト・コンピューティング装置６０２による要件を無くす。
【００２９】
強化されたポート・マルチプライヤ６３０は、ＳＡＴＡ準拠記憶装置のシステム６２０の仮想表現を提供できる仮想化ユニット６３８を含むことができるので、ホスト・コンピューティング装置は、システム６２０の仮想表現と対話し、強化された格納関連機能を実行するように構成される。例えば、強化されたポート・マルチプライヤ６３０が、記憶装置６５０を連結し、システム６２０の仮想表現内の単一のハードドライブのように見えるようにする非ＳＡＴＡコマンドを実行すると考える。ホスト・コンピューティング装置が、仮想アドレスであるアドレスからデータを読み取るためにＲＥＡＤコマンドを送る場合、仮想化ユニット６３８及び／又は実行ユニットは、要求されたデータを検索するために、その仮想アドレスを、特定の記憶装置についての物理的アドレスにマッピングする。１つの実施形態において、強化されたポート・マルチプライヤ６３０は、その全体が引用によりここに組み入れられる「Ｓｍａｒｔ  Ｓｃａｌａｂｌｅ  Ｓｔｏｒａｇｅ  Ｓｗｉｔｃｈ  Ａｒｃｈｉｔｅｃｔｕｒｅ」という名称で２００５年８月２５日に出願され、出願番号第６０／７１１，８６３号を有する、米国仮特許出願に開示されるように（全体として又は部分的に）作動することができる。
【００３０】
１つの実施形態において、暗号化装置／復号化装置６３９は、周知の暗号化技術を実施し、隠し通信チャネル６０６上のデータ転送を保護するように構成される。例えば、暗号化装置／復号化装置６３９は、標準的な公開鍵の交換が最初に行われ、共通のセッション鍵が作成される公開鍵暗号化方式を実施することができる。次に、暗号化装置／復号化装置６３９は、セッション鍵を用いて、非ＳＡＴＡメッセージ（又はその部分）或いは非ＳＡＴＡメッセージと関連付けられたＳＡＴＡパケット全体のいずれかを暗号化及び復号化することができる。幾つかの実施形態において、強化されたポート・マルチプライヤ６３０は、単一チップの強化されたポート・マルチプライヤを生成するために形成される単一の基板６９０を含む。
【００３１】
種々の実施形態において、隠し通信チャネル６０６は、双方向チャネル又は単方向チャネルのいずれかであり、ここで単方向チャネルは、ホスト・コンピューティング装置６０２から強化されたポート・マルチプライヤ６３０までのダウンリンクか、又は強化されたポート・マルチプライヤ６３０からホスト・コンピューティング装置６０２までのアップリンクのいずれかとすることができる。アップリンクだけが存在するとき、フロー制御を必要としないことに留意されたい。強化されたポート・マルチプライヤ６３０は、ホストが要求を行う速度で、ホスト・コンピューティング装置６０２に応答する。ダウンリンクだけが存在するとき、ホスト・コンピューティング装置６０２は、潜在的に、強化されたポート・マルチプライヤ６３０が処理できるより速い速度でメッセージを送ることができる。したがって、ブラインド構成操作を実行するとき（すなわち、メッセージの送信がうまくいったかどうかに関してフィードバックが提供されないとき）、メッセージの一部の管理は困難である。したがって、強化されたポート・マルチプライヤ６３０は、維持することができる最大要求速度を選択的に定めることができ、ホスト・コンピューティング装置は、その要求を所定の速度で計量し、いずれも紛失しないことを保証することができる。アップリンク及びダウンリンクの両方が存在するとき、ホストとエージェントとの間の同期されたフロー制御を達成することができる。メッセージ本体の各々は、図５のフィールド５２６内にあるもののようなシーケンス番号を含むことができる。強化されたポート・マルチプライヤ６３０が非ＳＡＴＡメッセージを受け取り、実行するとき、該強化されたポート・マルチプライヤ６３０は、所定のシーケンス番号を有する非ＳＡＴＡメッセージについての処理の完了を報告するＳＡＴＡ応答メッセージを構成する。次いで、ホスト・コンピューティング装置は、非ＳＡＴＡメッセージが成功裏に実行された又はタイムアウトになったと判断するまで、次のＳＡＴＡ応答メッセージを読み取ることができる。タイムアウトになった場合、ホスト・コンピューティング装置６０２は、メッセージを再送信することができる。強化されたポート・マルチプライヤ６３０が、重複したシーケンス番号を有するＳＡＴＡメッセージを受け取った場合には、該強化されたポート・マルチプライヤ６３０は、非ＳＡＴＡ応答メッセージを単にドロップし（例えば、図５のフィールド５２８からドロップする）、図５のＳＡＴＡ応答メッセージ５１０内のものを示すことができる。
【００３２】
特定の実施形態においては、ＳＡＴＡコマンド・プロセッサ６３４が、強化されたポート・マルチプライヤ６３０を、多数の記憶装置６４０の間で多重化された別の強化されたポート・マルチプライヤ６４０と接続するために用いられる。したがって、強化されたポート・マルチプライヤ６３０及び６４０の両方並びに各自の記憶装置６５０及び６５２は、ホスト・コンピューティング装置６０２上の単一のポートを介してアクセス可能である。強化されたポート・マルチプライヤ６３０及び６４０の両方は、同じ「ＲＥＡＤ」コマンドをスヌープし、同じメッセージを構成するように構成することができるが、このことが各々に複製動作を行わせることがある。これは、同じ構成設定を強化されたポート・マルチプライヤの各々にダウンロードする場合のような幾つかの状況においては望ましいものである。しかしながら、強化されたポート・マルチプライヤ６３０及び６４０を異なるように構成することが望まれる。この状況に対処するために、メッセージ本体は、強化されたポート・マルチプライヤ６３０又は強化されたポート・マルチプライヤ６４０のいずれかを一意的に指定する識別子を含む。各々の強化されたポート・マルチプライヤは、メッセージを処理する前に、そのメッセージが識別子（又はブロードキャスト・インジケータ）を含むことを検証する。識別子は、ＳＡＴＡシリアル番号のような、何らかの情報の固有部分とすることができる。ＳＡＴＡ応答メッセージを用いて、強化されたポート・マルチプライヤの固有識別子、及び、他の下流の強化されたポート・マルチプライヤについての他の何らかの識別子を戻すことができる。有利に、メッセージ本体内に配置された識別子は、ホスト・コンピューティング装置６０２が、意図せずに未知の強化されたポート・マルチプライヤにメッセージを送信するのを防ぐ。
【００３３】
作動において、ＳＡＴＡコマンド・プロセッサ６３４は、何らかの強化されたポート・マルチプライヤ又は何らかの他の装置との間でメッセージを経路指定することができる。例えば、１つの強化されたポート・マルチプライヤが、別の強化されたポート・マルチプライヤについての有効メッセージを受信したと判断すると、その１つの強化されたポート・マルチプライヤは、メッセージを（適切な組のＲＥＡＤコマンドを用いて）全ての下流リンクに送ることができ、或いは経路指定テーブルを維持し、メッセージを１つの特定の下流リンクを通して下方に送ることができる。ＳＡＴＡコマンド・プロセッサ６３４は、それぞれのＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンド（又は他の匹敵するプロトコル準拠コマンド）を発行し、強化されたポート・マルチプライヤ６４０のような１つ又はそれ以上の下流装置が、応答メッセージを、ホスト・コンピューティング装置６０２のような要求者に送るように構成される。例えば、非ＳＡＴＡメッセージ６１０を強化されたポート・マルチプライヤ６４０に送り、非ＳＡＴＡメッセージ６１０を処理して強化された格納関連機能を実行するために、ホスト・コンピューティング装置６０２が多数のＲＥＡＤコマンド・ベースのＳＡＴＡパケットを発行したと考える。非ＳＡＴＡメッセージ６１０の処理は、記憶装置６５２のグループ内のいずれかの記憶装置と関連させることができる。次に、強化されたポート・マルチプライヤ６３０を介するホスト・コンピューティング装置６０２への伝送のために、強化されたポート・マルチプライヤ６４０が非ＳＡＴＡ応答メッセージを生成すると考える。これを行うために、ＳＡＴＡコマンド・プロセッサ６３４は、十分な数のＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドを発行し、非ＳＡＴＡ応答メッセージを、強化されたポート・マルチプライヤ６４０からＳＡＴＡトランシーバ６３２まで送信させる。次に、ホスト・コンピューティング装置６０２は、十分な数のＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドを発行し、非ＳＡＴＡ応答メッセージを、強化されたポート・マルチプライヤ６４０からホスト・コンピューティング装置６０２に送信させる。例えば、ＳＡＴＡトランシーバ６３２によって生成された非ＳＡＴＡ応答メッセージがホスト・コンピューティング装置６０２に送信された後、ＳＡＴＡトランシーバ６３２が、そのメッセージ応答バッファ内の非ＳＡＴＡ応答メッセージを受信できることに留意されたい。１つの実施形態において、ＳＡＴＡコマンド・プロセッサ６３４は、発行すべきＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドの数を決定するために、強化されたポート・マルチプライヤ６４０から受信したＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ応答のコンテンツを監視し、追跡するように構成され、非ＳＡＴＡ応答メッセージがＳＡＴＡトランシーバ６３２に運ばれることを保証する。例えば、マーカー・フラグを用いて、非ＳＡＴＡ応答メッセージの最初の部分及び／又は最後の部分を示すことができる。ホスト・コンピューティング装置６０２及びＳＡＴＡトランシーバ６３２は、協働して、あらゆる方法で多数のプロトコル準拠メッセージを実装し、非ＳＡＴＡ応答メッセージを、隠しセグメント６９９に沿って延びる隠��通信チャネル６０６に沿って送信することができることに留意されたい。
【００３４】
図７は、本発明の１つの実施形態による、隠し通信チャネルの終端をコンピューティング装置に確立するためのＳＡＴＡホスト・トランシーバを示す。ホスト・バス・アダプタ７０２は、強化されたポート・マルチプライヤ（図示せず）に常駐することができる、ＳＡＴＡトランシーバ７２０と共に隠し通信チャネルを確立するためのＳＡＴＡホスト・トランシーバ７０４を含む。ＳＡＴＡホスト・トランシーバ７０４は、ホスト・コンピューティング装置のオペレーティング・システム及びホスト・プロセッサ（図示せず）に対してトランスペアレントである。ＳＡＴＡホスト・トランシーバ７０４は、ＳＡＴＡトランシーバ７２０と同様の方法で作動するが、ＳＡＴＡホスト・トランシーバ７０４は、ホスト・アップリンク・レシーバ（「Ｒｘ」）７１０及びホスト・ダウンリンク・トランスミッタ（「Ｔｘ」）７１２を含む。ＳＡＴＡホスト・トランシーバ７０４はまた、例えば、ホスト・コンピューティング装置のオペレーティング・システム及び／又はアプリケーション・プログラムによる要求に応答して、隠し通信チャネルまでの非ＳＡＴＡメッセージの転送を開始するための非ＳＡＴＡメッセージ・コントローラ７１４も含む。１つの実施形態において、非ＳＡＴＡメッセージ・コントローラ７１４は、非ＳＡＴＡメッセージを部分に分割し、各々の部分を、ＳＡＴＡトランシーバ７２０による受信のためのオフセットと関連付けることができる。図７は、ホスト・バス・アダプタ７０２内に実装されたＳＡＴＡホスト・トランシーバ７０４を示すが、種々の実施形態においては、アプリケーション・プログラム内又はハードディスク・コントローラ・チップ内といったホスト・コンピューティング装置内のどこにでもＳＡＴＡホスト・トランシーバ７０４を実装できることに留意されたい。したがって、ソフトウェア又はハードウェアのいずれか、或いはそれらの組み合わせの中に、ＳＡＴＡホスト・トランシーバ７０４の構造及び／又は機能を実装することができる。同様に、ソフトウェア又はハードウェアのいずれか、又はその組み合わせの中にＳＡＴＡトランシーバ７２０を実装することができる。
【００３５】
ホスト・ダウンリンク・トランスミッタ７１２は、下流の記憶装置（図示せず）を変更しないコマンドを実施することによって、少なくともプロトコル準拠リンク７２２のダウンリンクを形成するように作動可能である。上述されたように、ＲＥＡＤコマンドは、ホスト・ダウンリンク・トランスミッタ７１２が、プロトコル準拠ＳＡＴＡパケット７３０を用いて非ＳＡＴＡメッセージを送信するために用い得るような１つのコマンドである。特に、ホスト・ダウンリンク・トランスミッタ７１２は、非ＳＡＴＡメッセージ（又はその部分）を、ＲＥＡＤコマンド７４０を含むＳＡＴＡパケット７３０のアドレス・フィールド内に挿入するように作動する。１つの実施形態において、ホスト・ダウンリンク・トランスミッタ７１２は、非ＳＡＴＡメッセージの部分及びオフセットを、ＳＡＴＡパケット７３０のＬＢＡ（図示せず）内に挿入する。ＬＢＡは、あらゆる一般的なアプリケーション・プログラムが使用できるフィールドである。ＲＥＡＤコマンド自体は非破壊的であるので、非ＳＡＴＡメッセージを運ぶＳＡＴＡパケット７３０のコンテンツは、記憶装置のコンテンツに影響を与えない。
【００３６】
ホスト・ダウンリンク・トランスミッタ７１２は、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ（「ＩＤＥＮＴ」）コマンド７５０を生成するように作動することもできるので、ホスト・アップリンク・レシーバ（「Ｒｘ」）７１０は、強化されたポート・マルチプライヤ又は任意の下流装置内に配置することができるＳＡＴＡトランシーバ７２０から、ＳＡＴＡ応答メッセージを受け取ることができる。上述されたように、ＳＡＴＡ応答メッセージは、非ＳＡＴＡメッセージ（又はその部分）を含むように、ＳＡＴＡトランシーバ７２０のアップリンク挿入装置（図示せず）によって修正される（又は合成される）。ホスト・アップリンク・レシーバ７１０はまた、強化されたポート・マルチプライヤ又は下流装置から送られた非ＳＡＴＡ応答メッセージを蓄積し、再形成するために、図４のメッセージ構成バッファ４２０に類似した構造及び／又は機能を含むこともできる。
【００３７】
種々の実施形態において、ホスト・ダウンリンク・トランスミッタ７１２は、隠し通信チャネル７２２を確立するために、ＲＥＡＤコマンド７４０及びＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンド７５０の代わりに他のタイプのＳＡＴＡコマンドを実施することができる。例えば、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンド７５０の代わりに、ＲＥＡＤコマンド７５２、又はより具体的には、ＲＥＡＤコマンドへのＳＡＴＡ応答を用いることができる。次に、ＳＡＴＡトランシーバ７２０のアップリンク・トランスミッタ（図示せず）は、ＲＥＡＤ応答メッセージを検知し、ホスト・アップリンク・レシーバ７１０による受信のために非ＳＡＴＡメッセージをデータ・ストリーム内に挿入するように構成される。ターゲットから非ＳＡＴＡ応答メッセージを要求するために用いられるＳＡＴＡ  ＲＥＡＤコマンドは、「通常の」ＳＡＴＡコマンドと区別することができる。幾つかの実施形態において用いられる技術は、下記に説明される「高ＬＢＡ」技術である。さらに、他のＳＡＴＡコマンドが、ディスク上のデータの破壊を避けるための安全装置を必要とすることがある。例えば、ホスト・ダウンリンク・トランスミッタ７１２は、ディスク・ロックなどの十分な安全装置が適所にある限り、非ＳＡＴＡメッセージをダウンリンクに沿って伝達するように、ＷＲＩＴＥコマンド７４２をＲＥＡＤコマンドの代替物として実装することができる。このようなロックは、ＷＲＩＴＥコマンド７４２の、記憶装置への不注意による書き込みを引き起こし得る記憶装置による誤配向又は誤解釈を防止する。次に、ＲＥＡＤコマンドを使用するのと同じ方法でＷＲＩＴＥコマンド７４２を使用することができる。つまり、強化されたポート・マルチプライヤ又は下流装置は、ＬＢＡを盗聴し、非ＳＡＴＡメッセージ・データを獲得することができる。
【００３８】
ＷＲＩＴＥコマンドを種々の方法で用いることができる。例えば、ＷＲＩＴＥコマンド７４２が記憶装置によってサポートされる範囲を超えたアドレスを有した状態で送られる「高ＬＢＡ」技術に従って、ＷＲＩＴＥコマンド７４２を用いることができる。この場合、ＳＡＴＡトランシーバ７２０又は下流装置は、盗聴を行い、ディスクの末端を超えた何らかの高アドレスを検知することができる。そのアドレスは、記憶装置によって「無効」と見なされるが、ＷＲＩＴＥコマンドに付随するデータは、ペイロード又は非ＳＡＴＡメッセージの部分を構成することができる。しかしながら、全てのホストがこれらのタイプのコマンドをドライブに送るわけではないので、このタイプのコマンドを送るために、ホスト・コンピューティング装置の修正が必要である。したがって、１つの実施形態によると、ホスト・コンピューティング装置は、高ＬＢＡを含むＳＡＴＡパケットを送るように構成することができる。別の例においては、ＷＲＩＴＥコマンド７４２が、偽の又は架空の記憶装置に送られる「存在しないターゲット」技術に従って、ＷＲＩＴＥコマンド７４２を用いることができる。次に、ＳＡＴＡトランシーバ７２０又は他の何らかの装置がパケットを盗聴し、架空のドライブであることが知られているそれらのディスクドライブ識別子を検知する。しかしながら、偽のドライブは、エンドユーザには普通のドライブのように見えるので、ホスト・コンピューティング装置は、架空のドライブを隠す必要がある。１つの実施形態においては、ホスト・コンピューティング装置は、エンドユーザから架空のドライブを隠すように作動する。
【００３９】
図８は、本発明の１つ又はそれ以上の実施形態による、ＳＡＴＡパケットのイニシエータ又はターゲットのいずれか一方又は両方として作動するためのデュアル・モードＳＡＴＡトランシーバを示すブロック図である。第１のモードにおいて、デュアル・モードＳＡＴＡトランシーバ８００は、ＳＡＴＡパケットのデータ・ストリームをターゲットに送るためのＳＡＴＡイニシエータとして作動するように構成される。ターゲットは、別のＳＡＴＡトランシーバ又は記憶装置のような何らかのＳＡＴＡ準拠装置とすることができる。ターゲットは、通常、デュアル・モードＳＡＴＡトランシーバ８００の下流に配置される。第２のモードにおいて、デュアル・モードＳＡＴＡトランシーバ８００は、イニシエータからＳＡＴＡパケットを受け取るためのＳＡＴＡターゲットとして作動するように構成される。イニシエータは、別のＳＡＴＡトランシーバ又はＳＡＴＡオリジネータ（図示せず）とすることができる。ここで用いられる「ＳＡＴＡオリジネータ」という用語は、一般に、ホスト・コンピューティング装置、又はデュアル・モードＳＡＴＡトランシーバ８００の上流に配置された他の何らかの装置を指す。
【００４０】
デュアル・モードＳＡＴＡトランシーバ８００は、メッセージ・ポート８６０を介して、それぞれ非ＳＡＴＡメッセージ８２０及び非ＳＡＴＡメッセージ８２２を実行ユニット（図示せず）又は非ＳＡＴＡメッセージの任意の消費者／生産者と通信するためのＳＡＴＡダウンリンク・レシーバ（「Ｒｘ」）８１０及びＳＡＴＡアップリンク・トランスミッタ（「Ｔｘ」）８１４を含む。さらに、デュアル・モードＳＡＴＡトランシーバ８００は、種々の特定用途向け機能を実行することができるＳＡＴＡコマンド・プロセッサ８１２を含むことができる。少なくとも１つの実施形態において、ＳＡＴＡコマンド・プロセッサ８１２は、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンド・ベースのメッセージを生成し、それらをＳＡＴＡ準拠ターゲットに送信してＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンド・ベースのメッセージに対する応答を求めるように構成される。これらの応答は、通常、非ＳＡＴＡ応答メッセージを含むことができる。上流への伝送のために、ＳＡＴＡターゲットから受信したＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ応答のコンテンツを監視し、追跡するために、フィードバック信号８２１がＳＡＴＡコマンド・プロセッサ８１２内に供給される。このことは、ＳＡＴＡコマンド・プロセッサ８１２が、非ＳＡＴＡ応答メッセージを受信するために、適切な組のＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドの発行を決定するのを助ける。
【００４１】
ＳＡＴＡコマンド・プロセッサ８１２は、以下に説明される特定用途向け機能のような他の機能を実行することもできる。デュアル・モードＳＡＴＡトランシーバ８００が強化されたポート・マルチプライヤの一部である場合には、ＳＡＴＡコマンド・プロセッサ８１２は、ＳＡＴＡコマンドを仮想ターゲットから物理的ターゲットにマッピングするように構成することかできる。説明のために、仮想ターゲットが、２つの物理的ターゲットの仮想表現をミラー・セットの形で提供すると考える。この場合、ＳＡＴＡコマンド・プロセッサ８１２が書き込みコマンドを受信したとき、ＳＡＴＡコマンド・プロセッサ８１２は、そのコマンドを両方の物理的装置に複製する。しかしながら、仮想ターゲットが３つの物理的ターゲットの連結を表す場合には、ＳＡＴＡコマンド・プロセッサ８１２は、アドレス及び長さに基づいて、特定のＳＡＴＡコマンドによって参照される適切な物理ターゲットを選択することができる。ＳＡＴＡコマンド・プロセッサ８１２は、この選択に続いて、修正されたコマンドを物理的ターゲットに発行する。
【００４２】
ＳＡＴＡコマンド・プロセッサ８１２が単純なポート・マルチプレクサの一部である１つの例を考える。この場合、Ｓｅｒｉａｌ  ＡＴＡ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎにより維持されているＳＡＴＡ  Ｐｏｒｔ  Ｍｕｌｔｉｐｌｉｅｒ仕様に定められるように、ＳＡＴＡコマンド・プロセッサ８１２は、ＳＡＴＡアドレス指定ビットに基づいて特定の物理的ターゲットを選択し、コマンドを適切なターゲットに送ることができる。別の例においては、ＳＡＴＡコマンド・プロセッサ８１２が、隠しチャネル全体にわたって指定されたパターンに基づいてＳＡＴＡトラフィックを記録するＳＡＴＡ分析装置の一部であると考える。したがって、ＳＡＴＡコマンド・プロセッサ８１２は、解釈することなく（すなわち、処理することなく）、単にＳＡＴＡコマンドを、適切な物理的ターゲットまで下流に送るように作動することができる。さらに別の例において、ＳＡＴＡコマンド・プロセッサ８１２が、強化されたディスク・コントローラの一部であると考える。この場合、ＳＡＴＡコマンド・プロセッサ８１２は、ＳＡＴＡコマンドを解釈し、ターゲット・インターフェース８３０と対話し、（例えば、ヘッドを動かして、ＳＡＴＡコマンドにおいて指定された物理的媒体上の位置にアクセスすることによって）特定のターゲット装置を直接操作することができる。
【００４３】
デュアル・モードＳＡＴＡトランシーバ８００はまた、ＳＡＴＡレシーバ物理層インターフェース（「ＳＡＴＡ  ＲＸ  ＰＨＹ」）８１３及びＳＡＴＡトランシーバ物理層インターフェース（「ＳＡＴＡ  ＴＸ  ＰＨＹ」）８１５も含み、その両方が、ＳＡＴＡダウンリンク・レシーバ８１０及びＳＡＴＡアップリンク・トランスミッタ８１４を接続し、ＳＡＴＡメッセージをＳＡＴＡリンク（「上流ＳＡＴＡリンク」）の上流部分８０２ａと交換するために用いられる。具体的には、ＳＡＴＡレシーバ物理層インターフェース８１３は、ＳＡＴＡリンクの上流部分８０２ａと接続して、ＳＡＴＡイニシエータ（図示せず）から信号８０１を受け取り、一方、ＳＡＴＡトランシーバ物理層インターフェース８１５は、ＳＡＴＡリンク８０２ａと接続して、ＳＡＴＡ準拠物理信号８０３をＳＡＴＡイニシエータに伝送する。別の対のＳＡＴＡレシーバ物理層インターフェース８１３及びＳＡＴＡトランシーバ物理層インターフェース８１５は、ターゲット・ポート８７０を介して、ＳＡＴＡ準拠信号８０７をターゲットに送り、ターゲットからＳＡＴＡ準拠信号８０５を受け取るＳＡＴＡリンクの下流部分（「下流ＳＡＴＡリンク」）８０２ｂと接続できることに留意されたい。
【００４４】
さらに、デュアル・モードＳＡＴＡトランシーバ８００は、マルチプレクサ８１７及び８１９を含む。デュアル・モードＳＡＴＡトランシーバ８００との間に他の介在するＳＡＴＡトランシーバが存在しない場合には、マルチプレクサ８１７は、ホスト物理層インターフェース（「ＰＨＹ」）８１１と、ＳＡＴＡダウンリンク・レシーバ８１０、ＳＡＴＡコマンド・プロセッサ８１２及びＳＡＴＡアップリンク・トランスミッタ８１４のいずれかとの間の破線で示されるような経路に沿って、ＳＡＴＡパケット（又はＦＩＳ）を交換するように作動することができる。或いは、マルチプレクサ８１７は、ホストとデュアル・モードＳＡＴＡトランシーバ８００との間に介在する上流ＳＡＴＡイニシエータが存在する場合には、ＳＡＴＡレシーバ８１３及びＳＡＴＡトランシーバ物理層インターフェース８１５の両方と、ＳＡＴＡダウンリンク・レシーバ８１０、ＳＡＴＡコマンド・プロセッサ８１２及びＳＡＴＡアップリンク・トランスミッタ８１４のいずれかとの間の実線で示されたような経路に沿って、ＳＡＴＡパケット（又はＦＩＳ）を交換するように作動することができる。これらの場合、デュアル・モードＳＡＴＡトランシーバ８００は、ＳＡＴＡターゲットとして第２のモードで作動する。
【００４５】
マルチプレクサ８１９は、デュアル・モードＳＡＴＡトランシーバ８００が、第１のモードでＳＡＴＡイニシエータとして作動することを可能にするように、同様の方法で作動する。例えば、マルチプレクサ８１９は、破線として示された経路に沿って、ターゲット物理層インターフェース（「ＰＨＹ」）８３２を介して、ＳＡＴＡパケット（又はＦＩＳ）を交換するように作動することができる。デュアル・モードＳＡＴＡトランシーバ８００とターゲット装置（図示せず）との間に他の介在するＳＡＴＡターゲットが存在しない場合には、これらの経路は、ターゲット装置（図示せず）と、ＳＡＴＡダウンリンク・レシーバ８１０、ＳＡＴＡコマンド・プロセッサ８１２及びＳＡＴＡアップリンク・トランスミッタ８１４のいずれかとの間に延びる。ホスト物理層インターフェース８１１が、ＰＣＩ  Ｅｘｐｒｅｓｓのようなバス・プロトコルと通信し、ＳＡＴＡパケット内の情報を、ホスト・プロセッサ／オペレーション・システム（図示せず）と交換するように構成される。ターゲット物理層インターフェース８３２は、ＳＡＴＡパケット内の情報を、記憶装置のような特定のターゲットと交換するように構成される。
【００４６】
デュアル・モードＳＡＴＡトランシーバ８００は、ＳＡＴＡイニシエータとして第１のモードで作動するためのターゲット・インターフェース８３０を含む。場合によっては、ターゲット・インターフェース８３０は、エンド・ターゲット装置から非ＳＡＴＡ応答メッセージを受け取り、次に、上流への再送信のためにそれらをＳＡＴＡアップリンク・トランスミッタ８１４に送るように、ターゲット物理層インターフェース８３２を構成する。ここで用いられる「エンド・ターゲット」という用語は、幾つかの実施形態においては、イニシエータ・ターゲット階層内の最も低いレベルに常駐するターゲットを記述するために用いられる。この最も低いレベルに、ターゲット記憶装置又は他の同様のＳＡＴＡ準拠デバイスが常駐する。ターゲット・インターフェース８３０は、実行ユニット（図示せず）から非ＳＡＴＡメッセージ８２５を受信し、ターゲット装置を制御するための制御信号８２３を生成するように構成される。例えば、制御信号８２３は、ハードドライブ・コントローラのファームウェア・バージョンをアップグレードすることができ、又は格納関連ポリシーを変更することができる。
【００４７】
少なくとも１つの実施形態において、デュアル・モードＳＡＴＡトランシーバ８００は、ホスト・バス・インターフェース上のコマンドに応答して、非ＳＡＴＡメッセージの生成を制御するためのメッセージ・コントローラ８８０を含む。メッセージ・コントローラ８８０を実装するための好適なメッセージ・コントローラは、図７に示される類似した名称のコンポーネント（すなわち、非ＳＡＴＡメッセージ・コントローラ７１４）のものである。幾つかの実施形態において、デュアル・モードＳＡＴＡトランシーバ８００は、多数のターゲット・ドライブの仮想化をサポートすることができるデュアル・モードのＳＡＴＡトランシーバ・コントローラ８８２を含む。例えば、デュアル・モードのＳＡＴＡトランシーバ・コントローラ８８２は、仮想ターゲットを１つ又はそれ以上の物理的ターゲットにリンクするマッピング・テーブルを維持することができる。
【００４８】
図９は、本発明の実施形態による、イニシエータ・ターゲット階層内のデュアル・モードＳＡＴＡトランシーバの例示的な実装を示すブロック図９００である。ここでは、（イニシエータとしての）ＳＡＴＡオリジネータ９０２が、（ターゲットとしての）強化されたポート・マルチプライヤ９１０に結合される。少なくとも１つの実施形態によると、ＳＡＴＡオリジネータ９０２を実装するための好適なオリジネータは、図７のＳＡＴＡホスト・トランシーバ７０４である。さらに図９のイニシエータ・ターゲット構成を参照すると、強化されたポート・マルチプライヤ９１０及び強化されたポート・マルチプライヤ９１２は、それぞれターゲットが強化されたポート・マルチプライヤ９１２及びディスクドライブ９２０のためのイニシエータである。このように、隠し経路セグメント９５０は、ＳＡＴＡオリジネータ９０２とディスクドライブ９２０の間に延び、隠し通信チャネルを形成する。示されるように、強化されたポート・マルチプライヤ９１０及び９１２の各々は、ディスクドライブ９２０が有するように、デュアル・モード（「ＤＭ」）ＳＡＴＡトランシーバ８００を有する。ディスクドライブ９２０は、示される階層内の「エンド・ターゲット」と考えられる。しかしながら、両方の強化されたポート・マルチプライヤ９１０及び９１２内のデュアル・モードＳＡＴＡトランシーバ８００は、メッセージ・ポート８６０を介して、実行ユニット９１２に通信する。対照的に、ディスクドライブ９２０内のデュアル・モードＳＡＴＡトランシーバ８００は、ターゲット・ポート８７０を介して通信し、記憶装置レベルで通信する。図９に示される構成を用いて、ＳＡＴＡオリジネータ９０２は、隠し通信チャネルを介して、ディスクドライブ・コントローラ９２２によって用いられる専用の格納命令及びデータといった非ＳＡＴＡメッセージを、ディスクドライブ・コントローラ９２２等に送ることができる。１つの実施形態において、ディスクドライブ９２０内のデュアル・モードＳＡＴＡトランシーバ８００は、ディスクドライブ９２０の内部にり、場合によっては、ディスクドライブ・コントローラ９２２の一部として形成することができる。他の実施形態において、デュアル・モードＳＡＴＡトランシーバ８００は、単一チップの強化されたポート・マルチプライヤ又は単一チップのディスクドライブ・コントローラのいずれかの中に形成することができる。
【００４９】
本発明の完全な理解を提供するために、上記の説明は、説明のために特定の専門語を用いている。しかしながら、当業者には、本発明を実施するために特定の詳細を必要としないことが明らかであろう。実際には、本説明は、本発明の何らかの特徴又は態様をいずれかの実施形態に限定するように読まれるべきではなく、寧ろ、１つの実施形態の特徴及び態様は、他の実施形態と容易に置き換えることができる。種々の実施形態の上記の説明は、ＳＡＴＡプロトコル及び記憶装置に関連するが、本説明は、プロトコルが提供しない付加的な通信チャネルを必要とするいずれのタイプの通信プロトコルにも適用可能である。さらに、アップリンク及びダウンリンクを独立して用いることができ、各々を分離して用いることもできる。さらに、種々の実施形態は、アドレス及びベンダー特有のフィールドの使用を示すが、ＳＡＴＡプロトコルが、それらの他のフィールドの使用によって妨害されない（又は、わずかに妨害されるものの、プロトコルの違反はない）限り、他のいずれかのフィールドを用いることができる。
【００５０】
したがって、本発明の特定の実施形態の上記の説明は、図示及び説明目的のために提示される。これらは、網羅的であることを意図していず、本発明を、開示される精密な形態に制限することを意図するものでもなく、明らかに、上記の教示を考慮して、多数の修正及び変形が可能である。実施形態は、本発明の原理及びその実際の適用例を最良に説明するために選択され、述べられるものであり、これにより、当業者が、本発明及び種々の実施形態を、想定される特定の用途に適するような種々の修正と併せて最良に用いることを可能にする。特に、ここに述べられるあらゆる利点が、本発明の実施形態の各々によって実現される必要はなく、寧ろ、いずれかの特定の実施形態が、上述の利点の１つ又はそれ以上を提供することができる。上記の特許請求の範囲及びその均等物が本発明の範囲を定めることが意図される。
【符号の説明】
【００５１】
１０２：ホスト・コンピューティング装置
１０４：隠し通信チャネル
１０６：プロトコル準拠リンク
１１０：補足メッセージ
１２０：記憶装置・システム
１３０：通信装置
１３２：リンク・インターフェース
１３４：補足メッセージ・インターフェース
１４０：記憶装置
【図１】
0005581360.tif 000002
【図２】
0005581360.tif 000003
【図３】
0005581360.tif 000004
【図４】
0005581360.tif 000005
【図５】
0005581360.tif 000006
【図６】
0005581360.tif 000007
【図７】
0005581360.tif 000008
【図８】
0005581360.tif 000009
【図９】
0005581360.tif 000010