(57)【要約】【課題】複数の物理的格納装置を含むコンピュータ・システムにおいて、格納装置が、自身のバスと１つ以上の隣りの格納装置のバスとについてのバス番号付け情報を含む不揮発性メモリを備えるコンピュータ・システムを提供する。【解決手段】好ましい実施例において、全ての格納装置は、自身のバスと両隣りの格納装置のバスとについてのバス番号付け情報を含む不揮発性メモリを備える。これは、コンピュータ・システムについての相互接続トポロジの分散データベースを作成する。格納装置がその隣りの格納装置のバスについてのバス番号付け情報を含むので、物理的格納装置内のバスについてのバス番号が、多数の異なったシステム再構成の全てにわたって永続的になる。好ましい実施の形態では、また、初期プログラム・ロード（すなわちブート）の際に物理的格納装置内の不揮発性メモリを読み取り、不揮発性メモリから読み取られた情報に基づいて相互接続トポロジを再構成し、派生した相互接続トポロジに従ってバスへバス番号を割り当てるバス番号マネージャを含む。【選択図】図６
2006004381.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリを含む第１の装置であって、
前記不揮発性メモリが、
（Ａ）前記第１の装置内部に配置された少なくとも１つのバスについてのバス番号付け情報、
（Ｂ）前記第１の装置へ接続された第２の装置内部に配置された少なくとも１つのバスについてのバス番号付け情報、
を含む第１の装置。
【請求項２】
前記バス番号付け情報が、開始バス番号とバスの数とを含む、請求項１に記載の第１の装置。
【請求項３】
前記不揮発性メモリが、前記不揮発性メモリの内容が有効であるか否かを判断するための少なくとも１つの識別子を含む、請求項１に記載の第１の装置。
【請求項４】
コンピュータ・システムであって、
第１の物理的格納装置と、
前記第１の物理的格納装置へ接続された第２の物理的格納装置であって、前記第１および第２の物理的格納装置内に収容されたバスについてのバス番号付け情報、を含む不揮発性メモリ、を含んだ第２の物理的格納装置と、
前記コンピュータ・システムの構成の変更を検出し、前記第１および第２の物理的格納装置について前記不揮発性メモリから前記バス番号付け情報を読み取って前記第１および第２の物理的格納装置内の少なくとも１つのバスについての適切なバス番号を決定する、バス番号マネージャと、
を備えるコンピュータ・システム。
【請求項５】
前記バス番号付け情報が、開始バス番号とバスの数とを含む、請求項４に記載のコンピュータ・システム。
【請求項６】
前記不揮発性メモリが、前記不揮発性メモリの内容が有効であるか否かを判断するために前記バス番号マネージャによって読み取られる少なくとも１つの識別子を含む、請求項４に記載のコンピュータ・システム。
【請求項７】
コンピュータ・システムであって、
（１）第１の物理的格納装置であって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサへ接続されたメモリと、
前記少なくとも１つのプロセッサへ接続され、前記コンピュータ・システムにおいて使われているバス番号を示すバス番号マスクを含む不揮発性メモリと、
前記少なくとも１つのプロセッサへ接続されたハブと、
を含む第１の物理的格納装置、
（２）第２の物理的格納装置であって、
前記第１の物理的格納装置内の前記ハブへ接続された少なくとも１つのブリッジと、
前記少なくとも１つのブリッジへ接続された少なくとも１つの番号付けされたバスと、
（Ａ）前記第２の物理的格納装置内の番号付けされたバスについてのバス番号付け情報、
（Ｂ）第３の物理的格納装置内の番号付けされたバスについてのバス番号付け情報、
を含む不揮発性メモリと、
を含む第２の物理的格納装置、
（３）第３の物理的格納装置であって、
前記第２の物理的格納装置内の前記少なくとも１つのブリッジへ接続された少なくとも１つのブリッジと、
前記第３の物理的格納装置内の前記少なくとも１つのブリッジへ接続された少なくとも１つの番号付けされたバスと、
（Ａ）前記第３の物理的格納装置内の番号付けされたバスについてのバス番号付け情報、
（Ｂ）前記第２の物理的格納装置内の番号付けされたバスについてのバス番号付け情報、
を含む不揮発性メモリと、
を含む第３の物理的格納装置、
（４）前記第１の物理的格納装置の前記メモリ内に存在し、前記第１の物理的格納装置内の前記少なくとも１つのプロセッサによって実行されるバス番号マネージャであって、前記コンピュータ・システムの構成の変更を検出し、前記第２および第３の物理的格納装置内の前記不揮発性メモリから前記バス番号付け情報を読み取って前記第２および第３の物理的格納装置内の少なくとも１つのバスについての適切なバス番号を決定する、バス番号マネージャ、
を備えるコンピュータ・システム。
【請求項８】
前記バス番号付け情報が、開始バス番号とバスの数とを含む、請求項７に記載のコンピュータ・システム。
【請求項９】
不揮発性メモリにバス番号付け情報を記憶するためのコンピュータによって実行される方法であって、
第１の物理的格納装置内のバスへ固有のバス番号を割り当てるステップと、
第２の物理的格納装置内のバスへ固有のバス番号を割り当てるステップと、
前記第１および第２の物理的格納装置内の前記バスについての前記バス番号を前記不揮発性メモリ内に記憶するステップと、
を含む方法。
【請求項１０】
前記不揮発性メモリが、前記第１の物理的格納装置内に存在する、請求項９に記載の方法。
【請求項１１】
前記バス番号付け情報が、開始バス番号とバスの数とを含む、請求項９に記載の方法。
【請求項１２】
複数の物理的格納装置を含むコンピュータ・システム内の複数のバスに番号付けするための、コンピュータによって実行される方法であって、
不揮発性メモリ内に、第１の物理的格納装置内の少なくとも１つのバスについてのバス番号付け情報を記憶するステップと、
前記不揮発性メモリ内に、第２の物理的格納装置内の少なくとも１つのバスについてのバス番号付け情報を記憶するステップと、
前記コンピュータ・システムの構成の変更を検出するステップと、
前記第１および第２の物理的格納装置について前記不揮発性メモリから前記バス番号付け情報を読み取って、前記第１および第２の物理的格納装置内の少なくとも１つのバスについての適切なバス番号を決定するステップと、
を含む方法。
【請求項１３】
前記バス番号付け情報が、開始バス番号とバスの数とを含む、請求項１２に記載の方法。
【請求項１４】
複数の物理的格納装置を含むコンピュータ・システム内の複数のバスに対して永続的番号を割り当ててそれを維持するための、コンピュータによって実行される方法であって、
第１の物理的格納装置内のバスへ固有のバス番号を割り当てるステップと、
前記第１の物理的格納装置へ接続された第２の物理的格納装置内のバスへ固有のバス番号を割り当てるステップと、
前記第１および第２の物理的格納装置内の前記バスについての前記バス番号に対応するバス番号付け情報を、前記第１の物理的格納装置内の第１の不揮発性メモリ内に記憶するステップと、
前記第１および第２の物理的格納装置内の前記バスについての前記バス番号に対応するバス番号付け情報を、前記第２の物理的格納装置内の第２の不揮発性メモリ内に記憶するステップと、
前記コンピュータ・システムの構成の変更を検出するステップと、
前記第１および第２の不揮発性メモリから前記バス番号付け情報を読み取って前記第１の物理的格納装置内のバスについての適切なバス番号を決定するステップと、
前記第１および第２の不揮発性メモリから前記バス番号付け情報を読み取って前記第２の物理的格納装置内のバスについての適切なバス番号を決定するステップと、
を含む方法。
【請求項１５】
前記バス番号付け情報が、開始バス番号とバスの数とを含む、請求項１４に記載の方法。
【請求項１６】
複数の物理的格納装置を含むコンピュータ・システムの構成の変更を検出するバス番号マネージャであって、第１の物理的格納装置内の不揮発性メモリからバス番号付け情報を読み取って、前記第１の物理的格納装置内の少なくとも１つのバスと第２の物理的格納装置内の少なくとも１つのバスとについての適切なバス番号を決定する、バス番号マネージャと、
前記バス番号マネージャを伝達するコンピュータ可読の信号伝達媒体と、
を含むプログラム。
【請求項１７】
前記信号伝達媒体が、記録可能媒体を含む、請求項１６に記載のプログラム。
【請求項１８】
前記信号伝達媒体が、伝送媒体を含む、請求項１６に記載のプログラム。
【請求項１９】
前記バス番号付け情報が、開始バス番号とバスの数とを含む、請求項１６に記載のプログラム。
【請求項２０】
前記不揮発性メモリが、前記不揮発性メモリの内容が有効であるか否かを判断するために前記バス番号マネージャによって読み取られる少なくとも１つの識別子を含む、請求項１６に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはデータ処理に関し、より具体的には、複数の物理的格納装置内に複数のバスを含むコンピュータ・システムにおけるバス番号の割り当てに関する。
【背景技術】
【０００２】
コンピュータ時代の始まり以来、コンピュータ・システムは、多くの種々の設定を備えることができる極めて高性能のデバイスへと進化してきた。コンピュータ・システムは、一般的に、ハードウェア（例えば半導体，回路ボードなど）とソフトウェア（例えばコンピュータ・プログラム）との組み合わせを含む。半導体プロセスおよびコンピュータ・アーキテクチャの進化が、コンピュータ・ハードウェアの性能をより高く押し上げるにつれて、コンピュータ・ハードウェアのより高い性能を利用するために、より高性能のコンピュータ・ソフトウェアが進化し、わずか数年前よりもはるかに強力な現在のコンピュータ・システムをもたらした。
【０００３】
大規模コンピュータ・システムは、一般的に、数個の別々の物理的格納装置を含む。例えば、ある格納装置がシステム・プロセッサおよびメモリを含むことができ、一方、他の格納装置が、ハード・ディスク・ドライブ，ネットワーキング・デバイスなどのような様々な別個の入出力（Ｉ／Ｏ）デバイスを含む。複数の物理的格納装置を含む周知のコンピュータ・システムにおいて、それぞれの格納装置についてのバス番号が当該格納装置内部の不揮発性メモリへ書き込まれている。これは、システムが、初期プログラム・ロード（すなわちブート）の際に割り当てるべきバス番号を知ることを可能にする。不揮発性メモリが読み取られ、次に、不揮発性メモリにおいて指示されたバス番号が、当該格納装置内のバスへ割り当てられる。
【０００４】
システムが再構成される場合に、格納装置内部の不揮発性メモリにバス番号を記憶するというこの周知の方法に関して１つの問題が発生する。例えば、Ｉ／Ｏタワー内の不揮発性メモリを含むハードウェアがアップグレードされた場合、当該不揮発性メモリは格納装置内部のバス番号割り当てについてのいかなる情報も有さないことになる。その結果、従来の技術では、たとえ格納装置内のバスがハードウェアのアップグレードの前に他の番号を割り当てられていたとしても、これらのバスへ新しいバス番号を割り当てる。これは、前に使用されていたバス番号を不使用にして使用できなくする。格納装置内のバスへ割り当てられる番号が変わったので、システム管理者はシステムを再構成して新しいバス番号を認識する必要がある。このプロセスは、単純な作業ではなく、コンピュータ・システムが再構成の後に正確に作動するように手動再構成を実行するために高度に熟練したシステム管理者を必要とする。これは、システム再構成が実行されるたびに熟練したシステム管理者の存在を必要とする。しかしながら、ハードウェア障害または配線障害によってシステムが動的に“再構成される”ことがある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
永続的なバス番号であり、様々な異なったタイプのシステム再構成の後に自動的に再割り当てできるバス番号を割り当てる方法がない場合には、コンピュータ産業は、システム再構成が発生する場合に常に、高価でエラーを起こしやすい手動更新に煩わされ続けることになる。
【課題を解決するための手段】
【０００６】
複数の物理的格納装置を含むコンピュータ・システムにおいて、格納装置は、独自のバスについてのバス番号付け情報と１つ以上の隣りの格納装置のバスについてのバス番号付け情報とを含む不揮発性メモリを備えている。好ましい実施例において、全ての格納装置は、独自のバスと両隣りの格納装置のバスとについてのバス番号付け情報を含む不揮発性メモリを備える。これは、コンピュータ・システムについての相互接続トポロジの分散データベースを作成する。ある格納装置がその隣りの格納装置のバスについてのバス番号付け情報を含むので、これら物理的格納装置内のこれらのバスについてのバス番号は、多数の異なったシステムの再構成を通して永続的なものとなる。好適な実施の形態はまた、初期プログラム・ロード（すなわちブート）の際に物理的格納装置内の不揮発性メモリを読み取り、不揮発性メモリから読み取られた情報に基づいて相互接続トポロジを再構成し、派生した相互接続トポロジに従ってこれらのバスへバス番号を割り当てる、バス番号マネージャを含む。
【０００７】
本発明の上述及び他の特徴と利点とは、添付の図面に説明されるように、本発明の好ましい実施の形態にかかる以下のより詳細な説明から明らかになるであろう。
【発明を実施するための最良の形態】
【０００８】
［１．従来技術の概要］
従来技術の理解が、本発明の好ましい実施形態のより十分な理解を促進する。図１は、中央電子処理装置（ＣＥＣ）１１０および４つのＩ／Ｏタワー１２０，１３０，１４０および１５０を含む従来の例としてのコンピュータ・システム１００を示す。ＣＥＣ１１０は、Ｉ／Ｏタワーへの接続のための０および１と符号付けされた２つのポートを含む。同様に、それぞれのＩ／Ｏタワーは、ＣＥＣおよび／または他のＩ／Ｏタワーへの接続のための０および１と符号付けされた２つのポートを含む。図１に示される具体的な構成において、ＣＥＣ１１０と４つのタワー１２０，１３０，１４０および１５０とは、ループ型に配列される。
【０００９】
それぞれのＩ／Ｏタワーは、不揮発性メモリを含む。不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）が、使用できる１つの具体的なタイプの不揮発性メモリとして図１に示される。タワーＡ１２０はＮＶＲＡＭ１２２を含み、タワーＢ１３０はＮＶＲＡＭ１３２を含み、タワーＣ１４０はＮＶＲＡＭ１４２を含み、そしてタワーＤ１５０はＮＶＲＡＭ１５２を含む。それぞれのタワーのＮＶＲＡＭは、ＣＥＣのシリアル番号と、ＣＥＣのタイプと、当該タワーにおいて割り当てられた最初のバス番号と、当該タワー内のバスの数とを含む。したがって、タワーＡのＮＶＲＡＭ１２２に記憶された情報から、タワーＡ１２０が３つのバスを備えること（バス数=3）、これらのバスのうちの第１番目がバス番号１であること（最初のバス番号=1）が分かる。バス番号付けの計画では、タワー内のある範囲の連続したバス番号が仮定される。これは、タワーＡ１２０内の３つのバスがバス番号１，２および３を割り当てられることを意味する。タワーＢのＮＶＲＡＭ１３２は、タワーＢ１３０が３つのバスを備え、これらのバスのうちの第１番目がバス番号４であることを示す。これは、タワーＢ１３０内の３つのバスがバス番号４，５および６を割り当てられることを意味する。タワーＣのＮＶＲＡＭ１４２は、タワーＣ１４０が３つのバスを備え、これらのバスのうちの第１番目がバス番号７であることを示す。これは、タワーＣ１４０内の３つのバスがバス番号７，８および９を割り当てられることを意味する。タワーＤのＮＶＲＡＭ１５２は、タワーＤ１５０が２つのバスを備え、これらのバスのうちの第１番目がバス番号１０であることを示す。これは、タワーＤ１５０内の２つのバスがバス番号１０および１１を割り当てられることを意味する。
【００１０】
ＣＥＣ１１０は、また、ＣＥＣのシリアル番号と、ＣＥＣのタイプと、バス番号マスクとを含むＮＶＲＡＭ１１２を含む。バス番号マスクとは、それぞれのビットがバス番号を表すビット列である。バス番号が割り当てられたとき、バス番号マスク内のその対応するビットが１へセットされる。例えば、最も左側のビットはバス番号０を表し、次のビットはバス番号１を表す。したがって、前段落で述べたように、バス番号１〜１１がタワーへ割り当てられている場合、バス番号マスクは、１へセットされたビット１〜１１と、０にセットされたビット０と、０にセットされた１１より大きいビットとを含み、バス番号１〜１１が割り当てられていることを示すことが分かる。
【００１１】
コンピュータ・システム１００の詳細が図２のブロック図に示される。ＣＥＣ１１０は、１つ以上のＣＰＵ１１６と、メモリ１１８と、ＮＶＲＡＭ１１２と、リモートＩ／Ｏ（ＲＩＯ）ハブ１１４とを含むことが望ましい。それぞれのＣＰＵ１１６は、１つ以上のマイクロプロセッサおよび／または集積回路から構成することができる。ＣＰＵ１１６は、メモリ１１８に記憶されたプログラム命令を実行する。メモリ１１８は、ＣＰＵ１１６がアクセスできるプログラムおよびデータを記憶する。メモリ１１８は、初期プログラム・ロードの際に１つ以上のＣＰＵ１１６によって実行され、システム内のバスへバス番号を割り当てるバス番号マネージャ１１９を含むことが望ましい。ＮＶＲＡＭ１１２は、図１に示されるように、ＣＥＣのシリアル番号およびＣＥＣのタイプを識別する情報であって、バス番号マスクを含む情報を含む。ＲＩＯハブ１１４は、１つ以上のＩ／ＯタワーへＣＥＣ１１０を接続するための０および１と符号付けされた２つのポートを与える。
【００１２】
それぞれのＩ／Ｏタワーは、ＣＥＣおよび／または他のタワーへ接続するための０および１と符号付けされた２つのポート、を備えるリモートＩ／Ｏ（ＲＩＯ）バス・アダプタを含む。それぞれのタワーは、ＲＩＯバス・アダプタへ接続された１つ以上のＰＣＩホスト・ブリッジ（ＰＨＢ）を含む。タワー内部のＰＣＩホスト・ブリッジは、不揮発性メモリ内に記憶された永続的バス番号を割り当てられたものである。それぞれのＰＣＩホスト・ブリッジは１つ以上のＩ／Ｏスロットへ接続でき、１つ以上のＩ／Ｏスロットはそれぞれ、互換性のあるＩ／Ｏアダプタを受け入れることができる。タワーＡ１２０は、したがって、ＣＥＣ１１０内のＲＩＯハブ１１４のポート０へ接続されたポート０を備え、タワーＢ１３０内のＲＩＯバス・アダプタのポート０へ接続されたポート１を備える、ＲＩＯバス・アダプタ１２４を含む。ＲＩＯバス・アダプタ１２４は、タワーＡ１２０内の３つの番号付けされたバスに対応する３つのＰＣＩホスト・ブリッジ１２６へ接続される。それぞれのＰＣＩホスト・ブリッジ１２６は１つ以上のＩ／Ｏスロット１２８へ接続でき、そのスロットのそれぞれは互換性のあるＩ／Ｏアダプタを収容できる。
【００１３】
タワーＢ１３０の構成はタワーＡ１２０についての構成と同様である。タワーＢ１３０は、タワーＢ１３０内で番号付けされたバスに対応する３つのＰＣＩホスト・ブリッジ（ＰＨＢ）１３６、へ接続されたＲＩＯバス・アダプタ１３４を備える。ＰＣＩホスト・ブリッジ１３６はスロット１３８へ接続される。タワーＢはまた、図１に示された内容を含むＮＶＲＡＭ１３２も含む。タワーＣ１４０の構成もまた、タワーＡ１２０およびタワーＢ１３０についての構成と同様である。タワーＣ１４０は、タワーＣ１４０内で番号付けされたバスに対応する３つのＰＣＩホスト・ブリッジ（ＰＨＢ）１４６、へ接続されたＲＩＯバス・アダプタ１４４を備える。ＰＣＩホスト・ブリッジ１４６はスロット１４８へ接続される。タワーＣはまた、図１に示された内容を含むＮＶＲＡＭ１４２も含む。
【００１４】
タワーＤ１５０の構成は、他のタワーと異なる。というのは、この具体例において、タワーＤのみが、タワーＡ１２０，タワーＢ１３０およびタワーＣ１４０のそれぞれにおける３つのバスの代わりに２つのバスを備えるからである。タワーＤ１５０は、タワーＤ１５０内で番号付けされたバスに対応する２つのＰＣＩホスト・ブリッジ（ＰＨＢ）１５６、へ接続されたＲＩＯバス・アダプタ１５４を備える。ＰＣＩホスト・ブリッジ１５６はスロット１５８へ接続される。タワーＤはまた、図１に示される内容を含むＮＶＲＡＭ１５２も含む。
【００１５】
なお、ＣＥＣ内のＲＩＯハブ１１４のポートと、ＲＩＯバス・アダプタ１２４，１３４，１４４および１５４のポートとは、０および１と符号付けされ、図１における同じ符号との接続に対応する。この接続トポロジはループである。というのは、このトポロジがＣＥＣの一方のポートから開始してそれぞれのタワーを経由してＣＥＣの他方のポートへループ・バックするからである。
【００１６】
図２の具体的な構成は、コンピュータ・システムにおけるＰＣＩバスの使用を示す。しかしながら、好ましい実施の形態はＰＣＩバスに制限されず、現在周知であるにせよ将来開発されるにせよ、固有のバス番号が割り当てられることを必要とする全てのタイプのバスへ明白に及ぶことに留意されたい。
【００１７】
ここで、図１のコンピュータ・システム１００がアップグレードされたと仮定する。コンピュータ・システム１００が電源を切断され、タワーＣ１４０内のＮＶＲＡＭ１４２を含むハードウェアが置き換えられたと仮定する。その結果、ＮＶＲＡＭ１４２の内容が図３に示すようにゼロになる。さらに、タワーＣ１４０内の他のハードウェアは変わらないままであると仮定する。言い換えれば、タワーＣ１４０は、依然として図２に示される同一の構成を備える。その差異は、タワーＣのＮＶＲＡＭ１４２が有効なバス番号付け情報を含まないということである。
【００１８】
コンピュータ・システム１００が電源を投入されるたびに、コンピュータ・システム１００は、本明細書において初期プログラム・ロード（ＩＰＬ）と呼ばれるものを実行する。ＩＰＬは基本的にイベントのブート・シーケンス（立上げ手順）である。ＩＰＬの際に、バス番号マネージャ（図２の１１９）は、全てのＩ／Ｏタワー内のバスへ固有のバス番号を割り当てる。図４を参照すると、方法４００は、バス番号を割り当てるために初期プログラム・ロードの際にバス番号マネージャ１１９によって従来技術において実行されるステップを表す。最初に、タワーが選択される（ステップ４１０）。選択されたタワーについての不揮発性メモリが読み取られる（ステップ４２０）。不揮発性メモリが有効である場合（ステップ４３０＝はい）、不揮発性メモリから読み取られたバス番号付け情報に基づいて当該タワー内のバスにバス番号が割り当てられる（ステップ４４０）。ステップ４３０において不揮発性メモリが有効であるためには、ＣＥＣのシリアル番号およびＣＥＣのタイプがＣＥＣのＮＶＲＡＭ１１２内に記録された当該ＣＥＣのシリアル番号およびＣＥＣのタイプと一致しなければならない。
【００１９】
不揮発性メモリが有効でない場合（ステップ４３０＝いいえ）には、ＣＥＣ内のバス番号マスクを読み取ってどのバス番号が使われているか判断する（ステップ４５０）。続いて、次に使用可能なバス番号を当該タワー内のバスに割り当てる（ステップ４６０）。新しいバス番号が割り当てられたので、ＣＥＣ内のバス番号マスクを更新して（ステップ４７０）、新たに割り当てられたバス番号を反映しなければならない。さらに多くの処理すべきタワーが存在する場合（ステップ４８０＝はい）には、方法４００がステップ４１０へループ・バックし、全てのタワーが処理される（ステップ４８０＝いいえ）まで継続する。
【００２０】
ここで、方法４００を図３に示されたコンピュータ・システムに適用する。ステップ４１０においてタワーＡ１２０を最初に選択すると仮定する。タワーＡのＮＶＲＡＭ１２２を読み取り（ステップ４２０）、タワーＡのＮＶＲＡＭ１２２から読み取られたデータが有効であるということが判断される（ステップ４３０＝はい）。というのは、ＣＥＣのシリアル番号およびＣＥＣのタイプが、ＣＥＣのＮＶＲＡＭ１１２に記憶された値と一致するからである。続いて、タワーＡ１２０内の３つのバスにバス番号１，２および３を割り当てる（ステップ４４０）。というのは、タワーＡのＮＶＲＡＭ１２２から読み取られたデータが、最初のバス番号が１であり、バスの数が３つであることを示すからである。さらに多くの処理すべきタワーが存在する（ステップ４８０＝はい）ので、続いて、ステップ４１０においてタワーＢ１３０を選択する。タワーＢのＮＶＲＡＭ１３２を読み取り（ステップ４２０）、タワーＢのＮＶＲＡＭ１３２から読み取られたデータが有効であると判断される（ステップ４３０＝はい）。次に、タワーＢ１３０内の３つのバスにバス番号４，５および６を割り当てる（ステップ４４０）。というのは、タワーＢのＮＶＲＡＭ１３２から読み取られたデータが、最初のバス番号が４でありバスの数が３つであることを示すからである。さらに多くの処理すべきタワーが存在する（ステップ４８０＝はい）ので、次に、ステップ４１０においてタワーＣ１４０を選択する。タワーＣのＮＶＲＡＭ１４２を読み取り（ステップ４２０）、タワーＣのＮＶＲＡＭ１４２から読み取られたデータが無効であることが判断される（ステップ４３０＝いいえ）。というのは、ＣＥＣのシリアル番号およびＣＥＣのタイプがＣＥＣのＮＶＲＡＭ１１２に記憶された値と一致しないからである。したがって、ＣＥＣのシリアル番号およびＣＥＣのタイプは、タワーのＮＶＲＡＭの内容が有効であるか否か判断するための識別子として機能する。この時点において、ＣＥＣのＮＶＲＡＭ１１２内のバス番号マスクを読み取り、使用すべきバス番号を判断する（ステップ４５０）。図３のバス番号マスクから、バス番号１〜１１が使われていることが分かる。タワーＣ１４０内の３つのバスに、次の３つの使用可能なバス番号すなわち１２，１３および１４を割り当てる（ステップ４６０）。続いて、ＣＥＣのＮＶＲＡＭ１１２内のバス番号マスクを更新して、バス番号１２，１３および１４が現在使われていることを反映する（ステップ４７０）。さらにもう１つの処理すべきタワーが存在する（ステップ４８０＝はい）ので、方法４００はループ・バックし、タワーＤ１５０を選択する（ステップ４１０）。次に、タワーＤのＮＶＲＡＭ１５２を読み取り（ステップ４２０）、読み取られたデータが有効であることが判断される（ステップ４３０＝はい）。タワーＤ１５０内のバスにバス番号１０および１１を割り当てる（ステップ４４０）。というのは、タワーＤのＮＶＲＡＭ１５２から読み取られたデータが、最初のバス番号が１０でありバスの数が２つであることを示すからである。処理すべきタワーがそれ以上存在しない（ステップ４８０＝いいえ）ので、方法４００は終了する。
【００２１】
図３のコンピュータ・システム１００に対して方法４００を実行した結果が図５に示される。図３と図５との２つの違いは、ＣＥＣのＮＶＲＡＭ１１２内のバス番号マスクとタワーＣのＮＶＲＡＭ１４２の内容とである。タワーＣのＮＶＲＡＭ１４２の内容が更新されて、正確なＣＥＣのシリアル番号およびＣＥＣのタイプを反映する。タワーＣ１４０内の３つのバスにバス番号１２，１３および１４を割り当てたので、図５に示すように、最初のバス番号が１２にセットされ、バスの数が３つにセットされる。さらに、バス番号１２，１３および１４が現在使われているので、ＣＥＣのＮＶＲＡＭ１１２内のバス番号マスクが更新されて、バス番号１２，１３および１４に対応するビットを０から１へ変更する。
【００２２】
従来の方法４００は、こうして、タワーＣ１４０に対するアップグレードに関して２つの望ましくない結果を生じさせる。第１に、以前は番号７，８および９を付けられていたタワーＣ１４０内のバスが、番号１２，１３および１４に付け替えられる。これは、タワーＣ１４０内のバスを使用しようとする全てのシステム資源を手動で再構成してこれらのバス番号を７，８および９から１２，１３および１４へ変更しなければならないことを意味する。これは、高度に熟練したシステム管理者によって実行されなければならない時間を浪費するプロセスである。この手動再構成が実行されるまで、コンピュータ・システム１００は正確に機能しないことになる。計画されたシステム・アップグレードにおいて、企業は、システム管理者が参加可能であるように計画してこのような再構成を実行し、コンピュータ・システムのダウンが最短時間であるようにすることができる。しかしながら、ハードウェアが故障する時、あるいはタワーが異なった接続トポロジまたは順序に再配列される時に、一部のシステム再構成が発生し得るということに留意されたい。これらの予測できないケースを処理するために、熟練したシステム管理者が常に参加可能でなければならないことになる。これは高価で望ましくない解決策である。
【００２３】
第２の望ましくない結果は、アップグレードの前にタワーＣ１４０内で使用されていたバス番号７，８および９がもはや使用できないということである。バス番号マスクは、新しいバス番号１２，１３および１４の割り当てを反映するように更新されるが、バス番号マネージャは、バス番号７，８および９が依然としてシステム内に存在しているが機能していないのかどうか、あるいは、バス番号７，８および９がもはや存在しないのかどうかを知る方法を備えていない。図１〜５に示された例において、バス番号７，８および９が１２，１３および１４へ再割り当てされて、バス番号７，８および９を不使用にする。しかしながら、バス番号マネージャは、バス番号７，８および９が不使用であることが分からないので、それらは、ＣＥＣのＮＶＲＡＭ１１２において割り当てられているとしてマスクされたままになる。その結果、長期にわたって、比較的多数の使用できないバス番号が存在することがある。
【００２４】
タワーＣ１４０がアップグレードされたことを認識して、当該アップグレードの後にタワーＣ１４０内のバスへ元のバス番号すなわち７，８および９を自動的に割り当てる方法が必要である。本発明は、好ましい実施の形態に関して以下に述べるように、まさにこのような解決手段を提供する。
【００２５】
［２．好ましい実施の形態の説明］
本発明の好ましい実施の形態は、それぞれの格納装置内に、当該格納装置についてのバス番号付け情報だけでなく、当該格納装置の隣りの格納装置についてのバス番号付け情報も記憶する不揮発性メモリを与えることによって従来技術の問題点を克服する。その結果は、コンピュータ・システムについての相互接続トポロジの分散データベースとなる。それぞれの隣の格納装置にバス番号付け情報を記憶することにより、格納装置がアップグレードされるかまたはダウンする場合、あるいは他のシステム再構成が発生する場合に、初期プログラム・ロードの際にバス番号マネージャが隣の格納装置内のバス番号付け情報を読み取り、当該格納装置内のバスへバス番号を正確に割り当てる方法を自動的に決定することができる。こうすることにより、好ましい実施の形態では、バス番号付け問題のためにシステムが正確に機能しないという恐れを伴わずに、システム再構成を実行する方法が可能になる。
【００２６】
図６を参照すると、コンピュータ・システム６００は、図１のコンピュータ・システム１００と多くの点で類似する。ＣＥＣ１１０は、図６に示すようなループで４つのタワー６２０，６３０，６４０および６５０へ接続されている。ＣＥＣのＮＶＲＡＭ１１２は変わっておらず、ＣＥＣのシリアル番号と、ＣＥＣのタイプと、バス番号マスクとを含む。図６のコンピュータ・システム６００と図１のコンピュータ・システム１００との主な違いは、それぞれのＩ／Ｏタワー内の不揮発性メモリに記憶されている内容と、バス番号マネージャがこの情報を使用して初期プログラム・ロードの際にバス番号を割り当てる方法とである。図６において、それぞれのタワー内の不揮発性メモリは、自身のバスについてのバス番号付け情報だけでなく、その隣りのタワーのバスについてのバス番号付け情報も含んでいる。したがって、タワーＡのＮＶＲＡＭ６２２は、ＣＥＣのシリアル番号と、ＣＥＣのタイプと、最初のバス番号と、バスの数とを含んでおり、これは、図２のタワーＡのＮＶＲＡＭ１２２内に示される情報と同じである。しかしながら、タワーＡのＮＶＲＡＭ６２２は、加えて、自身の２つのポートへ接続された２つの格納装置についての最初のバス番号とバスの数とを含むことに留意されたい。したがって、Ｐ０バス番号＝１０はポート０へ接続された格納装置が１０という開始バス番号を有することを示す。ＣＥＣは、システム内の他の場所で番号付けされているいかなるタイプのバスも含まないので、当該ＣＥＣは無視され、タワーＡのＮＶＲＡＭ６２２は、自身のポート０があたかもタワーＤ６５０のポート１へ直接接続されているかのような情報を与えるということに留意されたい。したがって、Ｐ０バス番号＝１０およびＰ０バス数＝２は、ＣＥＣ１１０を経由してタワーＡ６２０のポート０へ接続されているタワーＤ６５０についてのバス番号付け情報を示す。同様に、Ｐ１バス番号＝４およびＰ１バス数＝３は、ポート１へ接続された隣りの格納装置すなわちタワーＢ６３０についてのバス番号付け情報を与える。タワーＢのＮＶＲＡＭ６３２は、自身のバスについてのバス番号付け情報（最初のバス番号＝４, バス数＝３）を含み、さらにその隣りの格納装置のバスについてのバス番号付け情報、すなわちタワーＡ６２０（Ｐ０バス番号＝１, Ｐ０バス数＝３）およびタワーＣ６４０（Ｐ１バス番号＝７, Ｐ１バス数＝３）を含む。タワーＣのＮＶＲＡＭ６４２は、自身のバスについてのバス番号付け情報（最初のバス番号＝７, バス数＝３）を含み、さらに、その隣りの格納装置のバスについてのバス番号付け情報、すなわちタワーＢ６３０（Ｐ０バス番号＝４, Ｐ０バス数＝３）およびタワーＤ６５０（Ｐ１バス番号＝１０, Ｐ１バス数＝２）を含む。タワーＤのＮＶＲＡＭ６５２は、自身のバスについてのバス番号付け情報（最初のバス番号＝１０, バス数＝２）を含み、さらに、その隣りの格納装置のバスについてのバス番号付け情報、すなわちタワーＡ６２０（Ｐ１バス番号＝１, Ｐ１バス数＝３）およびタワーＣ６４０（Ｐ０バス番号＝７, Ｐ０バス数＝３）を含む。このように、それぞれの格納装置は、不揮発性メモリ内に、その隣りの格納装置のバスについてのバス番号付け情報と自身のバスについてのバス番号付け情報とを含む。
【００２７】
ここで、図３を参照して上述したのと同じアップグレードがタワーＣ６４０に対して行われると仮定する。すなわち、タワーＣのＮＶＲＡＭ６４２を含むハードウェアが置き換えられるが、タワーＣ６４０内部の他の全てのハードウェアは変わらないままである。図７に示されるように、これは、タワーＣのＮＶＲＡＭ６４２に、有効なバス番号付け情報の代わりに０を含ませる結果となる。図８を参照すると、初期プログラム・ロードの際にバス番号を割り当てるバス番号マネージャについての好ましい実施の形態に係る方法８００は、タワーを選択することによって開始する（ステップ８１０）。当該タワーについての不揮発性メモリを読み取る（ステップ８２０）。不揮発性メモリから読み取られたデータが有効な場合（ステップ８３０＝はい）、バス番号付け情報によって示されたバス番号をバスに割り当てる（ステップ８４０）。一方、不揮発性メモリが有効でない場合（ステップ８３０＝いいえ）、隣りのタワーの不揮発性メモリを読み取る（ステップ８５０）。次に、隣りのタワーの不揮発性メモリ内に配置されたバス番号付け情報に基づいてバス番号を割り当てる（ステップ８６０）。ステップ８６０において新しいバス番号が割り当てられた場合（ステップ８７０＝はい）、ＣＥＣのＮＶＲＡＭ１１２内のバス番号マスクを更新して（ステップ８８０）新たに割り当てられたバス番号を反映する。ステップ８６０において新しいバス番号が割り当てられていない場合（ステップ８７０＝いいえ）、ステップ８９０は、さらに多くの処理すべきタワーが存在するか否か判断する。そうである場合（ステップ８９０＝はい）、方法８００はステップ８１０へループ・バックして、処理すべきタワーがそれ以上存在しなくなる（ステップ８９０＝いいえ）まで継続する。
【００２８】
ここで、図８の方法８００を図７の再構成されたシステム６００へ適用する。ステップ８１０においてタワーＡ６２０を最初に選択すると仮定する。タワーＡのＮＶＲＡＭ６２２を読み取り（ステップ８２０）、タワーＡのＮＶＲＡＭ６２２から読み取られたデータが有効であることが判断される（ステップ８３０＝はい）。次に、タワーＡ６２０内の３つのバスにバス番号１，２および３を割り当てる（ステップ８４０）。というのは、タワーＡのＮＶＲＡＭ６２２から読み取られたデータが最初のバス番号が１でありバスの数が３つであることを示すからである。さらに多くの処理すべきタワーが存在する（ステップ８９０＝はい）ので、続いて、ステップ８１０においてタワーＢ６３０を選択する。タワーＢのＮＶＲＡＭ６３２を読み取り（ステップ８２０）、タワーＢのＮＶＲＡＭ６３２から読み取られたデータが有効であることが判断される（ステップ８３０＝はい）。続いて、タワーＢ６３０内の３つのバスにバス番号４，５および６を割り当てる（ステップ８４０）。というのは、タワーＢのＮＶＲＡＭ６３２から読み取られたデータが、最初のバス番号が４であり、バスの数が３つであることを示すからである。さらに多くの処理すべきタワーが存在する（ステップ８９０＝はい）ので、次に、ステップ８１０においてタワーＣ６４０を選択する。タワーＣのＮＶＲＡＭ６４２を読み取り（ステップ８２０）、タワーＣのＮＶＲＡＭ６４２から読み取られたデータが無効であることが判断される（ステップ８３０＝いいえ）。というのは、ＣＥＣのシリアル番号およびＣＥＣのタイプが、ＣＥＣのＮＶＲＡＭ１１２内に記憶された値と一致しないからである。この時点で、隣りのタワーの不揮発性メモリを読み取る（ステップ８５０）。したがって、ステップ８５０は、タワーＢのＮＶＲＡＭ６３２およびタワーＤのＮＶＲＡＭ６５２を読み取る。これらのＮＶＲＡＭの内容から、タワーＣ６４０が７という最初のバス番号を備え３つのバスを備えることが判断される。その結果、タワーＣ６４０内の３つのバスにバス番号７，８および９を割り当てる（ステップ８６０）。ステップ８６０において新しいバス番号を割り当てていない（ステップ８７０＝いいえ）ので、バス番号マスクに対する更新は必要とされない。さらにもう１つの処理すべきタワーが存在する（ステップ８９０＝はい）ので、方法８００はループ・バックし、タワーＤ６５０を選択する（ステップ８１０）。次に、タワーＤのＮＶＲＡＭ６５２を読み取り（ステップ８２０）、読み取られたデータが有効であることが判断される（ステップ８３０＝はい）。タワーＤ６５０内のバスにバス番号１０および１１を割り当てる（ステップ８４０）。というのは、タワーＤのＮＶＲＡＭ６５２から読み取られたデータが、最初のバス番号が１０でありバスの数が２つであることを示すからである。処理すべきタワーはそれ以上存在しない（ステップ８９０＝いいえ）ので、方法８００は終了する。
【００２９】
図８の方法８００を使用して図７のシステム６００を処理した結果が図６に示されるシステム６００になる。言い換えれば、システム６００は、たとえシステム再構成があった場合でも、バス番号を自動的に永続させる。本明細書において用語“システム再構成”とは、バス番号付けに影響を与え得る全てのハードウェア変更を含むことができ、初期プログラム・ロードの際のバス番号の割り当てに影響を与え得るファームウェアへの全ての変更または他のシステム変更を含むことができる用語であることに留意されたい。
【００３０】
好ましい実施の形態はまた、もはや使われていないバス番号をリセットするために使用できるユーザ・インターフェースも含む。例えば、タワーＣ６４０に対するアップグレードは、ＮＶＲＡＭ６４２に対するアップグレードだけでなく、１つの追加のバスを加えたと仮定する。この場合に、７，８および９という元のバス番号は使用できない。というのは、この時点でタワーＣ６４０内に４つのバスが存在し、バス番号１０はタワーＤ６５０へ既に割り当てられているからである。その結果、タワーＣ６４０への４番目のバスの追加は、バス番号マネージャに、タワーＣ６４０内のバスへバス番号１２，１３，１４および１５を割り当てさせる。その結果、バス番号７，８および９は、もはや使われない。ユーザ・インターフェースを使用して、システム管理者は、ＣＥＣのＮＶＲＡＭ１１２内のバス番号マスクにおけるバス番号７，８および９についてのビットを０へ手動でリセットして、これらのバス番号が再使用できることを示すことが可能である。
【００３１】
ここで、完全に機能的なコンピュータ・システムの背景において本発明を上述し、かつ説明し続けることになるが、本発明のバス番号マネージャを様々な形式のプログラムとして配布できること、そして、当該配布を実際に実行するために使用されるコンピュータ可読の信号伝達媒体の特定のタイプに関係なく本発明が等しく適用されることを、当業者は理解し得ることに留意されたい。適切な信号伝達媒体の例は、フロッピー（登録商標）・ディスクおよびＣＤ  ＲＷのような記録可能タイプの媒体、そしてディジタル通信リンクおよびアナログ通信リンクのような伝送タイプの媒体を含む。
【００３２】
本発明によって実現される自律型永続的バス番号付けは、論理区画化されたコンピュータ・システムにおいて著しい利点を与える。論理区画とは、一般的にバス番号を使用して、論理区画化されたコンピュータ・システム内の種々の区画のオペレーティング・システムへのＩ／Ｏリソースの割り当て（または「所有権」）を記録する。これは、個々のＩ／Ｏバス・アダプタの割り当てと識別とを含み、個々のＩ／Ｏバス・アダプタは、それが接続されるＩ／Ｏバスの番号と共に一般的に識別される。バス番号は、それぞれの区画のオペレーティング・システム構成データベース内部のＩ／Ｏリソースを識別し記録するためにも使用され、Ｉ／Ｏエラーおよびサービス・アクションのロギングにおいても使用される。これらのバス番号は常に永続的でなければならず、連続する論理区画オペレーティング・システムの初期プログラム・ロードの全てにわたって永続的でなければならない。すなわち、バスについてのバス番号は、ある区画のオペレーティング・システムＩＰＬから次の区画のオペレーティング・システムＩＰＬまで変化してはならない。そうでなければ、オペレーティング・システムは、前のＩＰＬにおいて使用されたＩ／Ｏリソースを識別または配置することができない。これらの理由で、好ましい実施の形態は、システム再構成の後でさえも永続的バス番号を自動的に割り当てる解決手段を提供し、それにより、システム管理者の介入なしに、システム再構成後の論理区画化されたコンピュータ・システムの正確な動作を保証する。
【００３３】
タワーを行き来してその不揮発性メモリを読み取ることにより、相互接続トポロジ・データベースの再構成を可能にする。バス番号マネージャは、当該相互接続トポロジ・データベースを使用して、システム内のＩ／Ｏタワーが再構成されたか否か、およびどのように再構成されたかを判断できる。いくつかのシナリオを以下に与えて、それぞれのタワー内に記憶された当該タワー自身およびその隣りのタワーについての永続的バス番号付け情報に基づくバス番号の自動的割り当ての柔軟性と汎用性とを示す。用語「ホット」とは、システムが作動している間に発生する変更を示す用語である。ホット変更において、システム・コードは、構成を変更するサービス動作に潜在的に関与し得る。したがって、特定のタワーまたはいくつかのタワーの電源をオフにして、システムが依然として作動している間に再構成またはサービス動作を実行できる。用語「コールド」とは、システムの電源がオフにされて稼働中のシステム・コードがない時に発生する変更を示す用語である。
【００３４】
［欠落タワー］
欠落タワーを処理するために、バス番号マネージャは、２つの隣りのタワー内の永続的バス番号付け情報を使用して、タワーが欠落していることを判断する。バス番号マネージャは、次に、どちらでもこのケースになり得るが、タワーが欠落していることまたはケーブルが欠落していることを表すエラーをエラー・ログへ記入することができる。２つの隣接するタワー内の不揮発性メモリは、ループが完成するかあるいはタワーがこの場所で電源オンにされるまで変更されない。タワーが欠落していてループが完成しているケースは、［ホットおよびコールド・タワー除去］の中で後述するコールド・タワー除去として処理する。タワーが欠落していて、次に新しいタワーがその場所で追加されるケースは、［ホットおよびコールド・タワー置換］の中で後述する。
【００３５】
［ホットおよびコールド・タワー追加］
コールド・タワー追加については、システムは、ＮＶＲＡＭデータを有さないか無効なＮＶＲＡＭデータを有するタワーに対して電源オンすることになる。既存のタワー内のデータを使用して、タワーが挿入されたことを判断する。新しいバス番号がバス番号マネージャによってこの追加されたタワーへ割り当てられる。隣りのタワーの不揮発性メモリ内のデータを更新してタワーの追加を反映する。
【００３６】
ホット・タワー追加については、タワーを新しいと認識した後、バス番号マネージャが当該タワーへバス番号を割り当ててもよく、隣りのタワーの不揮発性メモリ内のデータを更新して新しいタワーの追加を反映する。追加されたタワーが、このＣＥＣについての有効なバス番号付け情報を備える場合、このケースは、後述する［タワー移動］のケースの中で処理する。
【００３７】
［ホットおよびコールド・タワー置換］
バックプレーン要件およびタワー置換に対する許容度を上げるために、バス番号マネージャは、同様に、２つの隣りのタワー内のバス番号付け情報を使用することになる。コールド・タワー置換のケースについては、タワーが自身の不揮発性メモリ内に有効なバス番号を備えていない場合、バス番号マネージャは、隣りのタワーの不揮発性メモリに照会することになる。隣りのタワーのデータのうちの一方のみが有効である場合、そのデータを使用する。双方が無効である場合、新しいバス番号がバス番号マネージャによって割り当てられる。双方が有効であるが一致しない場合、新しいバス番号を要求することになる。ホット・タワー置換の場合、バス番号マネージャは置換されたタワーが現われた時にバス番号を割り当ててもよい。
【００３８】
［ホットおよびコールド・タワー移動］
ホット・タワー移動については、タワー移動の除去部分は後述するホット除去と同じに処理することになり、新しいループへのタワーの追加は上述したホット・タワー追加と同様に処理することになる。１つの違いは、このタワー内のＰＣＩカードのためのデバイス・ドライバが既に存在するということである。システム・ソフトウェアは、あるループから別のループへデバイス・ドライバを移動でき、あるいは、システム・ソフトウェアは、タワーが除去された時にデバイス・ドライバを削除し、タワーが追加された時にデバイス・ドライバを再作成できる。コールド・タワー移動については、タワーは、あるＲＩＯループから別のＲＩＯループへ移されるだけである。この場合、次のＩＰＬの時に、元のループは、隣接するタワー内のその次のバス番号および前のバス番号を修正しなければならず（コールド除去と同じ）、新しいループは、移されたタワーについての同じバス番号を保持しながら、同じことを行って新しいタワーを統合しなければならない（コールド追加と同じ）。
【００３９】
［ホットおよびコールド・タワー除去］
タワーがホット除去される場合、タワーが電源オフされて除去される時にシステム・コードを呼び出す必要がある。このコードは、デバイス・ドライバ，ＰＣＩホスト・ブリッジ，ＰＣＩバスを除去しなければならず、さらにバス番号を除去しなければならない。次に、隣りのタワー内の不揮発性メモリを変更してタワーがＲＩＯループから除去されたことを反映しなければならない。タワーがコールド除去される場合、欠落タワーが次のＩＰＬの時に検出されることになる。ループが完成している場合、隣りのタワー内の不揮発性メモリを変更して新しい構成を反映することになる。ループが完成していない場合、この新しい構成を上述した欠落タワーとして処理することになる。
【００４０】
好ましい実施の形態では、それぞれの格納装置内に当該格納装置についてのおよびその隣りの格納装置についてのバス番号付け情報を与えることにより、従来技術に対する著しい進歩を提供する。隣りの格納装置がバス番号付け情報を含むので、当該隣りの格納装置内の不揮発性メモリからバス番号付け情報を読み取ることにより、システム再構成の後に同一の永続的バス番号を再割り当てできる。このように、本発明は、複数の物理的格納装置を含むコンピュータ・システムにおいてバス番号を自動的に割り当て永続させる。これは、格納装置のための不揮発性メモリ内に当該格納装置内のバスについての情報のみを記憶する従来の永続的バス番号付けに対する改良である。好ましい実施の形態では、システムが動作していない場合（コールド）でさえ、使われていた前のバス番号の損失を伴わずに全てのＩ／Ｏタワーのサービス動作および再接続を実行するのを可能にする。好ましい実施の形態ではまた、前に定義されたＩ／Ｏバスが再構成されたか否かをシステムが自動的に判断することを可能にし、全ての以前に既知であったバスが実際に欠落している場合、あるいは単に電源オフされている可能性がある場合を、システムが判断することを可能にする。
【００４１】
本発明の範囲内で多くの変形が可能であることを当業者は理解するであろう。したがって、本発明をその好ましい実施の形態を参照して詳細に示し述べてきたが、本発明の思想および範囲から外れることなしに、適正かつ詳細なこれらのおよび他の変更を本発明において実行できることを当業者は理解するであろう。例えば、永続的番号付けを必要とし得るバスの具体的なタイプの例としてＰＣＩバスを示したが、好ましい実施の形態の範囲内で他のタイプのバスに永続的に番号付けを行うこともできる。
【図面の簡単な説明】
【００４２】
【図１】中央電子処理装置（ＣＥＣ）と４つのＩ／Ｏタワーとを含む従来のコンピュータ・システムのブロック図である。
【図２】ＣＥＣおよびそれぞれのＩ／Ｏタワー内の内部コンポーネントの一部を示す図１の従来のコンピュータ・システム１００の詳細なブロック図である。
【図３】不揮発性メモリを含むハードウェアがタワーＣにおいてアップグレードされた後の図１の従来のコンピュータ・システムのブロック図である。
【図４】初期プログラム・ロードの際にバス番号マネージャがバス番号を割り当てる従来の方法のフロー図である。
【図５】図４の方法４００を実行してバス番号を割り当てた後の図３の従来のコンピュータ・システムのブロック図である。
【図６】中央電子処理装置（ＣＥＣ）と４つのＩ／Ｏタワーとを含む好ましい実施の形態に係るコンピュータ・システムのブロック図である。
【図７】不揮発性メモリを含むハードウェアがタワーＣにおいてアップグレードされた後の図６のコンピュータ・システムのブロック図である。
【図８】初期プログラム・ロードの際にバス番号を割り当てるための好ましい実施の形態に係る方法のフロー図である。
【符号の説明】
【００４３】
１００，６００  コンピュータ・システム
１１０  中央電子処理装置（ＣＥＣ）
１１２  不揮発性ランダム・アクセス・メモリ
１１４  リモートＩ／Ｏ（ＲＩＯ）ハブ
１１６  ＣＰＵ
１１８  メモリ
１１９  バス番号マネージャ
１２０，６２０  Ｉ／ＯタワーＡ
１２２，６２２  不揮発性ランダム・アクセス・メモリ
１２４  リモートＩ／Ｏ（ＲＩＯ）バス・アダプタ
１２６  ＰＣＩホスト・ブリッジ（ＰＨＢ）
１２８  Ｉ／Ｏスロット
１３０，６３０  Ｉ／ＯタワーＢ
１３２，６３２  不揮発性ランダム・アクセス・メモリ
１３４  リモートＩ／Ｏ（ＲＩＯ）バス・アダプタ
１３６  ＰＣＩホスト・ブリッジ（ＰＨＢ）
１３８  Ｉ／Ｏスロット
１４０，６４０  Ｉ／ＯタワーＣ
１４２，６４２  不揮発性ランダム・アクセス・メモリ
１３４  リモートＩ／Ｏ（ＲＩＯ）バス・アダプタ
１３６  ＰＣＩホスト・ブリッジ（ＰＨＢ）
１３８  Ｉ／Ｏスロット
１５０，６５０  Ｉ／ＯタワーＤ
１５２，６５２  不揮発性ランダム・アクセス・メモリ
１５４  リモートＩ／Ｏ（ＲＩＯ）バス・アダプタ
１５６  ＰＣＩホスト・ブリッジ（ＰＨＢ）
１５８  Ｉ／Ｏスロット
【図１】
2006004381.tif 000003
【図２】
2006004381.tif 000004
【図３】
2006004381.tif 000005
【図４】
2006004381.tif 000006
【図５】
2006004381.tif 000007
【図６】
2006004381.tif 000008
【図７】
2006004381.tif 000009
【図８】
2006004381.tif 000010