JP2013020635A - 記憶装置システムのための、プロトコル定義されたリンクにおいて補足メッセージを伝達するための隠しチャネル - Google Patents

記憶装置システムのための、プロトコル定義されたリンクにおいて補足メッセージを伝達するための隠しチャネル Download PDF

Info

Publication number
JP2013020635A
JP2013020635A JP2012207477A JP2012207477A JP2013020635A JP 2013020635 A JP2013020635 A JP 2013020635A JP 2012207477 A JP2012207477 A JP 2012207477A JP 2012207477 A JP2012207477 A JP 2012207477A JP 2013020635 A JP2013020635 A JP 2013020635A
Authority
JP
Japan
Prior art keywords
sata
message
command
enhanced
compliant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012207477A
Other languages
English (en)
Other versions
JP5581360B2 (ja
Inventor
Brian K Schmidt
ケイ シュミット ブライアン
James Gregory Hanko
グレゴリー ハンコ ジェイムズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Image Inc
Original Assignee
Silicon Image Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Image Inc filed Critical Silicon Image Inc
Publication of JP2013020635A publication Critical patent/JP2013020635A/ja
Application granted granted Critical
Publication of JP5581360B2 publication Critical patent/JP5581360B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/22Arrangements for supervision, monitoring or testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/24Testing correct operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】SATAプロトコルのような標準化されたプロトコルの欠点を最小にする通信装置、SATA通信装置、システム、強化されたポート・マルチプライヤ及び方法を提供すること。
【解決手段】特に、プロトコル準拠リンク内に隠し通信チャネルを確立するための通信装置、SATA通信装置、システム、強化されたポート・マルチプライヤ及び方法が開示される。1つの実施形態においては、通信装置は、リンク・インターフェース及び補足メッセージ・インターフェースを含む。リンク・インターフェースは、標準化されたプロトコルに従ってリンクを通過するデータ・ストリームにアクセスするために、通信装置をリンクに通信可能に結合するように構成される。補足メッセージ・インターフェースは、補足メッセージをデータ・ストリームと交換し、リンク内に隠し通信チャネルを確立するように構成される。
【選択図】図1

Description

本発明は、一般に、記憶装置に関し、より具体的には、記憶装置システムのために、Serial Advanced Technology Attachment(「SATA」)リンクのようなリンク内に隠し通信チャネルを確立するための装置に関する。
本出願は、代理人整理番号第SILI−013/00US号により2005年8月25日に出願された「Smart Scalable Storage Switch Architecture」という名称の米国仮特許出願第60/711,863号を、引用により組み入れるものである。
一般に、格納システムの設計者は、格納用製品の開発に必要とされる技術的知識及び資本的支出を最小にするために、少なくとも一部的に標準化された通信プロトコルを用いる。標準化された通信プロトコルはまた、性能及び品質のためのベンチマークを設定するための手段も提供する。しかしながら、標準化されたプロトコルによって改善点をサポートすることができない場合、厳しいプロトコル標準への厳守が、革新を遅らせる可能性がある。説明のために、Serial Advanced Technology Attachment(「SATA」)仕様が、1つ又はそれ以上の記憶装置(例えば、1つ又はそれ以上のハードディスク)との間のデータ転送を標準化するために開発されたと考える。SATA仕様は、ユーザに、強化された性能及び信頼性のみならず、記憶装置を容易にアップグレードするための技術も提供する。さらに、SATA仕様は、ポート・マルチプライヤの使用を定めるので、単一のSATAポートが多数のドライブと通信することが可能である。機能的なものではあるが、SATA仕様は、ホスト・コンピュータと、例えばポート・マルチプライヤのような記憶装置システム内の任意のポイントとの間に通信チャネルを確立し、SATA仕様によってサポートされていない格納関連の機能を実行するための柔軟性を提供するものではない。コマンドを記憶装置システムに転送し、格納関連機能を実行するための通信チャネルがない場合には、ホスト・コンピュータが、それらの格納関連機能を実行することが必要である。したがって、ホスト・コンピュータは、SATAがもたらす強化された性能又は信頼性機能から恩恵を受けない。
上記を鑑みて、SATAプロトコルのような標準化されたプロトコルの欠点を最小にする通信装置、SATA通信装置、システム、強化されたポート・マルチプライヤ及び方法を提供することが望ましい。
特に、プロトコル準拠リンク内に隠し通信チャネルを確立するための通信装置、SATA通信装置、システム、強化されたポート・マルチプライヤ及び方法が開示される。1つの実施形態においては、通信装置は、リンク・インターフェース及び補足メッセージ・インターフェースを含む。リンク・インターフェースは、標準化されたプロトコルに従ってリンクを通過するデータ・ストリームにアクセスするために、通信装置をリンクに通信可能に結合するように構成される。補足メッセージ・インターフェースは、補足メッセージをデータ・ストリームと交換し、リンク内に隠し通信チャネルを確立するように構成される。補足メッセージは、プロトコルに違反することなく、標準化されたプロトコルを補足する。
有利に、隠し通信チャネルは、プロトコル準拠リンク、及びホスト・コンピューティング装置及び任意の記憶装置を含むことができるエンドポイント装置間でプロトコル準拠メッセージを伝達する能力に影響を与えることなく又は妨害することなく、補足メッセージを伝達する。したがって、隠し通信チャネルを形成するために、プロトコル準拠装置の修正を必要としない。また、隠し通信チャネルは、有利に、記憶装置システムが、ホスト・コンピューティング装置以外において強化された格納関連機能を実行することを可能にする。このことは、ホスト・コンピューティング装置の計算リソースを保存するだけでなく、ホスト・コンピューティング装置が、強化された格納関連機能を実行するための専用プログラムを含む必要性も無くす。特に、強化された格納関連機能を実装するために、特別なオペレーティング・システム又は装置ドライバを必要としない(すなわち、標準的な一般用ユーザ・アプリケーションで十分である)。1つの実施形態において、補足メッセージは、補足コマンドを、ホスト・コンピューティング装置の下流にある任意のポイントに伝達し、ストライピング機能、ミラーリング機能、連結機能、エンクロージャ管理機能、ファームウェア・アップグレード機能、管理ポリシー機能、及び他の何らかの同様の格納関連機能のような強化された格納関連機能を実行することができる。
ホストと記憶装置との間のSATAリンクを介して非SATAメッセージを通信するためのSATA通信装置も開示される。SATA通信装置は、非SATAメッセージを、第1のSATA準拠コマンドと関連付けられたSATAメッセージから少なくとも検索するように構成されたSATAトランシーバを含む。SATAトランシーバはまた、非SATAメッセージを、第2のSATA準拠コマンドと関連付けられたSATAメッセージ内に挿入することもできる。1つの実施形態において、SATAトランシーバは、SATA準拠メッセージ内で非SATAメッセージをエンコードすることによって、非SATAメッセージを送信する。このように、SATAトランシーバは、SATA通信装置とホストとの間で非SATAメッセージを伝達するための隠し通信チャネルを形成するように作動する。有利に、隠し通信チャネルは、SATA仕様に違反することなく、少なくとも1つのSATA準拠メッセージを有するSATAリンクを介して、少なくとも1つの非SATAメッセージを同時に移送するように構成される。
SATA準拠記憶装置のシステムのための、強化された格納関連機能を実行する強化されたポート・マルチプライヤがさらに開示される。強化されたポート・マルチプライヤは、隠し通信チャネルを形成するように構成されたSATAトランシーバを含む。このチャネルは、強化されたポート・マルチプライヤとホストとの間で非SATAメッセージを伝達する。強化されたポート・マルチプライヤはまた、非SATAメッセージ内の非SATAコマンドを実行するように構成された非SATAメッセージ実行ユニットも含む。したがって、強化されたポート・マルチプライヤは、SATA準拠記憶装置のシステム内で強化された格納関連機能を実行することができる。種々の実施形態において、強化されたポート・マルチプライヤはまた、他の強化されたポート・マルチプライヤと通信することができるだけでなく、非SATAメッセージを暗号化することもできる。
本発明の少なくとも1つの特定の実施形態による、隠し通信チャネルを確立するための通信装置のブロック図である。 本発明の実施形態による、図1の補足メッセージ・インターフェースの特定の実施を示す図である。 本発明の実施形態による、SATA仕様に準拠したリンク内に隠し通信チャネルを確立するためのSerial Advanced Technology Attachment(「SATA」)トランシーバを示す図である。 本発明の特定の実施形態による、隠し通信チャネルのダウンリンクを確立するためのSATAダウンリンク・レシーバを示す機能図である。 本発明の特定の実施形態による、隠し通信チャネルのアップリンクを確立するためのSATAアップリンク・トランスミッタを示す機能図である。 本発明の少なくとも1つの特定の実施形態による、SATA準拠記憶装置システムのために強化された格納関連機能を実施する強化されたポート・マルチプライヤのブロック図である。 本発明の1つの実施形態による、コンピューティング装置において隠し通信チャネルの別の終端を確立するためのSATAホスト・トランシーバを示す。 本発明の1つ又はそれ以上の実施形態による、SATAパケットのイニシエータ又はターゲットのいずれか一方又は両方として作動するデュアル・モードSATAトランシーバを示すブロック図である。 本発明の実施形態による、イニシエータ・ターゲット階層におけるデュアル・モードSATAトランシーバの例示的な実装を示すブロック図である。
本発明は、添付の図面と共に次の詳細な説明と関連してより完全に理解される。
同様の参照符号は、図面の幾つかの図の全体にわたって対応する部品を指す。大部分の参照符号は、その参照符号を最初に導入する図を全体的に識別する1つ又は2つの左端の数字を含むことに留意されたい。
図1は、本発明の少なくとも1つの特定の実施形態による、隠し通信チャネルを確立するための通信装置のブロック図100である。概念的には、通信装置130は、ホスト・コンピューティング装置(「ホスト」)102のホスト・バス・アダプタ(図示せず)と記憶装置140のシステム120(「記憶装置システム」)内の任意のポイントとの間のプロトコル準拠リンク106を介して、補足メッセージ(「Supp.Msg.」)110を伝達するための隠し通信チャネル104を確立する。補足メッセージ110は、プロトコル準拠リンク106を支えるプロトコルによって定義されない非準拠メッセージである。例えば、補足メッセージ110は、プロトコルによって定義されないフォーマット、伝送モード、又は機能を持つことができる。したがって、補足メッセージ110は、特定のプロトコルを「補足」又は増強し、強化された機能を与える。したがって、ここで用いられる「隠し」という用語は、プロトコル準拠装置間で非準拠メッセージを転送するために、プロトコル準拠リンク106上に重畳された通信チャネルを指すことができる。
有利に、隠し通信チャネル104は、プロトコル準拠リンク106、並びにホスト・コンピューティング装置102及びいずれかの記憶装置140を含み得るエンドポイント装置間でプロトコル準拠メッセージを伝達できるその能力に悪影響を及ぼすことなく又はそれらを妨害することなく、補足メッセージ110を伝達する。したがって、隠し通信チャネル104を形成するために、プロトコル準拠装置の修正は必要ない。また、隠し通信チャネル104は、有利に、記憶装置システム120が、ホスト・コンピューティング装置102以外において強化された格納関連機能を実行することを可能にする。このことは、ホスト・コンピューティング装置102の計算リソースを保存するだけでなく、ホスト・コンピューティング装置102が、強化された格納関連機能を実行するための専用プログラムを含む必要性も無くす。特に、強化された格納関連機能を実装するために、特別なオペレーティング・システム又は装置ドライバを必要としない(すなわち、標準的な一般用ユーザ・アプリケーションで十分である)。1つの実施形態において、補足メッセージ110は、強化された格納関連機能を実行するために、補足コマンドを、ホスト・コンピューティング装置102の下流にある任意のポイントに伝達することができる。同じプロトコル又は異なるプロトコルを用いて、そのようなメッセージを付加的な装置に送ることができる。強化された格納関連機能の例は、ストライピング機能、ミラーリング機能、連結機能、エンクロージャ管理機能、ファームウェア・アップグレード機能、管理ポリシー機能、及び他の何らかの同様の格納関連機能を含む。
図1に示されるように、プロトコル準拠リンク106は、ホスト・コンピューティング装置102を記憶装置140に結合し、プロトコルによって定められる名目上の格納機能を実行する。記憶装置140の例は、1つ又はそれ以上のハードディスク・ドライブと、機械的手段、磁気的手段、電気的手段、又は光学的手段を用いてデータを格納するための何らかの媒体とを含む。ダイアグラム100は、隠し通信チャネル104の終端を形成する通信装置130を示す。通信装置130は、リンク・インターフェース(「L.I.」)132及び補足メッセージ・インターフェース134を含む。リンク・インターフェース132は、標準化プロトコルに従ってプロトコル準拠リンク106を通過するデータ・ストリームにアクセスするために、通信装置130をプロトコル準拠リンク106に通信可能に結合する。補足メッセージ・インターフェース134は、1つ又はそれ以上の補足メッセージ110をデータ・ストリームと交換し、プロトコル準拠リンク106内に隠し通信チャネル104を確立するように作動可能である。特に、隠し通信チャネル104は、プロトコル準拠リンク106が関連した標準化プロトコルに準拠したままの方法で、補足メッセージ110をデータ・ストリーム内に組み込む。1つの実施形態において、プロトコル準拠リンク106は、シリアル・リンクである。幾つかの実施形態においては、通信装置130をホスト・コンピューティング装置102のバックプレーン(図示せず)上に配置することができるが、本発明の他の実施形態によると、記憶装置140のシステム120内の任意の位置に、通信装置130を配置することができる。本発明の種々の実施形態においては、ホスト・コンピューティング装置102は、通信装置130とホスト・コンピューティング装置102との間に単方向のデータ・ストリーム又は双方向のデータ・ストリームのいずれかを形成するための別の補足メッセージ・インターフェース134(又はその均等物)を含む。
図2は、本発明の実施形態による、図1の補足メッセージ・インターフェース134の特定の実装を示すダイアグラム200である。ダイアグラム200は、補足メッセージ(又はその部分)をプロトコル準拠リンク206内のデータ・ストリーム207と交換するように構成されている補足メッセージ・インターフェース234を示す。この例証において、補足メッセージ・インターフェース234は、データ・ストリーム207を観察又は「盗聴」し、プロトコル準拠メッセージの部分208及び210に対して補足メッセージ部分209を識別するように作動可能である。次いで、補足メッセージ・インターフェース234は、補足メッセージ部分209を、識別された補足ダウンリンク・メッセージ220(又はその部分)として獲得することができる。補足メッセージ・インターフェース234はまた、プロトコル準拠メッセージ部分208と部分210との間に補足アップリンク・メッセージ222(又はその部分)を挿置し、補足メッセージ部分209を形成するようにも作動可能である。プロトコル準拠メッセージ部分208及び210は、同じプロトコル準拠メッセージとすることも又は異なるプロトコル準拠メッセージとすることもできることに留意されたい。種々の実施形態において、補足メッセージ・インターフェース234による補足メッセージの獲得は、プロトコル準拠リンク206に影響を及ぼさない。したがって、データ・ストリーム207は、プロトコル準拠リンク206の特定のプロトコルを変更することなく且つこれに違反することなく、メッセージ・インターフェース234を通る又は通り過ぎることができる。
少なくとも1つの実施形態において、プロトコル準拠リンク206は、READ、WRITE、及び/又はIDENTIFY意味論を有するプロトコルを実装する。このようなプロトコルにおいて、READコマンドは、記憶装置からデータを読み取るために用いられ、例えば、ディスク・アドレス、長さ及び他の情報を指定する。WRITEコマンドは、データを記憶装置に格納するために用いられ、ディスク・アドレス、長さ、及び格納されることになるデータを指定することができる。IDENTIFYコマンドは、記憶装置の詳細を識別するために用いられ、製造番号、型式番号、タイプ、能力その他同様の情報について、記憶装置に問い合わせることができる。
補足メッセージ・インターフェース234は、補足メッセージ・オブザーバ250及び補足メッセージ・インターポーザ260を含む。補足メッセージ・オブザーバ250は、ダウンリンク・レシーバ(「Rx」)252及びメッセージ構成バッファ254を含む。ダウンリンク・レシーバ252は、データ・ストリーム207を観察又は盗聴し、補足メッセージ部分209を検知するように構成される。特に、ダウンリンク・レシーバ252は、データ・ストリーム207を監視することができ、次いで、どちらのデータ・ストリーム207も修正又は妨害することなく、補足メッセージ部分209(例えば、そのコピーのような)を獲得することができる。このように、データ・ストリーム207は、プロトコル準拠リンク206のプロトコルに違反することなく、変更されずに下流の装置に渡される。特定の実施形態において、ダウンリンク・レシーバ252は、データ・ストリーム207内の1つのタイプのプロトコル準拠メッセージを検知するように作動可能である。その1つのタイプが検知されると、ダウンリンク・レシーバ252は、データ・ストリーム207を走査して補足メッセージ部分209を識別し、その後、識別された補足ダウンリンク・メッセージ220を獲得することができる。1つの実施形態において、1つのタイプのプロトコル準拠メッセージは、一般に、記憶装置から情報を読み取るために用いられる、何らかの「READ」コマンドである。こうしたコマンドを含むプロトコル準拠メッセージは下流の記憶装置を変更しないので、補足メッセージを通信する際にREADコマンドは特に有用である。メッセージ構成バッファ254は、ダウンリンク・レシーバ252に結合され、識別された補足ダウンリンク・メッセージ220の部分を獲得し、そこから補足メッセージ全体を構成する。
補足メッセージ・インターポーザ260は、アップリンク・トランスミッタ(「Tx」)262及びメッセージ応答バッファ264を含む。メッセージ応答バッファ264は、別のタイプのプロトコル準拠メッセージによって生成された要求されたデータを含む補足応答メッセージ(又はその部分)を維持する。アップリンク・トランスミッタ262は、補足応答メッセージの部分を、補足アップリンク・メッセージ222としてプロトコル準拠メッセージ部分208と210との間に挿置し、補足メッセージ部分209を形成するように作動可能である。特に、アップリンク・トランスミッタ262は、メッセージ応答バッファ264から補足アップリンク・メッセージ222を取り出し、次いで、それを、例えばホスト・コンピューティング装置に送る。特定の実施形態において、アップリンク・トランスミッタ262は、他のタイプのプロトコル準拠メッセージに応答して作動する。1つの実施形態において、他のタイプのプロトコル準拠メッセージは、応答メッセージを戻す非書き込みコマンドである。こうした1つの非書き込みコマンドが、IDENTIFY DEVICEコマンドである。
図3は、本発明の実施形態による、SATA仕様に準拠したリンク内に隠し通信チャネルを確立するためのSerial Advanced Technology Attachment(「SATA」)トランシーバを示すダイアグラム300である。ダイアグラム300は、ホスト・コンピューティング装置と記憶装置(どちらも図示せず)との間のSATAリンク306を介して、非SATAメッセージを伝達するためのSATAトランシーバ350を示す。特に、SATAトランシーバ350は、SATAダウンリンク・レシーバ(「Rx」)360及びSATAアップリンク・トランスミッタ(「Tx」)370を含む。SATAダウンリンク・レシーバ360は、第1のSATA準拠コマンドと関連付けられたSATAメッセージ302から非SATAメッセージを検索するように構成される。対照的に、SATAアップリンク・トランスミッタ370は、非SATAメッセージを、第2のSATA準拠コマンドと関連付けられたSATAメッセージ304内に挿入するように構成される。したがって、SATAトランシーバ350は、SATAトランシーバ350又はSATA通信装置のどちらかとホスト・コンピューティング装置(図示せず)との間で非SATAメッセージを伝達するための隠し通信チャネルを形成するように作動する。このように、隠し通信チャネルは、SATAメッセージ302及び304の少なくとも1つを有するSATAリンク306を介して、少なくとも1つの非SATAメッセージ(又はその部分)を同時に転送することができる。例えば、非SATAメッセージ316(又はその部分)は、SATAメッセージ302を有するリンク306を同時に横断することができ、一方、非SATAメッセージ326(又はその部分)は、SATAメッセージ304を有するリンク306を同時に横断することができる。SATAメッセージ302及び304は、それぞれホスト・コンピューティング装置からのダウンリンク・メッセージ及びホスト・コンピューティング装置に向かうアップリンク・メッセージである。「SATA」という用語は、オレゴン州ポートランド所在のSerial ATA International Organization(「SATA−IO」)によって規定される、SATA仕様におけるプロトコルを指すことに留意されたい。
図3に示されるように、SATAダウンリンク・レシーバ360は、非SATAメッセージを生成するための非SATAメッセージ構成バッファ362及び非SATAメッセージ検証ユニット364を含む。1つの実施形態において、上述された第1のSATA準拠コマンドはREADコマンドであり、上述された第2のSATA準拠コマンドはIDENTIFY DEVICEコマンドである。さらに、SATAメッセージ302は、各々が、SATA仕様によって規定されるような多数のフィールド314を含む1つ又はそれ以上のSATAパケット310から構成することができる。作動において、SATAダウンリンク・レシーバ360は、コマンド・フィールド312内のREADコマンドのような第1のSATA準拠コマンドを検知するように機能する。次いで、SATAダウンリンク・レシーバ360は、SATAパケット310からメッセージ・フィールド314の少なくとも部分316を検索する。特定の実施形態において、メッセージ・フィールド314の部分316は、例えば、論理ブロック・アドレス(「LBA」)の一部とすることができる。非SATAメッセージ構成バッファは、メッセージ・フィールド314の部分316を蓄積し、非SATAメッセージ380の全体を構成するように構成される。非SATAメッセージ検証ユニット364は、非SATAメッセージ380が有効であることを検証するように構成される。幾つかの実施形態において、SATAパケット310という用語は、一般に、Frame Information Structure(「FIS」)を指す。
さらに図3に関連して、SATAアップリンク・トランスミッタ370は、どちらも非SATA応答メッセージをリンク306内に導入するために用いられるアップリンク挿入装置372及び非SATAメッセージ応答バッファ374を含む。SATAメッセージ304は、各々が、SATA仕様によって定められる多数のフィールド324を含む1つ又はそれ以上のSATAパケット320から構成することができる。作動において、SATAアップリンク・トランスミッタ370は、コマンド・フィールド312内のIDENTIFY DEVICEコマンドのようなSATA準拠コマンドの受信を検知する。次いで、SATAアップリンク・トランスミッタ370は、非SATA応答メッセージ390の少なくとも一部をメッセージ・フィールド326内に挿入することによって応答する。特定の実施形態において、メッセージ・フィールド326(又はその部分)は、例えば、ベンダー特有のフィールドとすることができる。非SATAメッセージ応答バッファ374は、非SATA応答メッセージ390の少なくとも一部を維持するように構成される。IDENTIFY DEVICEコマンドを含む別のSATAメッセージを受信するSATAトランシーバ350に応答して、非SATAメッセージ応答バッファ374は、非SATA応答メッセージ390の部分をアップリンク挿入装置372に公開する。例えば、他のSATAメッセージの受信は、アップリンク挿入装置372を作動させるIDENTIFY DEVICE(「IDENT」)受信表示信号352を生成することができる。SATA仕様自体が、非SATA応答メッセージ390を非同期式に伝送できないように、SATAアップリンク・トランスミッタ370を本質的に制限していることに留意されたい。したがって、ホストは、SATAメッセージ302内のIDENTIFY DEVICEコマンドを送ることによって、非SATA応答メッセージ390を「要求する」。SATAトランシーバ350において受信されると、IDENTIFY DEVICE(「IDENT」)受信表示信号352がトリガされ、非SATA応答メッセージ390の部分の挿置を開始する。
図4は、本発明の特定の実施形態による、隠し通信チャネルのためのダウンリンクを確立するためのSATAダウンリンク・レシーバの機能を示す機能図400である。特に、SATAダウンリンク・レシーバ(「Rx」)410は、SATAリンクから非SATAメッセージを獲得することによって、ホスト・コンピューティング装置からSATAトランシーバ(図示せず)への単方向リンクを形成する。示される例において、SATAダウンリンク・レシーバ410は、SATAパケットを「盗聴」し、SATAパケット402a−402nの各々について、コマンド・フィールド404内のREAD(「RD」)コマンドを検知する。この例において、SATA FISは、記憶装置のような1つ又はそれ以上の下流装置に完全な状態で(すなわち、プロトコル準拠メッセージを修正することなく)送られる。次いで、SATAダウンリンク・レシーバ410は、ホスト・コンピューティング装置(図示せず)からそれらの宛先(すなわち、記憶装置)へのSATAパケット402a−402nの転送に影響を与えることなく、例えば、メッセージ・フィールド405内の部分406a−406nから非SATAメッセージの部分を獲得する(すなわち、取り込む又はコピーする)。1つの実施形態において、メッセージ・フィールド405は、データを読み取るディスク上の領域を指定する論理ブロック・アドレス(「LBA」)である。メッセージ・フィールド405は、SATA仕様によってサポートされる種々のサイズの論理ブロック・アドレスを含むことができることに留意されたい。
一例において、メッセージ・フィールド405は、48ビットのLBAを含み、2バイト(すなわち、16ビット)が、非SATAメッセージの512バイトのメッセージ本体の部分を指定するために用いられている。メッセージ・フィールド405からの別の単一バイト(すなわち、8ビット)は、2バイトをメッセージ構成バッファ420内に配置するために、0から255までのオフセットを指定することができる。1つの実施形態において、SATAダウンリンク410は、16ビットを、SATAパケット402a−402nのいずれかからの部分412内のデータ414として識別するように作動する。SATAダウンリンク410はまた、8ビットの部分412を関連したオフセット416としても識別する。したがって、ホスト・コンピューティング装置(図示せず)は、各々のREADコマンドが記憶装置システムの下流に伝送される際に、非SATAメッセージの小片(すなわち、1バイト又は2バイト)を送ることによって、何らかの任意の非SATAメッセージをSATAダウンリンク・レシーバ410に伝達することができる。特に、非SATAメッセージを論理ブロック・アドレスすなわちLBAにコード化することができる。例証のために、SATAダウンリンク・レシーバ410が、部分406cを部分412として獲得すると考える。さらに、オフセット416が「2」であると考える。したがって、SATAダウンリンク・レシーバ410は、メッセージ構成バッファ420の位置422に、データ414を置く。SATAダウンリンク・レシーバ410は、非SATAメッセージを構成するために何らかの順番でオフセットを使用することによって、メッセージ構成バッファ420を読み込むことができるが、1つの実施形態においては、構成バッファの最後のバイトが書き込まれる度に非SATAメッセージが形成される。
メッセージ構成バッファ420が一杯になった後(さもなければ、他の何らかの基準を満たした後)、SATAダウンリンク・レシーバ410は、424においてバッファを構文解析し、非SATAメッセージ430及び任意の検証値(「CRC」)432を認識する。転送中、他のSATAパケットからのREADコマンドが、SATAパケット402a−402nと混ざり合うことがあるので、ホストからのREAD要求のランダム・シーケンスが、うっかりと実行可能であるが不適切な非SATAメッセージ430を生成することがある。実行時に非SATAメッセージ430がディスクを破損することがあるが、こうしたメッセージが、あまり破滅的でない結果を引き起こすこともある。例えば、実行時に不適切なメッセージが、誤った記憶装置構成を生成するか、又は不良ポリシーを設定するといった不適切な動作を実行することがある。非SATAメッセージ検証ユニット440は、不適切な非SATAメッセージを無効にするように作動する。示される例において、検証値432は、伝送前にホストにおいて巡回冗長検査(「Cyclic Redundancy Check、CRC」)アルゴリズムによって生成されたCRC値である。検証値432のようなCRC値は、メッセージ430の完全性を検証し、不適切な非SATAメッセージが用いられていないことを保証する。非SATAメッセージ検証ユニット440は、非SATAメッセージ430からのCRCを計算し、結果をCRC432と比較するように作動し、2つの間の合致が有効に送信されたメッセージ430を示す。特定の実施形態においては、32ビットのCRCが用いられ、READ要求のランダムな組が、間違っているが外観上有効なパケットを生み出す可能性を、特定の用途には不可能だと考えられるくらい十分に起こり得なくなるまで低減させる。
別の実施形態においては、チャレンジ・レスポンス方式の技術を用いることによって、不適切な有効メッセージを生み出すREAD要求のシーケンスを意図せず作成する可能性を低減させることができる。この場合、SATAダウンリンク・レシーバ410は、チャレンジ・アップリンク(図示せず)を含む。SATAダウンリンク・レシーバ410が有効な非SATAメッセージ430を形成するとき、SATAダウンリンク・レシーバ410は、図3のもののような非SATA応答メッセージ内にチャレンジ・トークンを配置し、非SATAメッセージ430の受信が成功したことを示す。次いで、ホストは、チャレンジ・トークンへの既知の応答を用いて、別の非SATAメッセージ430に応答し、これにより元の非SATAメッセージ430が検証される。
幾つかの用途において、CRC420を計算することが、望ましくない量の時間を消費する可能性があることに留意されたい。1つの実施形態において、非SATAメッセージ430は、非SATAメッセージ検証ユニット440による検知のための特別の署名を含む。正確な署名の値が存在しない場合には、CRC432を計算する必要はなく、よって他の場合には無効なメッセージについてCRCを計算するのに用いられる時間を節約する。少なくとも1つの実施形態において、受信するREAD要求が非SATAメッセージ430を上書きしないように、非SATAメッセージ430の処理の間、メッセージ構成バッファ420がロックされることに留意されたい。非SATAメッセージ本体が処理されると、新しいメッセージを既知の状態から構成できるように、メッセージ構成バッファ420が消去される。代替的な実施形態において、メッセージ構成バッファ420は、各々が類似した構造及び/又は機能を有する幾つもの数のメッセージ構成バッファ420(図示せず)を含むキューを含む。メッセージ構成バッファ420の1つが有効メッセージで一杯になったとき、別のメッセージ構成バッファ420が満たされる間、これを処理することができる。キューの深さは用途特有のものであり、未完了メッセージの最大数を決定する。例えば、1つ又は2つのこうしたバッファのキューの深さは、多くの場合、記憶関連用途には十分なものである。
図5は、本発明の特定の実施形態による、隠し通信チャネルのためのアップリンクを確立するためのSATAアップリンク・トランスミッタの機能を示す機能図500である。特に、SATAアップリンク・トランスミッタ(「Tx」)550は、非SATAメッセージをSATAリンク502内に挿入することによって、SATAアップリンク・トランスミッタ550(及び/又は記憶装置)からホスト・コンピューティング装置までの単方向リンクを形成する。示される例において、SATAアップリンク・トランスミッタ550は、非SATA応答メッセージを非同期式に伝送しない。寧ろ、SATAアップリンク・トランスミッタ550のアップリンク挿入装置552は、IDENTIFY DEVICEコマンド表示信号530の受信に応答して、非SATA応答メッセージ(又はその部分)を挿入する。この信号は、対象となる非SATA応答メッセージの形成を引き起こす以前のIDENTIFY DEVICEコマンドに続くIDENTIFY DEVICEコマンドの受信に応答することに留意されたい。1つの実施形態においては、SATAトランシーバ又はSATAダウンリンク・レシーバのいずれかにおける論理が、信号530を生成することができる。応答(すなわち、非SATA応答メッセージ)を受信するために、ホストは、IDENTIFY DEVICEコマンドを含むSATAメッセージを生成し、これが、通常、記憶装置のようなエンドポイント装置の性質及び能力を照会するために用いられる。IDENTIFY DEVICEコマンドへの応答は、メッセージをホストに伝播する前に非SATA応答メッセージ(又はその部分)を含ませるように修正された(又は合成された)SATA応答メッセージ(「プロトコル準拠メッセージ」)504である。
作動において、SATAトランシーバは、非SATA応答メッセージ(又はその部分)532を用いて多数のメッセージ応答バッファ554の1つをロードする。しかしながら、SATAアップリンク・トランスミッタは、IDENTIFY DEVICEコマンドの受信と同期であるので、非SATA応答メッセージは、IDENTIFY DEVICEコマンドが受信されるまでバッファ内に留まる。受信されると、アップリンク挿入装置552は、メッセージ応答バッファ554内にある次の非SATA応答メッセージを取り出す。1つの実施形態においては、メッセージ応答バッファ554において、「上部」バッファ及び「下部」バッファが指定され、アップリンク挿入装置552は、「ラウンドロビン」方式で(すなわち、上部から下部に、再び上部に戻る)バッファからデータを取り出す。このように、ホストは、IDENTIFY DEVICEコマンドを有するSATAパケットを繰り返し送ることによって、非SATA応答メッセージ又はその一部の完全な補数を(SATAメッセージ504内の状態情報と共に)集めることができる。特定の実施形態において、アップリンク挿入装置552は、非SATA応答メッセージ又はその部分を、SATAパケット510の利用可能フィールド512内に挿入する。SATAパケット510は、IDENTIFY DEVICEコマンドの実行に続くSATA応答メッセージを構成することができる。利用可能フィールド512は、ベンダー特有フィールド・データ520を含ませるためのフィールドとすることができ、状態情報及び非SATA応答メッセージ(又はその部分)528を含むことができる。応答メッセージ内に含ませることができる情報の例は、ソース・アドレス(「Src Address」)522、長さ524、シーケンス番号(「No.」)526、及びベンダー特有フィールド・データ520が含む他のタイプの情報、改訂情報、環境データ(例えば、記憶装置の周囲温度)、仮想ドライブ構成、物理的ドライブ構成、性能統計値、隠しチャネル上で通信する下流装置からの応答メッセージ等のような他の状態情報を含むことができる。特定の実施形態において、SATAパケット510は、512バイトのパケットであり、利用可能フィールド512は、一般に、ベンダー特有情報のために取っておかれる62バイトのフィールドである。1つの実施形態においては、ベンダー特有フィールド・データ520は、強化された格納関連機能及び/又はホストの下流の仮想化を容易にするために用いられる「ステータス・ページ」と呼ばれる。
図6は、本発明の少なくとも1つの特定の実施形態による、Serial Advanced Technology Attachment(「SATA」)準拠の記憶装置システムのために強化された格納関連機能を実行する、強化されたポート・マルチプライヤのブロック図600である。概念的には、SATAトランシーバ632は、ホスト・コンピューティング装置602のホスト・バス・アダプタ(「HBA」)604と強化されたポート・マルチプライヤ630が記憶装置のシステム(「記憶装置システム」)620内に常駐する任意のポイントとの間のSATA準拠リンク608を介して、非SATAメッセージ(「非SATA Msg.」)610を伝達するための隠し通信チャネル606を確立する。非SATAメッセージ610は、SATAの機能を「補足」又は増強する非準拠メッセージである。非準拠メッセージとは、SATAプロトコルによって定義されていないメッセージである。幾つかの実施形態において、ホスト・バス・アダプタ604は、ホスト・コンピューティング装置の内部バスと、1つ又はそれ以上の記憶装置と関連付けられたバス又はリンクとの間のデータ転送を適合させるための何らかの入力/出力(「I/O」)装置とすることができる。
強化されたポート・マルチプライヤ630は、ホスト・コンピューティング装置602の1つのSATAポートが、多数のSATAドライブに接続するのを可能にするファン・アウト装置であるポート・マルチプライヤ631を含む。強化されたポート・マルチプライヤ630は、記憶装置650及び652に対してトランスペアレントであり、これらの装置が、あたかもホスト・バス・アダプタ604に直接取り付けられているかのように機能することを可能にする。ポート・マルチプライヤ631の一般的な機能及び構造は周知であり、さらに説明する必要はない。強化されたポート・マルチプライヤ630はまた、SATAトランシーバ632、任意のSATAコマンド・プロセッサ634、実行ユニット636、任意の仮想化ユニット638及び任意の暗号化装置/復号化装置639を含む。実行ユニットは、SATAトランシーバ632によって識別された非SATAコマンドを実行し、SATA準拠の記憶装置システム620内の強化された格納関連機能を実行するように構成される。有利に、実行ユニット636は、システム・メモリ内の命令を実行し、記憶装置650及び652の仮想表現においてストライピング機能、ミラーリング機能、連結機能といった強化された格納関連機能を実行するための、ホスト・コンピューティング装置602による要件を無くす。
強化されたポート・マルチプライヤ630は、SATA準拠記憶装置のシステム620の仮想表現を提供できる仮想化ユニット638を含むことができるので、ホスト・コンピューティング装置は、システム620の仮想表現と対話し、強化された格納関連機能を実行するように構成される。例えば、強化されたポート・マルチプライヤ630が、記憶装置650を連結し、システム620の仮想表現内の単一のハードドライブのように見えるようにする非SATAコマンドを実行すると考える。ホスト・コンピューティング装置が、仮想アドレスであるアドレスからデータを読み取るためにREADコマンドを送る場合、仮想化ユニット638及び/又は実行ユニットは、要求されたデータを検索するために、その仮想アドレスを、特定の記憶装置についての物理的アドレスにマッピングする。1つの実施形態において、強化されたポート・マルチプライヤ630は、その全体が引用によりここに組み入れられる「Smart Scalable Storage Switch Architecture」という名称で2005年8月25日に出願され、出願番号第60/711,863号を有する、米国仮特許出願に開示されるように(全体として又は部分的に)作動することができる。
1つの実施形態において、暗号化装置/復号化装置639は、周知の暗号化技術を実施し、隠し通信チャネル606上のデータ転送を保護するように構成される。例えば、暗号化装置/復号化装置639は、標準的な公開鍵の交換が最初に行われ、共通のセッション鍵が作成される公開鍵暗号化方式を実施することができる。次に、暗号化装置/復号化装置639は、セッション鍵を用いて、非SATAメッセージ(又はその部分)或いは非SATAメッセージと関連付けられたSATAパケット全体のいずれかを暗号化及び復号化することができる。幾つかの実施形態において、強化されたポート・マルチプライヤ630は、単一チップの強化されたポート・マルチプライヤを生成するために形成される単一の基板690を含む。
種々の実施形態において、隠し通信チャネル606は、双方向チャネル又は単方向チャネルのいずれかであり、ここで単方向チャネルは、ホスト・コンピューティング装置602から強化されたポート・マルチプライヤ630までのダウンリンクか、又は強化されたポート・マルチプライヤ630からホスト・コンピューティング装置602までのアップリンクのいずれかとすることができる。アップリンクだけが存在するとき、フロー制御を必要としないことに留意されたい。強化されたポート・マルチプライヤ630は、ホストが要求を行う速度で、ホスト・コンピューティング装置602に応答する。ダウンリンクだけが存在するとき、ホスト・コンピューティング装置602は、潜在的に、強化されたポート・マルチプライヤ630が処理できるより速い速度でメッセージを送ることができる。したがって、ブラインド構成操作を実行するとき(すなわち、メッセージの送信がうまくいったかどうかに関してフィードバックが提供されないとき)、メッセージの一部の管理は困難である。したがって、強化されたポート・マルチプライヤ630は、維持することができる最大要求速度を選択的に定めることができ、ホスト・コンピューティング装置は、その要求を所定の速度で計量し、いずれも紛失しないことを保証することができる。アップリンク及びダウンリンクの両方が存在するとき、ホストとエージェントとの間の同期されたフロー制御を達成することができる。メッセージ本体の各々は、図5のフィールド526内にあるもののようなシーケンス番号を含むことができる。強化されたポート・マルチプライヤ630が非SATAメッセージを受け取り、実行するとき、該強化されたポート・マルチプライヤ630は、所定のシーケンス番号を有する非SATAメッセージについての処理の完了を報告するSATA応答メッセージを構成する。次いで、ホスト・コンピューティング装置は、非SATAメッセージが成功裏に実行された又はタイムアウトになったと判断するまで、次のSATA応答メッセージを読み取ることができる。タイムアウトになった場合、ホスト・コンピューティング装置602は、メッセージを再送信することができる。強化されたポート・マルチプライヤ630が、重複したシーケンス番号を有するSATAメッセージを受け取った場合には、該強化されたポート・マルチプライヤ630は、非SATA応答メッセージを単にドロップし(例えば、図5のフィールド528からドロップする)、図5のSATA応答メッセージ510内のものを示すことができる。
特定の実施形態においては、SATAコマンド・プロセッサ634が、強化されたポート・マルチプライヤ630を、多数の記憶装置640の間で多重化された別の強化されたポート・マルチプライヤ640と接続するために用いられる。したがって、強化されたポート・マルチプライヤ630及び640の両方並びに各自の記憶装置650及び652は、ホスト・コンピューティング装置602上の単一のポートを介してアクセス可能である。強化されたポート・マルチプライヤ630及び640の両方は、同じ「READ」コマンドをスヌープし、同じメッセージを構成するように構成することができるが、このことが各々に複製動作を行わせることがある。これは、同じ構成設定を強化されたポート・マルチプライヤの各々にダウンロードする場合のような幾つかの状況においては望ましいものである。しかしながら、強化されたポート・マルチプライヤ630及び640を異なるように構成することが望まれる。この状況に対処するために、メッセージ本体は、強化されたポート・マルチプライヤ630又は強化されたポート・マルチプライヤ640のいずれかを一意的に指定する識別子を含む。各々の強化されたポート・マルチプライヤは、メッセージを処理する前に、そのメッセージが識別子(又はブロードキャスト・インジケータ)を含むことを検証する。識別子は、SATAシリアル番号のような、何らかの情報の固有部分とすることができる。SATA応答メッセージを用いて、強化されたポート・マルチプライヤの固有識別子、及び、他の下流の強化されたポート・マルチプライヤについての他の何らかの識別子を戻すことができる。有利に、メッセージ本体内に配置された識別子は、ホスト・コンピューティング装置602が、意図せずに未知の強化されたポート・マルチプライヤにメッセージを送信するのを防ぐ。
作動において、SATAコマンド・プロセッサ634は、何らかの強化されたポート・マルチプライヤ又は何らかの他の装置との間でメッセージを経路指定することができる。例えば、1つの強化されたポート・マルチプライヤが、別の強化されたポート・マルチプライヤについての有効メッセージを受信したと判断すると、その1つの強化されたポート・マルチプライヤは、メッセージを(適切な組のREADコマンドを用いて)全ての下流リンクに送ることができ、或いは経路指定テーブルを維持し、メッセージを1つの特定の下流リンクを通して下方に送ることができる。SATAコマンド・プロセッサ634は、それぞれのIDENTIFY DEVICEコマンド(又は他の匹敵するプロトコル準拠コマンド)を発行し、強化されたポート・マルチプライヤ640のような1つ又はそれ以上の下流装置が、応答メッセージを、ホスト・コンピューティング装置602のような要求者に送るように構成される。例えば、非SATAメッセージ610を強化されたポート・マルチプライヤ640に送り、非SATAメッセージ610を処理して強化された格納関連機能を実行するために、ホスト・コンピューティング装置602が多数のREADコマンド・ベースのSATAパケットを発行したと考える。非SATAメッセージ610の処理は、記憶装置652のグループ内のいずれかの記憶装置と関連させることができる。次に、強化されたポート・マルチプライヤ630を介するホスト・コンピューティング装置602への伝送のために、強化されたポート・マルチプライヤ640が非SATA応答メッセージを生成すると考える。これを行うために、SATAコマンド・プロセッサ634は、十分な数のIDENTIFY DEVICEコマンドを発行し、非SATA応答メッセージを、強化されたポート・マルチプライヤ640からSATAトランシーバ632まで送信させる。次に、ホスト・コンピューティング装置602は、十分な数のIDENTIFY DEVICEコマンドを発行し、非SATA応答メッセージを、強化されたポート・マルチプライヤ640からホスト・コンピューティング装置602に送信させる。例えば、SATAトランシーバ632によって生成された非SATA応答メッセージがホスト・コンピューティング装置602に送信された後、SATAトランシーバ632が、そのメッセージ応答バッファ内の非SATA応答メッセージを受信できることに留意されたい。1つの実施形態において、SATAコマンド・プロセッサ634は、発行すべきIDENTIFY DEVICEコマンドの数を決定するために、強化されたポート・マルチプライヤ640から受信したIDENTIFY DEVICE応答のコンテンツを監視し、追跡するように構成され、非SATA応答メッセージがSATAトランシーバ632に運ばれることを保証する。例えば、マーカー・フラグを用いて、非SATA応答メッセージの最初の部分及び/又は最後の部分を示すことができる。ホスト・コンピューティング装置602及びSATAトランシーバ632は、協働して、あらゆる方法で多数のプロトコル準拠メッセージを実装し、非SATA応答メッセージを、隠しセグメント699に沿って延びる隠し通信チャネル606に沿って送信することができることに留意されたい。
図7は、本発明の1つの実施形態による、隠し通信チャネルの終端をコンピューティング装置に確立するためのSATAホスト・トランシーバを示す。ホスト・バス・アダプタ702は、強化されたポート・マルチプライヤ(図示せず)に常駐することができる、SATAトランシーバ720と共に隠し通信チャネルを確立するためのSATAホスト・トランシーバ704を含む。SATAホスト・トランシーバ704は、ホスト・コンピューティング装置のオペレーティング・システム及びホスト・プロセッサ(図示せず)に対してトランスペアレントである。SATAホスト・トランシーバ704は、SATAトランシーバ720と同様の方法で作動するが、SATAホスト・トランシーバ704は、ホスト・アップリンク・レシーバ(「Rx」)710及びホスト・ダウンリンク・トランスミッタ(「Tx」)712を含む。SATAホスト・トランシーバ704はまた、例えば、ホスト・コンピューティング装置のオペレーティング・システム及び/又はアプリケーション・プログラムによる要求に応答して、隠し通信チャネルまでの非SATAメッセージの転送を開始するための非SATAメッセージ・コントローラ714も含む。1つの実施形態において、非SATAメッセージ・コントローラ714は、非SATAメッセージを部分に分割し、各々の部分を、SATAトランシーバ720による受信のためのオフセットと関連付けることができる。図7は、ホスト・バス・アダプタ702内に実装されたSATAホスト・トランシーバ704を示すが、種々の実施形態においては、アプリケーション・プログラム内又はハードディスク・コントローラ・チップ内といったホスト・コンピューティング装置内のどこにでもSATAホスト・トランシーバ704を実装できることに留意されたい。したがって、ソフトウェア又はハードウェアのいずれか、或いはそれらの組み合わせの中に、SATAホスト・トランシーバ704の構造及び/又は機能を実装することができる。同様に、ソフトウェア又はハードウェアのいずれか、又はその組み合わせの中にSATAトランシーバ720を実装することができる。
ホスト・ダウンリンク・トランスミッタ712は、下流の記憶装置(図示せず)を変更しないコマンドを実施することによって、少なくともプロトコル準拠リンク722のダウンリンクを形成するように作動可能である。上述されたように、READコマンドは、ホスト・ダウンリンク・トランスミッタ712が、プロトコル準拠SATAパケット730を用いて非SATAメッセージを送信するために用い得るような1つのコマンドである。特に、ホスト・ダウンリンク・トランスミッタ712は、非SATAメッセージ(又はその部分)を、READコマンド740を含むSATAパケット730のアドレス・フィールド内に挿入するように作動する。1つの実施形態において、ホスト・ダウンリンク・トランスミッタ712は、非SATAメッセージの部分及びオフセットを、SATAパケット730のLBA(図示せず)内に挿入する。LBAは、あらゆる一般的なアプリケーション・プログラムが使用できるフィールドである。READコマンド自体は非破壊的であるので、非SATAメッセージを運ぶSATAパケット730のコンテンツは、記憶装置のコンテンツに影響を与えない。
ホスト・ダウンリンク・トランスミッタ712は、IDENTIFY DEVICE(「IDENT」)コマンド750を生成するように作動することもできるので、ホスト・アップリンク・レシーバ(「Rx」)710は、強化されたポート・マルチプライヤ又は任意の下流装置内に配置することができるSATAトランシーバ720から、SATA応答メッセージを受け取ることができる。上述されたように、SATA応答メッセージは、非SATAメッセージ(又はその部分)を含むように、SATAトランシーバ720のアップリンク挿入装置(図示せず)によって修正される(又は合成される)。ホスト・アップリンク・レシーバ710はまた、強化されたポート・マルチプライヤ又は下流装置から送られた非SATA応答メッセージを蓄積し、再形成するために、図4のメッセージ構成バッファ420に類似した構造及び/又は機能を含むこともできる。
種々の実施形態において、ホスト・ダウンリンク・トランスミッタ712は、隠し通信チャネル722を確立するために、READコマンド740及びIDENTIFY DEVICEコマンド750の代わりに他のタイプのSATAコマンドを実施することができる。例えば、IDENTIFY DEVICEコマンド750の代わりに、READコマンド752、又はより具体的には、READコマンドへのSATA応答を用いることができる。次に、SATAトランシーバ720のアップリンク・トランスミッタ(図示せず)は、READ応答メッセージを検知し、ホスト・アップリンク・レシーバ710による受信のために非SATAメッセージをデータ・ストリーム内に挿入するように構成される。ターゲットから非SATA応答メッセージを要求するために用いられるSATA READコマンドは、「通常の」SATAコマンドと区別することができる。幾つかの実施形態において用いられる技術は、下記に説明される「高LBA」技術である。さらに、他のSATAコマンドが、ディスク上のデータの破壊を避けるための安全装置を必要とすることがある。例えば、ホスト・ダウンリンク・トランスミッタ712は、ディスク・ロックなどの十分な安全装置が適所にある限り、非SATAメッセージをダウンリンクに沿って伝達するように、WRITEコマンド742をREADコマンドの代替物として実装することができる。このようなロックは、WRITEコマンド742の、記憶装置への不注意による書き込みを引き起こし得る記憶装置による誤配向又は誤解釈を防止する。次に、READコマンドを使用するのと同じ方法でWRITEコマンド742を使用することができる。つまり、強化されたポート・マルチプライヤ又は下流装置は、LBAを盗聴し、非SATAメッセージ・データを獲得することができる。
WRITEコマンドを種々の方法で用いることができる。例えば、WRITEコマンド742が記憶装置によってサポートされる範囲を超えたアドレスを有した状態で送られる「高LBA」技術に従って、WRITEコマンド742を用いることができる。この場合、SATAトランシーバ720又は下流装置は、盗聴を行い、ディスクの末端を超えた何らかの高アドレスを検知することができる。そのアドレスは、記憶装置によって「無効」と見なされるが、WRITEコマンドに付随するデータは、ペイロード又は非SATAメッセージの部分を構成することができる。しかしながら、全てのホストがこれらのタイプのコマンドをドライブに送るわけではないので、このタイプのコマンドを送るために、ホスト・コンピューティング装置の修正が必要である。したがって、1つの実施形態によると、ホスト・コンピューティング装置は、高LBAを含むSATAパケットを送るように構成することができる。別の例においては、WRITEコマンド742が、偽の又は架空の記憶装置に送られる「存在しないターゲット」技術に従って、WRITEコマンド742を用いることができる。次に、SATAトランシーバ720又は他の何らかの装置がパケットを盗聴し、架空のドライブであることが知られているそれらのディスクドライブ識別子を検知する。しかしながら、偽のドライブは、エンドユーザには普通のドライブのように見えるので、ホスト・コンピューティング装置は、架空のドライブを隠す必要がある。1つの実施形態においては、ホスト・コンピューティング装置は、エンドユーザから架空のドライブを隠すように作動する。
図8は、本発明の1つ又はそれ以上の実施形態による、SATAパケットのイニシエータ又はターゲットのいずれか一方又は両方として作動するためのデュアル・モードSATAトランシーバを示すブロック図である。第1のモードにおいて、デュアル・モードSATAトランシーバ800は、SATAパケットのデータ・ストリームをターゲットに送るためのSATAイニシエータとして作動するように構成される。ターゲットは、別のSATAトランシーバ又は記憶装置のような何らかのSATA準拠装置とすることができる。ターゲットは、通常、デュアル・モードSATAトランシーバ800の下流に配置される。第2のモードにおいて、デュアル・モードSATAトランシーバ800は、イニシエータからSATAパケットを受け取るためのSATAターゲットとして作動するように構成される。イニシエータは、別のSATAトランシーバ又はSATAオリジネータ(図示せず)とすることができる。ここで用いられる「SATAオリジネータ」という用語は、一般に、ホスト・コンピューティング装置、又はデュアル・モードSATAトランシーバ800の上流に配置された他の何らかの装置を指す。
デュアル・モードSATAトランシーバ800は、メッセージ・ポート860を介して、それぞれ非SATAメッセージ820及び非SATAメッセージ822を実行ユニット(図示せず)又は非SATAメッセージの任意の消費者/生産者と通信するためのSATAダウンリンク・レシーバ(「Rx」)810及びSATAアップリンク・トランスミッタ(「Tx」)814を含む。さらに、デュアル・モードSATAトランシーバ800は、種々の特定用途向け機能を実行することができるSATAコマンド・プロセッサ812を含むことができる。少なくとも1つの実施形態において、SATAコマンド・プロセッサ812は、IDENTIFY DEVICEコマンド・ベースのメッセージを生成し、それらをSATA準拠ターゲットに送信してIDENTIFY DEVICEコマンド・ベースのメッセージに対する応答を求めるように構成される。これらの応答は、通常、非SATA応答メッセージを含むことができる。上流への伝送のために、SATAターゲットから受信したIDENTIFY DEVICE応答のコンテンツを監視し、追跡するために、フィードバック信号821がSATAコマンド・プロセッサ812内に供給される。このことは、SATAコマンド・プロセッサ812が、非SATA応答メッセージを受信するために、適切な組のIDENTIFY DEVICEコマンドの発行を決定するのを助ける。
SATAコマンド・プロセッサ812は、以下に説明される特定用途向け機能のような他の機能を実行することもできる。デュアル・モードSATAトランシーバ800が強化されたポート・マルチプライヤの一部である場合には、SATAコマンド・プロセッサ812は、SATAコマンドを仮想ターゲットから物理的ターゲットにマッピングするように構成することかできる。説明のために、仮想ターゲットが、2つの物理的ターゲットの仮想表現をミラー・セットの形で提供すると考える。この場合、SATAコマンド・プロセッサ812が書き込みコマンドを受信したとき、SATAコマンド・プロセッサ812は、そのコマンドを両方の物理的装置に複製する。しかしながら、仮想ターゲットが3つの物理的ターゲットの連結を表す場合には、SATAコマンド・プロセッサ812は、アドレス及び長さに基づいて、特定のSATAコマンドによって参照される適切な物理ターゲットを選択することができる。SATAコマンド・プロセッサ812は、この選択に続いて、修正されたコマンドを物理的ターゲットに発行する。
SATAコマンド・プロセッサ812が単純なポート・マルチプレクサの一部である1つの例を考える。この場合、Serial ATA International Organizationにより維持されているSATA Port Multiplier仕様に定められるように、SATAコマンド・プロセッサ812は、SATAアドレス指定ビットに基づいて特定の物理的ターゲットを選択し、コマンドを適切なターゲットに送ることができる。別の例においては、SATAコマンド・プロセッサ812が、隠しチャネル全体にわたって指定されたパターンに基づいてSATAトラフィックを記録するSATA分析装置の一部であると考える。したがって、SATAコマンド・プロセッサ812は、解釈することなく(すなわち、処理することなく)、単にSATAコマンドを、適切な物理的ターゲットまで下流に送るように作動することができる。さらに別の例において、SATAコマンド・プロセッサ812が、強化されたディスク・コントローラの一部であると考える。この場合、SATAコマンド・プロセッサ812は、SATAコマンドを解釈し、ターゲット・インターフェース830と対話し、(例えば、ヘッドを動かして、SATAコマンドにおいて指定された物理的媒体上の位置にアクセスすることによって)特定のターゲット装置を直接操作することができる。
デュアル・モードSATAトランシーバ800はまた、SATAレシーバ物理層インターフェース(「SATA RX PHY」)813及びSATAトランシーバ物理層インターフェース(「SATA TX PHY」)815も含み、その両方が、SATAダウンリンク・レシーバ810及びSATAアップリンク・トランスミッタ814を接続し、SATAメッセージをSATAリンク(「上流SATAリンク」)の上流部分802aと交換するために用いられる。具体的には、SATAレシーバ物理層インターフェース813は、SATAリンクの上流部分802aと接続して、SATAイニシエータ(図示せず)から信号801を受け取り、一方、SATAトランシーバ物理層インターフェース815は、SATAリンク802aと接続して、SATA準拠物理信号803をSATAイニシエータに伝送する。別の対のSATAレシーバ物理層インターフェース813及びSATAトランシーバ物理層インターフェース815は、ターゲット・ポート870を介して、SATA準拠信号807をターゲットに送り、ターゲットからSATA準拠信号805を受け取るSATAリンクの下流部分(「下流SATAリンク」)802bと接続できることに留意されたい。
さらに、デュアル・モードSATAトランシーバ800は、マルチプレクサ817及び819を含む。デュアル・モードSATAトランシーバ800との間に他の介在するSATAトランシーバが存在しない場合には、マルチプレクサ817は、ホスト物理層インターフェース(「PHY」)811と、SATAダウンリンク・レシーバ810、SATAコマンド・プロセッサ812及びSATAアップリンク・トランスミッタ814のいずれかとの間の破線で示されるような経路に沿って、SATAパケット(又はFIS)を交換するように作動することができる。或いは、マルチプレクサ817は、ホストとデュアル・モードSATAトランシーバ800との間に介在する上流SATAイニシエータが存在する場合には、SATAレシーバ813及びSATAトランシーバ物理層インターフェース815の両方と、SATAダウンリンク・レシーバ810、SATAコマンド・プロセッサ812及びSATAアップリンク・トランスミッタ814のいずれかとの間の実線で示されたような経路に沿って、SATAパケット(又はFIS)を交換するように作動することができる。これらの場合、デュアル・モードSATAトランシーバ800は、SATAターゲットとして第2のモードで作動する。
マルチプレクサ819は、デュアル・モードSATAトランシーバ800が、第1のモードでSATAイニシエータとして作動することを可能にするように、同様の方法で作動する。例えば、マルチプレクサ819は、破線として示された経路に沿って、ターゲット物理層インターフェース(「PHY」)832を介して、SATAパケット(又はFIS)を交換するように作動することができる。デュアル・モードSATAトランシーバ800とターゲット装置(図示せず)との間に他の介在するSATAターゲットが存在しない場合には、これらの経路は、ターゲット装置(図示せず)と、SATAダウンリンク・レシーバ810、SATAコマンド・プロセッサ812及びSATAアップリンク・トランスミッタ814のいずれかとの間に延びる。ホスト物理層インターフェース811が、PCI Expressのようなバス・プロトコルと通信し、SATAパケット内の情報を、ホスト・プロセッサ/オペレーション・システム(図示せず)と交換するように構成される。ターゲット物理層インターフェース832は、SATAパケット内の情報を、記憶装置のような特定のターゲットと交換するように構成される。
デュアル・モードSATAトランシーバ800は、SATAイニシエータとして第1のモードで作動するためのターゲット・インターフェース830を含む。場合によっては、ターゲット・インターフェース830は、エンド・ターゲット装置から非SATA応答メッセージを受け取り、次に、上流への再送信のためにそれらをSATAアップリンク・トランスミッタ814に送るように、ターゲット物理層インターフェース832を構成する。ここで用いられる「エンド・ターゲット」という用語は、幾つかの実施形態においては、イニシエータ・ターゲット階層内の最も低いレベルに常駐するターゲットを記述するために用いられる。この最も低いレベルに、ターゲット記憶装置又は他の同様のSATA準拠デバイスが常駐する。ターゲット・インターフェース830は、実行ユニット(図示せず)から非SATAメッセージ825を受信し、ターゲット装置を制御するための制御信号823を生成するように構成される。例えば、制御信号823は、ハードドライブ・コントローラのファームウェア・バージョンをアップグレードすることができ、又は格納関連ポリシーを変更することができる。
少なくとも1つの実施形態において、デュアル・モードSATAトランシーバ800は、ホスト・バス・インターフェース上のコマンドに応答して、非SATAメッセージの生成を制御するためのメッセージ・コントローラ880を含む。メッセージ・コントローラ880を実装するための好適なメッセージ・コントローラは、図7に示される類似した名称のコンポーネント(すなわち、非SATAメッセージ・コントローラ714)のものである。幾つかの実施形態において、デュアル・モードSATAトランシーバ800は、多数のターゲット・ドライブの仮想化をサポートすることができるデュアル・モードのSATAトランシーバ・コントローラ882を含む。例えば、デュアル・モードのSATAトランシーバ・コントローラ882は、仮想ターゲットを1つ又はそれ以上の物理的ターゲットにリンクするマッピング・テーブルを維持することができる。
図9は、本発明の実施形態による、イニシエータ・ターゲット階層内のデュアル・モードSATAトランシーバの例示的な実装を示すブロック図900である。ここでは、(イニシエータとしての)SATAオリジネータ902が、(ターゲットとしての)強化されたポート・マルチプライヤ910に結合される。少なくとも1つの実施形態によると、SATAオリジネータ902を実装するための好適なオリジネータは、図7のSATAホスト・トランシーバ704である。さらに図9のイニシエータ・ターゲット構成を参照すると、強化されたポート・マルチプライヤ910及び強化されたポート・マルチプライヤ912は、それぞれターゲットが強化されたポート・マルチプライヤ912及びディスクドライブ920のためのイニシエータである。このように、隠し経路セグメント950は、SATAオリジネータ902とディスクドライブ920の間に延び、隠し通信チャネルを形成する。示されるように、強化されたポート・マルチプライヤ910及び912の各々は、ディスクドライブ920が有するように、デュアル・モード(「DM」)SATAトランシーバ800を有する。ディスクドライブ920は、示される階層内の「エンド・ターゲット」と考えられる。しかしながら、両方の強化されたポート・マルチプライヤ910及び912内のデュアル・モードSATAトランシーバ800は、メッセージ・ポート860を介して、実行ユニット912に通信する。対照的に、ディスクドライブ920内のデュアル・モードSATAトランシーバ800は、ターゲット・ポート870を介して通信し、記憶装置レベルで通信する。図9に示される構成を用いて、SATAオリジネータ902は、隠し通信チャネルを介して、ディスクドライブ・コントローラ922によって用いられる専用の格納命令及びデータといった非SATAメッセージを、ディスクドライブ・コントローラ922等に送ることができる。1つの実施形態において、ディスクドライブ920内のデュアル・モードSATAトランシーバ800は、ディスクドライブ920の内部にり、場合によっては、ディスクドライブ・コントローラ922の一部として形成することができる。他の実施形態において、デュアル・モードSATAトランシーバ800は、単一チップの強化されたポート・マルチプライヤ又は単一チップのディスクドライブ・コントローラのいずれかの中に形成することができる。
本発明の完全な理解を提供するために、上記の説明は、説明のために特定の専門語を用いている。しかしながら、当業者には、本発明を実施するために特定の詳細を必要としないことが明らかであろう。実際には、本説明は、本発明の何らかの特徴又は態様をいずれかの実施形態に限定するように読まれるべきではなく、寧ろ、1つの実施形態の特徴及び態様は、他の実施形態と容易に置き換えることができる。種々の実施形態の上記の説明は、SATAプロトコル及び記憶装置に関連するが、本説明は、プロトコルが提供しない付加的な通信チャネルを必要とするいずれのタイプの通信プロトコルにも適用可能である。さらに、アップリンク及びダウンリンクを独立して用いることができ、各々を分離して用いることもできる。さらに、種々の実施形態は、アドレス及びベンダー特有のフィールドの使用を示すが、SATAプロトコルが、それらの他のフィールドの使用によって妨害されない(又は、わずかに妨害されるものの、プロトコルの違反はない)限り、他のいずれかのフィールドを用いることができる。
したがって、本発明の特定の実施形態の上記の説明は、図示及び説明目的のために提示される。これらは、網羅的であることを意図していず、本発明を、開示される精密な形態に制限することを意図するものでもなく、明らかに、上記の教示を考慮して、多数の修正及び変形が可能である。実施形態は、本発明の原理及びその実際の適用例を最良に説明するために選択され、述べられるものであり、これにより、当業者が、本発明及び種々の実施形態を、想定される特定の用途に適するような種々の修正と併せて最良に用いることを可能にする。特に、ここに述べられるあらゆる利点が、本発明の実施形態の各々によって実現される必要はなく、寧ろ、いずれかの特定の実施形態が、上述の利点の1つ又はそれ以上を提供することができる。上記の特許請求の範囲及びその均等物が本発明の範囲を定めることが意図される。
102:ホスト・コンピューティング装置
104:隠し通信チャネル
106:プロトコル準拠リンク
110:補足メッセージ
120:記憶装置・システム
130:通信装置
132:リンク・インターフェース
134:補足メッセージ・インターフェース
140:記憶装置

Claims (22)

  1. ホストと記憶装置との間のSATAリンクを介して非SATAメッセージを通信するためのSerial Advanced Technology Attachment(「SATA」)通信装置であって、
    第1のSATA準拠コマンドと関連付けられたSATAメッセージから非SATAメッセージを獲得し、
    第2のSATA準拠コマンドと関連付けられたSATAメッセージ内に非SATAメッセージを挿入する、
    ように構成され、前記非SATAメッセージを前記SATA通信装置と前記ホストとの間で伝達するための隠し通信チャネルを形成するように作動する、SATAトランシーバを備えることを特徴とするSATA通信装置。
  2. 前記隠し通信チャネルは、少なくとも1つの非SATAメッセージを有する前記SATAリンクを介して、少なくとも1つの非SATAメッセージを同時に移送するように構成されることを特徴とする請求項1に記載のSATA通信装置。
  3. 前記第1のSATA準拠コマンドがREADコマンドであり、前記第2のSATA準拠コマンドがIDENTIFY DEVICEコマンドであることを特徴とする請求項14に記載のSATA通信装置。
  4. 第1のSATAメッセージにおいて、前記第1のSATA準拠コマンドをREADコマンドとして検知し、
    前記第1のSATAメッセージからメッセージ・フィールドの少なくとも部分を受け取る、
    ように構成されたダウンリンク・レシーバをさらに備えることを特徴とする請求項3に記載のSATA通信装置。
  5. 前記メッセージ・フィールドの前記部分は、論理ブロック・アドレス(「LBA」)の一部であることを特徴とする請求項4に記載のSATA通信装置。
  6. 前記メッセージ・フィールドの前記部分から非SATAメッセージを構成するように構成された非SATAメッセージ構成バッファをさらに備えることを特徴とする請求項4に記載のSATA通信装置。
  7. 前記非SATAメッセージ構成バッファが有効な非SATAメッセージを含むことを検証するように構成された非SATAメッセージ検証ユニットをさらに備えることを特徴とする請求項7に記載のSATA通信装置。
  8. 第2のSATAメッセージにおいて、前記第2のSATA準拠コマンドをIDENTIFY DEVICEコマンドとして検知し、
    前記第2のSATAメッセージのメッセージ・フィールド内に非SATA応答メッセージの少なくとも部分を挿入する、
    ように構成された、アップリンクを形成するためのアップリンク・トランスミッタをさらに備えることを特徴とする請求項3に記載のSATA通信装置。
  9. 前記メッセージ・フィールドがベンダー特有フィールドであることを特徴とする請求項8に記載のSATA通信装置。
  10. 前記非SATA応答メッセージの前記部分を維持し、
    IDENTIFY DEVICEコマンドを含む別のSATAメッセージを受け取る前記SATAトランシーバに応答して、前記非SATA応答メッセージの前記部分を前記アップリンク・トランスミッタに公開する、
    ように構成された非SATAメッセージ応答バッファをさらに備えることを特徴とする請求項8に記載のSATA通信装置。
  11. Serial Advanced Technology Attachment(「SATA」)準拠記憶装置システムのための、強化された格納関連機能を実行する強化されたポート・マルチプライヤであって、
    前記強化されたポート・マルチプライヤとホストとの間で非SATAメッセージを伝達するための隠し通信チャネルを形成するように構成されたSATAトランシーバと、
    前記非SATAメッセージ内の非SATAコマンドを実行し、前記SATA準拠記憶装置システム内で強化されたストレージ機能を実行するように構成された非SATAメッセージ実行ユニットと、
    を備えることを特徴とする強化されたポート・マルチプライヤ。
  12. 他の強化されたポート・マルチプライヤと通信するように構成されたSATAコマンド・プロセッサをさらに備えることを特徴とする請求項11に記載の強化されたポート・マルチプライヤ。
  13. 前記非SATAメッセージ実行ユニットは、前記強化された格納関連機能を実行するための前記ホストによる要件を無くすことを特徴とする請求項11に記載の強化されたポート・マルチプライヤ。
  14. 前記強化された格納関連機能は、ストライピング機能、ミラーリング機能、連結機能、エンクロージャ管理機能、ファームウェア・アップグレード機能及び管理ポリシー機能の1つ又はそれ以上を含むことを特徴とする請求項11に記載の強化されたポート・マルチプライヤ。
  15. 前記SATA準拠記憶装置システムの仮想化表現を提供するための仮想化ユニットをさらに備え、前記ホストが、前記仮想化表現と対話し、前記強化された格納関連機能を実行するようになったことを特徴とする請求項14に記載の強化されたポート・マルチプライヤ。
  16. 前記隠し通信チャネルは、双方向チャネル又は単方向チャネルのいずれかであり、前記単方向チャネルは、前記ホストから前記強化されたポート・マルチプライヤへのダウンリンク又は該強化されたポート・マルチプライヤから該ホストへのアップリンクのいずれかであることを特徴とする請求項11に記載の強化されたポート・マルチプライヤ。
  17. 前記非SATAメッセージを暗号化するための暗号装置又は暗号化された非SATAメッセージを復号化するための復号装置のいずれか一方又は両方をさらに備えることを特徴とする請求項16に記載の強化されたポート・マルチプライヤ。
  18. 前記強化されたポート・マルチプライヤが単一のチップとして形成された単一の基板をさらに備えることを特徴とする請求項11に記載の強化されたポート・マルチプライヤ。
  19. ホストと装置との間のSATAリンクを介して非SATAメッセージを通信するためのデュアル・モードのSerial Advanced Technology Attachment(「SATA」)トランシーバであって、
    SATAオリジネータ又はSATAイニシエータのいずれか一方又は両方である上流エンティティから発するSATAメッセージから、非SATAメッセージを受け取るように構成されたSATAダウンリンク・レシーバと、
    前記上流エンティティへの伝送のために、非SATAメッセージをSATAメッセージ内に挿入するように構成されたSATAアップリンク・トランスミッタと、
    プロトコル準拠コマンドを発行し、1つ又はそれ以上のターゲット装置に、非SATA応答メッセージを含むプロトコル準拠応答メッセージを生成させるように構成されたSATAコマンド・プロセッサと、
    を備えることを特徴とするデュアル・モードSATAトランシーバ。
  20. 前記SATAダウンリンク・レシーバは、READコマンドを含むSATAパケットから非SATAメッセージを獲得するように構成され、前記SATAアップリンク・トランスミッタは、非SATAメッセージを、IDENTIFY DEVICEコマンドについての応答メッセージを含むSATAパケット内に挿入するように構成され、前記SATAコマンド・プロセッサは、IDENTIFY DEVICEコマンドを発行するように構成されることを特徴とする請求項19に記載のデュアル・モードSATAトランシーバ。
  21. 非SATAメッセージを、ターゲット装置によって使用可能なメッセージに変換し、
    前記メッセージを非SATAメッセージにフォーマットする、
    ように構成されたターゲット・インターフェースをさらに備えることを特徴とする請求項19に記載のデュアル・モードSATAトランシーバ。
  22. 前記ターゲット装置が記憶装置であることを特徴とする請求項21に記載のデュアル・モードSATAトランシーバ。
JP2012207477A 2005-12-20 2012-09-03 記憶装置システムのための、プロトコル定義されたリンクにおいて補足メッセージを伝達するための隠しチャネル Active JP5581360B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/314,162 2005-12-20
US11/314,162 US7571269B2 (en) 2005-08-25 2005-12-20 Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006357024A Division JP5376756B2 (ja) 2005-12-20 2006-12-01 記憶装置システムのための、プロトコル定義されたリンクにおいて補足メッセージを伝達するための隠しチャネル

Publications (2)

Publication Number Publication Date
JP2013020635A true JP2013020635A (ja) 2013-01-31
JP5581360B2 JP5581360B2 (ja) 2014-08-27

Family

ID=37907726

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006357024A Active JP5376756B2 (ja) 2005-12-20 2006-12-01 記憶装置システムのための、プロトコル定義されたリンクにおいて補足メッセージを伝達するための隠しチャネル
JP2012207477A Active JP5581360B2 (ja) 2005-12-20 2012-09-03 記憶装置システムのための、プロトコル定義されたリンクにおいて補足メッセージを伝達するための隠しチャネル

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006357024A Active JP5376756B2 (ja) 2005-12-20 2006-12-01 記憶装置システムのための、プロトコル定義されたリンクにおいて補足メッセージを伝達するための隠しチャネル

Country Status (6)

Country Link
US (1) US7571269B2 (ja)
EP (1) EP1811396B1 (ja)
JP (2) JP5376756B2 (ja)
KR (2) KR101409927B1 (ja)
CN (1) CN101008934B (ja)
TW (1) TWI352908B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015111206A1 (ja) * 2014-01-27 2015-07-30 株式会社日立製作所 計算機システム、サーバモジュール及びストレージモジュール

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7571269B2 (en) * 2005-08-25 2009-08-04 Silicon Image, Inc. Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices
WO2007024740A2 (en) 2005-08-25 2007-03-01 Silicon Image, Inc. Smart scalable storage switch architecture
KR100827170B1 (ko) * 2005-11-30 2008-05-02 재단법인서울대학교산학협력재단 인증서 검증방법과 선택적 추적이 가능한 익명 신용장시스템
US8717910B2 (en) * 2007-04-26 2014-05-06 Cisco Technology, Inc. Field modulation for transfer and measurement of flow statistics
US20090006657A1 (en) * 2007-06-26 2009-01-01 Asad Azam Enabling consecutive command message transmission to different devices
US7904566B2 (en) * 2008-03-14 2011-03-08 Silicon Image, Inc. Method, apparatus, and system for employing an enhanced port multiplier
US7979589B2 (en) * 2008-03-14 2011-07-12 Silicon Image, Inc. Method, apparatus, and system for port multiplier enhancement
JP5033041B2 (ja) * 2008-04-14 2012-09-26 株式会社日立製作所 ストレージシステム
US8554995B2 (en) 2008-07-29 2013-10-08 Hewlett-Packard Development Company, L.P. Connecting a storage subsystem and an electronic device with a control device that hides details of the storage subsystem
TWI494756B (zh) * 2009-08-26 2015-08-01 Phison Electronics Corp 下達讀取指令的方法、快閃記憶體控制器與快閃記憶體儲存系統
US9135215B1 (en) * 2009-09-21 2015-09-15 Tilera Corporation Route prediction in packet switched networks
US9063655B2 (en) * 2010-05-12 2015-06-23 Silicon Image, Inc. Multi-level port expansion for port multipliers
US9237126B2 (en) * 2010-09-09 2016-01-12 Gerald R. McEvoy One-way bus bridge
TW201217979A (en) * 2010-10-18 2012-05-01 Sunix Co Ltd employing single PCI slot on computer motherboard to be expanded with multiple PCI devices
JP5209096B2 (ja) 2011-09-07 2013-06-12 株式会社東芝 リモートアクセスシステム、電子機器およびリモートアクセス処理方法
US8640007B1 (en) 2011-09-29 2014-01-28 Western Digital Technologies, Inc. Method and apparatus for transmitting diagnostic data for a storage device
US9588762B2 (en) * 2012-03-15 2017-03-07 International Business Machines Corporation Vector find element not equal instruction
TWI584128B (zh) * 2012-11-09 2017-05-21 諾瓦晶片加拿大公司 菊鏈式記憶體系統中用於鎖相迴路(pll)鎖定控制之方法及裝置
US9122806B2 (en) 2012-11-28 2015-09-01 Avago Technologies General Ip (Singapore) Pte. Ltd. SATA data appliance for providing SATA hosts with access to a configurable number of SATA drives residing in a SAS topology
US11044009B2 (en) 2013-03-14 2021-06-22 Everactive, Inc. Methods and apparatus for networking using a proxy device and backchannel communication
EP2974090B1 (en) 2013-03-14 2019-05-08 Psikick, Inc. Methods and apparatus for wireless communication via a predefined sequence of a change of a characteristic of a wireless signal
US10420072B2 (en) 2013-03-14 2019-09-17 Everactive, Inc. Methods and apparatus for low power wireless communication
US10063569B2 (en) 2015-03-24 2018-08-28 Intel Corporation Custom protection against side channel attacks
US9904543B2 (en) 2015-10-26 2018-02-27 Hewlett-Packard Development Company, L.P. Setting a build indicator to enable or disable a feature
WO2017214495A1 (en) 2016-06-10 2017-12-14 Liqid Inc. Multi-port interposer architectures in data storage systems
US10152091B2 (en) * 2016-11-09 2018-12-11 Seagate Technology Llc Form factor compatible laptop PC raid array
US10776298B2 (en) * 2016-12-22 2020-09-15 Seagate Technology, Llc Multi-device data storage module
TWI638313B (zh) * 2017-11-07 2018-10-11 瑞昱半導體股份有限公司 浮點數運算電路及方法
US10831507B2 (en) 2018-11-21 2020-11-10 SambaNova Systems, Inc. Configuration load of a reconfigurable data processor
US11188497B2 (en) 2018-11-21 2021-11-30 SambaNova Systems, Inc. Configuration unload of a reconfigurable data processor
US10698853B1 (en) * 2019-01-03 2020-06-30 SambaNova Systems, Inc. Virtualization of a reconfigurable data processor
US11386038B2 (en) 2019-05-09 2022-07-12 SambaNova Systems, Inc. Control flow barrier and reconfigurable data processor
US11055141B2 (en) 2019-07-08 2021-07-06 SambaNova Systems, Inc. Quiesce reconfigurable data processor
US11146299B2 (en) 2019-09-09 2021-10-12 Everactive, Inc. Wireless receiver apparatus and method
US11758480B2 (en) 2020-02-14 2023-09-12 Everactive Inc. Method and system for low power and secure wake-up radio
US11809908B2 (en) 2020-07-07 2023-11-07 SambaNova Systems, Inc. Runtime virtualization of reconfigurable data flow resources
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
US11556494B1 (en) 2021-07-16 2023-01-17 SambaNova Systems, Inc. Defect repair for a reconfigurable data processor for homogeneous subarrays
US11327771B1 (en) 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor
US11409540B1 (en) 2021-07-16 2022-08-09 SambaNova Systems, Inc. Routing circuits for defect repair for a reconfigurable data processor
KR20230036819A (ko) 2021-09-08 2023-03-15 한국전자통신연구원 무선 통신 은닉 채널 검출 방법 및 장치
US11899945B2 (en) 2021-10-03 2024-02-13 Silicon Motion, Inc. Method and apparatus for performing communications specification version control of memory device in predetermined communications architecture with aid of compatibility management, and associated computer-readable medium
US11487694B1 (en) 2021-12-17 2022-11-01 SambaNova Systems, Inc. Hot-plug events in a pool of reconfigurable data flow resources
TWI796211B (zh) * 2022-04-29 2023-03-11 神雲科技股份有限公司 連接埠的設定方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05242002A (ja) * 1992-02-28 1993-09-21 Kawasaki Steel Corp 補助記憶装置
JP2000251448A (ja) * 1999-03-03 2000-09-14 Nec Corp ハードディスクユニット及びそれに用いるユーザ領域設定方法並びにその制御プログラムを記録した記録媒体
JP2003534749A (ja) * 2000-05-23 2003-11-18 サンゲート システムズ インコーポレーテッド Tcp/ipによるscsiを使用するデータ複製方法および装置
US6735650B1 (en) * 2002-08-30 2004-05-11 Western Digital Technologies, Inc. Disk drive and method for data transfer initiated by nonstandard disk-drive commands on a serial ATA interface that only supports standard ATA disk-drive commands
US20040148460A1 (en) * 2003-01-13 2004-07-29 Steinmetz Joseph Harold Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves that may be incorporated within disk arrays, and a storage-shelf-interface tunneling method and system
JP2005513645A (ja) * 2001-12-11 2005-05-12 トムソン ライセンシング ソシエテ アノニム 記憶装置キャッシュメモリマネージメント
JP2005322215A (ja) * 2004-03-31 2005-11-17 Microsoft Corp キャッシュメモリを使用して大容量記憶媒体から情報を読み出すための戦略(strategies)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140592A (en) 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
JP3387041B2 (ja) * 1999-09-30 2003-03-17 富士通株式会社 プロトコル変換装置、通信装置、通信プログラム記憶媒体、および通信システム
US6895455B1 (en) * 2002-06-26 2005-05-17 Western Digital Technologies, Inc. Disk drive and method for implementing nonstandard disk-drive commands on a serial ATA interface that only supports standard ATA disk-drive commands
US6952794B2 (en) 2002-10-10 2005-10-04 Ching-Hung Lu Method, system and apparatus for scanning newly added disk drives and automatically updating RAID configuration and rebuilding RAID data
US20040177218A1 (en) 2002-11-06 2004-09-09 Meehan Thomas F. Multiple level raid architecture
US7206989B2 (en) 2002-11-20 2007-04-17 Intel Corporation Integrated circuit having multiple modes of operation
US8301809B2 (en) 2003-07-02 2012-10-30 Infortrend Technology, Inc. Storage virtualization computer system and external controller thereof
US20050114464A1 (en) 2003-10-27 2005-05-26 Shai Amir Virtualization switch and method for performing virtualization in the data-path
JP2006134208A (ja) 2004-11-09 2006-05-25 Fujitsu Ltd ストレージ仮想化装置
US7853741B2 (en) * 2005-04-11 2010-12-14 Emulex Design & Manufacturing Corporation Tunneling SATA targets through fibre channel
US7743178B2 (en) * 2005-04-11 2010-06-22 Emulex Design & Manufacturing Corporation Method and apparatus for SATA tunneling over fibre channel
US7571269B2 (en) * 2005-08-25 2009-08-04 Silicon Image, Inc. Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices
WO2007024740A2 (en) * 2005-08-25 2007-03-01 Silicon Image, Inc. Smart scalable storage switch architecture

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05242002A (ja) * 1992-02-28 1993-09-21 Kawasaki Steel Corp 補助記憶装置
JP2000251448A (ja) * 1999-03-03 2000-09-14 Nec Corp ハードディスクユニット及びそれに用いるユーザ領域設定方法並びにその制御プログラムを記録した記録媒体
JP2003534749A (ja) * 2000-05-23 2003-11-18 サンゲート システムズ インコーポレーテッド Tcp/ipによるscsiを使用するデータ複製方法および装置
JP2005513645A (ja) * 2001-12-11 2005-05-12 トムソン ライセンシング ソシエテ アノニム 記憶装置キャッシュメモリマネージメント
US6735650B1 (en) * 2002-08-30 2004-05-11 Western Digital Technologies, Inc. Disk drive and method for data transfer initiated by nonstandard disk-drive commands on a serial ATA interface that only supports standard ATA disk-drive commands
US20040148460A1 (en) * 2003-01-13 2004-07-29 Steinmetz Joseph Harold Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves that may be incorporated within disk arrays, and a storage-shelf-interface tunneling method and system
JP2005322215A (ja) * 2004-03-31 2005-11-17 Microsoft Corp キャッシュメモリを使用して大容量記憶媒体から情報を読み出すための戦略(strategies)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015111206A1 (ja) * 2014-01-27 2015-07-30 株式会社日立製作所 計算機システム、サーバモジュール及びストレージモジュール

Also Published As

Publication number Publication date
JP2007179549A (ja) 2007-07-12
CN101008934A (zh) 2007-08-01
KR20130100250A (ko) 2013-09-10
KR101409927B1 (ko) 2014-06-19
CN101008934B (zh) 2010-11-17
EP1811396B1 (en) 2017-08-30
JP5376756B2 (ja) 2013-12-25
US7571269B2 (en) 2009-08-04
US20070180172A1 (en) 2007-08-02
JP5581360B2 (ja) 2014-08-27
TW200801964A (en) 2008-01-01
KR101421480B1 (ko) 2014-07-23
TWI352908B (en) 2011-11-21
EP1811396A2 (en) 2007-07-25
KR20070065846A (ko) 2007-06-25
EP1811396A3 (en) 2009-07-29

Similar Documents

Publication Publication Date Title
JP5581360B2 (ja) 記憶装置システムのための、プロトコル定義されたリンクにおいて補足メッセージを伝達するための隠しチャネル
JP4698982B2 (ja) 暗号処理を行うストレージシステム
US7779275B2 (en) Communication of information via an in-band channel using a trusted configuration space
US8200857B2 (en) Coalescing multiple contexts into a single data transfer in a media controller architecture
US7640378B2 (en) Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays
TWI620093B (zh) 用於保全電腦大容量儲存資料的方法和裝置
JP2016505960A (ja) 互換性を保つオフロード・トークン・サイズの拡大
US10313236B1 (en) Method of flow based services for flash storage
EP1646951B1 (en) Intermediate station packet forwarding check
US20140164571A1 (en) Copy offload for disparate offload providers
US8199648B2 (en) Flow control in a variable latency system
Anderson et al. USB 3.0 Technology
Palekar et al. Design and implementation of a software prototype for storage area network protocol evaluation
Landström Bridging of SCSI to SATA and Implementationof a SATA Controller using Virtex-5
Khan VERILOG VERIFICATION METHODOLOGY FOR SERIAL PROTOCOLS

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140131

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20140228

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140617

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140714

R150 Certificate of patent or registration of utility model

Ref document number: 5581360

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250