(57)【特許請求の範囲】
【請求項１】
ＣＰＵノード上で動作するＢＩＯＳ（Basic Input/Output System）が優先的に使用するプライマリＢＩＯ（Basic Input/Output）を持つ第１のＩＯ（Input/Output）ノードと、前記プライマリＢＩＯの予備となるセカンダリＢＩＯを持つ第２のＩＯノードと、を有するシステム制御装置であって、
前記プライマリＢＩＯは、
前記ＢＩＯＳから前記第１のＩＯノードに割り当てられた第１のアドレス空間の中から割り当てられた特定の第１のアドレス空間を持つ第１のＢＩＯコントローラを有し、
前記セカンダリＢＩＯは、
前記ＢＩＯＳから前記第２のＩＯノードに割り当てられた第２のアドレス空間の中から割り当てられた特定の第２のアドレス空間を持つ第２のＢＩＯコントローラを有し、
前記第１のＩＯノードは、
前記ＢＩＯＳから前記特定の第１のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスを、前記プライマリＢＩＯ内の前記第１のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、該変換したＩ／Ｏトランザクションのアドレスを前記プライマリＢＩＯに向けて発行し、前記プライマリＢＩＯ内の情報を変更する第１のアドレス変換手段を有し、
前記第２のＩＯノードは、
前記ＢＩＯＳから前記特定の第２のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスを、前記セカンダリＢＩＯ内の前記第２のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、該変換したＩ／Ｏトランザクションのアドレスを前記セカンダリＢＩＯに向けて発行し、前記セカンダリＢＩＯ内の情報を変更する第２のアドレス変換手段を有し、
前記ＢＩＯＳは、前記特定の第１のアドレス空間で前記第１のＩＯノードにアクセスし、前記プライマリＢＩＯ内の情報を変更すると同時に、前記特定の第２のアドレス空間で前記第２のＩＯノードにアクセスし、前記セカンダリＢＩＯ内の情報をも変更し、前記プライマリＢＩＯ内の情報と、前記セカンダリＢＩＯ内の情報と、を一致させることを特徴とするシステム制御装置。
【請求項２】
前記第１のＩＯノードは、
前記第１のアドレス空間のうち、特定のアドレス空間を前記特定の第１のアドレス空間として前記プライマリＢＩＯ内の前記第１のＢＩＯコントローラに割り当て、該割り当てた特定の第１のアドレス空間の最下位のアドレスを、前記第１のアドレス変換手段に存在するアドレス変換ベースレジスタに設定し、
前記第１のアドレス変換手段は、
前記ＢＩＯＳから前記特定の第１のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスから前記アドレス変換ベースレジスタに設定された最下位のアドレスだけ減算したＩＯアドレス空間のＩ／Ｏトランザクションに変換し、前記受け付けたＩ／Ｏトランザクションのアドレスを、前記プライマリＢＩＯ内の前記第１のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、
前記第２のＩＯノードは、
前記第２のアドレス空間のうち、特定のアドレス空間を前記特定の第２のアドレス空間として前記セカンダリＢＩＯ内の前記第２のＢＩＯコントローラに割り当て、該割り当てた特定の第２のアドレス空間の最下位のアドレスを、前記第２のアドレス変換手段に存在するアドレス変換ベースレジスタに設定し、
前記第２のアドレス変換手段は、
前記ＢＩＯＳから前記特定の第２のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスから前記アドレス変換ベースレジスタに設定された最下位のアドレスだけ減算したＩＯアドレス空間のＩ／Ｏトランザクションに変換し、前記受け付けたＩ／Ｏトランザクションのアドレスを、前記セカンダリＢＩＯ内の前記第２のＢＩＯコントローラが固定で持つアドレス空間を示すように変換することを特徴とする請求項１記載のシステム制御装置。
【請求項３】
システム運用中において、前記プライマリＢＩＯ内の情報、または、前記セカンダリＢＩＯ内の情報を変更したい場合に、前記ＢＩＯＳは、前記特定の第１のアドレス空間で前記第１のＩＯノードにアクセスし、前記プライマリＢＩＯ内の情報を変更すると同時に、前記特定の第２のアドレス空間で前記第２のＩＯノードにアクセスし、前記セカンダリＢＩＯ内の情報をも変更し、前記プライマリＢＩＯ内の情報と、前記セカンダリＢＩＯ内の情報と、を一致させることを特徴とする請求項１または２記載のシステム制御装置。
【請求項４】
前記プライマリＢＩＯと、前記セカンダリＢＩＯと、は、
日時情報を保持する日時情報保持手段と、
システムの立ち上げ時に必要となる立ち上げ情報を保持する立ち上げ情報保持手段と、を有し、
前記日時情報保持手段と、前記情報保持手段と、はＯＳ（Operating System）やアプリケーションが直接アクセスすることを禁止しており、
前記ＢＩＯＳは、前記特定の第１のアドレス空間で前記第１のＩＯノードにアクセスし、前記プライマリＢＩＯ内の情報を変更すると同時に、前記特定の第２のアドレス空間で前記第２のＩＯノードにアクセスし、前記セカンダリＢＩＯ内の情報をも変更し、
前記プライマリＢＩＯ内の日時情報と立ち上げ情報と、前記セカンダリＢＩＯ内の日時情報と立ち上げ情報と、を一致させることを特徴とする請求項１から３の何れか１項に記載のシステム制御装置。
【請求項５】
ＣＰＵノード上で動作するＢＩＯＳ（Basic Input/Output System）が優先的に使用するプライマリＢＩＯ（Basic Input/Output）を持つ第１のＩＯ（Input/Output）ノードと、前記プライマリＢＩＯの予備となるセカンダリＢＩＯを持つ第２のＩＯノードと、を有するシステム制御装置で行うシステム制御方法であって、
前記プライマリＢＩＯは、
前記ＢＩＯＳから前記第１のＩＯノードに割り当てられた第１のアドレス空間の中から割り当てられた特定の第１のアドレス空間を持つ第１のＢＩＯコントローラを有し、
前記セカンダリＢＩＯは、
前記ＢＩＯＳから前記第２のＩＯノードに割り当てられた第２のアドレス空間の中から割り当てられた特定の第２のアドレス空間を持つ第２のＢＩＯコントローラを有し、
前記第１のＩＯノードは、
前記ＢＩＯＳから前記特定の第１のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスを、前記プライマリＢＩＯ内の前記第１のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、該変換したＩ／Ｏトランザクションのアドレスを前記プライマリＢＩＯに向けて発行し、前記プライマリＢＩＯ内の情報を変更する第１のアドレス変換工程を行い、
前記第２のＩＯノードは、
前記ＢＩＯＳから前記特定の第２のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスを、前記セカンダリＢＩＯ内の前記第２のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、該変換したＩ／Ｏトランザクションのアドレスを前記セカンダリＢＩＯに向けて発行し、前記セカンダリＢＩＯ内の情報を変更する第２のアドレス変換工程を行い、
前記ＢＩＯＳは、前記特定の第１のアドレス空間で前記第１のＩＯノードにアクセスし、前記プライマリＢＩＯ内の情報を変更すると同時に、前記特定の第２のアドレス空間で前記第２のＩＯノードにアクセスし、前記セカンダリＢＩＯ内の情報をも変更し、前記プライマリＢＩＯ内の情報と、前記セカンダリＢＩＯ内の情報と、を一致させることを特徴とするシステム制御方法。
【請求項６】
ＣＰＵノード上で動作するＢＩＯＳ（Basic Input/Output System）が優先的に使用するプライマリＢＩＯ（Basic Input/Output）を持つ第１のＩＯ（Input/Output）ノードと、前記プライマリＢＩＯの予備となるセカンダリＢＩＯを持つ第２のＩＯノードと、を有するシステム制御装置で実行させるシステム制御プログラムであって、
前記プライマリＢＩＯは、
前記ＢＩＯＳから前記第１のＩＯノードに割り当てられた第１のアドレス空間の中から割り当てられた特定の第１のアドレス空間を持つ第１のＢＩＯコントローラを有し、
前記セカンダリＢＩＯは、
前記ＢＩＯＳから前記第２のＩＯノードに割り当てられた第２のアドレス空間の中から割り当てられた特定の第２のアドレス空間を持つ第２のＢＩＯコントローラを有し、
前記第１のＩＯノードは、
前記ＢＩＯＳから前記特定の第１のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスを、前記プライマリＢＩＯ内の前記第１のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、該変換したＩ／Ｏトランザクションのアドレスを前記プライマリＢＩＯに向けて発行し、前記プライマリＢＩＯ内の情報を変更する第１のアドレス変換工程を行い、
前記第２のＩＯノードは、
前記ＢＩＯＳから前記特定の第２のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスを、前記セカンダリＢＩＯ内の前記第２のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、該変換したＩ／Ｏトランザクションのアドレスを前記セカンダリＢＩＯに向けて発行し、前記セカンダリＢＩＯ内の情報を変更する第２のアドレス変換工程を行い、
前記ＢＩＯＳは、前記特定の第１のアドレス空間で前記第１のＩＯノードにアクセスし、前記プライマリＢＩＯ内の情報を変更すると同時に、前記特定の第２のアドレス空間で前記第２のＩＯノードにアクセスし、前記セカンダリＢＩＯ内の情報をも変更し、前記プライマリＢＩＯ内の情報と、前記セカンダリＢＩＯ内の情報と、を一致させることを特徴とするシステム制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大規模コンピュータシステムにおいて、ＢＩＯ（Basic Input/Output）を持つＩＯ（Input/Output）ノードで故障が発生し、システムダウンが起こっても、システムを正常に立ち上げることが可能なシステム制御装置、システム制御方法及びシステム制御プログラムに関するものである。
【背景技術】
【０００２】
従来の大規模なコンピュータシステムでは、複数のＣＰＵノードやＢＩＯを持たないＩＯノードを搭載している場合には、そのＣＰＵノードやＩＯノードで故障が発生し、システムダウンが起こり、ＣＰＵノードやＩＯノードが切り離された場合でも、システムを再度立ち上げることは可能であったが、ＢＩＯを持つＩＯノードを搭載している場合には、そのＩＯノードが切り離された場合には、システムを再度立ち上げることは不可能であった。
【０００３】
なぜなら、ＢＩＯには、ＲＴＣ（Real Time Clock）や不揮発メモリ、システムタイマ等、システム内に必須の機能が含まれており、ＢＩＯがなければ、システムを立ち上げることが出来ないためである。
【０００４】
この、上述した問題点を回避するために、優先的に使用される本来のＢＩＯを持つＩＯノードの他に、予備のＢＩＯをシステム内に搭載し、優先的に使用される本来のＢＩＯを持つＩＯノードが故障して切り離された時に、予備のＢＩＯを使用してシステムを再度立ち上げることが考えられる。
【０００５】
しかしながら、ＢＩＯ内には、使用以前の運用時の値を保持していなければならない機能が２つある。
【０００６】
１つ目の機能は、日時情報を保持するＲＴＣである。もし、予備のＢＩＯを使用してシステムを再度立ち上げた場合に、ＲＴＣの値が本来の値（本来のＢＩＯのＲＴＣの値）から大きく離れてしまうと、システムの立ち上げ時に、ＯＳ（Operating System）等の日時情報が本来の日時から大きく離れることになる。
【０００７】
特に問題となるのが、日時情報が使用以前の運用時の時刻より前に戻ってしまうことである。この問題が発生すると、ＯＳや各種アプリケーションが記録するログ情報が不正となり、データベースのロールバック制御が出来なくなる等、ＯＳやアプリケーションの動作に悪い影響を与えることになる。
【０００８】
２つ目の機能は、ＯＳやＢＩＯＳ（Basic Input/Output System）等がシステムの立ち上げをまたいで保持しておきたい立ち上げ情報を格納するための不揮発メモリである。もし、予備のＢＩＯを持つＩＯノードを使用してシステムを再度立ち上げた場合に、不揮発メモリの値が本来の値（本来のＢＩＯの不揮発メモリの値）から変わってしまうと、ＢＩＯＳの設定が本来の設定値から変わってしまったり、ＯＳのブートパスが本来のものから変わったりしてしまい、システムを正常に運用することができない虞がある。
【０００９】
すなわち、予備のＢＩＯを使用してシステムを正常に立ち上げるためには、本来のＢＩＯ内のＲＴＣや不揮発メモリの情報と、予備のＢＩＯ内のＲＴＣや不揮発メモリの情報と、を一致させておく必要がある。その方法として、本来のＢＩＯ内のＲＴＣや不揮発メモリの情報を変更する際に、予備のＢＩＯ内のＲＴＣや不揮発メモリの情報も変更することが考えられる。
【００１０】
幸い、ＤＩＧ６４（ＩＡ−６４プラットフォームにおけるハードウエア/ソフトウェアの互換性に関する仕様，http://www.dig64.org/home参照）等の規定では、ＯＳやアプリケーションがＲＴＣや不揮発メモリに対して直接アクセスすることは許されておらず、必ずＢＩＯＳが用意する関数を使用してアクセスすることになっている。このため、一般のＯＳやアプリケーションを改良する必要が無く、ＳＷ（Soft Ware）側は、ＢＩＯＳのみの改良で済むことになる。
【００１１】
しかしながら、ＲＴＣや不揮発メモリ、システムタイマ等の機能は、ＡＴ互換機（１９８４年にＩＢＭ社が発売したＰＣ（Personal Computer）／ＡＴ（Advanced Technology）を基礎とするＰＣ）の時代からずっと互換性を保ったまま続いているものであり、システム内に１つしか存在しないことを前提としている。このため、一般のＰＣ等で大量に使用されているＢＩＯコントローラ（例えば、Ｉｎｔｅｌ社のＩＣＨ４等）が使用するアドレス空間は、ＡＴ互換機のアドレス割り当てで固定となっており変更することが出来ないのが現状である。
【００１２】
このため、本来のＢＩＯと、予備のＢＩＯと、でアドレス空間が重なってしまい、システムを立ち上げることが出来ず、結果として、本来のＢＩＯ内のＲＴＣや不揮発メモリの情報と、予備のＢＩＯ内のＲＴＣや不揮発メモリの情報と、を一致させることも出来ないことになる。
【００１３】
なお、本発明より先に公開された技術文献として、大規模コンピュータシステムのＩ／Ｏアドレス空間の割り当てを行うアドレス割当装置において、Ｉ／Ｏアドレス空間を細分化してなるそれぞれの細分化Ｉ／Ｏアドレス空間にそれぞれのＰＣＩデバイスを割り当て、細分化Ｉ／Ｏアドレス空間に対してそれぞれの二次ＰＣＩバスのＩ／Ｏアドレス空間をたすき掛け状に割り当てて、ベースアドレスレジスタを設定するベースアドレスレジスタ設定手段と、それぞれの二次ＰＣＩバスに割り当てられたＩ／Ｏアドレス空間を、それぞれの一次ＰＣＩバスのＩ／Ｏアドレス空間にたすき掛け状に割り当てて、ルーティングレジスタを設定するルーティングレジスタ設定手段とを備え、大規模コンピュータシステムにおいて、Ｉ／Ｏアドレス空間の割り当てを効率よく行うようにしたアドレス割当装置が開示された文献がある（例えば、特許文献１参照）。
【特許文献１】特開２００３−３３７７８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
なお、上記特許文献１は、大規模コンピュータシステムにおいて、Ｉ／Ｏアドレス空間の割り当てを効率よく行うようにしたものであり、ＢＩＯを持つＩＯノードで故障が発生しても、システムを正常に立ち上げることを可能にする点については何ら考慮されたものではない。
【００１５】
本発明は、上記事情に鑑みてなされたものであり、ＢＩＯを持つＩＯノードで故障が発生しても、システムを正常に立ち上げることを可能とするシステム制御装置、システム制御方法及びシステム制御プログラムを提供することを特徴とするものである。
【課題を解決するための手段】
【００１６】
かかる目的を達成するために、本発明は以下の特徴を有することとする。
【００１７】
＜システム制御装置＞
本発明にかかるシステム制御装置は、
ＣＰＵノード上で動作するＢＩＯＳ（Basic Input/Output System）が優先的に使用するプライマリＢＩＯ（Basic Input/Output）を持つ第１のＩＯ（Input/Output）ノードと、前記プライマリＢＩＯの予備となるセカンダリＢＩＯを持つ第２のＩＯノードと、を有するシステム制御装置であって、
前記プライマリＢＩＯは、
前記ＢＩＯＳから前記第１のＩＯノードに割り当てられた第１のアドレス空間の中から割り当てられた特定の第１のアドレス空間を持つ第１のＢＩＯコントローラを有し、
前記セカンダリＢＩＯは、
前記ＢＩＯＳから前記第２のＩＯノードに割り当てられた第２のアドレス空間の中から割り当てられた特定の第２のアドレス空間を持つ第２のＢＩＯコントローラを有し、
前記第１のＩＯノードは、
前記ＢＩＯＳから前記特定の第１のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスを、前記プライマリＢＩＯ内の前記第１のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、該変換したＩ／Ｏトランザクションのアドレスを前記プライマリＢＩＯに向けて発行し、前記プライマリＢＩＯ内の情報を変更する第１のアドレス変換手段を有し、
前記第２のＩＯノードは、
前記ＢＩＯＳから前記特定の第２のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスを、前記セカンダリＢＩＯ内の前記第２のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、該変換したＩ／Ｏトランザクションのアドレスを前記セカンダリＢＩＯに向けて発行し、前記セカンダリＢＩＯ内の情報を変更する第２のアドレス変換手段を有し、
前記ＢＩＯＳは、前記特定の第１のアドレス空間で前記第１のＩＯノードにアクセスし、前記プライマリＢＩＯ内の情報を変更すると同時に、前記特定の第２のアドレス空間で前記第２のＩＯノードにアクセスし、前記セカンダリＢＩＯ内の情報をも変更し、前記プライマリＢＩＯ内の情報と、前記セカンダリＢＩＯ内の情報と、を一致させることを特徴とする。
【００１８】
＜システム制御方法＞
本発明にかかるシステム制御方法は、
ＣＰＵノード上で動作するＢＩＯＳ（Basic Input/Output System）が優先的に使用するプライマリＢＩＯ（Basic Input/Output）を持つ第１のＩＯ（Input/Output）ノードと、前記プライマリＢＩＯの予備となるセカンダリＢＩＯを持つ第２のＩＯノードと、を有するシステム制御装置で行うシステム制御方法であって、
前記プライマリＢＩＯは、
前記ＢＩＯＳから前記第１のＩＯノードに割り当てられた第１のアドレス空間の中から割り当てられた特定の第１のアドレス空間を持つ第１のＢＩＯコントローラを有し、
前記セカンダリＢＩＯは、
前記ＢＩＯＳから前記第２のＩＯノードに割り当てられた第２のアドレス空間の中から割り当てられた特定の第２のアドレス空間を持つ第２のＢＩＯコントローラを有し、
前記第１のＩＯノードは、
前記ＢＩＯＳから前記特定の第１のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスを、前記プライマリＢＩＯ内の前記第１のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、該変換したＩ／Ｏトランザクションのアドレスを前記プライマリＢＩＯに向けて発行し、前記プライマリＢＩＯ内の情報を変更する第１のアドレス変換工程を行い、
前記第２のＩＯノードは、
前記ＢＩＯＳから前記特定の第２のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスを、前記セカンダリＢＩＯ内の前記第２のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、該変換したＩ／Ｏトランザクションのアドレスを前記セカンダリＢＩＯに向けて発行し、前記セカンダリＢＩＯ内の情報を変更する第２のアドレス変換工程を行い、
前記ＢＩＯＳは、前記特定の第１のアドレス空間で前記第１のＩＯノードにアクセスし、前記プライマリＢＩＯ内の情報を変更すると同時に、前記特定の第２のアドレス空間で前記第２のＩＯノードにアクセスし、前記セカンダリＢＩＯ内の情報をも変更し、前記プライマリＢＩＯ内の情報と、前記セカンダリＢＩＯ内の情報と、を一致させることを特徴とする。
【００１９】
＜システム制御プログラム＞
本発明にかかるシステム制御プログラムは、
ＣＰＵノード上で動作するＢＩＯＳ（Basic Input/Output System）が優先的に使用するプライマリＢＩＯ（Basic Input/Output）を持つ第１のＩＯ（Input/Output）ノードと、前記プライマリＢＩＯの予備となるセカンダリＢＩＯを持つ第２のＩＯノードと、を有するシステム制御装置で実行させるシステム制御プログラムであって、
前記プライマリＢＩＯは、
前記ＢＩＯＳから前記第１のＩＯノードに割り当てられた第１のアドレス空間の中から割り当てられた特定の第１のアドレス空間を持つ第１のＢＩＯコントローラを有し、
前記セカンダリＢＩＯは、
前記ＢＩＯＳから前記第２のＩＯノードに割り当てられた第２のアドレス空間の中から割り当てられた特定の第２のアドレス空間を持つ第２のＢＩＯコントローラを有し、
前記第１のＩＯノードは、
前記ＢＩＯＳから前記特定の第１のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスを、前記プライマリＢＩＯ内の前記第１のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、該変換したＩ／Ｏトランザクションのアドレスを前記プライマリＢＩＯに向けて発行し、前記プライマリＢＩＯ内の情報を変更する第１のアドレス変換工程を行い、
前記第２のＩＯノードは、
前記ＢＩＯＳから前記特定の第２のアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、該受け付けたＩ／Ｏトランザクションのアドレスを、前記セカンダリＢＩＯ内の前記第２のＢＩＯコントローラが固定で持つアドレス空間を示すように変換し、該変換したＩ／Ｏトランザクションのアドレスを前記セカンダリＢＩＯに向けて発行し、前記セカンダリＢＩＯ内の情報を変更する第２のアドレス変換工程を行い、
前記ＢＩＯＳは、前記特定の第１のアドレス空間で前記第１のＩＯノードにアクセスし、前記プライマリＢＩＯ内の情報を変更すると同時に、前記特定の第２のアドレス空間で前記第２のＩＯノードにアクセスし、前記セカンダリＢＩＯ内の情報をも変更し、前記プライマリＢＩＯ内の情報と、前記セカンダリＢＩＯ内の情報と、を一致させることを特徴とする。
【発明の効果】
【００３２】
本発明によれば、優先的に使用するプライマリＢＩＯ（Basic Input/Output）を持つ第１のＩＯ（Input/Output）ノードと、プライマリＢＩＯの予備となるセカンダリＢＩＯを持つ第２のＩＯノードと、を有するシステム制御装置において、第１のＩＯノードに割り当てられる第１のアドレス空間と、第２のＩＯノードに割り当てられる第２のアドレス空間と、は異なるアドレス空間であり、第１のアドレス空間で第１のＩＯノードにアクセスし、プライマリＢＩＯ内の情報を変更すると共に、第２のアドレス空間で第２のＩＯノードにアクセスし、セカンダリＢＩＯ内の情報をも変更し、プライマリＢＩＯ内の情報と、セカンダリＢＩＯ内の情報と、を一致させることで、優先的に使用するプライマリＢＩＯを持つ第１のＩＯノードで故障が発生しても、システムを正常に立ち上げることが可能となる。
【発明を実施するための最良の形態】
【００３３】
まず、図１を参照しながら、本実施形態におけるシステム制御装置の特徴について説明する。
【００３４】
本実施形態におけるシステム制御装置は、優先的に使用するプライマリＢＩＯ（Basic Input/Output）（５７）を持つ第１のＩＯ（Input/Output）ノード（４）と、プライマリＢＩＯ（５７）の予備となるセカンダリＢＩＯ（７７）を持つ第２のＩＯノード（５）と、を有するシステム制御装置であり、第１のＩＯノード（４）に割り当てられる第１のアドレス空間と、第２のＩＯノード（５）に割り当てられる第２のアドレス空間と、は異なるアドレス空間で構成される。そして、システム制御装置は、第１のアドレス空間で第１のＩＯノード（４）にアクセスし、プライマリＢＩＯ（５７）内の情報を変更すると共に、第２のアドレス空間で第２のＩＯノード（５）にアクセスし、セカンダリＢＩＯ（７７）内の情報をも変更し、プライマリＢＩＯ（５７）内の情報と、セカンダリＢＩＯ（７７）内の情報と、を一致させることを特徴とするものである。
【００３５】
詳細には、図１に示すように、第２のＩＯノード（５）は、ＢＩＯＳから第２のＩＯノード（５）に対して割り当てられたＩ／Ｏアドレス空間のうち、１KbyteのI／Ｏアドレス空間を、セカンダリＢＩＯ（７７）に割り当て、その割り当てたＩ／Ｏアドレス空間の最下位のアドレスを、第２のＩＯノード（５）内のアドレス変換部（７８）にあるアドレス変換ベースレジスタに設定する。
【００３６】
そして、第２のＩ／Ｏノード（５）は、第２のＩＯノード（５）に割り当てられたＩ／Ｏアドレス空間へのＩ／ＯトランザクションをＢＩＯＳから受け付けると、その受け付けたＩ／ＯトランザクションのＩ／Ｏアドレス空間から、アドレス変換部（７８）内のアドレス変換ベースレジスタに設定された最下位のアドレスだけ減算したＩ／Ｏアドレス空間のＩ／Ｏトランザクションに変換し、その変換したＩ／Ｏアドレス空間のＩ／Ｏトランザクションを、セカンダリＢＩＯ（７７）に向けて発行し、セカンダリＢＩＯ（７７）内のＲＴＣ（７６）や不揮発メモリ（６９）の情報を変更することになる。
【００３７】
これにより、ＣＰＵノード（１，２）上で動作し、基本的な機能をＯＳ等に提供するＢＩＯＳは、一般的なシステムで割り当てられる固有のＩ／Ｏアドレス空間でアクセス可能なプライマリＢＩＯ（５７）内のＲＴＣ（５６）や不揮発メモリ（４９）の情報だけではなく、アドレス変換部（７８）にあるアドレス変換ベースレジスタに設定したＩ／Ｏアドレス空間でアクセス可能なセカンダリＢＩＯ（７７）内のＲＴＣ（７６）や不揮発メモリ（６９）の情報も変更するように制御することが可能となる。また、システムの立ち上げ時に、プライマリＢＩＯ（５７）内のＲＴＣ（５６）や不揮発メモリ（４９）の情報を、セカンダリＢＩＯ（７７）内のＲＴＣ（７６）や不揮発メモリ（６９）にコピーし、プライマリＢＩＯ（５７）内のＲＴＣ（５６）や不揮発メモリ（４９）の情報と、セカンダリＢＩＯ（７７）内のＲＴＣ（７６）や不揮発メモリ（６９）の情報と、を、常に、一致させるように制御することが可能となる。
【００３８】
このように、本実施形態のシステム制御装置は、プライマリＢＩＯ（５７）内の時刻情報や立ち上げ情報等を、セカンダリＢＩＯ（７７）に随時バックアップすることが可能となるため、プライマリＢＩＯ（５７）を持つ第１のＩＯノード（４）で故障等が発生し、プライマリＢＩＯ（５７）を持つ第１のＩＯノード（４）が切り離されても、セカンダリＢＩＯ（７７）内の情報を使用してシステムを正常に立ち上げることが可能となる。
【００３９】
また、ＩＯノードコントローラ（６０）にアドレス変換部（７８）を設け、ＩＯノードコントローラ（６０）に割り当てられたＩ／Ｏアドレス空間へのアクセスを受け付けた場合に、アドレス変換部（７８）において、その受け付けたアクセスのＩ／Ｏアドレス空間を、ＢＩＯコントローラ（６４）が固定で持っているアドレス空間を示すＩ／Ｏアドレス空間のアクセスに変換し、その変換したＩ／Ｏアドレス空間のアクセスをセカンダリＢＩＯ（７７）に向けて発行することで、ＢＩＯコントローラ（６４）は、そのＩ／Ｏアドレス空間のアクセスを受け付けることが可能となるため、一般のＰＣ等で大量に使用されている既存のＢＩＯコントローラをそのまま使用して、システムを正常に立ち上げることが可能となる。以下、添付図面を参照しながら、本実施形態におけるシステム制御装置について説明する。
【００４０】
（大規模コンピュータシステムのシステム構成）
まず、図１を参照しながら、本実施形態における大規模コンピュータシステムのシステム構成について説明する。なお、図１は、複数のＣＰＵノード（１，２）と、複数のＩＯノード（４，５）と、をクロスバネットワーク（３）で接続した大規模コンピュータシステムのシステム構成を示す図である。
【００４１】
本実施形態における大規模コンピュータシステムは、図１に示すように、複数のＣＰＵノード（１，２）と、複数のＩＯノード（４，５）と、をクロスバネットワーク（３）で接続して構成される。
【００４２】
第１のＣＰＵノード（１）は、複数のＣＰＵ（１０〜１１）と、ＣＰＵバス（１２）と、ＣＰＵノードコントローラ（１３）と、メインメモリ（１４）と、を有して構成される。
【００４３】
また、第２のＣＰＵノード（２）も、第１のＣＰＵノード（１）と同様に、複数のＣＰＵ（２０〜２１）と、ＣＰＵバス（２２）と、ＣＰＵノードコントローラ（２３）と、メインメモリ（２４）と、を有して構成される。
【００４４】
第１のＩＯノード（４）は、ＩＯノードコントローラ（４０）と、ＢＩＯコントローラ（４４）と、ＬＰＣ（Low Pin Count）  Ｉ／Ｆ（４６）と、不揮発メモリ（４９）と、Ｓｕｐｅｒ  Ｉ／Ｏ（５０）と、ＰＣＩ（Peripheral Component Interconnect）−Ｘコントローラ（４５）と、ＰＣＩ−ＸＢｕｓ（４７〜４８）と、ＰＣＩ−Ｘデバイス（５１〜５２）と、を有して構成される。
【００４５】
なお、第２のＩＯノード（５）は、第１のＩＯノード（４）と同様に、ＩＯノードコントローラ（６０）と、ＢＩＯコントローラ（６４）と、ＬＰＣ  Ｉ／Ｆ（６６）と、不揮発メモリ（６９）と、Ｓｕｐｅｒ  Ｉ／Ｏ（７０）と、ＰＣＩ−Ｘコントローラ（６５）と、ＰＣＩ−ＸＢｕｓ（６７〜６８）と、ＰＣＩ−Ｘデバイス（７１〜７２）と、を有して構成される。
【００４６】
ＢＩＯコントローラ（４４，６４）は、ＬＰＣ  Ｉ／Ｆ（４６，６６）を制御するＬＰＣ  Ｉ／Ｆ制御部（５５，７５）と、日時情報を持つＲＴＣ（５６，７６）と、を有して構成される。
【００４７】
不揮発メモリ（４９，６９）は、システム／ＯＳの立ち上げ時に必要となる情報（立ち上げ情報）等を保持する。
【００４８】
Ｓｕｐｅｒ  Ｉ／Ｏ（５０，７０）は、ＳＭＳＣ社のLPC47S422（http://www.smsc.com/main/catalog/lpc47s422.html参照）のような、キーボード／マウスの制御や、ＲＳ２３２ＣシリアルＩ／Ｆの制御等を行うＬＳＩである。
【００４９】
なお、本実施形態のＩＯノード（４，５）においては、ＢＩＯコントローラ（４４，６４）と、ＬＰＣ  Ｉ／Ｆ（４６，６６）と、不揮発メモリ（４９，６９）と、Ｓｕｐｅｒ  Ｉ／Ｏ（５０，７０）と、を統合した構成を、ＢＩＯ（Basic Input/Output）と称するものとする。
【００５０】
また、本実施形態の大規模コンピュータシステムでは、第１のＩ／Ｏノード（４）内のＢＩＯ（５７）を、ＢＩＯＳが優先的に使用することになり、プライマリＢＩＯと称するものとする。また、第２のＩ／Ｏノード（５）内のＢＩＯ（７７）を、プライマリＢＩＯ（５７）の予備として使用することになり、セカンダリＢＩＯと称するものとする。
【００５１】
また、ＩＯノードコントローラ（４０，６０）は、アドレス変換部（５８，７８）を有しており、そのアドレス変換部（５８，７８）は、ＢＩＯＳから指定されたアドレス空間へのＩ／Ｏトランザクションを受けた際に、その受け付けたＩ／Ｏトランザクションのアドレスを、特定のアドレス空間を示すように変更し、その変更した特定のアドレス空間のＩ／Ｏトランザクションを、ＢＩＯ（５７，７７）に対して発行することになる。
【００５２】
（大規模コンピュータシステムにおける制御動作）
次に、図２を参照しながら、本実施形態の大規模コンピュータシステムにおける制御動作について説明する。なお、図２は、本実施形態におけるＩ／Ｏアドレスマップを示すものであり、（ａ）は、ＣＰＵノード側から見たＩ／Ｏアドレスマップを示し、（ｂ）は、ＢＩＯのＩ／Ｏアドレス割り当てを示すものである。
【００５３】
図２の（ｂ）のＢＩＯのＩ／Ｏアドレス割り当てに示したのが、ＢＩＯ（５７，７７）が固定で持っているＩ／Ｏアドレス空間である。
【００５４】
アドレス：0x0000〜0x0FFFの４KByteの領域が、ＢＩＯコントローラ（４４，６４）全体が持つＩ／Ｏアドレス空間であり、そのうちのアドレス：0x0070〜0x007Fの１６Byteの領域がＲＴＣ（５６，６６）が持つＩ／Ｏアドレス空間であり、アドレス：0x0F00〜0x0FFFの２５６Byteの領域が不揮発メモリ（４９，６９）が持つＩ／Ｏアドレス空間である。
【００５５】
図２の（ａ）のＣＰＵノード側から見たＩ／Ｏアドレスマップは、システム全体としてのＩ／Ｏアドレス空間を示している。
【００５６】
ＢＩＯＳは、システムの立ち上げ時に、各ＩＯノードに対するＩ／Ｏアドレス空間の割り当てを行うことになり、ＢＩＯＳは、各ＩＯノードが必要とするＩ／Ｏアドレス空間のSizeを認識し、その認識した各ＩＯノードのＩ／Ｏアドレス空間のSizeを基に、各ＩＯノードに必要な容量を割り当てることになる。この時、ＢＩＯＳは、第１のＩＯノード（５）に対しては、４KByte余分にＩ／Ｏアドレス空間を割り当てることになる。
【００５７】
なお、第１のＩＯノード（５）内のＩＯノードコントローラ（６０）は、ＢＩＯＳから割り当てられたＩ／Ｏアドレス空間のうち、１KByteの領域（本実施形態では、アドレス：0x3000〜0x3FFFの４KByteの領域）を、予備のＢＩＯ『セカンダリＢＩＯ（７７）』用のＩ／Ｏアドレス空間としてアドレス変換部（７６）に割り当て、そのＩ／Ｏアドレス空間（アドレス：0x3000〜0x3FFF）の最下位のアドレス（アドレス：0x3000）を、アドレス変換部（７６）内のアドレス変換ベースレジスタに設定する。
【００５８】
これにより、アドレス変換部（７６）は、アドレス：0x3000〜0x3FFFのＩ／Ｏアドレス空間内へのＩ／Ｏトランザクションを受け付けた場合に、その受け付けたＩ／Ｏトランザクションのアドレスから、アドレス変換ベースレジスタに設定されたアドレス：0x3000を減算し、特定のアドレス空間を示すＩ／Ｏトランザクションに変更し、その変更したＩ／ＯトランザクションをセカンダリＢＩＯ（７７）に向けて発行する。
【００５９】
例えば、アドレス変換部（７６）は、アドレス：0x3000へのＩ／Ｏトランザクションを受け付けた場合には、その受け付けたＩ／Ｏトランザクションのアドレス：0x3000から、アドレス変換ベースレジスタに設定されたアドレス：0x3000を減算し、アドレス：0x0000へのＩ／Ｏトランザクションに変更し、その変更したＩ／ＯトランザクションをセカンダリＢＩＯ（７７）に向けて発行することになる。
【００６０】
また、アドレス変換部（７６）は、アドレス：0x3070へのＩ／Ｏトランザクションを受け付けた場合には、その受け付けたＩ／Ｏトランザクションのアドレス：0x3070から、アドレス変換ベースレジスタに設定されたアドレス：0x3000を減算し、アドレス：0x0070へのＩ／Ｏトランザクションに変更し、その変更したＩ／ＯトランザクションをセカンダリＢＩＯ（７７）に向けて発行することになる。
【００６１】
すなわち、セカンダリＢＩＯ（７７）に割り当てたＩ／Ｏアドレス空間へのアクセスがセカンダリＢＩＯ（７７）に来る際には、ＢＩＯコントローラ（６４）が固定で持つＩ／Ｏアドレス空間へのアクセスに変更されていることになるため、ＢＩＯコントローラ（６４）は、そのＩ／Ｏアドレス空間へのアクセスを受け付けることが可能となる。
【００６２】
また、システムの立ち上げの途中で、ＢＩＯＳは、本来のＢＩＯ『プライマリＢＩＯ（５７）』のＲＴＣ（５６）の値を、予備のＢＩＯ『セカンダリＢＩＯ（７７）』のＲＴＣ（７６）にコピーすることが可能となる。
【００６３】
すなわち、ＢＩＯＳは、アドレス：0x0070〜0x007FのＩ／Ｏアドレス空間へのアクセスにより、プライマリＢＩＯ（５７）内のＲＴＣ（５６）の値を読み出し、その読み出した値をアドレス：0x3070〜0x307FのＩ／Ｏアドレス空間へのアクセスにより、セカンダリＢＩＯ（７７）内のＲＴＣ（７６）に書き込むことが可能となる。
【００６４】
また、ＢＩＯＳは、プライマリＢＩＯ（５７）の不揮発メモリ（４９）の値を、セカンダリＢＩＯ（７７）内の不揮発メモリ（６９）にコピーすることが可能となる。
【００６５】
すなわち、ＢＩＯＳは、アドレス：0x0F00〜0x0FFFのＩ／Ｏアドレス空間へのアクセスにより、プライマリＢＩＯ（５７）内の不揮発メモリ（４９）の値を読み出し、その読み出した値を、アドレス：0x3F00〜0x3FFFのＩ／Ｏアドレス空間へのアクセスにより、セカンダリＢＩＯ（７７）内の不揮発メモリ（６９）に書き込むことが可能となる。その後は、通常と同様の立ち上げ処理が行われ、システムが運用状態になる。
【００６６】
なお、システム運用中において、ＢＩＯ内のＲＴＣや不揮発メモリの値を変更する時がある。例えば、ユーザ等が時刻を変更した時や、ブートパスを変更したい時等が挙げられる。この時、ＲＴＣや不揮発メモリに実際にアクセスするＢＩＯＳは、アドレス：0x0070〜0x007Fやアドレス：0x0F00〜0x0FFFのＩ／Ｏアドレス空間へのアクセスにより、プライマリＢＩＯ（５７）内のＲＴＣ（５６）や不揮発メモリ（４９）の値を変更すると同時に、アドレス：0x3070〜0x307Fやアドレス：0x3F00〜0x3FFFのＩ／Ｏアドレス空間へのアクセスにより、セカンダリＢＩＯ（７７）内のＲＴＣ（７６）や不揮発メモリ（６９）の値も同じ値に変更することが可能となる。
【００６７】
なお、ＤＩＧ６４等の規定に従うと、ＯＳやアプリケーションは、ＲＴＣや不揮発メモリに直接アクセスすることは禁止されており、ＯＳやアプリケーションの変更は必要ない。
【００６８】
これにより、システム内の本来のＢＩＯ『プライマリＢＩＯ（５７）』のＲＴＣ（５６）や不揮発メモリ（４９）の情報と、予備のＢＩＯ『セカンダリＢＩＯ（７７）』のＲＴＣ（７６）や不揮発メモリ（６９）の情報と、を、常に一致させることが可能となる。その結果、本来のＢＩＯ『（プライマリＢＩＯ（５７））を持つ第１のＩ／Ｏノード（４）が故障等で切り離された場合でも、予備のＢＩＯ『セカンダリＢＩＯ（７７）』を用いてシステムを直ちに立ち上げることが可能となる。
【００６９】
なお、上述する実施形態は、本発明の好適な実施形態であり、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【００７０】
例えば、上述した実施形態においては、第２のＩＯノード（５）が、ＩＯノードコントローラ（６０）に指定されたアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、その受け付けたＩ／Ｏトランザクションのアドレスを、アドレス変換部（７８）において、特定のアドレス空間を示すように変換し、その変換したＩ／Ｏトランザクションのアドレスを、セカンダリＢＩＯ（７７）に向けて発行し、セカンダリＢＩＯ（７７）内のＲＴＣ（７６）の日時情報や、不揮発メモリ（６９）の情報を変更することにしたが、第１のＩＯノード（４）でも、第２のＩＯノード（５）と同様に、第１のＩＯノード（４）が、ＩＯノードコントローラ（４０）に指定されたアドレス空間へのＩ／Ｏトランザクションを受け付けた際に、その受け付けたＩ／Ｏトランザクションのアドレスを、アドレス変換部（５８）において、特定のアドレス空間を示すように変換し、その変換したＩ／Ｏトランザクションのアドレスを、プライマリＢＩＯ（５７）に向けて発行し、プライマリＢＩＯ（５７）内のＲＴＣ（５６）の日時情報や、不揮発メモリ（４９）の情報を変更するようにすることも可能である。
【００７１】
また、図１に示す大規模コンピュータシステムでは、ＣＰＵノード（１，２）と、ＩＯノード（４，５）と、を、クロスバネットワーク（３）を介して接続するように構成したが、ＣＰＵノード（１，２）と、ＩＯノード（４，５）と、の接続は、特に限定するものではなく、ＣＰＵノード（１，２）と、ＩＯノード（４，５）と、の間で情報の送受信が可能であれば、あらゆるネットワークを用いて構成しても良く、例えば、完全網などの他のネットワークや、複数のネットワークを用いて接続することも可能である。
【００７２】
また、上述した本実施形態のＩＯノード（４，５）における制御動作は、ハード構成ではなく、コンピュータプログラム等のソフトウェアにより実行することも可能であり、また、上記のプログラムは、光記録媒体、磁気記録媒体、光磁気記録媒体、または半導体等の記録媒体に記録し、その記録媒体から上記プログラムを、ＩＯノード（４，５）に読み込ませることで、上述した制御動作を、ＩＯノード（４，５）において実行させることも可能である。また、所定のネットワークを介して接続されている外部機器から上記プログラムをＩＯノード（４，５）に読み込ませることで、上述した制御動作を、ＩＯノード（４，５）において実行させることも可能である。
【産業上の利用可能性】
【００７３】
本発明にかかるシステム制御装置、システム制御方法及びシステム制御プログラムは、多数のデバイスを搭載した大規模コンピュータシステムに適用可能である。
【図面の簡単な説明】
【００７４】
【図１】本実施形態における大規模コンピュータシステムのシステム構成を示す図である。
【図２】本実施形態における大規模コンピュータシステムでのＩ／Ｏアドレスマップを示す図である。
【符号の説明】
【００７５】
１，２    ＣＰＵノード
３    クロスバスネットワーク
４，５    ＩＯノード
１０，１１，２０，２１    ＣＰＵ
１２，２２    ＣＰＵバス
１３，２３    ＣＰＵノードコントローラ
１４，２４    メインメモリ
４０，６０    ＩＯノードコントローラ
４４，６４    ＢＩＯコントローラ
４５，６５    ＰＣＩ−Ｘコントローラ
４６，６６    ＬＰＣ  Ｉ／Ｆ
４９，６９    不揮発メモリ
５０，７０    Ｓｕｐｅｒ  Ｉ／Ｏ
４７，４８，６７，６８    ＰＣＩ−ＸＢｕｓ
５１，５２，７１，７２    ＰＣＩ−Ｘデバイス
５５，７５    ＬＰＣ  Ｉ／Ｆ  制御部
５６，７６    ＲＴＣ
５７    プライマリＢＩＯ
７７    セカンダリＢＩＯ
５８，７８    アドレス変換部
【図１】
0004472646.tif 000002
【図２】
0004472646.tif 000003