(57)【要約】【課題】リソース消費を抑制しながらデバイスの冗長構成を実現する。【解決手段】情報処理装置２０１は、自己に設定されたアドレスを宛先とするデータを第１のバスＢ１経由でＰＣＩデバイスｄ１１〜ｄ１ｎへ出力するためのＰＣＩ−ＰＣＩブリッジ２と、自己に設定されたアドレスを宛先とするデータを第２のバスＢ２経由でＰＣＩデバイスｄ２１〜ｄ２ｎへ出力するためのＰＣＩ−ＰＣＩブリッジ３と、演算処理部１０１がアクセス可能なアドレス空間における一部または全部のアドレスをＰＣＩデバイスｄ１１〜ｄ１ｎに割り当て、かつ割り当てたアドレスと同じアドレスをＰＣＩデバイスｄ２１〜ｄ２ｎに割り当てるためのリソース割り当て部６とを備え、リソース割り当て部６は、割り当てたアドレスをＰＣＩ−ＰＣＩブリッジ２に設定し、割り当てたアドレスをＰＣＩ−ＰＣＩブリッジ３には設定しない。【選択図】図２
2011204077.tif 000002
【特許請求の範囲】
【請求項１】
演算処理部と、
１または複数の第１のデバイスが接続される第１のバスと、
１または複数の第２のデバイスが接続される第２のバスと、
前記演算処理部に接続された第３のバスと、
前記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第１のバス経由で前記１または複数の第１のデバイスへ出力するための第１のブリッジ部と、
前記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第２のバス経由で前記１または複数の第２のデバイスへ出力するための第２のブリッジ部とを備え、
前記演算処理部は、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記１または複数の第１のデバイスに割り当て、かつ前記割り当てたアドレスと同じアドレスを前記１または複数の第２のデバイスに割り当てるためのリソース割り当て部を含み、
前記リソース割り当て部は、前記割り当てたアドレスを前記第１のブリッジ部に設定し、前記割り当てたアドレスを前記第２のブリッジ部には設定しない、情報処理装置。
【請求項２】
前記演算処理部は、さらに、
前記１または複数の第１のデバイスと前記演算処理部との間のデータ通信を監視するためのリソース管理制御部を含み、
前記リソース管理制御部は、前記第１のデバイスとの間のデータ通信に異常が発生した場合には、前記１または複数の第１のデバイスおよび前記１または複数の第２のデバイスに割り当てたアドレスの前記第１のブリッジ部への設定を取り消し、前記割り当てたアドレスを前記第２のブリッジ部に設定する、請求項１に記載の情報処理装置。
【請求項３】
前記１または複数の第１のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第１のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記１または複数の第２のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第２のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記第１のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第３のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記１または複数の第１のデバイスへ出力し、
前記第２のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第３のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記１または複数の第２のデバイスへ出力し、
前記リソース割り当て部は、前記１または複数の第１のデバイスおよび前記１または複数の第２のデバイスに割り当てたアドレスを前記１または複数の第１のデバイスおよび前記１または複数の第２のデバイスのレジスタにそれぞれ書き込み、
前記リソース割り当て部は、前記割り当てたアドレスを前記第１のブリッジ部におけるレジスタに書き込み、前記第２のブリッジ部におけるレジスタに無効なアドレスを書き込む、請求項１または２に記載の情報処理装置。
【請求項４】
前記リソース管理制御部は、前記１または複数の第１のデバイスとの間のデータ通信に異常が発生した場合には、前記第１のブリッジ部におけるレジスタに無効なアドレスを書き込み、前記割り当てたアドレスを前記第２のブリッジ部におけるレジスタに書き込む、請求項３に記載の情報処理装置。
【請求項５】
前記リソース割り当て部は、前記演算処理部がＢＩＯＳ（Basic Input Output System）プログラムを実行することにより構成され、
前記リソース管理制御部は、前記演算処理部がＯＳ（Operating System）プログラムを実行することにより構成される、請求項１から４のいずれかに記載の情報処理装置。
【請求項６】
演算処理部と、１または複数の第１のデバイスが接続される第１のバスと、１または複数の第２のデバイスが接続される第２のバスと、前記演算処理部に接続された第３のバスと、前記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第１のバス経由で前記１または複数の第１のデバイスへ出力するための第１のブリッジ部と、前記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第２のバス経由で前記１または複数の第２のデバイスへ出力するための第２のブリッジ部とを備えた情報処理装置におけるリソース割り当て方法であって、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記１または複数の第１のデバイスに割り当てるステップと、
前記割り当てたアドレスと同じアドレスを前記１または複数の第２のデバイスに割り当てるステップと、
前記割り当てたアドレスを前記第１のブリッジ部に設定し、前記割り当てたアドレスを前記第２のブリッジ部には設定しないステップとを含む、リソース割り当て方法。
【請求項７】
演算処理部と、１または複数の第１のデバイスが接続される第１のバスと、１または複数の第２のデバイスが接続される第２のバスと、前記演算処理部に接続された第３のバスと、前記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第１のバス経由で前記１または複数の第１のデバイスへ出力するための第１のブリッジ部と、前記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第２のバス経由で前記１または複数の第２のデバイスへ出力するための第２のブリッジ部とを備えた情報処理装置におけるリソース割り当てプログラムであって、コンピュータに、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記１または複数の第１のデバイスに割り当てるステップと、
前記割り当てたアドレスと同じアドレスを前記１または複数の第２のデバイスに割り当てるステップと、
前記割り当てたアドレスを前記第１のブリッジ部に設定し、前記割り当てたアドレスを前記第２のブリッジ部には設定しないステップとを実行させる、リソース割り当てプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、リソース割り当て方法、およびリソース割り当てプログラムに関し、特に、冗長化されたデバイスが実装される情報処理装置、ならびにこの情報処理装置におけるリソース割り当て方法およびリソース割り当てプログラムに関する。
【背景技術】
【０００２】
ＰＣＩ（Peripheral Component Interconnect）バスを備えたコンピュータシステムにおけるリソース割り当て方法の一例として、たとえば、特許文献１（特開２００２−２８８１０４号公報）には、以下のような技術が開示されている。すなわち、リソースを周辺デバイスに割り当てて動作するコンピュータシステムであって、現在搭載している上記周辺デバイスから、それらの動作に必要なリソースの容量を取得する処理と、将来搭載するであろう周辺デバイスの動作に必要なリソースの容量を、ユーザの入力により取得する処理と、現在搭載している上記周辺デバイスの動作に必要なリソースの上記容量と、将来搭載するであろう上記周辺デバイスの動作に必要なリソースの上記容量とを含めて、周辺デバイス用のリソースを割り当てる処理とを有するファームウェアを記憶したメモリと、システム運転中に、新たな周辺デバイスが追加されると、将来搭載するであろう上記周辺デバイスのために割り当てておいたリソースを、新たに追加された上記周辺デバイスに割り当てる処理を有するソフトウェアを記憶した記憶装置と、起動時に上記メモリから上記ファームウェアを取り出して実行し、運用中に新たな周辺デバイスが追加されると、上記ソフトウェアを実行するＣＰＵとを備える。
【０００３】
また、特許文献２（特開２００８−０７１０４２号公報）には、以下のような技術が開示されている。すなわち、周辺デバイスを接続することのできるコンピュータシステムであって、周辺デバイス毎にデバイスドライバがＩ／Ｏ空間リソースを必要とするか否かを記述したＩ／Ｏリソースファイルを格納した不揮発性メモリと、起動時に該不揮発性メモリから該Ｉ／Ｏリソースファイルを読み出してメインメモリに展開するシステム管理コントローラと、上記システム管理コントローラによって上記メインメモリに展開された上記Ｉ／Ｏリソースファイルを参照することによって上記周辺デバイスのデバイスドライバがＩ／Ｏ空間リソースを必要とするか否かを調べ、Ｉ／Ｏ空間リソースが必要な周辺デバイスに対してだけＩ／Ｏ空間リソースを割り当てるプロセッサとを備える。
【０００４】
また、特許文献３（特開平１０−１６１９６５号公報）には、以下のような技術が開示されている。すなわち、ＰＣＩデバイスが動作するために必要とするアドレス容量を検出し、このアドレス容量に基づいてベースアドレス・マスク方式により上記ＰＣＩデバイスのアドレスをＩ／Ｏアドレス空間に割り当てるコンピュータのアドレス割り当て装置であって、ＰＣＩブリッジ回路毎にＰＣＩバスを介して接続されているＰＣＩデバイスのアドレス容量を検出するデバイス検出手段と、このデバイス検出手段により検出したＰＣＩデバイスのアドレス容量をＰＣＩブリッジ回路毎に合計するアドレス容量算出手段と、このアドレス容量算出手段により算出した上記ＰＣＩデバイスのアドレス容量情報に基づき上記ＰＣＩデバイスのアドレスを上記Ｉ／Ｏアドレス空間に割り当てるデバイス割り当て手段とを備える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２８８１０４号公報
【特許文献２】特開２００８−０７１０４２号公報
【特許文献３】特開平１０−１６１９６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
コンピュータシステムにおける個々のＰＣＩデバイスには、当該ＰＣＩデバイスにアクセスするための一意的なＩ／Ｏリソースが、オペレーティングシステムまたはＢＩＯＳ（Basic Input Output System）により割り振られている。また、信頼性が重視されるコンピュータシステムにおいては、交換可能な、冗長化されたＰＣＩデバイスが実装されている場合がある。
【０００７】
従来、この冗長化されたＰＣＩデバイスに対して、ＢＩＯＳが一意的なＩ／Ｏリソースを割り当てていた。一方、Ｉ／Ｏリソースは有限である。特に、ｘ８６アーキテクチャには６４ＫＢ（キロバイト）しかＩ／Ｏ空間が無い。このため、Ｉ／Ｏリソースを大量に消費する大規模構成のＰＣＩデバイスを備えたシステムでは、ＰＣＩデバイスの冗長構成を採用することは困難であった。
【０００８】
しかしながら、特許文献１〜特許文献３には、このような問題点を解決するための構成は開示されていない。
【０００９】
この発明は、上述の課題を解決するためになされたもので、その目的は、リソース消費を抑制しながらデバイスの冗長構成を実現することが可能な情報処理装置、リソース割り当て方法、およびリソース割り当てプログラムを提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、この発明のある局面に係わる情報処理装置は、演算処理部と、１または複数の第１のデバイスが接続される第１のバスと、１または複数の第２のデバイスが接続される第２のバスと、上記演算処理部に接続された第３のバスと、上記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを上記第１のバス経由で上記１または複数の第１のデバイスへ出力するための第１のブリッジ部と、上記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを上記第２のバス経由で上記１または複数の第２のデバイスへ出力するための第２のブリッジ部とを備え、上記演算処理部は、上記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを上記１または複数の第１のデバイスに割り当て、かつ上記割り当てたアドレスと同じアドレスを上記１または複数の第２のデバイスに割り当てるためのリソース割り当て部を含み、上記リソース割り当て部は、上記割り当てたアドレスを上記第１のブリッジ部に設定し、上記割り当てたアドレスを上記第２のブリッジ部には設定しない。
【００１１】
上記課題を解決するために、この発明のある局面に係わるリソース割り当て方法は、演算処理部と、１または複数の第１のデバイスが接続される第１のバスと、１または複数の第２のデバイスが接続される第２のバスと、上記演算処理部に接続された第３のバスと、上記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを上記第１のバス経由で上記１または複数の第１のデバイスへ出力するための第１のブリッジ部と、上記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを上記第２のバス経由で上記１または複数の第２のデバイスへ出力するための第２のブリッジ部とを備えた情報処理装置におけるリソース割り当て方法であって、上記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを上記１または複数の第１のデバイスに割り当てるステップと、上記割り当てたアドレスと同じアドレスを上記１または複数の第２のデバイスに割り当てるステップと、上記割り当てたアドレスを上記第１のブリッジ部に設定し、上記割り当てたアドレスを上記第２のブリッジ部には設定しないステップとを含む。
【００１２】
上記課題を解決するために、この発明のある局面に係わるリソース割り当てプログラムは、演算処理部と、１または複数の第１のデバイスが接続される第１のバスと、１または複数の第２のデバイスが接続される第２のバスと、上記演算処理部に接続された第３のバスと、上記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを上記第１のバス経由で上記１または複数の第１のデバイスへ出力するための第１のブリッジ部と、上記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを上記第２のバス経由で上記１または複数の第２のデバイスへ出力するための第２のブリッジ部とを備えた情報処理装置におけるリソース割り当てプログラムであって、コンピュータに、上記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを上記１または複数の第１のデバイスに割り当てるステップと、上記割り当てたアドレスと同じアドレスを上記１または複数の第２のデバイスに割り当てるステップと、上記割り当てたアドレスを上記第１のブリッジ部に設定し、上記割り当てたアドレスを上記第２のブリッジ部には設定しないステップとを実行させる。
【発明の効果】
【００１３】
本発明によれば、リソース消費を抑制しながらデバイスの冗長構成を実現することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係る情報処理装置の概略構成図である。
【図２】本発明の実施の形態に係る情報処理装置におけるバス構成および情報処理装置が提供する制御構造を示すブロック図である。
【図３】本発明の実施の形態に係る情報処理装置がリソース割り当て処理を行なう際の動作手順を示すフローチャートである。
【図４】本発明の実施の形態に係る情報処理装置の正常時におけるリソース割り当て状態を示す図である。
【図５】本発明の実施の形態に係る情報処理装置の異常時におけるリソース割り当て状態を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００１６】
［概要］
従来のコンピュータシステムでは、冗長化されたＰＣＩデバイスのＩ／ＯリソースをＢＩＯＳのみの判断で割り当てていた。これは、オペレーティングシステムに依存せずにＩ／Ｏリソース配分を行なう点で意味があったが、上述の課題が存在する。
【００１７】
そこで、本発明の実施の形態に係る情報処理装置（コンピュータシステム）では、たとえばＢＩＯＳおよびオペレーティングシステムが連携してＩ／Ｏリソースを確保し、ＰＣＩデバイスの冗長性を保ちつつ、確保する必要のあるリソースの量を削減する。
【００１８】
ＰＣＩデバイスは電気的にツリー状の構成をとることができ、分岐点にはＰＣＩ−ＰＣＩブリッジというデバイスが存在する。また、個々のＰＣＩデバイスにはそれぞれＩ／Ｏリソースを割り当てることができる。ＰＣＩ−ＰＣＩブリッジは、配下の処理すべきＰＣＩデバイスに対応するＩ／Ｏリソースの範囲を保持している。
【００１９】
ここで、コンピュータシステムにおいて並列する２つ以上のＰＣＩ−ＰＣＩブリッジの配下を通常系と冗長系に分ける。ＰＣＩ−ＰＣＩブリッジの各々の配下には、同様の、すなわち物理的には異なるが同じ種類のＰＣＩデバイスを実装する。
【００２０】
まず、本発明の実施の形態に係る情報処理装置におけるＩ／Ｏリソース配分方法を説明する。
【００２１】
システム起動時、ＢＩＯＳは、通常系のＰＣＩ−ＰＣＩブリッジ配下のＰＣＩデバイスおよび冗長系のＰＣＩ−ＰＣＩブリッジ配下のＰＣＩデバイスに対してそれぞれ同一のＩ／Ｏリソースを割り当てる。そして、ＢＩＯＳは、冗長系ＰＣＩ−ＰＣＩブリッジにはその配下に制御すべきリソースが存在しない状態にする。
【００２２】
通常のコンピュータシステムでは、異なるデバイスに対して同一のＩ／Ｏリソースを割り当てることはできない。しかしながら、冗長系ＰＣＩ−ＰＣＩブリッジにはその配下に制御すべきリソースが存在しない状態にすることで、重複して割り当てられたＩ／Ｏリソースを矛盾無く隠蔽することができる。
【００２３】
この状態で、ＢＩＯＳによる処理からオペレーティングシステムによる処理に移行すると、オペレーティングシステムは、通常系ＰＣＩ−ＰＣＩブリッジ配下のＰＣＩデバイスのみに正常にＩ／Ｏリソースが割り振られていると判断することができる。そうすると、オペレーティングシステムは、通常系ＰＣＩ−ＰＣＩブリッジ配下のＰＣＩデバイスのみについて初期化を実施し、冗長系ＰＣＩ−ＰＣＩブリッジ配下のＰＣＩデバイスの初期化は実施しない。
【００２４】
次に、本発明の実施の形態に係る情報処理装置において、システム運用中にオペレーティングシステムが通常系ＰＣＩ−ＰＣＩブリッジ配下のＰＣＩデバイスに関する異常を検出し、通常系ＰＣＩデバイスから冗長系ＰＣＩデバイスへの切り替えを行なう際の処理を説明する。
【００２５】
オペレーティングシステムは、異常が検出されたＰＣＩデバイスを閉塞し、さらに、その上位にある通常系ＰＣＩ−ＰＣＩブリッジを閉塞する。ここで、オペレーティングシステムは、通常系ＰＣＩ−ＰＣＩブリッジが処理すべきＩ／Ｏリソースの範囲を取得して保持する。
【００２６】
次に、オペレーティングシステムは、複数の冗長系ＰＣＩ−ＰＣＩブリッジのうちの一つを選択し、保持したＩ／Ｏリソース範囲を、選択した冗長系ＰＣＩ−ＰＣＩブリッジに設定する。そして、オペレーティングシステムは、ＰＣＩホットプラグ機能により、システム運用中において、選択した冗長系ＰＣＩ−ＰＣＩブリッジ配下のＰＣＩデバイスを初期化する。
【００２７】
ここで、選択した冗長系ＰＣＩ−ＰＣＩブリッジ配下のＰＣＩデバイスには、前述のシステム起動時におけるＩ／Ｏリソース配分方法により、通常系ＰＣＩ−ＰＣＩブリッジ配下のＰＣＩデバイスと同様のＩ／Ｏリソースがすでに割り当てられている。このため、オペレーティングシステムは、選択した冗長系ＰＣＩ−ＰＣＩブリッジ配下のＰＣＩデバイスを矛盾無く初期化することができ、これらのＰＣＩデバイスが動作可能となる。
【００２８】
［構成および基本動作］
本発明の実施の形態に係る情報処理装置は、典型的には、汎用的なアーキテクチャを有するコンピュータを基本構造としており、予めインストールされたプログラムを実行することで、後述するような各種機能を提供する。一般的に、このようなプログラムは、フレキシブルディスク（Flexible Disk）およびＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの記録媒体に格納されて、あるいはネットワークなどを介して流通する。
【００２９】
本発明の実施の形態に係るプログラムは、他のプログラムの一部に組み込まれて提供されるものであってもよい。この場合でも、本発明の実施の形態に係るプログラム自体は、上記のような組み込み先の他のプログラムが有するモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本発明の実施の形態に係るプログラムとしては、このような他のプログラムに組み込まれた形態であってもよい。
【００３０】
なお、代替的に、プログラムの実行により提供される機能の一部または全部を専用のハードウェア回路として実装してもよい。
【００３１】
図１は、本発明の実施の形態に係る情報処理装置の概略構成図である。図１を参照して、情報処理装置２０１は、演算処理部であるＣＰＵ（Central Processing Unit）１０１と、メインメモリ１０２と、ハードディスク１０３と、入力インターフェイス１０４と、表示コントローラ１０５と、データリーダ／ライタ１０６と、通信インターフェイス１０７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。バス１２１は、後述するホストバスおよび／またはＰＣＩバスに対応する。
【００３２】
ＣＰＵ１０１は、ハードディスク１０３に格納されたプログラム（コード）をメインメモリ１０２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１０２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記憶装置であり、ハードディスク１０３から読み出されたプログラムに加えて、各種の演算処理結果を示すデータなどを保持する。また、ハードディスク１０３は不揮発性の磁気記憶装置であり、ＣＰＵ１０１で実行されるプログラムに加えて、各種設定値などが格納される。このハードディスク１０３にインストールされるプログラムは、後述するように、記録媒体１１１に格納された状態で流通する。なお、ハードディスク１０３に加えて、あるいはハードディスク１０３に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
【００３３】
入力インターフェイス１０４は、ＣＰＵ１０１とキーボード１０８、マウス１０９および図示しないタッチパネルなどの入力部との間のデータ伝送を仲介する。すなわち、入力インターフェイス１０４は、ユーザが入力部を操作することで与えられる操作指令などの外部からの入力を受付ける。
【００３４】
表示コントローラ１０５は、表示部の典型例であるディスプレイ１１０と接続され、ディスプレイ１１０での表示を制御する。すなわち、表示コントローラ１０５は、ＣＰＵ１０１による画像処理の結果などをユーザに対して表示する。ディスプレイ１１０は、たとえばＬＣＤ（Liquid Crystal Display）またはＣＲＴ（Cathode Ray Tube）である。
【００３５】
データリーダ／ライタ１０６は、ＣＰＵ１０１と記録媒体１１１の間のデータ伝送を仲介する。すなわち、記録媒体１１１は、情報処理装置２０１で実行されるプログラムなどが格納された状態で流通し、データリーダ／ライタ１０６は、この記録媒体１１１からプログラムを読み出す。また、データリーダ／ライタ１０６は、ＣＰＵ１０１の内部指令に応答して、情報処理装置２０１における処理結果などを記録媒体１１１へ書き込む。なお、記録媒体１１１は、たとえば、ＣＦ（Compact Flash）およびＳＤ（Secure Digital）などの汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）などの磁気記憶媒体、またはＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体である。
【００３６】
通信インターフェイス１０７は、ＣＰＵ１０１と他のパーソナルコンピュータおよびサーバ装置などの間のデータ伝送を仲介する。通信インターフェイス１０７は、典型的には、イーサネット（登録商標）またはＵＳＢ（Universal Serial Bus）の通信機能を有する。なお、記録媒体１１１に格納されたプログラムを情報処理装置２０１にインストールする形態に代えて、通信インターフェイス１０７を介して配信サーバなどからダウンロードしたプログラムを情報処理装置２０１にインストールしてもよい。
【００３７】
また、情報処理装置２０１には、必要に応じてプリンタなどの他の出力装置が接続されてもよい。
【００３８】
［制御構造］
次に、情報処理装置２０１におけるリソース割り当て機能を提供するための制御構造について説明する。
【００３９】
図２は、本発明の実施の形態に係る情報処理装置におけるバス構成および情報処理装置が提供する制御構造を示すブロック図である。
【００４０】
図２は、図１に示すバス１２１およびその周辺構成を詳細に示している。また、図２に示すＣＰＵ１０１における各ブロックは、ハードディスク１０３に格納されたプログラム（コード）などをメインメモリ１０２に展開して、ＣＰＵ１０１に実行させることで提供される。なお、図２に示す情報処理装置２０１の制御構造の一部または全部を専用ハードウェアおよび／または配線回路によって実現してもよい。
【００４１】
図２を参照して、情報処理装置（コンピュータシステム）２０１は、ＣＰＵ（演算処理部）１０１と、ＰＣＩ−ＰＣＩブリッジ（ブリッジ部）２，３と、ＰＣＩデバイス群４，５と、ホスト−ＰＣＩブリッジ８と、ＰＣＩバスＢ１，Ｂ２，Ｂ３と、ホストバスＢＨとを備える。ＣＰＵ１０１は、その制御構造として、リソース割り当て部６と、リソース管理制御部７とを含む。リソース割り当て部６は、たとえばＣＰＵ１０１がシステムＢＩＯＳのプログラムを実行することにより構成される。リソース管理制御部７は、たとえばＣＰＵ１０１がオペレーティングシステムのプログラムを実行することにより構成される。
【００４２】
ＣＰＵ１０１は、図２に示す各部の他に、多くのユニットによって構成されるのが一般的であるが、説明を簡単にするために、本発明に関係しないユニットについては図示していない。
【００４３】
ＰＣＩデバイス群４およびＰＣＩデバイス群５として、互いに同じ種類のデバイスが情報処理装置２０１に実装されている。すなわち、ＰＣＩデバイス群４は、ＰＣＩデバイスｄ１１〜ｄ１ｎを含む。ＰＣＩデバイス群５は、ＰＣＩデバイス群４におけるＰＣＩデバイスｄ１１〜ｄ１ｎとそれぞれ同じ種類のＰＣＩデバイスｄ２１〜ｄ２ｎを含む。ここで、ｎは１以上の整数である。
【００４４】
ＰＣＩバスＢ１は、ＰＣＩ−ＰＣＩブリッジ２とＰＣＩデバイスｄ１１〜ｄ１ｎとの間に接続される。ＰＣＩバスＢ２は、ＰＣＩ−ＰＣＩブリッジ３とＰＣＩデバイスｄ２１〜ｄ２ｎとの間に接続される。ホストバスＢＨは、ＣＰＵ１０１とホスト−ＰＣＩブリッジ８との間に接続される。
【００４５】
ＰＣＩバスＢ３は、ホスト−ＰＣＩブリッジ８と、ＰＣＩ−ＰＣＩブリッジ２およびＰＣＩ−ＰＣＩブリッジ３との間に接続される。
【００４６】
ホスト−ＰＣＩブリッジ８は、ＣＰＵ１０１からホストバスＢＨ経由で受けたデータのうち、自己に設定されたアドレスを宛先とするデータをＰＣＩバスＢ３経由でＰＣＩ−ＰＣＩブリッジ２およびＰＣＩ−ＰＣＩブリッジ３へ出力する。
【００４７】
ＰＣＩ−ＰＣＩブリッジ２は、その配下のＰＣＩデバイス群４を制御する。すなわち、ＰＣＩ−ＰＣＩブリッジ２は、ホスト−ＰＣＩブリッジ８からＰＣＩバスＢ３経由で受けたデータのうち、自己に設定されたアドレスを宛先とするデータをＰＣＩバスＢ１経由でＰＣＩデバイスｄ１１〜ｄ１ｎへ出力する。
【００４８】
ＰＣＩ−ＰＣＩブリッジ３は、その配下のＰＣＩデバイス群５を制御する。すなわち、ＰＣＩ−ＰＣＩブリッジ３は、ホスト−ＰＣＩブリッジ８からＰＣＩバスＢ３経由で受けたデータのうち、自己に設定されたアドレスを宛先とするデータをＰＣＩバスＢ２経由でＰＣＩデバイスｄ２１〜ｄ２ｎへ出力する。
【００４９】
ＣＰＵ１０１は、ホストバスＢＨ、ホスト−ＰＣＩブリッジ８、ＰＣＩバスＢ３、ＰＣＩ−ＰＣＩブリッジ２およびＰＣＩバスＢ１を介してＰＣＩデバイス群４におけるＰＣＩデバイスｄ１１〜ｄ１ｎとデータの送受信を行なう。また、ＣＰＵ１０１は、ホストバスＢＨ、ホスト−ＰＣＩブリッジ８、ＰＣＩバスＢ３、ＰＣＩ−ＰＣＩブリッジ３およびＰＣＩバスＢ２を介してＰＣＩデバイス群５におけるＰＣＩデバイスｄ２１〜ｄ２ｎとデータの送受信を行なう。
【００５０】
ＰＣＩ−ＰＣＩブリッジ２は、処理すべきアドレスを示すＩ／Ｏリソース範囲レジスタｒ１を含む。ＰＣＩ−ＰＣＩブリッジ３は、処理すべきアドレスを示すＩ／Ｏリソース範囲レジスタｒ２を含む。
【００５１】
より詳細には、ＰＣＩ−ＰＣＩブリッジ２および３の各々は、ＰＣＩコンフィギュレーション空間を有する。そして、ＰＣＩ−ＰＣＩブリッジ２および３は、このＰＣＩコンフィギュレーション空間の中で、自身が制御すべきＩ／Ｏリソース、すなわちＭＭＩＯ（Memory Mapped Input Output）空間およびＩ／Ｏ空間の範囲を保持するためのＩ／Ｏリソース範囲レジスタｒ１およびｒ２をそれぞれ含む。
【００５２】
ＰＣＩ−ＰＣＩブリッジ２は、ＰＣＩバスＢ３から受けたデータのうち、Ｉ／Ｏリソース範囲レジスタｒ１に保存されたアドレスを宛先とするデータをＰＣＩデバイスｄ１１〜ｄ１ｎへ出力する。
【００５３】
ＰＣＩ−ＰＣＩブリッジ３は、ＰＣＩバスＢ３から受けたデータのうち、Ｉ／Ｏリソース範囲レジスタｒ２に保存されたアドレスを宛先とするデータをＰＣＩデバイスｄ２１〜ｄ２ｎへ出力する。
【００５４】
ＰＣＩデバイスｄ１１〜ｄ１ｎは、自己のアドレスを保存するためのＩ／Ｏリソース範囲レジスタｒ１１〜ｒ１ｎをそれぞれ含む。ＰＣＩデバイスｄ２１〜ｄ２ｎは、自己のアドレスを保存するためのＩ／Ｏリソース範囲レジスタｒ２１〜ｒ２ｎをそれぞれ含む。すなわち、ＰＣＩデバイスｄ１１〜ｄ１ｎおよびｄ２１〜ｄ２ｎもそれぞれがＰＣＩコンフィギュレーション空間を有する。ＰＣＩデバイスｄ１１〜ｄ１ｎおよびｄ２１〜ｄ２ｎは、このＰＣＩコンフィギュレーション空間の中で自己に割り当てられているＩ／Ｏリソースの範囲を保持するためのＩ／Ｏリソース範囲レジスタｒ１１〜ｒ１ｎおよびｒ２１〜ｒ２ｎをそれぞれ含む。
【００５５】
ＰＣＩデバイスｄ１１〜ｄ１ｎは、ＰＣＩ−ＰＣＩブリッジ２から送信されるデータのうち、Ｉ／Ｏリソース範囲レジスタｒ１１〜ｒ１ｎにそれぞれ保存された自己のアドレスを宛先とするデータを選択して受け取る。
【００５６】
ＰＣＩデバイスｄ２１〜ｄ２ｎは、ＰＣＩ−ＰＣＩブリッジ３から送信されるデータのうち、Ｉ／Ｏリソース範囲レジスタｒ２１〜ｒ２ｎにそれぞれ保存された自己のアドレスを宛先とするデータを選択して受け取る。
【００５７】
［動作］
次に、本発明の実施の形態に係る情報処理装置の動作について図面を用いて説明する。本発明の実施の形態では、情報処理装置２０１を動作させることによって、本発明の実施の形態に係るリソース割り当て方法が実施される。よって、本発明の実施の形態に係るリソース割り当て方法の説明は、以下の情報処理装置２０１の動作説明に代える。なお、以下の説明においては、適宜図２を参照する。
【００５８】
図３は、本発明の実施の形態に係る情報処理装置がリソース割り当て処理を行なう際の動作手順を示すフローチャートである。
【００５９】
まず、ＣＰＵ１０１によってシステムＢＩＯＳが起動される（ステップＳ２）。
次に、リソース割り当て部６は、通常系のＰＣＩデバイスにＩ／Ｏリソースを割り当てる。すなわち、リソース割り当て部６は、ＣＰＵ１０１がアクセス可能なアドレス空間における一部または全部のアドレスをＰＣＩデバイスｄ１１〜ｄ１ｎに割り当てる。より詳細には、リソース割り当て部６は、ＰＣＩデバイスｄ１１〜ｄ１ｎにそれぞれ割り当てたアドレスをＩ／Ｏリソース範囲レジスタｒ１１〜ｒ１ｎにそれぞれ書き込む（ステップＳ４）。
【００６０】
次に、リソース割り当て部６は、冗長系のＰＣＩデバイスに通常系と同じＩ／Ｏリソースを割り当てる。すなわち、リソース割り当て部６は、ＰＣＩデバイスｄ１１〜ｄ１ｎに割り当てたアドレスと同じアドレスをＰＣＩデバイスｄ２１〜ｄ２ｎにそれぞれ割り当てる。より詳細には、リソース割り当て部６は、ＰＣＩデバイスｄ２１〜ｄ２ｎにそれぞれ割り当てたアドレスをＩ／Ｏリソース範囲レジスタｒ２１〜ｒ２ｎにそれぞれ書き込む（ステップＳ６）。
【００６１】
次に、リソース割り当て部６は、通常系のＰＣＩブリッジに処理すべきＩ／Ｏリソース範囲を設定する。すなわち、リソース割り当て部６は、ＰＣＩデバイスｄ１１〜ｄ１ｎに割り当てたアドレスをＰＣＩ−ＰＣＩブリッジ２に設定する。より詳細には、リソース割り当て部６は、割り当てたアドレスをＰＣＩ−ＰＣＩブリッジ２におけるＩ／Ｏリソース範囲レジスタｒ１に書き込む（ステップＳ８）。
【００６２】
次に、リソース割り当て部６は、冗長系のＰＣＩデバイスに無効なＩ／Ｏリソース範囲を設定する。すなわち、リソース割り当て部６は、ＰＣＩデバイスｄ２１〜ｄ２ｎに割り当てたアドレスをＰＣＩ−ＰＣＩブリッジ３には設定しない。より詳細には、リソース割り当て部６は、ＰＣＩ−ＰＣＩブリッジ３におけるＩ／Ｏリソース範囲レジスタｒ２に無効なアドレスを書き込む（ステップＳ１０）。
【００６３】
次に、オペレーティングシステムが起動され、システムＢＩＯＳからオペレーティングシステムへ処理が移行される（ステップＳ１２）。
【００６４】
次に、リソース管理制御部７は、通常系のＰＣＩデバイスの異常監視を行なう。すなわち、リソース管理制御部７は、ＰＣＩデバイスｄ１１〜ｄ１ｎとＣＰＵ１０１との間のデータ通信を監視し（ステップＳ１４）、異常が発生するまで待機する（ステップＳ１６でＮＯ）。
【００６５】
リソース管理制御部７は、通常系のＰＣＩデバイスに異常が発生すると（ステップＳ１６でＹＥＳ）、通常系のＰＣＩブリッジに無効なＩ／Ｏリソース範囲を設定する。すなわち、リソース管理制御部７は、ＰＣＩデバイスｄ１１〜ｄ１ｎとＣＰＵ１０１との間のデータ通信に異常が発生した場合には、ＰＣＩデバイスｄ１１〜ｄ１ｎおよびＰＣＩデバイスｄ２１〜ｄ２ｎに割り当てたアドレスのＰＣＩ−ＰＣＩブリッジ２への設定を取り消す。より詳細には、リソース管理制御部７は、ＰＣＩ−ＰＣＩブリッジ２におけるＩ／Ｏリソース範囲レジスタｒ１に無効なアドレスを書き込む（ステップＳ１８）。
【００６６】
次に、リソース管理制御部７は、冗長系のＰＣＩブリッジに処理すべきＩ／Ｏリソース範囲を設定する。すなわち、リソース管理制御部７は、ＰＣＩデバイスｄ２１〜ｄ２ｎに割り当てたアドレスをＰＣＩ−ＰＣＩブリッジ３に設定する（ステップＳ２０）。
【００６７】
次に、リソース管理制御部７は、冗長系のＰＣＩデバイスを初期化する（ステップＳ２２）。
【００６８】
次に、本発明の実施の形態に係る情報処理装置がリソース割り当て処理を行なう際の動作の具体例を説明する。
【００６９】
図４は、本発明の実施の形態に係る情報処理装置の正常時におけるリソース割り当て状態を示す図である。
【００７０】
図４を参照して、システムＢＩＯＳ６は、コンピュータシステム２０１の起動時に、ＰＣＩ−ＰＣＩブリッジ２および３、ならびにこれらが制御するデバイス群４および５に対してＩ／Ｏリソースを割り当てる。
【００７１】
まず、システムＢＩＯＳ６は、通常系ＰＣＩ−ＰＣＩブリッジ２、およびその配下の通常系ＰＣＩデバイス群４に対して通常のＩ／Ｏリソース割り当てを行なう。ここで、割り当て開始アドレスをＸとすると、先頭のＰＣＩデバイスｄ１１のＩ／Ｏリソース範囲レジスタｒ１１にはＸからＸ＋ａの範囲（Ｘ＜Ｘ＋ａ）が、次のＰＣＩデバイスｄ１２のＩ／Ｏリソース範囲レジスタｒ１２にはＸ＋ａからＸ＋ｂの範囲（Ｘ＋ａ＜Ｘ＋ｂ）が書き込まれる。以下続けて、ＰＣＩデバイスｄ１ｎのＩ／Ｏリソース範囲レジスタｒ１ｎにはＸ＋ｙからＸ＋ｚの範囲（Ｘ＋ｙ＜Ｘ＋ｚ）が書き込まれる。
【００７２】
そして、システムＢＩＯＳ６は、ＰＣＩデバイス群４を制御するＰＣＩ−ＰＣＩブリッジ２にＩ／Ｏリソース範囲ＸからＸ＋ｚまでを割り当てる、すなわち、ＰＣＩ−ＰＣＩブリッジ２のＩ／Ｏリソース範囲レジスタｒ１に、ＸからＸ＋ｚの範囲（Ｘ＜Ｘ＋ｚ）を書き込む。
【００７３】
次に、システムＢＩＯＳ６は、冗長系ＰＣＩ−ＰＣＩブリッジ３、およびその配下の冗長系ＰＣＩデバイス群５に対してＩ／Ｏリソースを割り当てる。より詳細には、システムＢＩＯＳ６は、冗長系ＰＣＩデバイスｄ２１、ｄ２２、…、ｄ２ｎに対して、それぞれ通常系ＰＣＩデバイスｄ１１、ｄ１２、…ｄ１ｎと同様のＩ／Ｏリソース範囲を割り当てる。すなわち、割り当て開始アドレスをＸとすると、先頭のＰＣＩデバイスｄ２１のＩ／Ｏリソース範囲レジスタｒ２１にはＸからＸ＋ａの範囲（Ｘ＜Ｘ＋ａ）が、次のＰＣＩデバイスｄ２２のＩ／Ｏリソース範囲レジスタｒ２２にはＸ＋ａからＸ＋ｂの範囲（Ｘ＋ａ＜Ｘ＋ｂ）が書き込まれる。以下続けて、ＰＣＩデバイスｄ２ｎのＩ／Ｏリソース範囲レジスタｒ２ｎにはＸ＋ｙからＸ＋ｚの範囲（Ｘ＋ｙ＜Ｘ＋ｚ）が書き込まれる。
【００７４】
また、システムＢＩＯＳ６は、ＰＣＩデバイス群５を制御するＰＣＩ−ＰＣＩブリッジ３にはＩ／Ｏリソース範囲Ｘ＋ｚからＸ＋ｚまでを割り当てる、すなわち、ＰＣＩ−ＰＣＩブリッジ３のＩ／Ｏリソース範囲レジスタｒ２に、Ｘ＋ｚからＸ＋ｚの範囲を書き込む。
【００７５】
この設定は、冗長系ＰＣＩ−ＰＣＩブリッジ３の配下には制御すべきＩ／Ｏリソースが存在しないことを意味する。通常のコンピュータシステムでは、異なるデバイスに対して同一のＩ／Ｏリソースを割り当てることはできない。しかしながら、冗長系ＰＣＩ−ＰＣＩブリッジ３にこのようなリソース範囲を割り当てることにより、Ｉ／Ｏトランザクションは冗長系ＰＣＩ−ＰＣＩブリッジ３の配下のＰＣＩデバイスには流れない。このため、ＰＣＩデバイスｄ２１〜ｄ２ｎのＩ／Ｏリソース割り当てが他のＰＣＩデバイスと重複してもシステム上矛盾が生じることは無い。
【００７６】
システムＢＩＯＳ６は、以上の様にＩ／Ｏリソースを割り当て、オペレーティングシステム７の起動に移行する。
【００７７】
オペレーティングシステム７は、ＰＣＩバスの初期化中に冗長系ＰＣＩ−ＰＣＩブリッジ３を検出する。しかしながら、上記のようにリソースを割り当てることにより、冗長系ＰＣＩ−ＰＣＩブリッジ３の制御すべきＩ／Ｏリソースは存在しないことになっている。オペレーティングシステム７は、このようなリソース範囲レジスタｒ２の設定を検出した場合、ＰＣＩ−ＰＣＩブリッジ３の配下のＰＣＩデバイスは冗長系であることを認識して、ＰＣＩ−ＰＣＩブリッジ３の配下のＰＣＩデバイスｄ２１〜ｄ２ｎの初期化を行なわない。
【００７８】
これにより、オペレーティングシステム７は、冗長系ＰＣＩデバイス群５が存在しないものとして起動する。
【００７９】
次に、本発明の実施の形態に係る情報処理装置において、オペレーティングシステム７が、システム運用中に通常系ＰＣＩ−ＰＣＩブリッジ２の配下のＰＣＩデバイスに関する異常を検出し、冗長系ＰＣＩデバイスへ切り替える場合の処理を説明する。
【００８０】
図５は、本発明の実施の形態に係る情報処理装置の異常時におけるリソース割り当て状態を示す図である。
【００８１】
図５を参照して、オペレーティングシステム７は、通常系ＰＣＩデバイス群４におけるいずれかのＰＣＩデバイスに関する異常を検出した場合には、ホットプラグ機能を用いて通常系ＰＣＩデバイス群４の各ＰＣＩデバイスを閉塞する。
【００８２】
次に、オペレーティングシステム７は、通常系ＰＣＩ−ＰＣＩブリッジ２に割り当てられているＩ／Ｏリソース範囲（ＸからＸ＋ｚまで）を記録したのち、Ｉ／Ｏリソース範囲レジスタｒ１を閉塞状態の範囲（ＸからＸまで）に書き換える。これにより、ＰＣＩ−ＰＣＩブリッジ２の配下にＩ／Ｏトランザクションが流れなくなる。
【００８３】
次に、オペレーティングシステム７は、記録したＩ／Ｏリソース範囲を冗長系ＰＣＩ−ＰＣＩブリッジ３のＩ／Ｏリソース範囲レジスタｒ２に書き込む。
【００８４】
これにより、冗長系ＰＣＩ−ＰＣＩブリッジ３の配下にＩ／Ｏトランザクションが流れるようになる。さらに、オペレーティングシステム７は、冗長系ＰＣＩデバイス群５における各ＰＣＩデバイスに対してホットプラグ機能を用いることにより、当該各ＰＣＩデバイスをオペレーティングシステム７に組み込む。このとき、冗長系ＰＣＩデバイス群５には通常系ＰＣＩデバイス群４と同様のＩ／ＯリソースがＢＩＯＳによってすでに割り当てられているため、矛盾無くシステムに組み込むことができる。
【００８５】
以上のような手順により、冗長系ＰＣＩデバイス群５をオペレーティングシステム７に組み込むことができる。
【００８６】
ところで、従来、冗長化されたＰＣＩデバイスに対して、ＢＩＯＳが一意的なＩ／Ｏリソースを割り当てていた。このため、Ｉ／Ｏリソースを大量に消費する大規模構成のＰＣＩデバイスを備えたシステムでは、ＰＣＩデバイスの冗長構成を採用することは困難であった。
【００８７】
これに対して、本発明の実施の形態に係る情報処理装置では、リソース割り当て部６は、ＣＰＵ１０１がアクセス可能なアドレス空間における一部または全部のアドレスをＰＣＩデバイスｄ１１〜ｄ１ｎに割り当て、かつ割り当てたアドレスと同じアドレスをＰＣＩデバイスｄ２１〜ｄ２ｎに割り当てる。そして、リソース割り当て部６は、ＰＣＩデバイスｄ１１〜ｄ１ｎに割り当てたアドレスをＰＣＩ−ＰＣＩブリッジ２に設定し、ＰＣＩデバイスｄ２１〜ｄ２ｎに割り当てたアドレスをＰＣＩ−ＰＣＩブリッジ３には設定しない。
【００８８】
このような構成により、コンピュータシステムにおける冗長系ＰＣＩデバイスに割り当てるべきＩ／Ｏリソースを削減できることから、一つのコンピュータシステムにおいて、より多くの冗長系ＰＣＩデバイスを実装することができる。
【００８９】
すなわち、本発明の第１の実施の形態に係る情報処理装置における各構成要素のうち、ＣＰＵ１０１、ＰＣＩ−ＰＣＩブリッジ２，３からなる最小構成により、リソース消費を抑制しながらデバイスの冗長構成を実現するという本発明の目的を達成することが可能となる。
【００９０】
また、本発明の実施の形態に係る情報処理装置では、リソース管理制御部７は、ＰＣＩデバイスｄ１１〜ｄ１ｎとの間のデータ通信に異常が発生した場合には、ＰＣＩデバイスｄ１１〜ｄ１ｎおよびＰＣＩデバイスｄ２１〜ｄ２ｎに割り当てたアドレスのＰＣＩ−ＰＣＩブリッジ２への設定を取り消し、上記割り当てたアドレスをＰＣＩ−ＰＣＩブリッジ３に設定する。このような構成により、通常系ＰＣＩデバイスの異常発生時に適切に冗長系ＰＣＩデバイスへの切り替えを行なうことができる。
【００９１】
なお、本発明の実施の形態に係る情報処理装置は、ＰＣＩ−ＰＣＩブリッジ２，３と、ＰＣＩデバイス群４，５と、ホスト−ＰＣＩブリッジ８と、ＰＣＩバスＢ１，Ｂ２，Ｂ３とを備える構成であるとしたが、これに限定するものではない。ＰＣＩバスに限らず、情報処理装置２０１が、他の規格に従ったバスおよびその周辺回路を備える構成であってもよい。
【００９２】
また、本発明の実施の形態に係る情報処理装置は、ＰＣＩバスＢ３に接続された２つのＰＣＩ−ＰＣＩブリッジを備える構成であるとしたが、これに限定するものではない。情報処理装置２０１が、ＰＣＩバスＢ３に接続された３つ以上のＰＣＩ−ＰＣＩブリッジを備える構成であってもよい。
【００９３】
また、本発明の実施の形態に係る情報処理装置は、ホスト−ＰＣＩブリッジ８を備える構成であるとしたが、これに限定するものではない。情報処理装置２０１がホスト−ＰＣＩブリッジ８を備えず、ＣＰＵ１０１が１つのバスを介してＰＣＩ−ＰＣＩブリッジ２，３と接続される構成であってもよい。
【００９４】
また、本発明の実施の形態に係る情報処理装置では、リソース割り当て部６は、ＣＰＵ１０１がシステムＢＩＯＳのプログラムを実行することにより構成され、また、リソース管理制御部７は、ＣＰＵ１０１がオペレーティングシステムのプログラムを実行することにより構成されるとしたが、これに限定するものではない。ＣＰＵ１０１がシステムＢＩＯＳおよびオペレーティングシステム以外の他のプログラムを実行することによりリソース割り当て部６およびリソース管理制御部７が実現されてもよい。
【００９５】
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００９６】
上記実施の形態の一部または全部は以下の付記のようにも記載されうるが、本発明の範囲は、以下の付記に限定されるものではない。
【００９７】
［付記１］
演算処理部と、
１または複数の第１のデバイスが接続される第１のバスと、
１または複数の第２のデバイスが接続される第２のバスと、
前記演算処理部に接続された第３のバスと、
前記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第１のバス経由で前記１または複数の第１のデバイスへ出力するための第１のブリッジ部と、
前記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第２のバス経由で前記１または複数の第２のデバイスへ出力するための第２のブリッジ部とを備え、
前記演算処理部は、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記１または複数の第１のデバイスに割り当て、かつ前記割り当てたアドレスと同じアドレスを前記１または複数の第２のデバイスに割り当てるためのリソース割り当て部を含み、
前記リソース割り当て部は、前記割り当てたアドレスを前記第１のブリッジ部に設定し、前記割り当てたアドレスを前記第２のブリッジ部には設定しない、情報処理装置。
【００９８】
［付記２］
前記演算処理部は、さらに、
前記１または複数の第１のデバイスと前記演算処理部との間のデータ通信を監視するためのリソース管理制御部を含み、
前記リソース管理制御部は、前記第１のデバイスとの間のデータ通信に異常が発生した場合には、前記１または複数の第１のデバイスおよび前記１または複数の第２のデバイスに割り当てたアドレスの前記第１のブリッジ部への設定を取り消し、前記割り当てたアドレスを前記第２のブリッジ部に設定する、付記１に記載の情報処理装置。
【００９９】
［付記３］
前記１または複数の第１のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第１のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記１または複数の第２のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第２のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記第１のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第３のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記１または複数の第１のデバイスへ出力し、
前記第２のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第３のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記１または複数の第２のデバイスへ出力し、
前記リソース割り当て部は、前記１または複数の第１のデバイスおよび前記１または複数の第２のデバイスに割り当てたアドレスを前記１または複数の第１のデバイスおよび前記１または複数の第２のデバイスのレジスタにそれぞれ書き込み、
前記リソース割り当て部は、前記割り当てたアドレスを前記第１のブリッジ部におけるレジスタに書き込み、前記第２のブリッジ部におけるレジスタに無効なアドレスを書き込む、付記１または２に記載の情報処理装置。
【０１００】
［付記４］
前記リソース管理制御部は、前記１または複数の第１のデバイスとの間のデータ通信に異常が発生した場合には、前記第１のブリッジ部におけるレジスタに無効なアドレスを書き込み、前記割り当てたアドレスを前記第２のブリッジ部におけるレジスタに書き込む、付記３に記載の情報処理装置。
【０１０１】
［付記５］
前記リソース割り当て部は、前記演算処理部がＢＩＯＳ（Basic Input Output System）プログラムを実行することにより構成され、
前記リソース管理制御部は、前記演算処理部がＯＳ（Operating System）プログラムを実行することにより構成される、付記１から４のいずれかに記載の情報処理装置。
【０１０２】
［付記６］
演算処理部と、１または複数の第１のデバイスが接続される第１のバスと、１または複数の第２のデバイスが接続される第２のバスと、前記演算処理部に接続された第３のバスと、前記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第１のバス経由で前記１または複数の第１のデバイスへ出力するための第１のブリッジ部と、前記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第２のバス経由で前記１または複数の第２のデバイスへ出力するための第２のブリッジ部とを備えた情報処理装置におけるリソース割り当て方法であって、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記１または複数の第１のデバイスに割り当てるステップと、
前記割り当てたアドレスと同じアドレスを前記１または複数の第２のデバイスに割り当てるステップと、
前記割り当てたアドレスを前記第１のブリッジ部に設定し、前記割り当てたアドレスを前記第２のブリッジ部には設定しないステップとを含む、リソース割り当て方法。
【０１０３】
［付記７］
前記リソース割り当て方法は、さらに、
前記１または複数の第１のデバイスと前記演算処理部との間のデータ通信を監視し、前記第１のデバイスとの間のデータ通信に異常が発生した場合には、前記１または複数の第１のデバイスおよび前記１または複数の第２のデバイスに割り当てたアドレスの前記第１のブリッジ部への設定を取り消し、前記割り当てたアドレスを前記第２のブリッジ部に設定するステップを含む、付記６に記載のリソース割り当て方法。
【０１０４】
［付記８］
前記１または複数の第１のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第１のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記１または複数の第２のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第２のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記第１のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第３のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記１または複数の第１のデバイスへ出力し、
前記第２のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第３のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記１または複数の第２のデバイスへ出力し、
アドレスを前記１または複数の第１のデバイスに割り当てるステップにおいては、前記１または複数の第１のデバイスに割り当てたアドレスを前記１または複数の第１のデバイスのレジスタにそれぞれ書き込み、
アドレスを前記１または複数の第２のデバイスに割り当てるステップにおいては、前記１または複数の第２のデバイスに割り当てたアドレスを前記１または複数の第２のデバイスのレジスタにそれぞれ書き込み、
アドレスを前記第１のブリッジ部に設定するステップにおいては、前記割り当てたアドレスを前記第１のブリッジ部におけるレジスタに書き込み、前記第２のブリッジ部におけるレジスタに無効なアドレスを書き込む、付記６または７に記載のリソース割り当て方法。
【０１０５】
［付記９］
前記１または複数の第１のデバイスと前記演算処理部との間のデータ通信を監視するステップにおいては、前記１または複数の第１のデバイスとの間のデータ通信に異常が発生した場合には、前記第１のブリッジ部におけるレジスタに無効なアドレスを書き込み、前記割り当てたアドレスを前記第２のブリッジ部におけるレジスタに書き込む、付記８に記載のリソース割り当て方法。
【０１０６】
［付記１０］
演算処理部と、１または複数の第１のデバイスが接続される第１のバスと、１または複数の第２のデバイスが接続される第２のバスと、前記演算処理部に接続された第３のバスと、前記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第１のバス経由で前記１または複数の第１のデバイスへ出力するための第１のブリッジ部と、前記第３のバスから受けたデータのうち、自己に設定されたアドレスを宛先とするデータを前記第２のバス経由で前記１または複数の第２のデバイスへ出力するための第２のブリッジ部とを備えた情報処理装置におけるリソース割り当てプログラムであって、コンピュータに、
前記演算処理部がアクセス可能なアドレス空間における一部または全部のアドレスを前記１または複数の第１のデバイスに割り当てるステップと、
前記割り当てたアドレスと同じアドレスを前記１または複数の第２のデバイスに割り当てるステップと、
前記割り当てたアドレスを前記第１のブリッジ部に設定し、前記割り当てたアドレスを前記第２のブリッジ部には設定しないステップとを実行させる、リソース割り当てプログラム。
【０１０７】
［付記１１］
前記リソース割り当てプログラムは、さらに、コンピュータに、
前記１または複数の第１のデバイスと前記演算処理部との間のデータ通信を監視し、前記第１のデバイスとの間のデータ通信に異常が発生した場合には、前記１または複数の第１のデバイスおよび前記１または複数の第２のデバイスに割り当てたアドレスの前記第１のブリッジ部への設定を取り消し、前記割り当てたアドレスを前記第２のブリッジ部に設定するステップを実行させる、付記１０に記載のリソース割り当てプログラム。
【０１０８】
［付記１２］
前記１または複数の第１のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第１のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記１または複数の第２のデバイスの各々は、自己のアドレスを保存するためのレジスタを含み、前記第２のブリッジ部から送信されるデータのうち、前記レジスタに保存された自己のアドレスを宛先とするデータを選択して受け取り、
前記第１のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第３のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記１または複数の第１のデバイスへ出力し、
前記第２のブリッジ部は、処理すべきアドレスを示すレジスタを含み、前記第３のバスから受けたデータのうち、前記レジスタに保存されたアドレスを宛先とするデータを前記１または複数の第２のデバイスへ出力し、
アドレスを前記１または複数の第１のデバイスに割り当てるステップにおいては、前記１または複数の第１のデバイスに割り当てたアドレスを前記１または複数の第１のデバイスのレジスタにそれぞれ書き込み、
アドレスを前記１または複数の第２のデバイスに割り当てるステップにおいては、前記１または複数の第２のデバイスに割り当てたアドレスを前記１または複数の第２のデバイスのレジスタにそれぞれ書き込み、
アドレスを前記第１のブリッジ部に設定するステップにおいては、前記割り当てたアドレスを前記第１のブリッジ部におけるレジスタに書き込み、前記第２のブリッジ部におけるレジスタに無効なアドレスを書き込む、付記１０または１１に記載のリソース割り当てプログラム。
【０１０９】
［付記１３］
前記１または複数の第１のデバイスと前記演算処理部との間のデータ通信を監視するステップにおいては、前記１または複数の第１のデバイスとの間のデータ通信に異常が発生した場合には、前記第１のブリッジ部におけるレジスタに無効なアドレスを書き込み、前記割り当てたアドレスを前記第２のブリッジ部におけるレジスタに書き込む、付記１２に記載のリソース割り当てプログラム。
【産業上の利用可能性】
【０１１０】
本発明によれば、リソース消費を抑制しながらデバイスの冗長構成を実現することができる。したがって、本発明は、産業上の利用可能性を有している。
【符号の説明】
【０１１１】
２，３  ＰＣＩ−ＰＣＩブリッジ（ブリッジ部）
４，５  ＰＣＩデバイス群
６  リソース割り当て部
７  リソース管理制御部
８  ホスト−ＰＣＩブリッジ
１０１  ＣＰＵ（演算処理部）
１０２  メインメモリ
１０３  ハードディスク
１０４  入力インターフェイス
１０５  表示コントローラ
１０６  データリーダ／ライタ
１０７  通信インターフェイス
１０８  キーボード
１０９  マウス
１１０  ディスプレイ
１１１  記録媒体
１２１  バス
２０１  情報処理装置
Ｂ１，Ｂ２，Ｂ３  ＰＣＩバス
ＢＨ  ホストバス
ｄ１１〜ｄ１ｎ，ｄ２１〜ｄ２ｎ  ＰＣＩデバイス
【図１】
2011204077.tif 000003
【図２】
2011204077.tif 000004
【図３】
2011204077.tif 000005
【図４】
2011204077.tif 000006
【図５】
2011204077.tif 000007