以下に添付図面を参照して、この発明に係る中継装置および通信システムの最良な実施の形態を詳細に説明する。
(従来技術の課題)
まず、図1〜図8を用いて、従来技術の概要とその課題について説明する。
図1は、2つのホスト間でPCIeケーブル規格に準拠した情報通信を行う従来の通信システムの概念図である。この図1に示す通信システムは、第1の機器Aと第2の機器Bとを通信可能に接続した通信システムである。第1の機器Aは、制御主体となるCPU101aを備えたホストである。第2の機器Bは、制御主体となるCPU101bを備えたホストである。これら第1の機器Aと第2の機器Bには、それぞれPCIeカードスロットが設けられている。第1の機器Aおよび第2の機器BのPCIeカードスロットには、PCIeケーブルインターフェースボードが装着される。そして、第1の機器AのPCIeケーブルインターフェースボードと、第2の機器BのPCIeケーブルインターフェースボードとが、例えば、複数のケーブルで構成される多レーンケーブルで接続される。
ところで、PCIeは、1つのルートコンプレックスを頂点としたデバイスツリー構造をとることを前提としており、デバイスツリーの中に複数のルートコンプレックスが存在することを想定していない。このため、PCIeの標準的な適用では、ルートコンプレックスとなるデバイスを個別に持つ複数のホスト間での通信を行うことができない。
このような問題の解決策として、PCIeに準拠したブリッジやスイッチ(以下、「PCIeブリッジ」、「PCIeスイッチ」という。)を提供するベンダーから、ノントランスペアレントポート(以下、「NTポート」という。)を持つPCIeブリッジやPCIeスイッチが提供されている。NTポートとは、通信の相手方を非透過にするポートである。PCIeスイッチのNTポートを用いて2つのホストを接続すれば、ホスト間で互いに邪魔されることなく個別に初期化などを行うことが可能となり、また、各ホストの制御主体(CPU)は、別々に動作しながら互いのリソースにアクセス可能となる。
図1に戻り、第1の機器Aは、PCIeブリッジ100を備えている。PCIeブリッジ100の上流ポート110は、ルートコンプレックス102aと接続されている。また、PCIeブリッジ100は、下流ポートとして、上記のようなNTポート120を有している。このNTポート120は、第2の機器Bのルートコンプレックス102bと接続されている。PCIeブリッジ100は、上流ポート110に接続された第1の機器Aのルートコンプレックス102aと、下流ポートであるNTポート120に接続された第2の機器Bのルートコンプレックス102bとの間の通信を中継する。
以上のような構成の従来の通信システムでは、第1の機器Aに設けられたPCIeブリッジ100のNTポート120に、第2の機器Bのルートコンプレックス102bが接続されているため、第1の機器Aのルートコンプレックス102aからは、第2の機器Bのルートコンプレックス102bが非透過の状態(遮蔽された状態)である。また、第2の機器Bのルートコンプレックス102bからも、第1の機器Aのルートコンプレックス102aが非透過の状態である。したがって、通信システム内に2つのルートコンプレックス102a,102bが存在していたとしても、PCIeケーブル規格に準拠した情報通信が可能であり、第1の機器Aと第2の機器Bとの間のホスト間通信を実現することができる。
図2は、図1に示した従来の通信システムにおけるアドレスマップの概念図である。第1の機器Aは、第1の機器Aのアドレス空間の利用可能領域に設定されたアドレス変換領域内のアドレスを使用する。一方、第2の機器Bは、第2の機器Bのアドレス空間の利用可能領域に設定されたアドレス変換領域内のアドレスを使用する。PCIeブリッジ100のNTポート120は、第1の機器Aと第2の機器Bとの間で通信を行う際に、予め記憶されたアドレス変換テーブルにしたがって、これら第1の機器Aが使用するアドレスと第2の機器Bが使用するアドレスとの間のアドレス変換を行う。このため、PCIeブリッジ100のNTポート120のアドレス変換テーブルには、第1の機器Aのアドレス変換領域だけでなく、第2の機器Bのアドレス変換領域も予め記憶させておく必要がある。
図3は、図1に示した従来の通信システムのケーブルを介したデータ転送に関わる部分(以下、「ケーブル接続部」という。)の具体的な構成例を示す図である。図3に示す例では、第1の機器Aに装着されたPCIeケーブルインターフェースボード200aと、第2の機器Bに装着されたPCIeケーブルインターフェースボード200bとが、PCIeの8レーンに対応する(以下、「x8」と表記する。)メタルケーブル210により接続された構成のケーブル接続部を示している。
第1の機器Aに装着されるPCIeケーブルインターフェースボード200aには、PCIeブリッジ100が実装されている。PCIeブリッジ100は、x8上流ポート110を備える。このx8上流ポート110は、図示しないx8カードエッジコネクタを介して、ルートコンプレックス102aのx8ポート220aに接続される。また、PCIeブリッジ100は、x8NTポート120を備える。このx8NTポート120は、それぞれがPCIeの1レーンに対応する(以下、「x1」と表記する。)8本のメタルケーブル210に接続される。PCIeブリッジ100のNTポート120の各レーンとメタルケーブル210との間には、それぞれリピータ230aが設けられる。リピータ230aは、電気信号の増幅および整形処理を行う。なお、PCIeの1レーンは受信用、送信用それぞれ2つの信号線による差動信号で情報伝送するため、1レーンあたり4本の信号線が必要であるが、本実施形態では1本のケーブルがこれら4本の信号線を含むものとして説明する。
第2の機器Bに装着されるPCIeケーブルインターフェースボード200bは、ルートコンプレックス102bのx8ポート220bと、前記8本のメタルケーブル210とに接続される。ルートコンプレックス102bのx8ポート220bの各レーンとメタルケーブル210との間には、それぞれリピータ230bが設けられる。リピータ230bは、リピータ230aと同様、電気信号の増幅および整形処理を行う。
なお、図3に示す例では第1の機器Aと第2の機器Bとメタルケーブル210により接続しているが、メタルケーブル210に代えて光ケーブルを用いることもできる。メタルケーブル210に代えて光ケーブルを用いた場合、リピータ230a,230bが、光トランシーバに置き換わる。光トランシーバは、電気信号と光信号との変換を行う。
図4は、図3に示した従来の通信システムのケーブル接続部の構成において、第1の機器Aが第2の機器Bに対してPCIeの5レーン相当の通信帯域が必要なデータ転送を実行した場合のデータフローの一例を示す図である。図4に示す例では、第1の機器Aが5つのDMAC(Direct Memory Access Controller)240を使ってデータ転送を実行している。なお、図4ではケーブル接続部の第1の機器A側のみを図示しており、図中の破線で示す矢印が、第1の機器A内におけるデータフローを示している。
第1の機器Aには、5つのDMAC240が搭載されている。各DMAC240は、それぞれx1のデータ転送性能を有するものとする。各DMAC240は、第1の機器Aが備えるメモリ250からデータを読み込みながら、読み込んだデータをパケットに分割し、内部バスを経由して、ルートコンプレックス102aのx8ポート220aにパケットを転送する。ルートコンプレックス102aのx8ポート220aは、DMAC240から受信したパケットをそれぞれ8bitずつに分割し、8つのレーンすべてに均等に分散して、PCIeケーブルインターフェースボード200aに実装されたPCIeブリッジ100のx8上流ポート110に転送する。PCIeブリッジ100は、x8上流ポート110の各レーンに8bitずつ分割されて送られてくるデータを、再びパケットデータに変換しなおして、x8NTポート120に転送する。x8NTポート120は、受信したパケットをそれぞれ再度8bitずつに分割し、8つのレーンすべてに均等に分散して、8本のメタルケーブル210を介して第2の機器B側に転送する。
また、図示しない第2の機器B側では、ルートコンプレックス102bのx8ポート220bにおいて、x8の各レーンに8bitずつ分割されて送られてくるデータを、再びパケットデータに変換しなおして、第2の機器Bが備えるメモリに転送する。
以上のように、従来の通信システムにおいては、PCIeの5レーン相当の通信帯域が必要なデータ転送を実行する場合でも、x8の構成であれば、8レーンすべてを使ってデータ転送を実行するようにしている。つまり、従来の通信システムでは、PCIe規格で規定されたレーン数より少ないレーン数で対応可能な通信帯域で通信する場合でも、規定のレーン数に対応する分のケーブルを使用しなければならず、通信帯域等の接続条件に合わせて柔軟に対応して使用するケーブルの本数を減らすことができないという問題がある。
図5は、データ転送に必要な通信帯域と、従来の通信システムで必要とされるレーン数および余剰となるレーン数との関係を示すグラフ図である。図中の横軸は、データ転送に必要な通信帯域の大きさを、1レーンに相当する帯域で除した値(つまり、データ転送において実際に必要なレーン数である使用帯域)を示し、図中の縦軸は、従来の通信システムで必要とされるレーン数および余剰となるレーン数を示している。また、図中の実線のグラフが、データ転送に必要な通信帯域の大きさに対して従来の通信システムで必要とされるレーン数、図中の破線のグラフが、余剰となるレーン数をそれぞれ示している。
従来の通信システムにおいては、PCIe規格で規定されたレーン数で通信を行うことを前提とするため、図5の一点鎖線で囲んだ領域のように、データ転送において実際に必要なレーン数に対して余剰となるレーン数が生じる領域がある。このため、実装コスト(使用するケーブル本数やリピータ、光トランシーバの個数など)に無駄が生じる問題があった。例えば、図4に示した例のように、データ転送に必要な通信帯域がPCIeの5レーン相当の帯域であったとしても、8レーン分のメタルケーブル210(または光ケーブル)およびリピータ230a,230b(または光トランシーバ)を実装しなければならず、3レーン分の実装コストが無駄になる。特にリピータ230a,230b(または光トランシーバ)は、 PCIeブリッジ100などのコストと比べて非常に割高であり、メタルケーブル210(または光ケーブル)についても、PCIeケーブルインターフェースボード200a上の配線に比べて高額である。また、データ転送に必要な通信帯域を超えたレーン数で通信を行うことは、必要以上に電力を消費し、消費電力の増大に繋がるという問題もある。
さらに、従来の通信システムにおいては、一部のレーンに障害が発生した際に通信システム全体に与える影響が大きいという問題もある。以下、この問題点について説明する。
図6は、図3に示した従来の通信システムのケーブル接続部の構成において、7レーン目(図中の上から7番目のレーン)にレーン障害が発生した例を示す図である。レーン障害とは、例えば、リピータ230a(または光トランシーバ)の故障や、メタルケーブル210(または光ケーブル)の抜け、断線などである。なお、図6ではケーブル接続部の第1の機器A側のみを図示しており、図中の一点鎖線の枠で囲んだ領域が使用可能なレーンを示し、二点鎖線の枠で囲んだ領域が使用不能なレーンを示す。
従来の通信システムでは、上述したように、PCIe規格で規定されたレーン数で通信を行うことを前提とするため、図6に示すように、8レーンのうちの1つにレーン障害が発生して8レーンでのリンクアップができない場合、8レーンの半分の4レーンでしかリンクアップすることができず、使用可能なレーンは4レーンのみとなる。つまり、従来の通信システムでは、1レーンのレーン障害が生じただけで、利用可能な通信帯域が極端に減少する。例えば、図4に示した例のように、データ転送に必要な通信帯域がPCIeの5レーン相当の帯域であった場合、レーン障害が発生していない状態では3レーン分の通信帯域があるにも関わらず、1レーンのみにレーン障害が発生しただけで、データ転送に必要な通信帯域を確保できなくなってしまう。
なお、図6の例では、7レーン目(図中の上から7番目のレーン)にレーン障害が発生した例を示したが、図中の一点鎖線の枠で囲んだ領域のうちの1つのレーンにレーン障害が発生した場合は、PCIe規格のレーンリバーサル機能(レーンの並びを受信側で反転する機能)によって、図中の二点鎖線の枠で囲んだ領域の4レーンでリンクアップすることになる。その結果、図中の一点鎖線の枠で囲んだ領域が使用不能なレーンとなり、二点鎖線の枠で囲んだ領域が使用可能なレーンとなる。
図7は、図3に示した従来の通信システムのケーブル接続部の構成において、4レーン目(図中の上から4番目のレーン)と7レーン目(図中の上から7番目のレーン)にレーン障害が発生した例を示す図である。なお、図7ではケーブル接続部の第1の機器A側のみを図示しており、図中の一点鎖線の枠で囲んだ領域が使用可能なレーンを示し、二点鎖線の枠で囲んだ領域が使用不能なレーンを示す。
PCIe規格では、1レーン目から順にリンクトレーニングを行って、リンクが確立できる2のn乗(nは0〜5の整数)のレーン数でリンクアップする。また、PCIe規格のレーンリバーサル機能を利用すれば、最終レーンから逆の順番でリンクトレーニングを行うこともできる。したがって、例えば図3に示した従来の通信システムのケーブル接続部の構成において、8レーンのうちの2つのレーンにレーン障害が発生したとしても、障害が発生した2つのレーンがともに、1レーン目から4レーン目(図6の一点鎖線の枠で囲んだ領域)の範囲や、5レーン目から8レーン目(図6の二点鎖線の枠で囲んだ領域)の範囲に含まれていれば、4レーンでのリンクアップは可能である。
しかしながら、図7の例のように、4レーン目と7レーン目にレーン障害が発生すると、1レーン目と2レーン目とを使用した2レーンでしかリンクアップすることができず、使用可能なレーンは2レーンのみとなる。つまり、図7の例の場合、8レーンの1/4の通信帯域しか確保することができず、性能が大幅に低下することになる。
図8は、図3に示した従来の通信システムのケーブル接続部の構成において、1レーン目(図中の上から1番目のレーン)と8レーン目(図中の上から8番目のレーン)にレーン障害が発生した例を示す図である。なお、図8ではケーブル接続部の第1の機器A側のみを図示している。図8の例は、図7の例と同様、8レーンのうちの2つのレーンにレーン障害が発生しているが、レーン障害が発生したレーンが両端のレーンであるために、8レーンのすべて(図中の二点鎖線の枠で囲んだ領域)が使用不能となる最悪のケースを示している。
PCIe規格では、上述したように、1レーン目から、あるいはレーンリバーサル機能を利用した場合は最終レーンから順にリンクトレーニングを行って、リンクが確立できる2のn乗のレーン数でリンクアップする。したがって、図8の例のように、1レーン目と最終レーンである8レーン目の双方でレーン障害が発生すると、残りの6レーンが正常であったとしても8レーンすべてが使用不能となり、通信を行うことができない。
以上のように、従来の通信システムでは、ケーブル接続部が8レーンに対応した構成を有していたとしても、一部のレーンにレーン障害が発生すると、8レーンの半分の4レーン、1/4の2レーン、1/8の1レーンでしかリンクアップできず、使用できる通信帯域が大幅に減少する。また、両端のレーンでレーン障害が発生する最悪のケースでは、リンクアップ自体が不可能になって通信不能になるという問題がある。
(本発明を適用した通信システム)
次に、図9〜図16を用いて、本発明の実施形態に係る通信システムについて説明する。以下で例示する通信システムは、従来技術として説明した上記の通信システムと同様に、それぞれがホストとして機能する第1の機器Aと第2の機器Bとを通信可能に接続した構成である。具体的には、第1の機器Aおよび第2の機器BのPCIeカードスロットにそれぞれPCIeケーブルインターフェースボードを装着し、PCIeケーブルインターフェースボード同士を、複数のケーブルで構成される多レーンケーブルで接続している。
図9は、本実施形態に係る通信システムのケーブル接続部の具体的な構成例を示す図である。本実施形態に係る通信システムは、第1の機器Aに装着されたPCIeケーブルインターフェースボード20aと、第2の機器Bに装着されたPCIeケーブルインターフェースボード20bとが、x8メタルケーブル21により接続された構成である。なお、本実施形態では、従来技術との差異を明確にするために、従来技術と同様のx8構成の通信システムを例示して説明しているが、本実施形態に係る通信システムはx8構成に限らず、様々なレーン数に対応した構成とすることができる。
第1の機器Aに装着されたPCIeケーブルインターフェースボード20aと、第2の機器Bに装着されたPCIeケーブルインターフェースボード20bは、同じ構成である。なお、本明細書では、第1の機器Aの構成要素の符号に添え字aを付し、第2の機器Bの構成要素の符号に添え字bを付して、両者を区別している。
PCIeケーブルインターフェースボード20a,20bには、それぞれPCIeスイッチ10a,10bが実装されている。PCIeスイッチ10a,10bは、それぞれx8上流ポート11a,11bを備える。PCIeスイッチ10aのx8上流ポート11aは、図示しないx8カードエッジコネクタを介して、第1の機器Aのルートコンプレックスのx8ポート22aに接続される。また、PCIeスイッチ10bのx8上流ポート11bは、図示しないx8カードエッジコネクタを介して、第2の機器Bのルートコンプレックスのx8ポート22bに接続される。
また、PCIeスイッチ10a,10bは、それぞれ、下流ポートとして、8つのx1NTポート12a,12bを備える。PCIeスイッチ10aの8つのx1NTポート12aと、PCIeスイッチ10bの8つのx1NTポート12bは、それぞれx1メタルケーブル21を介して接続される。つまり、本実施形態に係る通信システムは、第1の機器Aと第2の機器Bとが8本のx1メタルケーブル21より接続される点は従来技術の通信システムと同様である。しかしながら、本実施形態に係る通信システムは、第1の機器Aと第2の機器Bとが、それぞれ8つのx1NTポート12a,12bの集合である下流ポートを有するPCIeスイッチ10a,10bを備え、PCIeスイッチ10a,10bの各x1NTポート12a,12b同士がx1メタルケーブル21を介して接続された構成である点で、従来の通信システムと異なっている。
PCIeケーブルインターフェースボード20aに実装されたPCIeスイッチ10aのx1NTポート12aとメタルケーブル21との間には、それぞれリピータ23aが設けられる。また、PCIeケーブルインターフェースボード20bに実装されたPCIeスイッチ10bのx1NTポート12bとメタルケーブル21との間には、それぞれリピータ23bが設けられる。これらリピータ23a,23bは、電気信号の増幅および整形処理を行う。
なお、図9に示す例では、第1の機器AのPCIeケーブルインターフェースボード20aに実装されたPCIeスイッチ10aのx1NTポート12aと、第2の機器BのPCIeケーブルインターフェースボード20bに実装されたPCIeスイッチ10bのx1NTポート12bとをメタルケーブル21により接続しているが、メタルケーブル21に代えて光ケーブルを用いて接続するようにしてもよい。メタルケーブル21に代えて光ケーブルを用いた場合、リピータ23a,23bが、光トランシーバに置き換わる。光トランシーバは、電気信号と光信号との変換を行う。
また、PCIeスイッチ10a,10bは、それぞれ、転送手段13a,13bを備える。
PCIeスイッチ10aの転送手段13aは、x8上流ポート11aから受信したパケットを、8つのx1NTポート12aのうちの1つにルーティングして第2の機器Bに転送するとともに、8つのx1NTポート12aのうちの1つから受信したパケットを、x8上流ポート11aにルーティングして第1の機器Aに転送する。具体的には、PCIeスイッチ10aの8つのx1NTポート12aは、それぞれ固有のアドレスを有している。PCIeスイッチ10aの転送手段13aは、第1の機器Aと第2の機器Bとの間でデータ転送を行う際に、第1の機器Aが使用するアドレスと、パケット転送に使用するx1NTポート12aのアドレスとの間のアドレス変換を行うことにより、x8上流ポート11aとx1NTポート12aとの間のパケットのルーティングを行い、x1NTポート12aを用いた通信を中継する。
なお、PCIeスイッチ10aの転送手段13aは、PCIeスイッチ10aの内部で実現される機能的な構成である。したがって、この転送手段13aは、図9においてはx8上流ポート11aやx1NTポート12aとは別の構成要素として図示しているが、具体的な形態としては、物理層と論理層とを有するx8上流ポート11aの論理層の一機能として実現してもよいし、物理層と論理層とを有するx1NTポート12aの論理層の一機能として実現してもよい。
PCIeスイッチ10bの転送手段13bは、x8上流ポート11bから受信したパケットを、8つのx1NTポート12bのうちの1つにルーティングして第1の機器Aに転送するとともに、8つのx1NTポート12bのうちの1つから受信したパケットを、x8上流ポート11bにルーティングして第2の機器Bに転送する。具体的には、PCIeスイッチ10bの8つのx1NTポート12bは、それぞれ固有のアドレスを有している。PCIeスイッチ10bの転送手段13bは、第2の機器Bと第1の機器Aとの間でデータ転送を行う際に、第2の機器Bが使用するアドレスと、パケット転送に使用するx1NTポート12bのアドレスとの間のアドレス変換を行うことにより、x8上流ポート11bとx1NTポート12bとの間のパケットのルーティングを行い、x1NTポート12bを用いた通信を中継する。
なお、PCIeスイッチ10bの転送手段13bは、PCIeスイッチ10bの内部で実現される機能的な構成である。したがって、この転送手段13bは、図9においてはx8上流ポート11bやx1NTポート12bとは別の構成要素として図示しているが、具体的な形態としては、物理層と論理層とを有するx8上流ポート11bの論理層の一機能として実現してもよいし、物理層と論理層とを有するx1NTポート12bの論理層の一機能として実現してもよい。
以上のように構成される本実施形態に係る通信システムでは、第1の機器AのPCIeケーブルインターフェースボード20aに実装されたPCIeスイッチ10aのx1NTポート12aと、第2の機器BのPCIeケーブルインターフェースボード20bに実装されたPCIeスイッチ10bのx1NTポート12bとが接続されているので、第1の機器Aからは第2の機器Bが非透過の状態となり、第2の機器Bからも第1の機器Aが非透過の状態となる。また、第1の機器Aは第2の機器B側のx1NTポート12bをデバイスとして認識しておらず、また、第2の機器Bも第1の機器A側のx1NTポート12aをデバイスとして認識していない。このため、第1の機器A側のx1NTポート12aと第2の機器B側のx1NTポート12bとを接続するメタルケーブル21が抜けたとしてもそのポートが使用できなくなるだけで、第1の装置Aと第2の装置Bのいずれもハングアップすることはない。また、通信システムを立ち上げる際には、第1の機器Aを先に立ち上げても第2の機器Bを先に立ち上げても正常にリンクするため、機器の立ち上げ順に制約が加わることもない。
図10は、図9に示した本実施形態に係る通信システムのケーブル接続部におけるアドレスマップの概念図である。本実施形態の場合、x1NTポート12aとx1NTポート12bとのNTポート同士の接続となるため、図10に示すように、NTポートのアドレス空間(以下、「NT空間」という。)を、第1の機器Aのアドレス空間および第2の機器Bのアドレス空間とは独立した一つのアドレス空間として設けることができる。そして、このNT空間におけるアドレス変換領域を、固定の領域として予め定めておくことが可能である。
第1の機器Aのアドレス空間および第2の機器Bのアドレス空間には、それぞれ、通信システムにおいて使用するメタルケーブル21の本数分(つまり、接続されているレーン数分)のアドレス変換領域(アドレス変換領域1〜アドレス変換領域8)がある。また、NT空間には、第1の機器Aおよび第2の機器Bのアドレス変換領域1〜アドレス変換領域8に対応する各NTポート12aごとのアドレス変換領域(NTP1アドレス領域〜NTP8アドレス領域)がある。第1の機器Aと第2の機器Bとの間で通信を行う場合、第1の機器Aは第1の機器Aのアドレス空間におけるアドレス変換領域内のアドレスを使用し、第2の機器Bは第2の機器Bのアドレス空間におけるアドレス変換領域内のアドレスを使用する。そして、第1の機器A側のPCIeスイッチ10aの転送手段13aは、第1の機器Aが使用するアドレスと、それに対応するNT空間におけるx1NTポート12a用に指定されたアドレス(NTP1アドレス領域〜NTP8アドレス領域のいずれかのアドレス)とを対応付けたアドレス変換テーブルにしたがい、これら第1の機器Aが使用するアドレスとx1NTポート12aが使用するアドレスとの間のアドレス変換を行う。また同様に、第2の機器B側のPCIeスイッチ10bの転送手段13bは、第2の機器Bが使用するアドレスと、それに対応するNT空間における各x1NTポート12b用に指定されたアドレス(NTP1アドレス領域〜NTP8アドレス領域のいずれかのアドレス)とを対応付けたアドレス変換テーブルにしたがい、これら第2の機器Bが使用するアドレスとx1NTポート12bが使用するアドレスとの間のアドレス変換を行う。
ここで、NT空間における各x1NTポート12a,12b用のアドレス領域(NTP1〜NTP8のアドレス領域)は予め固定の領域として定められ、第1の機器A側のPCIeスイッチ10aと第2の機器B側のPCIeスイッチ10bとが、このアドレス変換領域内のアドレスを共有する。このため、第1の機器A側のPCIeスイッチ10aの転送手段13aは、第1の機器Aのアドレス変換領域だけ把握していればよく、第2の機器B側のPCIeスイッチ10bの転送手段13bは、第2の機器Bのアドレス変換領域だけ把握していればよい。つまり、第1の機器A側のPCIeスイッチ10aの転送手段13aは、第2の機器Bのアドレス変換領域を把握することなくアドレス変換を適切に行うことができ、第2の機器B側のPCIeスイッチ10bの転送手段13bは、第1の機器Aのアドレス変換領域を把握することなくアドレス変換を適切に行うことができる。つまり、本実施形態に係る通信システムでは、第1の機器Aと第2の機器Bとの間で通信を行う際のアドレス変換に相互の機器のアドレス空間同士の依存関係をなくすことができ、アドレス変換を極めて容易に行うことができる。
以上のように、本実施形態に係る通信システムは、第1の機器Aと第2の機器BとをNTポート同士で接続する構成としたことで、メタルケーブル21が抜けても通信システムがハングアップすることがなく、機器の立ち上げ順に制約が加わるといった問題もなく、また、通信時のアドレス変換が極めて容易であるといった利点が得られる。
また、本実施形態に係る通信システムでは、第1の機器Aと第2の機器Bとを単にNTポート同士で接続しただけでなく、第1の機器A側のPCIeスイッチ10aの下流ポート(第2の機器Bに接続される側のポート)を8つのx1NTポート12aの集合で構成するとともに、第2の機器B側のPCIeスイッチ10bの下流ポート(第1の機器Aに接続される側のポート)を8つのx1NTポート12bの集合で構成し、x1NTポート12a,12b同士を1レーンずつ独立してメタルケーブル21で接続する構成としている。そして、PCIeスイッチ10a,10bの転送手段13a,13bによるパケットルーティングにより、x1NTポート12a,12bを選択的に使用して、第1の機器Aと第2の機器Bとの間でのデータ転送を行うようにしている。これにより、本実施形態に係る通信システムは、データ転送に必要な通信帯域に合わせた柔軟な対応を可能とし、必要以上にメタルケーブル12およびそれに付随する部品(リピータ23a,23bなど)を実装することに起因したコストアップや消費電力の増大などの問題を有効に回避できる。以下、この点についてさらに詳しく説明する。
図11は、図9に示した本実施形態に係る通信システムのケーブル接続部の構成において、第1の機器Aが第2の機器Bに対してPCIeの5レーン相当の通信帯域が必要なデータ転送を実行した場合のデータフローの一例を示す図である。図11では、従来技術との差異を明確にするために、図4に示した従来技術の具体例と同様に、第1の機器Aが5つのDMAC24を使ってデータ転送を実行する場合を例示している。なお、図11ではケーブル接続部の第1の機器A側のみを図示しており、図中の破線で示す矢印が、第1の機器A内におけるデータフローを示している。
第1の機器Aには、5つのDMAC24が搭載されている。各DMAC24は、それぞれx1のデータ転送性能を有するものとする。各DMAC24は、第1の機器Aが備えるメモリ25からデータを読み込みながら、読み込んだデータをパケットに分割し、内部バスを経由して、ルートコンプレックスのx8ポート22aにパケットを転送する。ルートコンプレックスのx8ポート22aは、DMAC24から受信したパケットをそれぞれ8bitずつに分割し、8つのレーンすべてに均等に分散して、PCIeケーブルインターフェースボード20aに実装されたPCIeスイッチ10aのx8上流ポート11aに転送する。PCIeブリッジ10aの転送手段13aは、x8上流ポート11aの各レーンに8bitずつ分割されて送られてくるデータを再びパケットデータに変換しなおし、パケットに含まれている転送先アドレスを検査して、図10に示したようなアドレス変換テーブルに応じてアドレス変換を行い、8つのx1NTポート12aのうちの1つにルーティングして転送する。x1NTポート12aは、受け取ったパケットを、当該パケットの転送用に指定されたアドレス(NTP1アドレス領域〜NTP8アドレス領域のいずれかのアドレス)を用いて、メタルケーブル21を介して第2の機器B側に送信する。
一方、図示しない第2の機器B側では、第1の機器A側からメタルケーブル21を介して送信されたパケットを、PCIeスイッチ10bのx1NTポート12bが受信する。x1NTポート12bによりパケットが受信されると、PCIeスイッチ10bの転送手段13bが、パケットに含まれている転送先アドレスを検査して、図10に示したようなアドレス変換テーブルに応じてアドレス変換を行い、x8上流ポート11bにルーティングして転送する。x8上流ポート11bは、受け取ったパケットをそれぞれ8bitずつに分割し、8つのレーンすべてに均等に分散して、ルートコンプレックスのx8ポート22bに転送する。ルートコンプレックスのx8ポート22bは、x8上流ポート11bの各レーンから8bitずつ分割されて送られてくるデータを再びパケットデータに変換しなおし、第2の機器Bが備えるメモリに転送する。
以上のように、本実施形態に係る通信システムにおいては、PCIeの5レーン相当の通信帯域が必要なデータ転送を実行する場合は、x8の構成であっても8レーンすべてを使わず、5レーンのみを使ってデータ転送を実行する。したがって、例えば図12に示すように、3つのリピータ23aおよび3本のメタルケーブル21を取り外した状態でも適切に通信を行うことができ、実際に必要とされる通信帯域に合わせて効率的に通信を行うことができる。つまり、本実施形態に係る通信システムでは、PCIe規格で規定されたレーン数より少ないレーン数で対応可能な通信帯域で通信する場合、必要な通信帯域に対応したレーン数でデータ転送を行うことができ、データ転送に必要な通信帯域に合わせて柔軟に対応して、使用するリピータ23aの数やメタルケーブル21の本数を減らすことができる。
図13は、データ転送に必要な通信帯域と、本実施形態に係る通信システムで必要とされるレーン数および余剰となるレーン数との関係を示すグラフ図である。図中の横軸は、データ転送に必要な通信帯域の大きさを、1レーンに相当する帯域で除した値(つまり、データ転送において実際に必要なレーン数である使用帯域)を示し、図中の縦軸は、本実施形態に係る通信システムで必要とされるレーン数および余剰となるレーン数を示している。また、図中の実線のグラフが、データ転送に必要な通信帯域の大きさに対して本実施形態の通信システムで必要とされるレーン数、図中の破線のグラフが、余剰となるレーン数をそれぞれ示している。
図13に示すように、本実施形態に係る通信システムでは、必要とされるレーン数が、データ転送において実際に必要なレーン数である使用帯域と一致する。したがって、図中の一点鎖線で囲んだ領域のように、使用帯域の大きさに関わらず余剰となるレーン数は常に0となる。このように、本実施形態に係る通信システムでは、PCIe規格で規定されたレーン数を使用しなければならないという制約が生じず、要求性能に合わせたレーン数で効率よくデータ転送を行うことができるので、リピータ23aやメタルケーブル21などを必要以上に実装することに起因したコストアップや消費電力の増大といった問題を有効に回避することができる。
さらに、本実施形態に係る通信システムにおいては、従来の通信システムと比較して、一部のレーンに障害が発生した際に通信システム全体に与える影響が小さい。以下、従来の通信システムと同様のレーン障害が発生したケース(図6および図8を用いて説明した例)を想定して、本実施形態に係る通信システムのレーン障害による影響について詳しく説明する。
図14は、図9に示した本実施形態に係る通信システムのケーブル接続部の構成において、図6に示した例と同様に、7レーン目(図中の上から7番目のレーン)にレーン障害が発生した例を示す図である。なお、図14ではケーブル接続部の第1の機器A側のみを図示しており、図中の一点鎖線の枠で囲んだ領域が使用可能なレーンを示し、二点鎖線の枠で囲んだ領域が使用不能なレーンを示す。
このようなケースにおいて、従来の通信システムでは、1レーンのレーン障害が生じただけで、8レーンの半分の4レーンでしかリンクアップすることができず、利用可能な通信帯域が極端に減少するという問題があった。これに対して、本実施形態に係る通信システムでは、8レーンのうちの1レーン(図14の例では7レーン目)にレーン障害が生じた場合、このレーン障害が生じたレーンに対応するx1NTポート12a,12bのアドレスを、他のいずれかのx1NTポート12a,12bのアドレスに変更することによって、レーン障害が生じたレーンを他のレーンで代替することができ、図14中の一点鎖線で囲んだ領域のように、残りの7レーンすべてが使用可能となる。つまり、本実施形態に係る通信システムでは、8レーンのうちの1レーンにレーン障害が生じても、7/8の通信帯域を確保した状態で、第1の機器Aと第2の機器Bとの間の通信を継続させることができる。
また、本実施形態に係る通信システムでは、8レーンのうちの2レーンにレーン障害が生じた場合(図7に示したケース)においても、これらレーン障害が生じた2つのレーンに対応するx1NTポート12a,12bのアドレスを、他のいずれかのx1NTポート12a,12bのアドレスに変更することによって、レーン障害が生じた2つのレーンを他のレーンで代替することができ、5/8の通信帯域を確保した状態で、第1の機器Aと第2の機器Bとの間の通信を継続させることができる。同様に、本実施形態に係る通信システムでは、8レーンのうちの3レーンにレーン障害が生じた場合は5レーン分の通信帯域、8レーンのうちの4レーンにレーン障害が生じた場合は4レーン分の通信帯域といったように、レーン障害が生じていないレーンのレーン数に対応した通信帯域を確保した状態で、第1の機器Aと第2の機器Bとの間の通信を継続させることができる。
図15は、図9に示した本実施形態に係る通信システムのケーブル接続部の構成において、図8に示した例と同様に、1レーン目(図中の上から1番目のレーン)と8レーン目(図中の上から8番目のレーン)にレーン障害が発生した例を示す図である。なお、図15ではケーブル接続部の第1の機器A側のみを図示しており、図中の一点鎖線の枠で囲んだ領域が使用可能なレーンを示し、二点鎖線の枠で囲んだ領域が使用不能なレーンを示す。
従来の通信システムでは、1レーン目から、あるいはレーンリバーサル機能を利用した場合は最終レーンから順にリンクトレーニングを行って、リンクが確立できる2のn乗のレーン数でリンクアップするため、図15のようなケースでは、8レーンすべてが使用不能となり、通信を行うことができないという問題があった。これに対して、本実施形態に係る通信システムでは、第1の機器Aと第2の機器Bとが、レーンごとに独立したx1NTポート12a,12b同士で接続された構成であるため、レーン単位でリンクトレーニングおよびリンクアップが行われることになる。したがって、レーン障害が生じたレーンでリンクアップできなくても、その影響が他のレーンに及ぶことがなく、レーン障害が生じていないレーンは正常にリンクアップして使用可能となる。
以上、具体的な例を挙げながら詳細に説明したように、本実施形態に係る通信システムは、第1の機器A側のPCIeスイッチ10aの下流ポートを複数のx1NTポート12aの集合で構成するとともに、第2の機器B側のPCIeスイッチ10bの下流ポートを複数のx1NTポート12bの集合で構成し、x1NTポート12a,12b同士を1レーンずつ独立してメタルケーブル21(あるいは光ケーブル)で接続する構成としている。そして、PCIeスイッチ10a,10bの転送手段13a,13bによるパケットルーティングにより、x1NTポート12a,12bのいずれかを選択的に使用して、第1の機器Aと第2の機器Bとの間でのデータ転送を行うようにしている。したがって、本実施形態に係る通信システムは、データ転送に必要な通信帯域に合わせた柔軟な対応を可能とし、必要以上にメタルケーブル12(あるいは光ケーブル)やリピータ23a,23b(あるいは光トランシーバ)を実装することに起因したコストアップや消費電力の増大などの問題を有効に回避できる。
さらに、本実施形態に係る通信システムは、一部のレーンにレーン障害が発生したとしても、正常な残りのレーンを使用して通信帯域を落とした状態で通信を継続することができるので、高い耐障害性を実現することができる。
特に、本実施形態に係る通信システムでは、PCIeスイッチ10a,10bの転送手段13a,13bが、第1の機器Aまたは第2の機器Bが使用するアドレスと、複数のx1NTポート12a,12bが使用するアドレスとを対応付けたアドレス変換テーブルにしたがい、これらの間のアドレス変換を行って、上流ポート11a,11bとx1NTポート12a,12bとの間のパケットルーティングを行う構成である。したがって、一部のレーンにレーン障害が発生した場合に、レーン障害が発生したレーンに対応するx1NTポート12a,12bのアドレスを他のいずれかのx1NTポート12a,12bのアドレスに変更するといった簡便な手法で、レーン障害が生じたレーンを他のレーンで代替し、正常な残りのレーンを使用した通信を継続させることができる。
また、本実施形態に係る通信システムは、第1の機器Aと第2の機器BとをNTポート同士で接続する構成としているので、メタルケーブル21(あるいは光ケーブル)が抜けても通信システムがハングアップすることがなく、機器の立ち上げ順に制約が加わるといった問題もなく、また、通信時のアドレス変換が極めて容易であるといった利点が得られる。
以上、本発明の具体的な実施形態について説明したが、本発明は、上述した実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。すなわち、上述した実施形態に係る通信システムの構成や動作はあくまで一例であり、用途や目的に応じて様々な変形が可能である。
例えば、上述した実施形態は、2つのホスト(第1の機器Aおよび第2の機器B)間でPCIeケーブル規格に準拠した情報通信を行う通信システムに対して本発明を適用した例であるが、本発明は、3つ以上のホスト間でPCIeケーブル規格に準拠した情報通信を行う通信システムに対しても有効に適用可能である。
図16は、第1の機器Aに対して第2の機器Bおよび第3の機器Cを通信可能に接続した通信システムに対して本発明を適用した場合のケーブル接続部の構成を示す図である。この図16に示す例において、第1の機器Aおよび第2の機器Bの構成は上述した実施形態と同様であり、図12に示した例のように5レーンで接続されている。また、第3の機器Cは、第1の機器Aや第2の機器Bと同様に、PCIeスイッチ10cが実装されたPCIeケーブルインターフェースボード20cを備える。PCIeスイッチ10cは、x4上流ポート11cと、3つのx1NTポート12cと、転送手段13cを有し、x4上流ポート11cが第3の機器Cのルートコンプレックスのx4ポート22cに接続され、3つのx1NTポート12cが、メタルケーブル21(または光ケーブル)を介して、第1の機器AのPCIeスイッチ10aのx1NTポート12aにそれぞれ接続される。また、転送手段13cは、x4上流ポート11cから受信したパケットを、3つのx1NTポート12cのうちの1つにルーティングして第1の機器Aに転送するとともに、3つのx1NTポート12cのうちの1つから受信したパケットを、x4上流ポート11cにルーティングして第3の機器Cに転送する。なお、図16においては、PCIeケーブルインターフェースボード20a,20b,20c上のリピータ(または光トランシーバ)の図示を省略している。
3つ以上のホスト(図16の例では第1の機器A、第2の機器Bおよび第3の機器C)間でPCIeケーブル規格に準拠した情報通信を行う通信システムに本発明を適用すると、図16の例のように、PCIe規格で規定されたレーン数以外の任意のレーン数(図16の例では5レーンおよび3レーン)で3つのホスト間を接続することができ、柔軟なホスト間通信の形態を実現することができる。また、この場合も、ケーブル接続部の構成を、それぞれのホスト間でのデータ転送に必要な通信帯域に対して無駄のない構成とすることができるので、必要以上にケーブル等を実装することに起因したコストアップや消費電力の増大などの問題を有効に回避できるとともに、耐障害性の高い通信システムを実現することができる。
また、上述した実施形態は、PCIeケーブル規格に準拠した情報通信を行う通信システムへの適用例であるが、PCIeのNTポートと同等の機能、つまり通信の相手型を非透過にするポートを用いて情報通信を行う通信システムであれば、どのような通信システムに対しても本発明は有効に適用することができる。