(57)【要約】【課題】ルートコンプレックスの持つポートあたりのレーン数が、エンドポイントが必要とする帯域を確保するのに不足する場合であっても、伝送路がボトルネックとならないようにするＰＣＩ  Ｅｘｐｒｅｓｓによるデータ転送装置を得る。【解決手段】ルートコンプレックス２００とエンドポイント２０１とに接続されたスイッチ３００が、非透過ポート３１０を持ち、ルートコンプレックス２００とスイッチ３００間では、ルートコンプレックス２００の複数のポートのうちの１つを除いた残りのポートが全てスイッチの非透過ポート３１０に接続され、ＤＭＡコントローラ３０１によりルートコンプレックス２００とエンドポイント２０１間でデータ転送をする際には、ルートコンプレックス２００とスイッチ３００間の複数のリンクを使用して並列に転送を行うようにした。【選択図】図1
2011154609.tif 000002
【特許請求の範囲】
【請求項１】
ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースを用いたデータ転送装置であって、
複数のポートを有するルートコンプレックス、
このルートコンプレックスとデータ転送を行うためのポートを有するエンドポイント、
非透過ポートを持ち、上記ルートコンプレックス及び上記エンドポイントに接続されたスイッチを備え、
上記ルートコンプレックスと上記スイッチの間では、上記ルートコンプレックスの複数のポートをそれぞれ上記スイッチのポートに接続することによって複数のリンクが形成されるとともに、上記ルートコンプレックスの各ポートに接続された上記スイッチのポートは、１つを除いて非透過ポートであり、
上記ルートコンプレックスと上記エンドポイントの間でデータ転送をする際には、上記ルートコンプレックスと上記スイッチの間の上記複数のリンクを使用して並列に転送を行うことを特徴とするデータ転送装置。
【請求項２】
上記ルートコンプレックスと上記スイッチの間を接続する上記複数のリンクのレーン数の合計と、上記エンドポイントと上記スイッチの間を接続するリンクのレーン数とが等しいことを特徴とする請求項１記載の転送装置。
【請求項３】
上記ルートコンプレックスと上記エンドポイントの間の転送データを、上記ルートコンプレックスと上記スイッチの間のリンクの数で分割し、上記ルートコンプレックスと上記スイッチの間の全てのリンクを使用して、上記分割された転送データを並列に転送することを特徴とする請求項１または請求項２記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）インタフェースにおいて、データ伝送経路の上流の帯域が下流の帯域より小さい場合に、上流の伝送路の帯域がボトルネックとなることを防ぐようにしたデータ転送装置に関するものである。
【背景技術】
【０００２】
ＰＣＩ  Ｅｘｐｒｅｓｓは、パソコン内部の各パーツ間を結ぶバス（データ伝送路）の規格であるＰＣＩバス（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｕｓ）の後継となる規格であり、ＰＣＩバスがパラレルバスであったのに対し、シリアル信号伝送を採用している。
ＰＣＩ  Ｅｘｐｒｅｓｓの構成要素としては、ルートコンプレックス、エンドポイント、スイッチがあり、これらがツリー型の接続形態をとる。ルートコンプレックスは、ツリーの最上位に位置し、上位システムとのＩ／Ｏを行う。ルートコンプレックスは、複数のポートを持ち、それぞれのポートが他のＰＣＩ  Ｅｘｐｒｅｓｓデバイスと接続される。
エンドポイントは、ツリーの末端に位置し、ルートコンプレックスや他のエンドポイントとの通信を行う。スイッチは、複数のエンドポイントを接続するためにポートを拡張する役割を持つ。ポート同士は、送信と受信の２ペアの差動信号の組み合わせを１レーンとし、これを複数束ねたリンクにより接続される。ＰＣＩ  Ｅｘｐｒｅｓｓ  ｇｅｎ１規格の場合、１レーンは２Ｇｂｐｓの伝送帯域を有し、リンクの伝送帯域はレーン数×２Ｇｂｐｓとなる。
【０００３】
今、４レーンのポートを１つ持つルートコンプレックスに対し、１レーンのポートを持つ３つのエンドポイントを接続する場合を考える。この場合、スイッチを用いてポートを拡張する。スイッチは、ルートコンプレックスと４レーンのポートで接続し、３つのエンドポイントと、それぞれ１レーンのポートで接続する。
次に、１レーンのポートを２つ持つルートコンプレックスに対し、２レーンのポートを持つエンドポイントを接続する場合を考える。この場合は、ルートコンプレックスの１レーンのポートに直接エンドポイントの２レーンのポートを接続する。エンドポイントのポートは２レーンあるが、ルートコンプレックス側のポートが１レーンであるため、１レーンのみを接続することとなる。この場合、リンクの伝送帯域は、エンドポイントが持つ本来の伝送帯域の半分の性能となり、ルートコンプレックスとエンドポイント間の通信において、ＰＣＩ  Ｅｘｐｒｅｓｓの伝送路がボトルネックとなる。
この問題に対し、特許文献１では、ルートコンプレックスからエンドポイントに至るリンクのレーン数を、エンドポイントの必要とする最大伝送帯域を満たすレーン数とすることでボトルネックを解消している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２２６４９４号公報（第４〜１３頁、図２）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述の１レーンのポートを２つ持つルートコンプレックスに対し、２レーンのポートを持つエンドポイントを接続する場合で、エンドポイントが３Ｇｂｐｓの帯域を持つ光通信インタフェースである場合を考える。エンドポイントは、光ケーブルから３Ｇｂｐｓの速度でデータを受信し、ＰＣＩ  Ｅｘｐｒｅｓｓ経由でルートコンプレックスにデータを送信、主記憶に対してＤＭＡ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）転送する。
この構成では、エンドポイントとルートコンプレックス間のＰＣＩ  Ｅｘｐｒｅｓｓの伝送速度は、リンクが１レーンであることから最大２Ｇｂｐｓにとどまる。エンドポイントが光ケーブルから伝送データを受け続けた場合、いずれはエンドポイント上の受信データ格納バッファがあふれるため、通信停止やデータ再送等の処理が必要となる。レーダー信号処理などのリアルタイムシステムでは、このようなデータ転送遅延は許容されない。
【０００６】
特許文献１に示されている通り、この問題の解決方法としては、ボトルネックとなるＰＣＩ  Ｅｘｐｒｅｓｓの伝送帯域が、光通信インタフェースに要求される伝送帯域より高ければよい。具体的にはルートコンプレックスとエンドポイント間のリンクを１レーンから２レーンとすることで、ＰＣＩ  Ｅｘｐｒｅｓｓの伝送帯域は４Ｇｂｐｓとなり、ボトルネックは解消される。
このためには、ルートコンプレックス側に２レーンに対応したポートの実装が要求される。ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースを持つデバイスは、複数のポートとレーンを有しているものがあり、各ポートのレーン数はいくつかのパターンの中から選択可能となっているものが多い。例えば、３ポート、８レーンのＰＣＩ  Ｅｘｐｒｅｓｓインタフェースを持つデバイスの場合、８レーンを１ポートに割り当てることや、４レーンを１ポートに割り当て、残り２レーンを２ポートに割り当てるなど、構成を選択できるようになっている。
【０００７】
前述のように、１レーンのポートを２つ持つルートコンプレックスに対し、２レーンのポートを持つエンドポイントを接続する場合では、ルートコンプレックスは、２ポート、２レーンを有しているため、デバイスが対応していれば、２レーンを１ポートに割り当てて使用することができる。この場合、エンドポイントとは２レーンで接続することができ、ボトルネックを解消することが可能となる。
しかし、デバイスによっては、このような割り当てに対応しないために、物理的に２レーン分のインタフェースを持つにもかかわらず、１レーンでの接続のみしか行えない場合もある。使用するデバイスが後者の仕様だった場合、特許文献１に示される解決方法を採ることができない。
【０００８】
この発明は、上記のような課題を解決するためになされたものであり、ルートコンプレックスの持つポートあたりのレーン数が、エンドポイントが必要とする帯域を確保するのに不足する場合であっても、伝送路がボトルネックとならないようにするＰＣＩ  Ｅｘｐｒｅｓｓによるデータ転送装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係わるデータ転送装置においては、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースを用いたデータ転送装置であって、複数のポートを有するルートコンプレックス、このルートコンプレックスとデータ転送を行うためのポートを有するエンドポイント、非透過ポートを持ち、ルートコンプレックス及びエンドポイントに接続されたスイッチを備え、ルートコンプレックスとスイッチの間では、ルートコンプレックスの複数のポートをそれぞれスイッチのポートに接続することによって複数のリンクが形成されるとともに、ルートコンプレックスの各ポートに接続されたスイッチのポートは、１つを除いて非透過ポートであり、ルートコンプレックスとエンドポイントの間でデータ転送をする際には、ルートコンプレックスとスイッチの間の複数のリンクを使用して並列に転送を行うものである。
【発明の効果】
【００１０】
この発明は、以上説明したように、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースを用いたデータ転送装置であって、複数のポートを有するルートコンプレックス、このルートコンプレックスとデータ転送を行うためのポートを有するエンドポイント、非透過ポートを持ち、ルートコンプレックス及びエンドポイントに接続されたスイッチを備え、ルートコンプレックスとスイッチの間では、ルートコンプレックスの複数のポートをそれぞれスイッチのポートに接続することによって複数のリンクが形成されるとともに、ルートコンプレックスの各ポートに接続されたスイッチのポートは、１つを除いて非透過ポートであり、ルートコンプレックスとエンドポイントの間でデータ転送をする際には、ルートコンプレックスとスイッチの間の複数のリンクを使用して並列に転送を行うので、ルートコンプレックスの持つポートあたりのレーン数が、エンドポイントが必要とする帯域を確保するのに不足する場合であっても、ルートコンプレックスとなるデバイスを再選定することなく、伝送路がボトルネックとならないようにすることができる。
【図面の簡単な説明】
【００１１】
【図１】この発明の実施の形態１によるデータ転送装置を示すシステム構成図である。
【図２】この発明の実施の形態１によるデータ転送装置のデータ転送を示すフローチャートである。
【図３】この発明の実施の形態１によるデータ転送装置のデータ転送を示すタイミングチャートである。
【発明を実施するための形態】
【００１２】
実施の形態１．
本発明の実施の形態について、図を用いて説明する。
図１は、この発明の実施の形態１によるデータ転送装置を示すシステム構成図であり、図１（ａ）は従来のＰＣＩ  Ｅｘｐｒｅｓｓを用いたデータ転送装置の構成を示す図、図１（ｂ）は本発明によるＰＣＩ  Ｅｘｐｒｅｓｓを用いたデータ転送装置の構成を示す図である。
図１（ａ）において、ＣＰＵ１００は、ルートコンプレックス２００に接続され、ルートコンプレックス２００は、１レーンのポートを２つ有し、ポート１を介して、２レーンのポートを１つ有するエンドポイント２０１と、リンク２１０により接続される。リンク２１０は、１レーンでの接続である。
図１（ｂ）において、ＣＰＵ１００は、ルートコンプレックス２００に接続されるとともに、バスによりＤＭＡコントローラ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌｌｅｒ）３０１と主記憶３０２に接続されている。ルートコンプレックス２００は、１レーンのポートを２つ有する。エンドポイント２０１は、２レーンのポートを１つ有する。スイッチ３００は、非透過ポート３１０をもち、ルートコンプレックス２００とエンドポイント２０１の間に配置され、ルートコンプレックス２００の各ポートと接続される。このとき、ルートコンプレックス２００のポート２は、スイッチ３００の非透過ポート３１０に接続される。この場合に形成されるリンク３１１とリンク３１２は、ルートコンプレックス２００のレーン数が１であるため、１レーンでの接続である。
スイッチ３００とエンドポイント２０１間は、エンドポイント２０１が持つレーンを全て接続する。すなわち、リンク３１３は２レーンでの接続である。
ＤＭＡコントローラ３０１は、主記憶３０２とエンドポイント２０１間で、ＣＰＵ１００を介さずにデータ転送を行うために使用される。
【００１３】
図２は、この発明の実施の形態１によるデータ転送装置のデータ転送を示すフローチャートである。
【００１４】
図３は、この発明の実施の形態１によるデータ転送装置のデータ転送を示すタイミングチャートであり、図３（ａ）は、図１（ａ）に対応するタイミングチャートであり、図３（ｂ）は、図１（ｂ）に対応するタイミングチャートである。
図３において、タイミングチャートは横軸に転送時間、縦軸にデータの転送過程を示しており、転送データを四角で示している。転送データを示す四角の横方向の長さはそのデータを転送するのに要する時間を意味する。
図３（ａ）で、エンドポイント２０１が持つ転送データ５００は、リンク２１０を経由してエンドポイント２０１からルートコンプレックス２００に転送するデータ６００として、転送される。
図３（ｂ）で、エンドポイント２０１が持つ転送データ５００は、２等分されたエンドポイント２０１が持つ転送データ５０１となり、リンク３１３を経由してエンドポイント２０１からスイッチ３００に転送するデータ５０２となり、これが、リンク３１１を経由してスイッチ３００からルートコンプレックス２００のポート１に転送するデータ５０３と、リンク３１２を経由してスイッチ３００からルートコンプレックス２００のポート２に転送するデータ５０４とに分けられる。
【００１５】
次に、動作について説明する。
本発明の実施の形態１におけるＰＣＩ  Ｅｘｐｒｅｓｓの構成は、図１（ｂ）に示すとおりである。従来の図１（ａ）の構成に対し、ルートコンプレックス２００とエンドポイント２０１の間に非透過ポート３１０を持つスイッチ３００を追加し、ルートコンプレックス２００のポート１とポート２をそれぞれスイッチ３００の各ポートに接続する。リンク３１１と３１２はルートコンプレックス２００のレーン数が１であるため、１レーンでの接続である。
スイッチ３００とエンドポイント２０１間は、エンドポイント２０１が持つレーンを全て接続する。エンドポイント２０１は、２レーンのポートを持ち、２レーン分の伝送帯域、すなわち２×２＝４Ｇｂｐｓのデータ転送速度を要求しているものとする。
【００１６】
ＰＣＩ  Ｅｘｐｒｅｓｓは、ツリー型の接続構成をとり、最上位のルートコンプレックス２００がＰＣＩ  Ｅｘｐｒｅｓｓのアドレスマッピングなどの初期化を行う。初期化処理の競合を防ぐため、１つのツリーにはルートコンプレックスが１つである必要がある。
図１（ｂ）の構成をとった場合、ルートコンプレックス２００がポート１とポート２の２箇所で接続されることから、発明が解決しようとする課題で述べたような、物理的に２レーン分のインタフェースを持つにもかかわらず、１レーンでの接続のみしか行えないデバイスの場合であれば、問題が生じるため、その解決手段としてポート２は、スイッチ３００の非透過ポート３１０に接続する。
【００１７】
非透過ポート３１０は、スイッチ３００内のポート間のブリッジにアドレス変換機能を持ち、ポートを挟んだ２つのＰＣＩ  Ｅｘｐｒｅｓｓインタフェースのアドレス空間を分ける。リンク３１２をスイッチ３００の非透過ポート３１０に接続することにより、２つのルートコンプレックスが別々のアドレス空間に接続され、初期化処理の競合が発生しない構成とすることが可能となる。
この非透過ポート３１０を用いることにより、ルートコンプレックス２００が、例え、発明が解決しようとする課題で述べたような、物理的に２レーン分のインタフェースを持つにもかかわらず、１レーンでの接続のみしか行えないデバイスの場合であっても、スイッチ３００にルートコンプレックス２００の２つのポートを接続し、並列に転送することができる。
なお、ルートコンプレックスが、３つ以上の複数のポートをもつ場合には、３つ以上の複数のポートのうちの１つを除いた残りのポートが、全てスイッチの非透過ポートに接続される。
【００１８】
次に、実際のデータ転送の流れについて図２を用いて説明する。ここでは、例として、図１（ｂ）においてエンドポイント２０１の持つ転送データを、ＤＭＡコントローラ３０１を使用して、主記憶３０２に転送するときの動作の流れについて説明する。
まず、エンドポイント２０１の持つ転送データをｎ等分する（ステップＳ１）。ここで、ｎはルートコンプレックス２００とスイッチ３００間のリンクの数を示す。データの等分は、概念的なものであり、データの分割箇所を決定するだけで、具体的なデータの加工や転送を伴うものではない。図１（ｂ）では、ルートコンプレックス２００とスイッチ３００間は、リンク３１１とリンク３１２の２つで接続されていることから、ｎ＝２となるため、データを２等分する。
【００１９】
次いで、２等分したデータは、ＤＭＡコントローラ３０１を使用し、それぞれリンク３１３および、リンク３１１、リンク３１２を経由して、並列に主記憶３０２にＤＭＡ転送される（ステップＳ２）。ここで、ＤＭＡコントローラ３０１は、チャンネル数をｎ本持ち、それらが同時に動作可能であるとする。
具体的なＤＭＡ転送の実施方法としては、２等分したデータをデータ１、データ２としたとき、ＤＭＡコントローラ３０１のチャンネル１にデータ１の転送を設定し、チャンネル２にデータ２の転送を設定する。チャンネル１とチャンネル２のＤＭＡ転送を同時に開始することで、前述の転送が行われる。
これらは、ステップＳ３〜Ｓ５に示すとおり、ＤＭＡコントローラ３０１のチャンネルにより並列に転送される。因みに、ステップＳ３は、ルートコンプレックス２００のポート１を経由する転送であり、ステップＳ４は、ルートコンプレックス２００のポート２を経由する転送であり、ステップＳ５は、さらにルートコンプレックスがポートを有する場合のポートｎを経由する転送である。
【００２０】
次に、図３（ｂ）を用いて、このときのデータ転送のタイミングチャートについて説明する。
図３（ｂ）では、データＡとデータＢの２種類のデータを続けて転送する場合を示している。エンドポイント２０１がもつデータＡは、データＡ−１、データＡ−２の２つに分割され、ＤＭＡコントローラ３０１によって、まずはエンドポイント２０１からスイッチ３００へと転送される。スイッチ３００へ転送されたデータは、続いてルートコンプレックス２００へ転送されるが、このとき、データＡ−１は、リンク３１１を、データＡ−２は、リンク３１２をそれぞれ経由して転送される。
【００２１】
リンク３１１とリンク３１２は、リンク３１３に比べてレーン数が半分であるため、１リンクあたりのデータ転送に要する時間は、エンドポイント２０１からスイッチ３００への転送時間と比べて倍になる。しかし、リンク３１１とリンク３１２が独立しており、同時にデータ転送が可能であるため、データＡ−２は、データＡ−１の転送と並列して行われることから、データ転送時間の合計は、２倍より小さくなる。
データＢも同様に転送されるが、リンク３１２を使用してデータＡ−２の転送を行っている間に、データＡ−１の転送が完了したリンク３１１を使用してデータＢ−１の転送を開始できるため、データ転送サイズが大きくなるほど、トータルのデータ転送時間は、１リンクを２レーンとした場合の時間、つまりエンドポイントが要求するデータ転送性能に近づく。
【００２２】
これに対し、本発明を適用しない場合の図３（ａ）のタイミングチャートでは、エンドポイント２０１からルートコンプレックス２００へのデータ転送は、リンク２１０が１レーンであることから、エンドポイントを２レーンで接続した場合と比較して２倍となる。これはエンドポイント２０１の要求するデータ転送速度の半分であり、ＰＣＩ  Ｅｘｐｒｅｓｓがデータ転送のボトルネックとなることを意味する。
このように、本発明の適用により、ルートコンプレックス２００の構成を変更することなく、ＰＣＩ  Ｅｘｐｒｅｓｓのボトルネックを解消することが可能となる。
【００２３】
実施の形態１によれば、ルートコンプレックスとエンドポイント間に非透過ポートを有するスイッチを接続することにより、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースにおいて、ルートコンプレックスの持つポートあたりのレーン数が、エンドポイントが必要とする帯域を確保するのに不足する場合であっても、ルートコンプレックスとなるデバイスを再選定することなく、また、特殊なハードウェアを追加することなく、伝送路がボトルネックとならないようにすることができる。
また、ルートコンプレックスとスイッチを接続する複数のリンクのレーン数の合計と、エンドポイントとスイッチ間を接続するリンクのレーン数とが等しくすることにより、エンドポイントが必要とするデータ転送性能を確保し、ルートコンプレックス側のポートあたりのレーン数がエンドポイント側のポートのレーン数より少ないことを原因とするデータ転送のボトルネックを解消することができる。
【符号の説明】
【００２４】
１００  ＣＰＵ
２００  ルートコンプレックス
２０１  エンドポイント
２１０  リンク
３００  スイッチ
３０１  ＤＭＡコントローラ
３０２  主記憶
３１０  非透過ポート
３１１  リンク
３１２  リンク
３１３  リンク
５００  エンドポイント２０１が持つ転送データ
５０１  ２等分されたエンドポイント２０１が持つ転送データ
５０２  リンク３１３を経由してエンドポイント２０１からスイッチ３００に転送するデータ
５０３  リンク３１１を経由してスイッチ３００からルートコンプレックス２００のポート１に転送するデータ
５０４  リンク３１２を経由してスイッチ３００からルートコンプレックス２００のポート２に転送するデータ
６００  リンク２１０を経由してエンドポイント２０１からルートコンプレックス２００に転送するデータ
【図１】
2011154609.tif 000003
【図２】
2011154609.tif 000004
【図３】
2011154609.tif 000005