(57)【特許請求の範囲】
【請求項１】
Ｉ／Ｏ機能の拡張にＰＣＩ拡張カードを利用し、複数のＯＳを起動することが可能なコンピュータシステムにおけるＰＣＩ拡張カードの自動隠蔽方法であって、
前記複数のＯＳの各々がサポートするＰＣＩ拡張カードの種類を識別するための識別情報をサポートカード情報ＤＢとして予め格納する第１のステップと、
システム起動時に、前記ＰＣＩ拡張カードが搭載されている全てのＰＣＩ拡張スロットの電源をＯＮに制御するとともに、前記ＰＣＩ拡張カードが搭載されている全てのＰＣＩ拡張スロット毎に当該ＰＣＩ拡張スロットに搭載されている前記ＰＣＩ拡張カードの前記識別情報を格納したテーブルを作成する第２のステップと、
今回のシステム起動時の隠蔽処理前の前記テーブルを格納する第３のステップと、
前回のシステム起動時の起動ＯＳの設定値および前記隠蔽処理前の前記テーブルと、今回のシステム起動時の前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルとを比較する第４のステップと、
前記第４のステップにおける比較の結果、前回のシステム起動時から前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルの両方に変更がない場合にのみ、前回のシステム起動時の前記隠蔽処理後の前記テーブルを復元する復元処理を行う第５のステップと、
前記第４のステップにおける比較の結果、前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルのいずれかに変更がある場合にのみ、前記サポートカード情報ＤＢを参照して前記起動ＯＳとして指定されたＯＳのサポート対象外の前記ＰＣＩ拡張カードの前記識別情報が前記テーブル内に存在するか否か検索し、存在する場合に、前記起動ＯＳのサポート対象外の前記ＰＣＩ拡張カードが搭載されている前記ＰＣＩ拡張スロットのエントリを前記テーブルから削除する前記隠蔽処理を行う第６のステップと、
今回のシステム起動時の前記隠蔽処理後の前記テーブルを格納するとともに、今回のシステム起動時の前記起動ＯＳの設定値を格納する第７のステップと、
前記第５のステップで前記復元処理が行われた場合に、前記復元処理後の前記テーブルに基づいて、当該テーブルからエントリが削除されている前記ＰＣＩ拡張スロットの電源をＯＦＦに制御し、前記第６のステップで前記隠蔽処理が行われた場合に、前記隠蔽処理後の前記テーブルに基づいて、当該テーブルからエントリが削除されている前記ＰＣＩ拡張スロットの電源をＯＦＦに制御する第８のステップと
を有することを特徴とするＰＣＩ拡張カードの自動隠蔽方法。
【請求項２】
Ｉ／Ｏ機能を拡張するためにＰＣＩ拡張カードを利用し、複数のＯＳを起動することが可能なコンピュータシステムであって、
起動ＯＳが指定される端末と、
前記ＰＣＩ拡張カードを搭載するＰＣＩ拡張スロットと、
前記複数のＯＳの各々がサポートするＰＣＩ拡張カードの種類を識別するための識別情報をサポートカード情報ＤＢとして予め格納する記憶手段と、
システム起動時に、前記ＰＣＩ拡張カードが搭載されている全ての前記ＰＣＩ拡張スロット毎に当該ＰＣＩ拡張スロットに搭載されている前記ＰＣＩ拡張カードの前記識別情報を格納したテーブルを作成するとともに、前記サポートカード情報ＤＢを参照して前記端末で指定された前記起動ＯＳのサポート対象外のＰＣＩ拡張カードの識別情報が前記テーブル内に存在するか否か検索し、存在する場合に、前記起動ＯＳのサポート対象外の前記ＰＣＩ拡張カードが搭載されている前記ＰＣＩ拡張スロットのエントリを前記テーブルから削除する隠蔽処理を行う演算手段と、
システム起動時に前記ＰＣＩ拡張カードが搭載されている全ての前記ＰＣＩ拡張スロットの電源をＯＮに制御した後、前記隠蔽処理終了後の前記テーブルに基づいて、当該テーブルからエントリが削除されている前記ＰＣＩ拡張スロットの電源をＯＦＦに制御するＰＣＩ拡張スロット電源制御手段とを有するコンピュータシステムにおいて、
前記記憶手段は、前回のシステム起動時の前記起動ＯＳの設定値、前回のシステム起動時の前記隠蔽処理前の前記テーブル、および、前回のシステム起動時の前記隠蔽処理後の前記テーブルを格納する前回起動時情報記録手段を有し、
前記演算手段は、前回のシステム起動時の前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルと、今回のシステム起動時の前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルとを比較し、前回のシステム起動時から前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルの両方に変更がない場合に、前回のシステム起動時の前記隠蔽処理後の前記テーブルを復元する復元処理を行い、前回のシステム起動時から前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルのいずれかに変更がある場合に前記隠蔽処理を行い、
前記ＰＣＩ拡張スロット電源制御手段は、前記演算手段にて前記復元処理が行われた場合に、前記復元処理後の前記テーブルに基づいて、当該テーブルからエントリが削除されている前記ＰＣＩ拡張スロットの電源をＯＦＦに制御し、前記演算手段にて前記隠蔽処理が行われた場合に、前記隠蔽処理後の前記テーブルに基づいて、当該テーブルからエントリが削除されている前記ＰＣＩ拡張スロットの電源をＯＦＦに制御することを特徴とするコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のオペレーティングシステム（以下、ＯＳと略す。例えば、WindowsやLINUX等が代表例として挙げられる。）を起動することが可能なコンピュータシステムに関するものである。さらに詳細には、起動するＯＳのサポート対象外の不要なＰＣＩ（Peripheral Component Interconnect）拡張カードを自動的に隠蔽するコンピュータシステムに関するものである。
【０００２】
ここで、ＰＣＩ拡張カードとは、ＰＣＩ標準仕様によって定められている拡張カードであり、各種ＨＷ（Hard Ware）ベンダによって製造・提供され、コンピュータシステムのＩ／Ｏ機能を拡張するためのカード状の形体をなした周辺装置のことである。なお、ＰＣＩ拡張カードは、システム内に設けられたＰＣＩ拡張カード搭載スロット（以下、ＰＣＩ拡張スロットと略す）に搭載して利用する。ＰＣＩ拡張カードの例としては、ストレージ用のカード（SCSI（Small Computer Standard Interface）やFibre Channelのインターフェースとして用いられるカード）や、ネットワーク用のカード（FDDI（Fiber Distributed Data Interface）やEthernetのインターフェースとして用いられるカード）等が挙げられる。
【０００３】
【従来の技術】
通常、ＯＳがサポートするＰＣＩ拡張カードの種類はＯＳ毎に異なるため、コンピュータシステムでは、起動するＯＳのサポート対象外のＰＣＩ拡張カードが搭載されている場合には、何らかの不具合が発生する可能性がある。
【０００４】
そのため、コンピュータシステムでは、起動するＯＳのサポート対象外のＰＣＩ拡張カードが搭載されていない状態で、そのＯＳを起動する必要がある。
【０００５】
昨今のコンピュータシステムの運用形態としては、１つのコンピュータシステム上で複数の異なる種類のＯＳを各々個別に起動し、各々のＯＳを業務で活用する形態がある。その一例として、コンピュータシステムに処理を行わせる業務内容が昼夜間で異なる場合（例えば、昼間はオンライン業務の処理、夜間はバッチ処理等）などが挙げられる。そのような場合には、適宜、業務内容に最適な機能・性能をもつＯＳに切り替えてコンピュータシステムの運用を行う。
【０００６】
【発明が解決しようとする課題】
しかしながら、従来のコンピュータシステムでは、上記のような形態でコンピュータシステムを運用する場合、ＯＳを切り替える度に、オペレータが手作業により、そのＯＳのサポート対象外のＰＣＩ拡張カードがコンピュータシステム内に搭載されているか否かを調べ、搭載されている場合には該当するＰＣＩ拡張カードを物理的にコンピュータシステムから取り外す作業を行う必要があった。この作業は、コンピュータシステムが大規模になるほど手間が増大し、人的なミスも発生しやすくなるため、保守性、運用性の点で問題となっていた。
【０００７】
本発明の目的は、起動ＯＳのサポート対象外のＰＣＩ拡張カードがコンピュータシステム内に搭載されている場合に、そのＰＣＩ拡張カードを自動的に隠蔽することができるコンピュータシステムにおけるＰＣＩ拡張カードの自動隠蔽方法、およびそのシステムを提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するために本発明のコンピュータシステムにおけるＰＣＩ拡張カードの自動隠蔽方法は、
Ｉ／Ｏ機能の拡張にＰＣＩ拡張カードを利用し、複数のＯＳを起動することが可能なコンピュータシステムにおけるＰＣＩ拡張カードの自動隠蔽方法であって、
前記複数のＯＳの各々がサポートするＰＣＩ拡張カードの種類を識別するための識別情報をサポートカード情報ＤＢとして予め格納する第１のステップと、
システム起動時に、前記ＰＣＩ拡張カードが搭載されている全てのＰＣＩ拡張スロットの電源をＯＮに制御するとともに、前記ＰＣＩ拡張カードが搭載されている全てのＰＣＩ拡張スロット毎に当該ＰＣＩ拡張スロットに搭載されている前記ＰＣＩ拡張カードの前記識別情報を格納したテーブルを作成する第２のステップと、
今回のシステム起動時の隠蔽処理前の前記テーブルを格納する第３のステップと、
前回のシステム起動時の起動ＯＳの設定値および前記隠蔽処理前の前記テーブルと、今回のシステム起動時の前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルとを比較する第４のステップと、
前記第４のステップにおける比較の結果、前回のシステム起動時から前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルの両方に変更がない場合にのみ、前回のシステム起動時の前記隠蔽処理後の前記テーブルを復元する復元処理を行う第５のステップと、
前記第４のステップにおける比較の結果、前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルのいずれかに変更がある場合にのみ、前記サポートカード情報ＤＢを参照して前記起動ＯＳとして指定されたＯＳのサポート対象外の前記ＰＣＩ拡張カードの前記識別情報が前記テーブル内に存在するか否か検索し、存在する場合に、前記起動ＯＳのサポート対象外の前記ＰＣＩ拡張カードが搭載されている前記ＰＣＩ拡張スロットのエントリを前記テーブルから削除する前記隠蔽処理を行う第６のステップと、
今回のシステム起動時の前記隠蔽処理後の前記テーブルを格納するとともに、今回のシステム起動時の前記起動ＯＳの設定値を格納する第７のステップと、
前記第５のステップで前記復元処理が行われた場合に、前記復元処理後の前記テーブルに基づいて、当該テーブルからエントリが削除されている前記ＰＣＩ拡張スロットの電源をＯＦＦに制御し、前記第６のステップで前記隠蔽処理が行われた場合に、前記隠蔽処理後の前記テーブルに基づいて、当該テーブルからエントリが削除されている前記ＰＣＩ拡張スロットの電源をＯＦＦに制御する第８のステップと
を有することを特徴とするものである。
【００１２】
上記目的を達成するために本発明のコンピュータシステムは、
Ｉ／Ｏ機能の拡張にＰＣＩ拡張カードを利用し、複数のＯＳを起動することが可能なコンピュータシステムであって、
起動ＯＳが指定される端末と、
前記ＰＣＩ拡張カードを搭載するＰＣＩ拡張スロットと、
前記複数のＯＳの各々がサポートするＰＣＩ拡張カードの種類を識別するための識別情報をサポートカード情報ＤＢとして予め格納する記憶手段と、
システム起動時に、前記ＰＣＩ拡張カードが搭載されている全ての前記ＰＣＩ拡張スロット毎に当該ＰＣＩ拡張スロットに搭載されている前記ＰＣＩ拡張カードの前記識別情報を格納したテーブルを作成するとともに、前記サポートカード情報ＤＢを参照して前記端末で指定された前記起動ＯＳのサポート対象外のＰＣＩ拡張カードの識別情報が前記テーブル内に存在するか否か検索し、存在する場合に、前記起動ＯＳのサポート対象外の前記ＰＣＩ拡張カードが搭載されている前記ＰＣＩ拡張スロットのエントリを前記テーブルから削除する隠蔽処理を行う演算手段と、
システム起動時に前記ＰＣＩ拡張カードが搭載されている全ての前記ＰＣＩ拡張スロットの電源をＯＮに制御した後、前記隠蔽処理終了後の前記テーブルに基づいて、当該テーブルからエントリが削除されている前記ＰＣＩ拡張スロットの電源をＯＦＦに制御するＰＣＩ拡張スロット電源制御手段とを有するコンピュータシステムにおいて、
前記記憶手段は、前回のシステム起動時の前記起動ＯＳの設定値、前回のシステム起動時の前記隠蔽処理前の前記テーブル、および、前回のシステム起動時の前記隠蔽処理後の前記テーブルを格納する前回起動時情報記録手段を有し、
前記演算手段は、前回のシステム起動時の前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルと、今回のシステム起動時の前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルとを比較し、前回のシステム起動時から前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルの両方に変更がない場合に、前回のシステム起動時の前記隠蔽処理後の前記テーブルを復元する復元処理を行い、前回のシステム起動時から前記起動ＯＳの設定値および前記隠蔽処理前の前記テーブルのいずれかに変更がある場合に前記隠蔽処理を行い、
前記ＰＣＩ拡張スロット電源制御手段は、前記演算手段にて前記復元処理が行われた場合に、前記復元処理後の前記テーブルに基づいて、当該テーブルからエントリが削除されている前記ＰＣＩ拡張スロットの電源をＯＦＦに制御し、前記演算手段にて前記隠蔽処理が行われた場合に、前記隠蔽処理後の前記テーブルに基づいて、当該テーブルからエントリが削除されている前記ＰＣＩ拡張スロットの電源をＯＦＦに制御することを特徴とするものである。
【００１５】
（作用）
上記のように構成された本発明においては、複数のＯＳの各々がサポートするＰＣＩ拡張カードの種類を識別するための識別情報に基づいて、コンピュータシステム内に搭載されているＰＣＩ拡張カードの中から、起動ＯＳのサポート対象外のＰＣＩ拡張カードを特定し、特定したＰＣＩ拡張カードの電源をＯＦＦに制御することとしたため、起動ＯＳのサポート対象外のＰＣＩ拡張カードを自動的に隠蔽することが可能となる。
【００１６】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照して説明する。
【００１７】
図１は、本発明のコンピュータシステムの概要を示す図である。
【００１８】
図１に示すように本発明のコンピュータシステム１００は、起動ＯＳ指定部２１０を具備する入出力装置２００と、ＢＩＯＳ（Basic Input/Output System）３１０を具備する演算装置３００と、ＯＳサポートカード識別情報格納部４１０を具備する記憶装置４００と、ＰＣＩ拡張カード電源制御部５１０およびＰＣＩ拡張カード５２０1〜５２０nを具備する周辺系装置５００とを有している。
【００１９】
起動ＯＳ指定部２１０は、コンピュータシステム１００上で起動する起動ＯＳの種類・リビジョンを指定するために、オペレータが操作、入力を行うためのユーザインタフェースである。
【００２０】
ＯＳサポートカード識別情報格納部４１０は、コンピュータシステム１００上で起動可能な各ＯＳ（リビジョン毎）がサポートするＰＣＩ拡張カードの種類を識別するための識別情報が格納されているデータベース（以降、ＤＢと略す）である。
【００２１】
ＰＣＩ拡張カード電源制御部５１０は、各ＰＣＩ拡張カード５２０1〜５２０nが搭載されているＰＣＩ拡張スロット（不図示）の電源を個別にＯＮ／ＯＦＦすることによって、各ＰＣＩ拡張カード５２０1〜５２０nへの電源の供給を制御する。
【００２２】
ＢＩＯＳ３１０は、コンピュータシステム１００の各種初期設定・診断等を行うために演算装置３００上で実行されるＦＷ（Firm Ware）であり、隠蔽カード決定部３１１を有している。
【００２３】
隠蔽カード決定部３１１は、コンピュータシステム１００内に搭載されている、起動ＯＳのサポート対象外の不要なＰＣＩ拡張カード、およびそのＰＣＩ拡張カードが搭載されているＰＣＩ拡張スロットを特定する。
【００２４】
具体的には、隠蔽カード決定部３１１は、ＯＳサポートカード識別情報格納部４１０を参照して、起動ＯＳ指定部２１０で指定された起動ＯＳのサポート対象のＰＣＩ拡張カードの種類を認識する。そして、コンピュータシステム１００内に搭載されているＰＣＩ拡張カードの中から、起動ＯＳのサポート対象外のＰＣＩ拡張カード、およびそのＰＣＩ拡張カードが搭載されているＰＣＩ拡張スロットを特定する。
【００２５】
図１に示したコンピュータシステム１００においては、隠蔽カード決定部３１１が、ＯＳサポートカード識別情報格納部４１０を参照して、コンピュータシステム１００内に搭載されているＰＣＩ拡張カード５２０1〜５２０nの中から、起動ＯＳ指定部２１０で指定された起動ＯＳのサポート対象外のＰＣＩ拡張カードを特定する。そして、ＰＣＩ拡張カード電源制御部５１０が、隠蔽カード決定部３１１で特定されたＰＣＩ拡張カードの電源をＯＦＦに制御する。
【００２６】
それにより、起動ＯＳのサポート対象外の不要なＰＣＩ拡張カードを、物理的に取り外すことなく、自動的に隠蔽することが可能となる。
【００２７】
【実施例】
以下に、図１に示した各構成要素（起動ＯＳ指定部２１０、ＯＳサポートカード識別情報格納部４１０、ＰＣＩ拡張カード電源制御部５１０、隠蔽カード決定部３１１）を具体化したコンピュータシステムの実施例について説明する。
【００２８】
（第１の実施例）
図２は、本発明の第１の実施例によるコンピュータシステムを示す図である。
【００２９】
図２に示すように本発明の第１の実施例によるコンピュータシステムは、ＣＰＵ１と、主記憶装置２と、ＰＣＩバス３と、ＰＣＩバスブリッジ４と、不揮発性メモリであるフラッシュＲＯＭ５と、ＰＣＩ拡張カード７1〜７nを各々搭載したＰＣＩ拡張スロット６1〜６nとを有している。
【００３０】
ＣＰＵ１は、システム起動時にはＢＩＯＳ１１が動作してＯＳ起動に必要な環境を構築する処理を行い、ＢＩＯＳ１１による処理終了後はＯＳ１２が動作する。
【００３１】
主記憶装置２は、システムの情報（ＣＰＵ命令列、演算データ等）を保持・格納する。例えば、主記憶装置２は、システム内に搭載されているＰＣＩ拡張カード７1〜７nの搭載位置（ＰＣＩ拡張スロット６1〜６nの番号）およびその識別情報を、カード種類・搭載スロット情報テーブル２１（図３参照）として保持・格納している。
【００３２】
ＰＣＩバスブリッジ４は、ＣＰＵ１および主記憶装置２とＰＣＩバス３とを接続するためのバスブリッジである。
【００３３】
また、ＰＣＩバスブリッジ４は、各ＰＣＩ拡張スロット６1〜６nの電源のＯＮ／ＯＦＦを制御することが可能なＰＣＩ拡張スロット電源制御部４１と、ＰＣＩ拡張スロット電源制御部４１を制御するためのデータが設定される制御レジスタ４２とを有している。
【００３４】
フラッシュＲＯＭ５は、ＢＩＯＳ１１のＢＩＯＳコードを格納するＢＩＯＳコード格納領域５１と、起動ＯＳの種類・リビジョンの設定値を格納する起動ＯＳ設定値情報格納領域５２と、システムが起動可能なＯＳのサポート対象のＰＣＩ拡張カードの種類を識別するための識別情報を格納するサポートカード情報ＤＢ５３とを有している。
【００３５】
ＰＣＩ拡張カード７1〜７nは、ＰＣＩ標準仕様によって定められている任意のＰＣＩ拡張カードを利用可能であるが、本実施例では、ＰＣＩ拡張カード７1〜７nが図２に示した下記のようなカードであるものとする。
【００３６】
ＰＣＩ拡張カード７1は、ＢＩＯＳ１１の起動画面の表示、ＢＩＯＳ１１の各種設定を行うためのＢＩＯＳセットアップ画面の表示・操作、およびＯＳ１２の動作画面の表示・操作を行う操作端末８を接続するためのＶＩＤＥＯカード（ＯＳ＃Ａ、ＯＳ＃Ｂの両者にサポートされたデバイス）である。
【００３７】
ＰＣＩ拡張カード７2は、ＯＳ＃Ａが格納されたＯＳ＃Ａ起動ディスク９を接続するためのＯＳ＃Ａ起動デバイス（ＯＳ＃Ａにのみサポートされたデバイス）である。
【００３８】
ＰＣＩ拡張カード７3は、ＯＳ＃Ｂが格納されたＯＳ＃Ｂ起動ディスク１０を接続するためのＯＳ＃Ｂ起動デバイス（ＯＳ＃Ｂにのみサポートされたデバイス）である。
【００３９】
ＰＣＩ拡張カード７nは、ＯＳ＃Ａ、ＯＳ＃Ｂの両者にサポートされたデバイスである。
【００４０】
本実施例では、図１に示した各構成要素（起動ＯＳ指定部２１０、ＯＳサポートカード識別情報格納部４１０、ＰＣＩ拡張カード電源制御部５１０、隠蔽カード決定部３１１）は、図２の次の部分にそれぞれ対応している。
【００４１】
起動ＯＳ指定部２１０（図１参照）は、操作端末８上でＢＩＯＳ１１の各種設定を行うためのユーザインタフェースであるＢＩＯＳセットアップ部（不図示）に、起動ＯＳを指定することができる機能を持たせることで実現する。なお、本実施例では、オペレータは、ＢＩＯＳセットアップ部が操作端末８に表示する上記のＢＩＯＳセットアップ画面上で起動ＯＳを指定するものとする。
【００４２】
ＯＳサポートカード識別情報格納部４１０（図１参照）は、フラッシュＲＯＭ５上に設けられたサポートカード情報ＤＢ５３に対応する。
【００４３】
ＰＣＩ拡張カード電源制御部５１０（図１参照）は、ＰＣＩバスブリッジ４に設けられたＰＣＩ拡張スロット電源制御部４１に対応する。
【００４４】
隠蔽カード決定部３１１（図１参照）は、ＣＰＵ１上で実行されるＢＩＯＳ１１の動作に対応する。
【００４５】
なお、本実施例は、あくまで図１に示した各構成要素を具体化した一例であり、本発明はこれに限定されるものではない。例えば、図２では、図１のＯＳサポートカード識別情報格納部４１０に対応する機能をフラッシュＲＯＭ５上という物理的な装置に固定して設けているが、その機能と同様の機能を実現することができれば、他の方法（例えば、システム内に専用の記憶領域に設ける等）でその機能を実現することとしても良い。
【００４６】
図３は、図２に示したコンピュータシステムにおけるサポートカード情報ＤＢ５３、カード種類・搭載スロット情報テーブル２１、およびＢＩＯＳセットアップ画面の一例を示す図である。なお、以下の記載では、図３に示したＢＩＯＳセットアップ画面のイメージ例を起動ＯＳ指定メニュー８１と呼ぶこととする。
【００４７】
図３の起動ＯＳ指定メニュー８１には、システムが起動可能な各ＯＳの名称・リビジョンが一覧表示される。オペレータは、この一覧の中から、起動するＯＳの名称とリビジョンを選択することで、次回起動するＯＳの種類とリビジョンを指定する。図３の例では、《》の付いているＯＳ＃Ａ（リビジョン１．０）が選択されていることを示している。なお、システムを初めて起動する際の起動ＯＳの初期値は、起動ＯＳ指定メニュー８１上で一番上にあるＯＳ＃Ａ（リビジョン１．０）であるものとする。
【００４８】
図３のサポートカード情報ＤＢ５３には、各ＯＳの種類・リビジョン毎に、そのＯＳがサポートしているＰＣＩ拡張カードに関する識別情報が格納されている。本実施例では、この識別情報として、ＰＣＩ標準仕様で定められたＰＣＩ拡張カードが保持しているベンダ識別子（ＰＣＩ拡張カードの製造ベンダ毎にユニークなＩＤ。以降、ＶＩＤ（Vendor ID）と略す）と、デバイス識別子（ＰＣＩ拡張カードの製造ベンダ内でカード種毎にユニークなＩＤ。以降、ＤＩＤ（Device ID）と略す）との組を使用する。ＢＩＯＳ１１は、ＶＩＤとＤＩＤの組によって、ＰＣＩ拡張カード７1〜７nの種類を特定することになる。
【００４９】
図３のカード種類・搭載スロット情報テーブル２１には、各ＰＣＩ拡張スロット６1〜６nの番号毎に、そのＰＣＩ拡張スロットに搭載されているＰＣＩ拡張カード７1〜７nの識別情報（ＶＩＤとＤＩＤの組）が格納されている。ＢＩＯＳ１１は、カード種類・搭載スロット情報テーブル２１を参照することによって、システム内に搭載されているＰＣＩ拡張カード７1〜７nの種類とその搭載位置（ＰＣＩ拡張スロット６1〜６nの番号）を認識することになる。なお、カード種類・搭載スロット情報テーブル２１の作成方法についての説明は後述する。
【００５０】
以下に、図２および図３に示したコンピュータシステムの動作について、図４のフローチャートを参照して説明する。
【００５１】
オペレータが操作端末８上でシステムを起動すると、ＣＰＵ１が命令フェッチを開始し、フラッシュＲＯＭ５内のＢＩＯＳコード格納領域５１からＢＩＯＳコードを読み出す。続いて、ＢＩＯＳ１１が、ＢＩＯＳコードに基づき、ＣＰＵ１のテストや主記憶装置２の初期化や初期診断、ＰＣＩバスブリッジ４の初期設定等のシステムの初期化処理を開始する（ステップ４００）。
【００５２】
システムの初期化処理が開始されると、ＰＣＩバスブリッジ４内では、ＰＣＩ拡張スロット電源制御部４１が、ＰＣＩ拡張カード７1〜７nが搭載されているＰＣＩ拡張スロット６1〜６nの電源を全てＯＮに制御する（ステップ４２０）。
【００５３】
さらに、ＰＣＩバスブリッジ４内では、制御レジスタ４２にＰＣＩ拡張スロット６1〜６nの電源供給状況を反映させる（ステップ４２１）。
【００５４】
ＢＩＯＳ１１は、システムの初期化処理の過程において、ＰＣＩバス３に接続されているＰＣＩ拡張カード７1〜７nを検出するとともに、サポートカード情報ＤＢから全てのＰＣＩ拡張カード７1〜７nの識別情報（本実施例では各ＰＣＩ拡張カード７1〜７nが有しているＶＩＤとＤＩＤの組）を収集する。それにより、ＢＩＯＳ１１は、システム内に搭載されている全てのＰＣＩ拡張カード７1〜７nの搭載位置（ＰＣＩ拡張スロット６1〜６nの番号）とその識別情報を認識し、カード種類・搭載スロット情報テーブル２１を主記憶装置２内に作成する（ステップ４０１）。以降、ＢＩＯＳ１１は、カード種類・搭載スロット情報テーブル２１の情報に基づいて、システム内のどのＰＣＩ拡張スロットにどのような種類のＰＣＩ拡張カードが搭載されているかということを認識することになる。
【００５５】
次に、ＢＩＯＳ１１は、フラッシュＲＯＭ５上の起動ＯＳ設定値情報格納部５２に格納されている情報を読み出し、現在の起動ＯＳの種類・リビジョンの設定値を認識する（ステップ４０２）。
【００５６】
次に、ＢＩＯＳ１１は、オペレータがＢＩＯＳセットアップ機能の起動指定（通常、“Ｆ２”キーや“Delete”キー等の特定のキーを入力することによって指定する）を行っているか否かを判断する（ステップ４０３）。
【００５７】
ＢＩＯＳ１１は、ＢＩＯＳセットアップ機能の起動指定が行われていた場合（ステップ４０３で“ＹＥＳ"となるケース）には、操作端末８内のＢＩＯＳセットアップ部を起動する。また、ＢＩＯＳ１１は、ＢＩＯＳセットアップ機能の起動指定が行われていない場合（ステップ４０３で“ＮＯ"となるケース）には、システムの初期化処理を継続して行う。
【００５８】
ＢＩＯＳ１１によりＢＩＯＳセットアップ部が起動された場合、ＢＩＯＳセットアップ部は、操作端末８上に、ＢＩＯＳセットアップ画面として、オペレータが起動ＯＳを指定することができる起動ＯＳ指定メニュー８１（図３参照）の画面を表示する（ステップ４１０）。その際に、ＢＩＯＳセットアップ部は、サポートカード情報ＤＢ５３の内容を参照することで認識した、システムが起動可能なＯＳの種類・リビジョンと、ステップ４０２で読み出された現在の起動ＯＳの種類・リビジョンの設定値の情報とに基づいて、起動ＯＳ指定メニュー８１の画面を表示する。
【００５９】
オペレータは、起動ＯＳ指定メニュー８１の画面を参照し、次回起動するＯＳの種類・リビジョンを指定する（ステップ４１１）。
【００６０】
ＢＩＯＳセットアップ部は、オペレータによる設定が完了すると、オペレータに指定された起動ＯＳの種類・リビジョンの設定値を起動ＯＳ設定値情報格納領域５２へ保存し、システムを再起動する（ステップ４１２）。
【００６１】
システムが再起動されると、動作はステップ４００の処理に戻り、ステップ４００から再びシステムの初期化処理が行われるが、今度はすでに起動ＯＳの種類・リビジョンが指定されているため、オペレータはＢＩＯＳセットアップ機能の起動指定を行わない。そのため、ＢＩＯＳ１１は、システムの初期化処理を継続して行う（ステップ４０３で“ＮＯ"となるケース）。
【００６２】
次に、ＢＩＯＳ１１は、サポートカード情報ＤＢ５３を参照して、ステップ４０１で作成したカード種類・搭載スロット情報テーブル２１内に、隠蔽する必要のあるＰＣＩ拡張カード、すなわち起動ＯＳのサポート対象外のＰＣＩ拡張カードの識別情報が存在するか否かを検索する（ステップ４０４）。
【００６３】
その結果、カード種類・搭載スロット情報テーブル２１内に隠蔽する必要のあるＰＣＩ拡張カードの識別情報が存在する場合（ステップ４０５で“ＹＥＳ"となるケース）、ＢＩＯＳ１１は、カード種類・搭載スロット情報テーブル２１から、隠蔽する必要のあるＰＣＩ拡張カードが搭載されているＰＣＩ拡張スロットのエントリを削除し、カード種類・搭載スロット情報テーブル２１の内容を更新する（ステップ４０６）。
【００６４】
一方、カード種類・搭載スロット情報テーブル２１内に隠蔽する必要のあるＰＣＩ拡張カードの識別情報が存在しない場合（ステップ４０５で“ＮＯ"となるケース）、ＰＣＩ拡張カードを隠蔽する必要がないため、カード種類・搭載スロット情報テーブル２１から削除するエントリは存在しない。したがって、カード種類・搭載スロット情報テーブル２１を更新する必要はないため、ステップ４０６の処理は実行されない。
【００６５】
次に、ＢＩＯＳ１１は、カード種類・搭載スロット情報テーブル２１の内容に基づいて、制御レジスタ４２にデータを設定する（ステップ４０７）。このとき、隠蔽する必要のあるＰＣＩ拡張カードが搭載されたＰＣＩ拡張スロットのエントリは、先のステップ４０６の処理によってカード種類・搭載スロット情報テーブル２１から削除されている。そのため、制御レジスタ４２には、該当するＰＣＩ拡張スロットのエントリが削除されたことを反映させたデータが設定される。
【００６６】
ＰＣＩバスブリッジ４内のＰＣＩ拡張スロット電源制御部４１は、制御レジスタ４２の内容に基づいて、カード種類・搭載スロット情報テーブル２１からエントリが削除されているＰＣＩ拡張スロットを認識し、該当するＰＣＩ拡張スロットの電源をＯＦＦに制御する（ステップ４２２）。この時点でシステム内の起動ＯＳサポート対象外のＰＣＩ拡張カードが搭載されているＰＣＩ拡張スロットの電源はＯＦＦとされ、ＯＳ１２からは該当するＰＣＩ拡張カードの存在が隠蔽される。
【００６７】
次に、ＢＩＯＳ１１は、カード種類・搭載スロット情報テーブル２１に識別情報が存在する全てのＰＣＩ拡張カードを初期化する（ステップ４０８）。
【００６８】
その後、ＢＩＯＳ１１は、システムの初期化処理を続行し、ＯＳ１２を起動する環境を構築する（ステップ４０９）。
【００６９】
以上の動作により、ＢＩＯＳ１１がＯＳ起動に必要な環境を構築した後、ＯＳ１２は、ＯＳ起動処理を実行する（ステップ４３０）。ＯＳ起動処理完了後、オペレータは、その起動ＯＳを活用して操作端末８上でシステムを運用していく（ステップ４３１）。
【００７０】
次に、図２および図３に示したコンピュータシステムの動作について、具体例を挙げて説明する。ここでは、ＰＣＩ拡張カード７1〜７nがそれぞれ図２に示した構成であるものとする。
【００７１】
オペレータが操作端末８上でシステムを起動すると、ＣＰＵ１はＢＩＯＳ１１を実行し、システムの初期化処理を開始する（ステップ４００）。
【００７２】
ＢＩＯＳ１１は、システムの初期化処理の過程において、システム内に搭載されている全てのＰＣＩ拡張カード７1〜７nの搭載位置（ＰＣＩ拡張スロット６1〜６nの番号）とその識別情報を認識して、カード種類・搭載スロット情報テーブル２１を作成する（ステップ４０１）。
【００７３】
さらに、ＢＩＯＳ１１は、フラッシュＲＯＭ５上の起動ＯＳ設定値情報格納部５２に格納されている情報を読み出し、現在の起動ＯＳの種類・リビジョンの設定値を認識する（ステップ４０２）。
【００７４】
オペレータがＢＩＯＳセットアップ機能の起動指定を行っている場合（ステップ４０３で“ＹＥＳ"となるケース）、ＢＩＯＳ１１は、操作端末８内のＢＩＯＳセットアップ部を起動する。
【００７５】
ＢＩＯＳセットアップ部は、操作端末８上に起動ＯＳ指定メニュー８１の画面を表示する（ステップ４１０）。ここで、オペレータは、起動ＯＳとしてＯＳ＃Ａを指定したと仮定する（ステップ４１１）。
【００７６】
その場合、ＢＩＯＳセットアップ部は、オペレータに起動ＯＳとして指定されたＯＳ＃ＡをフラッシュＲＯＭ５上の起動ＯＳ設定値情報格納領域５２に保存し、システムを再起動する（ステップ４１２）。
【００７７】
システムが再起動されると、動作はステップ４００から再び開始される。ここでは、すでに起動ＯＳが指定されているので、オペレータは、ＢＩＯＳセットアップ機能の起動指定を行わない（ステップ４０３で“ＮＯ"となるケース）。そのため、ＢＩＯＳ１１はシステムの初期化処理を継続して行う。
【００７８】
次に、ＢＩＯＳ１１は、サポートカード情報ＤＢ５３内のＯＳ＃Ａのサポートカード情報５３1を参照して、ＯＳ＃ＡのサポートするＰＣＩ拡張カードの種類を認識する。そして、ステップ４０１で作成しておいたカード種類・搭載スロット情報テーブル２１内に、ＯＳ＃ＡのサポートするＰＣＩ拡張カードの識別情報（ＶＩＤとＤＩＤの組）以外の識別情報が格納されているか否かを検索する（ステップ４０４）。
【００７９】
その結果、ＢＩＯＳ１１は、カード種類・搭載スロット情報テーブル２１内に、ＯＳ＃Ａのサポート対象外のＯＳ＃Ｂ専用起動デバイスであるＰＣＩ拡張カード７3の識別情報が格納されていることを認識したと仮定する（ステップ４０５で“ＹＥＳ"となるケース）。
【００８０】
その場合、ＢＩＯＳ１１は、ＰＣＩ拡張カード７3を隠蔽するために、カード種類・搭載スロット情報テーブル２１から、ＰＣＩ拡張カード７3が搭載されているＰＣＩ拡張スロット６3のエントリを削除し、カード種類・搭載スロット情報テーブル２１の内容を更新する（ステップ４０６）。
【００８１】
次に、ＢＩＯＳ１１は、カード種類・搭載スロット情報テーブル２１の内容に基づいて、ＰＣＩバスブリッジ４内の制御レジスタ４２にデータを設定する（ステップ４０７）。
【００８２】
ＰＣＩバスブリッジ４内のＰＣＩ拡張スロット電源制御部４１は、制御レジスタ４２の内容に基づいて、ＰＣＩ拡張カード７3が搭載されているＰＣＩ拡張スロット６3の電源をＯＦＦに制御する（ステップ４２２）。この時点で、ＯＳ１２からはＯＳ＃Ａのサポート対象外のＰＣＩ拡張カード７3の存在は隠蔽される。
【００８３】
その後、ＢＩＯＳ１１は、カード種類・搭載スロット情報テーブル２１に識別情報が存在する全てのＰＣＩ拡張カードの初期化（ステップ４０８）、ＯＳ起動環境の構築処理を行う（ステップ４０９）。
【００８４】
以上の動作により、ＢＩＯＳ１１がＯＳ起動に必要な環境を構築した後、ＯＳ１２はＯＳ起動処理を実行する（ステップ４３０）。ＯＳ起動処理完了後、オペレータは、その起動ＯＳを活用してシステムを運用する（ステップ４３１）。
【００８５】
（第２の実施例）
図５は、本発明の第２の実施例によるコンピュータシステムを示す図である。
【００８６】
図５に示すように本発明の第２の実施例によるコンピュータシステムは、フラッシュＲＯＭ５内に、前回のシステム起動時の情報を保存するための前回起動時情報記憶部５４を設けた点が、図２に示した第１の実施例とは異なる。なお、その他の構成要素に関しては図２と同一であるため、説明を省略する。
【００８７】
前回起動時情報記憶部５４は、前回のシステム起動時に指定された起動ＯＳの設定値の情報を格納した起動ＯＳ設定値情報格納領域５４１と、前回のシステム起動時にＰＣＩ拡張カードの隠蔽処理が行われる前のカード種類・搭載スロット情報テーブル２１の情報を格納した隠蔽処理前テーブル情報格納領域５４２と、前回のシステム起動時にＰＣＩ拡張カードの隠蔽処理が行われた後のシステム運用時のカード種類・搭載スロット情報テーブル２１の情報を格納した運用時テーブル情報格納領域５４３とを有している。
【００８８】
以下に、図５に示したコンピュータシステムの動作について、図６のフローチャートを参照して説明する。なお、図６は、図４のフローチャートに、新たにステップ６００〜６０３で示す処理を追加したものである。これ以外の動作は図４と同一であるため、以下では図４との相違点のみを説明する。
【００８９】
図６において、ＢＩＯＳ１１は、システム起動時に３つの情報（起動ＯＳの設定値の情報、隠蔽処理前のカード種類・搭載スロット情報テーブル２１の情報、および隠蔽処理後のシステム運用時のカード種類・搭載スロット情報テーブル２１の情報）を、次回のシステム起動時に参照できるように前回起動時情報記憶部５４に保存しておく。
【００９０】
すなわち、ステップ６００において、ＢＩＯＳ１１は、ＰＣＩ拡張カードの隠蔽処理の結果が反映されておらず、ＰＣＩ拡張カードの物理的な搭載状況を示しているカード種類・搭載スロット情報テーブル２１の情報を、隠蔽処理前テーブル情報格納領域５４２に保存する。
【００９１】
また、ステップ６０３において、ＢＩＯＳ１１は、隠蔽すべきＰＣＩ拡張カードの隠蔽処理の結果が反映されており、システム運用時のＰＣＩ拡張カードの論理的な搭載状況を示しているカード種類・搭載スロット情報テーブル２１の情報を、運用時テーブル情報格納領域５４３に保存する。
【００９２】
さらに、ステップ６０３において、ＢＩＯＳ１１は、起動ＯＳの設定値の情報を起動ＯＳ設定値情報格納領域５４１に保存する。
【００９３】
以上のように、前回のシステム起動時の情報を前回起動時情報記憶部５４に保存しておいた場合、次回のシステム起動時の処理は次のようになる。
【００９４】
ステップ６０１において、ＢＩＯＳ１１は、前回のシステム起動時に保存しておいた情報（起動ＯＳ設定値情報格納領域５４１および隠蔽処理前テーブル情報格納領域４２にそれぞれ格納されている情報）と、今回のシステム起動時の情報（起動ＯＳ設定値情報格納領域５２およびカード種類・搭載スロット情報テーブル２１にそれぞれ格納されている情報）とを比較する。そして、その比較結果に基づいて、前回のシステム起動時から、起動ＯＳの設定値またはＰＣＩ拡張カードの物理的な搭載状況に変更があるか否かを判断する。
【００９５】
その結果、前回のシステム起動時から、起動ＯＳの設定値またはＰＣＩ拡張カードの物理的な搭載状況のいずれかに変更がある場合には（ステップ６０１で“ＹＥＳ"となるケース）、ステップ４０４〜４０６に対応するＰＣＩ拡張カードの隠蔽処理が実行される。この場合、その後の動作は、上述のステップ６０３の処理を行うこと以外は図４と同様であるため、説明を省略する。
【００９６】
一方、前回のシステム起動時から、起動ＯＳの設定値またはＰＣＩ拡張カードの物理的な搭載状況のどちらにも変更がない場合（ステップ６０１で“ＮＯ"となるケース）には、ステップ６０２において、ＢＩＯＳ１１は、運用時テーブル情報格納領域５４３に保存されている、前回のシステム運用時のＰＣＩ拡張カードの論理的な搭載状況を示すカード種類・搭載スロット情報テーブル２１の内容を、ステップ４０１で作成したカード種類・搭載スロット情報テーブル２１に上書きして復元する。
【００９７】
上記のように復元されたカード種類・搭載スロット情報テーブル２１の内容は、ステップ４０４〜４０６に対応するＰＣＩ拡張カードの隠蔽処理の結果が既に反映されているため、ステップ４０４〜４０６の処理を実行せずに済む。
【００９８】
したがって、前回のシステム起動時から、起動ＯＳの設定値およびＰＣＩ拡張カードの物理的な搭載状況のどちらにも変更がない場合には、ステップ４０４〜４０６に対応するＰＣＩ拡張カードの隠蔽処理を省略することが可能である。この場合、その後の動作は、上述のステップ６０３の処理を行うこと以外は図４と同様であるため、説明を省略する。
【００９９】
上述した第１の実施例では、前回のシステム起動時から起動ＯＳの設定値またはＰＣＩ拡張カードの物理的な搭載状況に変更がある／ないに関わらず、ステップ４０４〜４０６に対応するＰＣＩ拡張カードの隠蔽処理が必ず実行されていた。そのため、システムの起動時間が一律に増大してしまうという欠点があった。
【０１００】
これに対して、本実施例では、起動ＯＳの設定値またはＰＣＩ拡張カードの物理的な搭載状況に変更がある場合にのみ、ステップ４０４〜４０６に対応するＰＣＩ拡張カードの隠蔽処理が実行される。そのため、起動ＯＳの設定値またはＰＣＩ拡張カードの物理的な搭載状況に変更がない場合には、システムの起動時間が増大することを防止することができる。
【０１０１】
【発明の効果】
以上説明したように本発明においては、複数のＯＳの各々がサポートするＰＣＩ拡張カードの種類を識別するための識別情報に基づいて、コンピュータシステム内に搭載されているＰＣＩ拡張カードの中から、起動ＯＳのサポート対象外のＰＣＩ拡張カードを特定し、特定したＰＣＩ拡張カードの電源をＯＦＦに制御することとしたため、次のような効果を奏する。
【０１０２】
第１の効果は、起動ＯＳのサポート対象外のＰＣＩ拡張カードを自動的に隠蔽することが可能となるため、オペレータの人的ミスによって、起動ＯＳのサポート対象外のＰＣＩ拡張カードをシステム内に搭載してしまった場合に発生する可能性のある不具合を自動的に回避することができるということである。
【０１０３】
第２の効果は、起動ＯＳのサポート対象外のＰＣＩ拡張カードを論理的に隠蔽しているため、オペレータが起動ＯＳのサポート対象外のＰＣＩ拡張カードをシステムから物理的に取り外す作業を不要とすることができるということである。
【０１０４】
第３の効果は、１つのコンピュータシステム上で複数の異種ＯＳを切り替えて運用する場合、ＯＳを切り替える度に、毎回、オペレータが人手で行っていたＰＣＩ拡張カードの交換作業（全ＰＣＩ拡張カードを各ＯＳのサポートしているものに交換する作業）を不要とすることができるため、交換作業に必要な人員コストおよび時間の短縮が可能となるということである。
【図面の簡単な説明】
【図１】本発明のコンピュータシステムの概要を示す図である。
【図２】本発明の第１の実施例によるコンピュータシステムを示す図である。
【図３】図２に示したコンピュータシステムにおけるサポートカード情報ＤＢ、カード種類・搭載スロット情報テーブル、および起動ＯＳ指定メニューの一例を示す図である。
【図４】図２および図３に示したコンピュータシステムの動作を説明するフローチャートである。
【図５】本発明の第２の実施例によるコンピュータシステムを示す図である。
【図６】図５に示したコンピュータシステムの動作を説明するフローチャートである。
【符号の説明】
１００    コンピュータシステム
２００    入出力装置
２１０    起動ＯＳ指定部
３００    演算装置
３１０    ＢＩＯＳ
３１１    隠蔽カード決定部
４００    記憶装置
４１０    ＯＳサポートカード識別情報格納部
５００    周辺系装置
５１０    ＰＣＩ拡張カード電源制御部
５２０1〜５２０n    ＰＣＩ拡張カード
【図１】
0004190789.tif 000002
【図２】
0004190789.tif 000003
【図３】
0004190789.tif 000004
【図４】
0004190789.tif 000005
【図５】
0004190789.tif 000006
【図６】
0004190789.tif 000007