(57)【要約】【課題】ＰＣＩｅバスで障害が発生した場合であっても、冗長性を確保しつつ、動作を継続することのできるＮＩＣを提供する。【解決手段】カードは、制御信号に基づいて、複数のＰＣＩｅバスのうちの１つを選択して切り替え可能なマルチプレクサであって、前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生している場合に、前記マルチプレクサが選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号に基づいて、前記ＰＣＩｅバスを選択して切り替える前記マルチプレクサと、前記選択され切り替えられた前記ＰＣＩｅバスを介して送信されるドライバに応じて動作するＥｔｈｅｒｎｅｔコントローラと、を備える。【選択図】図５
2020160919.tif 000002
【特許請求の範囲】
【請求項１】
制御信号に基づいて、複数のＰＣＩｅバスのうちの１つを選択して切り替え可能なマルチプレクサであって、前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生している場合に、前記マルチプレクサが選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号に基づいて、前記ＰＣＩｅバスを選択して切り替える前記マルチプレクサと、
前記選択され切り替えられた前記ＰＣＩｅバスを介して送信される制御信号に応じて動作するＥｔｈｅｒｎｅｔコントローラと、
を備える、
カード。
【請求項２】
前記複数のＰＣＩｅバスそれぞれに接続される複数の中継器を備え、
前記マルチプレクサは、
前記複数の中継器のうちの１つを介して、前記別のＰＣＩｅバスを選択させる制御信号に基づいて、前記ＰＣＩｅバスを選択して切り替える、
請求項１に記載のカード。
【請求項３】
請求項１または請求項２に記載のカードと、
前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生しているか否かを判定する判定部と、
前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生していると前記判定部が判定した場合に、前記マルチプレクサが選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号を、前記マルチプレクサに送信する送信部と、
を備え、
前記別のＰＣＩｅバスを選択させる制御信号を、前記送信部が前記マルチプレクサに送信した場合に、前記マルチプレクサは、前記別のＰＣＩｅバスを選択させる制御信号に基づいて、前記ＰＣＩｅバスを選択して切り替える、
システム。
【請求項４】
制御信号に基づいて、複数のＰＣＩｅバスのうちの１つを選択して切り替え可能なマルチプレクサと、前記選択され切り替えられた前記ＰＣＩｅバスを介して送信される制御信号に応じて動作するＥｔｈｅｒｎｅｔコントローラと、を備えるカードによる制御方法であって、
前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生している場合に、前記マルチプレクサが選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号に基づいて、前記ＰＣＩｅバスを選択して切り替えること、
前記選択され切り替えられた前記ＰＣＩｅバスを介して送信される制御信号に応じて動作することと、
を含むカードによる制御方法。
【請求項５】
制御信号に基づいて、複数のＰＣＩｅバスのうちの１つを選択して切り替え可能なマルチプレクサと、前記マルチプレクサに接続されるＥｔｈｅｒｎｅｔコントローラと、判定部と、送信部と、を備えるシステムによる制御方法であって、
前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生しているか否かを判定することと、
前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生していると判定した場合に、前記マルチプレクサが選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号を、前記マルチプレクサに送信することと、
前記別のＰＣＩｅバスを選択させる制御信号を、前記送信部が前記マルチプレクサに送信した場合に、前記別のＰＣＩｅバスを選択させる制御信号に基づいて、前記ＰＣＩｅバスを選択して切り替えることと、
を含むシステムによる制御方法。
【請求項６】
制御信号に基づいて、複数のＰＣＩｅバスのうちの１つを選択して切り替え可能なマルチプレクサと、前記選択され切り替えられた前記ＰＣＩｅバスを介して送信される制御信号に応じて動作するＥｔｈｅｒｎｅｔコントローラと、を備えるカードのコンピュータに、
前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生している場合に、前記マルチプレクサが選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号に基づいて、前記ＰＣＩｅバスを選択して切り替えること、
前記選択され切り替えられた前記ＰＣＩｅバスを介して送信される制御信号に応じて動作させることと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カード、システム、カードによる制御方法、システムによる制御方法及びプログラムに関する。
【背景技術】
【０００２】
通信機器では、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）（登録商標）カード上に複数のＥｔｈｅｒｎｅｔ（登録商標）ポートを備えたマルチポートＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）が使用されている場合がある。
特許文献１には、関連する技術として、ストレージコントローラ内のコンポーネントがＰＣＩｅで接続された内部ネットワークを持つストレージ装置に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１０８２１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、複数のＥｔｈｅｒｎｅｔポートを備えた関連するＮＩＣでは、１つのＰＣＩｅバスに１つのＥｔｈｅｒｎｅｔコントローラが接続され、複数のポートを制御している。このため、ＰＣＩｅバスやＥｔｈｅｒｎｅｔコントローラで不具合が発生した場合、すべてのポートが使用できなくなってしまう可能性がある。
【０００５】
本発明の各態様は、上記の課題を解決することのできるカード、システム、カードによる制御方法、システムによる制御方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の一態様によれば、カードは、制御信号に基づいて、複数のＰＣＩｅバスのうちの１つを選択して切り替え可能なマルチプレクサであって、前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生している場合に、前記マルチプレクサが選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号に基づいて、前記ＰＣＩｅバスを選択して切り替える前記マルチプレクサと、前記選択され切り替えられた前記ＰＣＩｅバスを介して送信される制御信号に応じて動作するＥｔｈｅｒｎｅｔコントローラと、を備える。
【０００７】
上記目的を達成するために、本発明の別の態様によれば、システムは、上記のカードと、前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生しているか否かを判定する判定部と、前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生していると前記判定部が判定した場合に、前記マルチプレクサが選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号を、前記マルチプレクサに送信する送信部と、を備え、前記別のＰＣＩｅバスを選択させる制御信号を、前記送信部が前記マルチプレクサに送信した場合に、前記マルチプレクサは、前記別のＰＣＩｅバスを選択させる制御信号に基づいて、前記ＰＣＩｅバスを選択して切り替える。
【０００８】
上記目的を達成するために、本発明の別の態様によれば、カードによる制御方法は、制御信号に基づいて、複数のＰＣＩｅバスのうちの１つを選択して切り替え可能なマルチプレクサと、前記選択され切り替えられた前記ＰＣＩｅバスを介して送信される制御信号に応じて動作するＥｔｈｅｒｎｅｔコントローラと、を備えるカードによる制御方法であって、前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生している場合に、前記マルチプレクサが選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号に基づいて、前記ＰＣＩｅバスを選択して切り替えること、前記選択され切り替えられた前記ＰＣＩｅバスを介して送信される制御信号に応じて動作することと、を含む。
【０００９】
上記目的を達成するために、本発明の別の態様によれば、システムによる制御方法は、制御信号に基づいて、複数のＰＣＩｅバスのうちの１つを選択して切り替え可能なマルチプレクサと、前記マルチプレクサに接続されるＥｔｈｅｒｎｅｔコントローラと、判定部と、送信部と、を備えるシステムによる制御方法であって、前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生しているか否かを判定することと、前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生していると判定した場合に、前記マルチプレクサが選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号を、前記マルチプレクサに送信することと、前記別のＰＣＩｅバスを選択させる制御信号を、前記送信部が前記マルチプレクサに送信した場合に、前記別のＰＣＩｅバスを選択させる制御信号に基づいて、前記ＰＣＩｅバスを選択して切り替えることと、を含む。
【００１０】
上記目的を達成するために、本発明の一態様によれば、プログラムは、制御信号に基づいて、複数のＰＣＩｅバスのうちの１つを選択して切り替え可能なマルチプレクサと、前記選択され切り替えられた前記ＰＣＩｅバスを介して送信される制御信号に応じて動作するＥｔｈｅｒｎｅｔコントローラと、を備えるカードのコンピュータに、前記マルチプレクサが選択しているＰＣＩｅバスに不具合が発生している場合に、前記マルチプレクサが選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号に基づいて、前記ＰＣＩｅバスを選択して切り替えること、前記選択され切り替えられた前記ＰＣＩｅバスを介して送信される制御信号に応じて動作させることと、を実行させる。
【発明の効果】
【００１１】
本発明の各態様によれば、ＰＣＩｅバスで障害が発生した場合であっても、動作を継続することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態によるシステムの構成を示す図である。
【図２】少なくとも１つの実施形態に係るマルチプレクサの動作を説明するための図である。
【図３】本発明の一実施形態によるシステムの具体例を示す図である。
【図４】本発明の一実施形態によるシステムの処理フローを示す図である。
【図５】本発明の実施形態による最小構成のＮＩＣを示す図である。
【図６】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら実施形態について詳しく説明する。
＜実施形態＞
本発明の一実施形態によるシステム１は、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ（以下、「ＮＩＣ」と記載、カードの一例）１０００、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓルートコンプレックス（以下、「ＰＣＩｅルートコンプレックス」と記載）２０００、Ｐｌａｔｆｏｒｍ  Ｃｏｎｔｒｏｌｌｅｒ  Ｈｕｂ（以下、「ＰＣＨ」と記載）３０００、ＣＰＵ４０００を備える。
【００１４】
ＮＩＣ１０００は、図１に示すように、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓスロット（以下、「ＰＣＩｅスロット」と記載）１０１１、１０１２、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓスイッチ（以下、「ＰＣＩｅスイッチ」と記載、中継器の一例）１０２１、１０２２、ＲＪ−４５コネクタ（Ｅｔｈｅｒｎｅｔポートの一例）１０５１、１０５２、１０５３、１０５４、１０５５、１０５６、１０５７、１０５８、Ｅｔｈｅｒｎｅｔコントローラ１０４１、１０４２、１０４３、１０４４、１０４５、１０４６、１０４７、１０４８、マルチプレクサ１０３１、１０３２、１０３３、１０３４、１０３５、１０３６、１０３７、１０３８、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓバス（以下、「ＰＣＩｅバス」と記載）１１０１、１１０２、１１１１、１１１２、１１１３、２０１１、２０１２、Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔバス（以下、「ＳＭバス」と記載）１２０１、３０１１、電源１４０１、１４０２、ＯＲ回路１０６１、１０６４、ＤＤコンバータ１０６２、１０６３を備える。
【００１５】
ＰＣＩｅルートコンプレックス２０００は、ＰＣＩｅバスを介して接続される装置とＰＣＩｅバス以外の配線で接続される装置とを接続する。また、ＰＣＩｅルートコンプレックス２０００は、ＰＣＩｅバスを介して接続される装置どうしを接続する。
ＰＣＨ３０００は、周辺機器の処理を行うチップセットである。
【００１６】
ＣＰＵ４０００は、ＰＣＩｅルートコンプレックス２０００及びＰＣＨ３０００を介して、ＮＩＣ１０００を制御する。ＣＰＵ４０００は、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（以下、「ＯＳ」と記載）上で、プログラム（ドライバを含む）が実行されることで、切り替え制御部４００１（判定部の一例、送信部の一例）を実現する。切り替え制御部４００１は、Ｅｔｈｅｒｎｅｔコントローラ１０４１〜１０４８のそれぞれと通信を行い、ＯＳ上のＥｔｈｅｒｎｅｔコントローラデバイスドライバ４００２を用いてＥｔｈｅｒｎｅｔコントローラ１０４１〜１０４８のそれぞれを制御する。このとき、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバ４００２は、切り替え制御部４００１を介してＰＣＩｅルートコンプレックス２０００に通信データを渡し、Ｅｔｈｅｒｎｅｔコントローラ１０４１〜１０４８と通信を行う。
【００１７】
ＰＣＩｅスイッチ１０２１とマルチプレクサ１０３１、１０３２、１０３３、１０３４、１０３５、１０３６、１０３７、１０３８のそれぞれとを接続する８つのバスを総称してＰＣＩｅバス１１１１と呼ぶ。
ＰＣＩｅスイッチ１０２２とマルチプレクサ１０３１、１０３２、１０３３、１０３４、１０３５、１０３６、１０３７、１０３８のそれぞれとを接続する８つのバスを総称してＰＣＩｅバス１１１２と呼ぶ。
マルチプレクサ１０３１とＥｔｈｅｒｎｅｔコントローラ１０４１、マルチプレクサ１０３２とＥｔｈｅｒｎｅｔコントローラ１０４２、マルチプレクサ１０３３とＥｔｈｅｒｎｅｔコントローラ１０４３、マルチプレクサ１０３４とＥｔｈｅｒｎｅｔコントローラ１０４４、マルチプレクサ１０３５とＥｔｈｅｒｎｅｔコントローラ１０４５、マルチプレクサ１０３６とＥｔｈｅｒｎｅｔコントローラ１０４６、マルチプレクサ１０３７とＥｔｈｅｒｎｅｔコントローラ１０４７、マルチプレクサ１０３８とＥｔｈｅｒｎｅｔコントローラ１０４８を接続する８つのバスを総称してＰＣＩｅバス１１１３と呼ぶ。
【００１８】
ＰＣＩｅスイッチ１０２１、１０２２のそれぞれは、１つのＰＣＩｅバスを複数のＰＣＩｅバスに分岐する。図１に示すシステム１では、ＰＣＩｅスイッチ１０２１は、ＰＣＩｅバス１１０１をＰＣＩｅバス１１１１の８つのバスに分岐している。すなわち、ＰＣＩｅスイッチ１０２１は、ＰＣＩｅバス１１０１とＰＣＩｅバス１１１１の８つのバスとを接続している。また、図１に示すシステム１では、ＰＣＩｅスイッチ１０２２は、ＰＣＩｅバス１１０２をＰＣＩｅバス１１１２の８つのバスに分岐している。すなわち、ＰＣＩｅスイッチ１０２２は、ＰＣＩｅバス１１０２とＰＣＩｅバス１１１２の８つのバスとを接続している。
【００１９】
Ｅｔｈｅｒｎｅｔコントローラ１０４１は、ＣＰＵ４０００を、ＲＪ−４５コネクタ１０５１を介してネットワーク（例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）など）に接続するための制御器である。Ｅｔｈｅｒｎｅｔコントローラ１０４１は、マルチプレクサ１０３１と、ＰＣＩｅバス１１１１およびＰＣＩｅバス１１１２を介してＣＰＵ４０００に接続されている。
【００２０】
Ｅｔｈｅｒｎｅｔコントローラ１０４２は、ＣＰＵ４０００を、ＲＪ−４５コネクタ１０５２を介してネットワークに接続するための制御器である。Ｅｔｈｅｒｎｅｔコントローラ１０４２は、マルチプレクサ１０３２と、ＰＣＩｅバス１１１１およびＰＣＩｅバス１１１２を介してＣＰＵ４０００に接続されている。
【００２１】
Ｅｔｈｅｒｎｅｔコントローラ１０４３は、ＣＰＵ４０００を、ＲＪ−４５コネクタ１０５３を介してネットワークに接続するための制御器である。Ｅｔｈｅｒｎｅｔコントローラ１０４３は、マルチプレクサ１０３３と、ＰＣＩｅバス１１１１およびＰＣＩｅバス１１１２を介してＣＰＵ４０００に接続されている。
【００２２】
Ｅｔｈｅｒｎｅｔコントローラ１０４４は、ＣＰＵ４０００を、ＲＪ−４５コネクタ１０５４を介してネットワークに接続するための制御器である。Ｅｔｈｅｒｎｅｔコントローラ１０４４は、マルチプレクサ１０３４と、ＰＣＩｅバス１１１１およびＰＣＩｅバス１１１２を介してＣＰＵ４０００に接続されている。
【００２３】
Ｅｔｈｅｒｎｅｔコントローラ１０４５は、ＣＰＵ４０００を、ＲＪ−４５コネクタ１０５５を介してネットワークに接続するための制御器である。Ｅｔｈｅｒｎｅｔコントローラ１０４５は、マルチプレクサ１０３５と、ＰＣＩｅバス１１１１およびＰＣＩｅバス１１１２を介してＣＰＵ４０００に接続されている。
【００２４】
Ｅｔｈｅｒｎｅｔコントローラ１０４６は、ＣＰＵ４０００を、ＲＪ−４５コネクタ１０５６を介してネットワークに接続するための制御器である。Ｅｔｈｅｒｎｅｔコントローラ１０４６は、マルチプレクサ１０３６と、ＰＣＩｅバス１１１１およびＰＣＩｅバス１１１２を介してＣＰＵ４０００に接続されている。
【００２５】
Ｅｔｈｅｒｎｅｔコントローラ１０４７は、ＣＰＵ４０００を、ＲＪ−４５コネクタ１０５７を介してネットワークに接続するための制御器である。Ｅｔｈｅｒｎｅｔコントローラ１０４７は、マルチプレクサ１０３７と、ＰＣＩｅバス１１１１およびＰＣＩｅバス１１１２を介してＣＰＵ４０００に接続されている。
【００２６】
Ｅｔｈｅｒｎｅｔコントローラ１０４８は、ＣＰＵ４０００を、ＲＪ−４５コネクタ１０５８を介してネットワークに接続するための制御器である。Ｅｔｈｅｒｎｅｔコントローラ１０４８は、マルチプレクサ１０３８と、ＰＣＩｅバス１１１１およびＰＣＩｅバス１１１２を介してＣＰＵ４０００に接続されている。
【００２７】
マルチプレクサ１０３１、１０３２、１０３３、１０３４、１０３５、１０３６、１０３７、１０３８のそれぞれは、図２に示すように、ＳＭバス１２０１を経由して受け取った制御信号に応じて、ＰＣＩｅバス１１１３を、ＰＣＩｅバス１１１１またはＰＣＩｅバス１１１２に接続させるように構成されている。制御信号は、ＰＣＩｅスロット１０１１及び１０１２に接続されているＳＭバス１２０１を介して、切り替え制御部４００１から制御信号をマルチプレクサ１０３１、１０３２、１０３３、１０３４、１０３５、１０３６、１０３７、１０３８のそれぞれに供給される。
【００２８】
電源１４０１、１４０２のそれぞれは、ＯＲ回路１０６１を介して、二重化されたＤＤコンバータ１０６２、１０６３へ接続されている。また、ＤＤコンバータ１０６２、１０６３は、ＯＲ回路１０６４を介して、各デバイスへ接続されている。ＯＲ回路１０６１、１０６４のそれぞれは、もっとも単純な例では２個のダイオードだけで構成され、十分にシンプルな仕組みである。そのため、ＯＲ回路１０６１、１０６４のそれぞれは、一般的に冗長化されていなくとも十分な信頼性を確保できるものとみなすことができる。
【００２９】
ＰＣＩｅバス２０１１とＰＣＩｅバス１１０１は、ＰＣＩｅスロット１０１１で接続されている。ＰＣＩｅバス２０１１とＰＣＩｅバス１１０１は、同じものである。また、ＰＣＩｅバス２０１２とＰＣＩｅバス１１０２は、ＰＣＩｅスロット１０１２で接続されている。ＰＣＩｅバス２０１２とＰＣＩｅバス１１０２は、同じものである。
【００３０】
ＳＭバス３０１１とＳＭバス１２０１は、ＰＣＩｅスロット１０１１で接続されている。ＳＭバス３０１１とＳＭバス１２０１は、同じものである。
ＰＣＨ３０００とマルチプレクサ１０３１〜１０３８は、ＰＣＩｅスロット１０１１）を経由するパスと、ＰＣＩｅスロット１０１２を経由するパスの、２系統で接続されている。仮に片方のＰＣＩｅスロットで障害が発生した場合であっても、もう片方のＰＣＩｅスロットでＳＭバスが接続されているため、ＰＣＨ３０００とマルチプレクサ１０３１〜１０３８は、通信を継続することができる。
【００３１】
切り替え制御部４００１は、ＰＣＨ３０００を介して、ＰＣＩｅスロット１０１１及び１０１２を制御することによって、ＰＣＩｅスイッチ１０２１と接続されているＰＣＩｅバス１１０１、または、ＰＣＩｅスイッチ１０２２と接続されているＰＣＩｅバス１１０２を選択可能となっている。
例えば、切り替え制御部４００１は、Ｅｔｈｅｒｎｅｔコントローラ１０４１〜１０４８がどのＰＣＩｅバスに接続されているかを把握しており、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバ４００２からの通信をどのＰＣＩｅバスを介して行うべきかを判断し、実際にＰＣＩｅバスを介して通信を行うようにＰＣＩｅルートコンプレックス２０００に対して指示を出している。
具体的には、次に示すように、選択可能となっている。切り替え制御部４００１は、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバ４００２がＥｔｈｅｒｎｅｔコントローラ１０４１〜１０４８に対して行う通信を、ＰＣＩｅルートコンプレックス２０００に対して中継している。この時、ＰＣＩｅルートコンプレックス２０００に対して２系統のＰＣＩｅバス（ＰＣＩｅバス１１０１とＰＣＩｅバス２０１１とを含む系統、および、ＰＣＩｅバス１１０２とＰＣＩｅバス２０１２とを含む系統）のどちらを介して通信を行うかを指示（制御）しており、ＰＣＩｅルートコンプレックス２０００を通してＥｔｈｅｒｎｅｔコントローラ１０４１〜１０４８への通信を任意のＰＣＩｅバスを介して行うことができるようになっている。また、切り替え制御部４００１は、ＰＣＨ３０００を経由してＳＭバス３０１１、３０１２を使用することで、マルチプレクサ１０３１〜１０３８と通信を実行することができる。
【００３２】
切り替え制御部４００１による制御によって選択されたＰＣＩｅスイッチ１０２１と接続されているＰＣＩｅバス１１０１、または、ＰＣＩｅスイッチ１０２２と接続されているＰＣＩｅバス１１０２を介して、切り替え制御部４００１と、Ｅｔｈｅｒｎｅｔコントローラ１０４１、１０４２、１０４３、１０４４、１０４５、１０４６、１０４７、１０４８のそれぞれとが接続される。切り替え制御部４００１は、ＰＣＩｅスイッチ１０２１と接続されているＰＣＩｅバス１１０１、または、ＰＣＩｅスイッチ１０２２と接続されているＰＣＩｅバス１１０２を介して、Ｅｔｈｅｒｎｅｔコントローラ１０４１、１０４２、１０４３、１０４４、１０４５、１０４６、１０４７、１０４８のそれぞれを、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバを用いて動作させる。
【００３３】
ＰＣＩｅスロット１０１１は、ＰＣＩｅ以外の信号（一般的に、「Ｓｉｄｅ  Ｂａｎｄ信号」と呼ばれる。以下、「Ｓｉｄｅ  Ｂａｎｄ信号」と記載）を伝送するＳＭバス３０１１と電源１４０１とを接続する。
ＰＣＩｅスロット１０１２は、Ｓｉｄｅ  Ｂａｎｄ信号を伝送するＳＭバス３０１１と電源１４０２とを接続する。
【００３４】
（具体例１）
図３は、本発明の一実施形態によるＮＩＣ１０００を、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓカード（以下、「ＰＣＩｅカード」と記載）上で実現する場合の具体的なシステム１の構成を示す図である。なお、図３では、図１に示したシステム１と構成の異なる箇所のみを示している。
【００３５】
図１に示したシステム１では説明の都合上、１枚のＮＩＣ１０００上に８つのＲＪ−４５コネクタ１０５１、１０５２、１０５３、１０５４、１０５５、１０５６、１０５７、１０５８を備える構成を示した。しかしながら、図３に示す具体例によるシステム１では、ＮＩＣ１０００ａにＲＪ−４５コネクタ１０５１、１０５２、１０５３、１０５４が搭載され、ＮＩＣ１０００ｂにＲＪ−４５コネクタ１０５５、１０５６、１０５７、１０５８が搭載されている。
【００３６】
図３に示す具体例によるシステム１における２枚のＮＩＣ１０００ａと１０００ｂは、上下に重ねて固定した状態で使用される。ＮＩＣ１０００ａと１０００ｂとの間のバス（図３におけるＡ、Ｂ、Ｃ）は、ケーブルや連結ピンを使用して接続される。すなわち、ＮＩＣ１０００ａにおけるＡとＮＩＣ１０００ｂにおけるＡどうし、ＮＩＣ１０００ａにおけるＢとＮＩＣ１０００ｂにおけるＢどうし、ＮＩＣ１０００ａにおけるＣとＮＩＣ１０００ｂにおけるＣどうしが、ケーブルや連結ピンを介して接続される。また、電源からの電力を供給する配線は、ケーブルや連結ピンを使用して接続される。すなわち、ＮＩＣ１０００ａにおけるＤとＮＩＣ１０００ｂにおけるＤどうし、ＮＩＣ１０００ａにおけるＥとＮＩＣ１０００ｂにおけるＥどうし、ＮＩＣ１０００ａにおけるＦとＮＩＣ１０００ｂにおけるＦどうし、ＮＩＣ１０００ａにおけるＧとＮＩＣ１０００ｂにおけるＧどうしが、ケーブルや連結ピンを介して接続される。
【００３７】
なお、図１に示したシステム１では、ＯＲ回路１０６１、１０６４の２つのみが搭載されている。しかしながら、図３に示す具体例によるシステム１では、２枚のＮＩＣ１０００ａ、１０００ｂに分割させた都合上、ＮＩＣ１０００ａにはＯＲ回路１０６１ａ、１０６４ａの２つが搭載され、ＮＩＣ１０００ｂにはＯＲ回路１０６１ｂ、１０６４ｂの２つが搭載されている。図３に示す具体例によるシステム１のそれ以外の構成は、図１に示したシステム１の構成と同じである。
【００３８】
次に、図３に示した具体例によるシステム１の動作について説明する。ここでは、図４に示す処理フローについて説明する。なお、図３に示した具体例によるシステム１の動作を簡潔に説明するために、Ｅｔｈｅｒｎｅｔコントローラ１０４１、１０４２、１０４３、１０４４、１０４５、１０４６、１０４７、１０４８それぞれは、同様に動作を考えることができるため、ここでは、Ｅｔｈｅｒｎｅｔコントローラ１０４１についてのみ動作を説明する。
【００３９】
ＰＣＩｅスロット１０１１は、ＰＣＩｅバス１１０１を介してＰＣＩｅスイッチ１０２１に接続されている。また、ＰＣＩｅスロット１０１２は、ＰＣＩｅバス１１０２を介してＰＣＩｅスイッチ１０２２に接続されている。
ＰＣＩｅスイッチ１０２１は、ＰＣＩｅバス１１１１及びマルチプレクサ１０３１を介してＥｔｈｅｒｎｅｔコントローラ１０４１に接続されている。また、ＰＣＩｅスイッチ１０２２は、ＰＣＩｅバス１１１２及びマルチプレクサ１０３１を介してＥｔｈｅｒｎｅｔコントローラ１０４１に接続されている。
ＰＣＩｅスロット１０１１、１０１２は、コネクタであり、ＰＣＩｅ信号を伝送するバス、Ｓｉｄｅ  Ｂａｎｄ信号を伝送するバス、電源が接続されている。
Ｅｔｈｅｒｎｅｔコントローラ１０４１は、切り替え制御部４００１からの制御信号に従って動作するマルチプレクサ１０３１によって、ＰＣＩｅバス１１１１及び１１１２のいずれかに接続される。
【００４０】
切り替え制御部４００１は、Ｅｔｈｅｒｎｅｔコントローラ１０４１がＰＣＩｅバス１１１１及び１１１２のどちらに接続された場合でも、ＰＣＩｅバス１１１１に接続されている場合と同様に、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバを用いて、Ｅｔｈｅｒｎｅｔコントローラ１０４１を動作させる。
通常の状態では、切り替え制御部４００１は、マルチプレクサ１０３１に、ＰＣＩｅスイッチ１０２１側、すなわち、ＰＣＩｅバス１１１１を選択する制御信号をＳＭバス１２０１経由で送信している。また、Ｅｔｈｅｒｎｅｔコントローラ１０４１は、ＰＣＩｅバス１１１１に接続されている。また、切り替え制御部４００１は、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバ４００２からＥｔｈｅｒｎｅｔコントローラ１０４１への通信を、ＰＣＩｅバス２０１１を介して行うように制御を行う。具体的には、切り替え制御部４００１は、Ｅｔｈｅｒｎｅｔコントローラ１０４１宛のデータをＰＣＩｅルートコンプレックス２０００に渡す時に、そのデータをＰＣＩｅバス２０１１に流すよう指定する。この状態では、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバ４００２、切り替え制御部４００１、ＰＣＩｅルートコンプレックス２０００、ＰＣＩｅバス２０１１、ＰＣＩｅスロット１０１１、ＰＣＩｅバス１１０１、ＰＣＩｅスイッチ１０２１、ＰＣＩｅバス１１１１、マルチプレクサ１０３１、ＰＣＩｅバス１１１３、Ｅｔｈｅｒｎｅｔコントローラ１０４１のパスの順番で通信が行われる。
【００４１】
この状態でＰＣＩｅスロット１０１１またはＰＣＩｅスイッチ１０２１で不具合が発生した場合を考える。
切り替え制御部４００１は、Ｅｔｈｅｒｎｅｔコントローラ１０４１が実際に接続されているＰＣＩｅバスに関わらず、Ｅｔｈｅｒｎｅｔコントローラ１０４１がＰＣＩｅバス１１１１に接続されているものとして、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバを用いてＥｔｈｅｒｎｅｔコントローラ１０４１を動作させる処理を行っている。
ＰＣＩｅスロット１０１１またはＰＣＩｅスイッチ１０２１で不具合が発生した場合、ＣＰＵ４０００とＥｔｈｅｒｎｅｔコントローラ１０４１の間で正しく通信を行えなくなることから、切り替え制御部４００１あるいはＥｔｈｅｒｎｅｔコントローラデバイスドライバ４００２が異常を検出する（すなわち、不具合が発生したと判定する）。
例えば、切り替え制御部４００１は、ＰＣＩｅバス１１１１の不具合を検出する（ステップＳ１）。
なお、異常を検出する箇所は、異常の内容によって、切り替え制御部４００１のこともあれば、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバ４００２のこともある。仮にＥｔｈｅｒｎｅｔコントローラデバイスドライバ４００２が異常を検出した場合は、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバ４００２は、切り替え制御部４００１に対して異常を検出したことを通知する。そして、切り替え制御部４００１は、上述のステップＳ１及びステップＳ２の処理を行い、現在のＰＣＩｅバスと別のＰＣＩｅバスに切り替える制御信号を、ＳＭバス３０１１を介してマルチプレクサ１０３１に送信すればよい。
【００４２】
切り替え制御部４００１は、異常を自身で検出すると、または、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバ４００２から異常を検出したことを通知されると、Ｅｔｈｅｒｎｅｔコントローラ１０４１をホットプラグで切断する（ステップＳ２）。
【００４３】
切り替え制御部４００１は、マルチプレクサ１０３１に対して、切り替え指示する制御信号を、ＰＣＨ３０００、ＳＭＢｕｓ３０１１、ＳＭＢｕｓ１２０１を経由して送信する。
【００４４】
マルチプレクサ１０３１は、切り替え制御部４００１からの制御信号を受けて、ＰＣＩｅバス１１１２を選択し（すなわち、ＰＣＩｅバスを切り替えて）（ステップＳ３）、Ｅｔｈｅｒｎｅｔコントローラ１０４１の接続先をＰＣＩｅスイッチ１０２１からＰＣＩｅスイッチ１０２２に切り替える。その結果、Ｅｔｈｅｒｎｅｔコントローラ１０４１は、ＰＣＩｅバス１１１１に接続されていたマルチプレクサ１０３１をＰＣＩｅバス１１１２に接続させる。
【００４５】
切り替え制御部４００１は、ＰＣＩｅバス１１１２に新しいデバイスが接続されたことを公知技術を用いて検出すると（例えば、配線が接続されその配線を介して電気信号が流れることによってデバイスが接続されたことを検出すると）、そのデバイスのユニークＩＤｅｎｔｉｆｉｃａｔｉｏｎ（以下、「ユニークＩＤ」と記載）を確認する（ステップＳ４）。このユニークＩＤは、デバイスに設定されたシリアル番号やＵｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ（ＵＵＩＤ）等でもよいし、Ｅｔｈｅｒｎｅｔコントローラの場合はＭＡＣアドレスでもよい。切り替え処理前に確認していたＥｔｈｅｒｎｅｔコントローラ１０４１と同じユニークＩＤが確認された場合、切り替え制御部４００１は、このデバイスをＥｔｈｅｒｎｅｔコントローラ１０４１と判断し、それ以降、ＰＣＩｅバス１１１２を介してＥｔｈｅｒｎｅｔコントローラデバイスドライバを用いてＥｔｈｅｒｎｅｔコントローラ１０４１を動作させる（ステップＳ５）。
これ以降、切り替え制御部４００１は、Ｅｔｈｅｒｎｅｔコントローラ１０４１へ送信するデータをＰＣＩｅルートコンプレックス２０００へ渡す時には、そのデータをＰＣＩｅバス２０１２を介して送信するよう指定する。この結果、Ｅｔｈｅｒｎｅｔコントローラ１０４１への通信は、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバ４００２、切り替え制御部４００１、ＰＣＩｅルートコンプレックス２０００、ＰＣＩｅバス２０１２、ＰＣＩｅスロット１０１２、ＰＣＩｅバス１１０２、ＰＣＩｅスイッチ１０２２、ＰＣＩｅバス１１１２、マルチプレクサ１０３１、ＰＣＩｅバス１１１３、Ｅｔｈｅｒｎｅｔコントローラ１０４１というパスの順番で行われる。
【００４６】
切り替え制御部４００１は、このような制御を行うため、切り替え制御部４００１がＰＣＩｅバス１１１１からＰＣＩｅバス１１１２に切り替えた後でも、Ｅｔｈｅｒｎｅｔコントローラデバイスドライバを用いて、ＰＣＩｅバス１１１１が正常であった時と同様にＥｔｈｅｒｎｅｔコントローラ１０４１を継続して動作させることができる。
なお、図３に示すシステム１において、仮にマルチプレクサ１０３１やＥｔｈｅｒｎｅｔコントローラ１０４１で不具合が発生した場合には、通信を継続することができない。しかしながら、Ｅｔｈｅｒｎｅｔコントローラ１０４１以外のＥｔｈｅｒｎｅｔコントローラ１０４２、１０４３、１０４４、１０４５、１０４６、１０４７、１０４８のそれぞれを経由して行われる通信には影響を与えない。そのため、図３に示すシステム１は、不具合発生時の影響範囲を最低限に留めることができる構成となっている。
【００４７】
以上、本発明の一実施形態によるシステム１について説明した。システム１のＮＩＣ１０００において、マルチプレクサ１０３１は、制御信号に基づいて、複数のＰＣＩｅバスのうちの１つを選択して切り替え可能なマルチプレクサである。マルチプレクサ１０３１は、選択しているＰＣＩｅバスに不具合が発生している場合に、選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号に基づいて、ＰＣＩｅバスを選択して切り替える。Ｅｔｈｅｒｎｅｔコントローラ１０４１は、前記選択され切り替えられた前記ＰＣＩｅバスを介して送信される制御信号に応じて動作する。
このように、ＮＩＣ１０００を構成することで、ＰＣＩｅバスの冗長性を確保し、仮に１系統のＰＣＩｅバスで不具合が発生しても残りの系統のＰＣＩｅバスでＥｔｈｅｒｎｅｔコントローラを動作させることができる。
また、ＮＩＣ１０００において、ＰＣＩｅバスの冗長性を確保できない部分についても、不具合の影響を受ける範囲を１ポートに留められるようになっており、１つの不具合で複数ポートが使用不能に陥ることを防ぐことができる。切り替え制御部４００１は、ユニークＩＤを確認することでＰＣＩｅバスが切り替わった場合であっても、ＰＣＩｅバスの切り替えを意識することなく、Ｅｔｈｅｒｎｅｔコントローラを動作させることができる。
【００４８】
本発明の実施形態による最小構成のＮＩＣ１０００について説明する。
本発明の実施形態による最小構成のＮＩＣ１０００は、図５に示すように、マルチプレクサ１０３１、Ｅｔｈｅｒｎｅｔコントローラ１０４１を備える。
マルチプレクサ１０３１は、制御信号に基づいて、複数のＰＣＩｅバスのうちの１つを選択して切り替え可能なマルチプレクサである。マルチプレクサ１０３１は、選択しているＰＣＩｅバスに不具合が発生している場合に、選択しているＰＣＩｅバスとは別のＰＣＩｅバスを選択させる制御信号に基づいて、ＰＣＩｅバスを選択して切り替える。
Ｅｔｈｅｒｎｅｔコントローラ１０４１は、前記選択され切り替えられた前記ＰＣＩｅバスを介して送信される制御信号に応じて動作する。
【００４９】
なお、本発明の一実施形態では、ＲＪ−４５コネクタを例に説明したが、ＲＪ−４５コネクタに限定するものではない。本発明の別の実施形態では、ＲＪ−４５コネクタの代わりに別のコネクタを用いるものであってもよい。また、本発明の別の実施形態では、ＮＩＣ１０００に光信号と電気信号とを変換する変換器を接続し、ＮＩＣ１０００から光ケーブルを介して、外部装置に光信号が伝送されるものであってもよい。
【００５０】
なお、本発明の一実施形態では、Ｅｔｈｅｒｎｅｔ規格を例に説明したが、Ｅｔｈｅｒｎｅｔ規格に限定するものではない。本発明の別の実施形態では、Ｅｔｈｅｒｎｅｔインターフェース以外のインターフェースであってもよい。
【００５１】
なお、本発明の一実施形態では、ＰＣＨ３０００がＳＭバスを制御しているものとして説明した。しかしながら、本発明の別の実施形態では、ＰＣＨ３０００以外の装置がＳＭバスを制御してもよい。
【００５２】
なお、本発明の一実施形態では、ポート数を８ポートとして説明した。しかしながら、本発明の別の実施形態では、ポート数は８つ以外であってもよい。
【００５３】
なお、本発明の一実施形態では、ＰＣＩｅスロットを２つ備え、ＰＣＩｅバスが二重化されているものとして説明した。しかしながら、本発明の別の実施形態では、複数のＰＣＩｅスロットを備え、ＰＣＩｅバスが多重化されているもの、例えば、３つのＰＣＩｅスロットを備え、ＰＣＩｅバスが三重化されているもの、であってもよい。
【００５４】
なお、本発明の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【００５５】
本発明の実施形態における記憶装置、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲においてどこに備えられていてもよい。また、本発明の実施形態における記憶装置、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲において複数存在しデータを分散して記憶していてもよい。
【００５６】
本発明の実施形態について説明したが、上述のシステム１、ＮＩＣ１０００、その他の制御装置は内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
図６は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ５は、図６に示すように、ＣＰＵ６、メインメモリ７、ストレージ８、インターフェース９を備える。
例えば、上述のシステム１、ＮＩＣ１０００、その他の制御装置のそれぞれは、コンピュータ５に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ８に記憶されている。ＣＰＵ６は、プログラムをストレージ８から読み出してメインメモリ７に展開し、当該プログラムに従って上記処理を実行する。また、ＣＰＵ６は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ７に確保する。
【００５７】
ストレージ８の例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、半導体メモリ等が挙げられる。ストレージ８は、コンピュータ５のバスに直接接続された内部メディアであってもよいし、インターフェース９または通信回線を介してコンピュータ５に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ５に配信される場合、配信を受けたコンピュータ５が当該プログラムをメインメモリ７に展開し、上記処理を実行してもよい。少なくとも１つの実施形態において、ストレージ８は、一時的でない有形の記憶媒体である。
【００５８】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル（差分プログラム）であってもよい。
【００５９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
【符号の説明】
【００６０】
１・・・システム
５・・・コンピュータ
６、４０００・・・ＣＰＵ
７・・・メインメモリ
８・・・ストレージ
９・・・インターフェース
１０００・・・Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ（ＮＩＣ）
１０１１、１０１２・・・Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓスロット（ＰＣＩｅスロット）
１０２１、１０２２・・・Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓスイッチ（ＰＣＩｅスイッチ）
１０３１、１０３２、１０３３、１０３４、１０３５、１０３６、１０３７、１０３８・・・マルチプレクサ
１０４１、１０４２、１０４３、１０４４、１０４５、１０４６、１０４７、１０４８・・・Ｅｔｈｅｒｎｅｔコントローラ
１０５１、１０５２、１０５３、１０５４、１０５５、１０５６、１０５７、１０５８・・・ＲＪ−４５コネクタ
１０６１、１０６４・・・ＯＲ回路
１０６２、１０６３・・・ＤＤコンバータ
１１０１、１１０２、１１１１、１１１２、１１１３、２０１１、２０１２・・・Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓバス（ＰＣＩｅバス）
１２０１、３０１１・・・Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔバス（ＳＭバス）
１４０１、１４０２・・・電源
２０００・・・Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓルートコンプレックス（ＰＣＩｅルートコンプレックス
３０００・・・Ｐｌａｔｆｏｒｍ  Ｃｏｎｔｒｏｌｌｅｒ  Ｈｕｂ（ＰＣＨ）
【図１】
2020160919.tif 000003
【図２】
2020160919.tif 000004
【図３】
2020160919.tif 000005
【図４】
2020160919.tif 000006
【図５】
2020160919.tif 000007
【図６】
2020160919.tif 000008