(57)【要約】【課題】他のエンドポイントを必要とすることなく、１つのエンドポイントを複数のサーバが共有することのできるエンドポイント代理アクセス装置、共有システム、代理アクセス方法および代理アクセスプログラムを得る。【解決手段】エンドポイント代理アクセス装置１０は、図示しない現用系および待機系のサーバに代理してエンドポイントにアクセスする。マッピング手段１１は、これらのサーバからエンドポイントに対するアドレスをマッピングし、差分検出手段１２がこれらのアドレスの差分を求める。これにより、各サーバからエンドポイントにアクセスする際のアドレス変換手段１３によるアドレス変換が可能になる。【選択図】図１
2011048452.tif 000002
【特許請求の範囲】
【請求項１】
現用系のサーバに対応するメモリ空間上に待機系のサーバと共有する入出力装置としての所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピング手段と、
このマッピング手段によってマッピングされる現用系のサーバに対する前記所定数のエンドポイントのアドレス情報と、前記待機系のサーバに対応するメモリ空間上にマッピングされる前記所定数のエンドポイントのアドレス情報との差分を、これらのサーバのＣＰＵ（Central Processing Unit）のベースアドレスの値の差によって検出する差分検出手段と、
この差分検出手段によって検出された差分を基にして、待機系のサーバが現用系に切り替わった際にこの切り替わった後のサーバに代理して前記所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行うアドレス変換手段と、
前記現用系のサーバと待機系のサーバの系の切り替え時機の到来を監視する切替時機到来監視手段と、
この切替時機到来監視手段によって前記サーバの待機系が現用系に切り替えられるまでは、前記マッピング手段にマッピングされたエンドポイントのアドレス情報をそのまま用いて前記現用系のサーバに代理して前記所定数のエンドポイントにアクセスする第１のエンドポイントアクセス手段と、
前記切替時機到来監視手段によって前記サーバの待機系が現用系に切り替えられたときは、前記待機系のサーバに対応するメモリ空間上にマッピングされる前記所定数のエンドポイントのアドレス情報をそれぞれ前記アドレス変換手段で変換して現用系に切り替えられたサーバに代理して前記所定数のエンドポイントにアクセスする第２のエンドポイントアクセス手段
とを具備することを特徴とするエンドポイント代理アクセス装置。
【請求項２】
前記マッピング手段は、前記所定数のエンドポイントを共有する現用系の汎用サーバの電源投入時にこの汎用サーバに代理してピーシーアイエクスプレス（Peripheral Component Interconnect Express）バス配下の前記所定数のエンドポイントにアクセスして、ピーシーアイ（Peripheral Component Interconnect）メモリ空間上にアドレス情報をマッピングすることを特徴とする請求項１記載のエンドポイント代理アクセス装置。
【請求項３】
所定数のエンドポイントを互いに共有し、ピーシーアイエクスプレス（Peripheral Component Interconnect Express）バスに接続されたネットワークインタフェースカード（Network Interface Card）が実装された現用系および待機系の汎用サーバと、
現用系のサーバに対応するメモリ空間上に待機系のサーバと共有する入出力装置としての所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピング手段と、このマッピング手段によってマッピングされる現用系のサーバに対する前記所定数のエンドポイントのアドレス情報と、前記待機系のサーバに対応するメモリ空間上にマッピングされる前記所定数のエンドポイントのアドレス情報との差分を、これらのサーバのＣＰＵ（Central Processing Unit）のベースアドレスの値の差によって検出する差分検出手段と、この差分検出手段によって検出された差分を基にして、待機系のサーバが現用系に切り替わった際にこの切り替わった後のサーバに代理して前記所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行うアドレス変換手段と、前記現用系のサーバと待機系のサーバの系の切り替え時機の到来を監視する切替時機到来監視手段と、この切替時機到来監視手段によって前記サーバの待機系が現用系に切り替えられるまでは、前記マッピング手段にマッピングされたエンドポイントのアドレス情報をそのまま用いて前記現用系のサーバに代理して前記所定数のエンドポイントにアクセスする第１のエンドポイントアクセス手段と、前記切替時機到来監視手段によって前記サーバの待機系が現用系に切り替えられたときは、前記待機系のサーバに対応するメモリ空間上にマッピングされる前記所定数のエンドポイントのアドレス情報をそれぞれ前記アドレス変換手段で変換して現用系に切り替えられたサーバに代理して前記所定数のエンドポイントにアクセスする第２のエンドポイントアクセス手段とを備え、前記マッピング手段は、前記所定数のエンドポイントを共有する現用系の汎用サーバの電源投入時にこの汎用サーバに代理してピーシーアイエクスプレス（Peripheral Component Interconnect Express）バス配下の前記所定数のエンドポイントにアクセスして、ピーシーアイ（Peripheral Component Interconnect）メモリ空間上にアドレス情報をマッピングするエンドポイント代理アクセス装置
とを具備することを特徴とするエンドポイント共有システム。
【請求項４】
前記現用系および待機系の汎用サーバは、前記ネットワークインタフェースカードを複数組ずつ実装し、これら複数組と同一数だけ前記エンドポイント代理アクセス装置が設けられ、それぞれの組ごとに前記現用系および待機系の汎用サーバがエンドポイント代理アクセス装置の対応するものに接続されていることを特徴とする請求項３記載のエンドポイント共有システム。
【請求項５】
前記現用系および待機系の汎用サーバは、ピーシーアイエクスプレス（Peripheral Component Interconnect Express）バスを介して送受信されるピーシーアイエクスプレスパケットをカプセル化したりデカプセル化するサーバ側カプセル化デカプセル化手段をそれぞれ備えており、
これら現用系および待機系の汎用サーバの前記カプセル化デカプセル化手段とケーブルを介して接続され、カプセル化したピーシーアイエクスプレスパケットをデカプセル化すると共に、パケットの宛先に応じて複数の出力経路のいずれか対応するものに振り分けるスイッチ装置が更に設けられており、
前記エンドポイント代理アクセス装置は、前記スイッチ装置の前記複数の出力経路の１つずつに１組ずつ対応して設けられ、ピーシーアイエクスプレスパケットをカプセル化したりデカプセル化する代理側カプセル化デカプセル化手段をそれぞれ備えている
ことを特徴とする請求項３記載のエンドポイント共有システム。
【請求項６】
前記現用系および待機系の汎用サーバは、ＣＰＵ（Central Processing Unit）を備えており、このサーバに電源が投入された時点でＢＩＯＳ（Basic Input/Output System）の指示でピーシーアイエクスプレス配下のエンドポイントを検索するサーバ側検索手段と、検索したエンドポイントのマッピングを行うサーバ側マッピング手段とを具備することを特徴とする請求項３〜請求項５いずれかに記載のエンドポイント共有システム。
【請求項７】
現用系のサーバに対応するメモリ空間上に待機系のサーバと共有する入出力装置としての所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピングステップと、
このマッピングステップによってマッピングされる現用系のサーバに対する前記所定数のエンドポイントのアドレス情報と、前記待機系のサーバに対応するメモリ空間上にマッピングされる前記所定数のエンドポイントのアドレス情報との差分を、これらのサーバのＣＰＵ（Central Processing Unit）のベースアドレスの値の差によって検出する差分検出ステップと、
前記現用系のサーバと待機系のサーバの系の切り替え時機の到来を監視する切替時機到来監視ステップと、
この切替時機到来監視ステップによって前記サーバの待機系が現用系に切り替えられるまで、前記マッピング手段にマッピングされたエンドポイントのアドレス情報をそのまま用いて前記現用系のサーバに代理して前記所定数のエンドポイントにアクセスする第１のエンドポイントアクセスステップと、
前記切替時機到来監視ステップによって前記サーバの待機系が現用系に切り替えられたとき、前記待機系のサーバに対応するメモリ空間上にマッピングされる前記所定数のエンドポイントのアドレス情報をそれぞれ差分検出ステップによって検出された差分を基にして、待機系のサーバが現用系に切り替わった際にこの切り替わった後のサーバに代理して前記所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行って、現用系に切り替えられたサーバに代理して前記所定数のエンドポイントにアクセスする第２のエンドポイントアクセスステップ
とを具備することを特徴とするエンドポイント代理アクセス方法。
【請求項８】
前記現用系および待機系の汎用サーバは、ＣＰＵ（Central Processing Unit）を備えており、これらのサーバに電源が投入された時点でＢＩＯＳ（Basic Input/Output System）の指示でピーシーアイエクスプレス配下のエンドポイントを検索するサーバ側検索手段と、検索したエンドポイントのマッピングを行うサーバ側マッピング手段とを具備することを特徴とする請求項７記載のエンドポイント代理アクセス方法。
【請求項９】
前記現用系および待機系の汎用サーバの共有するエンドポイントを複数に分割し、それぞれ分割後のエンドポイントのグループごとに代理でアクセスすることを特徴とする請求項７または請求項８記載のエンドポイント代理アクセス方法。
【請求項１０】
現用系のサーバと待機系のサーバのそれぞれとピーシーアイエクスプレス（Peripheral Component Interconnect Express）バスを介して接続され、これらのサーバと入出力装置としての所定数のエンドポイントを共有する装置のコンピュータに、
前記現用系のサーバに対応するメモリ空間上に前記所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピング処理と、
このマッピング処理によってマッピングされる前記現用系のサーバに対する前記所定数のエンドポイントのアドレス情報と、前記待機系のサーバに対応するメモリ空間上にマッピングされる前記所定数のエンドポイントのアドレス情報との差分を、これらのサーバのＣＰＵ（Central Processing Unit）のベースアドレスの値の差によって検出する差分検出処理と、
前記現用系のサーバと待機系のサーバの系の切り替え時機の到来を監視する切替時機到来監視処理と、
この切替時機到来監視処理によって前記サーバの待機系が現用系に切り替えられるまで、前記マッピング手段にマッピングされたエンドポイントのアドレス情報をそのまま用いて前記現用系のサーバに代理して前記所定数のエンドポイントにアクセスする第１のエンドポイントアクセス処理と、
前記切替時機到来監視処理によって前記サーバの待機系が現用系に切り替えられたとき、前記待機系のサーバに対応するメモリ空間上にマッピングされる前記所定数のエンドポイントのアドレス情報をそれぞれ差分検出処理によって検出された差分を基にして、待機系のサーバが現用系に切り替わった際にこの切り替わった後のサーバに代理して前記所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行って、現用系に切り替えられたサーバに代理して前記所定数のエンドポイントにアクセスする第２のエンドポイントアクセス処理
とを実行させることを特徴とするエンドポイント代理アクセスプログラム。
【請求項１１】
前記現用系および待機系の汎用サーバは、ＣＰＵ（Central Processing Unit）を備えており、これらのサーバに電源が投入された時点でＢＩＯＳ（Basic Input/Output System）の指示でピーシーアイエクスプレス配下のエンドポイントを検索するサーバ側検索処理と、検索したエンドポイントのマッピングを行うサーバ側マッピング処理とを実行することを特徴とする請求項１０記載のエンドポイント代理アクセスプログラム。
【請求項１２】
前記現用系および待機系の汎用サーバの共有するエンドポイントを複数に分割し、それぞれ分割後のエンドポイントのグループごとに代理でアクセスするプログラムが構成されていることを特徴とする請求項１０または請求項１１記載のエンドポイント代理アクセスプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵ（Central Processing Unit）あるいはサーバが入出力装置としてのエンドポイントを共有するためのエンドポイント代理アクセス装置、共有システム、代理アクセス方法および代理アクセスプログラムに関する。本発明は特に拡張バスの一種であるピーシーアイエクスプレス（PCI Express）を使用してエンドポイントを共有するのに好適なエンドポイント代理アクセス装置、共有システム、代理アクセス方法および代理アクセスプログラムに関する。
【背景技術】
【０００２】
ピーシーアイエクスプレスとは、ＰＣＩ（Peripheral Component Interconnect）バスに代わって策定されたシリアル転送インタフェースである。「ＰＣＩ  Ｅｘｐｒｅｓｓ」は、「ＰＣＩｅ」と略して表記される。ピーシーアイエクスプレスでは、ポイント・ツー・ポイントのシリアル伝送を採用している。
【０００３】
ピーシーアイエクスプレスを用いた通信システムは、サーバ側のＣＰＵ（Central Processing Unit）と複数のエンドポイント（End Point）とで構成される。エンドポイントとは、ＬＡＮ（Local Area Network）コントローラやストレージデバイス等のデータの入出力装置の総称である。
【０００４】
ところで、ピーシーアイエクスプレスを用いた通信システムでは、従来からエンドポイントに接続できるＣＰＵが１個に制限されている。したがって、信頼性が要求されるシステムを構築するためにＣＰＵを二重化あるいは多重化する場合には、それぞれのＣＰＵがエンドポイントを共有するための何らかの工夫が必要とされる。
【０００５】
そこで、複数のＣＰＵ（プロセッサ）がエンドポイントを共有するために、他のエンドポイントを介して目的のエンドポイントにアクセスする技術が本発明の関連技術として提案されている（たとえば特許文献１参照）。
【０００６】
図１４は、この関連技術におけるエンドポイント共有システムの構成の概要を表わしたものである。このエンドポイント共有システム６００では、第１のプロセッサユニット６０１が第１のホストブリッジ６０２および第１の外部バス６０３を経由して第１のエンドポイント６０４に接続されている。同様に、第２のプロセッサユニット６１１は第２のホストブリッジ６１２および第２の外部バス６１３を経由して第２のエンドポイント６１４に接続されている。
【０００７】
第１のエンドポイント６０４と第２のエンドポイント６１４は互いに異なる外部バス６０３、６１３に接続されているので、たとえば第１のプロセッサユニット６０１がそのまま第２のエンドポイント６１４を使用することができない。そこで、エンドポイント共有システム６００では、第１のエンドポイント６０４と第２のエンドポイント６１４の間に、これらの間を伝達される信号の変換を行う変換部６２１と、変換部６２１で変換に使用するデータを記憶するメモリ６２２を配置している。
【０００８】
たとえば第１のプロセッサユニット６０１から第２のプロセッサユニット６１１の第２のエンドポイント６１４へパケットを送信するものとする。この場合、そのパケットは、まず第１のエンドポイント６０４に送信される。第１のエンドポイント６０４に到達したパケットには、要求元のバス番号およびデバイス番号からなる要求元ＩＤ（identifier）が含まれる。このは第１のホストブリッジ６０２のバス番号およびデバイス番号が要求元ＩＤとなる。これを変換部６２１において変換し、要求元ＩＤを第２のエンドポイント６１４のバス番号およびデバイス番号とする。これにより、第２のプロセッサユニット６１１配下のデバイスツリー内で有効なパケットが生成され、パケットを同ツリー内の所望のユニット、デバイスへ到達させることができる。第２のプロセッサユニット６１１のデバイスツリーから第１のプロセッサユニット６０１のデバイスツリーに向けたパケット送信も同様である。
【０００９】
メモリ６２２には、第１および第２のホストブリッジ６０２、６１２のバス番号およびデバイス番号を、パケットに与えられたタグと対応づけて要求元ＩＤテーブルとして格納している。タグはあるアクセス確立のための要求および応答に対して一意に定められる識別番号である。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００７−１８８４４６号公報（第００１８段落〜第００２４段落、図２）
【発明の概要】
【発明が解決しようとする課題】
【００１１】
この関連技術によるエンドポイント共有システム６００では、第１のプロセッサユニット６０１が第２のプロセッサユニット６１１のエンドポイント６１４を共有するためには、変換部６２１およびメモリ６２２を接続した他のエンドポイント６０４を介する必要がある。このためには、共有する１つのエンドポイントのために、第１のプロセッサユニット６０１と第２のプロセッサユニット６１１がそれぞれ１つずつのエンドポイント６０４、６１４を用意する必要がある。また、変換部６２１とこの変換部６２１の変換に必要な要求元ＩＤテーブルを格納したメモリ６２２を必要とし、システムの管理や運用が煩雑となる。
【００１２】
そこで本発明の目的は、他のエンドポイントを必要とすることなく、１つのエンドポイントを複数のサーバが共有することのできるエンドポイント代理アクセス装置、共有システム、代理アクセス方法および代理アクセスプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明では、（イ）現用系のサーバに対応するメモリ空間上に待機系のサーバと共有する入出力装置としての所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピング手段と、（ロ）このマッピング手段によってマッピングされる現用系のサーバに対する前記した所定数のエンドポイントのアドレス情報と、前記した待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報との差分を、これらのサーバのＣＰＵ（Central Processing Unit）のベースアドレスの値の差によって検出する差分検出手段と、（ハ）この差分検出手段によって検出された差分を基にして、待機系のサーバが現用系に切り替わった際にこの切り替わった後のサーバに代理して前記した所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行うアドレス変換手段と、（ニ）前記した現用系のサーバと待機系のサーバの系の切り替え時機の到来を監視する切替時機到来監視手段と、（ホ）この切替時機到来監視手段によって前記したサーバの待機系が現用系に切り替えられるまでは、前記したマッピング手段にマッピングされたエンドポイントのアドレス情報をそのまま用いて前記した現用系のサーバに代理して前記した所定数のエンドポイントにアクセスする第１のエンドポイントアクセス手段と、（へ）前記した切替時機到来監視手段によって前記したサーバの待機系が現用系に切り替えられたときは、前記した待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報をそれぞれ前記したアドレス変換手段で変換して現用系に切り替えられたサーバに代理して前記した所定数のエンドポイントにアクセスする第２のエンドポイントアクセス手段とをエンドポイント代理アクセス装置が具備する。
【００１４】
また、本発明では、（イ）所定数のエンドポイントを互いに共有し、ピーシーアイエクスプレス（Peripheral Component Interconnect Express）バスに接続されたネットワークインタフェースカード（Network Interface Card）が実装された現用系および待機系の汎用サーバと、（ロ）現用系のサーバに対応するメモリ空間上に待機系のサーバと共有する入出力装置としての所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピング手段と、このマッピング手段によってマッピングされる現用系のサーバに対する前記した所定数のエンドポイントのアドレス情報と、前記した待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報との差分を、これらのサーバのＣＰＵ（Central Processing Unit）のベースアドレスの値の差によって検出する差分検出手段と、この差分検出手段によって検出された差分を基にして、待機系のサーバが現用系に切り替わった際にこの切り替わった後のサーバに代理して前記した所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行うアドレス変換手段と、前記した現用系のサーバと待機系のサーバの系の切り替え時機の到来を監視する切替時機到来監視手段と、この切替時機到来監視手段によって前記したサーバの待機系が現用系に切り替えられるまでは、前記したマッピング手段にマッピングされたエンドポイントのアドレス情報をそのまま用いて前記した現用系のサーバに代理して前記した所定数のエンドポイントにアクセスする第１のエンドポイントアクセス手段と、前記した切替時機到来監視手段によって前記したサーバの待機系が現用系に切り替えられたときは、前記した待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報をそれぞれ前記したアドレス変換手段で変換して現用系に切り替えられたサーバに代理して前記した所定数のエンドポイントにアクセスする第２のエンドポイントアクセス手段とを備え、前記したマッピング手段は、前記した所定数のエンドポイントを共有する現用系の汎用サーバの電源投入時にこの汎用サーバに代理してピーシーアイエクスプレス（Peripheral Component Interconnect Express）バス配下の前記した所定数のエンドポイントにアクセスして、ピーシーアイ（Peripheral Component Interconnect）メモリ空間上にアドレス情報をマッピングするエンドポイント代理アクセス装置とをエンドポイント共有システムが具備する。
【００１５】
更に本発明では、（イ）現用系のサーバに対応するメモリ空間上に待機系のサーバと共有する入出力装置としての所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピングステップと、（ロ）このマッピングステップによってマッピングされる現用系のサーバに対する前記した所定数のエンドポイントのアドレス情報と、前記した待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報との差分を、これらのサーバのＣＰＵ（Central Processing Unit）のベースアドレスの値の差によって検出する差分検出ステップと、（ハ）前記した現用系のサーバと待機系のサーバの系の切り替え時機の到来を監視する切替時機到来監視ステップと、（ニ）この切替時機到来監視ステップによって前記したサーバの待機系が現用系に切り替えられるまで、前記したマッピング手段にマッピングされたエンドポイントのアドレス情報をそのまま用いて前記した現用系のサーバに代理して前記した所定数のエンドポイントにアクセスする第１のエンドポイントアクセスステップと、（ホ）前記した切替時機到来監視ステップによって前記したサーバの待機系が現用系に切り替えられたとき、前記した待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報をそれぞれ差分検出ステップによって検出された差分を基にして、待機系のサーバが現用系に切り替わった際にこの切り替わった後のサーバに代理して前記した所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行って、現用系に切り替えられたサーバに代理して前記した所定数のエンドポイントにアクセスする第２のエンドポイントアクセスステップとをエンドポイント代理アクセス方法が具備する。
【００１６】
また、本発明では、現用系のサーバと待機系のサーバのそれぞれとピーシーアイエクスプレス（Peripheral Component Interconnect Express）バスを介して接続され、これらのサーバと入出力装置としての所定数のエンドポイントを共有する装置のコンピュータに、エンドポイント代理アクセスプログラムとして、（イ）前記した現用系のサーバに対応するメモリ空間上に前記した所定数のエンドポイントのアドレス情報をそれぞれマッピングするマッピング処理と、（ロ）このマッピング処理によってマッピングされる前記した現用系のサーバに対する前記した所定数のエンドポイントのアドレス情報と、前記した待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報との差分を、これらのサーバのＣＰＵ（Central Processing Unit）のベースアドレスの値の差によって検出する差分検出処理と、（ハ）前記した現用系のサーバと待機系のサーバの系の切り替え時機の到来を監視する切替時機到来監視処理と、（ニ）この切替時機到来監視処理によって前記したサーバの待機系が現用系に切り替えられるまで、前記したマッピング手段にマッピングされたエンドポイントのアドレス情報をそのまま用いて前記した現用系のサーバに代理して前記した所定数のエンドポイントにアクセスする第１のエンドポイントアクセス処理と、（ホ）前記した切替時機到来監視処理によって前記したサーバの待機系が現用系に切り替えられたとき、前記した待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報をそれぞれ差分検出処理によって検出された差分を基にして、待機系のサーバが現用系に切り替わった際にこの切り替わった後のサーバに代理して前記した所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行って、現用系に切り替えられたサーバに代理して前記した所定数のエンドポイントにアクセスする第２のエンドポイントアクセス処理とを実行させる。
【発明の効果】
【００１７】
以上説明したように本発明によれば、複数のサーバが所望のエンドポイントを、他のエンドポイントを介することなく共有し、エンドポイントに対する入出力制御が可能である。共有の対象となるエンドポイントは、たとえばピーシーアイエクスプレスに準拠したデバイスをそのまま用いることが可能である。
【００１８】
また、本発明によれば、現用系から待機系に、またはその逆の系に切り替える際に、エンドポイントに対するリセットや再設定の処理が不要である。このため、提供中のサービスを中断することなく、系の切り替え時にサーバに搭載されたＣＰＵの切り替えを高速に行うことができる。
【図面の簡単な説明】
【００１９】
【図１】本発明のエンドポイント代理アクセス装置のクレーム対応図である。
【図２】本発明のエンドポイント共有システムのクレーム対応図である。
【図３】本発明のエンドポイント代理アクセス方法のクレーム対応図である。
【図４】本発明のエンドポイント代理アクセスプログラムのクレーム対応図である。
【図５】本発明の実施の形態によるエンドポイント共有システムの構成を表わしたシステム構成図である。
【図６】本実施の形態におけるサーバの電源投入後のアドレス変換テーブル作成までのコンフィグレーション処理の様子を示した説明図である。
【図７】本実施の形態におけるベースアドレスの概念を示した説明図である。
【図８】本実施の形態における第０のサーバと第１のサーバのメモリ空間を対比した説明図である。
【図９】本実施の形態における第０のサーバによるデータのリードおよびライトの処理を表わした説明図である。
【図１０】本実施の形態における第１のサーバによるデータのリードおよびライトの処理を表わした説明図である。
【図１１】本実施の形態におけるＡＣＴ系とＳＢＹ系の切替動作を示した説明図である。
【図１２】本発明の第１の変形例におけるエンドポイント共有システムの構成を表わしたシステム構成図である。
【図１３】本発明の第２の変形例におけるエンドポイント共有システムの構成を表わしたシステム構成図である。
【図１４】本発明の関連技術におけるエンドポイント共有システムの構成の概要を表わしたシステム構成図である。
【発明を実施するための形態】
【００２０】
図１は、本発明のエンドポイント代理アクセス装置のクレーム対応図を示したものである。本発明のエンドポイント代理アクセス装置１０は、マッピング手段１１と、差分検出手段１２と、アドレス変換手段１３と、切替時機到来監視手段１４と、第１のエンドポイントアクセス手段１５と、第２のエンドポイントアクセス手段１６を備えている。ここで、マッピング手段１１は、現用系のサーバに対応するメモリ空間上に待機系のサーバと共有する入出力装置としての所定数のエンドポイントのアドレス情報をそれぞれマッピングする。差分検出手段１２は、マッピング手段１１によってマッピングされる現用系のサーバに対する前記した所定数のエンドポイントのアドレス情報と、前記した待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報との差分を求める。これは、現用系のサーバと待機系のサーバそれぞれのＣＰＵのベースアドレスの値の差によって検出する。アドレス変換手段１３は、待機系のサーバが現用系に切り替わった際にこの切り替わった後のサーバに代理して前記した所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行う。アドレス情報の変換は、差分検出手段１２によって検出された差分を基にして行う。切替時機到来監視手段１４は、現用系のサーバと待機系のサーバの系の切り替え時機の到来を監視する。第１のエンドポイントアクセス手段１５は、切替時機到来監視手段１４によって前記したサーバの待機系が現用系に切り替えられるまでは、前記した現用系のサーバに代理して前記した所定数のエンドポイントにアクセスする。このとき、マッピング手段１１にマッピングされたエンドポイントのアドレス情報をそのまま用いる。第２のエンドポイントアクセス手段１６は、切替時機到来監視手段１４によって前記したサーバの待機系が現用系に切り替えられたとき、現用系に切り替えられたサーバに代理して前記した所定数のエンドポイントにアクセスする。このときには、記待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報をそれぞれ前記したアドレス変換手段で変換して、前記した所定数のエンドポイントにアクセスする。
【００２１】
図２は、本発明のエンドポイント共有システムのクレーム対応図を示したものである。本発明のエンドポイント共有システム２０は、現用系および待機系の汎用サーバ２１、２２と、エンドポイント代理アクセス装置２３を備えている。ここで、汎用サーバ２１、２２は、所定数のエンドポイントを互いに共有し、ピーシーアイエクスプレスバスに接続されたネットワークインタフェースカード２４、２５が実装されている。エンドポイント代理アクセス装置２３は、マッピング手段１１と、差分検出手段１２と、アドレス変換手段１３と、切替時機到来監視手段１４と、第１のエンドポイントアクセス手段１５と、第２のエンドポイントアクセス手段１６を備えている。ここで、マッピング手段１１は、現用系のサーバに対応するメモリ空間上に待機系のサーバと共有する入出力装置としての所定数のエンドポイントのアドレス情報をそれぞれマッピングする。差分検出手段１２は、マッピング手段１１によってマッピングされる現用系のサーバに対する前記した所定数のエンドポイントのアドレス情報と、前記した待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報との差分を求める。これは、現用系のサーバと待機系のサーバのＣＰＵのベースアドレスの値の差によって検出する。アドレス変換手段１３は、待機系のサーバが現用系に切り替わった際にこの切り替わった後のサーバに代理して前記した所定数のエンドポイントにアクセスするときの、切り替え後におけるアドレス情報の変換を行う。アドレス情報の変換は、差分検出手段１２によって検出された差分を基にして行う。切替時機到来監視手段１４は、現用系のサーバと待機系のサーバの系の切り替え時機の到来を監視する。第１のエンドポイントアクセス手段１５は、切替時機到来監視手段１４によって前記したサーバの待機系が現用系に切り替えられるまでは、前記した現用系のサーバに代理して前記した所定数のエンドポイントにアクセスする。このとき、マッピング手段１１にマッピングされたエンドポイントのアドレス情報をそのまま用いる。第２のエンドポイントアクセス手段１６は、切替時機到来監視手段１４によって前記したサーバの待機系が現用系に切り替えられたとき、現用系に切り替えられたサーバに代理して前記した所定数のエンドポイントにアクセスする。このときには、記待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報をそれぞれ前記したアドレス変換手段で変換して、前記した所定数のエンドポイントにアクセスする。
【００２２】
図３は、本発明のエンドポイント代理アクセス方法のクレーム対応図を示したものである。本発明のエンドポイント代理アクセス方法３０は、マッピングステップ３１と、差分検出ステップ３２と、切替時機到来監視ステップ３３と、第１のエンドポイントアクセスステップ３４と、第２のエンドポイントアクセスステップ３５を備えている。ここで、マッピングステップ３１では、現用系のサーバに対応するメモリ空間上に待機系のサーバと共有する入出力装置としての所定数のエンドポイントのアドレス情報をそれぞれマッピングする。差分検出ステップ３２では、マッピングステップ３１によってマッピングされる現用系のサーバに対する前記した所定数のエンドポイントのアドレス情報と、前記した待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報との差分を求める。これは、現用系のサーバと待機系のサーバそれぞれのＣＰＵのベースアドレスの値の差によって検出する。切替時機到来監視ステップ３３では、現用系のサーバと待機系のサーバの系の切り替え時機の到来を監視する。第１のエンドポイントアクセスステップ３４では、切替時機到来監視ステップ３３によって前記したサーバの待機系が現用系に切り替えられるまで、前記した現用系のサーバに代理して前記した所定数のエンドポイントにアクセスする。このとき、マッピングステップ３１でマッピングされたエンドポイントのアドレス情報をそのまま用いる。第２のエンドポイントアクセスステップ３５では、切替時機到来監視ステップ３３によって前記したサーバの待機系が現用系に切り替えられたとき、現用系に切り替えられたサーバに代理して前記した所定数のエンドポイントにアクセスする。このときは、待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報をそれぞれ差分検出ステップ３２によって検出された差分を基にして、切り替え後におけるアドレス情報の変換を行う。
【００２３】
図４は、本発明のエンドポイント代理アクセスプログラムのクレーム対応図を示したものである。本発明のエンドポイント代理アクセスプログラム４０は、コンピュータに、マッピング処理４１と、差分検出処理４２と、切替時機到来監視処理４３と、第１および第２のエンドポイントアクセス処理４４、４５を実行させるようにしている。ここで、このコンピュータを備えた装置は、現用系のサーバと待機系のサーバのそれぞれとピーシーアイエクスプレスバスを介して接続され、これらのサーバと入出力装置としての所定数のエンドポイントを共有している。マッピング処理４１では、現用系のサーバに対応するメモリ空間上に前記した所定数のエンドポイントのアドレス情報をそれぞれマッピングする。差分検出処理４２では、マッピング処理４１によってマッピングされる前記した現用系のサーバに対する前記した所定数のエンドポイントのアドレス情報と、前記した待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報との差分を求める。これは、現用系のサーバと待機系のサーバのＣＰＵのベースアドレスの値の差によって検出する。切替時機到来監視処理４３では、現用系のサーバと待機系のサーバの系の切り替え時機の到来を監視する。第１のエンドポイントアクセス処理４４では、切替時機到来監視処理４３によって前記したサーバの待機系が現用系に切り替えられるまで、現用系のサーバに代理して前記した所定数のエンドポイントにアクセスする。このとき、マッピング処理４１でマッピングされたエンドポイントのアドレス情報をそのまま用いる。第２のエンドポイントアクセス処理４５では、切替時機到来監視処理４３によって前記したサーバの待機系が現用系に切り替えられたとき、切り替わった後のサーバに代理して前記した所定数のエンドポイントにアクセスする。この処理では、切り替え後におけるアドレス情報の変換を行って、現用系に切り替えられたサーバに代理して前記した所定数のエンドポイントにアクセスする。アドレス情報の変換は、待機系のサーバに対応するメモリ空間上にマッピングされる前記した所定数のエンドポイントのアドレス情報をそれぞれ差分検出処理によって検出された差分を基にして行う。
【００２４】
＜発明の実施の形態＞
【００２５】
次に本発明の実施の形態を説明する。
【００２６】
図５は、本発明の実施の形態によるエンドポイント共有システムの構成を表わしたものである。本実施の形態のエンドポイント共有システム１００は、第０および第１のサーバ１１０、１１１を、統合エンドポイント１１２に接続した構成となっている。ここで、第０および第１のサーバ１１０、１１１ならびに統合エンドポイント１１２は、互いに物理的に分離された存在となっている。
【００２７】
統合エンドポイント１１２は、ＰＣＩプロシキ（Proxy）機能部１２１と、第０〜第Ｎのエンドポイント（ＥＰ:End Point)１２２0〜１２２N（ただし、Ｎは正の整数）から構成されている。ここで、ＰＣＩプロシキ機能部１２１は、コンピュータ用拡張バスアーキテクチャとしてのＰＣＩ（Peripheral Component Interconnect）機能を代理する機能部である。ＰＣＩプロシキ機能部１２１は、図示しないがＣＰＵと、このＣＰＵが実行する制御プログラムを格納した同じく図示しないＲＯＭ（Read Only Memory）等の記録媒体を有しており、次の各部を備えている。
【００２８】
（ａ）第０のポート１３１0
第０のサーバ１１０とＰＣＩｅ（ＰＣＩＥｘｐｒｅｓｓ）ケーブル１３２0を介して接続される。
（ｂ）第１のポート１３１1
第１のサーバ１１１とＰＣＩｅケーブル１３２1を介して接続される。
（ｃ）ＡＣＴ(active)・ＳＢＹ(standby)選択機能部１３３
第０および第１のサーバ１１０、１１１の一方をＡＣＴ（現用）系に、他方をＳＢＹ（待機）系に選択する。
（ｄ）第０の仮想ＰＣＩｅコンフィグ（Configuration）レジスタ１３４0
各エンドポイント１２２のＰＣＩｅコンフィグレジスタ情報を格納する。
（ｅ）第１の仮想ＰＣＩｅコンフィグ（Configuration）レジスタ１３４1
各エンドポイント１２２のＰＣＩｅコンフィグレジスタ情報を格納する。
（ｆ）コンフィグ（Configuration）制御部１３５
第０の仮想ＰＣＩｅコンフィグレジスタ１３４0および第１の仮想ＰＣＩｅコンフィグレジスタ１３４1を管理する。
（ｇ）アドレス変換テーブル１３６
第０のサーバ１１０と第１のサーバ１１１のメモリ空間の差分情報としてのアドレス空間差分情報を保持する。
（ｈ）アドレス変換部１３７
第０のサーバ１１０と第１のサーバ１１１のメモリ空間へのアクセスが同一のアドレスになるように、アドレスを変換する。
（ｉ）アドレス変換・振り分け機能部１３８
第０および第１のサーバ１１０、１１１のうちのＡＣＴ系のサーバと接続されたポートとの間でＰＣＩｅパケットを振り分ける。
（ｊ）第０〜第ＮのＰＣＩｅポート（Port）１３９0〜１３９N
第０〜第Ｎのエンドポイント１２２0〜１２２Nをそれぞれ対応して接続する。
【００２９】
本実施の形態のエンドポイント共有システム１００では、第０〜第Ｎのエンドポイント１２２0〜１２２Nを、汎用サーバとしての第０および第１のサーバ１１０、１１１から共通に利用できるようになっている。ここで、第０〜第Ｎのエンドポイント１２２0〜１２２Nは、ネットワークに接続されたＬＡＮコントローラやストレージデバイス等のデータの入出力装置である。第０および第１のサーバ１１０、１１１は、それぞれ図示しないがＣＰＵ（Central Processing Unit）を実装している。
【００３０】
通常のＰＣＩｅ（PCI Express）システムでは、入出力装置としてのエンドポイントは、通常、サーバ内に実装される。本実施の形態のエンドポイント共有システム１００では、第０〜第Ｎのエンドポイント１２２0〜１２２Nが第０および第１のサーバ１１０、１１１と物理的に独立した構成となっている。したがって、第０のサーバ１１０と第０〜第Ｎのエンドポイント１２２0〜１２２Nの間、あるいは第１のサーバ１１１と同じく第０〜第Ｎのエンドポイント１２２0〜１２２Nの間は、ＰＣＩｅ専用のケーブルで接続されている。ここで、汎用サーバと各エンドポイントをＰＣＩｅ専用のケーブルで接続する手法は、すでに技術的に確立したものとなっている。
【００３１】
本実施の形態では、第０および第１のサーバ１１０、１１１の一方をＡＣＴ(active)系、すなわち現用系として初期的に設定しており、このＡＣＴ系のみが第０〜第Ｎのエンドポイント１２２0〜１２２Nにアクセス可能となっている。そして、ＳＢＹ(standby）系を用意しておくことで、サーバに搭載されたＣＰＵを二重化している。
【００３２】
また、本実施の形態では、コンフィグレーションを電源投入時に実行するようにしており、サーバのＡＣＴ系とＳＢＹ系の切り替え時にコンフィグレーションを不要としている。これにより、ＡＣＴ系とＳＢＹ系それぞれのサーバに搭載したＣＰＵの一方に障害が発生した場合のようにＣＰＵの切り替えが必要な際に、エンドポイントを一旦停止することなく、ＣＰＵの系の切り替えを高速に実現可能である。
【００３３】
本実施の形態の第０および第１のサーバ１１０、１１１は、それぞれ１個ずつＰＣＩｅ拡張スロット１４１、１４２を有している。第０のサーバ１１０は、ＰＣＩｅケーブル１３２0を接続するためのＰＣＩｅ  ＮＩＣ（Network Interface Card）１４３を、ＰＣＩｅ拡張スロット１４１に実装（装着）している。同様に、第１のサーバ１１１は、ＰＣＩｅケーブル１３２1を接続するためのＰＣＩｅ  ＮＩＣ１４４をＰＣＩｅ拡張スロット１４２に実装している。
【００３４】
第０〜第Ｎのエンドポイント１２２0〜１２２NとＰＣＩプロシキ機能部１２１における第０〜第ＮのＰＣＩｅポート１３９0〜１３９Nの間には、それぞれＰＣＩｅバス１５１0〜１５１Nが接続されている。
【００３５】
ＰＣＩプロキシ機能部１２１は、第０のサーバ１１０と接続するための第０のポート１３１0と、第１のサーバ１１１と接続するための第１のポート１３１1を有する。また、ＰＣＩプロキシ機能部１２１は、第０および第１の仮想ＰＣＩｅコンフィグレジスタ１３４0、１３４1をそれぞれ管理するためのコンフィグ（Configuration）制御部１３５を有する。コンフィグ制御部１３５は、ＰＣＩプロキシ機能部１２１に接続された第０〜第Ｎのエンドポイント１２２0〜１２２Nが保持する、図示しないＰＣＩｅコンフィグレーションレジスタを制御する機能を有する。また、コンフィグ制御部１３５は、第０および第１の仮想ＰＣＩｅコンフィグレジスタ１３４0、１３４1に対して、各エンドポイント１２２のＰＣＩｅコンフィグレジスタ情報の内容を反映させる機能も有する。
【００３６】
第０のサーバ１１０は、第０の仮想ＰＣＩｅコンフィグ（Configuration）レジスタ１３４0に対して、ＰＣＩｅコンフィグレーション情報のリード・ライト（Read/Write）を行う。第１のサーバ１１１も、第１の仮想ＰＣＩｅコンフィグレジスタ１３４1に対して、ＰＣＩｅコンフィグレーション情報のリード・ライトを行う。このため、第０〜第Ｎのエンドポイント１２２0〜１２２Nの前記したＰＣＩｅコンフィグレーションレジスタは、これらのサーバ１１０、１１１から直接制御されることはない。これらのＰＣＩｅコンフィグレーションレジスタは、コンフィグ制御部１３５を経由してアクセスされることになる。
【００３７】
第０のポート１３１0と第１のポート１３１1は、ＰＣＩｅパケットで転送されるＡＣＴ制御信号を識別する。そして、ＡＣＴ切替指示が第０のサーバ１１０もしくは第１のサーバ１１１から送付された場合には、ＡＣＴ・ＳＢＹ選択機能部１３３に対してＡＣＴ・ＳＢＹ切替指示を出すようになっている。ＡＣＴ・ＳＢＹ選択機能部１３３では、アドレス変換・振り分け機能部１３８に対して、現用系としてのＡＣＴ系サーバが第０および第１のサーバ１１０、１１１のどちらであるかを示す信号を送出する。アドレス変換・振り分け機能部１３８は、この信号を受信すると、第０のポート１３１0と第１のポート１３１1のうちのＡＣＴ系のサーバと接続されたポートとの接続を維持する。アドレス変換・振り分け機能部１３８は、第０のポート１３１0と第１のポート１３１1のうちのＳＢＹ系のポートとのデータのやり取りは行わない。
【００３８】
コンフィグ制御部１３５は、第０および第１の仮想ＰＣＩｅコンフィグレジスタ１３４0、１３４1に設定されたＰＣＩｅコンフィグレーションレジスタ情報から第０および第１のサーバ１１０、１１１が保持するＰＣＩｅメモリ空間マップ情報を取得する。そして、各サーバ１１０、１１１でメモリ空間上に各エンドポイント１２２をどのように配置したかを認識する。このとき、各サーバ１１０、１１１の設定値に差分がある場合には、第０のサーバ１１０のメモリ空間に対して、第１のサーバ１１１のメモリ空間の差分を計算し、差分情報をアドレス変換テーブル１３６に転送する。
【００３９】
アドレス変換部１３７は、アドレス変換テーブル１３６から送信された第０および第１のサーバ１１０、１１１のアドレス空間差分情報を取得する。そして、第１のサーバ１１１のメモリ空間へのアクセスを第０のサーバ１１０のメモリ空間へのアクセスと同一のアドレスになるように、アドレス変換処理を実施する。その後、第１のサーバ１１１と第０〜第Ｎのエンドポイント１２２0〜１２２Nの間でアクセスが行われる際にＰＣＩｅパケットのやり取りを実施する。
【００４０】
アドレス変換・振り分け機能部１３８は、第０〜第Ｎのエンドポイント１２２0〜１２２Nに対するＰＣＩｅパケットの振り分けを、ＰＣＩｅパケットヘッダ内に格納されたアドレス情報を基にして実施する。
【００４１】
なお、第０〜第Ｎのエンドポイント１２２0〜１２２Nから第０あるいは第１のサーバ１１０、１１１の方向に流れるパケットについては、ＡＣＴ・ＳＢＹ選択機能部１３３から送信されたＡＣＴ情報を基にして、ＡＣＴ系サーバと接続されたポート方向のみにパケットを送信する。
【００４２】
＜動作説明＞
次に、以上のような構成のエンドポイント共有システム１００の動作を説明する。
【００４３】
第０または第１のサーバ１１０、１１１に搭載されたＣＰＵから第０〜第Ｎのエンドポイント１２２0〜１２２Nに対するＰＣＩｅアクセスは、大別すると、ＰＣＩｅコンフィグレーションレジスタ（コンフィグレジスタ）へのアクセスと、実データのアクセスの２種類が存在する。本実施の形態のエンドポイント共有システム１００では、ＰＣＩｅコンフィグレーションレジスタへのアクセスはコンフィグ制御部１３５が中心となって処理を実行する。また、実データのアクセスは、アドレス変換部１３７と、アドレス変換・振り分け機能部１３８が中心となって、これらの処理を実行する。エンドポイント共有システム１００では、ＰＣＩｅコンフィグレーションレジスタへのアクセスを、電源投入時に実行する。ＰＣＩｅコンフィグレーションレジスタが一旦設定された後は、第０および第１のサーバ１１０、１１１に切り替えが発生しても設定変更が行われない。
【００４４】
図６は、サーバの電源投入後のアドレス変換テーブル作成までのコンフィグレーション処理の様子を示したものである。図５と共に説明する。
【００４５】
汎用サーバでは、その電源投入直後に、ＰＣＩｅバス配下のエンドポイントを検索し、ＰＣＩメモリ空間上にエンドポイントのマッピングを行う。本実施の形態のエンドポイント共有システム１００では、統合エンドポイント１１２が第０あるいは第１のサーバ（「Ｓｅｒｖｅｒ＃０」、「Ｓｅｒｖｅｒ＃１」）１１０、１１１からのＰＣＩｅコンフィグレジスタへのアクセスに対して、代理で応答する機能を有する。これにより、第０あるいは第１のサーバ１１０、１１１が第０〜第Ｎのエンドポイント１２２0〜１２２Nをメモリ空間上にマッピングすることを可能にする。
【００４６】
これを具体的に説明する。図６に示すように第０および第１のサーバ１１０、１１１の電源がある時刻ｔ1にオン（On）になったとする。コンフィグ制御部１３５は、統合エンドポイント１１２に接続された第０〜第Ｎのエンドポイント１２２0〜１２２NのＰＣＩｅコンフィグレーション空間を、第０あるいは第１のサーバ１１０、１１１に代わってリード（Read）する（ステップＳ２０１）。図６では、第Ｘのエンドポイント１２２Xを「ＥＰ＃Ｘ」（ただし、Ｘは０〜Ｎの間の任意の整数。）と簡略化して表記している。以下の図でも同様である。
【００４７】
図６に示した例では、まず時刻ｔ2に第０のエンドポイント１２２0（「ＥＰ＃０」）がリードされ、続いて第１のエンドポイント１２２1（「ＥＰ＃１」）がリードされる。以下同様にして、第Ｎのエンドポイント１２２N（「ＥＰ＃Ｎ」）までリードが実行される。
【００４８】
コンフィグ制御部１３５は、このステップＳ２０１によるリードした結果を、第０および第１の仮想ＰＣＩｅコンフィグレジスタ１３４0、１３４1に反映させる。これにより、第０および第１のサーバ１１０、１１１が、第０〜第Ｎのエンドポイント１２２0〜１２２NのＰＣＩｅコンフィグレーションレジスタの内容を、コンフィグ制御部１３５経由でリードすることが可能になる。これを次に具体的に説明する。
【００４９】
ところで、第０のサーバ１１０がＡＣＴ系に設定されており、これを基にして第Ｎのエンドポイント１２２N（「ＥＰ＃Ｎ」）までのリードが終了した後の時刻ｔ3に第０のポート１３１0がＡＣＴの状態で、第１のポート１３１1がＳＢＹの状態となったとする。この時刻ｔ3以後における第０のサーバ１１０と統合エンドポイント１１２の間でのコンフィグレーションデータの処理の様子を、図６ではステップＳ２０２として一括して示している。また、図６では、この場合における第１のサーバ１１１と統合エンドポイント１１２の間でのコンフィグレーションデータの処理の様子を、ステップＳ２０３として一括して示している。
【００５０】
最初に、ＡＣＴ系の第０のサーバ１１０と統合エンドポイント１１２の間で行われるステップＳ２０２の処理について説明する。第０のサーバ１１０は、まず第０の仮想ＰＣＩｅコンフィグレジスタ１３４0に格納された第０のエンドポイント１２２0（「ＥＰ＃０」）の内容をリードし、第０のエンドポイントに書き込むコンフィグレーションデータを第０の仮想ＰＣＩｅコンフィグレジスタ１３４0にライトする。コンフィグ制御部１３５は、第０のサーバ１１０から第０の仮想ＰＣＩｅコンフィグレジスタ１３４0にデータがライトされると、このコンフィグレーションデータを第０のＰＣＩｅポート１３９0を経由して、第０のエンドポイント１２２0に対してライトを実施する。この第０のエンドポイント１２２0のＰＣＩｅコンフィグレーションレジスタへのライトは、図６で時刻ｔ4に行われている。
【００５１】
同様に、第０のサーバ１１０は、第０の仮想ＰＣＩｅコンフィグレジスタ１３４0に格納された第１のエンドポイント１２２1（「ＥＰ＃１」）の内容をリードし、第１のエンドポイントに書き込むコンフィグレーションデータを第０の仮想ＰＣＩｅコンフィグレジスタ１３４0にライトする。コンフィグ制御部１３５は、第０のサーバ１１０から第０の仮想ＰＣＩｅコンフィグレジスタ１３４0にデータがライトされると、このコンフィグレーションデータを第１のＰＣＩｅポート１３９1を経由して、第１のエンドポイント１２２1に対してライトを実施する。
【００５２】
以下同様にして、第０のサーバ１１０は、第０の仮想ＰＣＩｅコンフィグレジスタ１３４0に格納された第２のエンドポイント１２２2（「ＥＰ＃２」）以降の処理を順に行う。そして、第Ｎの仮想ＰＣＩｅコンフィグレジスタ１３４Nに格納された第Ｎのエンドポイント１２２N（「ＥＰ＃Ｎ」）の内容をリードすると、第Ｎのエンドポイントに書き込むコンフィグレーションデータを第０の仮想ＰＣＩｅコンフィグレジスタ１３４0にライトする。コンフィグ制御部１３５は、第０のサーバ１１０から第０の仮想ＰＣＩｅコンフィグレジスタ１３４0にデータがライトされると、このコンフィグレーションデータを第ＮのＰＣＩｅポート１３９Nを経由して、第Ｎのエンドポイント１２２Nに対してライトを実施する。
【００５３】
次に、ＳＢＹ系の第１のサーバ１１１と統合エンドポイント１１２の間で行われるステップＳ２０３の処理について説明する。第１のサーバ１１１は、まず第１の仮想ＰＣＩｅコンフィグレジスタ１３４1に格納された第０のエンドポイント１２２0（「ＥＰ＃０」）の内容をリードし、第０のエンドポイントに書き込むコンフィグレーションデータを第１の仮想ＰＣＩｅコンフィグレジスタ１３４1にライトする。しかしながら、この場合、コンフィグ制御部１３５は、代理で第０のエンドポイント１２２0に対してライトを実施することはない。
【００５４】
以下同様にして、第１のサーバ１１０は、第１の仮想ＰＣＩｅコンフィグレジスタ１３４0に格納された第１のエンドポイント１２２2（「ＥＰ＃１」）以降の処理を順に行う。そして、第１の仮想ＰＣＩｅコンフィグレジスタ１３４1に格納された第Ｎのエンドポイント１２２N（「ＥＰ＃Ｎ」）の内容をリードすると、第Ｎのエンドポイントに書き込むコンフィグレーションデータを第１の仮想ＰＣＩｅコンフィグレジスタ１３４0にライトする。しかしながら、この場合も、コンフィグ制御部１３５は、代理で第Ｎのエンドポイント１２２Nに対してライトを実施することはない。
【００５５】
以上説明したように、電源投入後は、第０のサーバ１１０がＡＣＴ系サーバとして固定されている。この状態で、統合エンドポイント１１２は、第０のサーバ１１０からのＰＣＩｅコンフィグレーションに対するリードおよびライト処理のみ、第０〜第Ｎのエンドポイント１２２0〜１２２Nに反映させる（ステップＳ２０２）。ＳＢＹ系サーバである第１のサーバ１１１からのアクセスについては、統合エンドポイント１１２内部でデータを保持し、第０〜第Ｎのエンドポイント１２２0〜１２２Nへの反映は実施しない（ステップＳ２０３）。
【００５６】
ところで、第１のサーバ１１１によるＰＣＩｅコンフィグレーションレジスタの設定内容は、第０のサーバ１１０によるコンフィグレーションレジスタの設定内容と異なる値に設定される場合がある。このため、コンフィグ制御部１３５では、第０のサーバ１１０と第１のサーバ１１１の双方のＰＣＩｅコンフィグレーションレジスタの設定値を保持するようになっている。
【００５７】
一方、コンフィグ制御部１３５では、電源投入後に得られた各サーバのＰＣＩｅコンフィグレーションレジスタ情報に含まれるベースアドレス（Base Address）の値を基にして、アドレス変換テーブル１３６の作成を実施する（ステップＳ２０４）。これは、第０〜第Ｎのエンドポイント１２２0〜１２２Nに各サーバ１１０、１１１がアクセスする際に、ベースアドレスが異ならないようにするためである。
【００５８】
図７は、ベースアドレスの概念を説明するためのものである。第０および第１のサーバ１１０、１１１は、すでに説明したようにこれらの電源の投入によって第０〜第Ｎのエンドポイント１２２0〜１２２Nを認識する。そして、これら第０〜第Ｎのエンドポイント１２２0〜１２２Nに対してＰＣＩｅコンフィグレーションレジスタの設定を実施する。コンフィグレーション処理が終了したら、第０および第１のサーバ１１０、１１１は独立してＰＣＩｅメモリ空間を作成する（ステップＳ２２１、ステップＳ２２２）。
【００５９】
第０および第１のサーバ１１０、１１１は、すでに説明したように第０〜第Ｎのエンドポイント１２２0〜１２２Nに対して直接アクセスすることができない。そこで、統合エンドポイント１１２内の第０および第１の仮想ＰＣＩｅコンフィグレジスタ１３４0、１３４1を用いてコンフィグ制御部１３５を介することで、第０〜第Ｎのエンドポイント１２２0〜１２２Nへのアクセスを実施する。このため、仮想ＰＣＩｅコンフィグレジスタ１３４0、１３４1の内部には、各エンドポイント１２２のコンフィグレーションレジスタと同一の構成のレジスタ（「ＥＰ＃０＿ｃｏｎｆｉｇ」、「ＥＰ＃１＿ｃｏｎｆｉｇ」、……、「ＥＰ＃Ｎ＿ｃｏｎｆｉｇ」）１６０、１６１が存在する。第０および第１のサーバ１１０、１１１は、仮想ＰＣＩｅコンフィグレジスタ１３４0、１３４1にアクセスを実施する。
【００６０】
コンフィグ制御部１３５は、第０および第１のサーバ１１０、１１１のＰＣＩｅコンフィグレーション空間の情報を取得した後、各エンドポイント１２２1〜１２２Nのマッピング情報について、サーバ１１０、１１１の設定値の差分を算出する（ステップＳ２２３）。
【００６１】
図８は、第０のサーバと第１のサーバのメモリ空間を対比したものである。図７と共に説明する。
【００６２】
第０のサーバ１１０のメモリ空間１７０と第１のサーバ１１１のメモリ空間１７１を比較する。すると、前記したサーバ１１０、１１１の設定値の差分の算出結果より、第１のサーバ１１１のメモリ空間１７１の方が各エンドポイント１２２のベースアドレスに関して「０ｘ０００１_００００」ずつプラスされた値となっていることが分かる。したがって、コンフィグ制御部１３５は、第１のサーバ１１１が各エンドポイント１２２をアクセスする状態になったとき、アドレス変換テーブル１３６で、各エンドポイント１２２について、ベースアドレスを「０ｘ０００１_００００」だけ引いた値を設定すればよい。
【００６３】
図７に再び戻って説明を続ける。アドレス変換部１３７では、第１のサーバ１１１と第０〜第Ｎのエンドポイント１２２0〜１２２Nの間で通信が行われる際に、ＰＣＩｅパケットのヘッダ部分に格納されたアドレス情報から、「０ｘ０００１_００００」を引いた値に変更する。この変更後のアドレス情報でアクセスすることで、第０〜第Ｎのエンドポイント１２２0〜１２２Nに設定された、ベースアドレスを基にしたアドレス空間と矛盾が生じないアクセスを、第１のサーバ１１１に提供することが可能になる。
【００６４】
なお、ＰＣＩｅコンフィグレーションレジスタ１６３1〜１６３Nは、本来、第０〜第Ｎのエンドポイント１２２0〜１２２Nごとに実装されるレジスタである。したがって、これらのＰＣＩｅコンフィグレーションレジスタ１６３1〜１６３Nは、本来サーバ１１０、１１１に実装されたＣＰＵから直接制御されるべきである。しかしながら、統合エンドポイント１１２を用いた本実施の形態のエンドポイント共有システム１００では、コンフィグ制御部１３５が代理で制御を行う機能を持っている。そこで、第０および第１のサーバ１１０、１１１の持つＰＣＩｅメモリ空間の差分をエンドポイント１２２に対して隠蔽することで、これらのサーバ１１０、１１１からのアクセスを実現することが可能となる。
【００６５】
＜データ転送処理＞
【００６６】
第０のサーバ１１０と第０〜第Ｎのエンドポイント１２２0〜１２２Nの間のデータ転送のためのアクセス時には、ＰＣＩプロシキ機能部１２１でのアドレス変換処理が発生しない。この場合のデータのリードおよびライトの処理を次に説明する。
【００６７】
図９は、第０のサーバによるデータのリードおよびライトの処理を表わしたものである。図５と共に説明する。
【００６８】
第０のサーバ１１０（「Ｓｅｒｖｅｒ＃０」）から第０〜第Ｎのエンドポイント１２２0〜１２２Nへのアクセスについては、第０の仮想ＰＣＩｅコンフィグレジスタ１３４0に設定されたベースアドレス情報を基にして、該当するエンドポイントが接続されたポートに振り分ける。具体的には、ＰＣＩｅパケットのヘッダ情報に含まれるアドレス情報を基にして、アドレス変換・振り分け機能部１３８がアクセス先のエンドポイント１２２を判断する。そして、該当するエンドポイント１２２が接続されたポート（第０〜第ＮのＰＣＩｅポート１３９0〜１３９N）に対して振分けを実施する。
【００６９】
また、第０〜第Ｎのエンドポイント１２２0〜１２２Nからサーバ１１０、１１１へのデータ転送についても、アドレス変換・振り分け機能部１３８はＡＣＴ系サーバに対してデータ転送を実施する。第１のサーバ１１１がＡＣＴ系の場合は、ＰＣＩｅパケットヘッダ内部のアドレス情報の変更を行わず、第１のサーバ１１１へのデータを転送する。
【００７０】
具体例を挙げる。まず、第０のサーバ１１０から第０のポート（「Ｐｏｒｔ＃０」）１３１0を使用して、統合エンドポイント１１２のＰＣＩプロシキ機能部（「ＰＣＩＰｒｏｘｙ」）１２１に対して、ベースアドレス情報を基にして、第０のエンドポイント（「ＥＰ＃０」）１２２0に対するデータをライトする（ステップＳ２４１）。ＰＣＩプロシキ機能部１２１は、このデータを第０のエンドポイント１２２0にライトする（ステップＳ２４２）。この後、第０のエンドポイント１２２0からＰＣＩプロシキ機能部１２１へデータをリードする（ステップＳ２４３）。次にＰＣＩプロシキ機能部１２１からこのリードしたデータが第０のサーバ１１０へ送られる（リードする）（ステップＳ２４４）。
【００７１】
この後、第０のサーバ１１０から第０のポート１３１0を使用して、統合エンドポイント１１２のＰＣＩプロシキ機能部１２１に対して、ベースアドレス情報を基にして、第１のエンドポイント（「ＥＰ＃１」）１２２1に対するデータをライトする（ステップＳ２４５）。ＰＣＩプロシキ機能部１２１は、このデータを第１のエンドポイント１２２1にライトする（ステップＳ２４６）。この後、第１のエンドポイント１２２1からＰＣＩプロシキ機能部１２１へデータをリードする（ステップＳ２４７）。次にＰＣＩプロシキ機能部１２１からこのデータは第１のサーバ１１０へリードする（ステップＳ２４８）。以下同様にして第０のサーバ１１０によるデータのリードおよびライトの処理が続行する。
【００７２】
第１のサーバ１１１と第０〜第Ｎのエンドポイント１２２0〜１２２Nの間のデータ転送のためのアクセス時には、ＰＣＩプロシキ機能部１２１でのアドレス変換処理が発生する。この場合のデータのリードおよびライトの処理を次に説明する。
【００７３】
図１０は、第１のサーバによるデータのリードおよびライトの処理を表わしたものである。図５と共に説明する。
【００７４】
第１のサーバ１１１から第０〜第Ｎのエンドポイント１２２0〜１２２Nへのアクセスについて、まず第１のサーバ１１１からのデータのライトについて説明する。データのライトに関しては、アドレス変換部１３７においてＰＣＩｅパケットヘッダ内部のアドレス情報の変更を行って、アドレス変換・振り分け機能部１３８へデータを転送する。アドレス変換・振り分け機能部１３８では、コンフィグ制御部１３５で管理された情報を基に、第０〜第Ｎのエンドポイント１２２0〜１２２Nのいずれに振り分けを行うかを決定して、データの転送を実施する。
【００７５】
また、第０〜第Ｎのエンドポイント１２２0〜１２２Nからサーバ１１０、１１１へのデータ転送についても、アドレス変換・振り分け機能部１３８はＡＣＴ系サーバに対してのみデータの転送を実施する。第１のサーバ１１１がＡＣＴ系の場合には、ＰＣＩｅパケットヘッダ内部のアドレス情報の変更を行って、第１のサーバ１１１へデータを転送する。
【００７６】
具体例を挙げる。まず、第１のサーバ１１１からＡＣＴの状態となっている第１のポート（「Ｐｏｒｔ”１」）１３１1を介して送られたＰＣＩｅパケット（ステップＳ２６１）は、アドレス変換部１３７でＰＣＩｅパケットヘッダ内部のアドレス情報の変更を行う（ステップＳ２６２）。アドレス変換・振り分け機能部１３８は、このデータの転送を受け、コンフィグ制御部１３５で管理された情報を基に、第０のエンドポイント（「ＥＰ＃０」）１２２0にこれを転送する（ステップＳ２６３）。
【００７７】
第０のエンドポイント１２２0から送られてくるデータは、アドレス変換・振り分け機能部１３８によってＡＣＴ系サーバとしての第１のサーバ１１１に送出するように振り分けられて、アドレス変換部１３７に転送される（ステップＳ２６４）。そして、ＰＣＩｅパケットヘッダ内部のアドレス情報の変更を行って（ステップＳ２６５）、第１のサーバ１１１へ転送される（ステップＳ２６６）。第１のサーバ１１１から第１〜第Ｎのエンドポイント（「ＥＰ＃１」〜「ＥＰ＃Ｎ」）１２２1〜１２２Nに転送されるデータおよび第１〜第Ｎのエンドポイント１２２1〜１２２Nから第１のサーバ１１１に転送されるデータについても、同様である。そこで、ステップＳ２６７〜ステップＳ２７８の処理についての説明は省略する。
【００７８】
＜ＡＣＴ切替動作＞
【００７９】
図１１は、ＡＣＴ系とＳＢＹ系の切替動作を示したものである。ここでは、第０のサーバ１１０がＡＣＴ系で、第１のサーバ１１１がＳＢＹ系の場合を例として示す。第０のサーバ１１０がＳＢＹ系で、第１のサーバ１１１がＡＣＴ系の場合も、動作は同様である。図５と共に説明する。
【００８０】
第０のサーバ１１０と第１のサーバ１１１は、ＬＡＮ（Local Area Network）等の何らかの信号伝達手段を用いて、周期的に互いの状態を監視する機能を有する。このような機能は、たとえば第０のサーバ１１０と第１のサーバ１１１に搭載されたＣＰＵが第０のサーバ１１０と第１のサーバ１１１内の記録媒体（図示せず）に格納された制御プログラムを実行することによって実現する。
【００８１】
ＳＢＹ系の第１のサーバ１１１からの応答要求に対して、ＡＣＴ系の第０のサーバ１１０が応答を返さない場合があったとする。この場合、第１のサーバ１１１は第０のサーバ１１０に何らかの異常が発生したことを検出する（ステップＳ２９１）。そして、これを基にして系切替動作を開始する（ステップＳ２９２）。
【００８２】
この系切替動作で、第１のサーバ１１１は、自身が直接接続している統合エンドポイント１１２のＳＢＹ系となっている第１のポート（「Ｐｏｒｔ＃１」）１３１1に対して、系切替要求をＰＣＩｅパケットとして送出する（ステップＳ２９３）。第１のポート１３１1では、この系切替要求を受信すると、ＡＣＴ・ＳＢＹ選択機能部１３３に対してＡＣＴ・ＳＢＹ切替要求信号を送信する。ＡＣＴ・ＳＢＹ選択機能部１３３は系切替要求を受信すると（ステップＳ２９４）、第０のポート（「Ｐｏｒｔ＃０」）１３１0に対してＡＣＴ・ＳＢＹ切替要求信号を送信する。
【００８３】
ＡＣＴ系となっている第０のポート１３１0はＡＣＴ・ＳＢＹ切替信号を受信すると（ステップＳ２９５）、系切替要求をＰＣＩｅパケットとして第０のサーバ１１０に送出する（ステップＳ２９６）。これにより、第０のサーバ１１０は系の切り替えを認識する（ステップＳ２９７）。第０のサーバ１１０は、これに基づきＡＣＴ系とＳＢＹ系の切り替えを実施し（ステップＳ２９８）、この後、系切替を実施したことをＰＣＩｅパケットを用いて第０のポート１３１0に対して通知する（ステップＳ２９９）。
【００８４】
この系切替完了通知は、ＡＣＴ・ＳＢＹ選択機能部１３３で受信され、確認される（ステップＳ３００）。ＡＣＴ・ＳＢＹ選択機能部１３３は、これを基に、統合エンドポイント１１２の第０のポート１３１0をＳＢＹ系に設定し（ステップＳ３０１）、第１のポート１３１1をＡＣＴ系に設定する（ステップＳ３０２）。その後、系の切り替えを実施したことを示す信号は、第１のポート１３１1から第１のサーバ１１１へＰＣＩｅパケットを用いて通知される（ステップＳ３０３）。第１のサーバ１１１は、この通知を受けると、第１のサーバ１１１がＳＢＹ系からＡＣＴ系に切り替わったことを確定させる（ステップＳ３０４）。
【００８５】
次に、ＡＣＴ系になっている第０のサーバ１１０に異常が発生して、第１のサーバ１１１からの系切替要求の送出（ステップＳ２９３）に対する応答がない場合について説明する。この場合には、統合エンドポイント１１２の内部におけるＡＣＴ・ＳＢＹ選択機能部１３３が図示しないタイマを起動させる。そして、第０のサーバ１１０が正常であれば十分応答する予め定めた規定時間内に、第０のサーバ１１０から応答があるかを判別する。この規定時間内に第０のサーバ１１０からの応答があれば、すでに説明した処理と同一の処理を行えばよい。
【００８６】
これに対して、規定時間内に第０のサーバ１１０からの応答がなかったとする。この場合には、第０のサーバ１１０からの応答をそれ以上待機せずに第１のサーバ１１１は系切替完了通知を実施する。そして、今までＳＢＹ系であった第１のポート１３１1をＡＣＴ系に切り替えることになる。
【００８７】
本実施の形態のエンドポイント共有システム１００では、以上とは別に、定期的な系の切り替えや保守作業を目的として、系の切り替えを開始することも可能である。ＳＢＹ系からＡＣＴ系に切り替わった第１のサーバ１１１の第１のポート１３１1は、第０〜第Ｎのエンドポイント１２２0〜１２２Nに対する、実データの通信が可能になる。
【００８８】
なお、第１のサーバ１１１側のＰＣＩｅコンフィグレーションレジスタは、第１のサーバ１１１の電源投入後に設定済みである。このため、第０〜第Ｎのエンドポイント１２２0〜１２２Nに対する、第１のサーバ１１１のメモリ空間に対応させるための、ＰＣＩｅコンフィグレーション動作は不要である。したがって、コンフィグレーションレジスタの設定変更前の第０〜第Ｎのエンドポイント１２２0〜１２２Nのリセットや、各ＰＣＩｅコンフィグレーションレジスタの再設定処理等の処理は不要になる。
【００８９】
したがって、系の切替途中では、第０〜第Ｎのエンドポイント１２２0〜１２２Nとサーバ１１０、１１１間の通信は実行できない。しかしながら、統合エンドポイント１１２内の各エンドポイント１２２間通信処理（たとえば、第０のエンドポイント１２２0からＰＣＩプロキシ機能部１２１を経て第１のエンドポイント１２２1への通信）では、系切替動作時に通信処理を継続することが可能になる。
【００９０】
以上説明したように本実施の形態では、ピーシーアイエクスプレスで用いられるエンドポイントに対して、ＡＣＴ(active)系およびＳＢＹ(standby)系の複数のＣＰＵからアクセスできるようにしている。ネットワーク機器で、ＣＰＵはＡＣＴ系とＳＢＹ系とに区別され、片方の系のＣＰＵから、配下のＥＰにアクセスを行い、ＣＰＵ同士で必要なデータを、ＡＣＴとＳＢＹ系で同期を取りながら運用することが望まれる。
【００９１】
一般には、２個のＣＰＵ（ＡＣＴ系とＳＢＹ系）およびエンドポイントで構成するネットワーク機器の場合には、エンドポイントに対してＡＣＴ系のＣＰＵのみアクセス可能であればよい。しかしながら、障害発生時等の所定の場合には、ＣＰＵの系の切替を実施した後に、新しいＡＣＴ系のＣＰＵから、速やかにエンドポイントにアクセスできるための仕組みが必要となる。
【００９２】
既存のＰＣＩ（Peripheral Component Interconnect）の仕組みを用いる場合で、ＡＣＴ系のＣＰＵがエンドポイントを管理している状態から、障害発生により、ＳＢＹ系のＣＰＵに切り替えたとする。この場合、エンドポイントがマッピングされるＣＰＵメモリ空間が同一ではないため、エンドポイントの物理的なリセットおよび設定データの再設定が必要となる。これにより、迅速な系の切り替えを実施することが困難となる。また、リセットや再設定処理の間、エンドポイントはデータ通信を行うことができない。したがって、系の切り替えに時間を要すると、装置の信頼性が低くなる。このため、信頼性が要求される通信機器においては、エンドポイントに対するリセットやコンフィグレーション処理を実施することなく、ＣＰＵの切替処理が実現できることが重要となる。
【００９３】
本実施の形態では、ＣＰＵ部分として、汎用サーバ上に搭載されたＣＰＵを用いることを想定している。サーバ上のＣＰＵは、通常電源が投入された直後、ＢＩＯＳの指示に従ってピーシーアイエクスプレスの配下のエンドポイントを検索して、自動的にメモリ空間上にＥＰのマッピング処理を実施する。このため、ユーザがどのアドレス空間にエンドポイントを配置するかを制御することは、ＢＩＯＳ等の変更を行わない限りは不可能である。すなわち、物理的に異なるサーバ上に搭載された２個のＣＰＵが、同一のエンドポイントを同一のメモリ空間上にマッピングさせることは、困難である。
【００９４】
そこで本実施の形態では、エンドポイントをＣＰＵのメモリ空間上にマッピングする場合、ベースアドレス（Base Address）をエンドポイントのピーシーアイエクスプレス・コンフィグレーションレジスタに対して設定して、メモリ空間における位置を確定させる。エンドポイントは設定されたベースアドレス情報に基づいたアドレス値が設定されたＰＣＩｅパケットのみ、自分が処理するＰＣＩｅパケットであると認識する。このため、２個のＣＰＵ間とのやり取りの際のエンドポイントのアドレス値は、ピーシーアイエクスプレス・コンフィグレーションレジスタに設定されている値である必要がある。したがって、エンドポイントのピーシーアイエクスプレス・コンフィグレーション情報を再設定しないで、ＣＰＵの切替を実施する場合には、エンドポイントへアクセスするアドレスをエンドポイントの前段同一空間上になるように、変換する機能が必要となる。
【００９５】
本実施の形態では、電源投入直後のＡＣＴ系サーバ（第０のサーバ１１０）のメモリ空間にエンドポイントをマッピングし、第０のサーバ１１０からエンドポイントへのアクセスについては、アドレス情報をそのまま使うことにした。障害発生によりＡＣＴ系とＳＢＹ系切替が発生した後に、電源が投入されるとＳＢＹ系サーバからエンドポイントのアクセスについてはアドレス変換を実施する。このようにして本実施の形態では、同一のエンドポイントに対して、２つのＣＰＵがアクセスする機能を実現している。
【００９６】
以上説明した本実施の形態のエンドポイント共有システム１００によれば、複数のＣＰＵが、同一のエンドポイントにアクセスできる。エンドポイントについては、ＰＣＩｅに準拠したデバイスを、そのまま用いることが可能である。
【００９７】
また、本実施の形態によれば、エンドポイントにアクセスするＣＰＵを切り替える際に、エンドポイントに対するリセットや再設定処理が不要である。このため、ＣＰＵの切り替えを高速に実現することが可能である。
【００９８】
なお、本実施の形態のエンドポイント共有システム１００では、統合エンドポイント１１２が単数実装されている前提としたが、これに限るものではない。エンドポイント共有システム１００に、必要とされる処理能力に応じて統合エンドポイント１１２を複数実装することが可能である。これにより、汎用性の高いシステムを構築することが可能になる。統合エンドポイント１１２の増減設には、たとえば次の２つの変形例で示す手法を採ることができる。
【００９９】
＜第１の変形例＞
【０１００】
図１２は、本発明の第１の変形例におけるエンドポイント共有システムの構成を表わしたものである。この図に示したエンドポイント共有システム１００Ａでは、第０のサーバ１１０Ａおよび第１のサーバ１１１Ａが共に３個のＰＣＩｅスロット１４１1〜１４１3、１４２1〜１４２3を有している。ＰＣＩｅスロット１４１1〜１４１3にはそれぞれＰＣＩｅ  ＮＩＣ１４３1〜１４３3が１枚ずつ実装（装着）されている。ＰＣＩｅスロット１４２1〜１４２3にも、ＰＣＩｅ  ＮＩＣ１４４1〜１４４3が１枚ずつ実装されている。第０のサーバ１１０Ａおよび第１のサーバ１１１Ａは、汎用サーバであり、このように複数のＰＣＩｅ  ＮＩＣ１４３1〜１４３3、１４４1〜１４４3を実装することが可能な構成となっている。第０のサーバ１１０Ａおよび第１のサーバ１１１Ａは、それぞれＣＰＵを実装している。
【０１０１】
第０のサーバ１１０Ａおよび第１のサーバ１１１Ａの１枚ずつのＰＣＩｅ  ＮＩＣ１４３1、１４４1は、それぞれＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）ケーブル１３２01、１３２11を介して第１の統合エンドポイント１１２1Ａと接続している。具体的には、ＰＣＩｅケーブル１３２01は、第１の統合エンドポイント１１２1Ａの第０のポート１３１0に接続し、ＰＣＩｅケーブル１３２11は、第１の統合エンドポイント１１２1Ａの第１のポート１３１1に接続している。
【０１０２】
同様に、第０のサーバ１１０Ａおよび第１のサーバ１１１Ａの他の１枚ずつのＰＣＩｅ  ＮＩＣ１４３2、１４４2は、それぞれＰＣＩｅケーブル１３２02、１３２12を介して第２の統合エンドポイント１１２2Ａと接続している。また、第０のサーバ１１０Ａおよび第１のサーバ１１１Ａの更に他の１枚ずつのＰＣＩｅ  ＮＩＣ１４３3、１４４3は、それぞれＰＣＩｅケーブル１３２03、１３２13を介して第３の統合エンドポイント１１２3Ａと接続している。ここで、第１〜第３の統合エンドポイント１１２1Ａ〜１１２3Ａは、それぞれ実質的に同一の構成となっている。したがって、ＰＣＩｅケーブル１３２02、１３２12についての第２の統合エンドポイント１１２2Ａにおける接続先、ならびにＰＣＩｅケーブル１３２03、１３２13についての第３の統合エンドポイント１１２3Ａにおける接続先の説明は省略する。
【０１０３】
第１〜第３の統合エンドポイント１１２1Ａ〜１１２Ａ3は、現用系および待機系の汎用サーバ１１０Ａ、１１１Ａの共有する複数のエンドポイントを３つに分割したとき、分割後のエンドポイントのグループごとに代理でアクセスするようになっている。これらは共に図示しないがＣＰＵと、このＣＰＵが実行する制御プログラムを格納したＲＯＭ等の記録媒体を有している。
【０１０４】
この第１の変形例のエンドポイント共有システム１００Ａでは、先の実施の形態と同様に、第０のサーバ１１０Ａと第１のサーバ１１１Ａの一方を初期的にＡＣＴ(active)系とし、他方をＳＢＹ(standby)系として設定している。たとえば第０のサーバ１１０ＡをＡＣＴ系に設定していたとする。この場合、第０のサーバ１１０ＡはＰＣＩｅ  ＮＩＣ１４３1を介して第１の統合エンドポイント１１２1Ａの第０〜第Ｎのエンドポイント１２２0〜１２２Nを利用することができる。また、第０のサーバ１１０ＡはＰＣＩｅ  ＮＩＣ１４３2を介して第２の統合エンドポイント１１２2Ａの図示しない第０〜第Ｎのエンドポイント１２２0〜１２２Nを利用することができる。更に、第０のサーバ１１０ＡはＰＣＩｅ  ＮＩＣ１４３3を介して第３の統合エンドポイント１１２3Ａの図示しない第０〜第Ｎのエンドポイント１２２0〜１２２Nを利用することができる。
【０１０５】
また、エンドポイント共有システム１００Ａでは、第０のサーバ１１０Ａに障害が発生したような所定の場合には、第１のサーバ１１１ＡがＡＣＴ系に設定を変更され、第０のサーバ１１０Ａがこれと共にＳＢＹ系に設定を変更される。これらのＡＣＴ系とＳＢＹ系の間の切り替えは、先の実施の形態と同様にして行うことができる。
【０１０６】
以上説明した本発明の第１の変形例によれば、先の実施の形態と同様の効果を得ることができる。しかも、１台のサーバあるいはＣＰＵが複数の統合エンドポイント１１２Ａと同時に接続しているので、時間的に並行してより多くのデバイスを利用することができる。
【０１０７】
＜第２の変形例＞
【０１０８】
図１３は、本発明の第２の変形例におけるエンドポイント共有システムの構成を表わしたものである。第２の変形例のエンドポイント共有システム１００Ｂでは、第０のサーバ１１０Ｂと第１のサーバ１１１ＢがそれぞれＰＣＩｅパケットをカプセル化したりデカプセル化するＰＣＩｅ  ＮＩＣ４０１、４０２をＰＣＩｅ拡張スロット１４１、１４２に実装している。ＰＣＩｅ  ＮＩＣ４０１は、第０のイーサネット（登録商標）スイッチ４１０を介して第１〜第３の統合エンドポイント１１２1Ｂ〜１１２3Ｂの第０のポート１３１0Ｂに接続している。同様に、ＰＣＩｅ  ＮＩＣ４０２は、第１のイーサネット（登録商標）スイッチ４１１を介して第１〜第３の統合エンドポイント１１２1Ｂ〜１１２3Ｂにおける第１のポート１３１1Ｂに接続している。第１〜第３の統合エンドポイント１１２1Ｂ〜１１２3Ｂは、これらの構成が互いに同一となっている。このため、第２および第３の統合エンドポイント１１２2Ｂ、１１２3Ｂの回路の図示および動作の説明は省略する。
【０１０９】
第１〜第３の統合エンドポイント１１２1Ｂ〜１１２3は、現用系および待機系の汎用サーバ１１０Ｂ、１１０Ｂの共有する複数のエンドポイントを３つに分割したとき、分割後のエンドポイントのグループごとに代理でアクセスするようになっている。これらは共に図示しないがＣＰＵと、このＣＰＵが実行する制御プログラムを格納したＲＯＭ等の記録媒体を有している。
【０１１０】
第０のイーサネット（登録商標）スイッチ４１０は、ＰＣＩｅ  ＮＩＣ４０１からケーブル４２０で送られてきたパケットを受信する。このパケットは、所定のプロトコルを用いてＰＣＩｅパケットをイーサネット（登録商標）フレームでカプセル化している。第０のイーサネット（登録商標）スイッチ４１０は、このパケットを受信すると、イーサネット（登録商標）のＭＡＣ（Media Access Control）アドレスをベースにして、宛先を判別する。第０のイーサネット（登録商標）スイッチ４１０の出力側には、第１〜第３の統合エンドポイント１１２1Ｂ〜１１２3Ｂに１つずつ接続するケーブル４３１〜４３３が配置されている。第０のイーサネット（登録商標）スイッチ４１０は、判別した宛先に応じて、ケーブル４３１〜４３３のいずれかにパケットを送出する。
【０１１１】
同様に、第１のイーサネット（登録商標）スイッチ４１１は、ＰＣＩｅ  ＮＩＣ４０２からケーブル４２１で送られてきたイーサネット（登録商標）フレームでカプセル化したパケットを受信する。このパケットも、所定のプロトコルを用いてＰＣＩｅパケットをイーサネット（登録商標）フレームでカプセル化している。第１のイーサネット（登録商標）スイッチ４１１は、このパケットを受信すると、イーサネット（登録商標）のＭＡＣ（Media Access Control）アドレスをベースにして、宛先を判別する。第１のイーサネット（登録商標）スイッチ４１１の出力側には、第１〜第３の統合エンドポイント１１２1Ｂ〜１１２3Ｂに１つずつ接続するケーブル４３４〜４３６が配置されている。第１のイーサネット（登録商標）スイッチ４１１は、判別した宛先に応じて、ケーブル４３４〜４３６のいずれかにパケットを送出する。
【０１１２】
第１の統合エンドポイント１１２1Ｂ内の第０のポート１３１0Ｂは、ケーブル４３１を介して送られてきたカプセル化したＰＣＩｅパケットを受信して、デカプセル化する。また、第０のポート１３１0Ｂから第０のイーサネット（登録商標）スイッチ４１０の方向に送り出すＰＣＩｅパケットを、所定のプロトコルを用いてイーサネット（登録商標）フレームでカプセル化する。
【０１１３】
同様に、第１の統合エンドポイント１１２1Ｂ内の第１のポート１３１1Ｂは、ケーブル４３４を介して送られてきたカプセル化したＰＣＩｅパケットを受信して、デカプセル化する。また、第１のポート１３１1Ｂから第１のイーサネット（登録商標）スイッチ４１１の方向に送り出すＰＣＩｅパケットを、所定のプロトコルを用いてイーサネット（登録商標）フレームでカプセル化する。第１の統合エンドポイント１１２1Ｂ内の第０のポート１３１0Ｂおよび第１のポート１３１1Ｂを除く回路部分は、実施の形態で説明した図５の第１の統合エンドポイント１１２1と同一であるので、その説明を省略する。
【０１１４】
以上のような構成のエンドポイント共有システム１００Ｂでは、イーサネット（登録商標）のＭＡＣアドレスを用いることでサーバ１１０Ｂ、１１１Ｂおよび複数のエンドポイント１２２0〜１２２Nの識別を可能にする。したがって、サーバ１１０Ｂ、１１１Ｂに実装されたＰＣＩｅスロットの数に依存することなく統合エンドポイント１１２を増減設可能なシステムを構築することが可能になる。
【０１１５】
なお、本発明の第１および第２の変形例では、統合エンドポイントを３個接続する場合を示したが、これ以外の任意の個数接続してもよいことは当然である。また、エンドポイント共有システムを構成するサーバの数も、任意の台数で構成してよいことは当然である。
【符号の説明】
【０１１６】
１０、２３  エンドポイント代理アクセス装置
１１  マッピング手段
１２  差分検出手段
１３  アドレス変換手段
１４  切替時機到来監視手段
１５  第１のエンドポイントアクセス手段
１６  第２のエンドポイントアクセス手段
２０、１００、１００Ａ、１００Ｂ  エンドポイント共有システム
２１  現用系の汎用サーバ
２２  待機系の汎用サーバ
２４、２５  ネットワークインタフェースカード
３０  エンドポイント代理アクセス方法
３１  マッピングステップ
３２  差分検出ステップ
３３  切替時機到来監視ステップ
３４  第１のエンドポイントアクセスステップ
３５  第２のエンドポイントアクセスステップ
４０  エンドポイント代理アクセスプログラム
４１  マッピング処理
４２  差分検出処理
４３  切替時機到来監視処理
４４  第１のエンドポイントアクセス処理
４５  第２のエンドポイントアクセス処理
１１０、１１０Ａ、１１０Ｂ  第０のサーバ
１１１、１１１Ａ、１１１Ｂ  第１のサーバ
１１２、１１２Ａ、１１２Ｂ  統合エンドポイント
１２２  エンドポイント
１３１0  第０のポート
１３１1  第１のポート
１３４0  第０の仮想ＰＣＩｅコンフィグレジスタ
１３４1  第１の仮想ＰＣＩｅコンフィグレジスタ
１３３  ＡＣＴ・ＳＢＹ選択機能部
１３５  コンフィグ制御部
１３６  アドレス変換テーブル
１３７  アドレス変換部
１３８  アドレス変換・振り分け機能部
１３９  ＰＣＩｅポート
１４１、１４２  ＰＣＩｅ拡張スロット
１４３、１４４  ＰＣＩｅ  ＮＩＣ
１６０  仮想ＰＣＩｅコンフィグレジスタ１３４0内のレジスタ
１６１  仮想ＰＣＩｅコンフィグレジスタ１３４1内のレジスタ
１６３  ＰＣＩｅコンフィグレーションレジスタ
１７０  第０のサーバのメモリ空間
１７１  第１のサーバのメモリ空間
４１０  第０のイーサネット（登録商標）スイッチ
４１１  第１のイーサネット（登録商標）スイッチ
【図１】
2011048452.tif 000003
【図２】
2011048452.tif 000004
【図３】
2011048452.tif 000005
【図４】
2011048452.tif 000006
【図５】
2011048452.tif 000007
【図６】
2011048452.tif 000008
【図７】
2011048452.tif 000009
【図８】
2011048452.tif 000010
【図９】
2011048452.tif 000011
【図１０】
2011048452.tif 000012
【図１１】
2011048452.tif 000013
【図１２】
2011048452.tif 000014
【図１３】
2011048452.tif 000015
【図１４】
2011048452.tif 000016