(57)【要約】【課題】データ転送の効率化を図る。【解決手段】相互にデータ転送を行う第１装置と複数の第２装置とを接続するスイッチ装置であって、第１装置との間のＭ個（Ｍは１以上の整数）のレーンからなる第１伝送路を介する通信を制御する第１ポート制御部と、第２装置との間のＮ個（ＮはＮ≧Ｍを満たす整数）のレーンからなる第２伝送路を介する通信を制御する第２ポート制御部と、データ転送を行う第２装置の個数に応じて、データ転送を行う第２装置との通信に用いるレーンの個数を決定する決定部と、を備え、第２ポート制御部は、第２伝送路のレーンのうち、決定された個数のレーンを用いて第２装置との間の通信を制御する。【選択図】図１
2014155108.tif 000002
【特許請求の範囲】
【請求項１】
相互にデータ転送を行う第１装置と複数の第２装置とを接続するスイッチ装置であって、
前記第１装置との間のＭ個（Ｍは１以上の整数）のレーンからなる第１伝送路を介する通信を制御する第１ポート制御部と、
前記第２装置との間のＮ個（ＮはＮ≧Ｍを満たす整数）のレーンからなる第２伝送路を介する通信を制御する第２ポート制御部と、
データ転送を行う前記第２装置の個数に応じて、データ転送を行う前記第２装置との通信に用いるレーンの個数を決定する決定部と、を備え、
前記第２ポート制御部は、前記第２伝送路のレーンのうち、決定された個数のレーンを用いて前記第２装置との間の通信を制御する、
スイッチ装置。
【請求項２】
前記決定部は、データ転送の開始要求またはデータ転送の終了要求が受信されたときに、受信後にデータ転送を行う前記第２装置の個数に応じて前記レーンの個数を決定する、
請求項１に記載のスイッチ装置。
【請求項３】
前記決定部は、前記第１装置から前記第２装置に対してデータ転送する方向、および、前記第２装置から前記第１装置に対してデータ転送する方向、の２つの方向ごとに、データ転送を行う前記第２装置の個数に応じて前記レーンの個数を決定する、
請求項１に記載のスイッチ装置。
【請求項４】
前記第１ポート制御部は、ルートコンプレックスである前記第１装置との間の前記第１伝送路を介する通信を制御し、
前記第２ポート制御部は、エンドポイントである前記第２装置との間の前記第２伝送路を介する通信を制御する、
請求項１に記載のスイッチ装置。
【請求項５】
相互にデータ転送を行う第１装置と複数の第２装置とを接続するスイッチ装置で実行されるデータ転送方法であって、
前記第１装置との間のＭ個（Ｍは１以上の整数）のレーンからなる第１伝送路を介する通信を制御する第１ポート制御ステップと、
前記第２装置との間のＮ個（ＮはＮ≧Ｍを満たす整数）のレーンからなる第２伝送路を介する通信を制御する第２ポート制御ステップと、
データ転送を行う前記第２装置の個数に応じて、データ転送を行う前記第２装置との通信に用いるレーンの個数を決定する決定ステップと、を含み、
前記第２ポート制御ステップは、前記第２伝送路のレーンのうち、決定された個数のレーンを用いて前記第２装置との間の通信を制御する、
データ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スイッチ装置およびデータ転送方法に関する。
【背景技術】
【０００２】
ＰＣＩＥｘｐｒｅｓｓを使用して複数のデバイスを接続する場合、デバイス間にスイッチを接続することで、１つのルートコンプレックスと、複数のエンドポイントを接続した、ツリー構造のデータ転送システムとして構成することができる。このようなデータ転送システムで、ルートコンプレックスと複数のエンドポイントが同時にデータ転送する場合と、ルートコンプレックスが１つのエンドポイントのみとデータ転送する場合とで、ルートコンプレックスとスイッチ間およびエンドポイントとスイッチ間の転送性能（レーン数）を変える技術が提案されている。これにより、余分なレーン数を用いることなく、転送レートも低下しないようにすることができる。
【０００３】
例えば、特許文献１は、ルートコンプレックスとスイッチ間およびエンドポイントとスイッチ間のレーン数を設定する方法を提案している。具体的には、複数のエンドポイントが同時に転送する可能性のあるシステムにおいては、各エンドポイントとスイッチ間のレーン数を全て加算した値を、ルートコンプレックスとスイッチ間のレーン数とする。これにより、転送レートの低下を防ぐことができる。一方、複数のエンドポイントが同時に転送する可能性がない、すなわち１つのエンドポイントのみが転送するシステムにおいては、エンドポイントとスイッチ間のレーン数とルートコンプレックスとスイッチ間のレーン数を同じにする。この方法によれば、ルートコンプレックスが、同時に複数のエンドポイントとデータ転送するシステムの場合に、転送レートの低下を防ぐこと、および、複数のエンドポイントが同時に転送を行わないシステムの場合に、無駄になるレーンをなくすことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方法は、ルートコンプレックスと複数のエンドポイントとが同時に転送する可能性のあるシステム、および、１つのエンドポイントのみ転送するシステムが、それぞれ別のシステムであることを前提としている。このため、いずれの状態も起こり得るシステムには適用できない。
【０００５】
本発明は、上記に鑑みてなされたものであって、データ転送の対象となる装置の個数によらず、データ転送の効率化を図ることができるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、相互にデータ転送を行う第１装置と複数の第２装置とを接続するスイッチ装置であって、前記第１装置との間のＭ個（Ｍは１以上の整数）のレーンからなる第１伝送路を介する通信を制御する第１ポート制御部と、前記第２装置との間のＮ個（ＮはＮ≧Ｍを満たす整数）のレーンからなる第２伝送路を介する通信を制御する第２ポート制御部と、データ転送を行う前記第２装置の個数に応じて、データ転送を行う前記第２装置との通信に用いるレーンの個数を決定する決定部と、を備え、前記第２ポート制御部は、前記第２伝送路のレーンのうち、決定された個数のレーンを用いて前記第２装置との間の通信を制御する。
【０００７】
また、本発明は、相互にデータ転送を行う第１装置と複数の第２装置とを接続するスイッチ装置で実行されるデータ転送方法であって、前記第１装置との間のＭ個（Ｍは１以上の整数）のレーンからなる第１伝送路を介する通信を制御する第１ポート制御ステップと、前記第２装置との間のＮ個（ＮはＮ≧Ｍを満たす整数）のレーンからなる第２伝送路を介する通信を制御する第２ポート制御ステップと、データ転送を行う前記第２装置の個数に応じて、データ転送を行う前記第２装置との通信に用いるレーンの個数を決定する決定ステップと、を含み、前記第２ポート制御ステップは、前記第２伝送路のレーンのうち、決定された個数のレーンを用いて前記第２装置との間の通信を制御する。
【発明の効果】
【０００８】
本発明によれば、データ転送を行う装置の個数に応じて当該装置との通信に用いるレーンの個数を決定する。これにより、データ転送の対象となる装置の個数によらず、データ転送の効率化を図ることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、データ転送システムの構成例を示す図である。
【図２】図２は、データ転送システムの構成例を示す図である。
【図３】図３は、本実施形態のデータ転送システムの構成例を示すブロック図である。
【図４】図４は、本実施形態のデータ転送システムの構成例を示すブロック図である。
【図５】図５は、ルートコンプレックスからエンドポイントへのデータ転送開始時および終了時のレーン数変更処理の一例について説明する図である。
【図６】図６は、エンドポイントからルートコンプレックスへのデータ転送開始時および終了時のレーン数変更処理の一例について説明する図である。
【図７】図７は、ＰＣＩｅスイッチの詳細な構成例を示すブロック図である。
【図８】図８は、レーン数決定処理の流れの一例を示すフローチャートである。
【図９】図９は、レーン数変更処理で使用する各パケットの構成例を示す図である。
【図１０】図１０は、レーン数変更処理で使用する各パケットの構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、この発明にかかるスイッチ装置およびデータ転送方法の一実施形態を詳細に説明する。以下では、ＰＣＩＥｘｐｒｅｓｓに準拠したスイッチ装置（以下、ＰＣＩｅスイッチという）に適用した例を説明するが、適用可能な装置はＰＣＩＥｘｐｒｅｓｓに準拠した装置に限られるものではない。
【００１１】
本実施形態のＰＣＩｅスイッチは、相互にデータ転送を行うルートコンプレックス（第１装置の一例）と、複数のエンドポイント（第２装置の一例）と接続可能なスイッチ装置である。ＰＣＩｅスイッチは、ルートコンプレックスとエンドポイントとの間でのデータ転送開始時および転送終了時に、既に転送中のエンドポイントの個数、および、それ以降に同時にデータ転送を行うエンドポイントの数に応じて、最適なレーン数を決定する。ＰＣＩｅスイッチは、データ転送を開始するエンドポイントおよび転送中の各エンドポイントに、決定したレーン数を通知する。その後、ＰＣＩｅスイッチと各エンドポイントとで、それぞれのＰＣＩＥｘｐｒｅｓｓポートのレーン数を変更し、データ転送を開始または再開する。
【００１２】
これにより、ルートコンプレックスと複数のエンドポイントとの間でのデータ転送中に、新たなエンドポイントが転送開始したり、転送中のエンドポイントが転送終了したりして、同時に転送するエンドポイントの数が変化しても、設定変更することなく、その時点で転送中のエンドポイント数に応じた最適なレーン数でデータ転送が継続できる。
【００１３】
図１および図２は、データ転送システムの構成例を示す図である。図１および図２に示すように、データ転送システムは、複数のエンドポイント１００ａ、１００ｂと、ＰＣＩｅスイッチ２０と、ルートコンプレックス３００と、を備えている。
【００１４】
エンドポイント１００ａ、１００ｂは、同様の機能を備えるため、区別する必要がない場合は単にエンドポイント１００という場合がある。エンドポイント１００は、ＰＣＩＥｘｐｒｅｓｓのエンドポイントとして動作する機器である。なお、エンドポイント１００の個数は２に限られるものではない。ルートコンプレックス３００は、ＰＣＩＥｘｐｒｅｓｓのルートコンプレックスとして動作する機器である。
【００１５】
図１は、ルートコンプレックス３００と、１つのエンドポイント１００のみがデータ転送する場合の構成例を示す図である。この場合は、ルートコンプレックス３００とＰＣＩｅスイッチ２０との間のレーン数を、エンドポイント１００とＰＣＩｅスイッチ２０との間のレーン数と同じにすれば、無駄なレーンをなくすことができる。
【００１６】
図２は、ルートコンプレックス３００と、複数のエンドポイント１００とが同時にデータ転送する場合の構成例を示す図である。この場合は、ルートコンプレックス３００とＰＣＩｅスイッチ２０との間のレーン数を、各エンドポイント１００とＰＣＩｅスイッチ２０との間のレーン数を合計したレーン数とする。これにより、各エンドポイント１００との間の転送レートを低下させることなくデータ転送を実行することができる。
【００１７】
ここで、図１および図２で示すようなデータ転送状態の両方が起こり得るデータ転送システムの場合は、転送レートを低下させないために図２の構成を適用する必要がある。しかし、このような構成では、１つのエンドポイント１００のみが転送する場合に、ルートコンプレックス３００とＰＣＩｅスイッチ２０との間のレーン数が、４レーン分無駄になる。
【００１８】
そこで、本実施形態のデータ転送システムでは、図３および図４に示すような構成でレーン数を変更可能なＰＣＩｅスイッチ２００を接続し、レーン数を制御する。図３および図４は、本実施形態のデータ転送システムの構成例を示すブロック図である。図３および図４に示すように、本実施形態のデータ転送システムは、エンドポイント１００と、ＰＣＩｅスイッチ２００と、ルートコンプレックス３００と、を備えている。
【００１９】
エンドポイント１００およびルートコンプレックス３００の機能は図１と同様である。ＰＣＩｅスイッチ２００は、レーン数を変更する機能を備える点が図１および図２のＰＣＩｅスイッチ２０と異なっている。
【００２０】
図３および図４に示すように、本実施形態のデータ転送システムでは、エンドポイント１００とＰＣＩｅスイッチ２００との間を、ルートコンプレックス３００とＰＣＩｅスイッチ２００との間と同じ８レーンで接続する。また、本実施形態のデータ転送システムでは、エンドポイント１００とＰＣＩｅスイッチ２００との間のレーン数を変更できる構成とする。これにより、１つのエンドポイント１００のみがデータ転送を実行しているときは、エンドポイント１００とＰＣＩｅスイッチ２００との間を接続する、すべてのレーン（８レーン）が使用される。もう一方のエンドポイント１００が転送を開始し、２つのエンドポイント１００がデータ転送を実行する場合は、使用するレーン数をそれぞれ４レーンに変更してデータ転送が実行される。
【００２１】
その後、いずれかのエンドポイント１００が転送終了すると、再びレーン数を８レーンに変更して転送が継続される。これにより、ルートコンプレックス３００とＰＣＩｅスイッチ２００との間のレーン数を無駄なく使用することができる。
【００２２】
なお、レーン数は上記例に限られるものではない。ＰＣＩｅスイッチ２００とルートコンプレックス３００とを接続する伝送路（第１伝送路）に含まれるレーンの個数をＭ個（Ｍは１以上の整数）としたとき、ＰＣＩｅスイッチ２００とエンドポイント１００とを接続する伝送路（第２伝送路）に含まれるレーンの個数がＮ個（ＮはＮ≧Ｍを満たす整数）となるように構成してもよい。これにより、１つのエンドポイントのみがデータ転送する場合は、Ｎ個のうちＭ個のレーンを用いてデータ転送が実行できる。また、複数のエンドポイント１００とデータ転送する場合は、Ｎ個のレーンのうち例えば（Ｍ／Ｋ）個のレーンをそれぞれ用いてデータ転送が実行できる。なお、Ｋはデータ転送するエンドポイント１００の個数を表す。
【００２３】
ＰＣＩｅスイッチ２００がレーン数を制御する手順を以下に説明する。図５は、ルートコンプレックス３００からエンドポイント１００へのデータ転送開始時および終了時のレーン数変更処理の一例について説明する図である。
【００２４】
ルートコンプレックス３００は、データ転送開始前に、ＰＣＩｅスイッチ２００へ転送開始要求パケットを送信する。ＰＣＩｅスイッチ２００は、転送開始要求パケットを受信する（ステップＳ１０１）。ＰＣＩｅスイッチ２００は、転送中のＰＣＩＥｘｐｒｅｓｓポートの数（転送中のエンドポイント１００の個数）に応じて使用するレーン数を決定するレーン数決定処理を実行する（ステップＳ１０２）。
【００２５】
ＰＣＩｅスイッチ２００は、決定したレーン数をレーン数変更要求パケットとして、転送中のポートに接続された各エンドポイント１００へ送信する（ステップＳ１０３）。エンドポイント１００は、レーン数変更要求パケットに従い、転送に用いるレーン数を変更する（ステップＳ１０４）。同様に、ＰＣＩｅスイッチ２００も、転送に用いるレーン数を変更する（ステップＳ１０５）。
【００２６】
エンドポイント１００は、ポートのレーン数変更処理が完了したら、レーン数変更完了パケットをＰＣＩｅスイッチ２００へ送信する（ステップＳ１０６）。ＰＣＩｅスイッチ２００は、レーン数変更完了パケットを受信すると、ルートコンプレックス３００へ、レーン数変更完了パケットを送信する（ステップＳ１０７）。
【００２７】
ルートコンプレックス３００は、レーン数変更完了パケットを受信したら、ＰＣＩｅスイッチ２００経由でデータ転送を開始する。ＰＣＩｅスイッチ２００は、ルートコンプレックス３００から転送されたデータを受信する（ステップＳ１０８）。ＰＣＩｅスイッチ２００は、受信したデータをエンドポイント１００に転送する（ステップＳ１０９）。
【００２８】
ルートコンプレックス３００は、データ転送終了後に、ＰＣＩｅスイッチ２００へ転送終了パケットを送信する。ＰＣＩｅスイッチ２００は、ルートコンプレックス３００から送信された転送終了パケットを受信する（ステップＳ１１０）。転送終了パケットを受信すると、ＰＣＩｅスイッチ２００は、使用するレーン数を決定するレーン数決定処理を実行する（ステップＳ１１１）。
【００２９】
ＰＣＩｅスイッチ２００は、決定したレーン数をレーン数変更要求パケットとして、転送中のポートに接続された各エンドポイント１００へ送信する（ステップＳ１１２）。エンドポイント１００は、レーン数変更要求パケットに従い、転送に用いるレーン数を変更する（ステップＳ１１３）。同様に、ＰＣＩｅスイッチ２００も、転送に用いるレーン数を変更する（ステップＳ１１４）。
【００３０】
エンドポイント１００は、ポートのレーン数変更処理が完了したら、レーン数変更完了パケットをＰＣＩｅスイッチ２００へ送信する（ステップＳ１１５）。
【００３１】
図６は、エンドポイント１００からルートコンプレックス３００へのデータ転送開始時および終了時のレーン数変更処理の一例について説明する図である。
【００３２】
エンドポイント１００は、データ転送開始前に、ＰＣＩｅスイッチ２００へ転送開始要求パケットを送信する（ステップＳ２０１）。転送開始要求パケットを受けたＰＣＩｅスイッチ２００は、転送中のＰＣＩＥｘｐｒｅｓｓポートの数に応じて使用するレーン数を決定するレーン数決定処理を実行する（ステップＳ２０２）。
【００３３】
ＰＣＩｅスイッチ２００は、決定したレーン数をレーン数変更要求パケットとして、転送中のポートに接続された各エンドポイント１００へ送信する（ステップＳ２０３）。エンドポイント１００は、レーン数変更要求パケットに従い、転送に用いるレーン数を変更する（ステップＳ２０４）。同様に、ＰＣＩｅスイッチ２００も、転送に用いるレーン数を変更する（ステップＳ２０５）。
【００３４】
ＰＣＩｅスイッチ２００は、ポートのレーン数変更処理が完了したら、レーン数変更完了パケットをエンドポイント１００へ送信する（ステップＳ２０６）。
【００３５】
エンドポイント１００は、レーン数変更完了パケットを受信したら、データ転送を開始する（ステップＳ２０７）。
【００３６】
エンドポイント１００は、データ転送終了後に、ＰＣＩｅスイッチ２００へ転送終了パケットを送信する（ステップＳ２０８）。転送終了パケットを受けたＰＣＩｅスイッチ２００は、使用するレーン数を決定するレーン数決定処理を実行する（ステップＳ２０９）。
【００３７】
ＰＣＩｅスイッチ２００は、決定したレーン数をレーン数変更要求パケットとして、転送中のポートに接続された各エンドポイント１００へ送信する（ステップＳ２１０）。エンドポイント１００は、レーン数変更要求パケットに従い、転送に用いるレーン数を変更する（ステップＳ２１１）。同様に、ＰＣＩｅスイッチ２００も、転送に用いるレーン数を変更する（ステップＳ２１２）。
【００３８】
ＰＣＩｅスイッチ２００は、ポートのレーン数変更処理が完了したら、レーン数変更完了パケットをエンドポイント１００へ送信する（ステップＳ２１３）。
【００３９】
図７は、ＰＣＩｅスイッチ２００の詳細な構成例を示すブロック図である。図７の例では、ルートコンプレックス３００と２つのエンドポイント１００とが接続されたデータ転送システムの例を示している。
【００４０】
図７に示すように、ＰＣＩｅスイッチ２００は、ポート制御部２１０ａ、２１０ｂ（第２ポート制御部）と、パケット制御部２２０ａ、２２０ｂと、レーン制御部２３０（決定部）と、ポート制御部２４０（第１ポート制御部）と、を備えている。
【００４１】
ポート制御部２１０ａ、２１０ｂは、それぞれエンドポイント１００ａ、１００ｂからのパケットを送受信する処理を制御する。以下、ポート制御部２１０ａ、２１０ｂを区別する必要がない場合は単にポート制御部２１０という場合がある。ポート制御部２１０の個数は２に限られるものではなく、例えばエンドポイント１００の個数に合わせて、エンドポイント１００それぞれに対応するポート制御部２１０を備えてもよい。
【００４２】
ポート制御部２４０は、ルートコンプレックス３００からのパケットを送受信する処理を制御する。また、ポート制御部２１０ａ、２１０ｂは、レーン制御部２３０からレーン数変更指示を受けると、対応するポートの使用レーン数を変更する。ポート制御部２１０ａは、転送フラグ２１１ａ、２１２ａを保持している。
【００４３】
また、ポート制御部２１０ｂは、転送フラグ２１１ｂ、２１２ｂを保持している。各転送フラグは、対応するポートがデータ転送中であるか否かを示す情報である。図７の例では、各転送フラグは、転送方向ごと（ルートコンプレックス３００からエンドポイント１００への方向（ＲＣ→ＥＰ））、および、エンドポイント１００からルートコンプレックス３００への方向（ＥＰ→ＲＣ））に存在する。例えば、転送フラグ２１１ａおよび２１１ｂが、ルートコンプレックス３００からエンドポイント１００への方向のデータ転送の有無を表すフラグである。また、転送フラグ２１２および２１２ｂが、エンドポイント１００からルートコンプレックス３００への方向のデータ転送の有無を表すフラグである。
【００４４】
各転送フラグは、パケット制御部２２０ａ、２２０ｂによって、データ転送開始時に転送中を示す情報（オン（例えば‘１’））が設定され、転送終了時に転送終了を示す情報（オフ（例えば‘０’））が設定される。
【００４５】
パケット制御部２２０ａ、２２０ｂは、ルートコンプレックス３００とエンドポイント１００ａ、１００ｂとの間のパケットの送受信を制御する。以下、区別する必要がない場合は、単にパケット制御部２２０という場合がある。パケット制御部２２０の個数は２に限られるものではなく、例えばエンドポイント１００の個数に合わせて、エンドポイント１００それぞれに対応するパケット制御部２２０を備えてもよい。
【００４６】
パケット制御部２２０は、ルートコンプレックス３００またはエンドポイント１００からの転送開始要求パケットの受信を認識すると、データ転送を開始するポートの、該当する転送方向の転送フラグをオンに設定する。パケット制御部２２０は、転送終了パケットを認識した際には、転送を終了したポートの、該当する転送方向の転送フラグをオフに設定する。また、パケット制御部２２０は、レーン制御部２３０に対してレーン数決定処理の開始を指示する。パケット制御部２２０は、その後、レーン制御部２３０から決定したレーン数を受け取り、受け取ったレーン数を含むレーン数変更要求パケットを生成して、ポート制御部２１０を介してエンドポイント１００へ送信する。レーン数の変更が完了したら、パケット制御部２２０は、エンドポイント１００に対してレーン数変更完了パケットを送受信する。
【００４７】
レーン制御部２３０は、パケット制御部２２０からレーン数決定処理の開始を指示されると、各ポートの転送フラグの状態をチェックし、転送中のポート数から使用するレーン数を決定して、パケット制御部２２０に返す。また、ポート制御部２１０に対してレーン数の変更を指示する。
【００４８】
図８は、レーン数決定処理の流れの一例を示すフローチャートである。
【００４９】
パケット制御部２２０は、転送開始要求パケットまたは転送終了パケットを受信する（ステップＳ３０１）。パケット制御部２２０は、受信したパケットがルートコンプレックス３００から受信したパケットであるか否かを判断する（ステップＳ３０２）。ルートコンプレックス３００からの受信ならば（ステップＳ３０２：Ｙｅｓ）、パケット制御部２２０は、該当するポートの、ルートコンプレックス３００からエンドポイント１００への転送フラグをオン（‘１’）またはオフ（‘０’）に設定する（ステップＳ３０３）。例えば、転送開始要求パケットを受信した場合は、パケット制御部２２０は、転送フラグをオンに設定する。また、転送終了パケットを受信した場合は、パケット制御部２２０は、転送フラグをオフに設定する。
【００５０】
エンドポイント１００からの受信ならば（ステップＳ３０２：Ｎｏ）、パケット制御部２２０は、エンドポイント１００からルートコンプレックス３００への転送フラグをオン（‘１’）またはオフ（‘０’）に設定する（ステップＳ３０４）。
【００５１】
レーン制御部２３０は、パケット制御部２２０からレーン数決定処理の開始を指示されると、エンドポイント１００に接続された各ポートに対応するポート制御部２１０内の転送フラグを確認する（ステップＳ３０５）。レーン制御部２３０は、同じ転送方向の転送フラグが、転送中であることを示すオン（‘１’）になっているポートが２個以上存在するか否かを判断する（ステップＳ３０６）。存在する場合（ステップＳ３０６：Ｙｅｓ）、レーン制御部２３０は、接続されているレーン数を、転送中（転送フラグがオン）のポート数で割った値を、各ポートのレーン数として決定する（ステップＳ３０７）、また、転送中のポートが１つの場合は（ステップＳ３０６：Ｎｏ）、レーン制御部２３０は、接続されている全てのレーン（またはルートコンプレックス３００に接続されるレーンの個数と同数のレーン）をそのポートのレーン数として決定する（ステップＳ３０８）。その後、レーン制御部２３０は、決定したレーン数をパケット制御部２２０へ渡すとともに、ポート制御部２１０へレーン数の変更を指示する（ステップＳ３０９）。
【００５２】
図９および図１０は、レーン数変更処理で使用する各パケットの構成例を示す図である。レーン数変更処理で使用する各パケットは、データリンク層パケット（ＤＬＬＰ（Data  Link  Layer  Packet））を使用する。図９は、ＰＣＩＥｘｐｒｅｓｓ規格で定義されたＤＬＬＰタイプごとのエンコード（Encodings）の例を示している。レーン数変更処理で使用する各パケットのＤＬＬＰタイプは、ＰＣＩＥｘｐｒｅｓｓ規格で拡張用に「Ｖｅｎｄｏｒ  Ｓｐｅｃｉｆｉｃ」と定義されているエンコード９０１（‘００１１００００’）に割り当てる。
【００５３】
図１０に示すように、本実施形態のレーン数変更処理で使用する各パケットは、ＤＬＬＰタイプを示す１バイト（００１１００００）と、パケットの種類ごとに異なる固有情報３バイトを含む。
【００５４】
パケットの種類が転送開始要求パケットの場合、固有情報は、パケット種別を表す情報として「０」と、転送先デバイス番号とを含む。パケットの種類がレーン数変更要求パケットの場合、固有情報は、パケット種別を表す情報として「１」と、変更すべきレーン数とを含む。パケットの種類がレーン数変更完了パケットの場合、固有情報は、パケット種別を表す情報として「２」を含む。パケットの種類が転送終了パケットの場合、固有情報は、パケット種別を表す情報として「３」と、転送先デバイス番号とを含む。
【符号の説明】
【００５５】
２０  ＰＣＩｅスイッチ
１００ａ、１００ｂ  エンドポイント
２００  ＰＣＩｅスイッチ
２１０ａ、２１０ｂ  ポート制御部
２２０ａ、２２０ｂ  パケット制御部
２３０  レーン制御部
２４０  ポート制御部
３００  ルートコンプレックス
【先行技術文献】
【特許文献】
【００５６】
【特許文献１】特開２００７−２２６４９４号公報
【図１】
2014155108.tif 000003
【図２】
2014155108.tif 000004
【図３】
2014155108.tif 000005
【図４】
2014155108.tif 000006
【図５】
2014155108.tif 000007
【図６】
2014155108.tif 000008
【図７】
2014155108.tif 000009
【図８】
2014155108.tif 000010
【図９】
2014155108.tif 000011
【図１０】
2014155108.tif 000012