以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る通信システムの構成例を示す図である。第1の実施の形態に係る通信システムは、第1の情報機器1、第2の情報機器2、第1の中継装置3、および第2の中継装置4を有する。第1の中継装置3と第2の中継装置4とは対で使用される。例えば、第1の中継装置3と第2の中継装置4とは、長距離通信が可能な通信規格の伝送路で接続される。第1の中継装置3と第2の中継装置4とは、互いに通信することで、第1の中継装置3に接続された第1の情報機器1と、第2の中継装置4に接続された第2の情報機器2との間で通信されるデータを中継する。
第1の中継装置3は、第1の通信部3a、第2の通信部3b、および制御部3cを有する。第1の通信部3aは、第1の情報機器1との間で、多階層で定義された第1の通信規格のうちの最上位より下位の第1の階層の規格に従った通信を行う。第2の通信部3bは、対向側の第2の中継装置4との間で、第2の通信規格に従った通信を行う。
制御部3cは、第2の情報機器2の装置情報6を、第2の通信部4bが第2の中継装置4から受信すると、第2の情報機器2の装置情報6を保持する。例えば制御部3cは記憶部3dを有しており、受信した第2の情報機器2の装置情報6を記憶部3dに格納する。また制御部3cは、第1の通信部3aが、第1の情報機器1との間で第1の階層の規格に従った通信の接続を確立すると、保持しておいた第2の情報機器2の装置情報6を、第1の通信部3aを介して第1の情報機器1に送信する。
制御部3cは、第1の情報機器1との接続の確立から所定時間たっても第2の情報機器2の装置情報6を第1の情報機器1に送信できない場合、第1の通信部3aに対して通信の接続の再確立を指示する。当該指示を受けた第1の通信部3aは、通信の接続を切断し、再度、第1の情報機器1との間で通信の接続を確立する。
第2の中継装置4は、第1の通信部4a、第2の通信部4b、および制御部4cを有する。第1の通信部4aは、第2の情報機器2との間で、第1の通信規格の第1の階層の規格に従った通信を行う。第2の通信部4bは、対向側の第1の中継装置3との間で、第2の通信規格に従った通信を行う。
制御部4cは、第1の情報機器1の装置情報5を、第2の通信部4bが第1の中継装置3から受信すると、第1の情報機器1の装置情報5を保持する。例えば制御部4cは記憶部4dを有しており、受信した第1の情報機器1の装置情報5を記憶部4dに格納する。また制御部4cは、第2の通信部4bが、第2の情報機器2との間で第1の階層の規格に従った通信の接続を確立すると、保持しておいた第1の情報機器の装置情報5を、第1の通信部4aを介して第2の情報機器2に送信する。
制御部4cは、第2の情報機器2との接続の確立から所定時間たっても第1の情報機器1の装置情報5を第2の情報機器2に送信できない場合、第1の通信部4aに対して通信の接続の再確立を指示する。当該指示を受けた第1の通信部4aは、通信の接続を切断し、再度、第2の情報機器2との間で通信の接続を確立する。
なお第1の情報機器1と第2の情報機器2とのそれぞれの装置情報5,6は、第1の通信規格の第1の階層よりも上位の第2の階層での通信の接続に使用する情報である。装置情報5,6には、例えば送信した情報機器(第1の情報機器1または第2の情報機器2)の識別情報が含まれる。
このようなシステムによれば、第1の中継装置3の第1の通信部3aが、第1の情報機器1との間で、第1の通信規格の第1の階層の規格に従った通信の接続を確立する。その後、第1の通信部3aが、第1の情報機器1の装置情報5を、第1の情報機器1から受信すると、第2の通信部3bが、第2の通信規格に従って、その装置情報5を第2の中継装置4に送信する。
第2の中継装置4では、第2の通信部4bが、第1の情報機器1の装置情報5を第1の中継装置3から受信する。すると制御部4cが、第1の情報機器1の装置情報5を保持する。その後、第2の中継装置4の第1の通信部4aが、第2の情報機器2との間で、第1の通信規格の第1の階層の規格に従った通信の接続を確立する。すると制御部4cは、保持しておいた第1の情報機器1の装置情報5を、第1の通信部4aを介して第2の情報機器2に送信する。
また第1の通信部4aと第2の情報機器2との間での通信の接続が確立した後、第1の通信部4aが、第2の情報機器2の装置情報6を、第2の情報機器2から受信する。すると、第2の通信部4bが、第2の通信規格に従って、その装置情報6を第1の中継装置3に送信する。
第1の中継装置3では、第2の通信部3bが、第2の情報機器2の装置情報6を第2の中継装置4から受信する。すると制御部3cが、第2の情報機器2の装置情報6を保持する。この時点で、第1の情報機器1と第1の通信部3aとの間の通信の接続の確立から所定時間以上経過している場合、第1の情報機器1と第1の通信部3aとの間の通信の再接続が行われる。その後、第1の通信部3aが、第1の情報機器1との間で通信の接続を確立すると、制御部3cは、保持しておいた第2の情報機器2の装置情報6を、第1の通信部3aを介して第1の情報機器1に送信する。
以上の手順により、第1の情報機器1と第2の情報機器2とは、通信相手の装置情報5,6を取得できる。そして第1の情報機器1と第2の情報機器2との間で、通信相手の装置情報5,6を用いて、第1の通信規格の第2の階層以上の規格に従った通信の接続が可能となる。その結果、第1の情報機器1と第2の情報機器2との間で、第1の通信規格の全階層に適合した形式で、データを通信することができる。
第1の実施の形態に示す第1の情報機器1と第2の情報機器2との通信接続では、第1の通信部3a,4aでは、第1の通信規格における第1の階層以下の規格を満たす機能を有していればよい。そのため第1の通信部3a,4aは、第1の通信規格のすべてを満たす回路に比べ簡易な回路ですみ、小型化が可能となる。その結果、第1の中継装置3や第2の中継装置4の小型化を促進できる。しかも、第1の通信部3a,4aの回路が簡略化されれば、消費電力も少なくて済む。さらに第1の通信部3a,4aの回路が簡略化されたことで、第1の通信部3a,4aの回路設計にかかる手間を省力化することができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、遠隔地にある2台のSAS機器を接続する場合の例である。第2の実施の形態では、SASのphyレイヤのフレームを、光通信で遠隔地に伝送するものとする。
図2は、SAS規格のレイヤ構造を示す図である。SAS規格は、6段階のレイヤ構造となっており、下位のレイヤから順にClause5〜Clause10と名付けられている。下位から4階層のレイヤは、下から順に、SASphysical(物理)レイヤ、SASphyレイヤ、SASリンクレイヤ、SASポートレイヤである。このうち、SASリンクレイヤは、SSPリンクレイヤ、STPリンクレイヤ、およびSMPリンクレイヤに分かれている。SASportレイヤの上位には、SSPトランスポートレイヤ、STPトランスポートレイヤ、およびSMPトランスポートレイヤが設けられている。SSPトラスポートレイヤ、STPトランスポートレイヤ、SMPトランスポートレイヤそれぞれの上位には、SCSIアプリケーションレイヤ、ATAアプリケーションレイヤ、マネジメントアプリケーションレイヤが設けられている。
中継装置が有するSASアダプタにおいて、図2に示すレイヤ構造のすべてをサポートする場合、SASアダプタの回路が複雑となり、小型化が困難となる。他方、SASアダプタにおいて下位のレイヤまでのサポートで足りれば、SASアダプタの小型化が可能となる。そこで、第2の実施の形態では、中継装置において、SASphyレイヤまでのサポートにより、SAS機器間のデータ中継を可能とする。
図3は、第2の実施の形態のシステム構成例を示す図である。第2の実施の形態に係るシステムは、2台のSAS機器100,200と、2台の中継装置300,400とを有している。
SAS機器100,200は、SASによってデータ通信を行う機器である。SAS機器100,200としては、例えばストレージ装置(SASデバイス)や、ストレージ装置でデータの入出力を行うコンピュータ(ホスト)がある。SAS機器100,200は、SASのすべてのレイヤによる通信機能を有する。なおSAS機器100,200は、図1に示した第1の情報機器または第2の情報機器の一例である。
中継装置300,400は、SAS機器100,200間で通信されるSASphyレイヤのフレームを、別の通信規格のデータに変換して中継する。図3の例ではSAS機器100に中継装置300が接続され、SAS機器200に中継装置400が接続されている。2台の中継装置300,400の間は、光ファイバ11で接続されている。光ファイバ11が、中継装置300,400間の伝送路として用いられる。
中継装置300,400には、SAS機器100,200と通信するための回路として、SASにおけるSASphyレイヤ以下の機能をサポートした通信回路が実装される。すなわち中継装置300,400は、SASデータを終端せずに、別規格へデータ変換(データフレームフォーマット変換:framing/deframing)して伝送する。この場合、対向側SAS機器から送られてきたアイデンティファイ・アドレス・フレーム(以下、「IDENTIFY」と呼ぶ)がSAS機器に送出できずに消滅してしまわないようにするために、中継装置300,400においてIDENTIFY制御が行われる。IDENTIFYは、SAS機器100,200間で、SASphyレイヤより上位のレイヤで通信の接続を確立するために交換するフレームである。IDENTIFYには、SAS機器100,200それぞれの構成情報(識別情報も含む)が含まれる。なおIDENTIFYは、図1に示した装置情報5,6の一例である。
図4は、IDENTIFYのフレームフォーマット例を示す図である。IDENTIFY30は、アドレスフレームの一種である。IDENTIFY30の先頭には、SOAF(Start Of Address Frame)のフィールド31である。SOAFのフィールド31には、アドレスフレームの開始を示すプリミティブ(start of address frame primitive)が設定される。SOAFのフィールド31に続く32バイトのフィールド32に、IDENTIFYの内容が設定される。フィールド32内は、4バイト(dword)単位に分割されている。IDENTIFY30の最後にEOAFのフィールド33が設けられている。EOAF(End Of Address Frame)のフィールド33には、アドレスフレームの終了を示すプリミティブ(end of address frame primitive)が設定される。
図5は、IDENTIFYの内容を示す図である。IDENTIFYの内容を示す32バイトのうち、1バイト目(Byte 0)のBit0〜Bit3の4ビットは、アドレスフレームタイプフィールドである。アドレスフレームタイプフィールドには、アドレスフレームの種別が設定される。IDENTIFYの場合、アドレスフレームタイプフィールドに「0h」が設定される。
中継装置300,400においてSASの終端を行わずに、通信するSAS機器100,200間でSASの通信を行う場合、SAS機器100,200間でIDENTIFY交換される。SAS機器100,200間でのIDENTIFYの交換を実現するために、中継装置300,400では、IDENTIFYの受け渡しの制御が行われる。以下、IDENTIFYの受け渡し制御の有用性について説明する。
IDENTIFYは、リンク確立(リンクアップ)の際に使用される。そこで、2台のSAS機器100,200が直接接続されている場合を想定し、どのようにしてリンクが確立されるのかについて説明する。
図6は、SAS機器を直接接続した場合のリンク確立手順を示す図である。SASによる通信を行うにあたっては、SAS規格上、先ず、SASphyレベルの動作としてPHY reset sequence(SAS OOB sequence とSAS speed negotiation sequenceを含む)が行われる。Phy reset sequenceは、SASのデータ転送のレート整合のためのスピードネゴシエーションなどの制御処理である。またPhy reset sequenceでは、COMINIT(通信の初期化要求の信号)などが送信される。なお各SAS機器100,200のPhy reset sequenceは、それぞれのリセット解除後に開始される。
SAS機器100,200は、Phy reset sequenceの処理結果として、PHY接続状態やLink Rate情報を得る。PHY接続状態は、SASphyレイヤでの接続が確立したか否かを示す情報である。Link Rate情報は、SASphyレイヤでの通信の接続が確立した場合に、どのLink Rate(1.5Gbps、3Gbpsなど)で接続が確立したのかを示す情報である。Link Rateは、Phy reset sequence内のSAS speed negotiation sequenceによって判定される。
Phy reset sequence処理後にSASphyレイヤの接続が確立する(Phy readyとなる)。そして、SASphyレイヤの接続が確立後にSASリンクレイヤでのリンクを確立することによりSASデータの通信(データ伝送)が可能となる。
SASの規格上、SASリンクレイヤでの接続を確立(リンクアップ)するために、SAS機器100,200間でIDENTIFYが交換される。これは、通信相手のSASアダプタの構成情報を知るために行われる。すなわちSAS機器100,200は、それぞれSASphyレイヤでの接続確立後に相手側に対してIDENTIFYを送出すると共に、相手側から送出されてくるIDENTIFYを受信する。これによりSAS機器100,200は、お互いに相手側のSASアダプタの構成情報を取得することができる。このとき、各SAS機器100,200は、自身がIDENTIFYを送信してから、規定時間(1msec)内に相手側からのIDENTIFYを受信するように、SAS規格で定められている。
このIDENTIFYの送受信の制御処理により、SASアダプタ間の整合が取れ、SASリンクがイネーブルとなり、SASリンクが確立(リンクアップ)する。SASリンク確立(リンクアップ)後に、データ転送が可能となる。
図6に示したように、SAS機器100,200がSASで直接接続された場合、SASの規格に沿ってリンクが確立される。他方、図3に示すように、SAS機器100,200を、中継装置300,400を介して接続したシステム構成の場合、両端のSAS機器100,200のSASphy接続確立のタイミングが一致することは確率的にも稀である。
図7は、中継装置でIDENTIFY制御を行わない場合のリンクアップ動作を示すシーケンス図である。SAS機器100,200は、それぞれ接続された中継装置300,400との間で、SASphyレイヤでの接続を確立する。図7の例では、SAS機器200よりもSAS機器100の方が早く、SASphyレイヤでの接続を確立している。
SASphyレイヤでの接続の確立が早かった方のSAS機器100側からは、SASphy接続確立後にリンク確立を行うためIDENTIFYが中継装置300経由で送出される。一方、対向側の中継装置400ではそのIDENTIFYを受信すると、SAS機器200への送出を試みる。しかし中継装置400とSAS機器200との間はまだPhy Reset Sequence 処理中でSASphy接続が確立していない。そのため中継装置400は、SAS機器200にIDENTIFY を送出することができない。
SASphyレイヤの接続確立が早かった方のSAS機器100側は、IDENTIFYを送出して対向側のSAS機器200からのIDENTIFYの受信を待っているが、対向側のSASphyの接続確立していないために、SAS機器200のIDENTIFYを受信できない。しばらくすると、SASphyレイヤでの通信の接続の確立が早かった方のSAS機器100と中継装置300間では、SAS規格で定められた規定時間内(1msec)のIDENTIFY 受信のタイムアウトが発生する。タイムアウトが発生すると、再度Phy Reset Sequence処理が行われる。その結果、SAS機器100と中継装置300との間ではSASphyレイヤでの接続は確立したがリンク確立がされずSASのデータ伝送(通信)ができなくなってしまう。
同様に、SASphyレイヤの接続確立が遅かった方のSAS機器200側を基準にした場合でも、同様にIDENTIFYの受信タイムアウトが起きる。これにより、2台のSAS機器100,200は、中継装置300,400との間でPhy Reset Sequence処理を繰り返し、リンクが確立しない(リンクアップしない)状態が継続する。
このように、中継装置でIDENTIFY制御を行わない場合、両端のSAS機器100,200のSASphy接続確立のタイミングが一致しないため、SAS機器100,200間でリンクが確立せず、最終的にデータの伝送ができないという問題がある。
なお、SAS機器100,200のIDENTIFYの送信タイミングが偶然に一致すればリンクが確立されるが、そのような可能性は低い。例えば、SASのLink Rateが6Gbpsの場合、Phy reset sequenceの開始からPhy readyとなるまでの所要時間は、約2.3msec〜約22.3msecである。またPhy reset sequenceの開始からタイムアウトまでの所要時間は、約22.3msecである。これだけの所要時間のうち、IDENTIFYを送信してから、相手からのIDENTIFYの受信待ち時間(受信タイムアウト)は、1msecしかない。そのため、IDENTIFYの送信タイミングが偶然に一致することは少ない。またIDENTIFYの送信タイミングが偶然に一致することがあるとしても、偶然に頼ってリンクを確立するような信頼性の低い通信システムは、実用的ではない。
第2の実施の形態では、この問題を解決する手段として、中継装置300,400においてIDENTIFY制御を行う。中継装置300におけるIDENTIFY制御を例に採ると、中継装置300は、SAS機器200とSASphyレイヤでの接続が確立した対向側の中継装置400から送られてくるIDENTIFYを、一時的に保持する。その後、中継装置300は、SAS機器100とSASphyレイヤでの接続が確立した後にSAS規格で定められた時間内(1msec)に、保持しておいたIDENTIFYを接続するSAS機器100に送出する。これにより、SAS機器100は、IDENTIFYの受信タイムアウトをせずにすみ、その後のリンクの確立が可能となる。
同様に、中継装置400においても同様にSAS機器200との間でSASphyレイヤの接続が確立される。そしてSAS機器200と中継装置400との間でリンクが確立する。双方のSAS機器100,200のリンクが確立することで、SAS機器100,200間のSASリンクレイヤ以上の階層でのデータ通信が可能となる。その際、中継装置300,400間では、SASphyレイヤにおけるフレームを光通信のフレームに変換することで、データが中継される。
また、中継装置300,400は、互いのSASの通信状態(PHY接続状態やLink Rate情報)を送受信することにより、SASのリンクダウンと再リンクアップの開始や、保持しているIDENTIFY の廃棄・更新を行う。
図8は、第2の実施の形態における各機器の内部構成を示すブロック図である。SAS機器100,200は、それぞれSASアダプタ110,210を有している。SASアダプタ110,210は、SASのすべてのレイヤの規格に沿った通信を行う。
中継装置300,400は、SASphyアダプタ310,410、光通信コントローラ320,420、およびIDENTIFY制御部330,430を有している。
SASphyアダプタ310,410は、SASphyレイヤ以下での通信を行う通信回路である。中継装置300のSASphyアダプタ310は、SAS機器100のSASアダプタ110に接続されている。中継装置400のSASphyアダプタ410は、SAS機器200のSASアダプタ210に接続されている。光通信コントローラ320,420は、光ファイバ11を介した光通信を行う通信回路である。光通信コントローラ320,420は、例えば10GBASE−Rの規格に従って通信を行う。IDENTIFY制御部330,430は、SASphyレイヤでの通信時に、SAS機器100,200間で交換されるIDENTIFYの受け渡しを制御する。
図8に示すように、中継装置300,400はSASphyアダプタ310,410でSAS機器100,200と接続されている。SASphyアダプタ310,410は、SASphyレイヤより上位のレイヤの規格に対応する機能を含んでおらず、ハードウェアの回路規模を小さくできる。しかも、SASの上位レイヤ用の回路の設計や上位レイヤ用のソフトウェア作成が不要となり、開発期間の短期化および低コスト化が実現できる。
なお、第2の実施の形態では、SASphyレイヤ以下の通信機能によってSAS機器100,200間の通信データを中継できるようにするため、IDENTIFY制御部330,430によりIDENTIFYの受け渡しについて特別な制御を行う。
以下、中継装置300,400によるIDENTIFY制御を伴うデータの中継処理について詳細に説明する。
図9は、中継装置内の構成要素間の関係を示す図である。中継装置300内のSASphyアダプタ310は、SAS機器100内のSASアダプタ110との間で、SASphyレイヤの接続を確立する。SASphyアダプタ310は、SAS機器100からPHY接続状態またはLink Rate情報を受信すると、受信したPHY接続状態またはLink Rate情報を、光通信コントローラ320とIDENTIFY制御部330とに送信する。PHY接続状態は、SASphyレベルでの接続の確立の有無を示す情報である。Link Rate情報は、SAS機器100との間のリンクの転送速度を示す情報である。
またSASphyアダプタ310は、SAS機器100からの受信データ(SAS Rx Data)を、光通信コントローラ320に送信する。またSASphyアダプタ310は、対向するSAS機器200が送出したデータ(SAS Tx Data)をIDENTIFY制御部330経由で受信すると、そのデータをSAS機器100に送信する。
SASphyアダプタ310は、IDENTIFY制御部330からPhy Reset Sequence再起動信号が入力されると、SAS機器100とSASphyレイヤで接続するためのPhy Reset Sequenceを再度実行する。
なお、SASphyアダプタ310は、SASphyレイヤより上位のレイヤの通信機能は備えておらず、SAS規格におけるインタフェースの終端としては機能しない。
光通信コントローラ320は、SASと光通信用のインタフェース規格との間のフレームフォーマット変換を行う。例えば光通信コントローラ320は、フレーミング部321とデフレーミング部322とを有する。
フレーミング部321は、中継装置300側のSAS機器100から受信したSASフレームを別規格(例えば10GBASE−R)のフレームへ変換する。フレーミング部321は、変換後のフレームを、光通信により、対向側の中継装置400に送信する。フレーミング部321は、フレーム送信の際に、PHY接続状態やLink Rate情報をフレームに多重化して送信する。
なおフレーミング部321は、送信するフレームに、PHY接続状態やLink Rate情報のフレームなのか、SAS機器が送出したデータのフレームなのかを示す情報を付与する。
図10は、中継装置間で通信されるフレームのフォーマット例を示す図である。例えばフレーム20の先頭にフラグフィールド21が設けられる。フラグフィールド21には、そのフレームの種別を示すフラグが設定される。フラグフィールド21に続けて、データフィールド22が設けられる。データフィールド22には、送信されるデータが設定される。
例えばフラグフィールド21に、PHY接続状態/Link Rate情報を示すフラグが設定されている場合、データフィールド22には、PHY接続状態情報、またはLink Rate情報が設定される。またフラグフィールド21に、SAS機器100から送信されたデータを示すフラグが設定されている場合、データフィールド22には、SAS機器100から送信されたデータが設定される。SAS機器100から送信されたデータには、SAS規格での通信に用いられる各種情報(address frame/SSP or SMP frame/primitive)が含まれる。
以下、図9の説明に戻る。
デフレーミング部322は、対向する中継装置400から受信した光通信用のフレームを、SASフレームに変換する。またデフレーミング部322は、受信したフレームから多重されていたPHY 接続状態やLink Rate情報を分離する。デフレーミング部322は、SASフレームに変換されたデータ(SAS Tx Data)と、分離したPHY 接続状態Link Rate情報を、IDENTIFY制御部330に送信する。なおデフレーミング部322は、例えば受信したフレーム20のフラグフィールド21を参照して、受信したフレーム20の内容が、PHY 接続状態/Link Rate情報なのか、SAS機器200が送信したデータなのかを判別できる。
IDENTIFY制御部330は、対向する中継装置400から受信したデータ(SAS Tx Data)からIDENTIFYを分離して、保持する。そしてIDENTIFY制御部330は、双方のSAS機器100,200から送出されたPHY接続状態やLink Rate情報に基づいて、適切なタイミングでIDENTIFYをSASphyアダプタ310に出力する。
図11は、IDENTIFY制御部の内部構成の一例を示す図である。IDENTIFY制御部330は、デマルチプレクサ(DMUX)331、FIFO(First-In First-Out)バッファ332、IDENTIFYレジスタ333、セレクタ(SEL)334、タイマ335、リンクレート比較部336、対向側状態監視部337、および論理和回路338を有する。
デマルチプレクサ331は、対向する中継装置400から受信したデータ(SAS Tx Data)をIDENTIFYとIDENTIFY以外のフレームとに分離する。デマルチプレクサ331は、分離して得られたIDENTIFY以外のフレームを、FIFOバッファ332に格納し、IDENTIFYをIDENTIFYレジスタ333に格納する。
FIFOバッファ332は、デマルチプレクサ331から送られたフレームを順番に記憶する。そしてFIFOバッファ332は、先に記憶されたフレームから順に、セレクタ334に出力する。
IDENTIFYレジスタ333は、IDENTIFYを一時的に記憶する。IDENTIFYレジスタ333の記憶内容はIDENTIFY受信ごとに更新される。
セレクタ334は、リンク確立前は、中継装置300側のSAS機器100とのSASphyレイヤでの接続確立後、IDENTIFYレジスタ333に保持しておいたIDENTIFYをSAS規格で規定された回数(1回または3回)送出する。その後、セレクタ334は、FIFOバッファ332に格納されたデータ(IDENTIFY以外のフレーム)を送出する。なおSASphyレイヤでの接続が確立したかどうかは、例えばSASphyアダプタ310から送られるPHY接続状態情報に基づいて判断できる。またセレクタ334は、対向側の中継装置400とSAS機器200との間のSASphy接続が一定期間以上未確立となった場合には、IDENTIFYレジスタ333に保持しているIDENTIFYを廃棄する。
タイマ335は、PHY接続状態の情報に基づいて、SAS機器100とのSASphyレイヤでの接続の確立の有無を認識する。そしてタイマ335は、SAS機器100とのSASphyレイヤでの接続確立後、1msecのタイマを初期化し、時間のカウント(計時)を開始する。その後、タイマ335は、セレクタ334の動作を監視し、IDENTIFYの送出の有無を認識する。そしてタイマ335は、1msecのタイマ満了時までに、セレクタ334において、IDENTIFYの送出が行われなかった場合、Phy Reset Sequence を再起動する。Phy Reset Sequenceを再起動する場合、タイマ335は、Phy Reset Sequence再起動信号を、論理和回路338を介してSASphyアダプタ310に送信する。
リンクレート比較部336は、中継装置300側と対向側とから送られたLink Rate情報にも基づいて、リンクレート(リンクの通信速度)を比較する。リンクレート比較部336は、リンクレートが一致しなかった場合には、Phy Reset Sequenceを再起動する。Phy Reset Sequence を再起動する場合、リンクレート比較部336は、Phy Reset Sequence再起動信号を、論理和回路338を介してSASphyアダプタ310に送信する。その際、中継装置300側と対向側のリンクレートのうち低速な方のリンクレートを、自中継装置300側のリンクレートとして設定する。リンクレートを設定する場合、リンクレート比較部336は、新たなリンクレートを示すリンクレート設定情報を、SASphyアダプタ310に送信する。
対向側状態監視部337は、対向側の中継装置400とSAS機器200との間のSASphyレイヤでの接続状態を監視する。例えば対向側状態監視部337は、自中継装置300と対向側の中継装置400それぞれのPHY接続状態の情報を取得する。そして対向側状態監視部337は、自中継装置300側のSASphyレイヤでの接続確立中に、対向側の中継装置400のSASphyレイヤでの接続が一定時間以上未確立である場合、Phy Reset Sequenceを再起動する。また対向側状態監視部337は、自中継装置300側のSASphyレイヤでの接続確立中に、対向側の中継装置400のSASphyレイヤでの接続が確立/未確立を繰り返す場合に、Phy Reset Sequence を再起動する。Phy Reset Sequence を再起動する場合、対向側状態監視部337は、Phy Reset Sequence再起動信号を、論理和回路338を介してSASphyアダプタ310に送信する。
なお、対向側の中継装置400におけるSASphyレイヤでの接続確立/未確立の繰り返しは、対向する中継装置400から受信するIDENTIFYのフレーム数をカウントすることによっても認識可能である。すなわち、IDENTIFYはSASphyレイヤでの接続が確立された際に送信される。そのため、対向側の中継装置400からIDENTIFYが繰り返し送られてくる場合、対向側の中継装置400において、SASphyレイヤでの接続が確立/未確立が繰り返されていると認識できる。
論理和回路338は、タイマ335、リンクレート比較部336、および対向側状態監視部337のいずれかからPhy Reset Sequence再起動信号が出力されると、そのPhy Reset Sequence再起動信号をSASphyアダプタ310に送信する。
なお図9には、中継装置300内の要素間の関係を示したが、対向側の中継装置400内の要素間の関係も、中継装置300と同様である。また図11には、中継装置300のIDENTIFY制御部330内の構成を示したが、対向側の中継装置400のIDENTIFY制御部430内の構成も、IDENTIFY制御部330と同様である。
次に、中継装置300,400でIDENTIFY制御を行った場合のリンク確立手順について説明する。
図12は、IDENTIFY制御を伴うリンク確立手順の一例を示すシーケンス図である。SAS機器100は、リセット解除指示(ステップS11)に応じて、Phy Reset Sequenceを開始する。Phy Reset Sequenceでは、例えばSAS機器100から中継装置300へ、COMINITが送信される(ステップS12)。その後、中継装置300も同様に、リセット解除指示(ステップS13)に応じて、Phy Reset Sequenceを開始する。Phy Reset Sequenceでは、例えば中継装置300からSAS機器100へ、COMINITが送信される(ステップS14)。
その後、SAS機器100からのCOMINITの送信(ステップS15)などが行われ、SAS機器100と中継装置300との間でのSASphyレイヤでの接続確立手続きが行われる。SASphyレイヤでの接続が確立すると、SAS機器100と中継装置300との双方において、Phy Ready(SASphyレイヤでの接続確立状態)となる(ステップS16,S17)。
SAS機器100と中継装置300との間のSASphy接続確立後、SAS機器100からIDENTIFYが送出される(ステップS18)。このIDENTIFYは中継装置300を介して中継装置400へ転送される(ステップS19)。
他方、中継装置400では、中継装置300からIDENTIFYが送信される前から、リセット解除指示(ステップS31)に応じてPhy Reset Sequenceを開始している。Phy Reset Sequenceでは、例えば中継装置400からSAS機器200へ、COMINITが送信される(ステップS32)。SAS機器200も同様に、リセット解除指示(ステップS33)に応じて、Phy Reset Sequenceを開始する。Phy Reset Sequenceでは、例えばSAS機器200から中継装置400へ、COMINITが送信される(ステップS34)。その後、中継装置400からのCOMINITの送信(ステップS35)などが行われ、中継装置400とSAS機器200との層で、Phy Reset Sequenceが進められる。
図12の例では、中継装置300から中継装置400へIDENTIFYが転送されたとき、中継装置400とSAS機器200との間はPhy Reset Sequence処理中であり、PHY 接続未確立である。そこで中継装置400で、受信したIDENTIFYが保持される(ステップS36)。
中継装置400とSAS機器200との間のSASphyレイヤでの接続が確立すると、SAS機器200と中継装置400との双方において、Phy Ready(SASphyレイヤでの接続確立状態)となる(ステップS37,S38)。SAS機器200と中継装置400との間のSASphy接続確立後、SAS機器200からIDENTIFYが送出される(ステップS39)。このIDENTIFYは中継装置400を介して中継装置300へ転送される(ステップS40)。
また中継装置400は、SASphyレイヤでの接続確立後、1msec以内に、保持していたIDENTIFYをSAS機器200に送信する(ステップS41)。これにより、SAS機器200では、IDENTIFYの受信タイムアウトは発生せずに、中継装置400とSAS機器200との間でリンクが確立する。
中継装置300では、IDENTIFYの送信(ステップS19)後、1msecのタイマのタイムアウト以前に対向側のSAS機器200からのIDENTIFYを受信できないため、IDENTIFYの受信タイムアウトとなる(ステップS20)。このとき、SAS機器100においてもIDENTIFYの受信タイムアウトが発生している。受信タイムアウトとなった中継装置300とSAS機器100とは、それぞれPhy Reset Sequenceを再度実行する。Phy Reset Sequenceでは、例えば中継装置300とSAS機器100との双方からCOMINITが送信される(ステップS21,S22)。
図12の例では、中継装置400から中継装置300へIDENTIFYが転送されたとき、中継装置300とSAS機器100との間はPhy Reset Sequence処理中であり、PHY 接続未確立である。そこで中継装置300で、受信したIDENTIFYが保持される(ステップS23)。
中継装置300とSAS機器100との間のSASphyレイヤでの接続が確立すると、SAS機器100と中継装置300との双方において、Phy Ready(SASphyレイヤでの接続確立状態)となる(ステップS24,S25)。SAS機器100と中継装置300との間のSASphy接続確立後、中継装置300は、1msec以内に、保持していたIDENTIFYをSAS機器100に送信する(ステップS26)。またSAS機器100からIDENTIFYが送出される(ステップS27)。このIDENTIFYは中継装置300を介して中継装置400へ転送される(ステップS28)。中継装置400では、中継装置300から受信したIDENTIFYを保持する(ステップS42)。この際、ステップS36で保持していたIDENTIFYが、ステップS42で保持するIDENTIFYに更新される。なお中継装置400は、SAS機器100が送出したIDENTIFYをステップS41でSAS機器200に送信済みであるため、ステップS42で保持したIDENTIFYは送信しない。
SAS機器100と中継装置300との間では、SASphyレイヤでの接続確立から1msec以内にIDENTIFYが交換されている。従ってSAS機器100と中継装置300とのいずれにおいてもIDENTIFYの受信タイムアウトは発生せず、中継装置300とSAS機器100との間でリンクが確立する。
以上によりSAS機器100とSAS機器200とは、2台の中継装置300,400を介してのSASのすべてのレイヤの規格に従って、トランスペアレントなデータ伝送(通信)が可能となる。
次にリンクダウン後の再リンクアップの動作について説明する。
図13は、一方のSAS機器の切り離しによるリンクダウン後の再リンクアップの動作手順を示すシーケンス図である。リンクが確立しているSAS機器200が、物理的に中継装置400から切り離されると、中継装置400はSASphy接続未確立状態となる。そして中継装置400は、中継装置300に、そのSASphy接続未確立状態(Phy Not Ready)を通知する(ステップS51)。また中継装置400は、Phy Reset Sequence を開始し、SAS機器200宛のCOMINITを繰り返し送信する(ステップS52)。
中継装置300は、中継装置400のPHY 接続状態を監視している。そして中継装置300は、SAS機器200の切り離しによる一定時間以上のSASphy接続未確立を検出するとPhy Reset Sequenceを開始すると共に、中継装置300は、保持していたIDENTIFYを破棄する(ステップS71)。中継装置300は、IDENTIFYを破棄しているため、SAS機器100にIDENTIFYを送出できずにPhy Reset Sequenceを行う。この間にSAS機器100においても、Phy Reset Sequenceが行われる。これにより、SAS機器100と中継装置300とのそれぞれから、例えばCOMINITの送信などが行われる(ステップS72,S73)。
SAS機器100と中継装置300との間でSASphyレイヤでの接続が確立すると、それぞれPhy Readyとなる(ステップS74,S75)。そしてSAS機器100からIDENTIFYが送信される(ステップS76)。SAS機器100から送信されたIDENTIFYは中継装置300を介して中継装置400に転送される(ステップS77)。この時点では中継装置300はSAS機器200のIDENTIFYを保持していないため、1msecのタイマにより、IDENTIFYの受信タイムアウトとなる(ステップS78)。同様にSAS機器100でもIDENTIFYの受信タイムアウトとなり、その後、SAS機器100と中継装置300とは、SAS機器200のIDENTIFYが送られてくるまで、Phy Reset SequenceとPhy Readyとを繰り返す。
例えばCOMINITの送信(ステップS79,S80,S86,S87)、PHY接続確立によるPhy Ready(ステップS81,S82)、IDENTIFYの送信(ステップS83,S84)、IDENTIFYの受信タイムアウト(ステップS85)などの処理が繰り返される。
図13の例では、中継装置300からIDENTIFYが送られたとき、中継装置400ではまだSAS機器200に再接続ができていない。そこで、中継装置400は、IDENTIFYを受信するごとに、受信したIDENTIFYを保持する(ステップS53a,S53b)。
その後、SAS機器200が物理的に中継装置400に再接続される。すると、中継装置400とSAS機器200との間でCOMINITの送信(ステップS54,S55)を含むPhy Reset Sequenceが行われ、SASphyレイヤでの通信の接続が確立する(ステップS56,S57)。SASphyレイヤでの通信の接続が確立するとSAS機器200からIDENTIFYが送信される(ステップS58)。送信されたIDENTIFYは、中継装置400により、中継装置300に転送される(ステップS59)。また中継装置400は、保持しておいたIDENTIFYをSAS機器200に送信する(ステップS60)。これにより、中継装置400とSAS機器200との間でリンクが確立する。
SAS機器200から送出されたIDENTIFYを受信した中継装置300は、受信したIDENTIFYを保持する(ステップS88)。その後、SAS機器100と中継装置300との間でSASphyレイヤでの接続が確立すると、中継装置300は、保持したIDENTIFYをSAS機器100に送出する。またSAS機器100もIDENTIFYを送信する(ステップS90)。これにより、SAS機器100と中継装置300との間のリンクが確立する。なお、SAS機器100から送信されたIDENTIFYは、中継装置300により中継装置400に転送され(ステップS91)、中継装置400で保持される(ステップS61)。
このようにして、SAS機器100とSAS機器200とは、リンクダウン後も再度リンク確立し、トランスペアレントなデータ伝送(通信)が可能となる。
以上説明したように、第2の実施の形態によれば、中継装置300,400のSASアダプタとして、SASphyレイヤ機能を実装するだけで、遠隔地にある2台のSAS機器100,200間のSASによる通信が可能となる。これにより、中継装置300,400の小型・省電力化が促進される。
しかも、開発コストを抑え、短期間で且つ容易に、SAS規格でのデータ伝送が可能となる中継装置(中継機器)の開発が可能となる。すなわち中継装置内のSASアダプタにはSAS規格のうちのSASphyレイヤ以上の上位レイヤは実装しないため、上位レイヤの回路設計やソフトウェアのプログラミングの作業がなくなり、開発にかかる人的コストが抑えられる。また開発にかかる作業量が減ることで、開発期間の短期化も可能となる。
さらに、第2の実施の形態では、対向側のPHY接続状態やLink Rate情報に基づいて、適宜、Phy Reset Sequenceの再起動を行うようにした。これにより、対向側のSAS機器の異常など、さまざまな理由で通信ができなくなった場合、迅速にリンクを再確立することができる。
また、対向側の中継装置から一定期間Phy Not Readyが検出された場合、保持していたIDENTIFYを破棄するようにしたため、対向側の中継装置に接続されたSAS機器が交換された場合、交換後のSAS機器のIDENTIFYによりリンクを確立できる。
〔第3の実施の形態〕
次に第3の実施の形態について説明する。第3の実施の形態は、SASアダプタをマルチチャネル構成とした場合の例である。
図14は、第3の実施の形態のシステム構成例を示す図である。第3の実施の形態では、中継装置300a,400aそれぞれには、複数のSASアダプタ310a,310b,410a,410bが設けられている。SASアダプタ310a,310b,410a,410bは、クロスバースイッチ340,440を介して光通信コントローラ320a,420aに接続されている。
クロスバースイッチ340,440は、縦方向に並行した複数の通信路と横方向に並行した複数の通信路との交差点に複数のスイッチを設け、複数のスイッチの制御により、任意の2つの経路を直結できるようにしたものである。またクロスバースイッチ340,440は、第2の実施の形態に示したIDENTIFY制御部330,430(図8参照)を有する。
なお中継装置300a,400a間で通信するデータには、例えばクロスバースイッチ340,440により、送信元や送信先のチャネル情報が付与される。チャネル情報には、通信されるデータの送信元と送信先とで使用しているチャネルの情報(どの中継装置のどのSASアダプタか)が示されている。クロスバースイッチ340,440内のIDENTIFY制御部330,430では、通信を行っている2台のSAS機器それぞれのチャネル情報を対応付けて管理する。そしてIDENTIFY制御部330,430は、対応付けたチャネル情報で示される2つのチャネルを用いた通信に関して、第2の実施の形態で示したIDENTIFY制御を行う。
これにより、中継装置300a,400aのマルチチャネル化が可能となる。例えばSASエキスパンダの構成を図14のようにマルチチャネル化することができる。これにより、SASエキスパンダを介して接続されるSAS機器を、物理的な離れた場所に設置可能となる。その場合であっても、SASアダプタ310a,310b,410a,410bにおいてSASphyレイヤより上位のレイヤの通信機能をサポートせずに済む。すなわち各中継装置300a,400aに含まれる複数のSASアダプタ310a,310b,410a,410bは、それぞれSASphyレイヤ以下の規格に従った通信を行う回路を有していればよい。そのためSASアダプタ310a,310b,410a,410bは簡単な回路で実現可能となり、中継装置300a,400aの小型・省電力化が可能となる。
〔第4の実施の形態〕
次に第4の実施の形態について説明する。第4の実施の形態は、中継装置間の伝送路を複数のチャネルとしたものである。
図15は、第4の実施の形態のシステム構成例を示す図である。第4の実施の形態では、中継装置300b,400bそれぞれに、複数のSASアダプタ310c〜310f,410c〜410fが設けられている。SASアダプタ310c〜310f,410c〜410fは、クロスバースイッチ340a,440aを介して光通信コントローラ320b,320c,420b,420cに接続されている。
クロスバースイッチ340a,440aを用いることで、中継装置300b,400bそれぞれに、複数の光通信コントローラ320b,320c,420b,420cを搭載することができる。そして中継装置300bの光通信コントローラ320b,320cと中継装置400bの光通信コントローラ420b,420cとを1対1で接続することで、2台の中継装置300b,400b間の伝送路10に、複数のチャネルを設けることができる。
このように複数のチャネルで中継装置300b,400b間を複数のチャネルを有する伝送路10で接続した場合、例えば各中継装置300b,400bに、チャネルの切り替え機能が設けられる。この場合、中継装置300b,400bは、例えば一方のチャネルで通常の通信を行い、そのチャネルが切断された場合に他方のチャネルに通信を切り替える。また中継装置300b,400bは、データの多寡に応じて、使用するチャネルを切り替えることもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。