(57)【要約】【課題】様々なリソース容量を必要とする周辺デバイスをシステム運用中に、確実で容易かつリソースの割り当て効率良く増設することを可能とするコンピュータシステムと、そのリソース割り当て方法およびプログラムを提供する。【解決手段】制御装置１は、まず、周辺デバイス７１〜７８，１１０１〜１１０８から動作に必要なリソース量を取得する。次に、制御装置１は、周辺デバイスから取得したリソース量を元に、その周辺デバイスに割り当てるリソースを決定する。次に、制御装置１は、周辺デバイスに割り当てるリソースのエリアを示すリソースレンジ情報を、その周辺デバイスの帰属情報と対応付けて記録する。【選択図】      図１
2004265043.tif 000002
【特許請求の範囲】
【請求項１】
周辺デバイスへのリソースの割り当てを管理するコンピュータシステムにおけるリソース割り当て方法であって、
周辺デバイスから動作に必要なリソース量を取得する第１のステップと、
前記周辺デバイスから取得したリソース量を元に、該周辺デバイスに割り当てるリソースを決定する第２のステップと、
前記周辺デバイスに割り当てるリソースのエリアを示すリソースレンジ情報を、該周辺デバイスの帰属情報と対応付けて記録する第３のステップとを有するリソース割り当て方法。
【請求項２】
システム起動時、前記第１のステップにおいて、現在搭載されている全ての周辺デバイスから前記リソース量を取得し、
前記第２のステップにおいて、全ての前記周辺デバイスに割り当てるリソースを決定する、請求項１記載のリソース割り当て方法。
【請求項３】
システム運用中に周辺デバイスが増設されると、前記第１のステップにおいて、増設された前記周辺デバイスから前記リソース量を取得し、
前記第２のステップにおいて、増設された前記周辺デバイスに割り当てるリソースを空きエリアから決定する、請求項１記載のリソース割り当て方法。
【請求項４】
周辺デバイスへのリソースの割り当てを管理するコンピュータシステムであって、
周辺デバイスから動作に必要なリソース量を取得し、前記周辺デバイスから取得したリソース量を元に該周辺デバイスに割り当てるリソースを決定し、前記周辺デバイスに割り当てるリソースのエリアを示すリソースレンジ情報を、該周辺デバイスの帰属情報と対応付けて記録する処理を有するファームウェアを記憶した記憶装置と、
前記記憶装置から前記ファームウェアを読み込んで実行する処理装置とを有するコンピュータシステム。
【請求項５】
前記処理装置は、システム起動時、前記記憶装置から前記ファームウェアの読み込んで実行することにより、現在搭載されている全ての周辺デバイスから前記リソース量を取得し、全ての前記周辺デバイスに割り当てるリソースを決定して記録する、請求項４記載のコンピュータシステム。
【請求項６】
前記処理装置は、システム運用中に周辺デバイスが増設されると、前記記憶装置から前記ファームウェアを読み込んで実行することにより、増設された前記周辺デバイスから前記リソース量を取得し、増設された前記周辺デバイスに割り当てるリソースを空きエリアから決定して記録する、請求項４記載のコンピュータシステム。
【請求項７】
コンピュータに、周辺デバイスへのリソースの割り当てを管理させるためのリソース割り当てプログラムであって、
周辺デバイスから動作に必要なリソース量を取得する第１の処理と、
前記周辺デバイスから取得したリソース量を元に、該周辺デバイスに割り当てるリソースを決定する第２の処理と、
前記周辺デバイスに割り当てるリソースのエリアを示すリソースレンジ情報を、該周辺デバイスの帰属情報と対応付けて記録する第３の処理とを有するリソース割り当てプログラム。
【請求項８】
システム起動時、前記第１の処理において、現在搭載されている全ての周辺デバイスから前記リソース量を取得し、
前記第２の処理において、全ての前記周辺デバイスに割り当てるリソースを決定する、請求項７記載のリソース割り当てプログラム。
【請求項９】
システム運用中に周辺デバイスが増設されると、前記第１の処理において、増設された前記周辺デバイスから前記リソース量を取得し、
前記第２の処理において、増設された前記周辺デバイスに割り当てるリソースを空きエリアから決定する、請求項７記載のリソース割り当てプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、周辺デバイスへのリソースの割り当てを管理するコンピュータシステムに関し、特に、周辺デバイスのホットプラグインが可能なコンピュータシステムに関する。
【０００２】
【従来の技術】
一般的に、ＰＣＩバスブリッジの持つ制御レジスタには、ＰＣＩバスブリッジが制御する主記憶空間およびＩＯ空間の領域を示すレジスタが含まれる。制御レジスタに設定される主記憶空間およびＩＯ空間の領域は、ＰＣＩデバイス毎ではなく、配下のＰＣＩデバイスすべてが使用する空間領域となっている。すなわち、複数のＰＣＩデバイスが使用する主記憶空間とＩＯ空間は、１つのＰＣＩバスブリッジ配下では、連続した空間であることが期待されている。
【０００３】
そのため、システム運用中に、ＰＣＩバスブリッジ配下にＰＣＩデバイスを増設するためには、増設するＰＣＩデバイスに必要なリソース容量が主記憶空間およびＩＯ空間に予め確保されている必要があった。
【０００４】
ＩＯコントローラの場合も、ＰＣＩバスブリッジと同様に、配下の各ＰＣＩバスブリッジに制御される主記憶空間およびＩＯ空間のアドレスレンジが連続していることが期待されている。
【０００５】
そのため、従来の一般的なコンピュータシステムでは、ＢＩＯＳが、システムの起動時に各ＰＣＩバスブリッジに一律な固定量のリソースを割り当てていた。そして、システム運用中に増設されたＰＣＩデバイスには、システム起動時にＢＩＯＳによって定められた固定量が割り当てられていた。その固定量は、例えば開始アドレスおよび終了アドレスによって範囲が予め定められる。
【０００６】
しかし、増設しようとするＰＣＩデバイスが固定量以上のリソースを必要とする場合には、それをシステムに組み込むことができなかった。その場合、システムを再起動することによりＢＩＯＳにリソースを再設定させる必要があった。
【０００７】
このような問題を解決する方法が提案されている（例えば、特許文献１参照）。特許文献１には、システム起動の途中に、将来増設するであろうＰＣＩデバイスに必要となるリソース容量を人手により予め設定しておく方法が提案されている。
【０００８】
【特許文献１】
特開２００２−２８８１０４号公報
【０００９】
【発明が解決しようとする課題】
特許文献１にて提案された方法によれば、将来増設されるであろうＰＣＩデバイスのリソース容量が予め予測できれば、ＢＩＯＳが設定する固定量より大きなリソース容量を必要とするＰＣＩデバイスをシステム運用中に増設すること（ホットプラグイン）が可能である。
【００１０】
しかし、増設するＰＣＩデバイスが予め設定されていたよりも大きなリソース量を必要とする場合、システム運用を継続しながら増設できず、システムを一時的に停止させ、既設のＰＣＩデバイスに割り当てているリソースを変更する必要があった。また、予め設定されていたよりも小さなリソースで足りるＰＣＩデバイスにも、予め設定されていた量が割り当てられることとなり、リソースが無駄に割り当てられていた。また、例えば、カード毎のリソース量を調べ、増設位置（ＰＣＩバス）を特定し、ＢＩＯＳのＳｅｔｕｐＭｅｎｕを用いて人手によりリソースの予約をするという煩雑な作業がユーザに課されていた。
【００１１】
本発明の目的は、様々なリソース容量を必要とする周辺デバイスをシステム運用中に、確実で容易かつリソースの割り当て効率良く増設することを可能とするコンピュータシステムと、そのリソース割り当て方法およびプログラムを提供することである。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、本発明のリソース割り当て方法は、周辺デバイスへのリソースの割り当てを管理するコンピュータシステムにおけるリソース割り当て方法であって、
周辺デバイスから動作に必要なリソース量を取得する第１のステップと、
前記周辺デバイスから取得したリソース量を元に、該周辺デバイスに割り当てるリソースを決定する第２のステップと、
前記周辺デバイスに割り当てるリソースのエリアを示すリソースレンジ情報を、該周辺デバイスの帰属情報と対応付けて記録する第３のステップとを有している。
【００１３】
したがって、本発明によれば、各周辺デバイスに割り当てるリソースレンジの情報が、その周辺デバイスの帰属を示す帰属情報と対応付けて管理されることにより、任意のアドレスエリアのリソースを各周辺デバイスに割り当てることができる。
【００１４】
また、システム起動時、前記第１のステップにおいて、現在搭載されている全ての周辺デバイスから前記リソース量を取得し、
前記第２のステップにおいて、全ての前記周辺デバイスに割り当てるリソースを決定することとしてもよい。
【００１５】
したがって、システム起動時に、任意のアドレスエリアのリソースを周辺デバイスに割り当てることができる。
【００１６】
また、システム運用中に周辺デバイスが増設されると、前記第１のステップにおいて、増設された前記周辺デバイスから前記リソース量を取得し、
前記第２のステップにおいて、増設された前記周辺デバイスに割り当てるリソースを空きエリアから決定することとしてもよい。
【００１７】
したがって、任意のアドレスエリアのリソースを増設周辺デバイスに割り当てることができるので、システム運用中に周辺デバイスを増設しても、既設の周辺デバイスのリソースに影響を与えることなく、空きエリアから必要な量のリソースを増設周辺デバイスに割り当てることができる。
【００１８】
本発明のコンピュータシステムは、周辺デバイスへのリソースの割り当てを管理するコンピュータシステムであって、
周辺デバイスから動作に必要なリソース量を取得し、前記周辺デバイスから取得したリソース量を元に該周辺デバイスに割り当てるリソースを決定し、前記周辺デバイスに割り当てるリソースのエリアを示すリソースレンジ情報を、該周辺デバイスの帰属情報と対応付けて記録する処理を有するファームウェアを記憶した記憶装置と、
前記記憶装置から前記ファームウェアを読み込んで実行する処理装置とを有している。
【００１９】
また、前記処理装置は、システム起動時、前記記憶装置から前記ファームウェアの読み込んで実行することにより、現在搭載されている全ての周辺デバイスから前記リソース量を取得し、全ての前記周辺デバイスに割り当てるリソースを決定して記録することとしてもよい。
【００２０】
また、前記処理装置は、システム運用中に周辺デバイスが増設されると、前記記憶装置から前記ファームウェアを読み込んで実行することにより、増設された前記周辺デバイスから前記リソース量を取得し、増設された前記周辺デバイスに割り当てるリソースを空きエリアから決定して記録することとしてもよい。
【００２１】
本発明のリソース割り当てプログラムは、コンピュータに、周辺デバイスへのリソースの割り当てを管理させるためのリソース割り当てプログラムであって、
周辺デバイスから動作に必要なリソース量を取得する第１の処理と、
前記周辺デバイスから取得したリソース量を元に、該周辺デバイスに割り当てるリソースを決定する第２の処理と、
前記周辺デバイスに割り当てるリソースのエリアを示すリソースレンジ情報を、該周辺デバイスの帰属情報と対応付けて記録する第３の処理とを有している。
【００２２】
また、システム起動時、前記第１の処理において、現在搭載されている全ての周辺デバイスから前記リソース量を取得し、
前記第２の処理において、全ての前記周辺デバイスに割り当てるリソースを決定することとしてもよい。
【００２３】
また、システム運用中に周辺デバイスが増設されると、前記第１の処理において、増設された前記周辺デバイスから前記リソース量を取得し、
前記第２の処理において、増設された前記周辺デバイスに割り当てるリソースを空きエリアから決定することとしてもよい。
【００２４】
【発明の実施の形態】
本発明の一実施形態について図面を参照して詳細に説明する。
【００２５】
図１は、本発明の一実施形態のコンピュータシステムの構成を示すブロック図である。図１を参照すると、コンピュータシステムは、Ｃｅｌｌカード１、ＲＯＭ２、ＩＯコントローラ４，８がシステムバス３に接続された構成である。
【００２６】
Ｃｅｌｌカード１は、ＣＰＵ１１、メモリ１２、およびコントローラ１３を有している。ＣＰＵ１１とメモリ１２とコントローラ１３はＣＰＵバス１４を介して相互に接続されている。そして、コントローラ１３がシステムバス３に接続されている。
【００２７】
ＩＯコントローラ４は、ＩＯバス５１を介してＰＣＩバスブリッジ５１１と、ＩＯバス５２を介してＰＣＩバスブリッジ５２１と、ＩＯバス５３を介してＰＣＩバスブリッジ５３１と、ＩＯバス５４を介してＰＣＩバスブリッジ５４１とに接続されている。
【００２８】
ＰＣＩバスブリッジ５１１配下にＰＣＩバス６１，６２が存在し、ＰＣＩバス６１にＰＣＩデバイス７１が接続され、ＰＣＩバス６２にＰＣＩデバイス７２が接続されている。
【００２９】
同様に、ＰＣＩバスブリッジ５２１配下にＰＣＩバス６３，６４が存在し、ＰＣＩバス６４は空きスロット７３となっており、ＰＣＩバス６５にＰＣＩデバイス７４が接続されている。ＰＣＩバスブリッジ５３１配下にＰＣＩバス６５，６６が存在し、ＰＣＩバス６５にＰＣＩデバイス７５が接続され、ＰＣＩバス６６にＰＣＩデバイス７６が接続されている。ＰＣＩバスブリッジ５４１配下にＰＣＩバス６７，６８が存在し、ＰＣＩバス６７にＰＣＩデバイス７７が接続され、ＰＣＩバス６８にＰＣＩデバイス７８が接続されている。
【００３０】
ＩＯコントローラ８は、ＩＯバス９１を介してＰＣＩバスブリッジ９１１と、ＩＯバス９２を介してＰＣＩバスブリッジ９２１と、ＩＯバス９３を介してＰＣＩバスブリッジ９３１と、ＩＯバス９４を介してＰＣＩバスブリッジ９４１と接続されている。
【００３１】
ＰＣＩバスブリッジ９１１配下にＰＣＩバス１０１，１０２が存在し、ＰＣＩバス１０１にＰＣＩデバイス１１０１が接続され、ＰＣＩバス１０２にＰＣＩデバイス１１０２が接続されている。
【００３２】
同様に、ＰＣＩバスブリッジ９２１配下にＰＣＩバス１０３，１０４が存在し、ＰＣＩバス１０３にＰＣＩデバイス１１０３が存在し、ＰＣＩバス１０４は空きスロット１１０４となっている。ＰＣＩバスブリッジ９３１配下にＰＣＩバス１０５，１０６が存在し、ＰＣＩバス１０５にＰＣＩデバイス１１０５が接続され、ＰＣＩバス１０６にはＰＣＩデバイス１１０６が接続されている。ＰＣＩバスブリッジ９４１配下にＰＣＩバス１０７，１０８が存在し、ＰＣＩバス１０７にＰＣＩデバイス１１０７が接続され、ＰＣＩバス１０８に空きスロット１１０８が存在する。
【００３３】
ＣＰＵ１１は、システム起動時にＢＩＯＳ１１１を実行する。
【００３４】
ＢＩＯＳ１１１は、システム起動用ファームウェアであり、システムバス３に接続されたＩＯコントローラ４，８と、配下のＩＯバス５１，‥，５４に接続されたＰＣＩバスブリッジ５１１，‥，５１４およびＩＯバス９１，‥，９４に接続されたＰＣＩバスブリッジ９１１，‥，９１４と、ＰＣＩバスブリッジの各々の配下のＰＣＩデバイス７１，‥，７８およびＰＣＩデバイス１１０１，‥，１１０８とにリソースの割り当てを行う。
【００３５】
また、ＢＩＯＳ１１１は、システム運用中のＰＣＩデバイス増設時にも、システム起動時と同様に、増設されたＰＣＩデバイスとそのデバイスが接続されるＰＣＩバスブリッジ、ＩＯコントローラに対してリソースの割り当てを行う。
【００３６】
メモリ１２は、ＣＰＵ命令列、演算データなどのシステム情報を記憶する。
【００３７】
コントローラ１３は、ＣＰＵバス１４とシステムバス３の間のトランザクション転送を制御する。ＣＰＵバス１４は、ＣＰＵ１１の有するローカルなバスである。
【００３８】
また、コントローラ１３は、制御レジスタ１３１を有する。制御レジスタ１３１は、システムバス３を介して接続されているＩＯコントローラ４，８によって制御される主記憶空間およびＩＯ空間の領域を示すレジスタを含む。
【００３９】
ＲＯＭ２は、ｆｌａｓｈＲＯＭ等の不揮発性メモリである。ＲＯＭ２には、ＢＩＯＳコード格納領域２１がある。
【００４０】
ＩＯコントローラ４は、システムバス３とＩＯバス５１，‥，５４の間のトランザクション転送を制御する。同様に、ＩＯコントローラ８は、システムバス３とＩＯバス９１，‥，９４の間のトランザクション転送を制御する。
【００４１】
また、ＩＯコントローラ４のは制御レジスタ４１を有し、ＩＯコントローラ８は制御レジスタ８１を有する。制御レジスタ４１には、ＩＯバス５１，‥，５４を介して接続されているＰＣＩバスブリッジ５１１，‥，５４１によって制御される主記憶空間およびＩＯ空間の領域を示すレジスタが含まれている。同様に、制御レジスタ８１には、ＩＯバス９１，‥，９４を介して接続されているＰＣＩバスブリッジ９１１，‥，９４１によって制御される主記憶空間およびＩＯ空間の領域を示すレジスタが含まれている。
【００４２】
ＰＣＩバスブリッジ５１１は、各ＰＣＩデバイス７１，７２へのリソースの割り当てに従って、ＩＯバス５１とＰＣＩバス６１，６２の間のトランザクション転送を制御する。
【００４３】
また、ＰＣＩバスブリッジ５１１は、制御レジスタ５１１１を有する。制御レジスタ５１１１には、配下のＰＣＩバス６１，６２毎に、ＰＣＩバスブリッジにより制御される主記憶空間およびＩＯ空間の領域を示すレジスタが含まれている。
【００４４】
ＰＣＩバスブリッジ５２１，‥，５４１、およびＰＣＩパスブリッジ９２１，‥，９４１は、ＰＣＩバスブリッジ５１１と同様の制御を行い、同様の制御レジスタ（不図示）を有している。
【００４５】
ＰＣＩデバイス７１，‥，７８は、ＰＣＩバス６１，‥，６８に接続され、様々な機能を提供する周辺デバイスである。同様に、ＰＣＩデバイス１１０１，‥，１１０８は、ＰＣＩバス１０１，‥，１０８に接続され、様々な機能を提供する周辺デバイスである。
【００４６】
ＰＣＩバス６１，‥，６８、およびＰＣＩバス１０１，‥，１０８は、ＰＣＩローカルバス標準仕様として規定されたバス規格に従った汎用的なバスである。
【００４７】
図２は、ＰＣＩバスブリッジ５１１が有する制御レジスタ５１１１の内部レジスタの構成を示す図である。
【００４８】
制御レジスタ５１１１は、主記憶空間リソースレンジレジスタ５１１１１とＩＯ空間リソースレンジレジスタ５１１１２を含む。
【００４９】
主記憶空間リソースレンジレジスタ５１１１１には、ＰＣＩバスブリッジ配下のＰＣＩバス毎に、ＰＣＩバス番号、主記憶空間リソースレンジ、ＰＣＩバスブリッジ番号、およびＩＯコントローラ番号を含むレジスタ群５１１１１１，５１１１１２が格納されている。
【００５０】
ＰＣＩバス番号は、ＰＣＩバスブリッジ５１１配下のＰＣＩバスを識別するための番号である。主記憶空間リソースレンジは、各ＰＣＩバスにおける、ＰＣＩバスブリッジ５１１によって制御されべき主記憶空間の範囲の情報であり、開始アドレスおよび終了アドレスで示されている。ＰＣＩバスブリッジ番号は、ＰＣＩバスブリッジ５１１を識別するための番号であり、図２ではＰＣＩバスブリッジ５１１を示す番号となっている。ＩＯコントローラ番号は、ＰＣＩバスブリッジ５１１が接続されいているＩＯコントローラ４を識別するための番号である。ＰＣＩバスブリッジ番号およびＩＯコントローラ番号は、ＰＣＩデバイスがどのＰＣＩバスブリッジおよびＩＯコントローラの配下に帰属しているかを示す帰属情報である。
【００５１】
ＩＯ空間リソースレンジレジスタ５１１１２は、ＰＣＩバスブリッジ配下のＰＣＩバス毎に、ＰＣＩバス番号、ＩＯ空間リソースレンジ、ＰＣＩバスブリッジ番号、およびＩＯコントローラ番号を含むレジスタ群５１１１２１，５１１１２２が格納されている。
【００５２】
ＰＣＩバス番号は、ＰＣＩバスブリッジ５１１配下のＰＣＩバスを識別するための番号である。ＩＯ空間リソースレンジは、各ＰＣＩバスにおける、ＰＣＩバスブリッジ５１１によって制御されべきＩＯ空間の範囲の情報である。ＰＣＩバスブリッジ番号は、ＰＣＩバスブリッジ５１１を識別するための番号である。ＩＯコントローラ番号は、ＰＣＩバスブリッジ５１１が接続されいているＩＯコントローラ４を識別するための番号である。
【００５３】
ＰＣＩバスブリッジ５２１，‥，５４１、９１１，‥，９４１もＰＣＩバスブリッジ５１１と同様に制御レジスタ５２１１，‥，５４１１、９１１１，‥，９４１１（不図示）をそれぞれ有している。そして、制御レジスタ５２１１，‥，５４１１、９１１１，‥，９４１１は、制御レジスタ５１１１と同様の情報を格納している。
【００５４】
なお、ＰＣＩバスにＰＣＩデバイスが接続されていなければ、主記憶空間リソースレンジおよびＩＯ空間リソースレンジには、リソース要求なしを示す値「０−０」が設定される。ＰＣＩバスブリッジ番号とＩＯコントローラ番号は、接続状態に合わせて設定される。
【００５５】
図３は、ＩＯコントローラ４が有する制御レジスタ４１に含まれる内部レジスタの構成を示す図である。
【００５６】
制御レジスタ４１は、主記憶空間リソースレンジレジスタ４１１とＩＯ空間リソースレンジレジスタ４１２を含む。
【００５７】
主記憶空間リソースレンジレジスタ４１１には、ＩＯコントローラ４に接続されたＰＣＩバスブリッジ配下のＰＣＩバス毎に、ＰＣＩバス番号、主記憶空間リソースレンジ、ＰＣＩバスブリッジ番号、およびＩＯコントローラ番号を含むレジスタ群４１１１，・・が格納されている。
【００５８】
ＰＣＩバス番号は、各ＰＣＩバスを識別するための番号である。主記憶空間リソースレンジは、各ＰＣＩバスにおける、ＩＯコントローラ４によって制御されるべき主記憶空間の範囲の情報である。ＰＣＩバスブリッジ番号は、ＰＣＩバスブリッジ５１１，・・，５４１を識別するための番号である。ＩＯコントローラ番号は、ＩＯコントローラ４を示す番号である。
【００５９】
ＩＯ空間リソースレンジレジスタ４１２は、ＰＣＩバス配下のＰＣＩバス毎に、ＰＣＩバス番号、ＩＯ空間リソースレンジ、ＰＣＩバスブリッジ番号、およびＩＯコントローラ番号を含むレジスタ群４１２１，・・が格納されている。
【００６０】
ＰＣＩバス番号は、各ＰＣＩバスを識別するための番号である。ＩＯ空間リソースレンジは、各ＰＣＩバスにおける、ＩＯコントローラ４によって制御されるべきＩＯ空間の範囲の情報である。ＰＣＩバスブリッジ番号は、ＰＣＩバスブリッジ５１１，・・，５４１を識別するための番号である。ＩＯコントローラ番号は、ＩＯコントローラ４を示す番号である。
【００６１】
ＩＯコントローラ８は、ＩＯコントローラ４と同様に、制御レジスタ８１を有し、制御レジスタ８１は制御レジスタ４１と同様の情報を格納している。
【００６２】
なお、ＰＣＩバスにＰＣＩデバイスが接続されていなければ、主記憶空間リソースレンンジおよびＩＯ空間リソースレンジには、リソース要求なしを示す値「０−０」が設定される。ＰＣＩバスブリッジ番号とＩＯコントローラ番号は、接続状態に合わせて設定される。
【００６３】
図４は、Ｃｅｌｌカードのコントローラ１３が有する制御レジスタ１３１に含まれる内部レジスタの構成を示す図である。
【００６４】
制御レジスタ１３１は、主記憶空間リソースレンジレジスタ１３１１とＩＯ空間リソースレンジレジスタ１３１２を含む。
【００６５】
主記憶空間リソースレンジレジスタ１３１１には、コントローラ１３に接続されたＩＯコントローラ４，８に接続されたＰＣＩバスブリッジ配下のＰＣＩバス毎に、ＰＣＩバス番号、主記憶空間リソースレンジ、ＰＣＩバスブリッジ番号、およびＩＯコントローラ番号を含むレジスタ群１３１１１，・・が格納されている。
【００６６】
ＰＣＩバス番号は、各ＰＣＩバスを識別するための番号である。主記憶空間リソースレンジは、各ＰＣＩバスにおける、ＩＯコントローラによって制御されるべき主記憶空間の範囲の情報である。ＰＣＩバスブリッジ番号は、ＰＣＩバスブリッジ５１１，‥，５４１、９１１，‥９４１を識別するための番号である。ＩＯコントローラ番号は、その主記憶空間を制御するＩＯコントローラを示す番号である。
【００６７】
ＩＯ空間リソースレンジレジスタ１３１２には、コントローラ１３に接続されたＩＯコントローラ４，８に接続されたＰＣＩバスブリッジ配下のＰＣＩバス毎に、ＰＣＩバス番号、主記憶空間リソースレンジ、ＰＣＩバスブリッジ番号、およびＩＯコントローラ番号を含むレジスタ群１３１２１，・・が格納されている。
【００６８】
ＰＣＩバス番号は、各ＰＣＩバスを識別するための番号である。ＩＯ空間リソースレンジは、各ＰＣＩバスにおける、ＩＯコントローラによって制御されるべきＩＯ空間の範囲の情報である。ＰＣＩバスブリッジ番号は、ＰＣＩバスブリッジ５１１，‥，５４１、９１１，‥９４１を識別するための番号である。ＩＯコントローラ番号は、その主記憶空間を制御するＩＯコントローラを示す番号である。
【００６９】
なお、ＰＣＩバスにＰＣＩデバイスが接続されていなければ、主記憶空間リソースレンジおよびＩＯ空間リソースレンジには、リソース要求なしを示す値「０−０」が設定される。ＰＣＩバスブリッジ識別とＩＯコントローラ識別は、接続状態に合わせて設定される。
【００７０】
図５は、本実施形態によるコンピュータシステムのシステム起動時の動作の流れを示す図である。
【００７１】
コンピュータシステムの電源が投入されると、まず、ＣＰＵ１１がＲＯＭ２のＢＩＯＳコード格納域２１よりＢＩＯＳコードのフェッチを開始する。そして、ＣＰＵ１１は、フェッチしたＢＩＯＳコードを実行すると、ＢＩＯＳ１１１のシステム起動処理が開始される（ステップＡ１）。
【００７２】
次に、ＢＩＯＳ１１１のシステム起動処理の過程において、ＢＩＯＳ１１１は、コンピュータシステムに搭載されたＰＣＩデバイス７１，‥，７８、１１０１，‥，１１０８が必要とするリソースサイズの情報を各デバイスから取得する。ＢＩＯＳ１１１がＰＣＩデバイス７１，‥，７８、１１０１，‥，１１０８からリソース情報を取得する方法は、ＰＣＩローカルバス標準仕様にて規定された方法である。
【００７３】
これによって、ＰＣＩデバイス７１，‥，７８、１１０１，‥，１１０８は、自身が必要とするリソースサイズの情報をＢＩＯＳ１１１に通知する（ステップＥ１）。
【００７４】
次に、システム起動処理の過程において、ＣＰＵ１１にて実行されたＢＩＯＳ１１１は、各ＰＣＩデバイス７１，‥，７８、１１０１，‥，１１０８に必要なリソースサイズの情報を各デバイスから取得する（ステップＡ２）。ＢＩＯＳ１１１がＰＣＩデバイス７１，‥，７８、１１０１，‥，１１０８からリソース情報を取得する方法は、ＰＣＩローカルバス標準仕様にて規定された方法である。このとき、ＰＣＩデバイス７１，‥，７８、１１０１，‥，１１０８は、自身が必要とするリソースサイズの情報をＢＩＯＳ１１１に通知する（ステップＥ１）。
【００７５】
全てのＰＣＩデバイス７１，‥，７８、１１０１，‥，１１０８のリソース情報を取得すると、ＢＩＯＳ１１１は、各ＰＣＩバス毎に割り当てるリソース量を算出する（ステップＡ３）。リソース量が算出されることにより、各ＰＣＩデバイスに割り当てられるリソースが定まる。例えば、ＰＣＩバス番号の順序にまえ詰めでリソースを確保すればよい。その際、空きスロット７３，１１０４，１１０８について、必要なリソース量は「０」とする。
【００７６】
次に、ＢＩＯＳ１１１は、ステップＡ３において算出されたリソース量を元に、ＰＣＩバス毎のリソースレンジを示すリソース情報を、Ｃｅｌｌカード１のコントローラ１３に設定する（ステップＡ４）。このとき、Ｃｅｌｌカード１のコントローラ１３は、そのリソース情報を制御レジスタ１３１に、図４に示したように格納する（ステップＢ１）。
【００７７】
次に、ＢＩＯＳ１１１は、リソース情報をＩＯコントローラ４，８に設定する（ステップＡ５）。このとき、ＩＯコントローラ４，８は、制御レジスタ４１，８１にリソース情報を、図３に示したように、格納する（ステップＣ１）。ここで設定されるリソース情報は、自ＩＯコントローラの制御対象となるＰＣＩバスの情報のみである。
【００７８】
次に、ＢＩＯＳ１１１は、リソース情報をＰＣＩバスブリッジ５１１，・・，５４１、９１１，・・，９４１に設定する（ステップＡ６）。このとき、ＰＣＩバスブリッジ５１１，・・，５４１、９１１，・・，９４１は、各々の有する制御レジスタに、図２に示したように格納する（ステップＤ１）。ここで設定されるリソース情報は、自ＰＣＩバスブリッジの制御対象となるＰＣＩバスの情報のみである。
【００７９】
次に、ＢＩＯＳ１１１は、リソース情報を元に全てのＰＣＩデバイス７１，‥，７８、１１０１，‥，１１０８に対してリソースの設定を行う（ステップＡ７）。このとき、各ＰＣＩデバイスは、自身に割り当てられたリソースの情報を格納する（ステップＥ２）。
【００８０】
図６は、本実施形態によるコンピュータシステムのＰＣＩデバイス増設実施時の動作の流れを示す図である。
【００８１】
ＰＣＩデバイスが空きスロットに追加されると、まず、ハードウェアからＢＩＯＳ１１１に対して、ＰＣＩデバイスが増設されたことを示す割り込みが入る（ステップＡ１１）。
【００８２】
次に、ＢＩＯＳ１１１は、増設されたＰＣＩデバイスから必要なリソースサイズの情報を取得する（ステップＡ１２）。このとき、増設されたＰＣＩデバイスは、自身が必要とするリソースサイズの情報をＣＰＵ１１に通知する（ステップＥ１１）。
【００８３】
次に、ＢＩＯＳ１１１は、増設されたＰＣＩデバイスから通知されたリソースサイズから、実際に割り当てるリソース量を算出する（ステップＡ１３）。算出されたリソース量から、増設されたＰＣＩデバイスに割り当てるリソースレンジが定まる。例えば、増設されたＰＣＩデバイスに割り当てるリソースを、空きエリアに前詰めで確保すればよい。
【００８４】
次に、ＢＩＯＳ１１１は、ステップＡ１３において算出されたリソース量を元に、ＰＣＩデバイスが増設されたＰＣＩバスのリソースレンジを示すリソース情報を、Ｃｅｌｌカード１のコントローラ１３に設定する（ステップＡ１４）。このとき、Ｃｅｌｌカード１のコントローラ１３は、そのリソース情報を制御レジスタ１３１に設定する（ステップＢ１１）。ここでは、増設されたＰＣＩデバイスが接続されたＰＣＩバスの情報にのみリソース情報が追加設定される。
【００８５】
次に、ＢＩＯＳ１１１は、そのリソース情報をＩＯコントローラに設定する。このとき、ＩＯコントローラは自身内部の制御レジスタにリソース情報を格納する（ステップＣ１１）。ここでは、ＰＣＩデバイスの増設されたＰＣＩバスブリッジを収容しているＩＯコントローラにのみ、そのＰＣＩデバイスの増設されたＰＣＩバスの情報が追加設定される。
【００８６】
次に、ＢＩＯＳ１１１は、リソース情報をＰＣＩバスブリッジに設定する（ステップＡ１６）。このとき、ＰＣＩバスブリッジは、自身内部の制御レジスタにリソース情報を格納する（ステップＤ１１）。ここでは、ＰＣＩデバイスの増設されたＰＣＩバスブリッジにのみ、そのＰＣＩデバイスの増設されたＰＣＩバスの情報が追加設定される。
【００８７】
次に、ＢＩＯＳ１１１は、リソース情報を元に、増設されたＰＣＩデバイスに対してリソースの設定を行う（ステップＡ１７）。このとき、増設ＰＣＩデバイスは、自身に割り当てられたリソースの情報を格納する（ステップＥ１２）。
【００８８】
図７は、本実施形態によるコンピュータシステムにおける、主記憶空間のリソースマッピングの一例を示す図である。
【００８９】
図７（ａ）は、図１に示したコンピュータシステムのシステム起動直後のリソースマッピングの一例を示している。図７（ａ）の状態から空きスロット７３にＰＣＩデバイスが増設されると、図７（ｂ）に示されたようなリソースマッピングとなる。図７（ａ）では空きエリアであった部分に、図７（ｂ）では増設ＰＣＩデバイス用のリソースが確保されている。
【００９０】
図８は、システム起動直後のＰＣＩバスブリッジ５２１が有する制御レジスタ５２１１の内部レジスタの構成を示す図である。システム起動直後、ＰＣＩバスブリッジ５２１には、図１に示したように空きスロットがある。図８では、ＰＣＩバス番号＝「２」のＰＣＩバスが空きスロットとなっている。そのため、主記憶空間およびＩＯ空間のリソースレンジは「００−００」および「００−００」となっている。
【００９１】
図９は、空きスロットにＰＣＩデバイスが増設された後のＰＣＩバスブリッジ５２１が有する制御レジスタ５２１１の内部レジスタの構成を示す図である。図９では、増設されたＰＣＩデバイスにリソースが割り当てられており、ＰＣＩバス番号「２」の主記憶空間リソースレンジとして「ｆａ００−Ｆ９ｃ０」が割り当てられ、ＩＯ空間リソースレンジとして「２１−２０」が割り当てられている。
【００９２】
図１０は、図９と同様に空きスロットにＰＣＩデバイスが増設された後の、ＩＯコトローラ４が有する制御レジスタ４１の内部レジスタの構成を示す図である。図１０では、増設されたＰＣＩデバイスにリソースが割り当てられており、ＰＣＩバス番号「２」の主記憶空間リソースレンジとして「ｆａ００−ｆ９ｃ０」が割り当てられ、ＩＯ空間リソースレンジとして「２１−２０」が割り当てられている。
【００９３】
図１１は、図９と同様に空きスロットにＰＣＩデバイスが増設された後の、Ｃｅｌｌカード１のコントローラ１３が有する制御レジスタ１３１の内部レジスタの構成を示す図である。図１１では、増設されたＰＣＩデバイスにリソースが割り当てられており、ＰＣＩバス番号「２」の主記憶空間リソースレンジとして「ｆａ００−ｆ９ｃ０」が割り当てられ、ＩＯ空間リソースレンジとして「２１−２０」が割り当てられている。
【００９４】
システム起動直後の構成から空きスロットにＰＣＩデバイスが増設されたときのコンピュータシステムの動作について説明する。
【００９５】
コンピュータシステムは、システム起動直後に図１に示した構成であり、空きスロット７３に対してはリソースの割り当て量が「０」となっている。この状態から、空きスロット７３に増設ＰＣＩデバイスが挿入されると、ＢＩＯＳ１１１に対して割り込みが入る。
【００９６】
ＢＩＯＳ１１１は、増設されたＰＣＩデバイスから必要なリソースサイズを取得し、主記憶上の空きエリアにリソースを確保する。
【００９７】
次に、ＢＩＯＳ１１１は、Ｃｅｌｌカード１のコントローラ１３、ＩＯコントローラ４、ＰＣＩバスブリッジ５２１に、増設ＰＣＩデバイスのリソースレンジを設定する。そして、ＢＩＯＳ１１１は、増設ＰＣＩデバイスにリソースレンジを設定する。
【００９８】
この状態までくると、ＢＩＯＳ１１１は、オペレーションシステムにＰＣＩデバイスが増設（ホットプラグイン）されたことを通知する。オペレーションシステムは、ＰＣＩデバイスに設定されているリソースレンジ情報を使用して、ＰＣＩデバイスの組み込み処理を行う。
【００９９】
ここでは、増設されたＰＣＩデバイスへの主記憶空間の領域割り当てについてのみ示したが、ＩＯ空間についても同様にＢＩＯＳ１１１が割り当てを行う。
【０１００】
以上説明したように、本実施形態のコンピュータシステムによれば、各ＰＣＩバスのＰＣＩデバイスに割り当てるリソースレンジの情報が、そのＰＣＩデバイスを制御するＰＣＩバスブリッジを示す情報およびＩＯコントローラを示す情報からなる帰属情報と対応付けて管理されることにより、ＰＣＩデバイスに任意のアドレスエリアのリソースを割り当てることができるので、システム運用中にＰＣＩデバイスが増設されても、他のＰＣＩデバイスに割り当てられているリソースに影響を与えることなく、増設ＰＣＩデバイスに主記憶空間およびＩＯ空間の空きエリアから必要な量のリソースを割り当てることができ、増設用のリソースを人手により予め設定する作業を必要とせず、また、増設時に、様々なリソース量を必要とするＰＣＩデバイスにリソースを効率的かつ確実に割り当てることができる。
【０１０１】
【発明の効果】
本発明によれば、各周辺デバイスに割り当てるリソースレンジの情報が、その周辺デバイスの帰属を示す帰属情報と対応付けて管理されることにより、任意のアドレスエリアのリソースを各周辺デバイスに割り当てることができるので、必要なリソース量の異なる様々な周辺デバイスに必要量のリソースを効率的かつ確実に割り当てることができる。
【０１０２】
また、システム起動時に、任意のアドレスエリアのリソースを周辺デバイスに割り当てることができるので、必要なリソース量の異なる様々な周辺デバイスに必要量のリソースを効率的かつ確実に割り当てることができる。
【０１０３】
また、任意のアドレスエリアのリソースを増設周辺デバイスに割り当てることができるので、システム運用中に周辺デバイスを増設しても、既設の周辺デバイスのリソースに影響を与えることなく、空きエリアから必要な量のリソースを増設周辺デバイスに割り当てることができ、増設用のリソースを人手により予め設定する作業を必要とせず、また、増設時に、各種周辺デバイスに必要量のリソースを効率的かつ確実に割り当てることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態のコンピュータシステムの構成を示すブロック図である。
【図２】ＰＣＩバスブリッジ５１１が有する制御レジスタ５１１１の内部レジスタの構成を示す図である。
【図３】ＩＯコントローラ４が有する制御レジスタ４１に含まれる内部レジスタの構成を示す図である。
【図４】Ｃｅｌｌカードのコントローラ１３が有する制御レジスタ１３１に含まれる内部レジスタの構成を示す図である。
【図５】本実施形態によるコンピュータシステムのシステム起動時の動作の流れを示す図である。
【図６】本実施形態によるコンピュータシステムのＰＣＩデバイス増設実施時の動作の流れを示す図である。
【図７】本実施形態によるコンピュータシステムにおける、主記憶空間のリソースマッピングの一例を示す図である。
【図８】システム起動直後のＰＣＩバスブリッジ５２１が有する制御レジスタ５２１１の内部レジスタの構成を示す図である。
【図９】空きスロットにＰＣＩデバイスが増設された後のＰＣＩバスブリッジ５２１が有する制御レジスタ５２１１の内部レジスタの構成を示す図である。
【図１０】図９と同様に空きスロットにＰＣＩデバイスが増設された後の、ＩＯコトローラ４が有する制御レジスタ４１の内部レジスタの構成を示す図である。
【図１１】図９と同様に空きスロットにＰＣＩデバイスが増設された後の、Ｃｅｌｌカード１のコントローラ１３が有する制御レジスタ１３１の内部レジスタの構成を示す図である。
【符号の説明】
１    Ｃｅｌｌカード
１１    ＣＰＵ
１２    メモリ
１３    コントローラ
１３１    制御レジスタ
１３１１    主記憶空間リソースレンジレジスタ
１３１１１    レジスタ群
１３１２    ＩＯ空間リソースレンジレジスタ
１３１２１    レジスタ群
１４    ＣＰＵバス
２    ＲＯＭ
２１    ＢＩＯＳコード格納領域
３    システムバス
４，８    ＩＯコントローラ
４１，８１    制御レジスタ
４１１    主記憶空間リソースレンジレジスタ
４１１１    レジスタ群
４１２    ＩＯ空間リソースレンジレジスタ
４１２１    レジスタ群
５１〜５４，９１〜９４    ＩＯバス
５１１〜５４１，９１１〜９４１    ＰＣＩバスブリッジ
５１１１，５２１１，９１１１    制御レジスタ
５１１１１，５２１１１    主記憶空間リソースレンジレジスタ
５１１１１１，５１１１１２，５２１１１１，５２１１２１    レジスタ群
５１１１２，５２１１２    ＩＯ空間リソースレンジレジスタ
５１１１２１，５１１１２２    レジスタ群
６１〜６８，１０１〜１０８    ＰＣＩバス
７１，７２，７４〜７８，１１０１〜１１０３，１１０５〜１１０７    ＰＣＩデバイス
７３，１１０４，１１０８    空きスロット
Ａ１〜Ａ８，Ａ１１〜Ａ１７，Ｂ１，Ｂ１１，Ｃ１，Ｃ１１，Ｄ１，Ｄ１１，Ｅ１，Ｅ１１，Ｅ１２，Ｅ２    ステップ
【図１】
2004265043.tif 000003
【図２】
2004265043.tif 000004
【図３】
2004265043.tif 000005
【図４】
2004265043.tif 000006
【図５】
2004265043.tif 000007
【図６】
2004265043.tif 000008
【図７】
2004265043.tif 000009
【図８】
2004265043.tif 000010
【図９】
2004265043.tif 000011
【図１０】
2004265043.tif 000012
【図１１】
2004265043.tif 000013