(57)【特許請求の範囲】
【請求項１】
他の機器から送信された所定の処理要求に応じて処理を実行する複数の演算装置と、当該各演算装置と前記他の機器との間におけるデータ転送を行うスイッチ装置と、当該スイッチ装置に接続され前記各演算装置とデータ転送可能な記憶装置と、を備え、
少なくとも一の前記演算装置は、当該演算装置に対する前記他の機器からの処理要求データを前記記憶装置にデータ転送して格納する処理要求格納手段と、当該演算装置の作動状態を表す作動状態データを前記記憶装置にデータ転送して格納する作動状態格納手段と、を備えると共に、
少なくとも他の前記演算装置は、前記記憶装置に格納された前記処理要求データを当該記憶装置からデータ転送にて読み取る処理要求読取手段と、当該処理要求読取手段にて前記記憶装置から読み取った前記処理要求データに応じて処理を実行する冗長処理手段と、を備え、
前記作動状態格納手段は、前記作動状態データとして前記他の機器からの前記処理要求データに基づく処理の進行状態を表す処理進行状態データを、当該処理が開始されて当該処理が完了するまでの間に一定の時間間隔で前記記憶装置にデータ転送して格納し、
前記冗長処理手段は、前記記憶装置に記憶された前記処理進行状態データを当該記憶装置からデータ転送にて読み取り、この読み取った前記処理進行状態データに基づいて前記処理要求読取手段にて前記記憶装置から読み取った前記処理要求データに応じた処理を継続して実行し、
前記演算装置と前記記憶装置とは、前記各演算装置にそれぞれ対応して前記記憶装置に設けられたＤＭＡコントローラを使用して、ＤＭＡ（Direct Memory Access）転送にてデータ転送を行う、
情報処理システム。
【請求項２】
前記処理要求格納手段を備えた前記演算装置は、前記記憶装置にデータ転送して格納した前記処理要求データを当該記憶装置からデータ転送にて読み取り、当該読み取った処理要求データに応じて処理を実行する、
請求項１記載の情報処理システム。
【請求項３】
前記処理要求格納手段を備えた前記演算装置は、前記他の機器からの前記処理要求データに基づく処理の実行が完了した場合に、前記記憶装置に記憶した前記処理要求データを当該記憶装置から削除するよう制御する処理要求削除手段を備えた、
請求項１又は２記載の情報処理システム。
【請求項４】
前記処理要求格納手段を備えた前記演算装置が有する前記作動状態格納手段は、前記作動状態データとして自己の演算装置が作動しているか否かを表す生存状態データを前記記憶装置にデータ転送して格納する、
請求項１，２又は３記載の情報処理システム。
【請求項５】
前記処理要求読取手段を備えた前記演算装置が有する前記冗長処理手段は、前記記憶装置から読み取った前記作動状態データである前記生存状態データに基づいて、別の前記演算装置が作動していないと判断した場合に、前記処理要求読取手段にて前記記憶装置から読み取った前記処理要求データに応じた処理を実行する、
請求項４記載の情報処理システム。
【請求項６】
前記他の機器に接続された接続機器であるPCI Express（Peripheral Component Interconnect Express）機器を備え、
前記スイッチ装置は、前記他の機器から前記PCI Express機器を介して前記処理要求データを受け付ける、
請求項１，２，３，４又は５記載の情報処理システム。
【請求項７】
他の機器から送信された所定の処理要求に応じて処理を実行する作動中の演算装置及び待機中の演算装置と、当該各演算装置と前記他の機器との間におけるデータ転送を行うスイッチ装置と、当該スイッチ装置に接続され前記各演算装置とデータ転送可能な記憶装置と、を備え、
前記作動中の演算装置は、当該演算装置に対する前記他の機器からの処理要求データを前記記憶装置にデータ転送して格納する処理要求格納手段と、当該演算装置の作動状態を表す作動状態データを前記記憶装置にデータ転送して格納する作動状態格納手段と、を備えると共に、
前記待機中の演算装置は、前記記憶装置に格納された前記処理要求データを当該記憶装置からデータ転送にて読み取る処理要求読取手段と、当該処理要求読取手段にて前記記憶装置から読み取った前記処理要求データに応じて処理を実行する冗長処理手段と、を備え、
前記作動状態格納手段は、前記作動状態データとして前記他の機器からの前記処理要求データに基づく処理の進行状態を表す処理進行状態データを、当該処理が開始されて当該処理が完了するまでの間に一定の時間間隔で前記記憶装置にデータ転送して格納し、
前記冗長処理手段は、前記記憶装置に記憶された前記処理進行状態データを当該記憶装置からデータ転送にて読み取り、この読み取った前記処理進行状態データに基づいて前記処理要求読取手段にて前記記憶装置から読み取った前記処理要求データに応じた処理を継続して実行し、
前記演算装置と前記記憶装置とは、前記各演算装置にそれぞれ対応して前記記憶装置に設けられたＤＭＡコントローラを使用して、ＤＭＡ（Direct Memory Access）転送にてデータ転送を行う、
情報処理システム。
【請求項８】
他の機器から送信された所定の処理要求に応じて処理を実行する複数の演算装置と、当該各演算装置と前記他の機器との間におけるデータ転送を行うスイッチ装置と、当該スイッチ装置に接続され前記各演算装置とデータ転送可能な記憶装置と、を備えた情報処理装置に読み込まれ、
少なくとも一の前記演算装置に、当該演算装置に対する前記他の機器からの処理要求データを前記記憶装置にデータ転送して格納する処理要求格納手段と、当該演算装置の作動状態を表す作動状態データを前記記憶装置にデータ転送して格納する作動状態格納手段と、を実現させ、
少なくとも他の前記演算装置に、前記記憶装置に格納された前記処理要求データを当該記憶装置からデータ転送にて読み取る処理要求読取手段と、当該処理要求読取手段にて前記記憶装置から読み取った前記処理要求データに応じて処理を実行する冗長処理手段と、を実現させると共に、
前記作動状態格納手段は、前記作動状態データとして前記他の機器からの前記処理要求データに基づく処理の進行状態を表す処理進行状態データを、当該処理が開始されて当該処理が完了するまでの間に一定の時間間隔で前記記憶装置にデータ転送して格納し、
前記冗長処理手段は、前記記憶装置に記憶された前記処理進行状態データを当該記憶装置からデータ転送にて読み取り、この読み取った前記処理進行状態データに基づいて前記処理要求読取手段にて前記記憶装置から読み取った前記処理要求データに応じた処理を継続して実行し、
前記演算装置と前記記憶装置とが、前記各演算装置にそれぞれ対応して前記記憶装置に設けられたＤＭＡコントローラを使用して、ＤＭＡ（Direct Memory Access）転送にてデータ転送を行うよう制御する、
プログラム。
【請求項９】
他の機器から送信された所定の処理要求に応じて処理を実行する複数の演算装置と、当該各演算装置と前記他の機器との間におけるデータ転送を行うスイッチ装置と、当該スイッチ装置に接続され前記各演算装置とデータ転送可能な記憶装置と、を備えた情報処理システムにて、
少なくとも一の前記演算装置が、当該演算装置に対する前記他の機器からの処理要求データを前記記憶装置にデータ転送して格納し、当該演算装置の作動状態を表す作動状態データを前記記憶装置にデータ転送して格納し、
少なくとも他の前記演算装置が、前記記憶装置に格納された前記処理要求データを当該記憶装置からデータ転送にて読み取り、当該記憶装置から読み取った前記処理要求データに応じて処理を実行すると共に、
前記一の演算装置が、前記作動状態データとして前記他の機器からの前記処理要求データに基づく処理の進行状態を表す処理進行状態データを、当該処理が開始されて当該処理が完了するまでの間に一定の時間間隔で前記記憶装置にデータ転送して格納し、
前記他の演算装置が、前記記憶装置に記憶された前記処理進行状態データを当該記憶装置からデータ転送にて読み取り、この読み取った前記処理進行状態データに基づいて前記記憶装置から読み取った前記処理要求データに応じた処理を継続して実行し、
前記演算装置と前記記憶装置とは、前記各演算装置にそれぞれ対応して前記記憶装置に設けられたＤＭＡコントローラを使用して、ＤＭＡ（Direct Memory Access）転送にてデータ転送を行う、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムにかかり、特に、複数の演算装置を備え処理の冗長化を図る情報処理システムに関する。
【背景技術】
【０００２】
コンピュータ装置やネットワーク装置などの情報処理システムでは、クライアント端末からの要求に対し、様々なサービス処理やプロトコル処理を行っている。そして、サービス処理、プロトコル処理を行うシステム内の中央演算装置（ＣＰＵ：Central Processing Unit）の信頼性の確保するために、冗長構成及び冗長制御が求められる。【０００３】
図１に、一般的なＣＰＵの冗長制御を行う情報処理システムの構成例を示す。そして、以下に、本構成及び冗長制御動作について説明する。【０００４】
図１に示す情報処理システムでは、アクティブ側とスタンバイ側にそれぞれＣＰＵを設け、片方のＣＰＵの障害時にも、クライアントへのサービスを継続できるよう構成されている。【０００５】
具体的に、図１に示す情報処理システムは、まず、クライアント端末３０１からのサービス要求を受け付けるＰＣＩ（Peripheral Component Interconnect）ネットワークインターフェース１０４１を備えている。また、サービス要求を処理するアクティブ側の構成であるＣＰＵ１０１１と、メモリコントローラーハブ１０２１と、メモリ１０３１と、を備えている。また、アクティブ側が障害時の代換となるスタンバイ側の構成であるＣＰＵ１０１２と、メモリコントローラーハブ１０２２と、メモリ１０３２と、を備えている。【０００６】
さらに、情報処理システムは、上記ＰＣＩネットワークインターフェース１０４１におけるアクティブ側とスタンバイ側とに対する排他接続制御を行うＰＣＩバススイッチ１０７を備えている。また、アクティブ側とスタンバイ側の同期処理のデータ経路として使用するＰＣＩネットワークインターフェース１０４２，１０４３を備えている。【０００７】
なお、上記構成において、クライアントからのサービス要求は、一般的にＩ／Ｏ（Input/Output）接続インターフェースを介して受け付けられる。ところが、一般的なＩ／Ｏ接続インターフェースであるＰＣＩあるいはＰＣＩエクスプレス（PCI  Express（Peripheral  Component  Interconnect  Express））機器は、同時に複数のＣＰＵ接続を許さない。このため、上述した構成のように、冗長構成に必要な複数ＣＰＵと接続する場合には、排他制御を行うための仕組みが必要となる。【０００８】
ここで、図２に、クライアント端末３０１からサービス要求を受け付けるＰＣＩネットワークインターフェース１０４１の内部構成を示す。このＰＣＩネットワークインターフェース１０４１は、ネットワークフレームを処理するメディアアクセスコントローラ１０４１４と、パケット受信した際に使用されるパケット受信メモリ１０４１２と、パケット送信の際に用いられるパケット送信メモリ１０４１３と、を備えている。【０００９】
また、ＰＣＩネットワークインターフェース１０４１は、ＰＣＩ接続インターフェースと接続するためのＰＣＩバスコントローラ１０４１１と、パケットの送受信時のデータ転送時の制御を行うＤＭＡ（Direct Memory Access）コントローラ１０４１７と、その制御レジスタであるＤＭＡコントロールレジスタ１０４１６と、インターフェース設定のためのＰＣＩコンフィグレジスタ１０４１５と、を備えている。そして、クライアント端末３０１からのサービス要求データは、すべてインターフェースを経由して送受信されるが、データの送受信の際には、ＤＭＡコントローラ１０４１７への制御によって、ＣＰＵへのデータのリード、ライト処理が行われる。【００１０】
続いて、図３には、アクティブ側のＣＰＵ１０１１上で動作するソフトウェアスタックを示す。同様に、図４には、スタンバイ側のＣＰＵ１０１２上で動作するソフトウェアスタックを示す。なお、これらソフトウェア上では、クライアント端末３０１からの要求を処理するサービス処理と、アクティブ側とスタンバイ側で冗長制御を行う冗長処理と、が動作する。また、図５と図６に、それぞれのＣＰＵ１０１１，１０１２が管理しているメモリアドレス状態を示す。そして、以下に、各ＣＰＵ１０１１，１０１２つまり当該ＣＰＵ上で動作するソフトウェアの一連の動作を、図７Ａ〜Ｄ及び図８Ａ〜Ｄを参照して説明する。なお、図７Ａ〜Ｄは、アクティブ側のＣＰＵ１０１１の動作を示すフローチャートであり、図８Ａ〜Ｄは、スタンバイ側のＣＰＵ１０１２の動作を示すフローチャートである。【００１１】
まず、図３に示すアクティブ側のＣＰＵ１０１１に組み込まれたソフトウェアは、オペレーティングシステム９０と冗長サービスアプリケーション８０とを構成している。そして、オペレーティングシステム９０上では、冗長サービスアプリケーション８０がデータの送受信を行うためにＰＣＩネットワークインターフェースカードのＤＭＡコントローラを制御して基本的なデータの送受信を可能とするＰＣＩＤＭＡ制御部９０３が動作する。また、オペレーティングシステム９０上では、ネットワークパケット処理を行うネットワークドライバ９０２と、パケットの到達保障等のネットワークプロトコル処理を行うＴＣＰ／ＩＰプロトコルスタック９０１と、が動作する。【００１２】
また、冗長サービスアプリケーション８０は、上記オペレーティングシステム９０を介してサービス要求パケット８０２２をパケット送受信処理部８０２で受信する（ステップＳ１０１）。そして、サービス処理部８０１でサービス処理を行い、サービス応答パケット８０２１をクライアントに返す、という処理を実行する。このとき、サービス要求パケット８０２２は、ＤＭＡ転送の結果（ステップＳ１０２）、ＣＰＵ１０１１のメインメモリ１０３１へ格納され処理される（ステップＳ１０３）。なお、図５は、ＣＰＵ１０１１で管理されるメインメモリ１０３１の状態を示しており、本領域はメモリ１０３１のメモリ領域であることを示している。かかるメインメモリ１０３１に対して、受信パケットは「0x5100-5200」の空間に格納され、送信パケットは「0x5000-0x5100」の空間に格納される。【００１３】
そして、上記アクティブ側のソフトウェアは、サービス処理の過程で、スタンバイ側と冗長制御を行う。この冗長制御は、ＣＰＵ障害時にサービスの引継ぎができるよう制御する。具体的には、パケット送受信処理部８０２がパケットを受信する毎に、パケットミラーリング部８０４にて、サービス要求コピーパケット８０４１をスタンバイ側へ送信するよう制御する（ステップＳ１０４、図７ＢのステップＳ１００１〜Ｓ１００６参照）。また、サービス処理の同期を図るために、サービス処理部８０１は、サービス同期処理部８０３にて、サービス処理フェーズ同期パケット８０３１をスタンバイ側へ送信するよう制御する（ステップＳ１０５、Ｓ１０６、図７ＣのステップＳ１０１１〜Ｓ１０１６参照）。そして、スタンバイ側にてサービス処理フェーズ同期応答パケット８０３２が受信され、アクティブ側は同期が図れたことを確認してサービス処理を進める。【００１４】
その後、アクティブ側にてサービス処理が完了すると（ステップＳ１０７）、処理結果であるサービス応答パケット８０２１をクライアント端末３０１に送信する（ステップＳ１０８，Ｓ１０９，Ｓ１１０）。【００１５】
なお、アクティブ側は、スタンバイ側の冗長システム死活監視部８０７により生存状態を常に監視されているため、冗長システム死活応答部８０５にて、スタンバイ側から死活管理パケット８０５１を定期的に受信し、死活応答パケット８０５２を送信している（図７ＤのステップＳ１０２１〜Ｓ１０２５参照）。【００１６】
そして、スタンバイ側では、上述したようにアクティブ側から送信されたサービス要求コピーパケット８０４１及びサービス処理フェーズ同期パケット８０３１の受信処理を行っている（ステップＳ１２１，Ｓ１２２、図８ＢのステップＳ１０３１〜Ｓ１０３５，図８ＣのステップＳ１０４１〜Ｓ１０４６参照）。また、スタンバイ側の冗長システム死活監視部８０７は、アクティブ側の生存を確認している（ステップＳ１２３、図８ＤのステップＳ１０５１〜Ｓ１０５７参照）。このとき、死活応答パケット８０５２が受信できない場合には、サービス処理冗長制御部８０６にて、アクティブ側とスタンバイ側との冗長切替え制御を行う（ステップＳ１２４）。【００１７】
なお、サービス要求コピーパケット８０４１とサービス処理ステップに関するデータは、図５に示すように、メモリ１０３１の「0x8100-8200，0x8300-0x8400」に格納され、スタンバイ側に対して送信される。同様に、スタンバイ側では、アクティブ側から送信される各種データを、図６に示すように格納する。具体的には、メモリ１０３２の「0x8100-8200」にサービス受信コピーパケットを、「0x8200-8300」にマスター死活状態管理エリアを、「0x8300-8400」にマスターサービス処理ステップ状態を、それぞれ格納する。【００１８】
そして、冗長切替制御では、ＰＣＩバススイッチ設定８０６１に応じて、ＰＣＩバススイッチ１０７が、ＰＣＩネットワークインターフェース１０４１をメモリコントローラーハブ１０２１からメモリコントローラーハブ１０２２に接続するよう切替を行う。これにより、ＣＰＵ１０１２がクライアントからのサービス要求を受信できるようになり、スタンバイ側のサービス処理部８０１で、サービス要求コピーパケット８０４１の情報と、サービス処理フェーズ同期パケット８０３１の情報を用いて、サービス処理の引継ぎ制御を行う（ステップＳ１２５〜Ｓ１３０）。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２００６−１９５８２１号公報
【非特許文献】
【００２０】
【非特許文献１】Multi-Root I/O Virtualization and Sharing Specification Revision1.0, PCI-SIG, May 12, 2008, pp. 29
【発明の概要】
【発明が解決しようとする課題】
【００２１】
しかしながら、上述した冗長制御では、冗長処理のためのデータ送信は完全なデータ到達性を保障する必要がある。このため、ＴＣＰ／ＩＰプロトコルスタック９０１、ネットワークドライバ９０２、ＰＣＩＤＭＡ制御９０３、ＰＣＩネットワークインターフェース１０４２を経由してＴＣＰ処理を使用しなければならず、ＣＰＵ負荷が掛かってしまい、同期の高速化が困難であった。特に、冗長制御に必要なサービス要求パケットのコピー処理と、そのパケットの送信は、ＣＰＵ１０１１ではサービス処理を行う際にパケット送受信に関わるＣＰＵ処理負荷が２倍になり、サービス処理のシステム性能を著しく落してしまう、という問題があった。【００２２】
また、クライアント端末３０１から送信されるサービス要求パケット８０２２は、冗長制御により、スタンバイ側へサービス要求コピーパケット８０４１として、伝達される。このため、アクティブ側のＣＰＵ１０１１に障害が発生した際に、まだ、サービス要求コピーパケット８０４１として送信されていない情報は、メモリ１０３１内のデータを引き出すことが不可能となる。その結果、パケット情報を失ってしまい、完全な冗長制御ができない、という問題があった。【００２３】
このため、本発明の目的は、上述した課題である、冗長制御に伴うシステム性能の低下を抑制しつつ、処理の信頼性の向上を図る、ことにある。
【課題を解決するための手段】
【００２４】
かかる目的を達成するため本発明の一形態である情報処理システムは、
他の機器から送信された所定の処理要求に応じて処理を実行する複数の演算装置と、当該各演算装置と上記他の機器との間におけるデータ転送を行うスイッチ装置と、当該スイッチ装置に接続され上記各演算装置とデータ転送可能な記憶装置と、を備え、
少なくとも一の上記演算装置は、当該演算装置に対する上記他の機器からの処理要求データを上記記憶装置にデータ転送して格納する処理要求格納手段を備えると共に、
少なくとも他の上記演算装置は、上記記憶装置に格納された上記処理要求データを当該記憶装置からデータ転送にて読み取る処理要求読取手段を備えた、
という構成を有する。【００２５】
また、本発明の他の形態である情報処理システムは、
他の機器から送信された所定の処理要求に応じて処理を実行する作動中の演算装置及び待機中の演算装置と、当該各演算装置と上記他の機器との間におけるデータ転送を行うスイッチ装置と、当該スイッチ装置に接続され上記各演算装置とデータ転送可能な記憶装置と、を備え、
上記作動中の演算装置は、当該演算装置に対する上記他の機器からの処理要求データを上記記憶装置にデータ転送して格納する処理要求格納手段を備えると共に、
上記待機中の演算装置は、上記記憶装置に格納された上記処理要求データを当該記憶装置からデータ転送にて読み取る処理要求読取手段を備えた、
という構成を有する。【００２６】
また、本発明の他の形態であるプログラムは、
他の機器から送信された所定の処理要求に応じて処理を実行する複数の演算装置と、当該各演算装置と上記他の機器との間におけるデータ転送を行うスイッチ装置と、当該スイッチ装置に接続され上記各演算装置とデータ転送可能な記憶装置と、を備えた情報処理装置に読み込まれ、
少なくとも一の上記演算装置に、当該演算装置に対する上記他の機器からの処理要求データを上記記憶装置にデータ転送して格納する処理要求格納手段を実現させると共に、
少なくとも他の上記演算装置は、上記記憶装置に格納された上記処理要求データを当該記憶装置からデータ転送にて読み取る処理要求読取手段を実現させる、
ためのプログラムである。【００２７】
また、本発明の他の形態である情報処理方法は、
他の機器から送信された所定の処理要求に応じて処理を実行する複数の演算装置と、当該各演算装置と上記他の機器との間におけるデータ転送を行うスイッチ装置と、当該スイッチ装置に接続され上記各演算装置とデータ転送可能な記憶装置と、を備えた情報処理システムにて、
演算装置に対する上記他の機器からの処理要求データを上記記憶装置にデータ転送して格納し、
他の上記演算装置が、上記記憶装置に格納された上記処理要求データを当該記憶装置からデータ転送にて読み取る、
という方法である。
【発明の効果】
【００２８】
本発明は、以上のように構成されることにより、冗長制御に伴うシステム性能の低下を抑制しつつ、処理の信頼性の向上を図る、ことができる。
【図面の簡単な説明】
【００２９】
【図１】本発明に関連する情報処理システムの構成を示すブロック図である。
【図２】図１に開示したＰＣＩネットワークインターフェースの構成を示すブロック図である。
【図３】図１に開示したアクティブ側ＣＰＵの構成を示す機能ブロック図である。
【図４】図１に開示したスタンバイ側ＣＰＵの構成を示す機能ブロック図である。
【図５】図１に開示したアクティブ側ＣＰＵのメモリマップを示す図である。
【図６】図１に開示したスタンバイ側ＣＰＵのメモリマップを示す図である。
【図７Ａ】図１に開示したアクティブ側ＣＰＵの動作を示すフローチャートである。
【図７Ｂ】図１に開示したアクティブ側ＣＰＵの動作を示すフローチャートである。
【図７Ｃ】図１に開示したアクティブ側ＣＰＵの動作を示すフローチャートである。
【図７Ｄ】図１に開示したアクティブ側ＣＰＵの動作を示すフローチャートである。
【図８Ａ】図１に開示したスタンバイ側ＣＰＵの動作を示すフローチャートである。
【図８Ｂ】図１に開示したスタンバイ側ＣＰＵの動作を示すフローチャートである。
【図８Ｃ】図１に開示したスタンバイ側ＣＰＵの動作を示すフローチャートである。
【図８Ｄ】図１に開示したスタンバイ側ＣＰＵの動作を示すフローチャートである。
【図９】実施形態１における情報処理システムの構成を示すブロック図である。
【図１０】図９に開示したマルチルートＰＣＩエクスプレスネットワークインターフェースの内部構成を示す機能ブロック図である。
【図１１】図９に開示したマルチルートＰＣＩエクスプレスメモリの内部構成を示す機能ブロック図である。
【図１２】図９に開示したアクティブ側ＣＰＵの構成を示す機能ブロック図である。
【図１３】図９に開示したスタンバイ側ＣＰＵの構成を示す機能ブロック図である。
【図１４】図９に開示したアクティブ側ＣＰＵにおけるメモリマップを示す図である。
【図１５】図９に開示したスタンバイ側ＣＰＵにおけるメモリマップを示す図である。
【図１６】図９に開示したアクティブ側ＣＰＵの動作を示すフローチャートである。
【図１７】図９に開示したスタンバイ側ＣＰＵの動作を示すフローチャートである。
【図１８】実施形態２における情報処理システムの構成を示すブロック図である。
【図１９】実施形態３における情報処理システムの構成を示すブロック図である。
【発明を実施するための形態】
【００３０】
＜実施形態１＞
本発明の第一の実施形態を、図９乃至図１７を参照して説明する。図９は、本発明の情報処理装置の構成を示すブロック図である。図１０は、マルチルートＰＣＩエクスプレスネットワークインターフェースの内部構成を示す機能ブロック図である。図１１は、マルチルートＰＣＩエクスプレスメモリの内部構成を示す機能ブロック図である。図１２は、アクティブ側ＣＰＵの構成を示す機能ブロック図である。図１３は、スタンバイ側ＣＰＵの構成を示す機能ブロック図である。図１４は、アクティブ側ＣＰＵにおけるメモリマップを示す図である。図１５は、スタンバイ側ＣＰＵにおけるメモリマップを示す図である。図１６は、アクティブ側ＣＰＵの動作を示すフローチャートである。図１７は、スタンバイ側ＣＰＵの動作を示すフローチャートである。
【００３１】
図９に示すように、本実施形態における情報処理システムは、作動中であるアクティブ側のＣＰＵ１０１１（演算装置）と、待機中であるスタンバイ側のＣＰＵ１０１２（演算装置）と、を備えている。そして、アクティブ側のＣＰＵ１０１１に障害などが発生すると、スタンバイ側のＣＰＵ１０１２が作動して、クライアントへのサービスを継続し、冗長構成となっている。
【００３２】
具体的に、情報処理システムは、クライアント端末３０１（他の機器）からのサービス要求を処理するアクティブ側の構成として、上記ＣＰＵ１０１１と、メモリコントローラーハブ１０１２１１と、メモリ１０３１と、を備えている。また、アクティブ側障害時の代換となるスタンバイ側の構成として、上記ＣＰＵ１０１２と、メモリコントローラーハブ１０２２２と、メモリ１０３２と、を備えている。
【００３３】
また、情報処理システムは、メモリコントローラーハブ１０２１１，１０２２２を介して各ＣＰＵ１０１１，１０１２に接続されたＭＲＡ（Multi Root Aware）スイッチであるマルチルートＰＣＩエクスプレススイッチ４０１を備えている。さらに、情報処理システムは、上記マルチルートＰＣＩエクスプレススイッチ４０１に接続された、ＭＲＡデバイスであるクライアント端末３０１からのサービス要求を受け付けるマルチルートＰＣＩエクスプレスネットワークインターフェース１０５と、後述するようにサービス要求のデータ等を一旦格納する際に用いられるマルチルートＰＣＩメモリ１０６と、を備えている。
【００３４】
なお、クライアントからのサービス要求は一般的にＩ／Ｏを介して受け付けられる。ここで、一般的なＩ／Ｏ接続インターフェースであるＰＣＩならびにＰＣＩエクスプレスを拡張する上記非特許参考文献１や特許文献１に開示されているＭＲＡスイッチ並びにＭＲＡデバイスを用いた際には、Ｉ／Ｏに対して、同時に複数のＣＰＵからの接続を許す。従って、上述した図１等に開示したシステムのＰＣＩバススイッチ１０７のような、排他制御を行うための仕組みは不要である。
【００３５】
続いて、図１０に、クライアント端末３０１からサービス要求を受け付けるマルチルートＰＣＩエクスプレスネットワークインタフェース１０５の内部構成を示す。マルチルートＰＣＩエクスプレスネットワークインターフェース１０５は、例えば、PCI Express（Peripheral Component Interconnect Express）機器である。そして、非特許文献１に示すように、マルチルート対応ＰＣＩエクスプレスコントローラ１０５１を搭載することで、マルチルートＰＣＩエクスプレススイッチ４０１介して、上記ＣＰＵ１０１１とＣＰＵ１０１２とが同時に、本ネットワークインターフェースを利用できるように構成される。
【００３６】
具体的に、クライアント端末３０１からのサービス要求データは、メディアアクセスコントローラ１０５４でネットワークパケットが解析され、フロー解析モジュール１０５３に設定された内容にしたがって、ＣＰＵ１０１１あるいはＣＰＵ１０１２に振分けられる。その際、それぞれのＣＰＵへのデータの送受信時に、ＣＰＵ１０１１に対してはパケット受信メモリ１（１０５２１）及びパケット送信メモリ１（１０５２３）が、ＣＰＵ１０１２に対してはパケット受信メモリ２（１０５２２）及びパケット送信メモリ２（１０５２４）が使用される。また、データの送受信は、上述した図１等に開示したシステム同様、ＣＰＵ１０１１においてはＤＭＡコントローラ１（１０５８１）とＤＭＡコントロールレジスタ１（１０５７１）とが、ＣＰＵ１０１２においてはＤＭＡコントローラ２（１０５８２）とＤＭＡコントロールレジスタ２（１０５７２）とが、使用される。
【００３７】
また、マルチルートＰＣＩエクスプレス対応のデバイスは、複数のＣＰＵからのＰＣＩコンフィグレーションに対応するために、VH0/PF0 PCIコンフィグレジスタ１０５５０、BF PCIコンフィグレジスタ１０５６０には、デバイスの基本設定が格納されている。また、VH1/PF0 PCIコンフィグレジスタ１０５５１とVF1 PCIコンフィグレジスタ１０５６１には、ＣＰＵ１０１１に対するPCIコンフィグ設定が格納されている。さらに、VH1/PF0 PCIコンフィグレジスタ１０５５２とVF1 PCIコンフィグレジスタ１０５６２には、ＣＰＵ１０１２に対するPCIコンフィグ設定の情報が格納されている。これにより、各々のコンフィグレジスタの内容で、デバイスが使用するメモリ空間等が決定される。
【００３８】
続いて、図１１に、複数のＣＰＵからデータ格納可能なマルチルートＰＣＩエクスプレスメモリ１０６（記憶装置）の内部構成を示す。マルチルートＰＣＩエクスプレスメモリ１０６も同様に、非特許文献１に規定により、マルチルートＰＣＩエクスプレスコントローラ１０６１を搭載することで、マルチルートＰＣＩエクスプレススイッチ４０１介して、ＣＰＵ１０１１とＣＰＵ１０１２、同時に本ネットワークインターフェースを利用できるように構成される。
【００３９】
そして、上記マルチルートＰＣＩエクスプレスメモリ１０６は、ＰＣＩコンフィグレジスタのベースアドレスレジスタの設定によって、ＣＰＵが管理するメモリアドレスが割振られ、割振られたアドレス空間へのデータアクセス時に、本メモリへのデータの入出力が可能となる。また、後述するように、ＣＰＵ１０１１，１０１２にそれぞれ組み込まれたソフトウェアからは、メモリドライバを介して、マルチルートＰＣＩエクスプレスメモリ１０６への設定並びにアクセスを制御することが可能である。従って、ＣＰＵ１０１１、ＣＰＵ１０１２がそれぞれ同じデータに該当のアドレスへアクセスすれば、当該メモリ１０６に対してデータの入出力が可能となる。
【００４０】
そして、それぞれのＣＰＵに対するデータの送受信時に、ＣＰＵ１０１１に対しては、パケット受信ＦＩＦＯ１０６２１及びパケット送信ＦＩＦＯ１０６２３が、ＣＰＵ１０１２に対しては、パケット受信ＦＩＦＯ１０６２２及びパケット送信ＦＩＦＯ１０６２４が使用される、メモリコントローラ１０６３を介して、メモリ１０６４のデータの入出力が実行される。また、データの送受信時の際は、上述したシステム同様に、ＣＰＵ１０１１においてはＤＭＡコントローラ１０６８１とＤＭＡコントロールレジスタ１０６７１とが使用され、ＣＰＵ１０１２においてはＤＭＡコントローラ１０６８２とＤＭＡコントロールレジスタ１０６７２が使用される。
【００４１】
また、マルチルートＰＣＩエクスプレス対応のデバイスは、複数のＣＰＵからのＰＣＩコンフィグレーションに対応するために、VH0/PF0 PCIコンフィグレジスタ１０６５０、BF PCIコンフィグレジスタ１０６６０には、デバイスの基本設定が格納されている。また、VH1/PF0 PCIコンフィグレジスタ１０６５１とVF1 PCIコンフィグレジスタ１０６６１には、ＣＰＵ１０１１に対するPCIコンフィグ設定が格納されている。さらに、VH1/PF0 PCIコンフィグレジスタ１０６５２とVF1 PCIコンフィグレジスタ１０６６２には、ＣＰＵ１０１２に対するPCIコンフィグ設定の情報が格納されている。そして、各々のコンフィグレジスタの内容で、デバイスが使用するメモリ空間等が決定される。
【００４２】
ここで、本実施形態では、図１４と図１５に示すように、ＣＰＵ１０１１，ＣＰＵ１０１２共に、メモリ空間（符号１０６に示す）を「0x5100-0x8400」に割当てる設定を行っている。この設定により、この空間へのデータの入出力は、すべて、マルチルートＰＣＩエクスプレスメモリ１０６上で行われるようになる。そして、後述するように、サービス要求の受信パケットや冗長制御のための情報を、このメモリアドレス空間へアサインすることで、メモリ１０３１，１０３２ではなく、マルチルートＰＣＩエクスプレスメモリ１０６にデータが格納される。
【００４３】
続いて、図１２にアクティブ側のＣＰＵ１０１１上で動作するソフトウェアスタックを示し、図１３にスタンバイ側のＣＰＵ１０１２上で動作するソフトウェアスタックを示す。なお、このソフトウェアスタック、つまり、各ＣＰＵ１０１１，１０１２の構成は、本発明用のプログラムが各ＣＰＵに組み込まれることで実現される。
【００４４】
そして、基本的なソフトウェアの機能としては、クライアント端末３０１からの要求を処理するサービス処理と、アクティブ側とスタンバイ側で冗長制御を行う処理と、を実行する機能を備えている。また、上述したように、図１４と図１５に、それぞれのＣＰＵ１０１１，１０１２が管理しているメモリアドレス状態の構成を示す。以下に、各ＣＰＵつまりソフトウェアスタックの構成及び一連動作を、図１６及び図１７を参照して説明する。
【００４５】
まず、図１２に示すアクティブ側のＣＰＵ１０１１は、組み込まれたプログラムにより、オペレーティングシステム９０と冗長サービスアプリケーション７０とを構築している。そして、オペレーティングシステム９０上では、冗長サービスアプリケーション７０がデータの送受信を行うために、マルチルートＰＣＩエクスプレスネットワークインターフェースのＤＭＡコントローラを制御して基本的なデータの送受信を可能とするPCI DMA制御９０３が動作する。また、オペレーティングシステム９０上では、ネットワークパケット処理を行うマルチルートネットワークドライバ９０２２と、パケットの到達保障等のネットワークプロトコル処理を行うTCP/IPプロトコルスタック９０１と、メモリへのデータ格納制御を行うメモリドライバ７０６と、が動作する。
【００４６】
また、冗長サービスアプリケーション７０のパケット送受信処理部７０２（処理要求格納手段）は、上記オペレーティングシステム９０のマルチルートネットワークドライバ９０２２を介して、マルチルートPCIエクスプレスネットワークインターフェース１０５で受信される割込み通知によりサービス要求パケットを検知する（ステップＳ３でイエス）。すると、パケット送受信処理部７０２は、メモリドライバ７０６経由で、サービス要求受信パケットメモリ格納コマンド７０２１によるＤＭＡ転送（Direct Memory Access）により、サービス要求パケットをマルチルートＰＣＩエクスプレスメモリ１０６にデータ転送する。そして、このサービス要求パケットを、一旦、マルチルートＰＣＩエクスプレスメモリ１０６へ格納する（ステップＳ４、処理要求格納工程）。
【００４７】
その後、パケット送受信処理部７０２は、マルチルートPCIエクスプレスメモリ１０６上に格納したデータを、当該メモリ１０６から再度ＤＭＡ転送により、サービス要求パケット７０２２として受信する（ステップＳ５）。そして、サービス処理７０１によりサービス処理を行い（ステップＳ６，Ｓ７）、処理の結果、生成されるサービス応答パケット８０２１をクライアント端末３０１に返送する（ステップＳ９、Ｓ１０，Ｓ１１，Ｓ１２）。このとき、サービス応答パケットを返送して処理要求に対する処理が完了した後に、一旦格納した、マルチルートPCIエクスプレスメモリ１０６上の受信データつまりサービス要求パケットを、パケット送信時削除処理部７０７（処理要求削除手段）にて削除する（ステップＳ１３）。具体的には、パケット送信時削除処理部７０７が、パケット削除処理指令７０７１をマルチルートPCIエクスプレスメモリ１０６へ発行し、当該マルチルートＰＣＩエクスプレスメモリ１０６上から処理を終えたサービス要求パケットデータを削除する（ステップＳ１３）。
【００４８】
また、アクティブ側のＣＰＵ１０１１は、サービス処理の過程で、後述するように、スタンバイ側と冗長制御を行う。ここで、上述した先行技術における冗長制御は、ＣＰＵ障害時に、サービスの引継ぎができるように、受信パケットのミラーリングや同期のための情報をスタンバイ側へＴＣＰで通知する必要がある。ところが、本発明では、上述したように、受信したサービス要求パケットは、ＤＭＡ転送を用いて、一旦、スタンバイ側もアクセス可能な、マルチルートPCIエクスプレスメモリ１０６へ格納している。従って、ＴＣＰを用いたＣＰＵ負荷が高くなるようなコピー処理は発生しない。また、受信したデータはサービス応答パケット送信後までマルチルートPCIエクスプレスメモリ１０６上で削除されないため、ＣＰＵ１０１１がサービス処理中に障害が発生しても、受信したデータを欠落することなく、スタンバイ側のＣＰＵ１０１２側がサービス処理の引継ぎを行う事が可能である。
【００４９】
また、アクティブ側のＣＰＵ１０１１の冗長システム死活状態部７０５（作動状態格納手段）は、自己であるＣＰＵ１０１１が正常に作動していることを表す生存状態データ７０５１（作動状態データ）を、メモリドライバ７０６を経由し、ＤＭＡ転送にてマルチルートPCIエクスプレスメモリ１０６上に書込む動作を行う。この処理は、例えば、図１６に示すように、一定の時間間隔にて実行される（ステップＳ１，Ｓ２）。
【００５０】
また、アクティブ側のＣＰＵ１０１１のサービス同期処理部７０３（作動状態格納手段）は、サービス処理の同期を図るために、サービス要求に基づく処理の進行状態を表すデータであるサービスフェーズ状態７０３１（処理進行状態データ（作動状態データ））を、メモリドライバ７０６を経由し、ＤＭＡ転送にてマルチルートPCIエクスプレスメモリ１０６上に書込む動作を行う。この処理は、例えば、図１６に示すように、サービス処理が開始されて（ステップＳ７）かかるサービス処理が完了するまでの間（ステップＳ９でノー）、一定の時間間隔にて実行される（ステップＳ８）。
【００５１】
以上のように、本実施形態では、ＣＰＵ１０１１とマルチルートPCIエクスプレスメモリ１０６とのデータ転送はＰＣＩアクセスにて実行されるため、ＣＰＵに負荷がかかるＴＣＰ処理は発生しない。そして、上述したコピー処理も発生しないため、全体として、システムの同期の高速化を図ることが可能になる。
【００５２】
ここで、図１４に、ＣＰＵ１０１１におけるメモリマップを示す。マルチルートPCIエクスプレスメモリ１０６の空間には、「0x5100-5200」に「パケット受信メモリエリア」と、「0x8200-8300」に「マスター死活状態」と、「0x8300-8400」に「サービス処理状態」とが格納される。そして、マルチルートPCIエクスプレスメモリ１０６上の受信データをＣＰＵ１０１１で利用する際は、メモリ１０３２上の受信パケット処理エリア「0x4100-4200」に読込み処理が行われる。一方、サービス処理後の送信データは、「0x5000-5100」のメモリ１０３２上に格納され、サービス応答パケット８０２１として、クライアントへ返送されるように用いられる。
【００５３】
また、図１３に示すように、スタンバイ側のＣＰＵ１０１２には、上記アクティブ側と同様に、組み込まれたソフトウェアにより、オペレーティングシステム９０と冗長サービスアプリケーション７０とが構築される。なお、このＣＰＵ１０１２の構成は、基本的には上記アクティブ側のＣＰＵ１０１１と同一であるが、以下に説明するように、冗長制御を行う機能（冗長処理手段）を備えている。このため、以下ではかかる相違点のみ説明し、また、その動作を、図１７を参照して説明する。
【００５４】
まず、スタンバイ側のＣＰＵ１０１２の冗長システム死活監視部７０９は、メモリドライバ７０６を介して、マルチルートPCIエクスプレスメモリ１０６にアクセスし、アクティブ側の生存状態７０５１を確認する。なお、このアクティブ側の生存状態の確認は、一定時間間隔にて行う（ステップＳ２１，Ｓ２２）。そして、アクティブ側のＣＰＵ１０１１に異常が生じるなど、生存が確認できない場合は（ステップＳ２２でノー）、サービス処理冗長制御部７０８へ通知し、サービス処理の引継ぎ処理を開始する。
【００５５】
すると、サービス処理冗長制御部７０８は、サービス処理部７０１に対して冗長処理を行うよう制御する。具体的には、まず、パケット送受信処理部７０２（処理要求読取手段）が、マルチルートPCIエクスプレスメモリ１０６上に格納されているサービス要求パケット７０２２をＤＭＡ転送にて読み取り、サービス処理部７０１に通知する（ステップＳ２３、処理要求読取工程）。
【００５６】
また、サービス同期処理部７０３は、同様に、マルチルートPCIエクスプレスメモリ１０６上に格納されているアクティブ側での進行状態を表すデータであるサービスフェーズ状態７０３１をＤＭＡ転送にて読み取り、サービス処理部７０１に通知する（ステップＳ２４）。
【００５７】
そして、サービス処理部７０１は、上述したようにアクティブ側の生存が確認できない場合に、クライアント端末３０１からのサービス要求に応じた処理を実行する。このとき、上述したように、読み取ったサービスフェーズ状態７０３１に基づいて、アクティブ側の進行状態に応じて、つまり、アクティブ側で実行された処理を引き継いで、その続きを実行する（ステップＳ２５，Ｓ２６，Ｓ２７）。
【００５８】
その後、サービス処理７０１によるサービス処理の結果、生成されるサービス応答パケット８０２１を返送する（ステップＳ２９、Ｓ３０，Ｓ３１，Ｓ３２）。このとき、サービス応答パケットを返送して処理要求に対する処理が完了した後に、マルチルートPCIエクスプレスメモリ１０６上のサービス要求パケットを削除する（ステップＳ３３）。
【００５９】
また、スタンバイ側のＣＰＵ１０１２は、サービス処理の過程で、サービス要求に基づく処理の進行状態を表すデータであるサービスフェーズ状態を、メモリドライバ７０６を経由し、ＤＭＡ転送にてマルチルートPCIエクスプレスメモリ１０６上に書込む動作を行う。この処理は、例えば、図１７に示すように、サービス処理が開始されて（ステップＳ２７）かかるサービス処理が完了するまでの間（ステップＳ２９でノー）、一定の時間間隔にて実行される（ステップＳ２８）。
【００６０】
ここで、図１５にＣＰＵ１０１２におけるメモリマップを示す。マルチルートPCIエクスプレスメモリ１０６の空間には、「0x5100-5200」にパケット受信メモリエリアと、「0x8200-8300」にマスター死活状態と、「0x8300-8400」にサービス処理状態とが格納されているため、本情報を用いて、同期並びに引継ぎ動作が可能となる。
【００６１】
以上のように、本実施形態では、まず、クライアント端末からのサービス要求パケットを、マルチルートＰＣＩエクスプレスネットワークインタフェースにて受信し、マルチルートＰＣＩエクスプレススイッチを介して、アクティブ側のＣＰＵに送信される。すると、これを受信したアクティブ側のＣＰＵは、サービス要求パケットを一旦、マルチルートＰＣＩエクスプレススイッチに接続されたマルチルートＰＣＩエクスプレスメモリに、ＤＭＡ転送にて格納する。そして、このサービス要求パケットは、アクティブ側のＣＰＵにて処理が完了するまでマルチルートＰＣＩエクスプレスメモリに保持され、また、スタンバイ側のＣＰＵからＤＭＡ転送にて読み取り可能である。従って、アクティブ側のＣＰＵに障害が発生した場合であっても、スタンバイ側のＣＰＵはマルチルートＰＣＩエクスプレスメモリからサービス要求パケットを読み取って、当該サービス要求に対する処理を継続することができる。従って、サービス要求パケットの欠落を防止することができ、確実な冗長構成を実現し、システムの信頼性の向上を図ることができる。
【００６２】
また、各ＣＰＵによるマルチルートＰＣＩエクスプレスメモリに対するサービス要求パケットの格納、読み取りは、ＤＭＡ転送にて行うため、当該ＣＰＵの負荷を抑制することができる。その結果、冗長制御に伴うシステム性能の低下を抑制しつつ、さらなる処理の信頼性の向上を図ることができる。
【００６３】
＜実施形態２＞
次に、本発明の第２の実施形態を、図１８を参照して説明する。図１８は、本実施形態における情報処理システムの構成を示すブロック図である。
【００６４】
本実施形態における情報処理システムは、上述した実施形態１のものとほぼ同様の構成を採っているが、上述したマルチルートＰＣＩエクスプレススイッチの代わりに、ネットワーク上でネットワークスイッチ２０１（スイッチ装置）を備えている。そして、このネットワークスイッチ２０１を経由して、クライアント端末３０１からのサービス処理要求を受信するよう構成されている。また、これに対応して、ネットワークブリッジインターフェース１０８１，１０８２を備えている。
【００６５】
さらに、本実施形態では、上述したマルチルートＰＣＩエクスプレスメモリの代わりに、ネットワークスイッチ２０１に接続されたネットワーク接続メモリ１０８３（記憶装置）を備えている。このネットワーク接続メモリ１０８３は、各ＣＰＵ１０１１，１０１２と、ＴＣＰを用いることなく、ＤＭＡ転送にてデータ転送可能である。
【００６６】
そして、上記各ＣＰＵ１０１１，１０１２は、上述同様の構成を備えている。例えば、アクティブ側のＣＰＵ１０１１は、クライアント端末３０１からのサービス要求パケットをネットワーク接続メモリ１０８３にＤＭＡ転送にて一旦格納した上で、再度読み取って、サービス処理を実行する。また、スタンバイ側のＣＰＵ１０１２は、アクティブ側のＣＰＵ１０１１に障害等が生じると、ネットワーク接続メモリ１０８３からＤＭＡ転送にてサービス要求パケットを読み取り、これに応じたサービス処理を実行する。さらに、上述同様に、ネットワーク接続メモリ１０８３に対しては、各ＣＰＵから、ＤＭＡ転送を用いて、ＣＰＵの生存状態を表すデータやサービス処理の進行状態を表すデータの格納・読み取りが実行される。
【００６７】
以上により、上記構成であっても、サービス要求パケットの欠落を防止することができ、確実な冗長構成を実現し、システムの信頼性の向上を図ることができる。また、ＣＰＵの負荷を抑制して、冗長制御に伴うシステム性能の低下を抑制することができる。
【００６８】
＜実施形態３＞
次に、本発明の第３の実施形態を、図１９を参照して説明する。図１９は、本実施形態における情報処理システム装置の構成を示すブロック図である。なお、本実施形態では、上述した情報処理システムの概略を説明する。
【００６９】
図１９に示すように、本実施形態における情報処理システムは、
他の機器から送信された所定の処理要求に応じて処理を実行する複数の演算装置１，２と、当該各演算装置１，２と上記他の機器３０１との間におけるデータ転送を行うスイッチ装置３と、当該スイッチ装置３に接続され上記各演算装置１，２とデータ転送可能な記憶装置４と、を備えている。
【００７０】
そして、少なくとも一の上記演算装置１は、当該演算装置１に対する上記他の機器３０１からの処理要求データを上記記憶装置４にデータ転送して格納する処理要求格納手段１１を備える。
さらに、少なくとも他の上記演算装置２は、上記記憶装置４に格納された上記処理要求データを当該記憶装置４からデータ転送にて読み取る処理要求読取手段２１を備える。
【００７１】
上記構成の情報処理システムによると、まず、他の機器から所定の処理要求がスイッチ装置を介して演算装置に送信されると、これを受信した一の演算装置は、処理要求データをスイッチ装置に接続された記憶装置にデータ転送して格納する。そして、この一の演算装置は、処理要求データに応じた処理を実行する。また、他の演算装置は、上記一の演算装置にて記憶装置に格納された処理要求データをデータ転送にて読み取る。これにより、他の演算装置は、他の機器から一の演算装置に対する処理要求を認識することができ、かかる処理要求に他の演算装置も対応することができる。従って、複数の演算装置にて他の機器からの処理要求に対する処理の漏れを抑制する冗長制御を実現できる。また、このとき、スイッチ装置に接続された記憶装置に処理要求データを一旦格納してデータ転送を行っているため、演算装置間で処理要求データの送受信を行う必要がなく、かかる処理における負荷を抑制できる。その結果、冗長制御に伴うシステム性能の低下を抑制しつつ、処理の信頼性の向上を図ることができる。
【００７２】
また、上記情報処理システムでは、
上記演算装置と上記記憶装置とは、ＤＭＡ（Direct Memory Access）転送にてデータ転送を行う、
という構成を有する。
【００７３】
このように、演算装置から記憶装置に対する処理要求データや後述する他のデータの格納や読み取りに伴うデータ転送を、ＤＭＡ転送で行う。これにより、演算装置間で直接データ送受信を行うことなく、当該演算装置の処理負荷を確実に軽減でき、システム性能の低下を抑制することができる。
【００７４】
また、上記情報処理システムでは、
上記処理要求格納手段を備えた上記演算装置は、上記記憶装置にデータ転送して格納した上記処理要求データを当該記憶装置からデータ転送にて読み取り、当該読み取った処理要求データに応じて処理を実行する、
という構成を有する。
【００７５】
これにより、一旦、一の演算装置から記憶装置に格納された処理要求データが、再度、一の演算装置に読み取られて、当該処理要求データに応じた処理が実行される。従って、一の演算装置にて実行する処理を要求する処理要求データの記憶装置への記憶がより確実となり、他の演算装置による一の演算装置に対する処理要求の認識がより確実となる。その結果、冗長性の向上を図ることができる。
【００７６】
また、上記情報処理システムでは、
上記処理要求格納手段を備えた上記演算装置は、上記他の機器からの上記処理要求データに基づく処理の実行が完了した場合に、上記記憶装置に記憶した上記処理要求データを当該記憶装置から削除するよう制御する処理要求削除手段を備えた、
という構成を有する。
【００７７】
これにより、一の演算装置にて正常に処理が完了された場合には、かかる処理の要求である処理要求データが記憶装置から削除される。従って、完了した処理要求データは他の演算装置に読み取られることがなく、不要な処理を抑制できる。その結果、適切な冗長制御を実現できる。
【００７８】
また、上記情報処理システムでは、
上記処理要求読取手段を備えた上記演算装置は、当該処理要求読取手段にて上記記憶装置から読み取った上記処理要求データに応じて処理を実行する冗長処理手段を備えた、
という構成を有する。
【００７９】
これにより、他の演算装置は、記憶装置から読み取った処理要求データに応じて、一の演算装置にて処理されるべき処理を実行することができる。その結果、一の演算装置が故障等した場合であっても、より確実に冗長処理を実現できるため、システムの信頼性のさらなる向上を図ることができる。
【００８０】
また、上記情報処理システムでは、
上記処理要求格納手段を備えた上記演算装置は、当該演算装置の作動状態を表す作動状態データを上記記憶装置にデータ転送して格納する作動状態格納手段を備え、
上記処理要求読取手段を備えた上記演算装置が有する上記冗長処理手段は、上記記憶装置に記憶された上記作動状態データを当該記憶装置からデータ転送にて読み取り、この読み取った上記作動状態データに基づいて上記処理要求読取手段にて上記記憶装置から読み取った上記処理要求データに応じた処理を実行する、
という構成を有する。
【００８１】
また、上記情報処理システムでは、
上記処理要求格納手段を備えた上記演算装置が有する上記作動状態格納手段は、上記作動状態データとして自己の演算装置が作動しているか否かを表す生存状態データを上記記憶装置にデータ転送して格納する、
という構成を有する。
【００８２】
また、上記情報処理システムでは、
上記処理要求読取手段を備えた上記演算装置が有する上記冗長処理手段は、上記記憶装置から読み取った上記作動状態データである上記生存状態データに基づいて、別の上記演算装置が作動していないと判断した場合に、上記処理要求読取手段にて上記記憶装置から読み取った上記処理要求データに応じた処理を実行する、
という構成を有する。
【００８３】
また、上記情報処理システムでは、
上記処理要求格納手段を備えた上記演算装置が有する上記作動状態格納手段は、上記作動状態データとして上記他の機器からの上記処理要求データに基づく処理の進行状態を表す処理進行状態データを上記記憶装置にデータ転送して格納する、
という構成を有する。
【００８４】
また、上記情報処理システムでは、
上記処理要求読取手段を備えた上記演算装置が有する上記冗長処理手段は、上記記憶装置から読み取った上記作動状態データである上記処理進行状態データに基づいて上記処理要求読取手段にて上記記憶装置から読み取った上記処理要求データに応じた処理を継続して実行する、
という構成を有する。
【００８５】
これにより、一の演算装置は、自己の作動状態、例えば、作動しているか否かを表すデータや処理要求データに応じた処理の進行状態を表すデータを記憶装置にデータ転送にて記憶しておくことで、他の演算装置がこれを読み取り、一の演算装置の状態を認識することができる。従って、他の演算装置は、一の演算装置の状態に応じて、処理要求データに対する適切な処理を実行することができる。例えば、一の演算装置が故障したことを検出したときに代わって実行したり、一の演算装置が実行した続きから処理を実行することができる。その結果、システムのさらなる信頼性の向上を図ることができる。また、上記作動状態を表すデータの記憶装置に対するデータ転送をＤＭＡ転送にて行うことで、より演算装置の処理負荷を抑制でき、システムの性能の低下を抑制することができる。
【００８６】
また、上記情報処理システムでは、
上記他の機器に接続された接続機器であるPCI Express（Peripheral Component Interconnect Express）機器を備え、
上記スイッチ装置は、上記他の機器から上記PCI Express機器を介して上記処理要求データを受け付ける、
という構成を有する。
【００８７】
また、本発明の他の形態である情報処理システムは、
他の機器から送信された所定の処理要求に応じて処理を実行する作動中の演算装置及び待機中の演算装置と、当該各演算装置と上記他の機器との間におけるデータ転送を行うスイッチ装置と、当該スイッチ装置に接続され上記各演算装置とデータ転送可能な記憶装置と、を備え、
上記作動中の演算装置は、当該演算装置に対する上記他の機器からの処理要求データを上記記憶装置にデータ転送して格納する処理要求格納手段を備えると共に、
上記待機中の演算装置は、上記記憶装置に格納された上記処理要求データを当該記憶装置からデータ転送にて読み取る処理要求読取手段を備えた、
という構成を有する。
【００８８】
そして、上記情報処理システムでは、
上記各演算装置と上記記憶装置とは、ＤＭＡ（Direct Memory Access）転送にてデータ転送を行う、
という構成を有する。
【００８９】
また、本発明の他の形態であるプログラムは、
他の機器から送信された所定の処理要求に応じて処理を実行する複数の演算装置と、当該各演算装置と上記他の機器との間におけるデータ転送を行うスイッチ装置と、当該スイッチ装置に接続され上記各演算装置とデータ転送可能な記憶装置と、を備えた情報処理装置に読み込まれ、
少なくとも一の上記演算装置に、当該演算装置に対する上記他の機器からの処理要求データを上記記憶装置にデータ転送して格納する処理要求格納手段を実現させると共に、
少なくとも他の上記演算装置は、上記記憶装置に格納された上記処理要求データを当該記憶装置からデータ転送にて読み取る処理要求読取手段を実現させる、
ためのプログラムである。
【００９０】
そして、上記プログラムでは、
上記演算装置と上記記憶装置とが、ＤＭＡ（Direct Memory Access）転送にてデータ転送を行うよう制御する、
という構成を有する。
【００９１】
また、本発明の他の形態である情報処理方法は、
他の機器から送信された所定の処理要求に応じて処理を実行する複数の演算装置と、当該各演算装置と上記他の機器との間におけるデータ転送を行うスイッチ装置と、当該スイッチ装置に接続され上記各演算装置とデータ転送可能な記憶装置と、を備えた情報処理システムにて、
演算装置に対する上記他の機器からの処理要求データを上記記憶装置にデータ転送して格納し、
他の上記演算装置が、上記記憶装置に格納された上記処理要求データを当該記憶装置からデータ転送にて読み取る。
【００９２】
そして、上記情報処理方法では、
上記演算装置と上記記憶装置とは、ＤＭＡ（Direct Memory Access）転送にてデータ転送を行う、
という構成を有する。
【００９３】
上述した構成を有する、プログラム、又は、情報処理方法、の発明であっても、上記情報処理システムと同様の作用を有するために、上述した本発明の目的を達成することができる。
【００９４】
なお、上述した各実施形態で説明した本発明における情報処理システムは、一台のコンピュータにて構成されていてもよく、あるいは、複数台のコンピュータにて構成されていてもよい。
【００９５】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【００９６】
なお、本発明は、日本国にて２００８年１０月２９日に特許出願された特願２００８−２７８２７１の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
【産業上の利用可能性】
【００９７】
本発明は、複数のＣＰＵを備えた冗長構成の情報処理システムに適用でき、産業上の利用可能性を有する。
【符号の説明】
【００９８】
１０１１，１０１２  ＣＰＵ
１０５  マルチルートＰＣＩエクスプレスネットワークインターフェース
１０６  マルチルートＰＣＩエクスプレスメモリ
３０１  クライアント端末
４０１  マルチルートＰＣＩエクスプレススイッチ
７０  冗長サービスアプリケーション
７０１  サービス処理部
７０２  パケット送受信処理部
７０３  サービス同期処理部
７０５  冗長システム死活状態部
７０６  メモリドライバ
７０７  パケット送信時削除部
７０８  サービス処理冗長制御部
７０９  冗長システム死活監視部
９０  オペレーティングシステム
９０１  ＴＣＰ／ＩＰプロトコルスタック
９０２２  ネットワークドライバ
９０３  ＰＣＩＤＭＡ制御部
【図１】
0005516411.tif 000002
【図２】
0005516411.tif 000003
【図３】
0005516411.tif 000004
【図４】
0005516411.tif 000005
【図５】
0005516411.tif 000006
【図６】
0005516411.tif 000007
【図７Ａ】
0005516411.tif 000008
【図７Ｂ】
0005516411.tif 000009
【図７Ｃ】
0005516411.tif 000010
【図７Ｄ】
0005516411.tif 000011
【図８Ａ】
0005516411.tif 000012
【図８Ｂ】
0005516411.tif 000013
【図８Ｃ】
0005516411.tif 000014
【図８Ｄ】
0005516411.tif 000015
【図９】
0005516411.tif 000016
【図１０】
0005516411.tif 000017
【図１１】
0005516411.tif 000018
【図１２】
0005516411.tif 000019
【図１３】
0005516411.tif 000020
【図１４】
0005516411.tif 000021
【図１５】
0005516411.tif 000022
【図１６】
0005516411.tif 000023
【図１７】
0005516411.tif 000024
【図１８】
0005516411.tif 000025
【図１９】
0005516411.tif 000026