(57)【特許請求の範囲】
【請求項１】
制御部と、
前記制御部に接続された第１の入出力ポートと、計算機システムのブートに必要な設定情報を記憶可能な第１の記憶部と、を有し、前記制御部に接続される現用の入出力コントローラと、
計算機システムのブートに必要な設定情報を記憶可能な第２の記憶部を有し、前記制御部に接続される予備の入出力コントローラと、
前記第１の入出力ポートと前記予備の入出力コントローラとを接続する第１の接続装置と、を備え、
前記第１の入出力ポートと前記第１の接続装置とを介して、前記第１の記憶部の前記設定情報と前記第２の記憶部の前記設定情報とが予め設定された任意のタイミングで同期できるようにＰＣＩｅインタフェースで構成される計算機システム。
【請求項２】
前記計算機システムは、
前記制御部及び前記予備の入出力コントローラに接続された第２の入出力ポートと、
前記第２の入出力ポートと前記現用の入出力コントローラとを接続する第２の接続装置と、をさらに備え、
前記第２の入出力ポートと前記第２の接続装置とを介して、前記第２の記憶部の前記設定情報と前記第１の記憶部の前記設定情報とが同期できるように構成される請求項１に記載の計算機システム。
【請求項３】
前記計算機システムは、前記制御部に接続された第１のノースブリッジ及び第２のノースブリッジをさらに備え、
前記現用の入出力コントローラは、前記第１のノースブリッジを介して前記制御部に接続される第１のサウスブリッジであり、前記予備の入出力コントローラは、前記第２のノースブリッジを介して前記制御部に接続される第２のサウスブリッジである、
請求項２に記載の計算機システム。
【請求項４】
少なくとも、前記第１の接続装置が前記制御部と前記予備の入出力コントローラの間に接続されているか、前記第２の接続装置が前記制御部と前記現用の入出力コントローラの間に接続されている、
請求項３に記載の計算機システム。
【請求項５】
少なくとも、前記第１の入出力ポートが前記現用の入出力コントローラに設けられているか、前記第２の入出力ポートが前記予備の入出力コントローラに設けられている、
請求項３又は４に記載の計算機システム。
【請求項６】
前記第１の接続装置は、前記第１の入出力ポートからの出力信号の通信プロトコルを変換して、変換後の当該出力信号を前記予備の入出力コントローラに出力する、
請求項１ないし５のいずれか一項に記載の計算機システム。
【請求項７】
前記第１の接続装置は、前記制御部から前記第１の入出力ポートを介してアクセスがあった場合に、アクセス先のアドレスを、前記第１の接続装置に割り当てられたアドレスから、前記第２の記憶部に割り当てられたアドレスに変換することによって当該アクセスを前記第２の記憶部に転送する、
請求項１ないし６のいずれか一項に記載の計算機システム。
【請求項８】
前記第１の接続装置は、
前記制御部から出力された書き込みアクセスが、前記第１の記憶部に対するものであるか否かを判断するアクセス判断部と、
前記書き込みアクセスが前記第１の記憶部に対するものである場合に、割り込み処理を実行することにより、前記制御部に対し、前記第２の記憶部に対して前記書き込みアクセスにかかるデータを書き込ませる割り込み機能部と、
を有する、請求項１ないし７のいずれか一項に記載の計算機システム。
【請求項９】
前記計算機システムは、
前記予備の入出力コントローラが前記第１の入出力ポートを介して前記制御部に接続するように前記第１の接続装置を制御する接続コントローラをさらに備える、
請求項１ないし８のいずれか一項に記載の計算機システム。
【請求項１０】
請求項１ないし９のいずれか一項に記載の計算機システムの制御方法であって、
前記第１の入出力ポートと前記第１の接続装置とを介して、前記第１の記憶部と前記第２の記憶部とを接続するステップと、
前記第１の記憶部の前記設定情報と前記第２の記憶部の前記設定情報とを予め設定された任意のタイミングで同期するステップと、
を備えるＰＣＩｅインタフェースで構成される計算機システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算機システム及び計算機システムの制御方法に関する。
【背景技術】
【０００２】
コンピュータのコアＩ／Ｏは、割り込みコントローラやタイマといった重要な機能（以下、システム・コア機能と記載）を有する。そのため、コアＩ／Ｏに障害が発生した場合には、コンピュータのシステムが起動できなくなってしまう。コアＩ／Ｏに障害が発生したときに、コアＩ／Ｏを新しいものに交換する際には、障害前と同じ状態でブートするために、システムブートに必要な情報が記憶されているメモリ（以下、システム・コア記憶領域とも記載）の写しが必要となる。このメモリは、ＮＶＲＡＭ（Non Volatile Random Access Memory）、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）メモリなどである。しかし、交換の際に、予めバックアップした障害前のコアＩ／Ｏのメモリの情報を保守作業者が写すという作業が必要となるため、復旧に時間が掛かってしまうという問題があった。
【０００３】
以上の問題を解決するために、特許文献１において、コアＩ／Ｏを二重化して障害が発生した際に予備のコアＩ／Ｏに切り替えるシステムが記載されている。特許文献１の実施例１においては、最も優先度の高いプライマリ・コアＩ／Ｏカードにおいて障害が発生してシステムをリブートする際に、２番目に優先度の高いセカンダリ・コアＩ／Ｏをシステムに組み込む。そして、ＦＴＰ（File Transfer Protocol）サーバに予め保存したプライマリ・コアＩ／ＯカードのＮＶＲＡＭのデータ内容をセカンダリ・コアＩ／ＯのＮＶＲＡＭに書き込む。これにより、セカンダリ・コアＩ／Ｏのデータは、プライマリ・コアＩ／Ｏの最新のデータに同期される。その後、システムはリブートして再起動シーケンスを実行する。
【０００４】
特許文献１の実施例２においては、ＯＳ（Operating System）をブートする前に、サービスプロセッサがプライマリ・コアＩ／ＯカードのＮＶＲＡＭのデータ内容をセカンダリ・コアＩ／ＯのＮＶＲＡＭに書き込む。これにより、セカンダリ・コアＩ／Ｏのデータは、プライマリ・コアＩ／ＯのＯＳブート時における最新のデータに同期される。なお、異なる記憶部に対して、それぞれ異なるアドレスが割り当てられている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２６６９４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１においては、以下のような課題があった。特許文献１の実施例１においては、データ同期ができる期間が、プライマリ・コアＩ／Ｏカードに障害が発生してセカンダリ・コアＩ／Ｏに切り替える際に限られている。それにより、セカンダリ・コアＩ／Ｏに保存した情報をシステムに反映させるため、切り替えた後にリブートが必要となる。このため、システム運用までに時間が掛かってしまう。
【０００７】
特許文献１の実施例２においても、データ同期ができる期間はＯＳのブート前のタイミングのみに限られてしまう。そのため、プライマリ・コアＩ／Ｏカードにおいて障害が発生した場合に、セカンダリ・コアＩ／Ｏのデータは、その時点でのプライマリ・コアＩ／Ｏの最新のデータに同期されているとは限らない。
【０００８】
本発明は、このような問題点を解決するためになされたものであり、予備コアＩ／Ｏのデータを現用コアＩ／Ｏの最新のデータに同期可能であって運用再開が容易な計算機システム及び計算機システムの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明にかかる計算機システムは、制御部と、前記制御部に接続された第１の入出力ポートと、計算機システムのブートに必要な設定情報を記憶可能な第１の記憶部を有し、前記制御部に接続される現用の入出力コントローラと、計算機システムのブートに必要な設定情報を記憶可能な第２の記憶部を有し、前記制御部に接続される予備の入出力コントローラと、前記第１の入出力ポートと前記予備の入出力コントローラとを接続する第１の接続装置と、を備え、前記第１の入出力ポートと前記第１の接続装置とを介して、前記第１の記憶部の前記設定情報と前記第２の記憶部の前記設定情報とが同期できるように構成される計算機システム。
【発明の効果】
【００１０】
本発明により、予備コアＩ／Ｏのデータを現用コアＩ／Ｏの最新のデータに同期可能であって運用再開が容易な計算機システム及び計算機システムの制御方法を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかる計算機システムの構成例を示すブロック図である。
【図２】実施の形態１にかかるＢＩＯＳによる初期化処理の一例を示すフローチャートである。
【図３】実施の形態２にかかる計算機システムの構成例を示すブロック図である。
【図４】実施の形態２にかかるＢＭＣによる初期化処理の一例を示すフローチャートである。
【図５】実施の形態２にかかる計算機システムのＢＩＯＳから見た接続関係を示すブロック図である。
【図６】実施の形態２にかかるＢＩＯＳによる初期化処理の一例を示すフローチャートである。
【図７】実施の形態３にかかる計算機システムの構成例を示すブロック図である。
【図８】実施の形態３にかかる計算機システムのＢＩＯＳから見た接続関係を示すブロック図である。
【図９】実施の形態３にかかるＢＩＯＳによる初期化処理の一例を示すフローチャートである。
【図１０】実施の形態３にかかるアドレス検出機能部の監視処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
実施の形態１
以下、図面を参照して本発明の実施の形態１について説明する。図１は、実施の形態１にかかる計算機システムの構成例を示すブロック図である。計算機システム１０は、制御部１１、現用ＩＣ（Integrated Circuit）１２、予備ＩＣ１３及び第１の接続装置１４を備える。計算機システム１０は、例えばメインフレーム、サーバ等のコンピュータである。
【００１３】
制御部１１は、計算機システム１０を制御する処理装置であり、例えば１又は複数のＣＰＵ（Central Processing Unit）から構成される。制御部１１は、システムブートの際に計算機システム１０のＢＩＯＳ(Basic Input Output Software)を実行してハードウエアの初期化を行い、その後ＯＳを実行する。制御部１１は、ＯＳ実行中もＳＭＩ（System Management Interrupt）によってＢＩＯＳのシステムマネージメント機能を実行することができる。
【００１４】
現用ＩＣ１２は、前述のシステム・コア機能を有する集積回路（第１の入出力コントローラ）である。現用ＩＣ１２は、制御部１１に接続されており、計算機システム１０において、コアＩ／Ｏとして現に用いられているＩＣである。現用ＩＣ１２は、第１の入出力ポート１５及び第１の記憶部１６を有する。第１の入出力ポート１５はハードウェアであり、ＰＣＩｅ(PCI express)、Ｅｔｈｅｒｎｅｔ（登録商標）、ＳＡＴＡ(Serial Advanced Technology Attachment)等のインタフェースである。
【００１５】
第１の記憶部１６は、計算機システム１０において、計算機システムのブートに必要な設定情報を記憶可能なメモリである。具体的には、制御部１１の設定情報（例えばＣＰＵのクロック数の指定）、メモリやブートの際のドライブの検索順番の設定といった、ブートの際にＢＩＯＳによって設定される計算機システム１０のハードウエアの設定情報を、第１の記憶部１６は記憶する。
【００１６】
この設定情報に異常が生じてしまい、第２の記憶部１７に記憶された設定情報によって計算機システム１０をブートする場合に、第１の記憶部１６の設定情報と第２の記憶部１７の設定情報とが同一でないと、計算機システム１０はユーザが意図しないモードによって動作してしまうほか、ブートができない状態になる可能性もある。このため、第１の記憶部１６の設定情報と第２の記憶部１７の設定情報とが同一であることが求められる。
【００１７】
そのほか、第１の記憶部１６は、Ｅｔｈｅｒｎｅｔ（登録商標）ＡｄｄｒｅｓｓやＨｏｓｔ  ＩＤといった現用ＩＣ１２に接続される周辺機器の設定に関する情報、その周辺機器を制御するプログラム群、ネットワークインターフェースに関する情報等を記憶してもよい。第１の記憶部１６は、ＮＶＲＡＭ等の不揮発性メモリ又はＣＭＯＳメモリである。さらに、第１の記憶部１６は、ブートローダを記憶してもよい。なお、第１の記憶部１６は、現用ＩＣ１２に全体が搭載されていなくともよく、現用ＩＣ１２に接続されるような構成で、現用ＩＣ１２に取り付けられていてもよい。
【００１８】
予備ＩＣ１３は、前述のシステム・コア機能を有する集積回路（第２の入出力コントローラ）である。予備ＩＣ１３は、制御部１１に接続されており、計算機システム１０において、予備のコアＩ／Ｏとして設けられているＩＣである。このように、計算機システム１０は、現用ＩＣ１２と予備ＩＣ１３とによって、コアＩ／Ｏが二重化されている。
【００１９】
予備ＩＣ１３は、第２の記憶部１７を有する。第２の記憶部１７の構成は第２の記憶部１６と同様であるため説明を省略する。なお、予備ＩＣ１３は、第１の入出力ポート１５と同様の入出力ポートを備えてもよい。
【００２０】
第１の接続装置１４は、予備ＩＣ１３の入出力デバイスであり、第１の入出力ポート１５と予備ＩＣ１３（第２の記憶部１７）とを接続する。
【００２１】
次に、計算機システム１０がブートする際に、制御部１１がＢＩＯＳを実行することによって行う処理について説明する。図２は、計算機システム１０のＢＩＯＳによる初期化処理の一例を示すフローチャートである。
【００２２】
ブートの際に、制御部１１はＢＩＯＳによって制御部１１及び現用ＩＣ１２の初期化を実行する（ステップＳ１）。現用ＩＣ１２の初期化では、マスタコアＩ／Ｏ機能の初期化も実行する。以上の初期化により、現用ＩＣ１２内の第１の入出力ポート１５に、制御部１１がアクセス（書き込み又は読み出し）するためのアドレスが割り当てられる。なお、アドレスは、Ｍｅｍｏｒｙ  ｍａｐｐｅｄ  Ｉ／Ｏアドレス、ＭＭＣＦＧアドレス、Ｉ／Ｏ  ｍａｐｐｅｄ  Ｉ／Ｏアドレス等である。
【００２３】
次に、制御部１１は入出力デバイスの初期化を実行する（ステップＳ２）。ここで制御部１１は、第１の接続装置１４を入出力デバイスと認識して初期化を実行する。これは、第１の入出力ポート１５にアドレスが割り当てられた第１の接続装置１４が接続されているため、制御部１１が入出力デバイスとして第１の接続装置１４を認識可能だからである。このとき、第１の接続装置１４にアドレスが割り当てられるため、制御部１１は第１の入出力ポート１５を介して第１の接続装置１４にアクセスすることができる。
【００２４】
次に制御部１１は、予備ＩＣ１３の初期化を実行する(ステップＳ３)。予備ＩＣ１３に接続されている第１の接続装置１４には、ステップＳ２においてアドレスが割り当てられている。そのため、制御部１１は、そのアドレスに基づき、第１の接続装置１４を介して予備ＩＣ１３にアクセスすることができるため、予備ＩＣ１３を初期化することができる。これにより、制御部１１は、第１の入出力ポート１５、第１の接続装置１４を介して、予備ＩＣ１３内の第２の記憶部１７にアクセスすることができる。
【００２５】
以上より、制御部１１がＢＩＯＳに基づいて実行する初期化の処理が終了した。ステップＳ１〜Ｓ２により、第１の入出力ポート１５の配下に第１の接続装置１４が配置されるため、ステップＳ３において現用ＩＣ１２配下に予備ＩＣ１３が配置されることが可能になった。つまり、制御部１１は、予備ＩＣ１３をコントロール配下に置くことができる。
これにより、制御部１１は、例えばＯＳの起動前やシャットダウン、ＢＩＯＳのシステムマネージメント機能の実行中など、ＢＩＯＳが実行される任意のタイミングで、第１の入出力ポート１５と第１の接続装置１４とを介して、第２の記憶部１７に書き込みを実行することができる。つまり、第１の記憶部１６と第２の記憶部１７とが接続されることにより、制御部１１は第２の記憶部１７にアクセスし、第２の記憶部１７の設定情報を第１の記憶部１６の最新の設定情報に同期することができる。
【００２６】
特許文献１の実施例１においては、セカンダリ・コアＩ／Ｏに切り替えた後に同期をしているため、リブートが必要であり、システム運用までに時間が掛かってしまった。さらに、データをバックアップするためにＦＴＰサーバを設ける必要があることや、通信プロトコルスタックを含める必要があるためにファームウエアのサイズが増大する問題があった。実施例２においても、やはりデータを同期する期間が限られてしまい、データの内容を完全に同期することができないという問題があった。
【００２７】
実施の形態１にかかる計算機システム１０は、この問題点を改善したシステムをユーザに提供するものである。制御部１１は、ＢＩＯＳが実行される任意のタイミングで、第１の記憶部１６のデータを第２の記憶部１７にコピーすることができる。そのため、計算機システム１０は、予備コアＩ／Ｏのデータを最新のメインコアＩ／Ｏのデータに同期可能である。それに伴い、マスタコアＩ／Ｏに異常が発生して予備コアＩ／Ｏに切り替えた際に、すぐに予備コアＩ／Ｏが使用できる状態になる。このため、システム運用までに掛かる時間を軽減され、運用再開が容易となる。
【００２８】
そして、特許文献１の実施例２においては、異なる記憶部に対してそれぞれ異なるアドレスを割り当てるようにしている。言いかえれば、異なるアドレスが割り当てられる専用ハードウエアのコアＩ／Ｏが用いられている。しかし、近年オープン化が発展しており、コンピュータシステムは汎用ハードウエア、汎用ＯＳにより構築されるようになっている。そのようなシステムではシステム・コア機能にかかるハードウエアのアドレスは固定されていて、コアＩ／Ｏの二重化を意識して設計されてはいないために、記憶領域の同期が難しくなっている。
【００２９】
例えば、図１において、現用ＩＣ１２と予備ＩＣ１３とが汎用のハードウエアで構成されている場合には、第１の記憶部１６と第２の記憶部１７とのアドレスが同じアドレスに固定されていて、変更できない可能性がある。そのような場合において、第１の接続装置１４がない場合には、制御部１１は第１の記憶部１６と第２の記憶部１７とに同時にアクセスすることができないため、第１の記憶部１６と第２の記憶部１７とのデータの同期が困難であった。
【００３０】
しかし、実施の形態１にかかる計算機システム１０は、汎用ハードウエア、汎用ＯＳを使用したシステム（例えば現用ＩＣ１２と予備ＩＣ１３とが汎用のハードウエアで構成されているシステム）においても適用が可能である。第１の記憶部１６と第２の記憶部１７とのアドレスが同じであり、固定されている場合でも、制御部は第１の記憶部１６にアクセスするとともに、第１の入出力ポート１５及び第１の接続装置１４を介して予備ＩＣ１３内の第２の記憶部１７にアクセスすることができるからである。
【００３１】
なお、現用ＩＣ１２と予備ＩＣ１３との間に第１の接続装置１４が接続されている構成を図示したが、第１の接続装置１４の接続関係はこの通りに限られない。例えば、現用ＩＣ１２と予備ＩＣ１３のそれぞれに、第１の接続装置１４と同じ構成の接続装置が接続されていてもよい。
【００３２】
実施の形態１においては、制御部１１が第１の記憶部１６を参照して、第２の記憶部１７に第１の記憶部１６の設定情報を書き込む処理を説明した。しかし、制御部１１が第２の記憶部１７に直接書き込みを実行しなくとも、現用ＩＣ１２が制御部１１の指示に応じて、第２の記憶部１７に書き込みを実行し、第２の記憶部１７の設定情報を第１の記憶部１６の設定情報に同期してもよい。
【００３３】
さらに、実施の形態１ではＢＩＯＳによる計算機システム１０の制御を説明したが、制御の方法はこの方法でなくとも限らない。例えば、計算機システム１０の起動中に、制御部１１が所定の間隔で第１の記憶部１６の設定情報と第２の記憶部１７の設定情報とを同期するように、計算機システム１０がプログラムされていてもよい。制御部１１は、計算機システム１０内にあるプログラムを実行することにより、その処理を実行する。あるいは、ユーザが第１の記憶部１６の設定情報を変更した場合に、制御部１１がその変更を検出し、その設定情報の変更をトリガとして同期処理を実行してもよい。ただし、計算機システム１０がＢＩＯＳによって制御されることにより、計算機システム１０に他のプログラムを導入しないで済むという利点がある。
【００３４】
あるいは、現用ＩＣ１２、又は現用ＩＣ１２及び予備ＩＣ１３が、第１の入出力ポート１５と第１の接続装置１４とを介して第２の記憶部１７に書き込みを実行することによって、第１の記憶部１６の設定情報と第２の記憶部１７の設定情報とを同期してもよい。ここで、現用ＩＣ１２、又は現用ＩＣ１２及び予備ＩＣ１３は、処理装置及びプログラムを内蔵したメモリを有しており、処理装置がそのプログラムを実行することによって、同期を実行する。同期するタイミングについては、計算機システム１０の起動中の所定の間隔でもよいし、ユーザが第１の記憶部１６の設定情報を変更したときでもよい。
【００３５】
さらに、第１の入出力ポート１５は、現用ＩＣ１２に備えられている必要はなく、現用ＩＣ１２とは別の、制御部１１と接続されたコアＩ／Ｏ機能を有するＩＣに備えられていてもよい。図２のステップＳ１において、当該ＩＣの初期化が実行されることにより第１の入出力ポート１５に制御部１１のアクセスのためのアドレスが割り当てられるのであれば、第１の接続装置１４にはステップＳ２によってアドレスが割り当てられる。それにより、前述と同様に、予備ＩＣ１３をＢＩＯＳのコントロール配下におくことが可能になる。
【００３６】
実施の形態２
以下、図面を参照して本発明の実施の形態２について説明する。図３は、実施の形態２にかかる計算機システムの構成例を示すブロック図である。計算機システム２０は、ＣＰＵ２１、２２、ＮＢ（North Bridge）２３、２４、プロトコル変換装置２５、２６、ＳＢ（South Bridge）２７、２８及びＢＭＣ（Baseboard Management Controller）３７を備える。なお、プロトコル変換装置２６は図１における第１の接続装置１４に、ＳＢ２７、２８はそれぞれ図１における現用ＩＣ１２、予備ＩＣ１３に対応する。計算機システム２０は、２チップ構成のチップセットを搭載した計算機システムである。
【００３７】
ＣＰＵ２１、２２（図１の制御部１１に対応）は計算機システム２０の中央処理装置である。ＣＰＵ２１とＣＰＵ２２は、ＱＰＩ(Quick Path Interconnect)を通して接続される。計算機システム２０には、ＣＰＵ２１、２２以外のＣＰＵが設けられていてもよい。
【００３８】
ＣＰＵ２１、２２はシステムブートの際にＢＩＯＳを実行してハードウエアの初期化を行い、その後ＯＳを実行する。ＣＰＵ２１、２２はＯＳ実行中もＳＭＩによってＢＩＯＳのシステムマネージメント機能を実行することができる。ＣＰＵ２１、２２は、図示しないデコーダを内蔵している。ＣＰＵ２１、２２は、ＳＢ２７、２８が有するシステム・コア機能へのデータアクセスを、そのデコーダに基づいて、それぞれＮＢ２３、２４へ転送する。
【００３９】
ＮＢ２３は、ＣＰＵ２１とプロトコル変換装置２５との間に接続されている集積回路であり、ＳＢ２７、ＣＰＵフロントサイドバス、メインメモリバス等とのインタフェース回路を適宜有する。ＮＢ２３は、ＳＢ２７とチップセットを構成する集積回路である。ＮＢ２４も、ＣＰＵ２２とプロトコル変換装置２６との間に接続されている同様の集積回路であり、ＳＢ２８とチップセットを構成する。なお、ＣＰＵ２１とＮＢ２３、ＣＰＵ２２とＮＢ２４の間もＱＰＩにより接続される。
【００４０】
ＮＢ２３、２４はＰＣＩｅホスト機能を有しており、図示しないデコーダを内蔵する。ＮＢ２３、２４は、ＣＰＵ２１、２２からのシステム・コア機能へのアクセスを、このデコーダに基づいて、それぞれＳＢ２７、２８に転送する。
【００４１】
プロトコル変換装置２５（第２の接続装置）は、ＮＢ２３とＳＢ２７との間に設けられており、ＮＢ２３とＳＢ２７とを接続可能な装置である。プロトコル変換装置２５は、さらにＳＢ２８内のＰＣＩｅスロット３１とＳＢ２７とを接続することも可能である。プロトコル変換装置２５は、接続切り替え機能部３３及びプロトコル変換機能部３４を有する。なお、プロトコル変換装置２５を、ＳＢ２７側のプロトコル変換装置ともいう。
【００４２】
接続切り替え機能部３３は、ＢＭＣ３７の制御により、ＮＢ２３とＳＢ２７とを接続するか、又はプロトコル変換機能部３４とＳＢ２７とを接続するかを切り替える。
【００４３】
プロトコル変換機能部３４は、接続切り替え機能部３３と接続可能であるほか、ＰＣＩｅスロット３１と接続可能な構成を有する。プロトコル変換機能部３４は、ＣＰＵ２２からのＮＶＲＡＭ３０へのアクセスを可能にするためにアドレス変換を実行する。さらに、ＳＢ２８−プロトコル変換機能部３４間の通信プロトコルと、プロトコル変換機能部３４−ＮＶＲＡＭ３０間の通信プロトコルとは異なるため、ＣＰＵ２２からのＮＶＲＡＭ３０へのアクセスを可能にするためにプロトコル変換も実行する。
【００４４】
プロトコル変換装置２６（第１の接続装置）は、ＮＢ２４とＳＢ２８との間に設けられており、ＮＢ２４とＳＢ２８とを接続可能な装置である。さらにプロトコル変換装置２６は、ＳＢ２８とＰＣＩｅスロット２９とを接続することも可能である。プロトコル変換装置２６は、接続切り替え機能部３５及びプロトコル変換機能部３６を有する。なお、プロトコル変換装置２６を、ＳＢ２８側のプロトコル変換装置ともいう。
【００４５】
接続切り替え機能部３５は、ＮＢ２４とＳＢ２８とを接続するか、又はプロトコル変換機能部３６とＳＢ２８とを接続するかを切り替える。なお、接続切り替え機能部３３、３５の切り替えは、ＢＭＣ３７によって実行される。
【００４６】
プロトコル変換機能部３６は、接続切り替え機能部３５と接続可能なほか、ＰＣＩｅスロット２９とも接続可能な構成を有する。プロトコル変換機能部３６は、ＣＰＵ２１からのＮＶＲＡＭ３２へのアクセスを可能にするためにアドレス変換を実行する。さらに、ＳＢ２７−プロトコル変換機能部３６間の通信プロトコルと、プロトコル変換機能部３６−ＮＶＲＡＭ３２間の通信プロトコルとは異なるため、ＣＰＵ２１からのＮＶＲＡＭ３２へのアクセスを可能にするためにプロトコル変換も実行する。
【００４７】
以上に示したプロトコル変換機能部３４、３６はＰＣＩデバイス機能を有する。このため、プロトコル変換機能部３４、３６は計算機システム２０のＢＩＯＳによりＰＣＩデバイスとして認識される。システムの初期化において、プロトコル変換機能部３４、３６には、ＣＰＵがアクセス可能とするためにＭＭＣＦＧアドレスが割り当てられる。ＰＣＩデバイスとして割り当てられたプロトコル変換機能部３４、３６は、ＮＢ２３、２４からシステム初期化で割り当てられたアドレスに対してリード／ライトアクセスがなされた場合には、アクセスされたアドレス値から割り当てられたアドレス値を引いて変換し、ＳＢ２７、２８へと転送するように処理を実行する。なお、ここで割り当てられるアドレスは、Ｍｅｍｏｒｙ  Ｍａｐｐｅｄ  Ｉ／Ｏアドレス等の他のアドレスでもよい。
【００４８】
なお、ＮＢ２３とプロトコル変換装置２５、プロトコル変換装置２５とＳＢ２７はＤＭＩ（Direct Media Interconnect）によって接続される。ＮＢ２４とプロトコル変換装置２６、プロトコル変換装置２６とＳＢ２８も同様にＤＭＩにより接続される。
【００４９】
ＳＢ２７は、前述のシステム・コア機能（コアＩ／Ｏ機能）を有する集積回路である。ＳＢ２７は、入出力ポートであるＰＣＩｅスロット２９及びＮＶＲＡＭ３０を備える。ＰＣＩｅスロット２９は、図１における第１の入出力ポート１５に対応し、ＮＶＲＡＭ３０は、第１の記憶部１６に対応する。ＳＢ２８も、ＳＢ２７と同様に、ＰＣＩｅスロット３１（第２の入出力ポート）及びＮＶＲＡＭ３２（図１における第２の記憶部１７に対応）を有している。ＳＢ２７、２８は、ＰＣＩｅホスト機能を有する。ここで、ＮＶＲＡＭ３０、３２は、そのコントローラがそれぞれＳＢ２７、２８に搭載されているものの、その記憶容量部はＳＢ２７、２８に物理的に接続されている。
【００５０】
なお、プロトコル変換装置２５とＰＣＩｅスロット３１、プロトコル変換装置２６とＰＣＩｅスロット２９とは、ＰＣＩｅバスにより接続される。
【００５１】
ＢＭＣ３７は、接続切り替え機能部３３、３５に対して、接続の切り替えを制御するシステム管理コントローラ（接続コントローラ）である。
【００５２】
次に、実施の形態２にかかる計算機システム２０の初期化処理について説明する。図４は、計算機システム２０のＢＭＣ３７による初期化処理の一例を示すフローチャートである。ここで、マスタのコアＩ／ＯをＳＢ２７、予備のコアＩ／ＯをＳＢ２８として説明する。
【００５３】
計算機システム２０がシステムブートすると、ＢＭＣ３７は、コアＩ／Ｏの接続と関係ない通常のシステム起動のためのハードウエア初期化を実行する（ステップＳ１１）。次にＢＭＣ３７は、ユーザ設定等からマスタとなるコアＩ／Ｏを判断する（ステップＳ１２）。ここでは、ＢＭＣ３７は、ＳＢ２７がマスタコアＩ／Ｏと判断する。
【００５４】
次にＢＭＣ３７は、マスタコアＩ／Ｏ（ＳＢ２７）側のプロトコル変換装置２５内の接続切り替え機能部３３を、ＮＢ２３とＳＢ２７とが接続されるように制御する（ステップＳ１３）。ＢＭＣ３７は、以前の設定に基づいて、予備コアＩ／Ｏ（ＳＢ２８）をシステムに組み込むか否かを判断する（ステップＳ１４）。
【００５５】
ＢＭＣ３７は、予備コアＩ／Ｏをシステムに組み込むと判断した場合には（ステップＳ１４のＹｅｓ）、プロトコル変換装置２６の接続切り替え機能部３５を、ＰＣＩｅスロット２９とＳＢ２８が接続されるような設定に制御する（ステップＳ１５）。組みこまないと判断した場合には（ステップＳ１４のＮｏ）、ＢＭＣ３７は接続切り替え機能部３５の制御を実行せず、次のステップＳ１６に移行する。
【００５６】
次にＢＭＣ３７は、ステップＳ１１で初期化されていない残りのハードウエアの初期化を実行し（ステップＳ１６）、ＢＩＯＳに制御を渡す。以上より、ＢＭＣ３７による初期化処理が終了する。
【００５７】
このとき、接続切り替え機能部３３、３５が設定された計算機システム２０のＢＩＯＳから見た接続関係は図５のようになる。図５において、実線で囲まれたデバイスはＣＰＵ２１によって有効と扱われるデバイスであり、点線で囲まれたデバイスは無効と扱われるデバイスである。デバイス同士の間の実線は、現在それらのデバイス同士に接続関係があることを示し、デバイス同士の間の点線は、現在それらのデバイス同士に接続関係がないことを示す。図５において、接続切り替え機能部３３は、ＮＢ２３とＳＢ２７とを接続させ、プロトコル変換機能部３４はいずれのデバイスとも接続されないように制御している。
【００５８】
図４のステップＳ１５の制御により、接続切り替え機能部３５は、ＰＣＩｅスロット２９とＳＢ２８とを接続するように制御している。これにより、ＮＶＲＡＭ３０とＮＶＲＡＭ３１とは接続された状態になる。なお、このとき接続切り替え機能部３５は、ＮＢ２４とは接続されていない。
【００５９】
次に、ＢＩＯＳによるデバイスの初期化について説明する。図６は、計算機システム２０のＢＩＯＳによる初期化処理の一例を示すフローチャートである。
【００６０】
ＢＭＣ３７からＢＩＯＳに制御の主体が移ると、ＣＰＵ２１はＢＩＯＳを実行することにより、ＣＰＵ２１、２２及びチップ（ＮＢ２３、２４、ＳＢ２７）の初期化を実行する（ステップＳ１７）。ＳＢ２７の初期化では、マスタコアＩ／Ｏ機能の初期化も実行される。以上の初期化により、ＰＣＩｅスロット２９、ＮＶＲＡＭ３０にＣＰＵ２１のアクセス用のアドレスが割り当てられる。
【００６１】
次に、ＣＰＵ２１はＰＣＩデバイスの初期化を実行する（ステップＳ１８）。ここでＣＰＵ２１は、ＳＢ２７側（マスタコアＩ／Ｏ側）のプロトコル変換装置２５のみならず、プロトコル変換装置２６も、通常のＰＣＩｅデバイスと認識して初期化を実行する。これは、アドレスが割り当てられたＰＣＩｅスロット２９にプロトコル変換機能部３６が接続されていることにより、ＣＰＵ２１がプロトコル変換装置２６をＰＣＩデバイスとして認識するためである。
【００６２】
次にＣＰＵ２１は、予備コアＩ／ＯであるＳＢ２８がシステムに組み込まれているか（システム上に存在するか）否かを、ＢＭＣ３７との通信又はＳＢ２８への直接のアクセスに基づいて判断する（ステップＳ１９）。
【００６３】
ＳＢ２８がシステム上に存在していなければ（ステップＳ１９のＮｏ）、ＣＰＵ２１は初期化処理を終了する。ＳＢ２８がシステム上に存在していれば（ステップＳ１９のＹｅｓ）、ＣＰＵ２１は、ＳＢ２８内のＮＶＲＡＭ３２といったコアＩ／Ｏ機能に関するデバイスの初期化を行う(ステップＳ２０)。以上の初期化により、ＮＶＲＡＭ３２等にアドレスが割り当てられる。なお、ＳＢ２８の初期化手順は、ステップＳ１７におけるＳＢ２７の初期化手順に、ステップＳ１８にてプロトコル変換機能部３６に割り当てたＭＭＣＦＧアドレスを割り当てる手順を加えたものである。ＳＢ２８に、Ｍｅｍｏｒｙ  Ｍａｐｐｅｄ  Ｉ／Ｏアドレス等の他のアドレスが割り当てられる場合でも同様である。
【００６４】
以上、計算機システム２０においては、ＣＰＵ２１がＢＩＯＳを実行することにより、通常のマスタコアＩ／Ｏの初期化と同じように予備コアＩ／Ｏの初期化を行うことができた。ステップＳ７〜Ｓ１０により、ＰＣＩｅスロット２９の配下にプロトコル変換装置２６が置かれるようになったため、マスタ コアＩ／Ｏ（ＳＢ２７）配下に予備コアＩ／Ｏ（ＳＢ２８）が配置されるようになった。例えば、ＰＣＩｅスロット２９のアドレスがステップＳ７において「１１００」と設定され、ステップＳ２０においてＮＶＲＡＭ３２のアドレスが「１００」と設定されたとする。このとき、プロトコル変換機能部３６は、ステップＳ２０の初期化において、「アドレス１１００を１００に変換」するようにＣＰＵ２１から設定される。これにより、ＣＰＵ２１からアドレス１１００にアクセスがなされた際には、アドレス１１００を有するＰＣＩｅスロット２９にアクセスが伝達する。これにより、プロトコル変換機能部３６にそのアクセスが伝達される。ここで、プロトコル変換機能部３６の設定により、アドレスが「１００」に変換される。このため、ＮＶＲＡＭ３２にそのアクセスを伝達させることができる。
【００６５】
これによって、ＢＩＯＳを実行するＣＰＵ２１は、予備コアＩ／Ｏ（ＳＢ２８）をコントロール配下に置くことができる。つまり、ＣＰＵ２１は、予備コアＩ／Ｏにおいて、マスタコアＩ／Ｏと同様にシステム・コア記憶領域（ＮＶＲＡＭ）へのアクセスが可能になる。このため、ＣＰＵ２１は、ＢＩＯＳが実行される任意のタイミングで、マスタのコアＩ／Ｏのデータ（ＮＶＲＡＭ３０に記憶された設定情報）を予備コアＩ／Ｏ（ＮＶＲＡＭ３２）にコピーして、データ同期を実行することができる。このとき、ＣＰＵ２１内のデコーダの設定を切り替える必要はない。
【００６６】
次に、図４を参照して、マスタコアＩ／Ｏの障害発生時の処理について説明する。なお、障害発生前のマスタコアＩ／ＯはＳＢ２７である。
【００６７】
計算機システム２０のシステム運用時にマスタコアＩ／ＯであるＳＢ２７に障害が発生すると、計算機システム２０はシステムダウン又は縮退動作を実行する。ここで、障害を検出したＢＭＣ３７によって、次回のブートの際にマスタコアＩ／ＯをＳＢ２７からＳＢ２８に切り替えるほか、ＳＢ２７をシステムに組み込まないように設定を変更する。
【００６８】
次にシステムがブートされた際に、ＢＭＣ３７は、まずコアＩ／Ｏと関係の無い通常のシステム起動のためのハードウエア初期化を行う（ステップＳ１１）。
【００６９】
次にＢＭＣ３７は、マスタコアＩ／Ｏを判断する（ステップＳ１２）。ここで、障害を検出した際にマスタコアＩ／Ｏが切り替わるように設定されているため、ＢＭＣ３７はＳＢ２８をマスタコアＩ／Ｏと判断する。
【００７０】
次にＢＭＣ３７は、接続切り替え機能部３５を、ＮＢ２４とＳＢ２８とが接続されるようにスイッチを切り替える（ステップＳ１３）。
【００７１】
次にＢＭＣ３７は、予備コアＩ／Ｏをシステムに組み込むか否かを判断する（ステップＳ１４）。ここで、予備コアＩ／ＯとなったＳＢ２７は、ＢＭＣ３７によって、ＳＢ２７の障害発生時にシステムに組み込まれないように設定されている（ステップＳ１４のＮｏ）。このため、ＢＭＣ３７はステップＳ１５を実行せず、残りのハードウエア初期化を実行する（ステップＳ１６）。これにより、プロトコル変換機能部３４は、ＰＣＩｅデバイス３１と接続されない。
【００７２】
ＢＭＣ３７は、ステップＳ１６においてＳＢ２７の初期化を実行しない。換言すれば、ＳＢ２７に対してＤＣ電源を投入しない。それによって、ＳＢ２７はシステムから切り離される。
【００７３】
次に、図６を参照して、ＣＰＵ２２がＢＩＯＳを実行することによって実行する初期化処理を説明する。ＣＰＵ２２は、ＣＰＵ２１、２２及びチップ（ＮＢ２３、２４、ＳＢ２７）の初期化を実行する（ステップＳ１７）。ここで、ＰＣＩｅスロット３１、ＮＶＲＡＭ３２にＣＰＵ２２のアクセス用のアドレスが割り当てられる。
【００７４】
次に、ＣＰＵ２２はＰＣＩデバイスの初期化を実行する（ステップＳ１８）。ここでＣＰＵ２２は、ＳＢ２８側（マスタコアＩ／Ｏ側）のプロトコル変換装置２６のみ初期化を実行する。これは、ＰＣＩｅスロット３１にプロトコル変換機能部３４が接続されていないため、ＣＰＵ２２がプロトコル変換装置２５をＰＣＩデバイスとして認識しないためである。
【００７５】
次にＣＰＵ２２は、予備コアＩ／ＯであるＳＢ２７がシステム上に存在するか否かを判断する（ステップＳ１９）。ここでは、ＳＢ２７がシステム上に存在していないため（ステップＳ１９のＮｏ）、ＣＰＵ２２は初期化を終了する。
【００７６】
ここで、ＮＶＲＡＭ３２の設定情報はＮＶＲＡＭ３０の最新の設定情報と同期されているため、計算機システム２０は、障害発生後、ＳＢ２８のコアＩ／Ｏ機能を使用して、直ちにシステム（ＯＳ）をブートすることが可能である。つまり、計算機システム２０のリブートが不要であり、運用再開が容易となる。
【００７７】
以上から、計算機システム２０は、予備コアＩ／Ｏのデータを現用コアＩ／Ｏの最新のデータに同期可能であって運用再開が容易であり、かつ、汎用ハードウエア、汎用ＯＳを使用したシステムにおいて適用が可能であるという効果を奏する。この詳細については実施の形態１に記載した通りである。
【００７８】
さらに、実施の形態２にかかる計算機システム２０は、簡易な構成を有するプロトコル変換装置２５、２６によりコアＩ／Ｏ二重化を実現できるため、コストを抑制することができる。
【００７９】
さらに、図３に示した計算機システム２０は、ＣＰＵ２１にＳＢ２８へのアクセスを可能にするプロトコル変換装置２６だけでなく、ＣＰＵ２２にＳＢ２７へのアクセスを可能にするプロトコル変換装置２５が設けられている。そのため、現用コアＩ／ＯがＳＢ２７の場合だけでなく、ＳＢ２８である場合にも、同様の処理方法にて、計算機システム２０はデータ同期を実行することができる。
【００８０】
さらに、プロトコル変換装置２５、２６には、それぞれ接続切り替え機能部３３、３５が設けられている。ＢＭＣ３７は、ＳＢ２７が現用コアＩ／Ｏであり、ＳＢ２８が予備コアＩ／Ｏである場合には、ブートの際に接続切り替え機能部３５を制御して、ＮＢ２４（及びＣＰＵ２２）とＳＢ２８とを接続しないように制御する。つまり、ＳＢ２８は、ＰＣＩｅスロット２９を介してＣＰＵ２１と接続される（ＰＣＩｅスロット２９を介さずにＣＰＵ２１とは接続されない）。このようにしてＢＭＣ３７は、ＣＰＵ２２及びＮＢ２４からの信号をＳＢ２８に伝達しないようにすることができるため、ＳＢ２８へ伝達されるノイズを抑制することができる。同様にＢＭＣ３７は、接続切り替え機能部３３を制御して、ＳＢ２７とプロトコル変換機能部３４とを接続しないように制御することにより、ＳＢ２７へ伝達されるノイズを抑制することができる。
【００８１】
プロトコル変換機能部３６は、ＰＣＩｅスロット２９からの出力信号の通信プロトコルを変換することができる。プロトコル変換装置２６は、変換後の出力信号をＳＢ２８内のＮＶＲＡＭ３２に出力する。これにより、ＰＣＩｅスロット２９−プロトコル変換機能部３６間の通信プロトコルと、ＮＶＲＡＭ３２−プロトコル変換機能部３６間の通信プロトコルとが異なる場合であっても、ＣＰＵ２１は問題なくＮＶＲＡＭ３２にアクセスすることができる。
【００８２】
さらに、プロトコル変換機能部３６は、ＣＰＵ２１がＰＣＩｅスロット２９を介して出力した信号のアクセス先のアドレス（プロトコル変換機能部３６のアドレス）を、ＮＶＲＡＭ３２のアドレスに変換することにより、ＮＶＲＡＭ３２に転送する。このため、ＳＢ２７、２８が汎用のハードウエアであり、ＮＶＲＡＭ３０とＮＶＲＡＭ３２とに割り当てられたアドレスが同一であっても、ＮＶＲＡＭ３０とプロトコル変換機能部３６に異なるアクセスが割り当てられれば、ＣＰＵ２１は問題なくＮＶＲＡＭ３０とＮＶＲＡＭ３２に同時にアクセスすることができる。プロトコル変換機能部３４も、同様の効果を奏する。
【００８３】
なお、一般に、ＰＣＩｅスロットはＳＢ２７、２８だけでなく、ＮＢ２３、２４にも設けられている。その場合には、ＮＢ２３に設けられたＰＣＩｅスロットを、ＰＣＩｅスロット２９の代わりに用いてもよい。その場合でも、計算機システム２０は、同様の処理によってＮＢ２３に設けられたＰＣＩｅスロットとＮＶＲＡＭ３２とを、プロトコル変換機能部３６、接続切り替え機能部３５を介して接続する。これにより、上述に記載の効果を達成することができる。同様に、ＮＢ２４に設けられたＰＣＩｅスロットを、ＰＣＩｅスロット３１の代わりに用いることもできる。
【００８４】
ただし、一般に、ＳＢに備えられているＰＣＩｅスロットよりも、ＮＢに備えられているＰＣＩｅスロットの方が、データ通信速度が速い。実施の形態２において通信されるデータは大容量ではないため、データ通信速度の遅いＰＣＩｅスロットを用いてデータ同期を実行しても、データ同期にかかる時間の差は大きなものではない。そのため、データ通信速度の速いＮＢのＰＣＩｅスロットをユーザが他の用途に使用可能とするためには、上述の通り、ＳＢ２７に設けられたＰＣＩｅスロット２９をデータ同期のために使用することが望ましい。同様に、ＮＢ２４に設けられたＰＣＩｅスロットを用いるよりも、ＳＢ２８に設けられたＰＣＩｅスロット３１を用いる方が、実用上は望ましい。
【００８５】
さらに、ＮＢ２３、ＳＢ２７及びプロトコル変換装置２５は、図３に示した構成で接続されていなくともよい。例えば、ＮＢ２３−プロトコル変換装置２５−ＳＢ２７の順ではなく、ＮＢ２３−ＳＢ２７−プロトコル変換装置２５の順に接続されていてもよい。その場合には、接続切り替え機能部３３は設けなくてよい。
【００８６】
ただし、ＳＢ２７は、ＮＢ２３と接続するための１本の信号線しか有しないのが一般的である。そのため、ＮＢ２３−ＳＢ２７−プロトコル変換装置２５の順に接続する場合には、ＳＢ２７に信号線を１本追加する必要がある。しかし、図３の通り、ＮＢ２３−プロトコル変換装置２５−ＳＢ２７の順に接続する場合には、ＳＢ２７の構成を変更せずにすむ。このため、汎用のハードウエアをＳＢ２７としてそのまま使用できるというメリットがある。なお、ＣＰＵ２１−プロトコル変換装置２５−ＮＢ２３−ＳＢ２７の順に接続しても、同様のメリットがある。つまり、ＣＰＵ２１とＳＢ２７の間にプロトコル変換装置２５が接続されていれば、汎用のハードウエアをＳＢ２７としてそのまま使用することができる。これは、ＮＢ２４、ＳＢ２８及びプロトコル変換装置２６の接続構成についても同様である。
【００８７】
実施の形態３
以下、図面を参照して本発明の実施の形態３について説明する。図７は、実施の形態３にかかる計算機システムの構成例を示すブロック図である。計算機システム４０は、ＣＰＵ４１、４２、ＮＢ４３、４４、プロトコル変換装置４５、４６、ＳＢ４７、４８及びＢＭＣ５７を備える。
【００８８】
ＣＰＵ４１、４２及びＮＢ４３、４４は、実施の形態２にかかるＣＰＵ２１、２２及びＮＢ２３、２４と同様であるため、説明を省略する。
【００８９】
プロトコル変換装置４５は、接続切り替え機能部５３、プロトコル変換機能部５４、アドレス検出機能部６０及び割り込み機能部６１を有する。
【００９０】
接続切り替え機能部５３、プロトコル変換機能部５４は、実施の形態２にかかる接続切り替え機能部３３、プロトコル変換機能部３４と同じ機能を有するため、説明を省略する。
【００９１】
アドレス検出機能部６０は、ＮＢ４３からのライトアクセス（書き込みアクセス）のアドレスを監視する。アドレス検出機能部６０は、内部に設定された所定のＳＢ４７のアドレスにライトアクセスがあると、そのアドレスとデータを内部のメモリに記録し、ライトアクセスがあった旨の信号を割り込み機能部６１に出力する。ここで、所定のＳＢ４７のアドレスとは、ＮＶＲＡＭ５０を示すアドレスのことをいう。つまり、アドレス検出機能部６０は、ＣＰＵ４１から出力されたライトアクセスが、ＮＶＲＡＭ５０に対するものであるか否かを判断するアクセス判断部として機能する。なお、アドレス検出機能部６０は、接続切り替え機能部５３、プロトコル変換機能部５４、割り込み機能部６１にそれぞれ接続可能である。
【００９２】
アドレス検出機能部６０は、例えばＢＩＯＳを実行するＣＰＵにアドレス検出機能部６０をＰＣＩデバイスと認定させて、アドレス検出機能部６０とＮＢ４３に内蔵されたＰＣＩｅスロットとを接続することにより、監視アドレス設定をしてもよい。あるいは、ＢＭＣ５７を通して監視アドレス設定をしてもよい。
【００９３】
割り込み機能部６１は、アドレス検出機能部６０と、ＳＢ４７に内蔵されたＧＰＩＯ５８とに接続可能である。割り込み機能部６１は、アドレス検出機能部６０からの要求に応じて、ＧＰＩＯ５８に割り込みを発生させる。これにより、ＣＰＵ４１に対し、ＮＶＲＡＭ５２に対して書き込みアクセスにかかるデータを書き込ませる。
【００９４】
ＳＢ４７、４８は、それぞれＰＣＩｅスロット４９、５１、ＮＶＲＡＭ５０、５２及びＧＰＩＯ５８、５９を内蔵する。ＧＰＩＯ５８、５９は、汎用入出力ポートである。その他のＳＢ４７、４８の構成は、実施の形態１にかかるＳＢ２７、２８の構成と同様であるため、説明を省略する。
【００９５】
プロトコル変換装置４６は、プロトコル変換装置４５と同様の構成を有する。アドレス検出機能部６２は、ＮＢ４４からのライトアクセスのアドレスを監視する。アドレス検出機能部６２は、内部に設定された所定のＳＢ４８のアドレスにライトアクセスがあると、そのアドレスとデータを内部のメモリに記録し、ライトアクセスがあった旨の信号を割り込み機能部６３に出力する。ここで、所定のＳＢ４８のアドレスとは、ＮＶＲＡＭ５２を示すアドレスのことをいう。つまり、アドレス検出機能部６１は、ＣＰＵ４２から出力されたライトアクセスが、ＮＶＲＡＭ５２に対するものであるか否かを判断するアクセス判断部として機能する。なお、アドレス検出機能部６２は、接続切り替え機能部５５、プロトコル変換機能部５６、割り込み機能部６３にそれぞれ接続可能である。
【００９６】
割り込み機能部６３は、アドレス検出機能部６２と、ＳＢ４８に内蔵されたＧＰＩＯ５９とに接続可能である。割り込み機能部６３は、アドレス検出機能部６２からの要求に応じて、ＧＰＩＯ５９に割り込みを発生させる。これにより、ＣＰＵ４２に対し、ＮＶＲＡＭ５０に対して書き込みアクセスにかかるデータを書き込ませる。
【００９７】
ＢＭＣ５７は、接続切り替え機能部５３、５５に対して、接続の切り替えを制御する。
【００９８】
次に、実施の形態３にかかる計算機システム４０の初期化処理について説明する。ここで、マスタのコアＩ／ＯをＳＢ４７、予備のコアＩ／ＯをＳＢ４８としている。
【００９９】
まず、システムをブートすると、ＢＭＣ５７はハードウエアを初期化する。この処理については、図４に示したフローと変わらないため説明を省略する。
【０１００】
このとき、ＢＭＣ５７の初期化によって、実施の形態２と同様に接続切り替え機能部５３、５５が設定された計算機システム４０の接続関係は図８のようになる。図８の実線部及び点線部の説明は、図４と同様である。
【０１０１】
図８において、接続切り替え機能部５３は、ＮＢ４３とＳＢ４７とを接続させるように、プロトコル変換機能部５４がいずれのデバイスとも接続されないように制御する。アドレス検出機能部６０は、接続切り替え機能部５３、割り込み機能部６１と接続され、割り込み機能部６１を介してＧＰＩＯ５８とも接続されている。接続切り替え機能部５３、アドレス検出機能部６０、割り込み機能部６１は有効なデバイスであり、プロトコル変換機能部５４は、無効なデバイスである。
【０１０２】
接続切り替え機能部５５は、プロトコル変換機能部５６とＳＢ４８とを接続するように制御される。接続切り替え機能部５５、プロトコル変換機能部５６は有効なデバイスであり、ＰＣＩｅスロット５１、ＧＰＩＯ５９、アドレス検出機能部６２、割り込み機能部６３は無効なデバイスである。
【０１０３】
図９は、計算機システム４０のＢＩＯＳによる初期化処理の一例を示すフローチャートである。図７におけるステップＳ３１〜Ｓ３４は、図４のステップＳ１７〜Ｓ２０と同様の処理であるため、説明を省略する。
【０１０４】
ステップＳ３４の後、ＢＩＯＳを実行するＣＰＵ４１は、プロトコル変換装置４５のアドレス検出機能部６０の初期化を行う（ステップＳ３５）。この初期化では、ＣＰＵ４１は検出するアドレス範囲（例えばＮＶＲＡＭ５０の書き込みを行うアドレスのベースとリミット）を設定する。
【０１０５】
次に、アドレス検出機能を用いたＯＳ運用中に、コアＩ／Ｏのデータを同期する方法について説明する。アドレス検出機能部６０は、ＳＢ４７内のＮＶＲＡＭ５０へのライトアクセスを設定監視している。
【０１０６】
図１０は、アドレス検出機能部６０の監視処理の一例を示すフローチャートである。アドレス検出機能部６０は、内部に設定されたＳＢ４７のアドレスに、ＯＳを実行中のＣＰＵ４１からアクセスがあったか否かを判定する。ＣＰＵ４１からアクセスがあった場合には、内部に設定されたＳＢ４７のアドレス（ＮＶＲＡＭ５０のアドレス）と比較して、アクセスにかかるアドレスが一致するか否かを判定する（ステップＳ３６）。
【０１０７】
アクセスがない場合、又はアクセスがあっても設定されたアドレスへのアクセスではない場合には（ステップＳ３６のＮｏ）、アドレス検出機能部６０はステップＳ３６に戻って監視を続ける。
【０１０８】
アドレス検出機能部６０が、設定されたＳＢ４７のアドレスに対するアクセスを検出した場合には（ステップＳ３６のＹｅｓ）、アドレス検出機能部６０はその内部のメモリにアクセスにかかるアドレスと書き込みデータを記録する（ステップＳ３７）。次にアドレス検出機能部６０は、割り込み機能部６１を介してＧＰＩＯ５８に割り込みを発生させる（ステップＳ３８）。
【０１０９】
ＧＰＩＯ５８からの割り込みによって、ＢＩＯＳのシステムマネージメント機能が呼び出される（ステップＳ３９）。ＣＰＵ４１は、ＢＩＯＳのシステムマネージメント機能によって、なされたアクセスが、コアＩ／Ｏ機能（ＮＶＲＡＭ５０）へのライトアクセスか否かを判断する（ステップＳ４０）。
【０１１０】
ＮＶＲＡＭ５０へのライトアクセスでない場合には（ステップＳ４０のＮｏ）、ＢＩＯＳの割り込み処理は終了し、アドレス検出機能部６０はステップＳ３６に戻って監視を続ける。ＮＶＲＡＭ５０へのライトアクセスである場合には（ステップＳ４０のＹｅｓ）、ＣＰＵ４１は、ＢＩＯＳのシステムマネージメント機能の制御によって、アドレス検出機能部６０の内部のメモリに記録されたデータを参照する。そしてアドレス検出機能部６０は、アクセスにかかる書き込みデータを、予備コアＩ／Ｏ（ＳＢ４８）のＮＶＲＡＭ５２に書き込む（ステップＳ４１）。データを書き込むＮＶＲＡＭ５２のアドレスは、アクセスにかかるＮＶＲＡＭ５０のアドレスに対応したアドレスである。ここまでの処理が終了した後、アドレス検出機能部６０はステップＳ３６に戻って監視を続ける。
【０１１１】
実施の形態３にかかる計算機システム４０の効果について説明する。計算機システム４０では、アドレス検出機能部６０の有するアドレス検出機能によって、ＯＳを実行するＣＰＵのＮＶＲＡＭ５０へのデータ書き込みを直ちに予備コアＩ／Ｏ（ＳＢ４８）へ反映し、ＮＶＲＡＭ５２にそのデータを書き込むように構成されている。それにより、マスタコアＩ／Ｏと予備コアＩ／Ｏとのシステム・コア記憶領域のデータ同期がより確実にとれる。そのため、突然のコアＩ／Ｏ障害発生によるシステムダウンの際にも、予備コアＩ／Ｏには最新の設定情報が記憶されており、その最新の設定情報に基づいてシステムを再開することができる。
【０１１２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、計算機システム２０、４０においては、実施の形態１と同様のバリエーションの変更が可能である。
【０１１３】
計算機システム４０においては、ＢＩＯＳのシステムマネージメント機能でなく、他のプログラムによって、ライトアクセスか否かの判断を実行してＮＶＲＡＭ５２に書き込みデータを書き込むようにＣＰＵ４１が制御されてもよい。なお、アドレス検出機能部、割り込み機能部は、プロトコル変換装置４５のみに備えられていてもよい。マスタコアＩ／ＯはＳＢ４７であり、ＮＶＲＡＭ５０へのアクセスにかかる書き込みデータをＮＶＲＡＭ５２に書き込むことができれば、上述の効果が生じるからである。
【０１１４】
以下、本発明の各種形態を付記する。
【０１１５】
（付記１）
制御部と、
前記制御部に接続された第１の入出力ポートと、
計算機システムのブートに必要な設定情報を記憶可能な第１の記憶部を有し、前記制御部に接続される現用の入出力コントローラと、
計算機システムのブートに必要な設定情報を記憶可能な第２の記憶部を有し、前記制御部に接続される予備の入出力コントローラと、
前記第１の入出力ポートと前記予備の入出力コントローラとを接続する第１の接続装置と、を備え、
前記第１の入出力ポートと前記第１の接続装置とを介して、前記第１の記憶部の前記設定情報と前記第２の記憶部の前記設定情報とが同期できるように構成される計算機システム。
【０１１６】
（付記２）
前記制御部は、前記計算機システムのＢＩＯＳを実行して、前記第１の接続装置に対し前記制御部のアクセスを可能にするアドレスを割り当てることにより、前記第１の記憶部の前記設定情報と前記第２の記憶部の前記設定情報とを同期可能にする、
付記１記載の計算機システム。
【０１１７】
（付記３）
前記制御部は、前記計算機システムのＢＩＯＳを実行中に、前記第１の記憶部の前記設定情報と前記第２の記憶部の前記設定情報とを同期する制御を実行する、
付記２記載の計算機システム。
【０１１８】
（付記４）
前記計算機システムは、
前記制御部に接続された第２の入出力ポートと、
前記第２の入出力ポートと前記現用の入出力コントローラとを接続する第２の接続装置と、をさらに備え、
前記第２の入出力ポートと前記第２の接続装置とを介して、前記第２の記憶部の前記設定情報と前記第１の記憶部の前記設定情報とが同期できるように構成される付記１ないし３のいずれか１つに記載の計算機システム。
【０１１９】
（付記５）
前記計算機システムは、前記制御部に接続された第１のノースブリッジ及び第２のノースブリッジをさらに備え、
前記現用の入出力コントローラは、前記第１のノースブリッジを介して前記制御部に接続される第１のサウスブリッジであり、前記予備の入出力コントローラは、前記第２のノースブリッジを介して前記制御部に接続される第２のサウスブリッジである、
付記４に記載の計算機システム。
【０１２０】
（付記６）
少なくとも、前記第１の接続装置が前記制御部と前記予備の入出力コントローラの間に接続されているか、前記第２の接続装置が前記制御部と前記現用の入出力コントローラの間に接続されている、
付記５に記載の計算機システム。
【０１２１】
（付記７）
少なくとも、前記第１の入出力ポートが前記現用の入出力コントローラに設けられているか、前記第２の入出力ポートが前記予備の入出力コントローラに設けられている、
付記５又は６に記載の計算機システム。
【０１２２】
（付記８）
前記第１の接続装置は、前記第１の入出力ポートからの出力信号の通信プロトコルを変換して、変換後の当該出力信号を前記予備の入出力コントローラに出力する、
付記１ないし７のいずれか１つに記載の計算機システム。
【０１２３】
（付記９）
前記第１の接続装置は、前記制御部から前記第１の入出力ポートを介してアクセスがあった場合に、アクセス先のアドレスを、前記第１の接続装置に割り当てられたアドレスから、前記第２の記憶部に割り当てられたアドレスに変換することによって当該アクセスを前記第２の記憶部に転送する、
付記１ないし８のいずれか１つに記載の計算機システム。
【０１２４】
（付記１０）
前記第１の接続装置は、
前記制御部から出力された書き込みアクセスが、前記第１の記憶部に対するものであるか否かを判断するアクセス判断部と、
前記書き込みアクセスが前記第１の記憶部に対するものである場合に、割り込み処理を実行することにより、前記制御部に対し、前記第２の記憶部に対して前記書き込みアクセスにかかるデータを書き込ませる割り込み機能部と、
を有する、付記１ないし９のいずれか１つに記載の計算機システム。
【０１２５】
（付記１１）
前記計算機システムは、
前記予備の入出力コントローラが前記第１の入出力ポートを介して前記制御部に接続するように前記第１の接続装置を制御する接続コントローラをさらに備える、
付記１ないし１０のいずれか１つに記載の計算機システム。
【０１２６】
（付記１２）
付記１ないし１１のいずれかに記載の計算機システムの制御方法であって、
前記第１の入出力ポートと前記第１の接続装置とを介して、前記第１の記憶部と前記第２の記憶部とを接続するステップと、
前記第１の記憶部の前記設定情報と前記第２の記憶部の前記設定情報とを同期するステップと、
を備える計算機システムの制御方法。
【符号の説明】
【０１２７】
１０  計算機システム
１１  制御部
１２  現用ＩＣ
１３  予備ＩＣ
１４  第１の接続装置
１５  第１の入出力ポート
１６  第１の記憶部
１７  第２の記憶部
２０  計算機システム
２１、２２  ＣＰＵ
２３、２４  ＮＢ
２５、２６  プロトコル変換装置
２７、２８  ＳＢ
２９、３１  ＰＣＩｅスロット
３０、３２  ＮＶＲＡＭ
３３、３５  接続切り替え機能部
３４、３６  プロトコル変換機能部
３７  ＢＭＣ
４０  計算機システム
４１、４２  ＣＰＵ
４３、４４  ＮＢ
４５、４６  プロトコル変換装置
４７、４８  ＳＢ
４９、５１  ＰＣＩｅスロット
５０、５２  ＮＶＲＡＭ
５３、５５  接続切り替え機能部
５４、５６  プロトコル変換機能部
５７  ＢＭＣ
５８、５９  ＧＰＩＯ
６０、６２  アドレス検出機能部
６１、６３  割り込み機能部
【図１】
0005970846.tif 000002
【図２】
0005970846.tif 000003
【図３】
0005970846.tif 000004
【図４】
0005970846.tif 000005
【図５】
0005970846.tif 000006
【図６】
0005970846.tif 000007
【図７】
0005970846.tif 000008
【図８】
0005970846.tif 000009
【図９】
0005970846.tif 000010
【図１０】
0005970846.tif 000011