説明

リソース割り当てシステム、及びリソース割り当て方法

【課題】コンピュータシステムにおいて、本来、POST中に一度しか実施しないHWリソース割り当てを、BIOS及びOptionROM上のドライバが動作するPre−Boot環境と、OSブート(OS Boot)及びOS運用状態にあるOS環境とで、二度実施する。
【解決手段】BIOSは、拡張IO空間を使う為の情報をOSに通知するACPIを保有すると共に、チップセット及びPCIカードを初期化する。また、PCIカード内のOptionROMを起動することにより、Pre−Boot環境下でPCIカードを制御する。チップセットは、ハードウェア(HW)を構成するLSI群であり、PCIコンフィグレーション空間を設定することにより、1KBと4KBモードを切り替える。OptionROMは、Pre−Bootサービスを経由してPCIカードを制御する。OSドライバは、OSサービスを経由してPCIカードを制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、リソース(資源)割り当てシステムに関し、特に大規模構成システムにおけるハードウェア(HW)リソース割り当てを行うリソース割り当てシステムに関する。
【背景技術】
【0002】
大規模構成システムにおいて、PCI(Peripheral Components Interconnect)カードを大量に搭載しようとした場合、システムリソース(資源)の枯渇が懸念される。
【0003】
特に、「時代遅れ」のインターフェース(Legacy Interface)のIO(Input/Output)空間であるレガシーIO(Legacy−IO)空間に関しては、64KB(Kilo Bytes)という制限がある。1ブリッジデバイス(1Slot)当たり4KBの割り当てが基本とされているので、最大16Slot分しかIO空間を割り当てられないことになる。
【0004】
その対策として、2つの方法がある。
【0005】
1つ目は、1KB粒度(granularity)でIO空間を割り当ることである。なお、粒度は、大規模マルチプロセッサシステム等で大量の数値データを処理する際に、処理内容を細分化して複数のプロセッサの各々に割り当てるための「処理の細分化の単位」である。1KB粒度とは、粒度の単位が1KBであることを示す。
【0006】
具体的には、チップセット(Chipset)が1KB粒度でIO空間の割り当てを可能とする機能を有し、その機能を利用することで1KB粒度での割り当てが可能となる。
【0007】
この手法は、PCI標準仕様から逸脱するため、Pre−Boot環境のように直接ブリッジデバイス(Bridge)を意識しない場合は問題ないが、OS(Operating System)に対してはブリッジデバイスを隠蔽しなければならない。
【0008】
しかし、PCIカードに代わるPCI−Express世代のデバイスでは、ブリッジデバイスに相当するPCI−ExpressのルートポートをOSが直接制御することで、PCI−Expressの機能を有効利用できるようになるものである。
【0009】
そのため、OSにブリッジデバイスを隠蔽することは、PCI−ExpressをサポートしているOSで、そのPCI−Expressの機能が使用できなくなることを意味する。
【0010】
2つ目は、64KB以上のIO空間を割り当て可能とする「拡張IO空間」を使用する方法が存在する。
【0011】
この拡張IO空間の機能は、ACPI標準仕様(Advenced Configuration and Power Interface Specification)でそのアクセス方法が規定されており、OSが使用することを前提とした機能である。
【0012】
そのため、Pre−Boot環境でBIOS(Basic Input/Output System)がこの機能を使用するためには、BIOSに新たな機能追加が必要であり、BIOSの標準仕様に逸脱してしまう。
【0013】
特開2001−229117号公報(特許文献1)に拡張ユニットの制御方法、コンピュータ、記録媒体及び伝送媒体が開示されている。この関連技術では、PCとドッキング・ステーションの接続が検出されてBIOS(SMIハンドラ)が起動されると、ISAバスに接続されているゲート・アレイへのI/O空間の割り当てをディスエーブルする。また、ドッキング・ステーションのPCI−PCIブリッジのI/OウインドウにI/O空間を指定する。更に、PCI IDE(Integrated Drive Electronics)コントローラのコマンド・ブロック・レジスタにI/O空間を割り当てる。そして、レジスタにATAコマンドを送ることでドッキング・ステーションに実装されているデバイスの初期化やデータ転送速度のプログラミング、パスワードの解除等の処理を行い、I/O空間の割り当てを解除してドッキング・ステーションとの接続完了をOSに通知する。
【0014】
特開2008−191957号公報(特許文献2)にコンピュータシステム及びそのファイルシステム自動設定OS起動方式が開示されている。この関連技術では、処理開始時、装置の初期化が完了したところで、SCSI(Small Computer System Interface)カードが搭載されているか否かを、SCSIカードのベンダIDとデバイスIDとから判断する。SCSIカードが搭載されていた場合は、OS立ち上げ(OSブート)に有効な起動プログラムであるOptionROM(拡張ROM)の設定が存在するか否かを判定する。初めてのOS立ち上げ時には、有効なOptionROMの設定が存在しないので、自動OptionROM有効設定処理が起動される。自動OptionROM有効設定処理では、SCSIカードに接続されたDISKをサーチする必要があるので、最初のSCSIカード搭載スロットを検知するとともに、SCSIカード搭載スロット番号まで検知して、これを保持する。検知されたスロットに対して、OptionROMを仮に有効にして、検知されたSCSIカード搭載スロットに装着されたSCSIカード配下のDISK内部のFS(ファイルシステム)を読み出す。そして、DISK内にOSがインストールされている、OS起動可能なファイルシステムであるか否かを判定し、ファイルシステムがOS起動可能であれば、OptionROMの設定が有効であることを示す情報を、CMOSからなるRAMに格納する。その後、スロット番号を、検知された対象スロット番号と比較して、最終スロット番号であるか否かを判定する。スロット番号が最終でない場合は、前回の対象スロット番号を「1」だけカウントアップしたSCSIスロット番号を、次の対象スロット番号として保持する。スロット番号が最終であった場合は、RAM上のOptionROMの設定に変更があったか否かを判定して、変更があったときは、装置の再起動が必要になるので、装置の初期化を行う。
【0015】
特開平10−293684号公報(特許文献3)にコンピュータシステム及びその立ち上げ制御方法が開示されている。この関連技術では、BIOS−ROMのシステムBIOSの内、POST(Power−On−Self−Test)ルーチン及び拡張用ドライバルーチンなどを含むシステムBIOSについてはプロテクトモード化されており、そのシステムBIOSについてはプロテクトモードでのみアクセス可能な「100000h」以降のCPUアドレス空間に割り当てられ、BIOSドライバ群を含むシステムBIOSについては従来通りリアルモードでアクセス可能なアドレス空間「F0000h〜FFFFFh」に割り当てられる。
【0016】
なお、POSTとは、コンピュータ等の電源投入時に自動的に実行される各機器のテストであり、ハードウェア(HW)に異常がないかを調べるテストである。
【先行技術文献】
【特許文献】
【0017】
【特許文献1】特開2001−229117号公報
【特許文献2】特開2008−191957号公報
【特許文献3】特開平10−293684号公報
【発明の概要】
【発明が解決しようとする課題】
【0018】
従来の課題に対し、対策として2つ考えられる。
【0019】
1つ目は、1デバイス当たり1KBの割り当てを行う方法である。
【0020】
しかしながら、PCI仕様書(PCI−Spec)上、ブリッジデバイス(Bridge)へのIO空間の割り当ては4KB粒度での割り当てが規定されている。
【0021】
そのため、この方法を採用する場合、OSに対してブリッジデバイスを隠蔽しなければならないという課題が発生する。
【0022】
2つ目は、64KB以上のIO空間を使用可能とする「拡張IO空間」というアドレス変換方式を活用する方法である。
【0023】
この方式は、OSに対する仕様で新たに追加されたものであり、最新のOSでサポートされ始めている。
【0024】
一方、BIOS(Basic Input/Output System)、及びPCIカードに搭載されているOptionROM(拡張ROM)上のドライバは、この方式をサポートしていない。
【0025】
この方式をサポートする場合、BIOS及びOptionROM上のドライバに拡張IO空間をサポートするための機能追加が必要である。
【0026】
しかしながら、サーバベンダ(Server Vendor)が独自にBIOSに機能追加を行うと、BIOSの標準仕様から逸脱して互換性が保てなくなるため、機能追加は現実的ではない。
【0027】
このような事情から、大規模IOシステムを実現するための新たなIO空間リソース割り当て方式を生み出す必要があった。
【課題を解決するための手段】
【0028】
本発明のリソース割り当てシステムは、OptionROM上のドライバと、OSドライバとを含む。OptionROM上のドライバは、PCI(Peripheral Components Interconnect)デバイスに搭載され、BIOS(Basic Input/Output System)によってメモリ上に配置され、Pre−Boot環境下で、ハードウェア(HW)リソース割り当てを実施する。OSドライバは、BIOSによってメモリ上に配置され、OS(Operating System)環境下で、ハードウェア(HW)リソース割り当てを実施する。
【0029】
本発明のリソース割り当て方法では、PCI(Peripheral Components Interconnect)デバイスに搭載され、BIOS(Basic Input/Output System)によってメモリ上に配置されたOptionROM上のドライバにより、Pre−Boot環境下で、ハードウェア(HW)リソース割り当てを実施する。また、BIOSによってメモリ上に配置されたOSドライバにより、OS(Operating System)環境下で、ハードウェア(HW)リソース割り当てを実施する。
【発明の効果】
【0030】
コンピュータシステムにおいて、OptionROM(拡張ROM)上のドライバが、拡張IO空間をサポートしていなくても、OSへの拡張IO空間機能の提供が可能となる。
【図面の簡単な説明】
【0031】
【図1】本発明のリソース割り当てシステムの構成例を示す概念図である。
【図2】本発明のリソース割り当てシステムの動作を示すフローチャートである。
【図3】実施例における動作を示すフローチャートである。
【発明を実施するための形態】
【0032】
以下に、本発明の実施形態について添付図面を参照して説明する。
図1に示すように、本発明のリソース割り当てシステムは、PCIBOX1と、BIOS(Basic Input/Output System)2と、Pre−Boot環境3と、OS環境4を含む。
【0033】
PCIBOX1は、ハードウェア(HW)と略すプラットフォーム上に存在し、チップセット(Chipset)及びPCIカードを含むBOXである。PCIBOX1の個数は、システム構成によって増減するが、ここでは簡略化のため、PCIBOX1が1つのみ存在するケース(事例)について説明する。但し、実際には、PCIBOX1は、複数でも良い。
【0034】
PCIBOX1は、チップセット(Chipset)11と、PCIカード12(12−i、i=1〜n:nはカード数)を含む。
【0035】
チップセット(Chipset)11は、ハードウェア(HW)を構成するLSI群である。チップセット(Chipset)11は、内部のブリッジデバイス(Bridge)に対するIO空間の割り当て方式として、4KBモード、及び1KBモードをサポートしており、PCIコンフィグレーション空間を設定することにより、4KBモードと1KBモードを切り替える。
【0036】
チップセット(Chipset)11は、ブリッジ111(111−i、i=1〜n)を含む。
【0037】
ブリッジ111(111−i、i=1〜n)は、チップセット(Chipset)11に内在するブリッジデバイスである。
【0038】
PCIカード12(12−i、i=1〜n)は、OptionROM(拡張ROM)を搭載している。PCIカード12は、PCIデバイスの一種である。PCIカード12の例として、ネットワークカードやグラフィックカード、サウンドカード等が考えられる。但し、実際には、これらの例に限定されない。
【0039】
BIOS2は、ハードウェア(HW)と略すプラットフォームを制御するファームウェア(FW)である。実際には、BIOS2は、このファームウェアと、当該ファームウェアを格納するメモリと、当該ファームウェアを実行する処理装置の組み合わせにより実現される。処理装置の例として、CPU(Central Processing Unit)やマイクロプロセッサ(microprocessor)、又は同様の機能を有する半導体集積回路(Integrated Circuit(IC))等が考えられる。但し、実際には、これらの例に限定されない。
【0040】
BIOS2は、チップセット(Chipset)11及びPCIカード12(12−i、i=1〜n)を初期化する。また、BIOS2は、PCIカード12(12−i、i=1〜n)内のOptionROMを起動することにより、Pre−Boot環境下でPCIカードを制御する。
【0041】
BIOS2は、リソース管理テーブル21と、ACPI(Advenced Configuration and Power Interface)テーブル22を含む。
【0042】
リソース管理テーブル21は、IO空間を要求するPCIカード12(12−i、i=1〜n)の上位のブリッジ111(111−i、i=1〜n)に割り当てるIO空間のレンジを示す。
【0043】
ACPIテーブル22は、PCIBOX1のハードウェア(HW)構成をOSに認識させるための標準機能であり、拡張IO空間を使用するための情報をOSに通知する役割を持っている。
【0044】
Pre−Boot環境3、及びOS環境4は、Pre−Boot環境3及びOS環境4のそれぞれの動作を定義したソフトウェアと、当該ソフトウェアを格納するメモリと、当該ソフトウェアを実行する処理装置の組み合わせにより実現される。
【0045】
Pre−Boot環境3は、OptionROM31と、Pre−Bootサービス32を含む。
【0046】
OptionROM31は、Pre−Bootサービス32を経由してPCIカード12(12−i、i=1〜n)を制御する。ここでは、OptionROM31は、PCIカード12(12−i、i=1〜n)に搭載されたOptionROM上のドライバを示す。OptionROM31は、BIOS2によりメモリ上にロードされる。
【0047】
Pre−Bootサービス32は、OptionROM31に対して、ハードウェア(HW)にアクセスするためのサービスを提供する。
【0048】
OS環境4は、OSドライバ41と、OSサービス42を含む。
【0049】
OSドライバ41は、OS環境下のドライバであり、OSサービス42を経由してPCIカード12(12−i、i=1〜n)を制御する。
【0050】
OSサービス42は、拡張IO空間への変換機能を有しており、ACPIテーブル22から取得した情報を基に、拡張IO空間の制御を行う。
【0051】
図2を参照して、本実施形態の動作について説明する。
【0052】
(1)ステップA01:「立ち上げ」
BIOS2は、ハードウェア(HW)と略すプラットフォームの立ち上げ(起動)の際に、POST(Power−On−Self−Test)を開始する。
【0053】
(2)ステップA02:「デバイスサーチ」
BIOS2は、デバイスサーチを実行し、PCIBOX1内のPCIカード12(12−i、i=1〜n)を探索する。
【0054】
(3)ステップA03:「リソース管理テーブル作成」
BIOS2は、PCIカード12(12−i、i=1〜n)がIO空間を要求している場合、当該PCIカード12(12−i、i=1〜n)の上位のブリッジ111(111−i、i=1〜n)に割り当てるIO空間のレンジを決定し、決定された内容を、リソース管理テーブル21として保持する。
【0055】
(4)ステップA04:「Pre−Boot環境向けチップセット(Chipset)初期化」
ここでは、Pre−Boot環境3は、EFI(Extensible Firmware Interface)環境とする。BIOS2は、リソース管理テーブル21を基に、EFI環境(Pre−Boot環境3)向けのLegacy−IO空間を使用した1KB粒度(第1粒度)の割り当てに従って、チップセット(Chipset)11、及びチップセット(Chipset)11に内在するブリッジ111(111−i、i=1〜n)の初期化を実施する。
【0056】
(5)ステップA05:「OptionROM起動」
BIOS2は、Pre−Boot環境下で動作可能なPCIカード12(12−i、i=1〜n)のOptionROM31を起動する。これにより、Pre−Boot環境3での処理が開始する。BIOS2は、OptionROM31を起動することによって、PCIカード12(12−i、i=1〜n)の制御が可能となり、SCSI、NIC等のブートパスの認識が可能となる。
【0057】
(6)ステップA06:「OSブート開始」
OptionROM31は、Pre−Boot環境下で、ブートパスからブートローダーを起動し、OS立ち上げ(OSブート)を開始する。
【0058】
(7)ステップA07:「OS環境向けチップセット(Chipset)初期化」
BIOS2は、Pre−Boot環境3での処理が終了し、OS立ち上げ処理に移行する直前で、リソース管理テーブル21を基に、OS環境2向けの拡張IO空間を使用した4KB粒度(第2粒度)の割り当てに従ってチップセット(Chipset)11、及びチップセット(Chipset)11に内在するブリッジデバイスの初期化を実施する。その後、BIOS2は、Pre−Boot環境3での処理を終了し、OptionROM31を停止する。
【0059】
(8)ステップA08:「OSブート完了」
BIOS2は、OptionROM31からOS側のドライバ(OSドライバ41)に制御を移行する。OSドライバ41は、PCIカード12(12−i、i=1〜n)の再初期化を実施する。これにより、OSブートが完了し、OS環境4での処理が開始する。
【0060】
このように、Pre−Boot環境からOS環境に切り替るタイミングで、IO空間を再設定することで、最適なリソース割り当てを行うことが可能となる。
【0061】
次に、図3のフローチャートを参照して、本発明の実施例の動作について詳細に説明する。
【0062】
(1)ステップB01:「POST開始」
まず、ハードウェア(HW)と略すプラットフォームへの電源投入後、BIOS2は、POSTを開始する。
【0063】
(2)ステップB02:「デバイスサーチ」
BIOS2は、デバイスサーチを実施し、チップセット(Chipset)11内のブリッジ111(111−i、i=1〜n)、及びその配下に搭載されているPCIカード12(12−i、i=1〜n)を認識する。
【0064】
(3)ステップB03:「リソース管理テーブル作成」
BIOS2は、認識したブリッジ111(111−i、i=1〜n)、及びPCIカード12(12−i、i=1〜n)に対して割り当てるIO空間のレンジを決定し、リソース管理テーブル21として保持する。この際、BIOS2は、リソース管理テーブル21として、EFI環境用のLegacy−IO空間のみを使用した1KB粒度(第1粒度)の割り当てテーブル(EFIテーブル)と、OS環境用の拡張IO空間を使用した4KB粒度(第2粒度)の割り当てテーブル(OSテーブル)の2種類を作成する。
【0065】
(4)ステップB04:「EFI環境向けチップセット(Chipset)初期化」
次に、BIOS2は、チップセット(Chipset)11のIO空間の割り当てを1KBモードへ切り替える処理を実施し、EFI環境用のリソース管理テーブル21(EFIテーブル)を基に、ブリッジ111(111−i、i=1〜n)及び、PCIカード12(12−i、i=1〜n)に対し、Legacy−IO空間を割り当て、その他チップセット(Chipset)としての初期化処理を実施する。
【0066】
(5)ステップB05:「ACPIテーブル作成」
次に、BIOS2は、リソース管理テーブル21を基に、ACPIテーブル22を作成する。このACPIテーブル22には、OS環境用のリソース管理テーブル21(OSテーブル)を基に、各ブリッジに割り当てられたIO空間のレンジを定義するとともに、拡張IO空間としてのアドレス変換方式についても定義する。
【0067】
(6)ステップB06:「OptionROM起動」
その後、BIOS2は、各PCIカード12(12−i、i=1〜n)のOptionROM31を起動し、メモリ上に展開する。すなわち、BIOS2は、各PCIカード12(12−i、i=1〜n)を制御するOptionROM31をロードする。これにより、OptionROM31は、SCSIカード等のストレージ系のデバイス配下のDISK(ファイルシステム)を認識する。ここでは、OptionROM31は、EFIドライバとして機能する。
【0068】
(7)ステップB07:「ブートローダー起動」
OptionROM31は、ブートローダーを起動することで、OS立ち上げ(OSブート)を行う。
【0069】
(8)ステップB08:「ExitBootService」
その後、OptionROM31は、OSブートに必要な情報をDISKからメモリ上に一旦展開した後、Pre−Bootサービス32として、Pre−Boot環境のサービス「ExitBootService」をコールし(呼び出し)、このサービス内でOS環境用のリソース管理テーブル21を参照し、ブリッジ111(111−i、i=1〜n)及びPCIカード12(12−i、i=1〜n)に対し、拡張IO空間を使用した4KB粒度での設定を行う。
【0070】
(9)ステップB09:「OSブート」
「ExitBootService」完了後、OSはドライバをロードすることによりPCIカード12(12−i、i=1〜n)の制御が完全にOS側に移行し、OSブートが完了する。すなわち、OSドライバ41は、OSによりメモリ上にロードされて、PCIカード12(12−i、i=1〜n)の制御を、OptionROM31から完全に引き継ぐ。
【0071】
ここで、ステップB08(ExitBootService)の動作について、以下に詳述する。
(1)ステップB081:「Bridge/PCIカードデバイスの停止(BusReset等)」
OptionROM31は、OSブートに必要な情報をDISKからメモリ上に一旦展開した後、Pre−Bootサービス32として、Pre−Boot環境のサービス「ExitBootService」をコールし(呼び出し)、Pre−Boot環境下で使用していたブリッジ111(111−i、i=1〜n)の利用を停止する。なお、この時点でデバイスが動作することは無いが、IB(Interface Bus)のTXN(transmit differential pair)が残っている可能性を考慮して、確実に停止する。
【0072】
(2)ステップB082:「チップセット(Chipset)/内部ブリッジデバイスの再初期化」
OptionROM31は、このサービス「ExitBootService」内において、OS環境用のリソース管理テーブル21を基に、ブリッジ111(111−i、i=1〜n)及びPCIカード12(12−i、i=1〜n)に対し、拡張IO空間を使用した4KB粒度でのPCIデバイスのルーティングを行う。
【0073】
(3)ステップB083:「OSドライバロード(〜OSブート)」
BIOS2は、「ExitBootService」完了後、OSドライバ41をロードする。このとき、BIOS2は、PCIカード12(12−i、i=1〜n)の制御を、OptionROM31からOSドライバ41に完全に移行する。その後、BIOS2は、OptionROM31を停止する。OSドライバ41は、PCIカード12(12−i、i=1〜n)を初期化し、新しいリソース(レンジ)を認識し、PCIカード12(12−i、i=1〜n)の使用を開始する。
【0074】
本発明により、OptionROM上のドライバが、拡張IO空間を未サポートであっても、OSへの拡張IO空間機能の提供が可能となる。
【0075】
その理由は、以下の通りである。
【0076】
例えば、BIOS及びOptionROMが動作するPre−Boot環境では、拡張IO空間をサポートしていないが、1KBのハードウェア(HW)リソース割り当てが可能である。
【0077】
これに対し、OSブート(OS Boot)及びOS運用状態にあるOS環境では、拡張IO空間をサポートしているが、1KBのハードウェア(HW)リソース割り当ては不可能である。
【0078】
上記のような状況に対し、本発明では、それぞれの環境に合ったハードウェア(HW)リソース割り当てを、OSブート直前で切り替えるためである。
【0079】
以上のように、本発明は、コンピュータシステムにおいて、本来、POST中に一度(一回)しか実施しないハードウェア(HW)リソース割り当てを、BIOS及びOptionROM上のドライバが動作するPre−Boot環境と、OSブート(OS Boot)及びOS運用状態にあるOS環境とで、二度(複数回)実施することにより、標準BIOSではサポートしていない拡張IO空間の機能を、OSブート後に使用可能にする。
【0080】
本発明では、OSは拡張IO空間をサポート可能だが、ブリッジデバイスに対する1KB粒度での割り当てが不可能な点と、Pre−Boot環境においてBIOSは拡張IO空間をサポート不可能だが、1KB粒度での割り当ては可能という、相反する2つの環境に対応する解決手段を有する。
【0081】
本発明によれば、大規模なコンピュータシステムにおいて、リソースを要求するPCIカードが多数存在するケースで、チップセット(Chipset)及びPCIカードに対しリソース割り当てを行うBIOS上のプログラムとして適用できる。
【0082】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【符号の説明】
【0083】
1… PCIBOX
11… チップセット(Chipset)
111(−i、i=1〜n)… ブリッジ(Bridge)
12(−i、i=1〜n)… PCIカード
2… BIOS(Basic Input/Output System)
21… リソース管理テーブル
22… ACPI(Advenced Configuration and Power Interface)テーブル
3… Pre−Boot環境
31… OptionROM(拡張ROM)
32… Pre−Bootサービス
4… OS(Operating System)環境
41… OSドライバ
42… OSサービス

【特許請求の範囲】
【請求項1】
PCI(Peripheral Components Interconnect)デバイスに搭載され、BIOS(Basic Input/Output System)によってメモリ上に配置され、Pre−Boot環境下で、ハードウェア(HW)リソース割り当てを実施するOptionROM上のドライバと、
前記BIOSによってメモリ上に配置され、OS(Operating System)環境下で、ハードウェア(HW)リソース割り当てを実施するOSドライバと
を含む
リソース割り当てシステム。
【請求項2】
請求項1に記載のリソース割り当てシステムであって、
前記BIOSは、
IO空間を要求するPCIデバイスの上位のブリッジデバイスに割り当てるIO空間のレンジを示すリソース管理テーブルと、
ハードウェア(HW)構成、及び拡張IO空間を使用するための情報をOSに通知するためのACPI(Advenced Configuration and Power Interface)テーブルと
を含み、
前記リソース管理テーブルは、
Pre−Boot環境用のLegacy−IO空間を使用した第1粒度の割り当てを定義したPre−Bootテーブルと、
OS環境用の拡張IO空間を使用した第2粒度の割り当てを定義したOSテーブルと
を含む
リソース割り当てシステム。
【請求項3】
請求項2に記載のリソース割り当てシステムであって、
前記BIOSは、POST(Power−On−Self−Test)を開始した際に、前記OptionROM上のドライバを起動し、
前記OptionROM上のドライバは、前記リソース管理テーブルを参照し、前記第1粒度の割り当てに従って、前記チップセット(Chipset)、及び前記チップセット(Chipset)に内在するブリッジデバイスの初期化を実施し、
前記BIOSは、OS立ち上げ処理に移行する際に、前記OSドライバを起動し、
前記OSドライバは、前記リソース管理テーブルを参照し、前記第2粒度の割り当てに従って、前記チップセット(Chipset)、及び前記ブリッジデバイスの初期化を実施する
リソース割り当てシステム。
【請求項4】
請求項3に記載のリソース割り当てシステムであって、
前記OptionROM上のドライバは、OS立ち上げ処理に移行する際に、OSブートに必要な情報をDISKからメモリ上に一旦展開した後、Pre−Bootサービスを呼び出し、前記Pre−Boot環境下で使用していたデバイスの利用を停止し、前記Pre−Bootサービス内で、前記OSテーブルを参照し、前記ブリッジデバイス及び前記PCIデバイスに対し、前記第2粒度での設定を行う
リソース割り当てシステム。
【請求項5】
請求項1乃至4のいずれか一項に記載のリソース割り当てシステムで使用されるOptionROM。
【請求項6】
PCI(Peripheral Components Interconnect)デバイスに搭載され、BIOS(Basic Input/Output System)によってメモリ上に配置されたOptionROM上のドライバにより、Pre−Boot環境下で、ハードウェア(HW)リソース割り当てを実施し、
前記BIOSによってメモリ上に配置されたOSドライバにより、OS(Operating System)環境下で、ハードウェア(HW)リソース割り当てを実施する
リソース割り当て方法。
【請求項7】
請求項6に記載のリソース割り当て方法であって、
前記BIOSは、
IO空間を要求するPCIデバイスの上位のブリッジデバイスに割り当てるIO空間のレンジを示すリソース管理テーブルと、
ハードウェア(HW)構成、及び拡張IO空間を使用するための情報をOSに通知するためのACPI(Advenced Configuration and Power Interface)テーブルと
を含み、
前記リソース管理テーブルは、
Pre−Boot環境用のLegacy−IO空間を使用した第1粒度の割り当てを定義したPre−Bootテーブルと、
OS環境用の拡張IO空間を使用した第2粒度の割り当てを定義したOSテーブルと
を含む
リソース割り当て方法。
【請求項8】
請求項7に記載のリソース割り当て方法であって、
前記BIOSにより、POST(Power−On−Self−Test)を開始した際に、前記OptionROM上のドライバを起動し、
前記OptionROM上のドライバにより、前記リソース管理テーブルを参照し、前記第1粒度の割り当てに従って、前記チップセット(Chipset)、及び前記チップセット(Chipset)に内在するブリッジデバイスの初期化を実施し、
前記BIOSにより、OS立ち上げ処理に移行する際に、前記OSドライバを起動し、
前記OSドライバにより、前記リソース管理テーブルを参照し、前記第2粒度の割り当てに従って、前記チップセット(Chipset)、及び前記ブリッジデバイスの初期化を実施する
リソース割り当て方法。
【請求項9】
請求項8に記載のリソース割り当て方法であって、
前記OptionROM上のドライバにより、OS立ち上げ処理に移行する際に、OSブートに必要な情報をDISKからメモリ上に一旦展開した後、Pre−Bootサービスを呼び出し、前記Pre−Boot環境下で使用していたデバイスの利用を停止し、前記Pre−Bootサービス内で、前記OSテーブルを参照し、前記ブリッジデバイス及び前記PCIデバイスに対し、前記第2粒度での設定を行う
リソース割り当て方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate