(57)【要約】【課題】予備セルを、ＯＳが動作している状態で、ＯＳをシャットダウンあるいは停止すること無く、オンライン・システムに組み込み可能とする。【解決手段】ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、仮想セルＣＡを定義して、予備セルＣ３上のチップセット３３に対するレンジ・レジスタ群初期値設定を、仮想セルＣ３上の仮想チップセットＡ３に対するレンジ・レジスタ群初期値設定へと置換する。サービス・プロセッサ・ファームウェアＢ１は、予備セルＣ３をオンライン・システム０００へ組み込む前に、仮想チップセットＡ３に対するレンジ・レジスタ群初期値をチップセット３３に対するレンジ・レジスタ群初期値として予備セルＣ３上のメモリ３２の所定領域へコピーする。ＢＩＯＳ０１は、メモリ３２の所定領域からチップセット３３に対するレンジ・レジスタ群初期値を読み取ってチップセット３３が持つレンジ・レジスタ群に設定する。【選択図】        図１
2004362006.tif 000002
【特許請求の範囲】
【請求項１】
システム・バス上に複数のセルが接続されたマルチ・セル構成システムであって、レンジ・レジスタ参照によるリソース・ルーティング方式を採用したコンピュータ・システムにおけるチップセット初期化方式において、
オンライン・システムの立ち上げ時に、仮想セルを定義して、オンライン・システムにまだ組み込まれていない予備セル上のチップセットに対するレンジ・レジスタ群初期値設定を、前記仮想セル上の仮想チップセットに対するレンジ・レジスタ群初期値設定へと置換するオンライン・システム上で動作する第１のＢＩＯＳと、
前記予備セルをオンライン・システムへ組み込む前に、前記仮想セル上の仮想チップセットに対するレンジ・レジスタ群初期値を前記予備セル上のチップセットに対するレンジ・レジスタ群初期値として前記予備セル上のメモリの所定領域へコピーするサービス・プロセッサ・ファームウェアと、
前記予備セル上のメモリの所定領域から前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を読み取って前記予備セル上のチップセットが持つレンジ・レジスタ群に設定する予備システム上で動作する第２のＢＩＯＳと
を有することを特徴とするチップセット初期化方式。
【請求項２】
オンライン・システムの立ち上げ時に、仮想セルを定義して、オンライン・システムにまだ組み込まれていない予備セル上のチップセットに対するレンジ・レジスタ群初期値設定を、前記仮想セル上の仮想チップセットに対するレンジ・レジスタ群初期値設定へと置換することを特徴とするＢＩＯＳ。
【請求項３】
オンライン・システムにまだ組み込まれていない予備セルをオンライン・システムへ組み込む前に、前記仮想セル上の仮想チップセットに対するレンジ・レジスタ群初期値を前記予備セル上のチップセットに対するレンジ・レジスタ群初期値として前記予備セル上のメモリの所定領域へコピーすることを特徴とするサービス・プロセッサ・ファームウェア。
【請求項４】
オンライン・システムにまだ組み込まれていない予備セル上のメモリの所定領域から前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を読み取って前記予備セル上のチップセットが持つレンジ・レジスタ群に設定することを特徴とするＢＩＯＳ。
【請求項５】
オンライン・システムに組み込み可能な全てのセルに対してバス番号をアサインして物理セル番号・バス番号対応表を作成し、セルがオンライン・システムに組み込まれているか否かを調べ、セルがオンライン・システムにまだ組み込まれていない予備セルであることを認識すると、前記物理セル番号・バス番号対応表を参照して前記予備セルに対応するバス番号を取得し、該バス番号を前記予備セルに対応するエントリの仮想バス番号フィールドへ登録するとともに前記予備セルに対応するエントリの仮想セル・フラグをオンに設定することを繰り返して仮想セル・テーブルを作成し、前記物理セル番号・バス番号対応表を参照してレンジ・レジスタ群初期値設定を行うセルへアサインされているバス番号を取得し、該バス番号をバス番号とするセル・コンフィグレーション・アドレスを生成し、該セル・コンフィグレーション・アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込むことをオンライン・システムに組み込み可能な全てのセルに対して繰り返すことによりレンジ・レジスタ群初期値設定処理を行うオンライン・システム上で動作する第１のＢＩＯＳと、
オンライン・システムにまだ組み込まれていない予備セルをオンライン・システムへ組み込む前に前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を前記予備セル上のメモリの所定領域へコピーし、前記予備セルのオンライン・システムへの組み込みが可能である旨の通知を受けると前記予備セルをオンライン・システムへ組み込むサービス・プロセッサ・ファームウェアと、
前記予備セル上のメモリの所定領域から前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を読み取って前記予備セル上のチップセットが持つレンジ・レジスタ群に設定し、前記サービス・プロセッサ・ファームウェアに対して前記予備セルのオンライン・システムへの組み込みが可能である旨を通知する予備システム上で動作する第２のＢＩＯＳと
を有することを特徴とするチップセット初期化方式。
【請求項６】
オンライン・システムに組み込み可能な全てのセルに対してバス番号をアサインして物理セル番号・バス番号対応表を作成し、セルがオンライン・システムに組み込まれているか否かを調べ、セルがオンライン・システムにまだ組み込まれていない予備セルであることを認識すると、前記物理セル番号・バス番号対応表を参照して前記予備セルに対応するバス番号を取得し、該バス番号を前記予備セルに対応するエントリの仮想バス番号フィールドへ登録するとともに前記予備セルに対応するエントリの仮想セル・フラグをオンに設定することを繰り返して仮想セル・テーブルを作成し、前記物理セル番号・バス番号対応表を参照してレンジ・レジスタ群初期値設定を行うセルへアサインされているバス番号を取得し、該バス番号をバス番号とするセル・コンフィグレーション・アドレスを生成し、該セル・コンフィグレーション・アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込むことをオンライン・システムに組み込み可能な全てのセルに対して繰り返すことによりレンジ・レジスタ群初期値設定処理を行うことを特徴とするＢＩＯＳ。
【請求項７】
仮想セル・コンフィグレーション・アドレスから仮想バス番号を取り出し、該仮想バス番号に対応するセル番号を前記仮想セル・テーブルを検索することによって取得し、仮想セル・コンフィグレーション空間がメモリ上にマッピングされているメモリマップド仮想セル・コンフィグレーション空間のメモリ内開始ベース・アドレスと取得したセル番号であるオフセット値とからベース・アドレスを計算し、仮想セル・コンフィグレーション・アドレスから仮想バス番号を取り除いた値をベース・アドレスにプラスして書き込み先メモリ番地アドレスとし、該書き込み先メモリ番地アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込むことにより、メモリマップド仮想レンジ・レジスタ群初期値設定処理を行うことを特徴とするＢＩＯＳ。
【請求項８】
オンライン・システムにまだ組み込まれていない予備セルをオンライン・システムへ組み込む前に前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を前記予備セル上のメモリの所定領域へコピーし、前記予備セルのオンライン・システムへの組み込みが可能である旨の通知を受けると前記予備セルをオンライン・システムへ組み込むことを特徴とするサービス・プロセッサ・ファームウェア。
【請求項９】
オンライン・システムにまだ組み込まれていない予備セル上のメモリの所定領域から前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を読み取って前記予備セル上のチップセットが持つレンジ・レジスタ群に設定し、サービス・プロセッサ・ファームウェアに対して前記予備セルのオンライン・システムへの組み込みが可能である旨を通知することを特徴とするＢＩＯＳ。
【請求項１０】
システム・バス上に複数のセルが接続されたマルチ・セル構成システムであって、レンジ・レジスタ参照によるリソース・ルーティング方式を採用したコンピュータ・システムにおけるチップセット初期化方法において、
オンライン・システムにまだ組み込まれていない予備セル上のチップセットに対するレンジ・レジスタ群初期値設定が破棄される前に該レンジ・レジスタ群初期値を盗み取る工程と、
前記予備セルに対して仮想セルを定義して、該仮想セル上の仮想チップセットが持つレンジ・レジスタ群がマッピングされた仮想セル・コンフィグレーション空間をさらにメモリの所定領域へマッピングすることでメモリマップド仮想セル・コンフィグレーション空間を実装する工程と、
前記盗み取ったレンジ・レジスタ群初期値を前記メモリマップド仮想セル・コンフィグレーション空間上の対応するレンジ・レジスタ位置に書き込んでメモリ上で保持する工程と、
前記メモリ上から前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を読み取って前記予備セル上のチップセットが持つレンジ・レジスタ群に設定する工程と
を含むことを特徴とするチップセット初期化方法。
【請求項１１】
システム・バス上に複数のセルが接続されたマルチ・セル構成システムであって、レンジ・レジスタ参照によるリソース・ルーティング方式を採用したコンピュータ・システムにおけるチップセット初期化方法において、
物理セル番号とバス番号とを対応させた物理セル番号・バス番号対応表を作成する物理セル番号・バス番号対応表作成処理と、
物理セル番号と、物理セル番号のセルが仮想セルか否かを表す仮想セル・フラグと、バス番号とを対応させた仮想セル・テーブルを作成する仮想セル・テーブル作成処理と、
オンライン・システムに組み込み可能な全てのセル上のチップセットに対してレンジ・レジスタ群初期値を設定するレンジ・レジスタ群初期値設定処理と、
前記レンジ・レジスタ群初期値設定処理においてセルが仮想セルであったときに仮想レンジ・レジスタ群にレンジ・レジスタ群初期値を設定する仮想セル・レンジ・レジスタ群初期値設定処理と、
前記仮想セル・レンジ・レジスタ群初期値設定処理においてメモリマップド仮想レンジ・レジスタ群にレンジ・レジスタ群初期値を設定するメモリマップド仮想レンジ・レジスタ群初期値設定処理と
を含むことを特徴とするチップセット初期化方法。
【請求項１２】
前記物理セル番号・バス番号対応表作成処理が、セルに対してバス番号をアサインする処理を全てのセルに関して繰り返すことにより物理セル番号・バス番号対応表を作成することを特徴とする請求項１１記載のチップセット初期化方法。
【請求項１３】
前記仮想セル・テーブル作成処理が、セルがオンライン・システムに組み込まれているか否かを調べ、前記セルがオンライン・システムにまだ組み込まれていない予備セルであることを認識したときに前記物理セル番号・バス番号対応表を参照して前記予備セルに対応するバス番号を取得し、該バス番号を前記仮想セル・テーブル上の予備セルに対応するエントリの仮想バス番号フィールドに登録し、前記仮想セル・テーブル上の予備セルに対応するエントリの仮想セル・フラグを設定する処理を、全てのセルに関して繰り返すことを特徴とする請求項１１記載のチップセット初期化方法。
【請求項１４】
前記レンジ・レジスタ群初期値設定処理が、前記物理セル番号・バス番号対応表を参照することによりレンジ・レジスタ群初期値設定を行うセルへアサインされているバス番号を取得し、該バス番号をバス番号とするセル・コンフィグレーション・アドレスを生成し、レンジ・レジスタ内オフセット番号を、前記生成されたセル・コンフィグレーション・アドレスのレジスタ番号へプラスし、生成されたセル・コンフィグレーション・アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込む処理を、全てのセルに関して繰り返すことを特徴とする請求項１１記載のチップセット初期化方法。
【請求項１５】
前記仮想セル・レンジ・レジスタ群初期値設定処理が、前記仮想セル・テーブルを参照して、セル番号に対応するセルが仮想セルか否かを判断し、セル番号を持つセルが仮想セルであるときに前記仮想セル・コンフィグレーション空間を示す仮想セル・コンフィグレーション・アドレスを生成し、前記仮想セル・コンフィグレーション・アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込むことを特徴とする請求項１１記載のチップセット初期化方法。
【請求項１６】
前記メモリマップド仮想レンジ・レジスタ群初期値設定処理が、仮想セル・コンフィグレーション・アドレスから仮想バス番号を取り出し、前記仮想セル・コンフィグレーション空間がメモリ上にマッピングされている前記メモリマップド仮想セル・コンフィグレーション空間のメモリ内開始ベース・アドレスと前記取得したセル番号をオフセット値としてベース・アドレスを計算し、仮想セル・コンフィグレーション・アドレスから仮想バス番号を取り除いた値を前記計算されたベース・アドレスにプラスした値を書き込み先メモリ番地アドレスとし、該書き込み先メモリ番地アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込むことを特徴とする請求項１１記載のチップセット初期化方法。
【請求項１７】
オンライン・システムの立ち上げ時に、前記予備セル上のチップセットが持つレンジ・レジスタ群初期値を前記メモリマップド仮想セル・コンフィグレーション空間上の前記予備セルが対応する仮想コンフィグレーション・レジスタ・セット位置へ設定し終えると、前記予備セルが対応するメモリマップド仮想セル・コンフィグレーション空間を圧縮して特定領域へコピーして保持し、メモリ内開始アドレスをベース・アドレスとするメモリマップド仮想セル・コンフィグレーション空間ポインタ・テーブルの前記予備セルに対応するエントリにコピー先アドレスを登録しておき、全ての予備セルに対して圧縮処理が終わると前記メモリマップド仮想セル・コンフィグレーション空間が消費しているメモリ領域を全て解放することを特徴とする請求項１１記載のチップセット初期化方法。
【請求項１８】
前記オンライン・システムには、各セル毎に仮想セル・スイッチが装備され、仮想セルの内部に仮想セル・コンフィグレーション・レジスタ・セットが装備されていて、前記予備セルがオンライン・システムにまだ組み込まれていないために前記仮想セル・スイッチがオンであり、前記予備セルに対応するバス番号をバス番号とするセル・コンフィグレーション・アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込むことにより、前記仮想セル・スイッチがオンであるために前記予備セル上のチップセットに対するレンジ・レジスタ群初期値設定は破棄されず、仮想セル・コンフィグレーション空間がマッピングされている仮想セル上の仮想チップセットが装備しているレンジ・レジスタ群に値が設定されて保持されることを特徴とする請求項１１記載のチップセット初期化方法。
【請求項１９】
前記予備セルがオンライン・システムへ組み込まれたときに、前記仮想セル・スイッチがオフとなると、仮想セル・コンフィグレーション空間がマッピングされている仮想セル上の仮想チップセットが装備しているレンジ・レジスタ群が保持しているレンジ・レジスタ群初期値が前記予備セル上のチップセットが持つレンジ・レジスタ群へ自動的にコピーされることを特徴とする請求項１１記載のチップセット初期化方法。
【請求項２０】
前記予備セル上のチップセットに対するレンジ・レジスタ群初期値設定のスヌープ処理と、ＢＩＯＳが予備セルを組み込む前に行っていた仮想セルを参照してレンジ・レジスタ群初期値を取得して前記予備セル上のチップセットが持つレンジ・レジスタ群に設定するレンジ・レジスタ群初期値設定とを、ハードウェアが自動的に行うことを特徴とする請求項１１記載のチップセット初期化方法。
【請求項２１】
オンライン・システムにまだ組み込まれていない予備セルがオンライン・システムへ組み込まれた場合に前記予備セル上の増設メモリがメモリ上のどのアドレス位置に置かれるかを示し、メモリを増設する場合にどのメモリ位置へ増設メモリを置くかが事前に決まっていたときに、増設メモリ位置を意味する最下位アドレスおよび最上位アドレスを仮想セル・コンフィグレーション空間上の対応するレジスタ位置へ設定しておき、メモリマップド仮想セル・コンフィグレーション空間上の対応するレジスタ位置でメモリ上で保持することを特徴とする請求項１１記載のチップセット初期化方法。
【請求項２２】
ハードウェアが実装する仮想セル・コンフィグレーション空間上のレジスタ位置でレンジ・レジスタ群初期値を保持し、オンライン・システムにまだ組み込まれていない予備セルをオンライン・システムへ組み込む際に予備システム上で動作するＢＩＯＳがメモリ上の対応するレジスタ位置を参照して、前記予備セル上の増設メモリを置くべきメモリ位置を取得して前記予備セル上の増設メモリへ設定することを特徴とする請求項１１記載のチップセット初期化方法。
【請求項２３】
オンライン・システムにまだ組み込まれていない予備セルをオンライン・システムへ組み込むと同時に、ハードウェアにより前記予備セル上の増設メモリを置くべきメモリ位置を前記ハードウェアが実装する仮想セル・コンフィグレーション空間上のレジスタ位置から取り出し前記予備セル上の増設メモリへ自動的に設定することを特徴とする請求項１１記載のチップセット初期化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はチップセット初期化方式および方法ならびにＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）およびサービス・プロセッサ・ファームウェアに関し、特にＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ），メモリ，およびそれらを制御するチップセットが搭載されたマザー・ボード（以下、セルと呼ぶ）を、オペレーティング・システム（以下、ＯＳと略す）が動作している状態で、ＯＳをシャットダウンあるいは停止すること無く、すなわちオンラインで組み込み可能とするためのファームウェア（以下、ＢＩＯＳと呼ぶ）によるチップセット初期化方式および方法ならびにＢＩ請求項８記載のＯＳおよびサービス・プロセッサ・ファームウェアに関する。
【０００２】
【従来の技術】
図１において、ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、オンライン・システム０００を構成する第１セルＣ１および第２セルＣ２上の各チップセット１３および２３が持つ、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）メモリ・レンジ・レジスタ１３１および２３１，ＰＣＩ・ＩＯ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）レンジ・レジスタ１３２および２３２，割り込みレンジ・レジスタ１３３および２３３などのレンジ・レジスタ群を初期化する。一方、このとき、予備システム９９９を構成する第３セルである予備セルＣ３上のチップセット３３が持つＰＣＩメモリ・レンジ・レジスタ３３１，ＰＣＩ・ＩＯレンジ・レジスタ３３２，割り込みレンジ・レジスタ３３３などのレンジ・レジスタ群は初期化されない。その理由は、予備セルＣ３がオンライン・システム０００にまだ組み込まれていないため、ＢＩＯＳ００は、予備セルＣ３を制御（初期化）することができないためである。
【０００３】
一般的に、レンジ・レジスタ群などのチップセット初期化処理において、ＢＩＯＳ００が選択できる２つの初期化方式がある。
【０００４】
第１の初期化方式は、ＢＩＯＳ００が、オンライン・システム０００を構成しているセルを調べながら（セル構成判別処理を行いながら）、オンライン・システム０００に組み込まれているセルに対してのみレンジ・レジスタ群初期化処理を行い、オンライン・システム０００にまだ組み込まれていない予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群は初期化しない（初期化処理をスキップする）という方式である（ＢＩＯＳによるチップセット初期化方式１）。第１の初期化方式には、レンジ・レジスタを初期化する毎に、ＢＩＯＳ００は、セル構成判別処理を行わなければならない、という欠点（欠点１）がある。
【０００５】
第２の初期化方式は、ＢＩＯＳ００が、オンライン・システム０００を構成する第１セルＣ１および第２セルＣ２とともに、オンライン・システム０００にまだ組み込まれていない予備セルＣ３も含めた全てのセル上の各チップセットが持つレンジ・レジスタ群に対して、一括して初期値を設定するという方式である（ＢＩＯＳによるチップセット初期化方式２）。第２の初期化方式は、各セル上のチップセットが、一般的なＰＣＩ仕様で規定されたＰＣＩコンフィグレーション・アクセス・メカニズムに準じていた場合に採用できる方式である。それは、オンライン・システム０００にまだ組み込まれていない予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に対する初期値の書き込みは破棄される、という前記ＰＣＩ仕様で規定されたＰＣＩコンフィグレーション・アクセス・メカニズムに準じた動作（特徴１）が行われ、オンライン・システム０００を構成する他のセル上の各チップセットが持つレンジ・レジスタ群の初期設定に対しては、一切、擾乱を与えない（特徴２）、という２つのチップセットの特徴を利用した方式である。これらの特徴を利用することで、第２の初期化方式では、前記第１の初期化方式における前記欠点１を排除して、全てのセル上の各チップセットが持つレンジ・レジスタ群に対して一括して初期値を設定することによって、レンジ・レジスタ群初期値設定処理を簡略化することができるという利点（利点１）がある。
【０００６】
また、第２の初期化方式は、全てのセル（チップセット）に対して、同じレンジ・レジスタ群初期値を設定する場合に有効である。例えば、もし、第１セルＣ１上のチップセット１３が持つＰＣＩメモリ・レンジ・レジスタ１３１と、第２セルＣ２上のチップセット２３が持つＰＣＩメモリ・レンジ・レジスタ２３１とに対して、異なる値を設定する場合、セル構成を判別しながら、初期値を決める必要があるため、セル構成判別処理を排除できるという第２の初期化方式における前記利点１を活用することはできない。このような初期設定を行う場合は、前記第１の初期化方式が採用される場合が多い。一方、ＢＩＯＳ００が初期化するレンジ・レジスタ群は、全てのセル（チップセット）が、同じレンジ・レジスタ群初期値に設定され、保持しなければならない、というチップセット要求仕様（要求仕様１）を持ったレジスタであるため、ＢＩＯＳ００が、レンジ・レジスタ群初期値設定処理において、第２の初期化方式を採用することは有効である。
【０００７】
ここで、前記チップセット要求仕様１を説明すると、ＢＩＯＳ００は、チップセット仕様として、図２で示されるレンジ・レジスタ群初期値を、全てのセルの各チップセットに対して設定することが要求されている。このレンジ・レジスタ群初期値は、図３で示されたリソース・レンジ空間において、どのセルに対して、どのリソース・レンジが割り当てられているか（アサインされているか）を示している。例えば、図２を参照すると、ＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第１セルＣ１の列は、最下位アドレス（ＢＯＴＴＯＭ）が“Ｘ１”、最上位アドレス（ＴＯＰ）が“Ｘ１＋α１”とする、図３における第１ＰＣＩメモリ空間１１０というリソース・レンジが、第１セルＣ１に対してアサインされていることを示している。この場合、第１セルＣ１は、第１ＰＣＩメモリ空間１１０のオーナーであるという。このような、各セル毎にオーナーとするリソース・レンジの最下位アドレスおよび最上位アドレスが示されたレンジ・レジスタ群初期値（図２参照）を、ＢＩＯＳ００は、オンライン・システム０００に組み込み可能な全てのセル（チップセット）に対して設定する。このように、複数のセルで構成されるオンライン・システム０００では、オンライン・システム０００に組み込み可能な全てのセル（チップセット）が同じレンジ・レジスタ群初期値を持ち、各セル（チップセット）はレンジ・レジスタを参照しながらリソース・アクセスをオーナーへフォワードし、オーナーがそのアクセスをリソースへルーティングするという動作が行われる。
【０００８】
例えば、図４において、ＰＣＩメモリ・アクセスａｃ１が、図３における第２ＰＣＩメモリ空間２１０へのアクセスであった場合、チップセット１３は、図２におけるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第２セルＣ２の列を参照して、そのＰＣＩメモリ・アクセスａｃ１が、第２セルＣ２がオーナーであるＰＣＩメモリ・レンジ（“Ｘ２”から“Ｘ２＋α２”までの範囲）へのアクセスであることを認識する。そして、チップセット１３は、そのＰＣＩメモリ・アクセスａｃ１をオーナーである第２セルＣ２へフォワードする（図４のフォワードｆｗ１）。ＰＣＩメモリ・アクセスａｃ１を受け取った第２セルＣ２上のチップセット２３は、同様に、ＰＣＩメモリ・レンジ・レジスタ２３１を参照する。そのＰＣＩメモリ・レンジ・レジスタ２３１には、チップセット１３が持つＰＣＩメモリ・レンジ・レジスタ１３１と同様に、ＢＩＯＳ００によって、図２で示されたＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の初期値が設定されている。次に、チップセット２３は、チップセット１３と同様に、図２におけるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第２セルＣ２の列を参照して、ＰＣＩメモリ・アクセスａｃ１が、自分自身（第２セルＣ２）がオーナーであるＰＣＩメモリ・レンジ（“Ｘ２”から“Ｘ２＋α２”までの範囲）へのアクセスであることを認識する。そして、チップセット２３は、ＰＣＩメモリ・アクセスａｃ１を、第２セルＣ２に接続されている第２Ｉ／Ｏコントローラ２００へルーティングする（図４のルーティングｒｔ１）。
【０００９】
このような、チップセットがレンジ・レジスタを参照しながらリソース・アクセスのルーティングを行うリソース・ルーティング方式を採用したコンピュータ・システムにおいて、ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、前記第１の初期化方式あるいは前記第２の初期化方式のどちらかを採用して、オンライン・システム０００を構成するセル上のチップセットが持つレンジ・レジスタ群を初期化する。
【００１０】
そして、このような、チップセットがレンジ・レジスタを参照しながらリソース・アクセスのルーティングを行うリソース・ルーティング方式を採用したコンピュータ・システムにおいて、ＯＳが動作している状態で、ＯＳをシャットダウンあるいは停止すること無く、すなわちオンラインで、ＣＰＵ，メモリ，およびそれらを制御するチップセットが搭載された予備セルＣ３をオンライン・システム０００へ組み込む場合、ＢＩＯＳ００は、同様に、予備セルＣ３上のチップセットが持つレンジ・レジスタ群も初期化しなければならない。
【００１１】
なお、先行技術として、本願発明者によるＰＣＩホスト・バス・ブリッジ・システム初期化方式がある（特許文献１参照）。この方式では、ＢＩＯＳが、情報読み出し機能によりＰＣＩホスト・バス・ブリッジに関する情報を読み出し、初期化処理機能によりＰＣＩホスト・バス・ブリッジに係るＰＣＩデバイスや割り込みコントローラの初期化を行うが、本発明のように、マルチ・セル構成システムにおけるセル上のチップセットを初期化するものではない。
【００１２】
【特許文献１】
特開２００２−３１２２９７号公報（第３頁、図１）
【００１３】
【課題を解決するための手段】
しかしながら、従来技術では、予備セルを初期化するための技術が存在しなかった。
【００１４】
例えば、前記第１の初期化方式あるいは前記第２の初期化方式のどちらかを採用したＢＩＯＳが、予備セルを初期化する場合、予備セルをオンライン・システムへ組み込んだ後、オンライン・システムの立ち上げ時と同様に、前記第１の初期化方式あるいは前記第２の初期化方式の手順に従って、予備セル上のチップセットに対するレンジ・レジスタ群初期値設定を行うという方法が考えられるが、この方法には、２つの課題があった。
【００１５】
第１の課題は、予備セルをオンライン・システムへ組み込んだ直後に、かつＢＩＯＳがまだ予備セル上のチップセットに対するレンジ・レジスタ群初期値設定を行う前に、予備セルのＣＰＵからリソースへのアクセスが発行された場合、まだ予備セル上のチップセットが持つレンジ・レジスタ群には初期値が設定されていないため、予備セル上のチップセットは、そのアクセスを正しくオーナー（セル）へフォワードすることができないという問題である。
【００１６】
また、１つのシステム・バス上に複数のセルが接続されたマルチ・セル構成システムにおいては、あるセル上のチップセットからリソースのオーナー（セル）へリソース・アクセスをフォワードする場合、ブロード・キャスト形式で、リソース・アクセスをシステム・バス上にフォワードする。すると、システム・バス上に接続された全てのセル上のチップセットがそのリソース・アクセスを受け取り、レンジ・レジスタを参照して、自分自身がオーナーとしているリソースへのアクセスか否かの判断を行う。
【００１７】
第２の課題は、このようなマルチ・セル構成システムであるオンライン・システム０００へ予備セルを組み込んだ直後に、かつＢＩＯＳ００がまだ予備セル上のチップセットに対するレンジ・レジスタ群初期値設定を行う前に、あるセルのＣＰＵからリソースへのアクセスが発行され、そのセル上のチップセットがブロード・キャスト形式で、そのリソース・アクセスをシステム・バス上にフォワードした場合、まだ予備セル上のチップセットが持つレンジ・レジスタ群には初期値が設定されておらず、かつレンジ・レジスタに不定な値が残っていたとき、予備セル上のチップセットは、その不定なレンジ・レジスタを参照して、その結果、予備セル上のチップセットが誤って自分自身がオーナーであると判断してしまうと、複数のオーナーが存在することになってしまい、１つのリソース・アクセスが、複数のオーナーへルーティングされてしまう可能性があるという問題である。
【００１８】
この場合は、予備セルがオンライン・システム０００に組み込まれた瞬間から、ＢＩＯＳ００による予備セル上のチップセットに対するレンジ・レジスタ群初期値設定が完了するまでの間、ＢＩＯＳ００が動作しているＣＰＵを除く全てのＣＰＵの動作を止めることで回避することが可能だが、これは、ＯＳの動作、すなわちオンライン・システム０００を停止させることに繋がるため、最善な回避策とはいえない。
【００１９】
チップセットがレンジ・レジスタを参照しながらリソース・アクセスのルーティングを行うリソース・ルーティング方式を採用したコンピュータ・システムにおいて、ＯＳが動作している状態で、ＯＳをシャットダウンあるいは停止すること無く、すなわちオンラインで、ＣＰＵ，メモリ，およびそれらを制御するチップセットが搭載された予備セルをオンライン・システム０００へ組み込み可能とするためには、前記２つの課題を解決しながら、予備セルを初期化する新たな技術が必要である。
【００２０】
本発明の目的は、ＣＰＵ，メモリ，およびそれらを制御するチップセットが搭載されたセルを、ＯＳが動作している状態で、ＯＳをシャットダウンあるいは停止すること無く、すなわちオンラインで組み込み可能とするチップセット初期化方式を提供することにある。
【００２１】
【課題を解決するための手段】
本発明のチップセット初期化方式は、システム・バス上に複数のセルが接続されたマルチ・セル構成システムであって、レンジ・レジスタ参照によるリソース・ルーティング方式を採用したコンピュータ・システムにおけるチップセット初期化方式において、オンライン・システムの立ち上げ時に、仮想セルを定義して、オンライン・システムにまだ組み込まれていない予備セル上のチップセットに対するレンジ・レジスタ群初期値設定を、前記仮想セル上の仮想チップセットに対するレンジ・レジスタ群初期値設定へと置換するオンライン・システム上で動作する第１のＢＩＯＳと、前記予備セルをオンライン・システムへ組み込む前に、前記仮想セル上の仮想チップセットに対するレンジ・レジスタ群初期値を前記予備セル上のチップセットに対するレンジ・レジスタ群初期値として前記予備セル上のメモリの所定領域へコピーするサービス・プロセッサ・ファームウェアと、前記予備セル上のメモリの所定領域から前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を読み取って前記予備セル上のチップセットが持つレンジ・レジスタ群に設定する予備システム上で動作する第２のＢＩＯＳとを有することを特徴とする。
【００２２】
また、本発明のＢＩＯＳは、オンライン・システムの立ち上げ時に、仮想セルを定義して、オンライン・システムにまだ組み込まれていない予備セル上のチップセットに対するレンジ・レジスタ群初期値設定を、前記仮想セル上の仮想チップセットに対するレンジ・レジスタ群初期値設定へと置換することを特徴とする。
【００２３】
さらに、本発明のサービス・プロセッサ・ファームウェアは、オンライン・システムにまだ組み込まれていない予備セルをオンライン・システムへ組み込む前に、前記仮想セル上の仮想チップセットに対するレンジ・レジスタ群初期値を前記予備セル上のチップセットに対するレンジ・レジスタ群初期値として前記予備セル上のメモリの所定領域へコピーすることを特徴とする。
【００２４】
さらにまた、本発明のＢＩＯＳは、オンライン・システムにまだ組み込まれていない予備セル上のメモリの所定領域から前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を読み取って前記予備セル上のチップセットが持つレンジ・レジスタ群に設定することを特徴とする。
【００２５】
また、本発明のチップセット初期化方式は、オンライン・システムに組み込み可能な全てのセルに対してバス番号をアサインして物理セル番号・バス番号対応表を作成し、セルがオンライン・システムに組み込まれているか否かを調べ、セルがオンライン・システムにまだ組み込まれていない予備セルであることを認識すると、前記物理セル番号・バス番号対応表を参照して前記予備セルに対応するバス番号を取得し、該バス番号を前記予備セルに対応するエントリの仮想バス番号フィールドへ登録するとともに前記予備セルに対応するエントリの仮想セル・フラグをオンに設定することを繰り返して仮想セル・テーブルを作成し、前記物理セル番号・バス番号対応表を参照してレンジ・レジスタ群初期値設定を行うセルへアサインされているバス番号を取得し、該バス番号をバス番号とするセル・コンフィグレーション・アドレスを生成し、該セル・コンフィグレーション・アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込むことをオンライン・システムに組み込み可能な全てのセルに対して繰り返すことによりレンジ・レジスタ群初期値設定処理を行うオンライン・システム上で動作する第１のＢＩＯＳと、オンライン・システムにまだ組み込まれていない予備セルをオンライン・システムへ組み込む前に前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を前記予備セル上のメモリの所定領域へコピーし、前記予備セルのオンライン・システムへの組み込みが可能である旨の通知を受けると前記予備セルをオンライン・システムへ組み込むサービス・プロセッサ・ファームウェアと、前記予備セル上のメモリの所定領域から前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を読み取って前記予備セル上のチップセットが持つレンジ・レジスタ群に設定し、前記サービス・プロセッサ・ファームウェアに対して前記予備セルのオンライン・システムへの組み込みが可能である旨を通知する予備システム上で動作する第２のＢＩＯＳとを有することを特徴とする。
【００２６】
さらに、本発明のＢＩＯＳは、オンライン・システムに組み込み可能な全てのセルに対してバス番号をアサインして物理セル番号・バス番号対応表を作成し、セルがオンライン・システムに組み込まれているか否かを調べ、セルがオンライン・システムにまだ組み込まれていない予備セルであることを認識すると、前記物理セル番号・バス番号対応表を参照して前記予備セルに対応するバス番号を取得し、該バス番号を前記予備セルに対応するエントリの仮想バス番号フィールドへ登録するとともに前記予備セルに対応するエントリの仮想セル・フラグをオンに設定することを繰り返して仮想セル・テーブルを作成し、前記物理セル番号・バス番号対応表を参照してレンジ・レジスタ群初期値設定を行うセルへアサインされているバス番号を取得し、該バス番号をバス番号とするセル・コンフィグレーション・アドレスを生成し、該セル・コンフィグレーション・アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込むことをオンライン・システムに組み込み可能な全てのセルに対して繰り返すことによりレンジ・レジスタ群初期値設定処理を行うことを特徴とする。
【００２７】
さらにまた、本発明のＢＩＯＳは、仮想セル・コンフィグレーション・アドレスから仮想バス番号を取り出し、該仮想バス番号に対応するセル番号を前記仮想セル・テーブルを検索することによって取得し、仮想セル・コンフィグレーション空間がメモリ上にマッピングされているメモリマップド仮想セル・コンフィグレーション空間のメモリ内開始ベース・アドレスと取得したセル番号であるオフセット値とからベース・アドレスを計算し、仮想セル・コンフィグレーション・アドレスから仮想バス番号を取り除いた値をベース・アドレスにプラスして書き込み先メモリ番地アドレスとし、該書き込み先メモリ番地アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込むことにより、メモリマップド仮想レンジ・レジスタ群初期値設定処理を行うことを特徴とする。
【００２８】
また、本発明のサービス・プロセッサ・ファームウェアは、オンライン・システムにまだ組み込まれていない予備セルをオンライン・システムへ組み込む前に前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を前記予備セル上のメモリの所定領域へコピーし、前記予備セルのオンライン・システムへの組み込みが可能である旨の通知を受けると前記予備セルをオンライン・システムへ組み込むことを特徴とする。
【００２９】
さらに、本発明のＢＩＯＳは、オンライン・システムにまだ組み込まれていない予備セル上のメモリの所定領域から前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を読み取って前記予備セル上のチップセットが持つレンジ・レジスタ群に設定し、サービス・プロセッサ・ファームウェアに対して前記予備セルのオンライン・システムへの組み込みが可能である旨を通知することを特徴とする。
【００３０】
一方、本発明のチップセット初期化方法は、システム・バス上に複数のセルが接続されたマルチ・セル構成システムであって、レンジ・レジスタ参照によるリソース・ルーティング方式を採用したコンピュータ・システムにおけるチップセット初期化方法において、オンライン・システムにまだ組み込まれていない予備セル上のチップセットに対するレンジ・レジスタ群初期値設定が破棄される前に該レンジ・レジスタ群初期値を盗み取る工程と、前記予備セルに対して仮想セルを定義して、該仮想セル上の仮想チップセットが持つレンジ・レジスタ群がマッピングされた仮想セル・コンフィグレーション空間をさらにメモリの所定領域へマッピングすることでメモリマップド仮想セル・コンフィグレーション空間を実装する工程と、前記盗み取ったレンジ・レジスタ群初期値を前記メモリマップド仮想セル・コンフィグレーション空間上の対応するレンジ・レジスタ位置に書き込んでメモリ上で保持する工程と、前記メモリ上から前記予備セル上のチップセットに対するレンジ・レジスタ群初期値を読み取って前記予備セル上のチップセットが持つレンジ・レジスタ群に設定する工程とを含むことを特徴とする。
【００３１】
また、本発明のチップセット初期化方法は、システム・バス上に複数のセルが接続されたマルチ・セル構成システムであって、レンジ・レジスタ参照によるリソース・ルーティング方式を採用したコンピュータ・システムにおけるチップセット初期化方法において、物理セル番号とバス番号とを対応させた物理セル番号・バス番号対応表を作成する物理セル番号・バス番号対応表作成処理と、物理セル番号と、物理セル番号のセルが仮想セルか否かを表す仮想セル・フラグと、バス番号とを対応させた仮想セル・テーブルを作成する仮想セル・テーブル作成処理と、オンライン・システムに組み込み可能な全てのセル上のチップセットに対してレンジ・レジスタ群初期値を設定するレンジ・レジスタ群初期値設定処理と、前記レンジ・レジスタ群初期値設定処理においてセルが仮想セルであったときに仮想レンジ・レジスタ群にレンジ・レジスタ群初期値を設定する仮想セル・レンジ・レジスタ群初期値設定処理と、前記仮想セル・レンジ・レジスタ群初期値設定処理においてメモリマップド仮想レンジ・レジスタ群にレンジ・レジスタ群初期値を設定するメモリマップド仮想レンジ・レジスタ群初期値設定処理とを含むことを特徴とする。
【００３２】
さらに、本発明のチップセット初期化方法は、前記物理セル番号・バス番号対応表作成処理が、セルに対してバス番号をアサインする処理を全てのセルに関して繰り返すことにより物理セル番号・バス番号対応表を作成することを特徴とする。
【００３３】
さらにまた、本発明のチップセット初期化方法は、前記仮想セル・テーブル作成処理が、セルがオンライン・システムに組み込まれているか否かを調べ、前記セルがオンライン・システムにまだ組み込まれていない予備セルであることを認識したときに前記物理セル番号・バス番号対応表を参照して前記予備セルに対応するバス番号を取得し、該バス番号を前記仮想セル・テーブル上の予備セルに対応するエントリの仮想バス番号フィールドに登録し、前記仮想セル・テーブル上の予備セルに対応するエントリの仮想セル・フラグを設定する処理を、全てのセルに関して繰り返すことを特徴とする。
【００３４】
また、本発明のチップセット初期化方法は、前記レンジ・レジスタ群初期値設定処理が、前記物理セル番号・バス番号対応表を参照することによりレンジ・レジスタ群初期値設定を行うセルへアサインされているバス番号を取得し、該バス番号をバス番号とするセル・コンフィグレーション・アドレスを生成し、レンジ・レジスタ内オフセット番号を、前記生成されたセル・コンフィグレーション・アドレスのレジスタ番号へプラスし、生成されたセル・コンフィグレーション・アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込む処理を、全てのセルに関して繰り返すことを特徴とする。
【００３５】
さらに、本発明のチップセット初期化方法は、前記仮想セル・レンジ・レジスタ群初期値設定処理が、前記仮想セル・テーブルを参照して、セル番号に対応するセルが仮想セルか否かを判断し、セル番号を持つセルが仮想セルであるときに前記仮想セル・コンフィグレーション空間を示す仮想セル・コンフィグレーション・アドレスを生成し、前記仮想セル・コンフィグレーション・アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込むことを特徴とする。
【００３６】
さらにまた、本発明のチップセット初期化方法は、前記メモリマップド仮想レンジ・レジスタ群初期値設定処理が、仮想セル・コンフィグレーション・アドレスから仮想バス番号を取り出し、前記仮想セル・コンフィグレーション空間がメモリ上にマッピングされている前記メモリマップド仮想セル・コンフィグレーション空間のメモリ内開始ベース・アドレスと前記取得したセル番号をオフセット値としてベース・アドレスを計算し、仮想セル・コンフィグレーション・アドレスから仮想バス番号を取り除いた値を前記計算されたベース・アドレスにプラスした値を書き込み先メモリ番地アドレスとし、該書き込み先メモリ番地アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込むことを特徴とする。
【００３７】
また、本発明のチップセット初期化方法は、オンライン・システムの立ち上げ時に、前記予備セル上のチップセットが持つレンジ・レジスタ群初期値を前記メモリマップド仮想セル・コンフィグレーション空間上の前記予備セルが対応する仮想コンフィグレーション・レジスタ・セット位置へ設定し終えると、前記予備セルが対応するメモリマップド仮想セル・コンフィグレーション空間を圧縮して特定領域へコピーして保持し、メモリ内開始アドレスをベース・アドレスとするメモリマップド仮想セル・コンフィグレーション空間ポインタ・テーブルの前記予備セルに対応するエントリにコピー先アドレスを登録しておき、全ての予備セルに対して圧縮処理が終わると前記メモリマップド仮想セル・コンフィグレーション空間が消費しているメモリ領域を全て解放することを特徴とする。
【００３８】
さらに、本発明のチップセット初期化方法は、前記オンライン・システムには、各セル毎に仮想セル・スイッチが装備され、仮想セルの内部に仮想セル・コンフィグレーション・レジスタ・セットが装備されていて、前記予備セルがオンライン・システムにまだ組み込まれていないために前記仮想セル・スイッチがオンであり、前記予備セルに対応するバス番号をバス番号とするセル・コンフィグレーション・アドレスを書き込み先アドレスとして指定してレンジ・レジスタ群初期値を書き込むことにより、前記仮想セル・スイッチがオンであるために前記予備セル上のチップセットに対するレンジ・レジスタ群初期値設定は破棄されず、仮想セル・コンフィグレーション空間がマッピングされている仮想セル上の仮想チップセットが装備しているレンジ・レジスタ群に値が設定されて保持されることを特徴とする。
【００３９】
さらにまた、本発明のチップセット初期化方法は、前記予備セルがオンライン・システムへ組み込まれたときに、前記仮想セル・スイッチがオフとなると、仮想セル・コンフィグレーション空間がマッピングされている仮想セル上の仮想チップセットが装備しているレンジ・レジスタ群が保持しているレンジ・レジスタ群初期値が前記予備セル上のチップセットが持つレンジ・レジスタ群へ自動的にコピーされることを特徴とする。
【００４０】
また、本発明のチップセット初期化方法は、前記予備セル上のチップセットに対するレンジ・レジスタ群初期値設定のスヌープ処理と、ＢＩＯＳが予備セルを組み込む前に行っていた仮想セルを参照してレンジ・レジスタ群初期値を取得して前記予備セル上のチップセットが持つレンジ・レジスタ群に設定するレンジ・レジスタ群初期値設定とを、ハードウェアが自動的に行うことを特徴とする。
【００４１】
さらに、本発明のチップセット初期化方法は、オンライン・システムにまだ組み込まれていない予備セルがオンライン・システムへ組み込まれた場合に前記予備セル上の増設メモリがメモリ上のどのアドレス位置に置かれるかを示し、メモリを増設する場合にどのメモリ位置へ増設メモリを置くかが事前に決まっていたときに、増設メモリ位置を意味する最下位アドレスおよび最上位アドレスを仮想セル・コンフィグレーション空間上の対応するレジスタ位置へ設定しておき、メモリマップド仮想セル・コンフィグレーション空間上の対応するレジスタ位置でメモリ上で保持することを特徴とする。
【００４２】
さらにまた、本発明のチップセット初期化方法は、ハードウェアが実装する仮想セル・コンフィグレーション空間上のレジスタ位置でレンジ・レジスタ群初期値を保持し、オンライン・システムにまだ組み込まれていない予備セルをオンライン・システムへ組み込む際に予備システム上で動作するＢＩＯＳがメモリ上の対応するレジスタ位置を参照して、前記予備セル上の増設メモリを置くべきメモリ位置を取得して前記予備セル上の増設メモリへ設定することを特徴とする。
【００４３】
また、本発明のチップセット初期化方法は、オンライン・システムにまだ組み込まれていない予備セルをオンライン・システムへ組み込むと同時に、ハードウェアにより前記予備セル上の増設メモリを置くべきメモリ位置を前記ハードウェアが実装する仮想セル・コンフィグレーション空間上のレジスタ位置から取り出し前記予備セル上の増設メモリへ自動的に設定することを特徴とする。
【００４４】
図１において、ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、オンライン・システム０００を構成する第１セルＣ１および第２セルＣ２上の各チップセット１３および２３が持つ、ＰＣＩメモリ・レンジ・レジスタ１３１および２３１などのレンジ・レジスタ群を初期化する。一方、このとき、予備システム９９９を構成する予備セルＣ３上のチップセット３３が持つＰＣＩメモリ・レンジ・レジスタ３３１などのレンジ・レジスタ群は初期化されない。その理由は、予備セルＣ３は、オンライン・システム０００にまだ組み込まれていないため、ＢＩＯＳ００は、予備セルＣ３を制御（初期化）することができないためである。また、このとき、予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に対する初期値の書き込みは破棄される、というＰＣＩ仕様で規定されたＰＣＩコンフィグレーション・アクセス・メカニズムに準じた動作が行われる。
【００４５】
本発明では、レンジ・レジスタ群の初期設定を行うＢＩＯＳ００に対して、新たな仕組みを設けることによって、オンライン・システム０００を構成する第１セルＣ１および第２セルＣ２上のチップ請求項ａと１３および２３とともに、オンライン・システム０００にまだ組み込まれていない予備セルＣ３上のチップセット３３も一括して初期化可能とするためのチップセット初期化方式（予備セル組み込み方式）を提案するものである。
【００４６】
その新たな仕組みとは、オンライン・システム０００にまだ組み込まれていない予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に対する初期値の書き込みが破棄される前に、ＢＩＯＳ００自身が、それを盗み取り、同時に、予備セルＣ３に対して仮想セルＣＡを定義して、仮想セルＣＡ上の仮想チップセットＡ３が持つレンジ・レジスタ群をメモリの所定領域にマッピングすることで、メモリマップド仮想セル・コンフィグレーション空間を実装して、盗み取ったレンジ・レジスタ群初期値をメモリマップド仮想セル・コンフィグレーション空間上の対応するレジスタ位置に書き込んでメモリ上で保持する仕組みである。
【００４７】
そして、図１におけるサービス・プロセッサ・ファームウェアＢ１は、予備セルＣ３をオンライン・システム０００に組み込む前に、メモリ上に保持された予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に対する初期値（メモリマップド仮想セル・コンフィグレーション空間上に保持されたレンジ・レジスタ群初期値）を、予備セルＣ３上のメモリ３２へコピーする。そして、予備セルＣ３上で動作するＢＩＯＳ０１は、メモリ３２から予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に対する初期値を読み取り、予備セルＣ３上のチップセット３３が持つＰＣＩメモリ・レンジ・レジスタ３３１などのレンジ・レジスタ群に設定する。次に、予備セルＣ３上で動作するＢＩＯＳ０１は、サービス・プロセッサ・ファームウェアＢ１に対して、予備セルＣ３がオンライン・システム０００へ組み込み可能である旨を通知する。そして、サービス・プロセッサ・ファームウェアＢ１は、予備セルＣ３をオンライン・システム０００へ組み込む。
【００４８】
このように、本発明では、コンピュータ・システムの立ち上げ時に行われるＢＩＯＳ００によるレンジ・レジスタ群初期値設定処理において、破棄される予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に対する初期値を、ＢＩＯＳ００自身がそれを盗み取り、そのレンジ・レジスタ群初期値をメモリ上にマッピングされた仮想セルＣＡ上で保持し、予備セルＣ３をオンライン・システム０００へ組み込む前に、予備システム９９９上で動作する別のＢＩＯＳ０１が、その保持されたレンジ・レジスタ群初期値を予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群へ設定することによって予備セルＣ３を初期化し、予備セルＣ３をオンライン・システム０００へ増設して組み込み可能とするためのチップセット初期化方式（予備セル組み込み方式）を提案するものである。
【００４９】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００５０】
［第１の実施の形態］
図１を参照すると、本発明の第１の実施の形態に係るチップセット初期化方式では、オンライン・システム０００が、ＣＰＵ，メモリ，およびそれらを制御するチップセットが搭載されている第１セルＣ１および第２セルＣ２で構成されている。
【００５１】
第１セルＣ１は、ＣＰＵ１１と、メモリ１２と、チップセット１３とで構成されている。チップセット１３は、ＰＣＩメモリ・レンジ・レジスタ１３１，ＰＣＩ・ＩＯレンジ・レジスタ１３２，割り込みレンジ・レジスタ１３３などのレンジ・レジスタ群を備えている。
【００５２】
第２セルＣ２も、第１セルＣ１と同様に、ＣＰＵ２１と、メモリ２２と、チップセット２３とで構成されている。チップセット２３は、ＰＣＩメモリ・レンジ・レジスタ２３１，ＰＣＩ・ＩＯレンジ・レジスタ２３２，割り込みレンジ・レジスタ２３３などのレンジ・レジスタ群を備えている。
【００５３】
オンライン・システム０００は、さらに、第１Ｉ／Ｏコントローラ１００と、第２Ｉ／Ｏコントローラ２００とを備えている。そして、第１Ｉ／Ｏコントローラ１００は第１セルＣ１と、第２Ｉ／Ｏコントローラ２００は第２セルＣ２とそれぞれ接続されている。
【００５４】
一方、予備システム９９９は、ＣＰＵ３１，メモリ３２，およびそれらを制御するチップセット３３が搭載されている第３セルＣ３で構成されている。第３セルＣ３は、オンライン・システム０００にまだ組み込まれていない予備セルである。以下、第３セルＣ３を、予備セルＣ３と呼ぶ。
【００５５】
予備セルＣ３も、第１セルＣ１および第２セルＣ２と同様に、ＣＰＵ３１と、メモリ３２と、チップセット３３とで構成されている。チップセット３３は、ＰＣＩメモリ・レンジ・レジスタ３３１，ＰＣＩ・ＩＯレンジ・レジスタ３３２，割り込みレンジ・レジスタ３３３などのレンジ・レジスタ群を備えている。
【００５６】
なお、オンライン・システム０００に組み込み可能な全てのセル上のチップセットが持つレンジ・レジスタ群のレンジ・レジスタは、自身のレンジ・レジスタ群において、同じレンジ・レジスタ群初期値が設定され、保持しなければならない、というチップセット要求仕様（要求仕様１）を持ったレジスタである。
【００５７】
本発明が対象とするコンピュータ・システムでは、オンライン・システム０００を構成するセルの枚数，およびＩ／Ｏコントローラの数は限定しない。また、予備システム９９９を構成する予備セルＣ３の枚数に関しても限定しない。さらに、１つのオンライン・システム０００に対する予備システム９９９の数も限定しない。
【００５８】
第１の実施の形態（図１）では、１つのオンライン・システム０００と、それを構成する第１セルＣ１および第２セルＣ２と、第１Ｉ／Ｏコントローラ１００および第２Ｉ／Ｏコントローラ２００と、１つの予備システム９９９と、それを構成する１枚の予備セルＣ３とで構成されたコンピュータ・システムを１つの実施の形態の構成として、ＯＳ（図示せず）がオンライン・システム０００で動作している状態で、ＯＳをシャットダウンあるいは停止すること無く、すなわちオンラインで、ＣＰＵ３１，メモリ３２，およびそれらを制御するチップセット３３が搭載された予備セルＣ３をオンライン・システム０００へ増設して組み込み可能とするためのチップセット初期化方式（予備セル組み込み方式）を説明する。
【００５９】
ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、第１セルＣ１および第２セルＣ２を初期化する。
【００６０】
一方、ＢＩＯＳ０１は、予備システム９９９の立ち上げ時に、予備セルＣ３を初期化する。
【００６１】
各セルＣ１，Ｃ２，Ｃ３の初期化は、各チップセット１３，２３，３３が持つ、ＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，ＰＣＩ・ＩＯレンジ・レジスタ１３２，２３２，３３２，割り込みレンジ・レジスタ１３３，２３３，３３３などのレンジ・レジスタ群を初期化することである。
【００６２】
図２を参照すると、図１における各セル上のチップセットが備えているレンジ・レジスタ群の初期値が表されている。例えば、ＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第１セルＣ１の列は、第１セルＣ１と接続された第１Ｉ／Ｏコントローラ１００に接続されているＰＣＩカード群１０１が消費するＰＣＩメモリ空間のレンジを示している。そのレンジは、最下位アドレス（ＢＯＴＴＯＭ）が“Ｘ１”であり、最上位アドレス（ＴＯＰ）が“Ｘ１＋α１”であることを表している。すなわち、第１セルＣ１は、ＰＣＩメモリ空間の“Ｘ１”から“Ｘ１＋α１”までのレンジのオーナーであることを意味している。
【００６３】
第２セルＣ２の列に関しても同様である。
【００６４】
このように、ＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…は、各セルがオーナーとしているＰＣＩメモリ空間のレンジを示したレジスタである。
【００６５】
ＰＣＩ・ＩＯレンジ・レジスタ１３２，２３２，３３２，…に関しても同様である。
【００６６】
また、割り込みレンジ・レジスタ１３３，２３３，３３３，…に関しても同様である。
【００６７】
ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、前記チップセット要求仕様１に従い、図２で示されたレンジ・レジスタ群初期値を、オンライン・システム０００に組み込み可能な全てのセル上のチップセットが持つレンジ・レジスタ群に対して設定する。これにより、各セルがオーナーとなるべきリソース・レンジが決定される。これを、ＢＩＯＳ００による各セルに対するリソース・アサイン（割り当て）と呼ぶ。
【００６８】
図３を参照すると、ＢＩＯＳ００がオンライン・システム０００の立ち上げ時に決定した（各セルへアサインした）リソース・レンジが表されている。例えば、図２におけるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第１セルＣ１の列を参照すると、第１セルＣ１がオーナーとしているレンジは、最下位アドレス“Ｘ１”から最上位アドレス“Ｘ１＋α１”までのレンジであり、そのレンジは、図３を参照すると、第１ＰＣＩメモリ空間１１０であることが分かる。
【００６９】
図４において、第１セルＣ１上のＣＰＵ１１からＰＣＩメモリ・アクセスａｃ１が発行されると、チップセット１３は、ＰＣＩメモリ・レンジ・レジスタ１３１を参照する。ＰＣＩメモリ・レンジ・レジスタ１３１には、ＢＩＯＳ００によって、図２で示されたＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第１セルＣ１の列の初期値が設定されている。例えば、ＰＣＩメモリ・アクセスａｃ１が、図３における第２ＰＣＩメモリ空間２１０へのアクセスであった場合、チップセット１３は、図２におけるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第２セルＣ２の列を参照して、ＰＣＩメモリ・アクセスａｃ１が、第２セルＣ２がオーナーであるＰＣＩメモリ・レンジ（“Ｘ２”から“Ｘ２＋α２”までの範囲）へのアクセスであることを認識する。このため、チップセット１３は、ＰＣＩメモリ・アクセスａｃ１をオーナーである第２セルＣ２へフォワードする（図４のフォワードｆｗ１）。
【００７０】
ＰＣＩメモリ・アクセスａｃ１を受け取った第２セルＣ２上のチップセット２３は、同様に、ＰＣＩメモリ・レンジ・レジスタ２３１を参照する。ＰＣＩメモリ・レンジ・レジスタ２３１には、チップセット１３が持つＰＣＩメモリ・レンジ・レジスタ１３１と同様に、ＢＩＯＳ００によって、図２で示されたＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第２セルＣ２の列の初期値が設定されている。そして、チップセット２３は、チップセット１３と同様に、図２におけるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第２セルＣ２の列を参照して、ＰＣＩメモリ・アクセスａｃ１が、自分自身（第２セルＣ２）がオーナーであるＰＣＩメモリ・レンジ（“Ｘ２”から“Ｘ２＋α２”までの範囲）へのアクセスであることを認識する。よって、チップセット２３は、ＰＣＩメモリ・アクセスａｃ１を、第２セルＣ２に接続されている第２Ｉ／Ｏコントローラ２００へルーティングする（図４のルーティングｒｔ１）。
【００７１】
このようにして、ＣＰＵからリソースへのアクセスが発行されると、チップセットが、レンジ・レジスタを参照することで、どのオーナー（セル）のリソースへのアクセスかを認識し、そのアクセスをリソースのオーナー（セル）へフォワードして、オーナー（セル）上のチップセットも同様に、レンジ・レジスタを参照することで、自分自身がオーナーとしているリソースへのアクセスであることを認識し、オーナー（セル）上のチップセットが、そのアクセスをＩ／Ｏコントローラへルーティングすることで、ＣＰＵから発行されたリソース・アクセスが、実際のリソースへ到達することができる。
【００７２】
本発明では、このようなレンジ・レジスタ参照によるリソース・ルーティング方式を採用したコンピュータ・システムにおいて、ＯＳが動作している状態で、ＯＳをシャットダウンあるいは停止すること無く、すなわちオンラインで、ＣＰＵ，メモリ，およびそれらを制御するチップセットが搭載された予備セルを増設して組み込み可能とするためのチップセット初期化方式を提案するものである。
【００７３】
このようなリソース・ルーティング方式を採用したコンピュータ・システムにおいて、図１に示したように、予備セルＣ３をオンライン・システム０００へ組み込む場合、予備セルＣ３は、第１セルＣ１および第２セルＣ２上のチップセット３１および３２が持つレンジ・レジスタ群と同様に、図２で示されたレンジ・レジスタ群初期値が、チップセット３３が持つレンジ・レジスタ群に設定された状態で、オンライン・システム０００へ組み込まれなければならない。
【００７４】
その理由は、図５を参照すると、予備セルＣ３がオンライン・システム０００へ組み込まれた後、例えば、予備セルＣ３上のＣＰＵ３１から、図３における第２ＰＣＩメモリ空間２１０に対するＰＣＩメモリ・アクセスａｃ３が発行された場合、チップセット３３は、ＰＣＩメモリ・レンジ・レジスタ３３１を参照して、ＰＣＩメモリ・アクセスａｃ３が、第２セルＣ２がオーナーである第２ＰＣＩメモリ空間２１０へのアクセスであることを認識して、ＰＣＩメモリ・アクセスａｃ３をオーナー（第２セルＣ２）へフォワードしなければならないからである（図５のフォワードｆｗ３）。そのためには、図１において、予備セルＣ３をオンライン・システム０００に組み込む前に、第１セルＣ１および第２セルＣ２上のチップセット３１および３２が持つレンジ・レジスタ群と同様のレンジ・レジスタ群初期値（図２参照）を、予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に設定するための新たな仕組みが必要である。
【００７５】
図１を参照すると、オンライン・システム０００には、予備セルＣ３のオンライン増設を想定し、仮想セルＣＡが装備されている。ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、第１セルＣ１および第２セルＣ２とともに、仮想セルＣＡを初期化する。その初期化は、図２で示されるレンジ・レジスタ群初期値を、第１セルＣ１および第２セルＣ２上のチップセット１３および２３が持つレンジ・レジスタ群とともに、仮想セルＣＡ上の仮想チップセットＡ３が持つレンジ・レジスタ群に対して設定することである。
【００７６】
図６を参照すると、ＢＩＯＳ００によるレンジ・レジスタ群初期値設定処理が示されている。例えば、ＢＩＯＳ００は、第１セルＣ１上のチップセット１３が持つレンジ・レジスタ群の１つであるＰＣＩメモリ・レンジ・レジスタ１３１の第１セル・レンジ部へ、第１セルＣ１がオーナーである第１ＰＣＩメモリ空間１１０（図３参照）の最下位アドレス“Ｘ１”および最上位アドレス“Ｘ１＋α１”を設定する（図６の初期化ｉｚ１）。このとき、一般的に、ＢＩＯＳ００は、処理の簡略化のため、設定先のセル（チップセット）がオンライン・システム０００に組み込まれているか否かを調べることなく、オンライン・システム０００に組み込み可能な全てのセル上のチップセットのＰＣＩメモリ・レンジ・レジスタの第１セル・レンジ部に対して値を設定する。例えば、図６において、ＢＩＯＳ００は、第２セルＣ２上のチップセット２３が持つＰＣＩメモリ・レンジ・レジスタ２３１の第１セル・レンジ部に対して、同様な値を設定する。これを、非オーナーであるセルに対する値の設定であることから、シャドウィングと呼ぶ（図６のシャドウィングｓｗ１）。
【００７７】
同様に、予備セルＣ３上のチップセット３３に対しても値の設定を行うが、予備セルＣ３は、オンライン・システム０００にまだ組み込まれていないため、値の設定は破棄される（図６のディスカードｄｃ１）。このとき、本実施の形態では、破棄される直前に、予備セルＣ３上のチップセット３３に対する値の設定（図６のディスカードｄｃ１）を盗み取り、その値を、仮想セルＣＡ上の仮想チップセットＡ３が持つＰＣＩメモリ・レンジ・レジスタＡ３１の第１セル・レンジ部へ設定する（図６のスヌープｓｎ１）。
【００７８】
このようにして、ＢＩＯＳ００は、図２で示されるレンジ・レジスタ群初期値を、第１セルＣ１および第２セルＣ２上のチップセット３１および３２が持つレンジ・レジスタ群とともに、仮想セルＣＡ上の仮想チップセットＡ３が持つレンジ・レジスタ群に対しても設定する。
【００７９】
図７を参照すると、一般的なＰＣＩコンフィグレーション・アドレスｐｃａの形式が示されている。ＰＣＩコンフィグレーション・アドレスｐｃａは、有効フラグ，予約，バス番号，デバイス番号，ファンクション番号，レジスタ番号等からなる。ＢＩＯＳ００は、第１セルＣ１上のチップセット１３と、第２セルＣ２上のチップセット２３とに対して、バス番号を割り当てる（アサインする）。そして、ＢＩＯＳ００は、ＰＣＩコンフィグレーション・アドレスｐｃａを使って、各チップセット１３および２３を制御することができる。
【００８０】
図８は、ＢＩＯＳ００が各チップセット（セル）にアサインしたバス番号の一例を示す物理セル番号・バス番号対応表ｃｂｔである。ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、オンライン・システム０００に組み込まれている第１セルＣ１へバス番号“ＢＵＳＮＯ１”を、第２セルＣ２へバス番号“ＢＵＳＮＯ２”をアサインする。そして、それらをバス番号とする、図７で示されるＰＣＩコンフィグレーション・アドレスｐｃａを使って、各チップセット１３，２３，３３，…が備えているレンジ・レジスタ群を初期化する。具体的には、図６において、ＢＩＯＳ００は、第１セルＣ１上のチップセット１３が持つレンジ・レジスタ群の１つであるＰＣＩメモリ・レンジ・レジスタ１３１の第１セル・レンジ部へ、第１セルＣ１がオーナーである第１ＰＣＩメモリ空間１１０（図３参照）の最下位アドレス“Ｘ１”および最上位アドレス“Ｘ１＋α１”を設定する場合（図６の初期化ｉｚ１）、バス番号を“ＢＵＳＮＯ１”とする図７で示されるＰＣＩコンフィグレーション・アドレスｐｃａを書き込み先アドレスとして指定し、そのアドレスに対して値を書き込む。また、オンライン・システム０００にまだ組み込まれていない予備セルＣ３に対しても、ＢＩＯＳ００は、バス番号“ＢＵＳＮＯＡ”をアサインする。しかし、予備セルＣ３はオンライン・システム０００にまだ組み込まれていないため、ＢＩＯＳ００は、ＰＣＩコンフィグレーション・アドレスｐｃａを使って、予備セルＣ３を初期化することはできない。例えば、図６において、ＢＩＯＳ００は、予備セルＣ３に割り当てた“ＢＵＳＮＯＡ”をバス番号とする図７で示されるＰＣＩコンフィグレーション・アドレスｐｃａを書き込み先のアドレスとして指定し、そのアドレスに対して値を書き込むことで、予備セルＣ３上のチップセット３３に対するレンジ・レジスタ群初期値設定（図６のシャドウィングｓｗ１およびシャドウィングｓｗ２）を行うが、この設定が破棄されることを意味している（図６のディスカードｄｃ１およびディスカードｄｃ２）。これは、一般的なＰＣＩ仕様で規定されたＰＣＩコンフィグレーション・アクセス・メカニズムに準じた振る舞いである。
【００８１】
図９を参照すると、オンライン・システム０００の立ち上げ時に、ＢＩＯＳ００が、第１セルＣ１へバス番号“ＢＵＳＮＯ１”を、第２セルＣ２へバス番号“ＢＵＳＮＯ２”をアサインすることによって、各チップセット１３および２３が持つレンジ・レジスタ群が、セル・コンフィグレーション空間ｃｃｓにマッピングされることを表している。オンライン・システム０００の立ち上げ時に、ＢＩＯＳ００が、図２で示されたレンジ・レジスタ群初期値を、図６で示されたレンジ・レジスタ群初期値設定処理を用いて、第１セルＣ１上のチップセット１３が持つレンジ・レジスタ群，および第２セルＣ２上のチップセット２３が持つレンジ・レジスタ群に設定すると、セル・コンフィグレーション空間ｃｃｓにマッピングされた、ＰＣＩメモリ・レンジ・レジスタ１３１および１３２，ＰＣＩ・ＩＯレンジ・レジスタ１３２および２３２，割り込みレンジ・レジスタ１３３および２３３などのレンジ・レジスタ群に値が設定されて保持される。
【００８２】
図１０を参照すると、仮想セル・テーブルｖｃｔが装備されている。仮想セル・テーブルｖｃｔは、物理セル番号，仮想セル・フラグおよびバス番号からなる複数のエントリで構成されている。ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、オンライン・システム０００にまだ組み込まれていないセルを仮想セルＣＡと定義し、各仮想セルＣＡに対して仮想バス番号をアサインする。例えば、図１において、予備セルＣ３がオンライン・システム０００にまだ組み込まれていないため、これを仮想セルＣＡと定義して、図８において、予備セルＣ３に対して割り当てたバス番号“ＢＵＳＮＯＡ”と同じ値“ＢＵＳＮＯＡ”を、仮想バス番号として仮想セルＣＡにアサインする。このように、ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、仮想セル・テーブルｖｃｔを作成する。
【００８３】
図１１を参照すると、仮想コンフィグレーション・アドレスｖｃａの形式が示されている。図１１で示される仮想コンフィグレーション・アドレスｖｃａと、図７で示されるＰＣＩコンフィグレーション・アドレスｐｃａとは、同じ形式である。ＢＩＯＳ００は、オンライン・システム０００にまだ組み込まれていない予備セルＣ３を仮想セルＣＡと定義して、仮想バス番号“ＢＵＳＮＯＡ”をアサインする。そして、ＢＩＯＳ００は、仮想バス番号を“ＢＵＳＮＯＡ”とする仮想コンフィグレーション・アドレスｖｃａを使って、仮想セルＣＡ上の仮想チップセットＡ３を制御することができる。
【００８４】
そして、図６において、ＢＩＯＳ００は、オンライン・システム０００にまだ組み込まれていない予備セルＣ３に割り当てた“ＢＵＳＮＯＡ”をバス番号とする図７で示されるＰＣＩコンフィグレーション・アドレスｐｃａを形式としたアドレスを書き込み先アドレスとして指定し、そのアドレスに対して値を書き込むことで、予備セルＣ３上のチップセット３３に対するレンジ・レジスタ群初期値設定（図６のシャドウィングｓｗ１およびシャドウィングｓｗ２）を行うが、このとき、これらシャドウィングが破棄され（図６のディスカードｄｃ１およびディスカードｄｃ２）、次のセルのレンジ・レジスタ群初期値設定に移る前に、値の書き込み先である、“ＢＵＳＮＯＡ”をバス番号とする、図７におけるＰＣＩコンフィグレーション・アドレスｐｃａを形式とした書き込み先アドレスと、レンジ・レジスタ群初期値とを盗み取る。
【００８５】
次に、ＢＩＯＳ００は、仮想セル・テーブルｖｃｔを参照して、仮想セルＣＡ上の仮想チップセットＡ３に割り当てた仮想バス番号“ＢＵＳＮＯＡ”を入手して、その仮想バス番号“ＢＵＳＮＯＡ”をバス番号とする、仮想コンフィグレーション・アドレスｖｃａ（図１１参照）を形式とした仮想セル・コンフィグレーション・アドレスｖｃｃａを生成する。
【００８６】
続いて、ＢＩＯＳ００は、前記盗み取ったＰＣＩコンフィグレーション・アドレスｐｃａ（図７参照）を形式とした書き込み先アドレスと、前記生成した仮想コンフィグレーション・アドレスｖｃａ（図１１参照）を形式とした仮想セル・コンフィグレーション・アドレスｖｃｃａとを比較し、２つのアドレスが一致することを認識すると、前記盗み取った予備セルＣ３上のチップセット３３に対するレンジ・レジスタ群初期値を、仮想セルＣＡ上の仮想チップセットＡ３に割り当てた“ＢＵＳＮＯＡ”を仮想バス番号とする、仮想コンフィグレーション・アドレスｖｃａ（図１１参照）を形式とした仮想セル・コンフィグレーション・アドレスｖｃｃａを書き込み先アドレスとして、そのアドレスに対して書き込む。
【００８７】
このようにして、ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、図２で示されるレンジ・レジスタ群初期値を、第１セルＣ１上のチップセット１３が持つレンジ・レジスタ群，および第２セルＣ２上のチップセット２３が持つレンジ・レジスタ群に設定すると同時に、仮想セルＣＡ上の仮想チップセットＡ３が持つレンジ・レジスタ群に対しても同様に設定する。
【００８８】
図１２を参照すると、予備セルＣ３がオンライン・システム０００にまだ組み込まれていないため、これを仮想セルＣＡと定義して、図８において予備セルＣ３に対して割り当てたバス番号“ＢＵＳＮＯＡ”と同じ値である、仮想バス番号“ＢＵＳＮＯＡ”を仮想セルＣＡへアサインすることによって、仮想チップセットＡ３が持つレンジ・レジスタ群が、仮想セル・コンフィグレーション空間ｖｃｃｓへマッピングされることを表している。オンライン・システム０００の立ち上げ時に、ＢＩＯＳ００が、図２で示されたレンジ・レジスタ群初期値を、仮想セルＣＡ上の仮想チップセットＡ３が持つレンジ・レジスタ群に設定すると、図１２に示す仮想セル・コンフィグレーション空間ｖｃｃｓにマッピングされた、ＰＣＩメモリ・レンジ・レジスタＡ３１，ＰＣＩ・ＩＯレンジ・レジスタＡ３２，割り込みレンジ・レジスタＡ３３などのレンジ・レジスタ群に値が設定されて保持される。
【００８９】
図１を参照すると、第１の実施の形態では、サービス・プロセッサＢと、サービス・プロセッサＢ上で動作するサービス・プロセッサ・ファームウェアＢ１とが装備されている。サービス・プロセッサ・ファームウェアＢ１は、オンライン・システム０００に対して、ＢＩＯＳ００のメモリ１２および２２上へのアップロード，予備セルＣ３の組み込みなどの構成制御などを行う。また、サービス・プロセッサ・ファームウェアＢ１は、予備システム９９９に対して、ＢＩＯＳ０１のメモリ３２へのアップロードなどを行う。さらに、サービス・プロセッサ・ファームウェアＢ１は、予備システム９９９を構成している予備セルＣ３上のＣＰＵ３１上で動作するＢＩＯＳ０１に対して、オンライン・システム０００が装備している仮想セルＣＡを参照するための手段を提供する。例えば、図１における仮想セルＣＡ上の仮想チップセットＡ３が持つレンジ・レジスタ群がマッピングされている、仮想セル・コンフィグレーション空間ｖｃｃｓ（図１２参照）が、オンライン・システム０００において、さらに、メモリ１２および２２上にマッピングされている場合、サービス・プロセッサ・ファームウェアＢ１は、予備セルＣ３をオンライン・システム０００へ組み込む前に、オンライン・システム０００のメモリ１２および２２上にマッピングされた、仮想セル・コンフィグレーション空間ｖｃｃｓ（図１２参照）を、予備セルＣ３が持つメモリ３２の所定領域へコピーする。これにより、ＢＩＯＳ０１は、そのメモリ３２の所定領域を参照することで、仮想セル・コンフィグレーション空間ｖｃｃｓを参照することができる。
【００９０】
そして、予備システム９９９を構成する予備セルＣ３のＣＰＵ３１上で動作するＢＩＯＳ０１は、サービス・プロセッサ・ファームウェアＢ１が予備セルＣ３上のメモリ３２の所定領域へコピーした仮想セル・コンフィグレーション空間ｖｃｃｓを参照して、予備セルＣ３上のチップセット３３が持つＰＣＩメモリ・レンジ・レジスタ３３１，ＰＣＩ・ＩＯレンジ・レジスタ３３２，割り込みレンジ・レジスタ３３３などのレンジ・レジスタ群に対して、設定しておくべきレンジ・レジスタ群初期値（図２で示されるレンジ・レジスタ群初期値）を取得する。次に、ＢＩＯＳ０１は、それらレンジ・レジスタ群初期値を、予備セルＣ３上のチップセット３３が持つＰＣＩメモリ・レンジ・レジスタ３３１，ＰＣＩ・ＩＯレンジ・レジスタ３３２，割り込みレンジ・レジスタ３３３などのレンジ・レジスタ群に設定する。そして、ＢＩＯＳ０１は、予備セルＣ３がオンライン・システム０００へ組み込み可能であることをサービス・プロセッサ・ファームウェアＢ１へ通知する。
【００９１】
サービス・プロセッサ・ファームウェアＢ１は、通知を受けると、予備セルＣ３をオンライン・システム０００へ組み込む。
【００９２】
このようにして、図１で示された第１の実施の形態に係るリソース・ルーティング方式を採用したコンピュータ・システムであるオンライン・システム０００において、仮想セルＣＡを定義して、仮想セルＣＡ上の仮想チップセットＡ３が持つレンジ・レジスタ群を仮想セル・コンフィグレーション空間ｖｃｃｓ（図１２参照）へマッピングして、予備セルＣ３をオンライン・システム０００へ組み込むときに、チップセット３３のレンジ・レジスタ群に設定しておくべきレンジ・レジスタ群初期値（図２で示されるレンジ・レジスタ群初期値）を仮想セル・コンフィグレーション空間ｖｃｃｓに保持して、仮想セル・コンフィグレーション空間ｖｃｃｓが、オンライン・システム０００を構成している第１セルＣ１および第２セルＣ２が持つメモリ１２および２２上にマッピングされている場合、サービス・プロセッサ・ファームウェアＢ１が、メモリ１２および２２上にマッピングされた仮想セル・コンフィグレーション空間ｖｃｃｓを、予備セルＣ３上のチップセット３３が持つメモリ３２の所定領域へコピーして、ＢＩＯＳ０１が、その所定領域を参照することで、仮想セル・コンフィグレーション空間ｖｃｃｓを参照可能として、予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に対して設定しておくべきレンジ・レジスタ群初期値（図２で示されるレンジ・レジスタ群初期値）を取得して、それらレンジ・レジスタ群初期値を、予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に設定することで、予備セルＣ３をオンライン・システム０００へ組み込み可能とするための、ＣＰＵ，メモリ，およびそれらを制御するチップセットを搭載した予備セルＣ３を、ＯＳが動作している状態で、ＯＳをシャットダウンあるいは停止すること無く、すなわちオンラインで増設して組み込み可能とするためのチップセット初期化方式を提案するものである。
【００９３】
次に、このように構成された第１の実施の形態に係るチップセット初期化方式の全体の動作について、図１３，図１４，および図１５のフローチャートを参照して詳細に説明する。
【００９４】
図１３は、ＢＩＯＳ００による物理セル番号・バス番号対応表ｃｂｔ（図８参照）を作成するためのフローチャートを示す。
【００９５】
ＢＩＯＳ００は、オンライン・システム０００に組み込み可能な全てのセルに関して、処理を繰り返す（図１３のステップＳ１０１）。
【００９６】
例えば，ＢＩＯＳ００は、第１セルＣ１に対して、図８で示されるバス番号“ＢＵＳＮＯ１”をアサインする（図１３のステップＳ１０２）。同様にして、ＢＩＯＳ００は、第２セルＣ２に対しても、図８で示されるバス番号“ＢＵＳＮＯ２”をアサインする（図１３のステップＳ１０２）。また、ＢＩＯＳ００は、予備セルＣ３はオンライン・システム０００にまだ組み込まれていないが、予備セルＣ３に対しても、バス番号“ＢＵＳＮＯＡ”をアサインする（図１３のステップＳ１０２）。このとき、予備セルＣ３は、オンライン・システム０００にまだ組み込まれていないため、“ＢＵＳＮＯＡ”をバス番号とするＰＣＩコンフィグレーション・アドレスｐｃａ（図７参照）を使って、予備セルＣ３を制御することはできない。
【００９７】
次に、ＢＩＯＳ００は、オンライン・システム０００に組み込み可能な全てのセルに対して、バス番号をアサインしたか否かを確認する（図１３のステップＳ１０３）。まだ、オンライン・システム０００に組み込み可能な全てのセルに対してバス番号をアサインしていない場合、図１３のステップＳ１０１に戻る。
【００９８】
もし、オンライン・システム０００に組み込み可能な全てのセルに対してバス番号をアサインした場合、ＢＩＯＳ００は、物理セル番号・バス番号対応表作成処理を終了する（図１３のステップＳ１０４）。
【００９９】
このようにして、ＢＩＯＳ００は、オンライン・システム０００に組み込み可能な全てのセルに対してバス番号をアサインし、物理セル番号・バス番号対応表ｃｂｔ（図８参照）を作成して保持しておく。
【０１００】
図１４は、ＢＩＯＳ００による仮想セル・テーブルｖｃｔ（図１０参照）を作成するためのフローチャートを示す。
【０１０１】
ＢＩＯＳ００は、オンライン・システム０００に組み込み可能な全てのセルに関して、処理を繰り返す（図１４のステップＳ２０１）。
【０１０２】
まず、ＢＩＯＳ００は、セルがオンライン・システム０００に組み込まれているか否かを調べる（図１４のステップＳ２０２）。その調べ方は、予備セルＣ３の組み込みなどの構成制御をサービス・プロセッサ・ファームウェアＢ１が行うことから、サービス・プロセッサ・ファームウェアＢ１へセルが組み込まれている否かを問い合わせる方式、あるいは、サービス・プロセッサ・ファームウェアＢ１が持つセル構成情報テーブル（図示せず）などを参照する方式が考えられる。あるいは、ＢＩＯＳ００が、直接、セルが持つ物理的なレジスタなどを読んで、セルが組み込まれていた場合に読むことができる値が読めたか否かによって判断することもできる。
【０１０３】
そして、それら手法を用いて、予備セルＣ３がオンライン・システム０００にまだ組み込まれていないことを認識すると、ＢＩＯＳ００は、図１３のフローチャートで作成された物理セル番号・バス番号対応表ｃｂｔ（図８参照）を参照して、予備セルＣ３に対応するバス番号“ＢＵＳＮＯＡ”を取得する（図１４のステップＳ２０３）。
【０１０４】
次に、ＢＩＯＳ００は、そのバス番号“ＢＵＳＮＯＡ”を、仮想セル・テーブルｖｃｔ上の予備セルＣ３に対応するエントリの仮想バス番号フィールドへ登録する（図１４のステップＳ２０４）。
【０１０５】
続いて、ＢＩＯＳ００は、仮想セル・テーブルｖｃｔ上の予備セルＣ３に対応するエントリの仮想セル・フラグを“１”に設定する（図１４のステップＳ２０５）。この仮想セル・フラグが“１”に設定されることで、予備セルＣ３は仮想セルＣＡであることが示され、その仮想バス番号は、同一エントリ上の仮想バス番号フィールドに登録された“ＢＵＳＮＯＡ”であることが示される。
【０１０６】
次に、ＢＩＯＳ００は、オンライン・システム０００に組み込み可能な全てのセルに対して、図１４のステップＳ２０２からＳ２０５までの処理が行われたか否かを確認する（図１４のステップＳ２０６）。まだ、オンライン・システム０００に組み込み可能な全てのセルに対して処理が行われていない場合、図１４のステップＳ２０１に戻る。
【０１０７】
もし、オンライン・システム０００に組み込み可能な全てのセルに対して処理が行われた場合、ＢＩＯＳ００は、仮想セル・テーブル作成処理を終了する（図１４のステップＳ２０７）。
【０１０８】
このようにして、ＢＩＯＳ００は、オンライン・システム０００にまだ組み込まれていない予備セルＣ３に対してアサインされたバス番号“ＢＵＳＮＯＡ”を取得し、それを仮想バス番号として、仮想セル・テーブルｖｃｔ（図１０参照）に登録して保持しておく。
【０１０９】
図１５は、図６で示されたレンジ・レジスタ群初期値設定処理の動作を説明するフローチャートである。ＢＩＯＳ００は、図１５で示されるフローチャートに従って、図２で示されるレンジ・レジスタ群初期値を、各セル上のチップセットが持つレンジ・レジスタ群に設定する。
【０１１０】
図１５のフローチャートにおいて、ＢＩＯＳ００は、入力として、３つの値を受け取る。第１の入力は、値を設定すべきレンジ・レジスタ番号である。第２の入力は、そのレンジ・レジスタの中で値を設定すべきレジスタ・フィールドを指すレンジ・レジスタ内オフセット番号（セル番号）である。第３の入力は、そのレンジ・レジスタ内オフセットが示すレジスタ・フィールドへ設定すべきレンジ・レジスタ設定値である。例えば、図２で示されるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の初期値を、図１における各セル上のチップセットが持つＰＣＩメモリ・レンジ・レジスタ１３１および２３１へ設定する場合、第１の入力であるレンジ・レジスタ番号には、セル・コンフィグレーション空間ｃｃｓ（図９参照）にマッピングされているＰＣＩメモリ・レンジ・レジスタ１３１および２３１のレジスタ番号“Ｒ１”が渡される。例えば、図２で示されるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第１セルＣ１の列が示す初期値を、図１における各セル上のチップセットが持つＰＣＩメモリ・レンジ・レジスタ１３１および２３１の第１セルＣ１がオーナーであるＰＣＩメモリ・レンジを表すレジスタ・フィールドへ設定する場合、第２の入力であるレンジ・レジスタ内オフセット番号は、図２におけるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…内における第１セルＣ１の列へのオフセット番号が渡される。この場合、レンジ・レジスタ内オフセット番号は“１”である。これは、第１セルＣ１がオーナーである第１ＰＣＩメモリ空間１１０（図３参照）のレンジを、図１における各セル上のチップセットが持つＰＣＩメモリ・レンジ・レジスタ１３１および２３１の第１セルＣ１がオーナーであるＰＣＩメモリ・レンジを表すレジスタ・フィールドである第１セルＣ１の列へ、図２で示されるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第１セルＣ１の列が示す、第１セルＣ１がオーナーであるＰＣＩメモリ・レンジのレンジ・レジスタ群初期値を設定することを意味することから、第２の入力であるレンジ・レジスタ内オフセット番号は、第３の入力で渡されるレンジ・レジスタ設定値が示すリソース・レンジをオーナーとしているセル番号を表しているといえる。この場合、第３の入力として渡されるレンジ・レジスタ設定値としては、図２におけるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…内における第１セルＣ１の列に示された、第１セルＣ１がオーナーである図３における第１ＰＣＩメモリ空間１１０の最下位アドレス（ＢＯＴＴＯＭ）“Ｘ１”および最上位アドレス（ＴＯＰ）“Ｘ１＋α１”が渡される。
【０１１１】
ＢＩＯＳ００は、オンライン・システム０００に組み込み可能な全てのセルに関して、処理を繰り返す（図１５のステップＳ３０１）。
【０１１２】
まず、ＢＩＯＳ００は、図１３のフローチャートで示される手順によって作成された物理セル番号・バス番号対応表ｃｂｔ（図８参照）を参照することで、今からレンジ・レジスタ群初期値設定を行うセルへアサインされているバス番号を取得する。次に、ＢＩＯＳ００は、取得したバス番号をバス番号とする、ＰＣＩコンフィグレーション・アドレスｐｃａ（図７参照）の形式に従ったセル・コンフィグレーション・アドレスを生成する（図１５のステップＳ３０２）。このアドレスは、セル・コンフィグレーション空間ｃｃｓ（図９参照）を指している。例えば、図１における第１セルＣ１に対してレンジ・レジスタ群初期値設定を行う場合、ＢＩＯＳ００は、物理セル番号・バス番号対応表ｃｂｔを参照してバス番号“ＢＵＳＮＯ１”を取得する。次に、ＢＩＯＳ００は、バス番号を“ＢＵＳＮＯ１”として持つセル・コンフィグレーション・アドレスを生成する。そして、第１の入力として、ＰＣＩメモリ・レンジ・レジスタ１３１および２３１のレジスタ番号“Ｒ１”が渡された場合、セル・コンフィグレーション空間ｃｃｓを参照すると、そのＰＣＩメモリ・レンジ・レジスタ１３１に対応するデバイス番号は“Ｄ１”、ファンクション番号は“Ｆ１”であることから、さらに、バス番号を“ＢＵＳＮＯ１”、デバイス番号を“Ｄ１”、ファンクション番号を“Ｆ１”、レジスタ番号を“Ｒ１”として持つセル・コンフィグレーション・アドレスを生成する。さらに、ＢＩＯＳ００は、第２の入力で渡されたレンジ・レジスタ内オフセット番号を、生成されたセル・コンフィグレーション・アドレスのレジスタ番号へプラスする。例えば、図２で示されるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第１セルＣ１の列が示す初期値を、図１における各セル上のチップセットが持つＰＣＩメモリ・レンジ・レジスタ１３１および２３１の第１セルＣ１がオーナーであるＰＣＩメモリ・レンジを表すレジスタ・フィールドへ設定する場合、第２の入力として渡されるレンジ・レジスタ内オフセット番号は、図２におけるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…内における第１セルＣ１の列へのオフセットである“１”であることから、生成されたセル・コンフィグレーション・アドレスへ“１”をプラスする。
【０１１３】
次に、ＢＩＯＳ００は、生成されたセル・コンフィグレーション・アドレスを書き込み先アドレスとして指定して、第３の入力で渡されたレンジ・レジスタ設定値を書き込む（図１５のステップＳ３０３）。
【０１１４】
続いて、ＢＩＯＳ００は、オンライン・システム０００に組み込み可能な全てのセルに対して、レンジ・レジスタ群初期値設定処理が行われたか否かを確認する（図１５のステップＳ３０４）。まだ、オンライン・システム０００に組み込み可能な全てのセルに対して処理が行われていない場合、図１５のステップＳ３０１に戻る。
【０１１５】
もし、オンライン・システム０００に組み込み可能な全てのセルに対して処理が行われた場合、ＢＩＯＳ００は、レンジ・レジスタ群初期値設定処理を終了する（図１５のステップＳ３０５）。
【０１１６】
このようにして、ＢＩＯＳ００は、オンライン・システム０００に組み込み可能な全てのセル上のチップセットが持つレンジ・レジスタ群に対して、レンジ・レジスタ群初期値設定を行う。
【０１１７】
ここで、図１５のステップＳ３０３で行われるレンジ・レジスタ群初期値書き込みの動作に関して、補足する。
【０１１８】
例えば、第１セルＣ１に対してレンジ・レジスタ群初期値書き込みを行う場合、セル番号は“１”である。図２で示されるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第１セルＣ１の列が示す初期値を、図１における各セル上のチップセットが持つＰＣＩメモリ・レンジ・レジスタ１３１および２３１の第１セルＣ１がオーナーであるＰＣＩメモリ・レンジを表すレジスタ・フィールドへ設定する場合、第２の入力であるレンジ・レジスタ内オフセット番号は、図２におけるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…内における第１セルＣ１の列へのオフセット番号“１”が渡される。この場合、セル番号“１”とレンジ・レジスタ内オフセット番号“１”とは一致することから、今から行うレンジ・レジスタ群初期値設定処理は、第３の入力で渡されるレンジ・レジスタ設定値が指すリソース・レンジを、オーナーである第１セルＣ１に対してアサインする処理であるといえる（図１５の補足ステップＳ３０３ａ）。この処理は、図６における、ＢＩＯＳ００による第１セルＣ１上のチップセット１３が持つＰＣＩメモリ・レンジ・レジスタ１３１の第１セル・レンジへレンジ・レジスタ設定値を書き込む処理に相当する（図６の初期化ｉｚ１）。
【０１１９】
また、例えば、第２セルＣ２に対してレンジ・レジスタ群初期値書き込みを行う場合、セル番号は“２”である。図２で示されるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第１セルＣ１の列が示す初期値を、図１における各セル上のチップセットが持つＰＣＩメモリ・レンジ・レジスタ１３１および２３１の第１セルＣ１がオーナーであるＰＣＩメモリ・レンジを表すレジスタ・フィールドへ設定する場合、レンジ・レジスタ内オフセット番号は、図２におけるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…内における第１セルＣ１の列へのオフセット番号“１”が渡される。この場合、セル番号“２”とレンジ・レジスタ内オフセット番号“１”とは一致しないことから、今から行うレンジ・レジスタ群初期値設定処理は、第３の入力で渡されるレンジ・レジスタ設定値が指すリソース・レンジを、非オーナーである第２セルＣ２のレンジ・レジスタへ設定する処理（シャドウィング）であるといえる（図１５の補足ステップＳ３０３ｂ）。この処理は、図６における、ＢＩＯＳ００による第２セルＣ２上のチップセット２３が持つＰＣＩメモリ・レンジ・レジスタ２３１の第１セル・レンジへレンジ・レジスタ設定値を書き込む処理に相当する（図６の第２セルＣ２上のチップセット２３に対するシャドウィングｓｗ１）。
【０１２０】
ここで、図１５のステップＳ３０３で行われるレンジ・レジスタ群初期値書き込みが、図１５の補足ステップＳ３０３ｂで説明される、非オーナーであるセルのレンジ・レジスタへのシャドウィングであり、さらに、例えば、図１においてオンライン・システム０００にまだ組み込まれていない予備セルＣ３に対するシャドウィングであった場合、一般的なＰＣＩ仕様で規定されたＰＣＩコンフィグレーション・アクセス・メカニズムに従い、このシャドウィングは破棄される。これは、図６において、ＢＩＯＳ００による予備セルＣ３上のチップセット３３に対するシャドウィングｓｗ１が破棄される（ディスカードｄｃ１）ことに相当する。
【０１２１】
本実施の形態における、ＣＰＵ３１，メモリ３２，およびそれらを制御するチップセット３３を搭載した予備セルＣ３を、ＯＳが動作している状態で、ＯＳをシャットダウンあるいは停止すること無く、すなわちオンラインで増設して組み込み可能とするためのチップセット初期化方式では、新たに、この破棄される（ディスカードされる）、オンライン・システム０００にまだ組み込まれていないセル（予備セルＣ３）に対するレンジ・レジスタ群初期値書き込みを盗み取り、盗み取った初期値を、仮想セルＣＡがマッピングされた、仮想セル・コンフィグレーション空間ｖｃｃｓ（図１２参照）上のレンジ・レジスタ位置へ書き込み、保持しておくための仕組みを、図１５のステップＳ３０３（レンジ・レジスタへのレンジ・レジスタ群初期値書き込み）の前に追加する。これは、図６における、仮想セルＣＡ上の仮想チップセットＡ３に対するレンジ・レジスタ群初期値書き込み（スヌープｓｎ１）を実現するための新たな仕組みである。
【０１２２】
図１６のフローチャートを用いて、本実施の形態で追加する新たな仕組みを説明する。図１６のフローチャートで実現される仮想レンジ・レジスタ群初期値設定処理（レンジ・レジスタ群初期値設定処理のスヌープ処理）は、図１５のステップＳ３０３を実行する前に実行される。従って、図１６のフローチャートで示される処理は、図１５のステップＳ３０３の前に追加される。そして、図１６のフローチャートにおいて、ＢＩＯＳ００は、入力として、４つの値を受け取る。第１の入力は、レンジ・レジスタ群初期値の書き込み先であるセル番号である。第２の入力は、値を設定すべきレンジ・レジスタ番号である。第３の入力は、そのレンジ・レジスタの中で値を設定すべきレジスタ・フィールドを指すレンジ・レジスタ内オフセット番号（セル番号）である。第４の入力は、そのレンジ・レジスタ内オフセットへ設定すべきレンジ・レジスタ設定値である。
【０１２３】
例えば、図２で示されるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第１セルＣ１の列が示すレンジ・レジスタ群初期値、つまり、図１の第１セルＣ１がオーナーである第１ＰＣＩメモリ空間１１０（図３参照）のレンジを表す値を、図１のオンライン・システム０００にまだ組み込まれていない予備セルＣ３上のチップセット３３におけるＰＣＩメモリ・レンジ・レジスタ３３１の第１セル・レンジ・フィールドに設定する場合、第１の入力として、セル番号“３”が渡される。第２の入力として、レンジ・レジスタ番号“Ｒ１”が渡される（図９および図１２参照）。第３の入力として、レンジ・レジスタ内オフセット番号“１”が渡される（図２参照）。第４の入力として、図２で示されるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第１セルＣ１の列が示すレンジ・レジスタ設定値が渡される。
【０１２４】
まず、ＢＩＯＳ００は、図１４のフローチャートで示される仮想セル・テーブル作成処理によって作成された仮想セル・テーブルｖｃｔ（図１０参照）を参照して、第１の入力で渡されたセル番号に対応するセルが、仮想セルＣＡか否かを判断する（図１６のステップＳ４０１）。例えば、第１の入力として、図１におけるオンライン・システム０００にまだ組み込まれていない予備セルＣ３に対応するセル番号“３”が渡された場合、ＢＩＯＳ００は、仮想セル・テーブルｖｃｔの第３セルＣ３のエントリを参照する。始めに、ＢＩＯＳ００は、エントリ内の仮想セル・フラグを参照する。図１０の仮想セル・テーブルｖｃｔを参照すると、第３セルＣ３のエントリの仮想セル・フラグは“１”（＝このセルはオンライン・システム０００にまだ組み込まれていない、つまり仮想セルＣＡ）が設定されているため、ＢＩＯＳ００は、予備セルＣ３は仮想セルＣＡであると判断する。次に、ＢＩＯＳ００は、第３セルＣ３のエントリのバス番号フィールドを参照して、仮想バス番号を取得する。図１０の仮想セル・テーブルｖｃｔを参照すると、第３セルＣ３のエントリのバス番号フィールドには、仮想バス番号“ＢＵＳＮＯＡ”が登録されているため、ＢＩＯＳ００は、予備セルＣ３に対応する仮想セルＣＡにアサインされている仮想バス番号“ＢＵＳＮＯＡ”を取得する。もし、仮想セル・テーブルｖｃｔ（図１０参照）のあるセルのエントリ内の仮想セル・フラグが“０”（＝このセルはオンライン・システム０００に組み込まれている）が設定されていた場合、ＢＩＯＳ００は、そのセルが仮想セルＣＡではないと判断して、仮想レンジ・レジスタ群初期値設定処理を終了する（図１６のステップＳ４０４）。
【０１２５】
次に、第１の入力で渡されたセル番号を持つセルが仮想セルＣＡであると判断すると、ＢＩＯＳ００は、仮想コンフィグレーション・アドレスｖｃａ（図１１参照）の形式に従って、仮想セル・コンフィグレーション空間ｖｃｃｓ（図１２参照）を示す仮想セル・コンフィグレーション・アドレスｖｃｃａを生成する（図１６のステップＳ４０２）。例えば、第１の入力として予備セルＣ３のセル番号“３”が渡された場合、図１６のステップＳ４０１によって、予備セルＣ３に対応する仮想バス番号“ＢＵＳＮＯＡ”が取得されている。第２の入力としてＰＣＩメモリ・レンジ・レジスタ３３１のレジスタ番号“Ｒ１”が渡された場合、仮想セル・コンフィグレーション空間ｖｃｃｓを参照すると、ＰＣＩメモリ・レンジ・レジスタ３３１に対応するデバイス番号は“Ｄ１”、ファンクション番号は“Ｆ１”である。この場合、バス番号を“ＢＵＳＮＯＡ”、デバイス番号を“Ｄ１”、ファンクション番号を“Ｆ１”、レジスタ番号を“Ｒ１”として持つ仮想セル・コンフィグレーション・アドレスｖｃｃａが生成される。さらに、ＢＩＯＳ００は、第３の入力で渡されたレンジ・レジスタ内オフセット番号を、生成した仮想セル・コンフィグレーション・アドレスｖｃｃａのレジスタ番号“Ｒ１”へプラスする。
【０１２６】
次に、ＢＩＯＳ００は、図１６のステップＳ４０２で生成された仮想セル・コンフィグレーション・アドレスｖｃｃａを書き込み先アドレスとして指定して、第４の入力で渡されたレンジ・レジスタ設定値を書き込む（図１６のステップＳ４０３）。この処理は、図６における、ＢＩＯＳ００による仮想セルＣＡ上のチップセットＡ３が持つＰＣＩメモリ・レンジ・レジスタＡ３１の第１セル・レンジへレンジ・レジスタ設定値を書き込む処理に相当する（図６のスヌープｓｎ１）。
【０１２７】
最後に、ＢＩＯＳ００は、仮想レンジ・レジスタ群初期値設定処理を終了する（図１６のステップＳ４０４）。
【０１２８】
このようにして、ＢＩＯＳ００は、オンライン・システム０００にまだ組み込まれていない予備セルＣ３が対応する仮想セルＣＡ上の仮想チップセットＡ３が持つレンジ・レジスタ群がマッピングされた仮想セル・コンフィグレーション上のレンジ・レジスタ群に対して、レンジ・レジスタ群初期値設定（スヌープ）を行う。
【０１２９】
次に、図１６のステップＳ４０３において、仮想セル・コンフィグレーション上のレンジ・レジスタ群への初期値書き込み（スヌープ）が行われると、実際に、レンジ・レジスタ群初期値がどこに設定されて保持されるかに関して、図１７および図１８のフローチャートを用いて説明する。
【０１３０】
図１７は、仮想セル・コンフィグレーション空間ｖｃｃｓ（図１２参照）が、メモリ内開始アドレス“Ｘ”をベース・アドレスとするメモリ上にマッピングされたメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓを示す。例えば、図１における予備セルＣ３が対応する仮想セル・コンフィグレーション空間ｖｃｃｓ（図１２参照）は、メモリ内開始ベース・アドレス“Ｘ”から、予備セルＣ３のセル番号“３”をオフセットとするメモリ上の領域にマッピングされている（図１７の第３セルＣ３用のメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ）。
【０１３１】
例えば、図１６のステップＳ４０３において、図１６のステップＳ４０２で生成された仮想セル・コンフィグレーション・アドレスｖｃｃａを書き込み先アドレスとして指定して、レンジ・レジスタ設定値を書き込むと、図１７で示されるメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓの所定のレンジ・レジスタ部に書き込まれ、そこで保持される。
【０１３２】
図１８のフローチャートを用いて、レンジ・レジスタ群初期値が、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ（図１７参照）に書き込まれる仕組みを説明する。なお、図１８のフローチャートで示される処理は、図１６のステップＳ４０３において行われるレンジ・レジスタ群初期値書き込みを具体的に説明したものである。すなわち、図１６のステップＳ４０３の処理を、図１８のフローチャートに置き換えることができる。
【０１３３】
図１８のフローチャートにおいて、ＢＩＯＳ００は、入力として、２つの値を受け取る。第１の入力は、図１６のステップＳ４０２で生成された仮想セル・コンフィグレーション・アドレスｖｃｃａである。第２の入力は、設定すべきレンジ・レジスタ設定値である。
【０１３４】
始めに、ＢＩＯＳ００は、第１の入力で渡された仮想セル・コンフィグレーション・アドレスｖｃｃａから、仮想バス番号を取り出す。具体的には、仮想セル・コンフィグレーション・アドレスｖｃｃａは、仮想コンフィグレーション・アドレスｖｃａ（図１１参照）の形式に従っているため、バス番号フィールドのビット１６からビット２３までの８ビットだけを取り出すことによって、仮想バス番号を取り出すことができる。次に、ＢＩＯＳ００は、その仮想バス番号が対応するセル番号を取得する。具体的には、仮想セル・テーブルｖｃｔ（図１０参照）を検索してセル番号を取得する。例えば、仮想バス番号が“ＢＵＳＮＯＡ”であった場合、仮想セル・テーブルｖｃｔを検索すると、仮想バス番号“ＢＵＳＮＯＡ”が対応するセルは、第３セルＣ３であること分かる。このようにして、ＢＩＯＳ００は、第１の入力で渡された仮想セル・コンフィグレーション・アドレスｖｃｃａから仮想バス番号を取り出し、仮想セル・テーブルｖｃｔを検索することによって、その仮想バス番号が対応するセル番号を取得する（図１８のステップＳ５０１）。
【０１３５】
次に、ＢＩＯＳ００は、仮想セル・コンフィグレーション空間ｖｃｃｓ（図１２参照）がメモリ上にマッピングされているメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ（図１７参照）のメモリ内開始ベース・アドレス“Ｘ”と、図１８のステップＳ５０１で取得したセル番号であるオフセット値とからベース・アドレスを計算する（図１８のステップＳ５０２）。具体的には、仮想セル・コンフィグレーション空間ｖｃｃｓ（図１２参照）は、仮想コンフィグレーション・アドレスｖｃａ（図１１参照）の形式に従った仮想セル・コンフィグレーション・アドレスｖｃｃａで指すことができ、各仮想セルＣＡは１つの仮想バス番号を持つことから、各仮想セルＣＡがメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ（図１７参照）へマッピングすることができる仮想コンフィグレーション・レジスタ・セットのサイズは、仮想コンフィグレーション・アドレスｖｃａ（図１１参照）のビット１６からビット２３までの８ビット（バス番号フィールド）を除いた、ビット１５からビット０までのビット数を用いて計算することができる。具体的には、ビット１５からビット０までのビット数は１６ビットであることから、各仮想セルＣＡがメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ（図１７参照）へマッピングすることができる仮想コンフィグレーション・レジスタ・セットのサイズは、２の１６乗、すなわち、６４キロバイトである。つまり、図１８のステップＳ５０１で取得したセル番号が第３セルＣ３であった場合、３×６４キロバイト＝１９２キロバイトがオフセット値となり、図１８のステップＳ５０２で計算されるベース・アドレスは、メモリ内開始ベース・アドレス“Ｘ”にオフセット値“１９２キロバイト”をプラスした値となる。
【０１３６】
次に、ＢＩＯＳ００は、第１の入力で渡された仮想セル・コンフィグレーション・アドレスｖｃｃａから、ビット１６からビット２３までの８ビット（バス番号フィールド）に対応する仮想バス番号を取り除いた値、すなわちビット１５からビット０までの値を、図１８のステップＳ５０２で計算されたベース・アドレスにプラスする。具体的には、第１の入力で渡された仮想セル・コンフィグレーション・アドレスｖｃｃａは、仮想コンフィグレーション・アドレスｖｃａ（図１１参照）の形式に従っており、例えば、仮想セル・コンフィグレーション空間ｖｃｃｓ（図１２参照）のＰＣＩメモリ・レンジ・レジスタＡ３１を指しており、さらに、そのＰＣＩメモリ・レンジ・レジスタＡ３１の中において、図２で示されるＰＣＩメモリ・レンジ・レジスタ１３１，２３１，３３１，…の第１セルＣ１の列を示していた場合、バス番号は“ＢＵＳＮＯＡ”、デバイス番号は“Ｄ１”、ファンクション番号は“Ｆ１”、レジスタ番号は“Ｒ１”、レジスタ内オフセット番号は“１”であるので、バス番号“ＢＵＳＮＯＡ”を除いた、ビット１５からビット０までの値、すなわち、デバイス番号“Ｄ１”、ファンクション番号“Ｆ１”、レジスタ番号“Ｒ１”、レジスタ内オフセット番号“１”を持つ値を、図１８のステップＳ５０２で計算されたベース・アドレスにプラスする。このようにして計算された値を、書き込み先メモリ番地アドレスとする（図１８のステップＳ５０３）。
【０１３７】
次に、ＢＩＯＳ００は、図１８のステップＳ５０３で計算された書き込み先メモリ番地アドレスを書き込み先アドレスとして指定して、第２の入力で渡されたレンジ・レジスタ群初期値を書き込む（図１８のステップＳ５０４）。
【０１３８】
最後に、ＢＩＯＳ００は、メモリマップド仮想レンジ・レジスタ群初期値書き込み処理を終了する（図１８のステップＳ５０５）。
【０１３９】
このようにして、ＢＩＯＳ００は、仮想セル・コンフィグレーション空間ｖｃｃｓ（図１２参照）がマッピングされた、メモリ内開始アドレス“Ｘ”をベース・アドレスとするメモリ上にマッピングされたメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ（図１７参照）上のレンジ・レジスタ群へ、図２で示されるレンジ・レジスタ群初期値を書き込み、メモリ上で値を保持する。
【０１４０】
このようにして、図１において、ＢＩＯＳ００は、第１セルＣ１，第２セルＣ２，およびオンライン・システム０００にまだ組み込まれていない予備セルＣ３などの、オンライン・システム０００に組み込み可能な全てのセル上の各チップセットが持つレンジ・レジスタ群を初期化する過程において、オンライン・システム０００にまだ組み込まれていない予備セルＣ３上のチップセット３３に対するレンジ・レジスタ群初期値設定（シャドウィング）が破棄される（ディスカードされる）前に、それを盗み取り（スヌープ）、同時に、オンライン・システム０００にまだ組み込まれていない予備セルＣ３に対して仮想セルＣＡを定義して、仮想セルＣＡ上の仮想チップセットＡ３が持つレンジ・レジスタ群などがマッピングされた仮想セル・コンフィグレーション空間ｖｃｃｓをメモリの所定領域へマッピングすることで、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓを実装して、盗み取った（スヌープした）レンジ・レジスタ群初期値を、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ上の対応するレンジ・レジスタ位置に書き込んでメモリ上で保持する。
【０１４１】
すなわち、ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、仮想セルＣＡを定義して、オンライン・システム０００にまだ組み込まれていない予備セルＣ３上のチップセット３３に対するレンジ・レジスタ群初期値設定を、仮想セルＣＡ上のチップセットＡ３に対するレンジ・レジスタ群初期値設定へと置換することで、オンライン・システム０００にまだ組み込まれていない予備セルＣ３上のチップセット３３に対するレンジ・レジスタ群初期値設定を、まだ予備セルＣ３がオンライン・システム０００に組み込まれていない、オンライン・システム０００の立ち上げ時に完結させる（仮想セルＣＡがメモリ上にマッピングされたメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ上でレンジ・レジスタ群初期値を保持しておく）。
【０１４２】
そして、サービス・プロセッサ・ファームウェアＢ１は、予備セルＣ３をオンライン・システム０００へ組み込む前に、メモリ上に保持された予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に対する初期値（メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ上に保持されているレンジ・レジスタ群初期値）を、予備セルＣ３上のメモリ３２の所定領域へコピーする。そのコピーする領域は、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ（図１７参照）がマッピングされた領域と同様に、メモリ内開始ベース・アドレス“Ｘ”を開始アドレスとした領域であるか、あるいは予備セルＣ３上で動作するＢＩＯＳ０１がサービス・プロセッサ・ファームウェアＢ１へ予め指示しておいたメモリ領域である。
【０１４３】
予備セルＣ３上で動作するＢＩＯＳ０１は、メモリ３２の所定領域から予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に対する初期値を読み取り、それを、予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に設定する。そして、予備セルＣ３上で動作するＢＩＯＳ０１は、サービス・プロセッサ・ファームウェアＢ１に対して、予備セルＣ３のオンライン・システム０００への組み込みが可能である旨を通知する。
【０１４４】
サービス・プロセッサ・ファームウェアＢ１は、通知を受けると、予備セルＣ３をオンライン・システム０００へ組み込む。
【０１４５】
このとき、予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群には、オンライン・システム０００にすでに組み込まれている他のセルである第１セルＣ１および第２セルＣ２上のチップセット３１および３２が持つレンジ・レジスタ群が設定されたレンジ・レジスタ群初期値と同等な値が設定されているため、例えば、図５において、予備セルＣ３であった第３セルＣ３がオンライン・システム０００に組み込まれ、第３セルＣ３のＣＰＵ３１上で動作するＯＳから、図３における第２セルＣ２がオーナーである第２ＰＣＩメモリ空間２１０に対するＰＣＩメモリ・アクセスａｃ３が発行された場合（図５のＰＣＩメモリ・アクセスａｃ３）、第３セルＣ３のチップセット３３は、ＰＣＩメモリ・レジスタ３３１を参照して、ＰＣＩメモリ・アクセスａｃ３が、第２セルＣ２がオーナーとする第２ＰＣＩメモリ空間２１０に対するＰＣＩメモリ・アクセスであると判断して、ＰＣＩメモリ・アクセスａｃ３を第２セルＣ２上のチップセット２３へフォワードすることが可能である（図５のフォワードｆｗ３）。
【０１４６】
第１の実施の形態によれば、ＢＩＯＳ００が、オンライン・システム０００の立ち上げ時に決定したリソース・レンジのオーナーが示してあるレンジ・レジスタ群初期値を、予備セルＣ３をオンライン・システム０００へ組み込む前に、予備セルＣ３上で動作する別のＢＩＯＳ０１が参照でき、予備セルＣ３をオンライン・システム０００へ組み込む前に、ＢＩＯＳ００が、レンジ・レジスタ群初期値を予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群へ設定することで、予備セルＣ３をオンライン・システム０００へ組み込み可能な状態にすることができるので、ＯＳが動作している状態で、ＯＳをシャットダウンあるいは停止させることなく、ＣＰＵ，メモリ，およびそれらを制御するチップセットが搭載された予備セルＣ３を初期化して、予備セルＣ３をオンラインで増設して組み込むことができる。
【０１４７】
［第２の実施の形態］
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【０１４８】
図１７では、仮想セル・コンフィグレーション空間ｖｃｃｓを、メモリ内開始アドレス“Ｘ”をベース・アドレスとするメモリ上にマッピングした場合に実現される、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓを説明した。また、図１８では、オンライン・システム０００にまだ組み込まれていない予備セルＣ３上のチップセット３３に対するレンジ・レジスタ群初期値設定（シャドウィング）が破棄される（ディスカードされる）前に、それを盗み取り（スヌープ）、同時に、オンライン・システム０００にまだ組み込まれていない予備セルＣ３に対して仮想セルＣＡを定義して、その仮想セルＣＡ上の仮想チップセットＡ３が持つレンジ・レジスタ群などがマッピングされた仮想セル・コンフィグレーション空間ｖｃｃｓをさらにメモリ上へマッピングすることで、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓを実装して、その盗み取った（スヌープした）レンジ・レジスタ群初期値を、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ上の対応するレンジ・レジスタ位置に書き込んでメモリ上で保持する場合の、メモリマップド仮想レンジ・レジスタ群初期値書き込み処理を説明した。
【０１４９】
また、図１７を参照すると、各仮想セルＣＡは、１つの仮想バス番号を持つことから、各仮想セルＣＡがメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ（図１７参照）へマッピングすることができる仮想コンフィグレーション・レジスタ・セットのサイズは、仮想コンフィグレーション・アドレスｖｃａ（図１１参照）のビット１６からビット２３までの８ビット（バス番号フィールド）を除いた、ビット１５からビット０までのビット数を用いて計算することができる。具体的には、ビット１５からビット０までのビット数は１６ビットであることから、各仮想セルＣＡがメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ（図１７参照）へマッピングすることができる仮想コンフィグレーション・レジスタ・セットのサイズは、２の１６乗、すなわち、６４キロバイトである。もし、オンライン・システム０００が最大８枚のセルを搭載することができる場合、各セルが予備セルＣ３となった場合を考慮して、メモリ上に最大８つのメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓを用意しておく必要がある。この場合、１つが６４キロバイトであることから、８×６４キロバイト＝５１２キロバイトのメモリが、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓを実装するために消費されることになる。
【０１５０】
図１９において、このようなメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓを実装するための十分なメモリ容量を確保することができないコンピュータ・システムにおいて、メモリ消費容量を削減してメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓを実装するための方法を説明する。
【０１５１】
図１９を参照すると、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ（図１７参照）が圧縮された形でメモリ上に保持されている。例えば、ＢＩＯＳ００は、オンライン・システム０００の立ち上げ時に、予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に対する初期値を、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ（図１７参照）上の予備セルＣ３が対応する仮想コンフィグレーション・レジスタ・セット位置へ設定し終えると、その予備セルＣ３が対応するメモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓを圧縮して、それを、メモリ内開始アドレス“Ｚ”をベース・アドレスとする、圧縮された“メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ”を格納しておくための、圧縮された“メモリマップド仮想セル・コンフィグレーション空間ブロック群”領域ｃｍｖｃｃｓｂｇの中へコピーして保持する。次に、ＢＩＯＳ００は、メモリ内開始アドレス“Ｙ”をベース・アドレスとする、メモリマップド仮想セル・コンフィグレーション空間ポインタ・テーブルｍｖｃｃｓｐｔの予備セルＣ３に対応するエントリにコピー先アドレスを登録しておく。そして、ＢＩＯＳ００は、全ての予備セルＣ３に対して、この圧縮処理が終わると、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ（図１７参照）が消費しているメモリ領域を全て解放する。
【０１５２】
このようにして、ＢＩＯＳ００は、メモリ消費容量を削減しながら、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓを実装することが可能である。
【０１５３】
［第３の実施の形態］
これまで、オンライン・システム０００にまだ組み込まれていない予備セルＣ３上のチップセット３３に対するレンジ・レジスタ群初期値を、ＢＩＯＳ００自身が、破棄される前に、それを盗み取り、そのレンジ・レジスタ群初期値をメモリ上にマッピングされた仮想セル・コンフィグレーション空間ｖｃｃｓ上で保持する方式を述べてきたが、ここで、ハードウェアが自動的に盗み取り、それをハードウェアが実装する仮想セル・コンフィグレーション空間ｖｃｃｓ上で保持し、予備セルＣ３がオンライン・システム０００へ組み込まれると、レンジ・レジスタ群初期値が予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群へ自動的に設定される方式を説明する。
【０１５４】
図２０を参照すると、オンライン・システム０００には、各セル毎に、仮想セル・スイッチｖｃｓｗが装備されている。さらに、各セル毎に、仮想セルＣＡを装備している。例えば、図２０では、予備セルＣ３に対して仮想セル・スイッチｖｃｓｗが装備され、また、予備セルＣ３に対して仮想セルＣＡが装備され、仮想セルＣＡに対して仮想セル・コンフィグレーション空間ｖｃｃｓがマッピングされている。すなわち、図１２で示された仮想セル・コンフィグレーション・レジスタ・セットが、仮想セルＣＡの内部に装備されている。このとき、予備セルＣ３は、オンライン・システム０００にまだ組み込まれていないため、仮想セル・スイッチｖｃｓｗは、“ＯＮ”である。このとき、図６で示されるように、ＢＩＯＳ００が、予備セルＣ３に対応するバス番号“ＢＵＳＮＯＡ”をバス番号とする、図７で示されたセル・コンフィグレーション・アドレスを書き込み先アドレスとして指定して、図２で示されたレンジ・レジスタ群初期値を書き込むと（シャドウィングｓｗ１）、仮想セル・スイッチｖｃｓｗが“ＯＮ”であるため、予備セルＣ３上のチップセット３３に対するレンジ・レジスタ群初期値設定は破棄されず（ディスカードｄｃ１）、仮想セル・コンフィグレーション空間ｖｃｃｓがマッピングされている、仮想セルＣＡ上の仮想チップセットＡ３が装備しているレンジ・レジスタ群に値が設定され（スヌープｓｎ１）、そこで保持される。
【０１５５】
図２１を参照すると、予備セルＣ３がオンライン・システム０００へ組み込まれると、仮想セル・スイッチｖｃｓｗが“ＯＦＦ”となる。すると、仮想セル・コンフィグレーション空間ｖｃｃｓがマッピングされている、仮想セルＣＡ上の仮想チップセットＡ３が装備しているレンジ・レジスタ群が保持している、レンジ・レジスタ群初期値が、予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群へ自動的にコピーされる（図２１の自動コピーｃｐ１）。
【０１５６】
このようにして、図２０および図２１で示される予備セルＣ３への自動レンジ・レジスタ群初期値転送・設定処理では、図１に示した第１の実施の形態において、ＢＩＯＳ００が行っていた、予備セルＣ３上のチップセット３３に対するレンジ・レジスタ群初期値設定のスヌープ処理と、ＢＩＯＳ０１が予備セルＣ３を組み込む前に行っていた、仮想セルＣＡを参照してレンジ・レジスタ群初期値を取得して、予備セルＣ３上のチップセット３３が持つレンジ・レジスタ群に設定する処理とを、ハードウェアが自動的に行うことで、予備セルＣ３をオンライン・システム０００へ組み込み可能とする方式である。
【０１５７】
［第４の実施の形態］
また、これまで、オンライン・システム０００に組み込み可能な全てのセル上のチップセットが、同じレンジ・レジスタ群初期値を設定されて保持しなければならない、というチップセット要求仕様（要求仕様１）を持ったレンジ・レジスタ群の初期設定に関する、チップセット初期化方式（予備セル組み込み方式）を述べてきたが、本発明で提案する方式は、このようなチップセット要求仕様１を持たないレジスタの初期設定に関しても流用できる。
【０１５８】
例えば、図２２は、予備セルＣ３がオンライン・システム０００へ組み込まれた場合に、予備セルＣ３上の増設メモリ３２が、メモリ上のどのアドレス位置に置かれるかを示した図である。図２２を参照すると、予備セルＣ３上の増設メモリ３２は、最下位アドレス（ＢＯＴＴＯＭ）を“Ｚ３”、最上位アドレス（ＴＯＰ）を“Ｚ３＋α３”とするメモリ位置へ置かれることを示している。このように、メモリを増設する場合に、どのメモリ位置へ増設メモリを置くかが事前に決まっていたとき、例えば、図２２で示されるように、予備セルＣ３上の増設メモリ３２が、最下位アドレス（ＢＯＴＴＯＭ）を“Ｚ３”、最上位アドレス（ＴＯＰ）を“Ｚ３＋α３”とするメモリ位置へ増設されることが予定されていた場合、ＢＩＯＳ００は、その増設メモリ位置を意味する、最下位アドレス（ＢＯＴＴＯＭ）“Ｚ３”および最上位アドレス（ＴＯＰ）“Ｚ３＋α３”を、仮想セル・コンフィグレーション空間ｖｃｃｓ上の対応するレジスタ位置へ設定しておき、それを、メモリマップド仮想セル・コンフィグレーション空間ｍｖｃｃｓ上の対応するレジスタ位置で保持（メモリ上で保持）する。あるいは、図２０および図２１で実現されるハードウェアが実装する仮想セル・コンフィグレーション空間ｖｃｃｓ上のレジスタ位置で保持する。そして、予備セルＣ３をオンライン・システム０００へ組み込む際に、予備セルＣ３上で動作するＢＩＯＳ０１が、メモリ上の対応するレジスタ位置を参照して、予備セルＣ３上の増設メモリ３２を置くべきメモリ位置を取得して、それを、予備セルＣ３上の増設メモリ３２へ設定することで、図２２において、増設メモリ３２が、最下位アドレス（ＢＯＴＴＯＭ）を“Ｚ３”、最上位アドレス（ＴＯＰ）を“Ｚ３＋α３”とするメモリ位置へ置かれる（増設される）。
【０１５９】
あるいは、図２０および図２１で実現されるハードウェアによる自動コピー方式の場合は、予備セルＣ３をオンライン・システム０００へ組み込むと同時に、ハードウェアが、予備セルＣ３上の増設メモリ３２を置くべきメモリ位置を、ハードウェアが実装する仮想セル・コンフィグレーション空間ｖｃｃｓ上のレジスタ位置から取り出し、それを予備セルＣ３上の増設メモリ３２へ自動的に設定することで、図２２において、増設メモリ３２が、最下位アドレス（ＢＯＴＴＯＭ）を“Ｚ３”、最上位アドレス（ＴＯＰ）を“Ｚ３＋α３”とするメモリ位置へ置かれる（増設される）。
【０１６０】
【発明の効果】
第１の効果は、ＯＳが動作している状態で、ＯＳをシャットダウンあるいは停止させることなく、ＣＰＵ，メモリ，およびそれらを制御するチップセットが搭載された予備セルを初期化して、予備セルをオンラインで増設して組み込むことができることである。その理由は、ＢＩＯＳが、オンライン・システム０００の立ち上げ時に決定したリソース・レンジのオーナーが示してあるレンジ・レジスタ群初期値を、予備セルをオンライン・システムへ組み込む前に、予備セル上で動作する別のＢＩＯＳがそれを参照でき、予備セルをオンライン・システムへ組み込む前に、ＢＩＯＳが、レンジ・レジスタ群初期値を予備セル上のチップセットが持つレンジ・レジスタ群へ設定することで、予備セルをオンライン・システムへ組み込み可能な状態にすることができるからである。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るチップセット初期化方式の構成を示すブロック図である。
【図２】図１中のＢＩＯＳがチップセット仕様として全てのセル上のチップセットに対して設定することが要求されているレンジ・レジスタ群初期値を示す図である。
【図３】リソース・レンジ空間を示す図である。
【図４】レンジ・レジスタ参照によるリソース・ルーティングの動作概説図である。
【図５】予備セル組込み後のレンジ・レジスタ参照によるリソース・ルーティングの動作概説図である。
【図６】レンジ・レジスタ群初期値設定処理の動作概略図である。
【図７】ＰＣＩコンフィグレーション・アドレスを示す図である。
【図８】物理セル番号・バス番号対応表を示す図である。
【図９】セル・コンフィグレーション空間を示す図である。
【図１０】仮想セル・テーブルを示す図である。
【図１１】仮想コンフィグレーション・アドレスを示す図である。
【図１２】仮想セル・コンフィグレーション空間を示す図である。
【図１３】物理セル番号・バス番号対応表作成処理を示すフローチャートである。
【図１４】仮想セル・テーブル作成処理を示すフローチャートである。
【図１５】レンジ・レジスタ群初期値設定処理を示すフローチャートである。
【図１６】仮想レンジ・レジスタ群初期値設定処理を示すフローチャートである。
【図１７】メモリマップド仮想セル・コンフィグレーション空間を示す図である。
【図１８】メモリマップド仮想レンジ・レジスタ群初期値書き込み処理を示すフローチャートである。
【図１９】本発明の第２の実施の形態に係るチップセット初期化方式におけるメモリマップド仮想セル・コンフィグレーション空間圧縮方式を示す図である。
【図２０】本発明の第３の実施の形態に係るチップセット初期化方式における予備セルへの自動レンジ・レジスタ群初期値転送・設定処理（１）を示す図である。
【図２１】本発明の第３の実施の形態に係るチップセット初期化方式における予備セルへの自動レンジ・レジスタ群初期値転送・設定処理（２）を示す図である。
【図２２】本発明の第４の実施の形態に係るチップセット初期化方式におけるメモリ・レンジの説明図である。
【符号の説明】
００  ＢＩＯＳ
０００  オンライン・システム
０１  ＢＩＯＳ
１１，２１，３１  ＣＰＵ
１２，２２，３２  メモリ
１３，２３，３３  チップセット
１００  第１Ｉ／Ｏコントローラ
１０１，２０１  ＰＣＩカード群
２００  第２Ｉ／Ｏコントローラ
１３１，２３１，３３１  ＰＣＩメモリ・レンジ・レジスタ
１３２，２３２，３３２  ＰＣＩ・ＩＯレンジ・レジスタ
１３３，２３３，３３３  割り込みレンジ・レジスタ
９９９  予備システム
Ａ３  仮想チップセット
Ａ３１  ＰＣＩメモリ・レンジ・レジスタ
Ａ３２  ＰＣＩ・ＩＯレンジ・レジスタ
Ａ３３  割り込みレンジ・レジスタ
Ｂ  サービス・プロセッサ
Ｂ１  サービス・プロセッサ・ファームウェア
Ｃ１  第１セル
Ｃ２  第２セル
Ｃ３  予備セル
ＣＡ  仮想セル
【図１】
2004362006.tif 000003
【図２】
2004362006.tif 000004
【図３】
2004362006.tif 000005
【図４】
2004362006.tif 000006
【図５】
2004362006.tif 000007
【図６】
2004362006.tif 000008
【図７】
2004362006.tif 000009
【図８】
2004362006.tif 000010
【図９】
2004362006.tif 000011
【図１０】
2004362006.tif 000012
【図１１】
2004362006.tif 000013
【図１２】
2004362006.tif 000014
【図１３】
2004362006.tif 000015
【図１４】
2004362006.tif 000016
【図１５】
2004362006.tif 000017
【図１６】
2004362006.tif 000018
【図１７】
2004362006.tif 000019
【図１８】
2004362006.tif 000020
【図１９】
2004362006.tif 000021
【図２０】
2004362006.tif 000022
【図２１】
2004362006.tif 000023
【図２２】
2004362006.tif 000024