(57)【要約】【課題】コンピュータシステムにおいて、本来、ＰＯＳＴ中に一度しか実施しないＨＷリソース割り当てを、ＢＩＯＳ及びＯｐｔｉｏｎＲＯＭ上のドライバが動作するＰｒｅ−Ｂｏｏｔ環境と、ＯＳブート（ＯＳ  Ｂｏｏｔ）及びＯＳ運用状態にあるＯＳ環境とで、二度実施する。【解決手段】ＢＩＯＳは、拡張ＩＯ空間を使う為の情報をＯＳに通知するＡＣＰＩを保有すると共に、チップセット及びＰＣＩカードを初期化する。また、ＰＣＩカード内のＯｐｔｉｏｎＲＯＭを起動することにより、Ｐｒｅ−Ｂｏｏｔ環境下でＰＣＩカードを制御する。チップセットは、ハードウェア（ＨＷ）を構成するＬＳＩ群であり、ＰＣＩコンフィグレーション空間を設定することにより、１ＫＢと４ＫＢモードを切り替える。ＯｐｔｉｏｎＲＯＭは、Ｐｒｅ−Ｂｏｏｔサービスを経由してＰＣＩカードを制御する。ＯＳドライバは、ＯＳサービスを経由してＰＣＩカードを制御する。【選択図】図１
2010218449.tif 000002
【特許請求の範囲】
【請求項１】
ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）デバイスに搭載され、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）によってメモリ上に配置され、Ｐｒｅ−Ｂｏｏｔ環境下で、ハードウェア（ＨＷ）リソース割り当てを実施するＯｐｔｉｏｎＲＯＭ上のドライバと、
前記ＢＩＯＳによってメモリ上に配置され、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）環境下で、ハードウェア（ＨＷ）リソース割り当てを実施するＯＳドライバと
を含む
リソース割り当てシステム。
【請求項２】
請求項１に記載のリソース割り当てシステムであって、
前記ＢＩＯＳは、
ＩＯ空間を要求するＰＣＩデバイスの上位のブリッジデバイスに割り当てるＩＯ空間のレンジを示すリソース管理テーブルと、
ハードウェア（ＨＷ）構成、及び拡張ＩＯ空間を使用するための情報をＯＳに通知するためのＡＣＰＩ（Ａｄｖｅｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）テーブルと
を含み、
前記リソース管理テーブルは、
Ｐｒｅ−Ｂｏｏｔ環境用のＬｅｇａｃｙ−ＩＯ空間を使用した第１粒度の割り当てを定義したＰｒｅ−Ｂｏｏｔテーブルと、
ＯＳ環境用の拡張ＩＯ空間を使用した第２粒度の割り当てを定義したＯＳテーブルと
を含む
リソース割り当てシステム。
【請求項３】
請求項２に記載のリソース割り当てシステムであって、
前記ＢＩＯＳは、ＰＯＳＴ（Ｐｏｗｅｒ−Ｏｎ−Ｓｅｌｆ−Ｔｅｓｔ）を開始した際に、前記ＯｐｔｉｏｎＲＯＭ上のドライバを起動し、
前記ＯｐｔｉｏｎＲＯＭ上のドライバは、前記リソース管理テーブルを参照し、前記第１粒度の割り当てに従って、前記チップセット（Ｃｈｉｐｓｅｔ）、及び前記チップセット（Ｃｈｉｐｓｅｔ）に内在するブリッジデバイスの初期化を実施し、
前記ＢＩＯＳは、ＯＳ立ち上げ処理に移行する際に、前記ＯＳドライバを起動し、
前記ＯＳドライバは、前記リソース管理テーブルを参照し、前記第２粒度の割り当てに従って、前記チップセット（Ｃｈｉｐｓｅｔ）、及び前記ブリッジデバイスの初期化を実施する
リソース割り当てシステム。
【請求項４】
請求項３に記載のリソース割り当てシステムであって、
前記ＯｐｔｉｏｎＲＯＭ上のドライバは、ＯＳ立ち上げ処理に移行する際に、ＯＳブートに必要な情報をＤＩＳＫからメモリ上に一旦展開した後、Ｐｒｅ−Ｂｏｏｔサービスを呼び出し、前記Ｐｒｅ−Ｂｏｏｔ環境下で使用していたデバイスの利用を停止し、前記Ｐｒｅ−Ｂｏｏｔサービス内で、前記ＯＳテーブルを参照し、前記ブリッジデバイス及び前記ＰＣＩデバイスに対し、前記第２粒度での設定を行う
リソース割り当てシステム。
【請求項５】
請求項１乃至４のいずれか一項に記載のリソース割り当てシステムで使用されるＯｐｔｉｏｎＲＯＭ。
【請求項６】
ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）デバイスに搭載され、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）によってメモリ上に配置されたＯｐｔｉｏｎＲＯＭ上のドライバにより、Ｐｒｅ−Ｂｏｏｔ環境下で、ハードウェア（ＨＷ）リソース割り当てを実施し、
前記ＢＩＯＳによってメモリ上に配置されたＯＳドライバにより、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）環境下で、ハードウェア（ＨＷ）リソース割り当てを実施する
リソース割り当て方法。
【請求項７】
請求項６に記載のリソース割り当て方法であって、
前記ＢＩＯＳは、
ＩＯ空間を要求するＰＣＩデバイスの上位のブリッジデバイスに割り当てるＩＯ空間のレンジを示すリソース管理テーブルと、
ハードウェア（ＨＷ）構成、及び拡張ＩＯ空間を使用するための情報をＯＳに通知するためのＡＣＰＩ（Ａｄｖｅｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）テーブルと
を含み、
前記リソース管理テーブルは、
Ｐｒｅ−Ｂｏｏｔ環境用のＬｅｇａｃｙ−ＩＯ空間を使用した第１粒度の割り当てを定義したＰｒｅ−Ｂｏｏｔテーブルと、
ＯＳ環境用の拡張ＩＯ空間を使用した第２粒度の割り当てを定義したＯＳテーブルと
を含む
リソース割り当て方法。
【請求項８】
請求項７に記載のリソース割り当て方法であって、
前記ＢＩＯＳにより、ＰＯＳＴ（Ｐｏｗｅｒ−Ｏｎ−Ｓｅｌｆ−Ｔｅｓｔ）を開始した際に、前記ＯｐｔｉｏｎＲＯＭ上のドライバを起動し、
前記ＯｐｔｉｏｎＲＯＭ上のドライバにより、前記リソース管理テーブルを参照し、前記第１粒度の割り当てに従って、前記チップセット（Ｃｈｉｐｓｅｔ）、及び前記チップセット（Ｃｈｉｐｓｅｔ）に内在するブリッジデバイスの初期化を実施し、
前記ＢＩＯＳにより、ＯＳ立ち上げ処理に移行する際に、前記ＯＳドライバを起動し、
前記ＯＳドライバにより、前記リソース管理テーブルを参照し、前記第２粒度の割り当てに従って、前記チップセット（Ｃｈｉｐｓｅｔ）、及び前記ブリッジデバイスの初期化を実施する
リソース割り当て方法。
【請求項９】
請求項８に記載のリソース割り当て方法であって、
前記ＯｐｔｉｏｎＲＯＭ上のドライバにより、ＯＳ立ち上げ処理に移行する際に、ＯＳブートに必要な情報をＤＩＳＫからメモリ上に一旦展開した後、Ｐｒｅ−Ｂｏｏｔサービスを呼び出し、前記Ｐｒｅ−Ｂｏｏｔ環境下で使用していたデバイスの利用を停止し、前記Ｐｒｅ−Ｂｏｏｔサービス内で、前記ＯＳテーブルを参照し、前記ブリッジデバイス及び前記ＰＣＩデバイスに対し、前記第２粒度での設定を行う
リソース割り当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リソース（資源）割り当てシステムに関し、特に大規模構成システムにおけるハードウェア（ＨＷ）リソース割り当てを行うリソース割り当てシステムに関する。
【背景技術】
【０００２】
大規模構成システムにおいて、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）カードを大量に搭載しようとした場合、システムリソース（資源）の枯渇が懸念される。
【０００３】
特に、「時代遅れ」のインターフェース（Ｌｅｇａｃｙ  Ｉｎｔｅｒｆａｃｅ）のＩＯ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）空間であるレガシーＩＯ（Ｌｅｇａｃｙ−ＩＯ）空間に関しては、６４ＫＢ（Ｋｉｌｏ  Ｂｙｔｅｓ）という制限がある。１ブリッジデバイス（１Ｓｌｏｔ）当たり４ＫＢの割り当てが基本とされているので、最大１６Ｓｌｏｔ分しかＩＯ空間を割り当てられないことになる。
【０００４】
その対策として、２つの方法がある。
【０００５】
１つ目は、１ＫＢ粒度（ｇｒａｎｕｌａｒｉｔｙ）でＩＯ空間を割り当ることである。なお、粒度は、大規模マルチプロセッサシステム等で大量の数値データを処理する際に、処理内容を細分化して複数のプロセッサの各々に割り当てるための「処理の細分化の単位」である。１ＫＢ粒度とは、粒度の単位が１ＫＢであることを示す。
【０００６】
具体的には、チップセット（Ｃｈｉｐｓｅｔ）が１ＫＢ粒度でＩＯ空間の割り当てを可能とする機能を有し、その機能を利用することで１ＫＢ粒度での割り当てが可能となる。
【０００７】
この手法は、ＰＣＩ標準仕様から逸脱するため、Ｐｒｅ−Ｂｏｏｔ環境のように直接ブリッジデバイス（Ｂｒｉｄｇｅ）を意識しない場合は問題ないが、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に対してはブリッジデバイスを隠蔽しなければならない。
【０００８】
しかし、ＰＣＩカードに代わるＰＣＩ−Ｅｘｐｒｅｓｓ世代のデバイスでは、ブリッジデバイスに相当するＰＣＩ−ＥｘｐｒｅｓｓのルートポートをＯＳが直接制御することで、ＰＣＩ−Ｅｘｐｒｅｓｓの機能を有効利用できるようになるものである。
【０００９】
そのため、ＯＳにブリッジデバイスを隠蔽することは、ＰＣＩ−ＥｘｐｒｅｓｓをサポートしているＯＳで、そのＰＣＩ−Ｅｘｐｒｅｓｓの機能が使用できなくなることを意味する。
【００１０】
２つ目は、６４ＫＢ以上のＩＯ空間を割り当て可能とする「拡張ＩＯ空間」を使用する方法が存在する。
【００１１】
この拡張ＩＯ空間の機能は、ＡＣＰＩ標準仕様（Ａｄｖｅｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）でそのアクセス方法が規定されており、ＯＳが使用することを前提とした機能である。
【００１２】
そのため、Ｐｒｅ−Ｂｏｏｔ環境でＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）がこの機能を使用するためには、ＢＩＯＳに新たな機能追加が必要であり、ＢＩＯＳの標準仕様に逸脱してしまう。
【００１３】
特開２００１−２２９１１７号公報（特許文献１）に拡張ユニットの制御方法、コンピュータ、記録媒体及び伝送媒体が開示されている。この関連技術では、ＰＣとドッキング・ステーションの接続が検出されてＢＩＯＳ（ＳＭＩハンドラ）が起動されると、ＩＳＡバスに接続されているゲート・アレイへのＩ／Ｏ空間の割り当てをディスエーブルする。また、ドッキング・ステーションのＰＣＩ−ＰＣＩブリッジのＩ／ＯウインドウにＩ／Ｏ空間を指定する。更に、ＰＣＩ  ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）コントローラのコマンド・ブロック・レジスタにＩ／Ｏ空間を割り当てる。そして、レジスタにＡＴＡコマンドを送ることでドッキング・ステーションに実装されているデバイスの初期化やデータ転送速度のプログラミング、パスワードの解除等の処理を行い、Ｉ／Ｏ空間の割り当てを解除してドッキング・ステーションとの接続完了をＯＳに通知する。
【００１４】
特開２００８−１９１９５７号公報（特許文献２）にコンピュータシステム及びそのファイルシステム自動設定ＯＳ起動方式が開示されている。この関連技術では、処理開始時、装置の初期化が完了したところで、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）カードが搭載されているか否かを、ＳＣＳＩカードのベンダＩＤとデバイスＩＤとから判断する。ＳＣＳＩカードが搭載されていた場合は、ＯＳ立ち上げ（ＯＳブート）に有効な起動プログラムであるＯｐｔｉｏｎＲＯＭ（拡張ＲＯＭ）の設定が存在するか否かを判定する。初めてのＯＳ立ち上げ時には、有効なＯｐｔｉｏｎＲＯＭの設定が存在しないので、自動ＯｐｔｉｏｎＲＯＭ有効設定処理が起動される。自動ＯｐｔｉｏｎＲＯＭ有効設定処理では、ＳＣＳＩカードに接続されたＤＩＳＫをサーチする必要があるので、最初のＳＣＳＩカード搭載スロットを検知するとともに、ＳＣＳＩカード搭載スロット番号まで検知して、これを保持する。検知されたスロットに対して、ＯｐｔｉｏｎＲＯＭを仮に有効にして、検知されたＳＣＳＩカード搭載スロットに装着されたＳＣＳＩカード配下のＤＩＳＫ内部のＦＳ（ファイルシステム）を読み出す。そして、ＤＩＳＫ内にＯＳがインストールされている、ＯＳ起動可能なファイルシステムであるか否かを判定し、ファイルシステムがＯＳ起動可能であれば、ＯｐｔｉｏｎＲＯＭの設定が有効であることを示す情報を、ＣＭＯＳからなるＲＡＭに格納する。その後、スロット番号を、検知された対象スロット番号と比較して、最終スロット番号であるか否かを判定する。スロット番号が最終でない場合は、前回の対象スロット番号を「１」だけカウントアップしたＳＣＳＩスロット番号を、次の対象スロット番号として保持する。スロット番号が最終であった場合は、ＲＡＭ上のＯｐｔｉｏｎＲＯＭの設定に変更があったか否かを判定して、変更があったときは、装置の再起動が必要になるので、装置の初期化を行う。
【００１５】
特開平１０−２９３６８４号公報（特許文献３）にコンピュータシステム及びその立ち上げ制御方法が開示されている。この関連技術では、ＢＩＯＳ−ＲＯＭのシステムＢＩＯＳの内、ＰＯＳＴ（Ｐｏｗｅｒ−Ｏｎ−Ｓｅｌｆ−Ｔｅｓｔ）ルーチン及び拡張用ドライバルーチンなどを含むシステムＢＩＯＳについてはプロテクトモード化されており、そのシステムＢＩＯＳについてはプロテクトモードでのみアクセス可能な「１０００００ｈ」以降のＣＰＵアドレス空間に割り当てられ、ＢＩＯＳドライバ群を含むシステムＢＩＯＳについては従来通りリアルモードでアクセス可能なアドレス空間「Ｆ００００ｈ〜ＦＦＦＦＦｈ」に割り当てられる。
【００１６】
なお、ＰＯＳＴとは、コンピュータ等の電源投入時に自動的に実行される各機器のテストであり、ハードウェア（ＨＷ）に異常がないかを調べるテストである。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００１−２２９１１７号公報
【特許文献２】特開２００８−１９１９５７号公報
【特許文献３】特開平１０−２９３６８４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
従来の課題に対し、対策として２つ考えられる。
【００１９】
１つ目は、１デバイス当たり１ＫＢの割り当てを行う方法である。
【００２０】
しかしながら、ＰＣＩ仕様書（ＰＣＩ−Ｓｐｅｃ）上、ブリッジデバイス（Ｂｒｉｄｇｅ）へのＩＯ空間の割り当ては４ＫＢ粒度での割り当てが規定されている。
【００２１】
そのため、この方法を採用する場合、ＯＳに対してブリッジデバイスを隠蔽しなければならないという課題が発生する。
【００２２】
２つ目は、６４ＫＢ以上のＩＯ空間を使用可能とする「拡張ＩＯ空間」というアドレス変換方式を活用する方法である。
【００２３】
この方式は、ＯＳに対する仕様で新たに追加されたものであり、最新のＯＳでサポートされ始めている。
【００２４】
一方、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）、及びＰＣＩカードに搭載されているＯｐｔｉｏｎＲＯＭ（拡張ＲＯＭ）上のドライバは、この方式をサポートしていない。
【００２５】
この方式をサポートする場合、ＢＩＯＳ及びＯｐｔｉｏｎＲＯＭ上のドライバに拡張ＩＯ空間をサポートするための機能追加が必要である。
【００２６】
しかしながら、サーバベンダ（Ｓｅｒｖｅｒ  Ｖｅｎｄｏｒ）が独自にＢＩＯＳに機能追加を行うと、ＢＩＯＳの標準仕様から逸脱して互換性が保てなくなるため、機能追加は現実的ではない。
【００２７】
このような事情から、大規模ＩＯシステムを実現するための新たなＩＯ空間リソース割り当て方式を生み出す必要があった。
【課題を解決するための手段】
【００２８】
本発明のリソース割り当てシステムは、ＯｐｔｉｏｎＲＯＭ上のドライバと、ＯＳドライバとを含む。ＯｐｔｉｏｎＲＯＭ上のドライバは、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）デバイスに搭載され、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）によってメモリ上に配置され、Ｐｒｅ−Ｂｏｏｔ環境下で、ハードウェア（ＨＷ）リソース割り当てを実施する。ＯＳドライバは、ＢＩＯＳによってメモリ上に配置され、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）環境下で、ハードウェア（ＨＷ）リソース割り当てを実施する。
【００２９】
本発明のリソース割り当て方法では、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）デバイスに搭載され、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）によってメモリ上に配置されたＯｐｔｉｏｎＲＯＭ上のドライバにより、Ｐｒｅ−Ｂｏｏｔ環境下で、ハードウェア（ＨＷ）リソース割り当てを実施する。また、ＢＩＯＳによってメモリ上に配置されたＯＳドライバにより、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）環境下で、ハードウェア（ＨＷ）リソース割り当てを実施する。
【発明の効果】
【００３０】
コンピュータシステムにおいて、ＯｐｔｉｏｎＲＯＭ（拡張ＲＯＭ）上のドライバが、拡張ＩＯ空間をサポートしていなくても、ＯＳへの拡張ＩＯ空間機能の提供が可能となる。
【図面の簡単な説明】
【００３１】
【図１】本発明のリソース割り当てシステムの構成例を示す概念図である。
【図２】本発明のリソース割り当てシステムの動作を示すフローチャートである。
【図３】実施例における動作を示すフローチャートである。
【発明を実施するための形態】
【００３２】
以下に、本発明の実施形態について添付図面を参照して説明する。
図１に示すように、本発明のリソース割り当てシステムは、ＰＣＩＢＯＸ１と、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）２と、Ｐｒｅ−Ｂｏｏｔ環境３と、ＯＳ環境４を含む。
【００３３】
ＰＣＩＢＯＸ１は、ハードウェア（ＨＷ）と略すプラットフォーム上に存在し、チップセット（Ｃｈｉｐｓｅｔ）及びＰＣＩカードを含むＢＯＸである。ＰＣＩＢＯＸ１の個数は、システム構成によって増減するが、ここでは簡略化のため、ＰＣＩＢＯＸ１が１つのみ存在するケース（事例）について説明する。但し、実際には、ＰＣＩＢＯＸ１は、複数でも良い。
【００３４】
ＰＣＩＢＯＸ１は、チップセット（Ｃｈｉｐｓｅｔ）１１と、ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ：ｎはカード数）を含む。
【００３５】
チップセット（Ｃｈｉｐｓｅｔ）１１は、ハードウェア（ＨＷ）を構成するＬＳＩ群である。チップセット（Ｃｈｉｐｓｅｔ）１１は、内部のブリッジデバイス（Ｂｒｉｄｇｅ）に対するＩＯ空間の割り当て方式として、４ＫＢモード、及び１ＫＢモードをサポートしており、ＰＣＩコンフィグレーション空間を設定することにより、４ＫＢモードと１ＫＢモードを切り替える。
【００３６】
チップセット（Ｃｈｉｐｓｅｔ）１１は、ブリッジ１１１（１１１−ｉ、ｉ＝１〜ｎ）を含む。
【００３７】
ブリッジ１１１（１１１−ｉ、ｉ＝１〜ｎ）は、チップセット（Ｃｈｉｐｓｅｔ）１１に内在するブリッジデバイスである。
【００３８】
ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）は、ＯｐｔｉｏｎＲＯＭ（拡張ＲＯＭ）を搭載している。ＰＣＩカード１２は、ＰＣＩデバイスの一種である。ＰＣＩカード１２の例として、ネットワークカードやグラフィックカード、サウンドカード等が考えられる。但し、実際には、これらの例に限定されない。
【００３９】
ＢＩＯＳ２は、ハードウェア（ＨＷ）と略すプラットフォームを制御するファームウェア（ＦＷ）である。実際には、ＢＩＯＳ２は、このファームウェアと、当該ファームウェアを格納するメモリと、当該ファームウェアを実行する処理装置の組み合わせにより実現される。処理装置の例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やマイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、又は同様の機能を有する半導体集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＩＣ））等が考えられる。但し、実際には、これらの例に限定されない。
【００４０】
ＢＩＯＳ２は、チップセット（Ｃｈｉｐｓｅｔ）１１及びＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）を初期化する。また、ＢＩＯＳ２は、ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）内のＯｐｔｉｏｎＲＯＭを起動することにより、Ｐｒｅ−Ｂｏｏｔ環境下でＰＣＩカードを制御する。
【００４１】
ＢＩＯＳ２は、リソース管理テーブル２１と、ＡＣＰＩ（Ａｄｖｅｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）テーブル２２を含む。
【００４２】
リソース管理テーブル２１は、ＩＯ空間を要求するＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）の上位のブリッジ１１１（１１１−ｉ、ｉ＝１〜ｎ）に割り当てるＩＯ空間のレンジを示す。
【００４３】
ＡＣＰＩテーブル２２は、ＰＣＩＢＯＸ１のハードウェア（ＨＷ）構成をＯＳに認識させるための標準機能であり、拡張ＩＯ空間を使用するための情報をＯＳに通知する役割を持っている。
【００４４】
Ｐｒｅ−Ｂｏｏｔ環境３、及びＯＳ環境４は、Ｐｒｅ−Ｂｏｏｔ環境３及びＯＳ環境４のそれぞれの動作を定義したソフトウェアと、当該ソフトウェアを格納するメモリと、当該ソフトウェアを実行する処理装置の組み合わせにより実現される。
【００４５】
Ｐｒｅ−Ｂｏｏｔ環境３は、ＯｐｔｉｏｎＲＯＭ３１と、Ｐｒｅ−Ｂｏｏｔサービス３２を含む。
【００４６】
ＯｐｔｉｏｎＲＯＭ３１は、Ｐｒｅ−Ｂｏｏｔサービス３２を経由してＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）を制御する。ここでは、ＯｐｔｉｏｎＲＯＭ３１は、ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）に搭載されたＯｐｔｉｏｎＲＯＭ上のドライバを示す。ＯｐｔｉｏｎＲＯＭ３１は、ＢＩＯＳ２によりメモリ上にロードされる。
【００４７】
Ｐｒｅ−Ｂｏｏｔサービス３２は、ＯｐｔｉｏｎＲＯＭ３１に対して、ハードウェア（ＨＷ）にアクセスするためのサービスを提供する。
【００４８】
ＯＳ環境４は、ＯＳドライバ４１と、ＯＳサービス４２を含む。
【００４９】
ＯＳドライバ４１は、ＯＳ環境下のドライバであり、ＯＳサービス４２を経由してＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）を制御する。
【００５０】
ＯＳサービス４２は、拡張ＩＯ空間への変換機能を有しており、ＡＣＰＩテーブル２２から取得した情報を基に、拡張ＩＯ空間の制御を行う。
【００５１】
図２を参照して、本実施形態の動作について説明する。
【００５２】
（１）ステップＡ０１：「立ち上げ」
ＢＩＯＳ２は、ハードウェア（ＨＷ）と略すプラットフォームの立ち上げ（起動）の際に、ＰＯＳＴ（Ｐｏｗｅｒ−Ｏｎ−Ｓｅｌｆ−Ｔｅｓｔ）を開始する。
【００５３】
（２）ステップＡ０２：「デバイスサーチ」
ＢＩＯＳ２は、デバイスサーチを実行し、ＰＣＩＢＯＸ１内のＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）を探索する。
【００５４】
（３）ステップＡ０３：「リソース管理テーブル作成」
ＢＩＯＳ２は、ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）がＩＯ空間を要求している場合、当該ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）の上位のブリッジ１１１（１１１−ｉ、ｉ＝１〜ｎ）に割り当てるＩＯ空間のレンジを決定し、決定された内容を、リソース管理テーブル２１として保持する。
【００５５】
（４）ステップＡ０４：「Ｐｒｅ−Ｂｏｏｔ環境向けチップセット（Ｃｈｉｐｓｅｔ）初期化」
ここでは、Ｐｒｅ−Ｂｏｏｔ環境３は、ＥＦＩ（Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）環境とする。ＢＩＯＳ２は、リソース管理テーブル２１を基に、ＥＦＩ環境（Ｐｒｅ−Ｂｏｏｔ環境３）向けのＬｅｇａｃｙ−ＩＯ空間を使用した１ＫＢ粒度（第１粒度）の割り当てに従って、チップセット（Ｃｈｉｐｓｅｔ）１１、及びチップセット（Ｃｈｉｐｓｅｔ）１１に内在するブリッジ１１１（１１１−ｉ、ｉ＝１〜ｎ）の初期化を実施する。
【００５６】
（５）ステップＡ０５：「ＯｐｔｉｏｎＲＯＭ起動」
ＢＩＯＳ２は、Ｐｒｅ−Ｂｏｏｔ環境下で動作可能なＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）のＯｐｔｉｏｎＲＯＭ３１を起動する。これにより、Ｐｒｅ−Ｂｏｏｔ環境３での処理が開始する。ＢＩＯＳ２は、ＯｐｔｉｏｎＲＯＭ３１を起動することによって、ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）の制御が可能となり、ＳＣＳＩ、ＮＩＣ等のブートパスの認識が可能となる。
【００５７】
（６）ステップＡ０６：「ＯＳブート開始」
ＯｐｔｉｏｎＲＯＭ３１は、Ｐｒｅ−Ｂｏｏｔ環境下で、ブートパスからブートローダーを起動し、ＯＳ立ち上げ（ＯＳブート）を開始する。
【００５８】
（７）ステップＡ０７：「ＯＳ環境向けチップセット（Ｃｈｉｐｓｅｔ）初期化」
ＢＩＯＳ２は、Ｐｒｅ−Ｂｏｏｔ環境３での処理が終了し、ＯＳ立ち上げ処理に移行する直前で、リソース管理テーブル２１を基に、ＯＳ環境２向けの拡張ＩＯ空間を使用した４ＫＢ粒度（第２粒度）の割り当てに従ってチップセット（Ｃｈｉｐｓｅｔ）１１、及びチップセット（Ｃｈｉｐｓｅｔ）１１に内在するブリッジデバイスの初期化を実施する。その後、ＢＩＯＳ２は、Ｐｒｅ−Ｂｏｏｔ環境３での処理を終了し、ＯｐｔｉｏｎＲＯＭ３１を停止する。
【００５９】
（８）ステップＡ０８：「ＯＳブート完了」
ＢＩＯＳ２は、ＯｐｔｉｏｎＲＯＭ３１からＯＳ側のドライバ（ＯＳドライバ４１）に制御を移行する。ＯＳドライバ４１は、ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）の再初期化を実施する。これにより、ＯＳブートが完了し、ＯＳ環境４での処理が開始する。
【００６０】
このように、Ｐｒｅ−Ｂｏｏｔ環境からＯＳ環境に切り替るタイミングで、ＩＯ空間を再設定することで、最適なリソース割り当てを行うことが可能となる。
【００６１】
次に、図３のフローチャートを参照して、本発明の実施例の動作について詳細に説明する。
【００６２】
（１）ステップＢ０１：「ＰＯＳＴ開始」
まず、ハードウェア（ＨＷ）と略すプラットフォームへの電源投入後、ＢＩＯＳ２は、ＰＯＳＴを開始する。
【００６３】
（２）ステップＢ０２：「デバイスサーチ」
ＢＩＯＳ２は、デバイスサーチを実施し、チップセット（Ｃｈｉｐｓｅｔ）１１内のブリッジ１１１（１１１−ｉ、ｉ＝１〜ｎ）、及びその配下に搭載されているＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）を認識する。
【００６４】
（３）ステップＢ０３：「リソース管理テーブル作成」
ＢＩＯＳ２は、認識したブリッジ１１１（１１１−ｉ、ｉ＝１〜ｎ）、及びＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）に対して割り当てるＩＯ空間のレンジを決定し、リソース管理テーブル２１として保持する。この際、ＢＩＯＳ２は、リソース管理テーブル２１として、ＥＦＩ環境用のＬｅｇａｃｙ−ＩＯ空間のみを使用した１ＫＢ粒度（第１粒度）の割り当てテーブル（ＥＦＩテーブル）と、ＯＳ環境用の拡張ＩＯ空間を使用した４ＫＢ粒度（第２粒度）の割り当てテーブル（ＯＳテーブル）の２種類を作成する。
【００６５】
（４）ステップＢ０４：「ＥＦＩ環境向けチップセット（Ｃｈｉｐｓｅｔ）初期化」
次に、ＢＩＯＳ２は、チップセット（Ｃｈｉｐｓｅｔ）１１のＩＯ空間の割り当てを１ＫＢモードへ切り替える処理を実施し、ＥＦＩ環境用のリソース管理テーブル２１（ＥＦＩテーブル）を基に、ブリッジ１１１（１１１−ｉ、ｉ＝１〜ｎ）及び、ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）に対し、Ｌｅｇａｃｙ−ＩＯ空間を割り当て、その他チップセット（Ｃｈｉｐｓｅｔ）としての初期化処理を実施する。
【００６６】
（５）ステップＢ０５：「ＡＣＰＩテーブル作成」
次に、ＢＩＯＳ２は、リソース管理テーブル２１を基に、ＡＣＰＩテーブル２２を作成する。このＡＣＰＩテーブル２２には、ＯＳ環境用のリソース管理テーブル２１（ＯＳテーブル）を基に、各ブリッジに割り当てられたＩＯ空間のレンジを定義するとともに、拡張ＩＯ空間としてのアドレス変換方式についても定義する。
【００６７】
（６）ステップＢ０６：「ＯｐｔｉｏｎＲＯＭ起動」
その後、ＢＩＯＳ２は、各ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）のＯｐｔｉｏｎＲＯＭ３１を起動し、メモリ上に展開する。すなわち、ＢＩＯＳ２は、各ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）を制御するＯｐｔｉｏｎＲＯＭ３１をロードする。これにより、ＯｐｔｉｏｎＲＯＭ３１は、ＳＣＳＩカード等のストレージ系のデバイス配下のＤＩＳＫ（ファイルシステム）を認識する。ここでは、ＯｐｔｉｏｎＲＯＭ３１は、ＥＦＩドライバとして機能する。
【００６８】
（７）ステップＢ０７：「ブートローダー起動」
ＯｐｔｉｏｎＲＯＭ３１は、ブートローダーを起動することで、ＯＳ立ち上げ（ＯＳブート）を行う。
【００６９】
（８）ステップＢ０８：「ＥｘｉｔＢｏｏｔＳｅｒｖｉｃｅ」
その後、ＯｐｔｉｏｎＲＯＭ３１は、ＯＳブートに必要な情報をＤＩＳＫからメモリ上に一旦展開した後、Ｐｒｅ−Ｂｏｏｔサービス３２として、Ｐｒｅ−Ｂｏｏｔ環境のサービス「ＥｘｉｔＢｏｏｔＳｅｒｖｉｃｅ」をコールし（呼び出し）、このサービス内でＯＳ環境用のリソース管理テーブル２１を参照し、ブリッジ１１１（１１１−ｉ、ｉ＝１〜ｎ）及びＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）に対し、拡張ＩＯ空間を使用した４ＫＢ粒度での設定を行う。
【００７０】
（９）ステップＢ０９：「ＯＳブート」
「ＥｘｉｔＢｏｏｔＳｅｒｖｉｃｅ」完了後、ＯＳはドライバをロードすることによりＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）の制御が完全にＯＳ側に移行し、ＯＳブートが完了する。すなわち、ＯＳドライバ４１は、ＯＳによりメモリ上にロードされて、ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）の制御を、ＯｐｔｉｏｎＲＯＭ３１から完全に引き継ぐ。
【００７１】
ここで、ステップＢ０８（ＥｘｉｔＢｏｏｔＳｅｒｖｉｃｅ）の動作について、以下に詳述する。
（１）ステップＢ０８１：「Ｂｒｉｄｇｅ／ＰＣＩカードデバイスの停止（ＢｕｓＲｅｓｅｔ等）」
ＯｐｔｉｏｎＲＯＭ３１は、ＯＳブートに必要な情報をＤＩＳＫからメモリ上に一旦展開した後、Ｐｒｅ−Ｂｏｏｔサービス３２として、Ｐｒｅ−Ｂｏｏｔ環境のサービス「ＥｘｉｔＢｏｏｔＳｅｒｖｉｃｅ」をコールし（呼び出し）、Ｐｒｅ−Ｂｏｏｔ環境下で使用していたブリッジ１１１（１１１−ｉ、ｉ＝１〜ｎ）の利用を停止する。なお、この時点でデバイスが動作することは無いが、ＩＢ（Ｉｎｔｅｒｆａｃｅ  Ｂｕｓ）のＴＸＮ（ｔｒａｎｓｍｉｔ  ｄｉｆｆｅｒｅｎｔｉａｌ  ｐａｉｒ）が残っている可能性を考慮して、確実に停止する。
【００７２】
（２）ステップＢ０８２：「チップセット（Ｃｈｉｐｓｅｔ）／内部ブリッジデバイスの再初期化」
ＯｐｔｉｏｎＲＯＭ３１は、このサービス「ＥｘｉｔＢｏｏｔＳｅｒｖｉｃｅ」内において、ＯＳ環境用のリソース管理テーブル２１を基に、ブリッジ１１１（１１１−ｉ、ｉ＝１〜ｎ）及びＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）に対し、拡張ＩＯ空間を使用した４ＫＢ粒度でのＰＣＩデバイスのルーティングを行う。
【００７３】
（３）ステップＢ０８３：「ＯＳドライバロード（〜ＯＳブート）」
ＢＩＯＳ２は、「ＥｘｉｔＢｏｏｔＳｅｒｖｉｃｅ」完了後、ＯＳドライバ４１をロードする。このとき、ＢＩＯＳ２は、ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）の制御を、ＯｐｔｉｏｎＲＯＭ３１からＯＳドライバ４１に完全に移行する。その後、ＢＩＯＳ２は、ＯｐｔｉｏｎＲＯＭ３１を停止する。ＯＳドライバ４１は、ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）を初期化し、新しいリソース（レンジ）を認識し、ＰＣＩカード１２（１２−ｉ、ｉ＝１〜ｎ）の使用を開始する。
【００７４】
本発明により、ＯｐｔｉｏｎＲＯＭ上のドライバが、拡張ＩＯ空間を未サポートであっても、ＯＳへの拡張ＩＯ空間機能の提供が可能となる。
【００７５】
その理由は、以下の通りである。
【００７６】
例えば、ＢＩＯＳ及びＯｐｔｉｏｎＲＯＭが動作するＰｒｅ−Ｂｏｏｔ環境では、拡張ＩＯ空間をサポートしていないが、１ＫＢのハードウェア（ＨＷ）リソース割り当てが可能である。
【００７７】
これに対し、ＯＳブート（ＯＳ  Ｂｏｏｔ）及びＯＳ運用状態にあるＯＳ環境では、拡張ＩＯ空間をサポートしているが、１ＫＢのハードウェア（ＨＷ）リソース割り当ては不可能である。
【００７８】
上記のような状況に対し、本発明では、それぞれの環境に合ったハードウェア（ＨＷ）リソース割り当てを、ＯＳブート直前で切り替えるためである。
【００７９】
以上のように、本発明は、コンピュータシステムにおいて、本来、ＰＯＳＴ中に一度（一回）しか実施しないハードウェア（ＨＷ）リソース割り当てを、ＢＩＯＳ及びＯｐｔｉｏｎＲＯＭ上のドライバが動作するＰｒｅ−Ｂｏｏｔ環境と、ＯＳブート（ＯＳ  Ｂｏｏｔ）及びＯＳ運用状態にあるＯＳ環境とで、二度（複数回）実施することにより、標準ＢＩＯＳではサポートしていない拡張ＩＯ空間の機能を、ＯＳブート後に使用可能にする。
【００８０】
本発明では、ＯＳは拡張ＩＯ空間をサポート可能だが、ブリッジデバイスに対する１ＫＢ粒度での割り当てが不可能な点と、Ｐｒｅ−Ｂｏｏｔ環境においてＢＩＯＳは拡張ＩＯ空間をサポート不可能だが、１ＫＢ粒度での割り当ては可能という、相反する２つの環境に対応する解決手段を有する。
【００８１】
本発明によれば、大規模なコンピュータシステムにおいて、リソースを要求するＰＣＩカードが多数存在するケースで、チップセット（Ｃｈｉｐｓｅｔ）及びＰＣＩカードに対しリソース割り当てを行うＢＩＯＳ上のプログラムとして適用できる。
【００８２】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【符号の説明】
【００８３】
１…  ＰＣＩＢＯＸ
１１…  チップセット（Ｃｈｉｐｓｅｔ）
１１１（−ｉ、ｉ＝１〜ｎ）…  ブリッジ（Ｂｒｉｄｇｅ）
１２（−ｉ、ｉ＝１〜ｎ）…  ＰＣＩカード
２…  ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）
２１…  リソース管理テーブル
２２…  ＡＣＰＩ（Ａｄｖｅｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）テーブル
３…  Ｐｒｅ−Ｂｏｏｔ環境
３１…  ＯｐｔｉｏｎＲＯＭ（拡張ＲＯＭ）
３２…  Ｐｒｅ−Ｂｏｏｔサービス
４…  ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）環境
４１…  ＯＳドライバ
４２…  ＯＳサービス
【図１】
2010218449.tif 000003
【図２】
2010218449.tif 000004
【図３】
2010218449.tif 000005