(57)【特許請求の範囲】
【請求項１】
複数のコアＩ／Ｏ部を有するシステム制御部とＢＭＣ（Ｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）とを有するコンピュータのコアＩ／Ｏフェールオーバー制御システムにおいて、
前記システム制御部は、前記コアＩ／Ｏ部を切り替えるコアＩ／Ｏ切替回路と、
前記コアＩ／Ｏ部の内容を一時的に記憶するメモリとを有し、
前記ＢＭＣは、前記コアＩ／Ｏ部が障害を検出した場合に障害情報を収集する障害検知部と、前記障害情報を基に前記コアＩ／Ｏ切替回路を制御するコアＩ／Ｏ制御部と、を有し、
前記システム制御部は、前記コアＩ／Ｏ部を切り替える際に前記コアＩ／Ｏ部の内容を一時的に前記メモリに退避させるコアＩ／Ｏ切替ドライバを有することを特徴とするコアＩ／Ｏフェールオーバー制御システム。
【請求項２】
複数のコアＩ／Ｏ部を有するシステム制御部とＢＭＣ（Ｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）とを有するコンピュータのコアＩ／Ｏフェールオーバー制御方法において、
前記ＢＭＣは、前記コアＩ／Ｏ部が検出した障害を検知するステップと、
前記システム制御部は、障害が発生したコアＩ／Ｏ部の内容を一時的にメモリへ待避させるステップと、
前記ＢＭＣは、前記障害が発生したコアＩ／Ｏ部から正常なコアＩ／Ｏ部に切り替えるステップと、
前記システム制御部は、前記メモリへ一時的に待避したコアＩ／Ｏ部の内容を、切り替えた前記正常なコアＩ／Ｏ部に復元させるステップと、
を有することを特徴とするコアＩ／Ｏフェールオーバー制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コアＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）フェールオーバー制御システムおよびコアＩ／Ｏフェールオーバー制御方法に関し、特にコアＩ／Ｏの信頼性向上のためにコアＩ／Ｏを二重化しているコンピュータサーバにおけるコアＩ／Ｏフェールオーバー制御システムおよびコアＩ／Ｏフェールオーバー制御方法に関する。
【背景技術】
【０００２】
コアＩ／Ｏを２つ搭載することで、コアＩ／Ｏの信頼性を向上させているコンピュータサーバ（以降、コアＩ／Ｏ二重化サーバと称す）がある。このうち、運用系コアＩ／Ｏにて軽障害が起きた際は、コンピュータサーバの運用を継続したまま、待機系コアＩ／Ｏを運用系に切り替える制御方法を採用している。現在のほとんどのコンピュータサーバは、コアＩ／Ｏを１つだけ具備しており（以降、コアＩ／Ｏ単一サーバと称す）、コアＩ／Ｏ二重化サーバは数少ない。そのため、ほとんどのＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）は、コアＩ／Ｏ二重化サーバを想定していない。このようなＯＳ対応状況下において、コアＩ／Ｏ二重化サーバでのコアＩ／Ｏフェールオーバーを実現するためには、サーバに非常に複雑かつ大規模なハードウェアを具備する必要があった。或いはアプリケーション性能を犠牲にしてシステムファームウェア層で実現しなければならない場合があった。なお、本明細書内で言う“フェールオーバー”とは、稼働中のシステムに障害が発生した場合、障害発生した箇所の機能を代替機能に引き継がせて処理を続行させることである。
【０００３】
コアＩ／Ｏ二重化サーバの関連技術として、例えば、特許文献１には、パーティションを再起動することなく使用するコアＩ／Ｏデバイスを切り替えるため、各プロセッサノードにおけるメモリ空間に、使用中コアＩ／Ｏ用空間と、予備コアＩ／Ｏ用空間とをマップするマップ部を備えているものがある。また、それは、使用コアＩ／Ｏデバイス変更指示に応じて、複数のプロセッサノードによる新規トランザクションの発行を抑止する抑止部と、抑止された後に、使用中コアＩ／Ｏデバイスに含まれるコピー元レジスタに格納されたデータを、予備コアＩ／Ｏデバイスに含まれるコピー先レジスタにコピーするコピー部とを備えている。そして、コピー完了後に、使用中コアＩ／Ｏデバイスに対するトランザクションが予備コアＩ／Ｏデバイスに転送されるようにルーティング設定を変更するルーティング設定変更部と、変更後に新規トランザクションの発行の抑止を解除する、解除部とを備える技術が開示されている。
【０００４】
また、特許文献２には、ハードウェア・レベルでＩ／Ｏデバイスの二重化を実現すると共に、マスターデバイスの動的縮退を可能とするため、トランザクションルーティングコントローラが、トランザクションを受信し、ルーティングし、送出する。そして、ルーティングテーブルは、Ｉ／Ｏデバイスの二重化が有効であることを示す有効情報とマスターデバイス識別情報とスレーブデバイス識別情報とを有し、サービスプロセッサは、トランザクションルーティングコントローラとルーティングテーブルとを制御する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１６８６５０号公報
【特許文献２】特開２００８−２２５５３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術では、システムファームウェアがコアＩ／Ｏデバイス切り替えの制御を司るので、コンピュータサーバ内の全てのプロセッサを一時停止させなければならないという課題があった。また、コアＩ／Ｏデバイス切り替え期間中、コンピュータサーバ上の全てのアプリケーションが一時停止してしまうという課題があった。また、使用コアＩ／Ｏデバイス内情報を予備コアＩ／Ｏデバイス内にコピーするために、予備コアＩ／Ｏアクセス制御回路というハードウェアが必要であるという課題があった。
【０００７】
特許文献２に記載の技術では、二重化されているＩ／Ｏデバイス内情報を常に同一にしておくために、メモリコントローラ内のトランザクションルーティングコントローラ及びルーティングテーブルが非常に複雑かつ大規模になってしまうという課題があった。
【０００８】
本発明の目的は、上述した課題を解決し、コンピュータサーバ内に複雑かつ大規模なハードウェアを具備することなく、コアＩ／Ｏ機能を利用していないアプリケーションを一時停止させることなくコアＩ／Ｏ機能のフェールオーバーを実現することである。
【課題を解決するための手段】
【０００９】
本発明は、上記課題を解決するために、複数のコアＩ／Ｏ部を有するシステム制御部とＢＭＣ（Ｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）とを有するコンピュータのコアＩ／Ｏフェールオーバー制御システムにおいて、前記システム制御部は、前記コアＩ／Ｏ部を切り替えるコアＩ／Ｏ切替回路と、前記コアＩ／Ｏ部の内容を一時的に記憶するメモリとを有し、前記ＢＭＣは、前記コアＩ／Ｏ部が障害を検出した場合に障害情報を収集する障害検知部と、前記障害情報を基に前記コアＩ／Ｏ切替回路を制御するコアＩ／Ｏ制御部と、を有し、前記システム制御部は、前記コアＩ／Ｏ部を切り替える際に前記コアＩ／Ｏ部の内容を一時的に前記メモリに退避させるコアＩ／Ｏ切替ドライバを有する。
【００１０】
本発明は、上記課題を解決するために、複数のコアＩ／Ｏ部を有するシステム制御部とＢＭＣ（Ｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）とを有するコンピュータのコアＩ／Ｏフェールオーバー制御方法において、前記ＢＭＣは、前記コアＩ／Ｏ部が検出した障害を検知するステップと、前記システム制御部は、障害が発生したコアＩ／Ｏ部の内容を一時的にメモリへ待避させるステップと、前記ＢＭＣは、前記障害が発生したコアＩ／Ｏ部から正常なコアＩ／Ｏ部に切り替えるステップと、前記システム制御部は、前記メモリへ一時的に待避したコアＩ／Ｏ部の内容を切り替えた前記正常なコアＩ／Ｏ部に復元させるステップと、を有する。
【発明の効果】
【００１１】
本発明によれば、コンピュータサーバ内に複雑かつ大規模なハードウェアを具備することなく、また、コアＩ／Ｏ機能を利用していないアプリケーションを一時停止させることなくコアＩ／Ｏ機能のフェールオーバーを実現することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態におけるコアＩ／Ｏフェールオーバー制御システムの構成を示すブロック図である。
【図２】本発明の実施形態におけるシステム制御部の構成を示すブロック図である。
【図３】本発明の実施形態におけるＢＭＣの構成を示すブロック図である。
【図４】本発明の実施形態におけるコアＩ／Ｏ制御部の構成を示すブロック図である。
【図５】本発明の実施形態におけるコアＩ／Ｏフェールオーバー制御システムの動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００１４】
（実施形態）
図１は、本発明の実施形態におけるコアＩ／Ｏフェールオーバー制御システムの構成を示すブロック図である。図１を用いて、本実施形態におけるコアＩ／Ｏフェールオーバー制御システムの構成について説明する。
【００１５】
図１において、コンピュータサーバ１００は、システム制御部１０１とＢＭＣ１０２を有している。
【００１６】
システム制御部１０１は、コンピュータサーバとして動作するために必要なハードウェア部品群であり、ＣＰＵ、メモリ、Ｉ／Ｏデバイス等を含んでいる。
【００１７】
ＢＭＣ（Ｂａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）１０２は、システム制御部１０１を管理・制御するコントローラであり、システム制御部１０１と３つのインターフェースＢＭＩ１５０、ＢＣＩ１５１及びＢＨＩ１５２を介して接続されている。
【００１８】
ＯＳ１０３は、システム制御部１０１上で動作するオペレーティングシステムであり、各種ドライバを起動或いは停止させる機能を有する。コアＩ／Ｏ切替ドライバ１０４とコアＩ／Ｏドライバ１０５は、ＯＳ１０３上で動作する。
【００１９】
コアＩ／Ｏ切替ドライバ１０４は、システム制御部１０１からの割り込みを契機にシステム制御部１０１上で動きだし、ＯＳ１０３を介してコアＩ／Ｏドライバ１０５を停止または起動させる。また、システム制御部１０１内の運用系コアＩ／Ｏの情報を待機系コアＩ／Ｏ内にコピーする。
【００２０】
図２は、本発明の実施形態におけるシステム制御部１０１の構成を示すブロック図である。図２を用いて、システム制御部１０１の構成について説明する。
【００２１】
ホストブリッジ２０６は、ＣＰＵ２００〜２０２、メモリ２０５、Ｉ／Ｏデバイスを接続するＩ／Ｏブリッジ２１０及びコアＩ／Ｏ切替回路２０９とインターフェース２５０〜２５２、２５５、２６０、２５９を持ち、これら部品間のデータ転送を司るものである。また、ＢＭＣ１０２とのインターフェースであるＢＨＩ１５２を有する。このＢＨＩ１５２は、例えば、『ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｂａｓｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ  ３．０』にて規定されているＰＣＩ  Ｅｘｐｒｅｓｓインターフェースである。
【００２２】
コアＩ／Ｏ部Ａ２０７及びコアＩ／Ｏ部Ｂ２０８は、コンピュータサーバのコアＩ／Ｏ機能を有する部品であり、双方とも全く同じ機能を提供する。コアＩ／Ｏ機能とは、コンピュータサーバとして稼働するために必須なＩ／Ｏ機能を有するものであり、コアＩ／Ｏ機能に含まれる機能の一例としては、ＣＭＯＳ／ＮｖＲＡＭ（Ｎｏｎ  ｖｏｌａｔｉｌｅ
Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリ、シリアルコントローラ、タイマ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）コントローラ、割り込みコントローラ等がある。
【００２３】
また、コアＩ／Ｏ部Ａ２０７及びコアＩ／Ｏ部Ｂ２０８は、ＢＭＣ１０２とのインターフェースであるＢＭＩ１５０を有する。ＢＭＣ１０２は、当該ＢＭＩ１５０を介して、コアＩ／Ｏ部Ａ２０７及びコアＩ／Ｏ部Ｂ２０８の障害を監視する。
【００２４】
コアＩ／Ｏ切替回路２０９は、ＢＭＣ１０２とのインターフェースであるＢＣＩ１５１を有し、ＢＣＩ１５１によりコアＩ／Ｏ部Ａ２０７とコアＩ／Ｏ部Ｂ２０８を切り替える部品である。コアＩ／Ｏ切替回路２０９は、インターフェース２５７、２５８を経由してコアＩ／Ｏ部Ａ２０７とコアＩ／Ｏ部Ｂ２０８に接続されている。コアＩ／Ｏ切替回路２０９にて選択された一方のコアＩ／Ｏ部Ａ２０７或いはＢ２０８が運用系となり、他方のコアＩ／Ｏ部Ｂ２０８或いはＡ２０７が待機系となる。
【００２５】
図３は、本実施形態に係るＢＭＣ１０２の構成を示すブロック図であり、図４は、本実施形態に係るコアＩ／Ｏ制御部３００の構成を示すブロック図である。図３、図４を用いて、ＢＭＣ１０２の詳細な構成について説明する。
【００２６】
図３において、ＢＭＣ１０２は、コアＩ／Ｏ制御部３００を有し、障害予兆検知部３０１を有している。コアＩ／Ｏ制御部３００は、コアＩ／Ｏ切り替えに伴う各種割り込みを挙げる機能を有する。また、ＢＨＩ１５２とホストブリッジ２０６を通して、ＢＭＣ１０２とコアＩ／Ｏ切替ドライバ１０４とが通信できる機能を有している。当該コアＩ／Ｏ制御部３００の例としては、『ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｂａｓｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ  ３．０』にて規定されているＰＣＩ  Ｅｘｐｒｅｓｓ  Ｅｎｄｐｏｉｎｔに準拠した構成が考えられる。
【００２７】
障害予兆検知部３０１は、コアＩ／Ｏ部Ａ２０７及びコアＩ／Ｏ部Ｂ２０８の障害を監視・検知する機構である。ここで、コアＩ／Ｏ部Ａ２０７或いはコアＩ／Ｏ部Ｂ２０８は、自身の障害を検知すると、ＢＭＩ１５０を介してＢＭＣ１０２の障害予兆検知部３０１に障害検知を通知する。また、コアＩ／Ｏ部Ａ２０７或いはコアＩ／Ｏ部Ｂ２０８は、自身の障害を検知すると、自身が持つステータスフラグをセットする。そのためＢＭＣ１０２の障害予兆検知部３０１は、ＢＭＩ１５０を介して定期的にそのセットされたステータスフラグを読みこめば、障害有無を検知することができる。
【００２８】
コアＩ／Ｏ制御部３００と障害予兆検知部３０１は、共にＢＭＣ１０２内のコントローラ（図示せず）で制御されるため、ＢＭＣ１０２の内部に設置されているが、制御が可能であれば、他の場所にあってもよい。
【００２９】
図４は、本実施形態のコアＩ／Ｏ制御部３００の構成である。ドライバ停止指示フラグレジスタ４０１、ドライバ起動指示フラグレジスタ４０２、ドライバ停止完了フラグレジスタ４０３及びドライバ起動完了フラグレジスタ４０４は、ＢＭＣ１０２及びＢＨＩ１５２の両方からアクセス可能である。
【００３０】
割り込み制御部４００は、ドライバ停止指示フラグレジスタ４０１のフラグがセットされると、ドライバ停止割り込みをＢＨＩ１５２に送信する。また、ドライバ起動指示フラグレジスタ４０２のフラグがセットされると、ドライバ起動割り込みをＢＨＩ１５２に送信する。当該割り込み制御部４００の例としては、『ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｂａｓｅ
Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ  ３．０』にて規定されているＭＳＩ
ａｎｄ  ＭＳＩ−Ｘ  Ｃａｐａｂｉｌｉｔｙ  Ｓｔｒｕｃｔｕｒｅｓに準拠した構成が考えられる。
【００３１】
図１、図２、図３、図４及び図５を用いて、本実施形態におけるコアＩ／Ｏフェールオーバー制御システムの動作について説明する。
【００３２】
図５は、本実施形態におけるコアＩ／Ｏフェールオーバー制御システムの動作を説明するためのフローチャートである。
【００３３】
図５において、まず、ＢＭＣ１０２が、運用系コアＩ／Ｏ機能の軽障害を検知する（Ｓ１０１）。すなわち、コアＩ／Ｏ部Ａ２０７を運用系として稼働しているコンピュータサーバ１００において、ＢＭＣ１０２内の障害予兆検知部３０１は、ＢＭＩ１５０を介して運用系コアＩ／Ｏ部Ａ２０７の軽障害を検知する。本実施形態では、システム運用の継続が可能でかつ復旧が可能な障害を軽障害としている。軽障害の例としては、訂正可能障害の頻発がある。
【００３４】
次に、ＢＭＣ１０２は、コアＩ／Ｏドライバ停止指示を行う（Ｓ１０２）。ＢＭＣ１０２は、障害予兆検知部３０１を介して運用系コアＩ／Ｏ部Ａ２０７の軽障害を認知すると、コアＩ／Ｏ制御部３００内のドライバ停止指示フラグレジスタ４０１のフラグをセットする。コアＩ／Ｏ制御部３００では、ドライバ停止指示フラグレジスタ４０１のフラグがセットされると、割り込み制御部４００に伝えられ、割り込み制御部４００からドライバ停止割り込みがＢＨＩ１５２に送信される。ＢＨＩ１５２に送信されたドライバ停止割り込みは、システム制御部１０１内のホストブリッジ２０６を介して、ＣＰＵｘ２００、ＣＰＵｙ２０１或いはＣＰＵｚ２０２に送られる。ここでは、ＣＰＵｘ２００にドライバ停止割り込みが送られたとする。ドライバ停止割り込みを受信したＣＰＵｘ２００上では、ＯＳ１０３がドライバ停止割り込みを認知し、当該割り込みに対応付けされているコアＩ／Ｏ切替ドライバ１０４を起動する。
【００３５】
次に、コアＩ／Ｏ切替ドライバ１０４が、コアＩ／Ｏドライバ１０５を停止させる（Ｓ１０３）。ＯＳ１０３により起動されたコアＩ／Ｏ切替ドライバ１０４は、割り込み要因を認知するために、システム制御部１０１内のホストブリッジ２０６を介して、ＢＭＣ１０２内に在るコアＩ／Ｏ制御部３００内のドライバ停止指示フラグレジスタ４０１及びドライバ起動指示フラグレジスタ４０２を読む。このタイミングでは、ドライバ停止指示フラグレジスタ４０１のフラグがセットされているので、コアＩ／Ｏ切替ドライバ１０４は、まず、ドライバ停止指示フラグレジスタ４０１のフラグをクリアする。そして、ＯＳ１０３を介してコアＩ／Ｏドライバ１０５を停止させる。これにより、運用系コアＩ／Ｏ部Ａ２０７へのアクセスが停止する。
【００３６】
そして、コアＩ／Ｏ切替ドライバ１０４は、コアＩ／Ｏ機能内情報を退避させる（Ｓ１０４）。すなわち、コアＩ／Ｏ切替ドライバ１０４は、システム制御部１０１内のホストブリッジ２０６を介して、運用系コアＩ／Ｏ部Ａ２０７内の情報をメモリ２０５に一時退避させる。その後、コアＩ／Ｏ切替ドライバ１０４は、ドライバ停止完了フラグレジスタ４０３のフラグをセットする。
【００３７】
次に、ＢＭＣが、運用系コアＩ／Ｏ機能を切り替える（Ｓ１０５）。ＢＭＣ１０２は、コアＩ／Ｏ制御部３００内のドライバ停止完了フラグレジスタ４０３のフラグがセットされたことを検知すると、まず、ドライバ停止完了フラグレジスタ４０３のフラグをクリアする。そして、ＢＣＩ１５１を介してコアＩ／Ｏ切替回路２０９に対し、コアＩ／Ｏ部Ｂ２０８を選択するように指示する。これにより、コアＩ／Ｏ部Ｂ２０８が運用系に切り替わる。
【００３８】
そして、ＢＭＣ１０２は、コアＩ／Ｏドライバ１０５に対して再起動の指示を行う（Ｓ１０６）。すなわち、ＢＭＣ１０２は、コアＩ／Ｏ部Ｂ２０８を運用系に切り替えた後、コアＩ／Ｏ制御部３００内のドライバ起動指示フラグレジスタ４０２のフラグをセットする。コアＩ／Ｏ制御部３００では、ドライバ起動指示フラグレジスタ４０２のフラグがセットされると、割り込み制御部４００に伝えられ、割り込み制御部４００からドライバ起動割り込みがＢＨＩ１５２に送信される。ＢＨＩ１５２に送信されたドライバ起動割り込みは、システム制御部１０１内のホストブリッジ２０６を介して、ＣＰＵｘ２００、ＣＰＵｙ２０１或いはＣＰＵｚ２０２に送られる。ここでは、ＣＰＵｘ２００にドライバ起動割り込みが送られたとする。ドライバ起動割り込みを受信したＣＰＵｘ２００上では、ＯＳ１０３がドライバ起動割り込みを認知し、当該割り込みに対応付けされているコアＩ／Ｏ切替ドライバ１０４を起動する。
【００３９】
コアＩ／Ｏ切替ドライバ１０４は、コアＩ／Ｏ機能内情報を復元する（Ｓ１０７）。ＯＳ１０３により起動されたコアＩ／Ｏ切替ドライバ１０４は、割り込み要因を認知するために、システム制御部１０１内のホストブリッジ２０６を介して、ＢＭＣ１０２内に在るコアＩ／Ｏ制御部３００内のドライバ停止指示フラグレジスタ４０１及びドライバ起動指示フラグレジスタ４０２のフラグを読む。このタイミングでは、ドライバ起動指示フラグレジスタ４０２のフラグがセットされているので、コアＩ／Ｏ切替ドライバ１０４は、まず、ドライバ起動指示フラグレジスタ４０２のフラグをクリアする。そして、システム制御部１０１内のホストブリッジ２０６を介して、上記（Ｓ１０４）にて、メモリ２０５に一時退避しておいたコアＩ／Ｏ機能内情報を新たな運用系コアＩ／Ｏ部Ｂ２０８に書き込む。これにより、Ｉ／Ｏ機能フェールオーバー前後のＩ／Ｏ機能内情報は同一になる。
【００４０】
そして、コアＩ／Ｏ切替ドライバ１０４が、コアＩ／Ｏドライバ１０５を再起動させる（Ｓ１０８）。コアＩ／Ｏ切替ドライバ１０４は、ＯＳ１０３を介してコアＩ／Ｏドライバ１０５を再起動させる。これにより、新たな運用系コアＩ／Ｏ部Ｂ２０８へのアクセスが開始される。その後、コアＩ／Ｏ切替ドライバ１０４は、ドライバ起動完了フラグレジスタ４０４のフラグをセットする。
【００４１】
最後に、ＢＭＣ１０２は、コアＩ／Ｏドライバ１０５の再起動を確認する（Ｓ１０９）。ＢＭＣ１０２は、コアＩ／Ｏ制御部３００内のドライバ起動完了フラグレジスタ４０４のフラグがセットされたことを検知すると、ドライバ起動完了フラグレジスタ４０４のフラグをクリアし、一連のコアＩ／Ｏ機能フェールオーバー処理を終了する。
【００４２】
本発明の実施形態によれば、ＢＭＣ１０２が中心となって、予兆障害発生を契機に、コアＩ／Ｏ切替ドライバ１０４がコアＩ／Ｏドライバ１０５の停止・再起動を制御する。コアＩ／Ｏドライバ１０５が停止すれば、コアＩ／Ｏ機能へのアクセスは無くなるので、コアＩ／Ｏ機能を利用していないアプリケーションは、フェールオーバーの影響を受けることはない。また、ＣＰＵ等のハードウェアが、コアＩ／Ｏ機能へのアクセスを一時停止させてコアＩ／Ｏ機能のフェールオーバーを行おうとすると、ＣＰＵを使用している他のソフトウェアも停止してしまう。しかし本実施形態によれば、ＣＰＵを使用している他のソフトウェアへの影響はなくなる。
【００４３】
以上、述べてきたように、本実施形態によれば、コンピュータサーバ内に複雑かつ大規模なハードウェアを具備することなく、システム制御部内にコアＩ／Ｏ切替回路とＢＭＣ内にコアＩ／Ｏ制御部を追加すればいいだけで、これらは簡単な回路で規模も小さいので、コアＩ／Ｏ機能を利用していないアプリケーションを一時停止させることなくコアＩ／Ｏ機能のフェールオーバーを実現することが可能である。
【００４４】
尚、本願発明は、上述の実施形態に限定されるものではなく、本願発明の要旨を逸脱しない範囲で種々変更、変形して実施することが出来る。
【産業上の利用可能性】
【００４５】
本発明は、コアＩ／Ｏの信頼性向上のためにコアＩ／Ｏを二重化している情報機器に利用可能である。
【符号の説明】
【００４６】
１００    コンピュータサーバ
１０１    システム制御部
１０２    ＢＭＣ
１０３    ＯＳ
１０４    コアＩ／Ｏ切替ドライバ
１０５    コアＩ／Ｏドライバ
１５０    ＢＭＩ
１５１    ＢＣＩ
１５２    ＢＨＩ
２００    ＣＰＵｘ
２０１    ＣＰＵｙ
２０２    ＣＰＵｚ
２０５    メモリ
２０６    ホストブリッジ
２０７    コアＩ／Ｏ部Ａ
２０８    コアＩ／Ｏ部Ｂ
２０９    コアＩ／Ｏ切替回路
２１０    Ｉ／Ｏブリッジ
２５０    インターフェース
２５１    インターフェース
２５２    インターフェース
２５５    インターフェース
２５７〜２６０    インターフェース
３００    コアＩ／Ｏ制御部
３０１    障害予兆検知部
４００    割り込み制御部
４０１    ドライバ停止指示フラグレジスタ
４０２    ドライバ起動指示フラグレジスタ
４０３    ドライバ停止完了フラグレジスタ
４０４    ドライバ起動完了フラグレジスタ
【図１】
0006449671.tif 000002
【図２】
0006449671.tif 000003
【図３】
0006449671.tif 000004
【図４】
0006449671.tif 000005
【図５】
0006449671.tif 000006