(57)【要約】  本情報処理装置は、被接続装置を接続可能なインターフェースと、インターフェースに接続された被接続装置の構成または動作仕様を含む装置情報を取得する取得手段と、装置情報に基づいて、被接続装置を制御するための制御プログラムを決定する決定手段と、決定された制御プログラムを用いて被接続装置を制御する制御手段と、を備える。
2012172666.tif 000002
【特許請求の範囲】
【請求項１】
被接続装置を接続可能なインターフェースと、
前記インターフェースに接続された被接続装置の構成または動作仕様を含む装置情報を取得する取得手段と、
前記装置情報に基づいて、前記被接続装置を制御するための制御プログラムを決定する決定手段と、
前記決定された制御プログラムを用いて前記被接続装置を制御する制御手段と、を備える情報処理装置。
【請求項２】
前記被接続装置は、拡張接続部と前記拡張接続部に接続される拡張装置とを含み、
前記取得手段は、前記インターフェースに接続された拡張接続部の構成または動作仕様を含む第１情報を取得する第１取得手段と、
前記拡張接続部に接続される拡張装置の構成または動作仕様を含む第２情報を取得する第２取得手段と、を含む請求項１に記載の情報処理装置。
【請求項３】
前記拡張接続部から第１の制御プログラムを取得する手段をさらに備え、
第２取得手段は、取得した第１の制御プログラムを用いて前記拡張接続部を介して前記被接続装置から前記第２情報を取得し、
前記決定手段は、前記第１情報と取得された第２情報とに基づいて第２の制御プログラムを特定し、
前記制御部は、前記第２の制御プログラムを用いて前記拡張接続部を制御する請求項２に記載の情報処理装置。
【請求項４】
第２取得手段は、前記拡張接続部を介さない通信インターフェースを介して前記被接続装置から前記第２情報を取得する請求項２に記載の情報処理装置。
【請求項５】
コンピュータが、
インターフェースに接続された被接続装置の構成または動作仕様を含む装置情報を取得する取得ステップと、
前記装置情報に基づいて、前記被接続装置を制御するための制御プログラムを決定する決定ステップと、
前記決定された制御プログラムを用いて前記被接続装置を制御する制御ステップと、を実行する情報処理方法。
【請求項６】
前記被接続装置は、拡張接続部と前記拡張接続部によって接続される拡張装置とを含み、
前記取得ステップは、前記インターフェースに接続された拡張接続部の構成または動作仕様を含む第１情報を取得する第１取得ステップと、
前記拡張接続部によって接続される拡張装置の構成または動作仕様を含む第２情報を取得する第２取得ステップと、を含む請求項５に記載の情報処理方法。
【請求項７】
前記拡張接続部から第１の制御プログラムを取得するステップをさらに実行し、
第２取得ステップは、前記第１の制御プログラムを用いて前記拡張接続部を介して前記被接続装置から前記第２情報を取得するステップを含み、
前記決定ステップは、前記第１情報と前記第１の制御プログラムを用いて取得された第２情報とに基づいて第２の制御プログラムを特定するステップを含み、
前記制御ステップは、前記第２の制御プログラムを用いて前記拡張接続部を制御するステップを含む請求項６に記載の情報処理方法。
【請求項８】
第２取得ステップは、前記拡張接続部を介さない通信インターフェースを介して前記被接続装置から前記第２情報を取得するステップを含む請求項６に記載の情報処理方法。
【請求項９】
コンピュータに、
インターフェースに接続された被接続装置の構成または動作仕様を含む装置情報を取得する取得ステップと、
前記装置情報に基づいて、前記被接続装置を制御するための制御プログラムを決定する決定ステップと、
前記決定された制御プログラムを用いて前記被接続装置を制御する制御ステップと、を実行させるための情報処理プログラム。
【請求項１０】
前記被接続装置は、拡張接続部と前記拡張接続部によって接続される拡張装置とを含み、
前記取得ステップは、前記インターフェースに接続された拡張接続部の構成または動作仕様を含む第１情報を取得する第１取得ステップと、
前記拡張接続部によって接続される拡張装置の構成または動作仕様を含む第２情報を取得する第２取得ステップと、を含む請求項９に記載の情報処理プログラム。  
【請求項１１】
前記コンピュータに、前記拡張接続部から第１の制御プログラムを取得するステップをさらに実行させ、
第２取得ステップは、前記第１の制御プログラムを用いて前記拡張接続部を介して前記被接続装置から前記第２情報を取得するステップを含み、
前記決定ステップは、前記第１情報と前記第１の制御プログラムを用いて取得された第２情報とに基づいて第２の制御プログラムを特定するステップを含み、
前記制御ステップは、前記第２の制御プログラムを用いて前記拡張接続部を制御するステップを含む請求項１０に記載の情報処理プログラム。
【請求項１２】
第２取得ステップは、前記拡張接続部を介さない通信インターフェースを介して前記被接続装置から前記第２情報を取得するステップを含む請求項１０に記載の情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被接続装置を接続可能なインターフェースを有する情報処理装置、情報処理方法、およびプログラムに関するものである。
【背景技術】
【０００２】
図１に、拡張カードを接続可能なコンピュータ装置の構成を例示する。コンピュータ装置の各機器を制御するためのプログラム群としてBasic Input／Output System（ＢＩＯＳ）がある。一方、コンピュータ装置等の情報機器は拡張カードあるいは拡張カードを介した外部装置などを追加することにより機能を拡張する。コンピュータ装置に搭載される拡張カードは、extended  Basic Input／Output System（拡張ＢＩＯＳ）と呼ばれる入出力制御用のコンピュータプログラムを用いて制御される。以下、コンピュータ装置の基本構成に含まれる各機器の制御に対応したＢＩＯＳを基本ＢＩＯＳと定義する。【０００３】
基本ＢＩＯＳは、例えば、マザーボード上のRead Only Memory（ＲＯＭ）に格納されている。なお、図１では、ＲＯＭはメモリに含まれる。一方、基本ＢＩＯＳが対応していない機器の制御のために基本ＢＩＯＳを拡張するＢＩＯＳを拡張ＢＩＯＳと呼ぶ。拡張ＢＩＯＳのデータイメージは通常、拡張カード上のＥＥＰＲＯＭなどの記憶素子内に格納されている。以下、拡張ＢＩＯＳのデータイメージを拡張ＢＩＯＳデータと呼ぶ。コンピュータ装置が起動されると、コンピュータ装置は基本ＢＩＯＳを用いて拡張カードの記憶素子の拡張ＢＩＯＳを検索する。そして、コンピュータ装置は、メモリ上へ拡張ＢＩＯＳを転送することで拡張ＢＩＯＳを利用可能にする。【０００４】
図２により、図１に示したコンピュータ装置での処理の流れを例示する。例えば、ユーザ等の起動操作により、コンピュータ装置が起動される（Ｓ５０１）。コンピュータ装置が起動すると、基本ＢＩＯＳが呼び出され、はじめにCentral Processing Unit（ＣＰＵ、中央処理装置）、およびメモリ等の初期化を行い、続いて各搭載機器に対するリソースの割り当てが行われる（Ｓ５０２）。ここで、初期化としては、例えば、ＣＰＵのレジスタ値の初期設定、例えば、０クリア等が例示される。また、搭載機器に対するリソースの割り当てとしては、例えば、メモリをレジスタとして使用する搭載機器に対して、レジスタとして使用される領域のアドレスを設定することが例示できる。以下、ＣＰＵが基本ＢＩＯＳ等のコンピュータプログラムによって処理を実行する場合に、単に、基本ＢＩＯＳ等のコンピュータプログラムが処理を実行する、ともいう。【０００５】
各機器に対するリソース割り当てを行うと、基本ＢＩＯＳはコンピュータ装置に接続された拡張カードそれぞれについて拡張カードの記憶素子内の拡張ＢＩＯＳを検索し（Ｓ５０３）、コンピュータ装置のメモリ上に拡張ＢＩＯＳを転送する（Ｓ５０４）。拡張ＢＩＯＳは拡張カードの初期化や初期設定、制御を実行する（Ｓ５０５）。【０００６】
そして、基本ＢＩＯＳは、Operating System（ＯＳ）を起動する（Ｓ５０６）。例えば、拡張カードにストレージ装置が接続された構成を想定する。コンピュータ装置の基本ＢＩＯＳが拡張カードに接続されたストレージ装置からデータを読み出す場合、コンピュータ装置は、Ｓ５０３、Ｓ５０４の手順で、予め拡張ＢＩＯＳを取得し、拡張ＢＩＯＳを用いて拡張カードを制御する。逆に、拡張ＢＩＯＳを使用しないと、コンピュータ装置の基本ＢＩＯＳは、拡張カードに接続されたストレージ装置からデータを読み出すことができない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１２２９６３号公報
【特許文献２】特開平０１−３１１３５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のように、コンピュータ装置が拡張カードを制御するために、コンピュータ装置は、拡張カードに応じた適切な拡張ＢＩＯＳを取得する。逆に、適切な拡張ＢＩＯＳがない場合、コンピュータ装置はその拡張カードを制御することができない場合がある。以下、問題例１、２で適切でない拡張ＢＩＯＳを用いたときに発生する問題について述べる。また、問題例３では、適切な拡張ＢＩＯＳを取得する際の問題を述べる。【０００９】
以下、拡張カードのように、コンピュータ装置に付加される接続部を拡張接続部という。また、ストレージ装置のように、拡張接続部を通じて、コンピュータ装置に接続される装置を外部装置という。【００１０】
＜問題例１＞
拡張接続部と、拡張接続部に接続された外部装置間の通信では、拡張ＢＩＯＳ等の制御プログラムの版数によって問題が発生する場合がある。図３は、拡張接続部と、拡張接続部に接続された外部装置間の通信において生じる問題を例示する図である。図３では、拡張接続部の一例として、Fibre Channel Host Bus Adapter（ファイバチャネルホストバスアダプタ、以下、ＦＣ  ＨＢＡ）が例示されている。また、ＦＣ  ＨＢＡには、外部装置の一例として、Fibre Channel Switch（ファイバチャネルスイッチ、以下、ＦＣ  ＳＷ）が接続される。さらに、ＦＣ  ＳＷにストレージシステムが接続される。以下、ＦＣ  ＨＢＡとＦＣ  ＳＷとの接続のように、ファイバチャネルによるインターフェースをファイバチャネルインターフェースと呼ぶ。【００１１】
ファイバチャネルインターフェースにおいては、コマンドを送ってからレスポンスが帰ってくるまでの待ち時間など、いくつかの設定値については、ＦＣ  ＨＢＡ、ＦＣ  ＳＷ等の機器を提供するベンダが独自に定めることができる。設定値は機器を制御する制御プログラムに含まれている。ＦＣ  ＨＢＡの設定値は拡張ＢＩＯＳに、ＦＣ  ＳＷの設定値はＦＣ  ＳＷ内のファームウェア（ＦＷ）に設定されている。【００１２】
ここで例えば、ＦＣ  ＨＢＡのレスポンス待ち時間が５００ｍｓに設定されており、一方でＦＣ  ＳＷのレスポンス処理時間が最大６００ｍｓであるとする。この設定の場合、ＦＣ  ＨＢＡはコマンド発行後５００ｍｓ以内でのレスポンスをリミットに動作する。一方、ＦＣ  ＳＷは６００ｍｓ以内にレスポンスを返す。【００１３】
ＦＣ  ＳＷからのレスポンス処理時間が５００ｍｓを超えた場合、ＦＣ  ＨＢＡ側でタイムアウトが発生し通信は失敗する。ＦＣ  ＨＢＡとＦＣ  ＳＷとの接続確立処理時に通信に失敗すると、ＦＣ  ＨＢＡとＦＣ  ＳＷ間の接続が失敗し、よってコンピュータ装置はストレージシステムへアクセスできない。【００１４】
このような問題を回避するためには、図３の例では、ＦＣ  ＳＷのレスポンス処理時間に合わせ、ＦＣ  ＨＢＡのレスポンス待ち時間が６００ｍｓ以上であるような拡張ＢＩＯＳを導入すればよい。このような設定値の異なる拡張ＢＩＯＳは、例えば、制御プログラムの版数によって識別され、用いられる。したがって、図３で例示したような問題を解決するため、適切な版数の制御プログラムの導入が求められる。【００１５】
しかし、不適切な制御プログラムによる拡張接続部と外部装置間との接続時に発生する問題は、レスポンス待ち時間とレスポンス処理時間との相違によるものに限定される訳ではない。すなわち、図３のような問題は、レスポンス待ち時間とレスポンス処理時間との関係以外の種々の要因によって発生する。したがって、外部装置と拡張接続部の制御プログラムとの版数の組み合わせにおける動作を保証するために、ベンダは外部装置のファームウェア等の制御プログラムと拡張接続部のＢＩＯＳ等の制御プログラムの版数との組み合わせに対して評価や動作確認を行っている。【００１６】
＜問題例２＞
コンピュータ装置に搭載される拡張接続部の組み合わせによっても基本ＢＩＯＳが拡張接続部を正しく制御できないことがある。図４は、拡張接続部の組み合わせによる問題点を例示する図である。図４では、コンピュータ装置にＰＣＩカードＡ及びＰＣＩカードＢが拡張接続部の一例として搭載されている。【００１７】
それぞれのＰＣＩカードは同一ベンダ製であり、ＰＣＩカードＢの方が新しい製品であると仮定する。ＰＣＩカードは、ＰＣＩカードの種類に対応する機能を提供するコントローラを有する。ＰＣＩカードに搭載されるコントローラをＰＣＩバスインターフェースチップ（以下ＰＣＩ  Ｉ／Ｆチップ）と呼ぶことにする。ＰＣＩカードの種類とは、例えば、ＦＣ  ＨＢＡ等の種々のインターフェース、あるいはビデオ等の規格に対応するカードの種類をいう。それぞれのＰＣＩカードに搭載されるＰＣＩ  Ｉ／Ｆチップは同一の種類のものであるとする。【００１８】
ＰＣＩカードのベンダＩＤ、デバイスＩＤ、クラスコードはＰＣＩ  Ｉ／Ｆチップごとに設定される。このため、ＰＣＩカードＡ及びＰＣＩカードＢのベンダＩＤ、デバイスＩＤ、クラスコードは共通である。一方、それぞれのＰＣＩカードの回路構成は回路Ａ、回路Ｂように異なる。つまり、それぞれのＰＣＩカードの回路は、細かい動作の規定、動作特性に相違がある。【００１９】
ここで、それぞれのＰＣＩカードのＲＯＭには拡張ＢＩＯＳ  Ａ、拡張ＢＩＯＳ  Ｂが搭載されていると仮定する。そして、拡張ＢＩＯＳ  Ａは新しい製品であるＰＣＩカードＢの制御には対応していないことが多い。一方、拡張ＢＩＯＳ  ＢはＰＣＩカードＡおよびＰＣＩカードＢ双方の制御に対応している場合が多い。【００２０】
コンピュータ装置が起動されると、拡張ＢＩＯＳ  Ａおよび拡張ＢＩＯＳ  Ｂがメモリ上へ転送される。拡張ＢＩＯＳは制御の際に、ベンダＩＤ、デバイスＩＤ、クラスコード、あるいはその他のＰＣＩカードの識別子から、制御対象を判断している。ただし、判断に使用する識別子は、拡張ＢＩＯＳに依存している。このため、例えば、ベンダＩＤ、デバイスＩＤ、クラスコードを判断基準とした場合、同一の半導体チップを使用しているＰＣＩカードＡ、ＰＣＩカードＢは同一のカードと判断される。このため、ＰＣＩカードＡ及びＰＣＩカードＢの制御に拡張ＢＩＯＳ  Ａ単体、あるいは拡張ＢＩＯＳ  Ｂ単体が用いられる場合がある。【００２１】
図４の例では、ＰＣＩカードＡの拡張ＢＩＯＳ  Ａは、ＰＣＩカードＡより新しい製品であるＰＣＩカードＢの制御に対応していない。そのため、拡張ＢＩＯＳ  Ａ単体がＰＣＩカードの制御に用いられるとＰＣＩカードＢは期待通り動作しない。【００２２】
このような問題を解決するためには、ＰＣＩカードＡ及びＰＣＩカードＢをともに制御可能な拡張ＢＩＯＳ  Ｂを使用すればよい。このため、同一種類の拡張接続部を複数使用する場合には、使用される複数の拡張接続部を制御可能な制御プログラムを特定するという問題が生じる。【００２３】
＜問題例３＞
上記２点の問題について、問題例１に対しては、ベンダの提供する動作保証情報を調べ、適切な拡張ＢＩＯＳを導入すれば解決できる。問題例２に対しては、拡張ＢＩＯＳ  Ｂを確実に使用するため、ＰＣＩカードＡに搭載される拡張ＢＩＯＳ  Ａを拡張ＢＩＯＳ  Ｂに変更することで解決できる。あるいは、基本ＢＩＯＳの設定で拡張ＢＩＯＳ  Ａを使用しないという手段もある。【００２４】
コンピュータ装置が拡張接続部を正常に制御できない事態を避けるために、コンピュータ装置を扱うユーザは、コンピュータ装置に接続される拡張接続部の制御プログラムを適切に導入することが求められる。以下では、適切な拡張ＢＩＯＳを導入することがユーザの負担となるという問題を示す。ここでは、例として、拡張カードの拡張ＢＩＯＳデータ更新手順の一例を示す。【００２５】
ユーザは、拡張ＢＩＯＳデータ更新のための専用ツールを入手する。そして、ユーザは、専用ツールを記憶媒体へ書き込む。また、ユーザは、専用ツールを起動するためのOperating System（ＯＳ）を用意する。通常、コンピュータ装置は、ＯＳブート監視機能を有する。例えば、ＯＳが特定のブートデバイスから起動されていない場合に、所定時間後に、強制的にＯＳを再度ブートするコンピュータ装置がある。そこで、ユーザは、ＯＳブート監視機能、ブートデバイス等について、コンピュータ装置の設定を確認し、場合によっては強制的にＯＳを再度ブートしないように変更する。【００２６】
次に、ユーザは、専用ツールのためのＯＳの起動ディスクをコンピュータ装置へ挿入する。そして、ユーザは、コンピュータ装置の電源を入れ、起動ディスクからＯＳを起動する。ＯＳが起動されると、ユーザは、専用ツールを書き込んだ記憶媒体をコンピュータ装置へ挿入する。そして、ユーザは、ＯＳ上から専用ツールを起動し、拡張カード上の記憶素子に記憶された拡張ＢＩＯＳデータの更新を行う。その後、ユーザは、ＯＳブート監視機能、ブートデバイスの設定などのコンピュータ装置の設定を復旧する。【００２７】
以上のように、拡張ＢＩＯＳデータ更新は、対象の拡張カードに対応した専用のツールを用いて行われる。専用ツールの入手において、コンピュータ装置を扱うユーザは、更新を行いたい拡張カードの型番等の製品情報を調べた上で、拡張カードのベンダあるいはコンピュータ装置のベンダが提供する適切な拡張ＢＩＯＳを探し出すことが求められる。【００２８】
なお、専用ツールにＯＳが含まれている場合には、専用ツール用のＯＳの起動ディスクを用意する必要はない。ただし、ユーザは、専用ツールが書き込まれた記憶媒体、および読み書きのためのドライブを用意し、確認しておく作業を行うことになる。また、拡張ＢＩＯＳデータを更新するためにユーザはコンピュータ装置のＯＳブート監視機能が無効化されているか、ブートデバイスの設定が問題ないかなどを確認することになる。【００２９】
以上のように、コンピュータ装置が拡張カードを正常に制御するためには、コンピュータ装置の構成変更、拡張ＢＩＯＳ更新、外部装置のファームウェア更新などの度に各拡張カードについて、以上の作業が求められる場合がある。従来技術ではコンピュータ装置等の情報処理装置を扱うユーザが、情報処理装置に接続される拡張接続部、拡張接続部に接続される外部装置の構成に応じて、適切な制御プログラムを拡張接続部に設定することが求められる。以下、拡張接続部と外部装置とを総称して、被接続装置という。また、外部装置を拡張装置ともいう。【００３０】
１つの側面では、開示の技術の目的は、情報処理装置に接続される被接続装置の構成に応じて、適切な制御プログラムを導入できるようにすることを目的とする。
【課題を解決するための手段】
【００３１】
開示の技術の一側面は、情報処理装置として例示できる。本情報処理装置は、被接続装置を接続可能なインターフェースと、インターフェースに接続された被接続装置の構成または動作仕様を含む装置情報を取得する取得手段と、装置情報に基づいて、被接続装置を制御するための制御プログラムを決定する決定手段と、決定された制御プログラムを用いて被接続装置を制御する制御手段と、を備える。
【発明の効果】
【００３２】
本情報処理装置によれば、情報処理装置に接続される被接続装置の構成に応じて、適切な制御プログラムを決定し、被接続装置を制御することができる。
【図面の簡単な説明】
【００３３】
【図１】拡張カードを接続可能なコンピュータ装置の構成を例示する図である。
【図２】コンピュータ装置での処理の流れを例示する図である。
【図３】拡張接続部と、拡張接続部に接続された外部装置間の通信において生じる問題を例示する図である。
【図４】拡張接続部の組み合わせによる問題点を例示する図である。
【図５】実施例１に係るコンピュータ装置の構成を例示する図である。
【図６】コンピュータ装置の処理概要を例示する図である。
【図７】コンピュータ装置の動作フローを例示する図である。
【図８】実施例２に係る情報システムの構成を例示する図である。
【図９】情報処理部の構成を例示する図である。
【図１０】ＦＣ  ＳＷの構成を例示する図である。
【図１１】管理保守部の構成を例示する図である。
【図１２】初期化部の処理フローを例示する図である。
【図１３】構成情報生成部の処理フローを例示する図である。
【図１４】構成情報を例示する図である。
【図１５】構成情報送信部の処理を例示する図である。
【図１６】拡張ＢＩＯＳ受信部の処理を例示する図である。
【図１７】拡張ＢＩＯＳ読み取り部の処理を例示する図である。
【図１８】ハードウェア制御部の処理を例示する図である。
【図１９】コマンド発行部の処理を例示する図である。
【図２０】外部装置管理表を例示する図である。
【図２１】コマンド応答受信部の処理を例示する図である。
【図２２】外部装置情報生成部の処理を例示する図である。
【図２３】外部装置情報を例示する図である。
【図２４】構成情報受信部の処理を例示する図である。
【図２５】拡張カード識別子特定部の処理を例示する図である。
【図２６】拡張カード識別子管理表を例示する図である。
【図２７】拡張ＢＩＯＳ特定部の処理を例示する図である。
【図２８】拡張ＢＩＯＳ管理表を例示する図である。
【図２９】拡張ＢＩＯＳ送信部の処理を例示する図である。
【図３０】通知表示部の処理を例示する図である。
【図３１】データ更新部の処理フローを例示する図である。
【図３２】ＦＣ  ＳＷの接続構築部の処理を例示する図である。
【図３３】ＦＣ  ＳＷの通信部の通信処理を例示する図である。
【図３４】ＦＣ  ＳＷのコマンド受信部の処理を例示する図である。
【図３５】ＦＣ  ＳＷのコマンド応答部の処理を例示する図である。
【図３６】実施例３に係るサーバ装置の構成を例示する図である。
【図３７】実施例３に係る情報処理部の構成を例示する図である。
【図３８】ＦＣ  ＳＷの構成を例示する図である。
【図３９】管理保守部の構成を例示する図である。
【図４０】外部装置情報取得部の処理を例示する図である。
【図４１】構成情報生成部の処理を例示する図である。
【図４２】構成情報を例示する図である。
【図４３】再初期化部の処理を例示する図である。
【図４４】拡張ＢＩＯＳ特定部の処理を例示する図である。
【発明を実施するための形態】
【００３４】
以下、図面を参照して一実施形態に係る情報処理装置について説明する。以下の実施形態の構成は例示であり、本情報処理装置は実施形態の構成には限定されない。
【実施例１】
【００３５】
実施例１では、情報処理装置として、基本ＢＩＯＳと拡張ＢＩＯＳとによって入出力を制御するコンピュータ装置を例示する。実施例１では、コンピュータ装置の構成に応じた適切な拡張ＢＩＯＳのデータが拡張カード上の記憶素子以外の領域に用意される。基本ＢＩＯＳは、拡張カード以外の記憶領域に用意された拡張ＢＩＯＳを用いることで、拡張カードを制御する。拡張ＢＩＯＳが制御プログラムの一例である。【００３６】
図５に、実施例１に係るコンピュータ装置１の構成を例示する。コンピュータ装置１が情報処理装置の一例である。コンピュータ装置１は、情報処理部３と管理保守部２とを有する。情報処理部３は、コンピュータ装置１の種々の機能をユーザに提供する。一方、管理保守部２は、情報処理部３で実行されるコンピュータプログラムの更新等、種々の管理機能を提供する。【００３７】
情報処理部３は、プロセッサ３０と、プロセッサ３０に接続されるインターフェース３６を有する。プロセッサ３０は、インターフェース３６を介して拡張カード３５を接続可能であり、さらに拡張カード３５を介して外部装置４と接続可能である。拡張カード３５が拡張接続部の一例である。拡張カード３５は、被接続装置の一例でもある。また、外部装置４が拡張装置の一例である。また、拡張カード３５と外部装置４との組み合わせが、被接続装置の一例である。プロセッサが制御手段の一例である。【００３８】
インターフェース３６は、プロセッサに接続される内部バスと、周辺装置を接続する外部バスとの間でデータを授受する。実施例１の情報処理部３において、インターフェース３６の種類に限定はない。インターフェース３６としては、Peripheral Component Interconnect（ＰＣＩ）、 ＰＣＩ−Ｘ、ＰＣＩ Express、InfiniBand(インフィニバンド)等を例示できる。情報処理部３は、インターフェース３６に、拡張カード３５と拡張カード３５に接続された外部装置４との組み合わせを追加することによって、構成を柔軟に変更可能である。【００３９】
情報処理部３は、メモリ３１内に基本ＢＩＯＳ３２を格納している。情報処理部３では、プロセッサ３０が基本ＢＩＯＳ３２を実行することによって、入出力機能を提供する。基本ＢＩＯＳ３２は、構成情報生成部３２１、構成情報送信部３２２、拡張ＢＩＯＳ受信部３２３、拡張ＢＩＯＳ読み取り部３２４の各機能部を有する。情報処理部３の図示しないプロセッサは、メモリ３１内の基本ＢＩＯＳ３２を実行し、構成情報生成部３２１、構成情報送信部３２２、拡張ＢＩＯＳ受信部３２３、拡張ＢＩＯＳ読み取り部３２４として機能する。以下、「情報処理部３のプロセッサ３０が構成情報生成部３２１等の機能部により処理を実行する」ことを「構成情報生成部３２１等が処理を実行する」ともいう。また、メモリ３１は、記憶領域の一部に、構成情報格納部３３１、拡張ＢＩＯＳ受信データ格納部３３２を有する。【００４０】
構成情報生成部３２１は、コンピュータ装置１に内蔵されたＲＯＭ等に格納された装置情報、あるいは情報処理部３が持つ各ハードウェアに内蔵されたＲＯＭ等に格納された情報からコンピュータ装置１の構成情報を生成し、構成情報格納部３３１へ格納する。コンピュータ装置１の構成情報としては、例えば、コンピュータ装置１のメーカ、モデル、プロセッサの種類、メモリの容量、周辺装置のインターフェースの種類等を例示できる。なお、プロセッサをＣＰＵともいう。【００４１】
構成情報送信部３２２は、構成情報格納部３３１に格納された構成情報を管理保守部２へ送信する。拡張ＢＩＯＳ受信部３２３は、管理保守部２から送信される拡張ＢＩＯＳデータを受信し、拡張ＢＩＯＳ受信データ格納部３３２に格納する。拡張ＢＩＯＳ読み取り部３２４は、拡張ＢＩＯＳ受信データ格納部３３２内の拡張ＢＩＯＳデータを読み取り、情報処理部３のメモリ３１へ転送する。【００４２】
構成情報格納部３３１は、構成情報生成部３２１によって生成された構成情報を格納する。拡張ＢＩＯＳ受信データ格納部３３２は、拡張ＢＩＯＳ受信部３２３が受信した拡張ＢＩＯＳデータを格納する。また、情報処理部３は管理保守部２と通信するため通信インターフェース（以下、通信Ｉ／Ｆ  ３４）を持つ。【００４３】
管理保守部２は情報処理部３とは独立したプロセッサ２０とメモリ２１によって動作する。また、管理保守部２はストレージ装置２９を有する。ストレージ装置２９は、拡張ＢＩＯＳデータを格納する。【００４４】
管理保守部２はメモリ２１内に、拡張ＢＩＯＳ選択部２２の機能を提供するコンピュータプログラムを保持する。また、拡張ＢＩＯＳ選択部２２は、構成情報受信部２２１、拡張ＢＩＯＳ特定部２２３、および拡張ＢＩＯＳ送信部２２４を有する。管理保守部２のプロセッサ２０は、メモリ２１内のコンピュータプログラムを実行し、拡張ＢＩＯＳ選択部２２、構成情報受信部２２１、拡張ＢＩＯＳ特定部２２３、および拡張ＢＩＯＳ送信部２２４として機能する。以下、「管理保守部２のプロセッサ２０が拡張ＢＩＯＳ選択部２２として、コンピュータプログラムにより処理を実行する」ことを「拡張ＢＩＯＳ選択部２２が処理を実行する」ともいう。管理保守部２は、メモリ２１内に、構成情報格納部２３１、組み合わせ表２３２を格納する。【００４５】
構成情報受信部３２１は、情報処理部３から送信された構成情報を受信し、構成情報格納部２３１へ格納する。拡張ＢＩＯＳ特定部２２３は、構成情報格納部２３１に格納された構成情報と組み合わせ表２３２とを照らし合わせ、コンピュータ装置１の構成に応じた拡張ＢＩＯＳデータを特定する。拡張ＢＩＯＳ送信部２２４は、特定した拡張ＢＩＯＳデータを管理保守部２の持つストレージ２９から読み出し、情報処理部３へ送信する。【００４６】
構成情報格納部２３１は、構成情報受信部２２１が受信したコンピュータ装置１の構成情報を格納する。実施例１における構成情報が装置情報の一例である。組み合わせ表２３２は、拡張ＢＩＯＳ特定部２２３による拡張ＢＩＯＳ特定処理において参照され、使用される。また、管理保守部２は情報処理部３と通信するための通信Ｉ／Ｆ  ２４を有する。【００４７】
図６にコンピュータ装置１の処理概要を例示する。また、図７にコンピュータ装置１の動作フローを例示する。以下、図７にしたがって、コンピュータ装置１の処理を説明する。なお、図６では、データの授受を示す矢印は、メモリ２１、およびメモリ３１上の機能部間で例示されている。【００４８】
ユーザによる起動操作等にしたがって、コンピュータ装置１の情報処理部３が起動する（Ｓ１）。情報処理部３が起動すると、基本ＢＩＯＳ３２が呼び出される。以下、情報処理部３等の「プロセッサがコンピュータプログラムを実行する」ことを「プロセッサがコンピュータプログラムを呼び出す」ともいう。基本ＢＩＯＳ３２は、プロセッサあるいはメモリ３１の初期化、各機器に対するリソース割り当て等を実行する（Ｓ２）。【００４９】
次に、基本ＢＩＯＳ３２は、情報処理部３に接続された拡張カード３５上の記憶素子に格納されている拡張ＢＩＯＳを検索する（Ｓ３）。そして、基本ＢＩＯＳ３２は、検索されたそれぞれの拡張ＢＩＯＳを情報処理部３のメモリ３１へ転送する（Ｓ４）。Ｓ３およびＳ４の処理が実行される場合の例として、拡張カード３５に接続された外部装置の情報を取得するために、拡張ＢＩＯＳによる拡張カード３５の制御を実行する場合を挙げることができる。したがって、拡張カード３５に接続された外部装置の情報を取得しない場合には、Ｓ３とＳ４の処理を省略してもよい。【００５０】
次に、基本ＢＩＯＳ３２は、構成情報生成部３２１を呼び出す（Ｓ５）。構成情報生成部３２１が、取得手段の一例である。実施例１の構成情報が装置情報の一例である。情報処理部３のプロセッサ３０は、構成情報生成部３２１として、メモリ３１上の基本ＢＩＯＳ３２を実行する。構成情報生成部３２１はコンピュータ装置１の情報としてモデル、情報処理部３のプロセッサ、チップセット、メモリ容量等の情報を取得する。【００５１】
また、構成情報生成部３２１は拡張カード３５の情報としてベンダＩＤ、デバイスＩＤ、クラスコード、サブシステムベンダＩＤ、サブシステムＩＤなどを取得する。構成情報生成部３２１が取得する拡張カード３５の情報が第１情報の一例である。また、例えば、拡張カード３５の情報として取得されるベンダＩＤ、デバイスＩＤ、クラスコード、サブシステムベンダＩＤ、サブシステムＩＤなどが、拡張接続部の構成または動作仕様に相当する。【００５２】
さらに、構成情報生成部３２１は拡張カード３５に接続された外部装置の情報として外部装置の種類やファームウェア版数などのうち、情報取得の対象とされている外部装置情報を取得する。構成情報生成部３２１が取得する外部装置の情報が第２情報の一例である。また、例えば、外部装置の種類やファームウェア版数などが、外部装置（拡張装置）の構成または動作仕様に相当する。実施例１のコンピュータ装置１では、第１情報と第２情報とが取得されるので、コンピュータ装置１に対して適切な拡張ＢＩＯＳを決定できる。【００５３】
情報取得の対象は、例えば、構成情報生成部３２１として情報処理部３が実行するコンピュータプログラム内に定義しておけばよい。情報取得の対象は、例えば、構成情報生成部３２１に付与する外部のパラメータテーブル等に定義しておいてもよい。そして、構成情報生成部３２１は取得した情報を基に、構成情報を生成する。生成された構成情報は情報処理部３の構成情報格納部３３１へ格納される。構成情報生成部３２１による、構成情報取得時のデータフローは図６の矢印で示されている。【００５４】
次に、基本ＢＩＯＳ３２は、構成情報送信部３２２を呼び出す（Ｓ５）。構成情報送信部３２２は構成情報格納部３３１へ格納された構成情報を、通信Ｉ／Ｆ  ３４を通じて管理保守部２へ送信する。構成情報送信部３２２から管理保守部２への構成情報のフローも、図６の矢印で示されている。【００５５】
次に、拡張ＢＩＯＳ受信部３２３が呼び出される（ＳＡ）。拡張ＢＩＯＳ受信部３２３は、管理保守部２から通信Ｉ／Ｆ  ３４を介して拡張ＢＩＯＳデータを受信する。管理保守部２から拡張ＢＩＯＳデータが送信されると、拡張ＢＩＯＳ受信部３２３は受信した拡張ＢＩＯＳデータを拡張ＢＩＯＳ受信データ格納部３３２へ格納する。管理保守部２から拡張ＢＩＯＳ受信部３２３への拡張ＢＩＯＳデータのフロー、および、拡張ＢＩＯＳ受信部３２３から拡張ＢＩＯＳ受信データ格納部３３２への拡張ＢＩＯＳデータのフローは、図６に矢印で示されている。【００５６】
次に、拡張ＢＩＯＳ読み取り部３２４が呼び出される。例えば、拡張ＢＩＯＳ受信部３２３が拡張ＢＩＯＳデータの拡張ＢＩＯＳ受信データ格納部３３２への格納を完了すると、基本ＢＩＯＳ３２が、拡張ＢＩＯＳ読み取り部３２４を呼び出すようにすればよい。拡張ＢＩＯＳ読み取り部３２４は拡張ＢＩＯＳ受信データ格納部３３２に格納された拡張ＢＩＯＳデータを検索する（ＳＢ）。そして、拡張ＢＩＯＳ読み取り部３２４は、検索した拡張ＢＩＯＳデータを情報処理部３のメモリ３１上へ転送する（ＳＣ）。拡張ＢＩＯＳ読み取り部３２４による拡張ＢＩＯＳデータ転送時のデータのフローは図６に矢印で示されている。【００５７】
次に、情報処理部３のプロセッサ３０は、拡張ＢＩＯＳによる拡張カード３５の初期化、初期設定、制御を行った後（ＳＤ）、ＯＳを起動する（ＳＥ）。次に、管理保守部２の動作を説明する。まず、管理保守部２のプロセッサ２０は構成情報受信部２２１を呼び出す。構成情報受信部２２１は、通信Ｉ／Ｆ  ２４を介して情報処理部３から送られてくる構成情報を受信する機能を持つ。構成情報受信部２２１は、構成情報を受信すると、受信した構成情報を管理保守部２の構成情報格納部２３１へ格納する（Ｓ６）。構成情報受信部２２１から構成情報格納部２３１に格納される構成情報のフローは図６に矢印で示される。【００５８】
次に、管理保守部２のプロセッサは拡張ＢＩＯＳ特定部２２３を呼び出す。拡張ＢＩＯＳ特定部２２３は、構成情報格納部２３１に格納された構成情報と、組み合わせ表２３２を比較する（Ｓ７）。組み合わせ表２３２には、コンピュータ装置１の構成を定義する構成情報、例えば、コンピュータ装置１の情報、拡張カード３５の情報、あるいは、外部装置に関する外部装置情報等と、適切な拡張ＢＩＯＳとの関係が定義されている。そして、拡張ＢＩＯＳ特定部２２３は、構成に応じた適切な拡張ＢＩＯＳを特定する（Ｓ８）。拡張ＢＩＯＳ特定部２２３は、決定手段の一例である。処理部３のプロセッサ３０は、拡張ＢＩＯＳ特定部２２３として、メモリ３１上の基本ＢＩＯＳ３２を実行する。【００５９】
次に、管理保守部２のプロセッサは拡張ＢＩＯＳ送信部２２４を呼び出す。拡張ＢＩＯＳ送信部２２４は、拡張ＢＩＯＳ特定部２２３によって特定された拡張ＢＩＯＳのデータを、管理保守部のストレージ装置２９から読み出し、通信Ｉ／Ｆ  ２４を介して情報処理部３へ送信する（Ｓ９）。拡張ＢＩＯＳ送信部２２４から情報処理部３への拡張ＢＩＯＳのデータのフローは図６に矢印で示される。【００６０】
以上述べたように、図６および図７に示した動作フローにより、コンピュータ装置１の構成に応じた適切な拡張ＢＩＯＳが特定され、情報処理部３に導入される。さらに、図６および図７の動作フローでは、コンピュータ装置１のユーザは、どの拡張ＢＩＯＳのデータが適切な拡張ＢＩＯＳに該当するかを意識しなくてもよい。したがって図６および図７の動作フローによりユーザが、コンピュータ装置１に含まれる装置の構成に応じて適切な拡張ＢＩＯＳを考慮すること、あるいは、拡張カード３４の記憶素子上の拡張ＢＩＯＳデータを適切なものに書き換えること等の拡張ＢＩＯＳ管理の負担が軽減できる。【００６１】
例えば、ユーザがコンピュータ装置１を導入後に、拡張カード３５、あるいは外部装置４を追加する場合、あるいは、既存の拡張カード３５、あるいは外部装置４に代えて、他の拡張カードあるいは外部装置を導入する場合を想定する。このように、ユーザがコンピュータ装置１を導入後に、拡張カード３５あるいは外部装置４の構成を変更したとしても、実施例１のコンピュータ装置１では、構成情報受信部２２１が、情報処理部３の構成情報を受信し、拡張ＢＩＯＳ特定部２２３が、組み合わせ表２３２にしたがって、適切な拡張ＢＩＯＳを特定し、拡張ＢＩＯＳ送信部２２４が、ストレージ装置２９内の適切な拡張ＢＩＯＳのデータを情報処理部３に引き渡す。したがって、ユーザが、コンピュータ装置１を導入後に、拡張カード３５、外部装置４を変更したとしても、コンピュータ装置１の処理によって、情報処理部３は、適切な拡張ＢＩＯＳにより、拡張カード３５、外部装置４を制御することができる。したがって、拡張カード３５、外部装置４の変更に伴う、ユーザ負担を軽減できる。【００６２】
そのため、コンピュータ装置は、ストレージ装置２９内の拡張ＢＩＯＳのデータおよび組み合わせ表２３２を更新するようにすればよい。更新は、定期的に実行してもよい。また、更新は、ユーザの更新指示にしたがって実行してもよい。また、更新は、拡張カード３５、外部装置４の変更を契機として実行してもよい。
【実施例２】
【００６３】
＜構成＞
図８に実施例２に係る情報システムの構成図を例示する。本情報システは、サーバ装置１Ａと、サーバ装置１Ａに接続されるFibre Channel Switch （ＦＣ  ＳＷ）４１Ａ、４１Ｂと、ＦＣ  ＳＷ  ４１Ａ、４１Ｂにそれぞれ接続されるストレージシステム４２Ａ、４２Ｂと、表示装置４６とを有している。また、サーバ装置１Ａは、情報処理部３と管理保守部２を有している。したがって、実施例１の外部装置４として、実施例２では、ＦＣ  ＳＷ  ４１Ａ、４１Ｂ、およびストレージシステム４２Ａ、４２Ｂが例示されている。ＦＣ  ＳＷ  ４１Ａ、４１Ｂが拡張装置の一例である。【００６４】
また、情報処理部３は、基本ＢＩＯＳ３２と格納部３３とを含むメモリと、Fibre Channel Host Bus Adapter（ＦＣ  ＨＢＡ）３５Ａ、３５Ｂと、通信Ｉ／Ｆ  ３４とを有している。実施例２では、情報処理部３が実施例１の拡張カード３４として、ＦＣ  ＨＢＡ  ３５Ａ、３５Ｂを有する。情報処理部３の詳細構成は、図９により後述する。【００６５】
また、管理保守部２は、メモリ上に、拡張ＢＩＯＳ選択２２、外部装置情報取得部２６、データ更新部、および、通知表示部として機能するコンピュータプログラムと、格納部２３とを有する。また、管理保守部２は、通信Ｉ／Ｆ  ２４、ストレージ装置２９、ネットワークＩ／Ｆ  ２５、および表示Ｉ／Ｆ  ２６を有する。表示Ｉ／Ｆ  ２６には、表示装置４６が接続される。【００６６】
また、管理保守部２は、ネットワークＩ／Ｆ  ２５を通じて、ＦＣ  ＳＷ  ４１Ａ、４１Ｂと接続される。実施例１では、情報処理部３が、拡張カード３５を介して、構成情報の一部として外部装置４に関する情報を取得した。一方、実施例２では、管理保守部２の外部装置情報取得部２６が実施例１の外部装置４に相当するＦＣ  ＳＷ  ４１Ａ、４１Ｂに関する情報を取得する。なお、管理保守部２の詳細構成は、図１１により後述する。【００６７】
表示装置４６は、例えば、液晶ディスプレイ、エレクトロルミネッセンスパネル、プラズマディスプレイ、Cathode Ray Tube（陰極線管、ＣＲＴ）等である。また、表示Ｉ／Ｆ  ２６は、管理保守部２のプロセッサ２０およびチップセットと、表示装置４６との間のインターフェースである。【００６８】
以下、情報処理部３、管理保守部２、ＦＣ  ＨＢＡ  ３５Ａ、３５ＢおよびＦＣ  ＳＷ  ４１Ａ、４１Ｂの詳細構成を例示する。なお、ＦＣ  ＨＢＡ  ３５Ａ、３５Ｂを総称する場合には、単に、ＦＣ  ＨＢＡという。ただし、実施例２の情報システムにおいて、ＦＣ  ＨＢＡ  ３５が２個に限定される訳ではない。同様に、ＦＣ  ＳＷ  ４１Ａ、４１Ｂを総称する場合には、ＦＣ  ＳＷ  ４１という。ただし、実施例２の情報システムにおいて、ＦＣ  ＳＷ  ４１が２個に限定される訳ではない。【００６９】
図９に情報処理部３の構成図を例示する。図９のように、サーバ装置１Ａ内の情報処理部３は、情報処理部３の機能を提供するためのプロセッサ３０とメモリ３１とＰＣＩバスインターフェース３６Ａ、３６Ｂを有する。プロセッサ３０とメモリ３１とＰＣＩバスインターフェース３６Ａ、３６Ｂとは内部バスで接続される。ＰＣＩバスインターフェース３６Ａ、３６Ｂは、実施例１のインターフェース３６の一例である。ＰＣＩバスインターフェース３６Ａ、３６Ｂは、ＰＣＩバスによる接続機能を提供する。ＰＣＩバスに接続される拡張カードをＰＣＩ拡張カードという。実施例２では、拡張接続部の一例として、ＰＣＩ拡張カードを用いる。【００７０】
ＰＣＩバスインターフェース３６Ａ、３６Ｂには、ＰＣＩ拡張カードとしてＦＣ  ＨＢＡ  ３５Ａ及びＦＣ  ＨＢＡ  ３５Ｂが接続されている。ＦＣ  ＨＢＡ  ３５Ａ及びＦＣ  ＨＢＡ  ３５Ｂは、実施例１の拡張カードの一例である。ＦＣ  ＨＢＡ  ３５Ａ及びＦＣ  ＨＢＡ  ３５Ｂは、拡張接続部の一例でもある。また、ＦＣ  ＨＢＡ  ３５ＡとＦＣ  ＳＷ  ４１Ｂの組み合わせは被接続装置の一例である。同様に、また、ＦＣ  ＨＢＡ  ３５ＢとＦＣ  ＳＷ  ４１Ｂの組み合わせは被接続装置の一例である。さらに、情報処理部３は管理保守部２との通信を行うための通信Ｉ／Ｆ  ３４を持つ。【００７１】
さらに、実施例１と同様、情報処理部３は、メモリ３１上に基本ＢＩＯＳ３２を格納する領域と、格納部３３とを有する。基本ＢＩＯＳ３２は、初期化部３２５、構成情報生成部３２１、構成情報送信部３２２、拡張ＢＩＯＳ受信部３２３、拡張ＢＩＯＳ読み取り部３２４、およびハードウェア制御部３２６を有する。【００７２】
初期化部３２５は、情報処理部３が持つプロセッサ３０やメモリ３１の初期診断、初期化、ハードウェアに対するリソース割り当て等を実行する。構成情報生成部３２１は、サーバ装置１Ａが持つ各ハードウェアの情報から構成情報を生成する。ただし、実施例１と異なり、構成情報生成部３２１は、構成情報の中に、外部装置４の一例であるＦＣ  ＳＷ  ４１の情報を含めない。構成情報生成部３２１は、第１取得手段の一例と考えこともできる。情報処理部３のプロセッサ３０は、構成情報生成部３２１として、メモリ３１上の基本ＢＩＯＳ３２を実行する。【００７３】
ハードウェア制御部３２６は、拡張ＢＩＯＳ読み取り部３２４によってメモリ３１に格納された拡張ＢＩＯＳを用いて、各ＰＣＩ拡張カードのデバイス依存の初期化や設定を実施し、ハードウェアの制御を行う。なお、構成情報送信部３２２、拡張ＢＩＯＳ受信部３２３、拡張ＢＩＯＳ読み取り部３２４は、実施例１のものと同様である。【００７４】
実施例２では、ＦＣ  ＨＢＡ３５Ａ、３５Ｂは同一ベンダ製であると仮定する。また、ＦＣ  ＨＢＡ  ３５Ｂの方がＦＣ  ＨＢＡ  ３５Ａよりも新しい製品であると仮定する。また、それぞれのＦＣ  ＨＢＡ  ３５Ａ、３５Ｂに搭載されるＰＣＩ  Ｉ／Ｆチップは同一のものである。なお、ＰＣＩ  Ｉ／Ｆチップは、ＦＣ  ＨＢＡ  ３５Ａ、３５ＢがＰＣＩバスを通じて、情報処理部３と通信するとともに、ＦＣ  ＨＢＡ  ３５Ａ、３５Ｂに接続される外部装置、例えば、ＦＣ  ＳＷ  ４１Ａ、４１Ｂと通信する。【００７５】
ＦＣ  ＨＢＡ  ３５Ａ、３５Ｂは、不揮発性の記憶装置、例えば、ＥＥＰＲＯＭを有している。ＦＣ  ＨＢＡ  ３５Ａ、３５ＢのＥＥＰＲＯＭ内にはそれぞれ拡張ＢＩＯＳデータＡ、拡張ＢＩＯＳデータＢが格納されている。【００７６】
拡張ＢＩＯＳ  Ａは新しい製品であるＦＣ  ＨＢＡ  ３５Ｂの制御には対応していないと仮定する。一方、拡張ＢＩＯＳ  ＢはＦＣ  ＨＢＡ  ３５ＡおよびＦＣ  ＨＢＡ  ３５Ｂ双方の制御に対応していると仮定する。また、実施例２では、ＦＣ  ＨＢＡ  ３５Ａ、３５Ｂ双方の制御に対応しており、さらにＦＣ  ＳＷ  ４１と正しく通信を行えることがベンダによって保証されているような拡張ＢＩＯＳ  Ｃがあるものと仮定して説明をする。すなわち、拡張ＢＩＯＳ  Ｃを用いることにより、サーバ装置１Ａは正常動作する。【００７７】
図１０にＦＣ  ＳＷ  ４１の構成を例示する。ＦＣ  ＳＷ  ４１は、ＦＣ  ＳＷ  ４１を動作させるための独立したプロセッサ４１０とメモリ４１１を持ち、ＦＣ  ＳＷ  ４１のファームウェアによって制御される。ＦＣ  ＳＷ  ４１には複数のファイバチャネルインターフェース（以下ＦＣ  Ｉ／Ｆ  ４１６）が搭載されている。また、ＦＣ  ＳＷ  ４１にはネットワークインターフェース（以下、ネットワークＩ／Ｆ  ４１７）が搭載されている。ＦＣ  ＳＷ  ４１はＬＡＮ（Local Area Network）経由でネットワークに接続することができる。実施例２では、例えば、図８のＦＣ  ＳＷ  ４１ＡにはＩＰアドレス「１０．０．０．１００」、ＦＣ  ＳＷ  ４１Ｂには「１０．０．０．１０１」が割り当てられていると仮定する。【００７８】
また、ＦＣ  ＳＷ  ４１のファームウェアは、接続構築部４１２、通信部４１３、コマンド受信部４１４、コマンド応答部４１５を有する。接続構築部４１２は、ＦＣ  ＨＢＡやストレージシステム４２との接続を確立する。【００７９】
通信部４１３は、ＦＣ  ＨＢＡやストレージシステム４２との通信を行う。コマンド受信部４１４は、ネットワークＩ／Ｆ  ４１７を介しコマンドを受信する。コマンド応答部４１５は、ネットワークＩ／Ｆ  ４１７を介しコマンドに応答する。実施例２では、コマンド受信部４１４が「ｉｎｑｕｉｒｙ」コマンドを受け取るとＦＣ  ＳＷ  ４１の装置情報をコマンド応答部４１５が送信するものとする。【００８０】
図１１に管理保守部２の構成図を例示する。管理保守部２は、管理保守部２を動作させるためのプロセッサ２０とメモリ２１を有する。また、管理保守部２は、情報処理部３と通信を行うための通信Ｉ／Ｆ  ２４、表示装置４６（図８参照）と接続するための表示インターフェース（以下、表示Ｉ／Ｆ  ２６）、ＬＡＮ経由でネットワークと接続するためのネットワークＩ／Ｆ  ２５を有する。管理保守部２には、ストレージインターフェース（以下、ストレージＩ／Ｆ  ２５Ａ）を介してストレージ装置２９が接続されている。ストレージ装置２９は、例えば、フラッシュメモリ等である。ストレージ装置２９内には、複数種類の拡張ＢＩＯＳデータが格納される。複数種類の拡張ＢＩＯＳデータの中には、ＦＣ  ＨＢＡ  ３５Ａ及びＦＣ  ＨＢＡ  ３５Ｂをともに制御可能で、外部装置４として接続されるＦＣ  ＳＷ  ４１に対する待ち時間が６００ｍｓに設定されているなど、ベンダによって動作保証されている拡張ＢＩＯＳ  Ｃが含まれている。【００８１】
管理保守部２は、プロセッサ２０を拡張ＢＩＯＳ選択部２２、外部装置情報取得部２７、通知表示部、およびデータ更新部として機能させるコンピュータプログラムをメモリ２１内の領域に保持する。また、管理保守部２は、メモリ２１内に格納部２３を有する。【００８２】
格納部２３は、管理保守部２が管理する各種情報、例えば、情報処理部３を管理し、保守するための情報処理部３に関する情報を格納する。例えば、格納部２３は、組み合わせ表格納部２３２Ａ内に、拡張ＢＩＯＳ管理表２３２Ｂ、および拡張カード識別子管理表２３２Ｃを保持する。組み合わせ表格納部２３２Ａの拡張ＢＩＯＳ管理表２３２Ｂ、および拡張カード識別子管理表２３２Ｃを単に組み合わせ表ともいう。拡張ＢＩＯＳ管理表２３２Ｂについては図２８により後述する。また、拡張カード識別子管理表２３２Ｃについては、図２６により後述する。【００８３】
さらに、格納部２３は、情報処理部３の構成情報を格納する構成情報格納２３１、外部装置管理表を格納する外部装置管理表格納部２３３、および、情報処理部３のＦＣ  ＨＢＡに接続された外部装置の情報を格納する外部装置情報格納部２３４を有する。構成情報については、図１４により後述する。また、外部装置管理表については、図２０により後述する。また、外部装置情報については、図２３により後述する。【００８４】
（外部装置情報取得部）
次に、外部装置情報取得部２７の機能を説明する。外部装置情報取得部２７は、コマンド発行部２７１、コマンド応答受信部２７２、外部装置情報生成部２７３により、通信Ｉ／Ｆ  ２４を介して取得した外部装置（例えば、図８のＦＣ  ＳＷ  ４１）の情報から、外部装置情報を生成する。外部装置情報取得部２７は、第２取得手段の一例である。管理保守部２のプロセッサ２０は、外部装置情報取得部２７として、メモリ２１上のコンピュータプログラムを実行する。【００８５】
コマンド発行部２７１は、ネットワークＩ／Ｆ  ２５を介して外部装置管理表に記載された外部装置へ、装置情報問い合わせコマンドを発行する。コマンド応答受信部２７２は、ネットワークＩ／Ｆ  ２５を介して外部装置からの装置情報問い合わせコマンドに対する応答結果を受信する。外部装置情報生成部２７３は、コマンド応答結果から外部装置情報を生成する。外部装置情報生成部２７３は、生成した外部装置情報を外部装置情報格納部２３１に格納する。【００８６】
（拡張ＢＩＯＳ選択部）
以下、拡張ＢＩＯＳ選択部２２の各機能を説明する。拡張ＢＩＯＳ選択部２２は、構成情報受信部２２１、拡張カード識別子特定部２２２、拡張ＢＩＯＳ特定部２２３、拡張ＢＩＯＳ送信部２２４により、サーバ装置１Ａの構成情報および外部装置の情報に対して、適切な拡張ＢＩＯＳを選択し、情報処理部３に提供する。第１取得手段としての構成情報生成部３２１により得られた構成情報と、第２取得手段としての外部装置情報取得部２７により得られた外部装置情報とによって、拡張ＢＩＯＳ選択部２２は、適切な拡張ＢＩＯＳの選択が可能となる。【００８７】
構成情報受信部２２１は、通信Ｉ／Ｆ  ２４を介して、情報処理部３から送信されたサーバ装置１Ａの構成情報を受信する。構成情報受信部２２１は、第１取得手段の一例と考えることもできる。管理保守部２のプロセッサ２０は、構成情報受信部２２１として、メモリ２１上のコンピュータプログラムを実行する。【００８８】
拡張カード識別子特定部２２２は、受信したサーバ装置１Ａの構成情報と組み合わせ表格納部２３２Ａの拡張カード識別子管理表２３２Ｃとを照らし合わせ、拡張カード識別子を特定する。【００８９】
拡張ＢＩＯＳ特定部２２３は、外部装置情報取得部２７が取得した外部装置情報と構成情報受信部２２１が受信した構成情報とから、適切な拡張ＢＩＯＳデータを特定する。拡張ＢＩＯＳ特定部２２３は、決定手段の一例である。管理保守部２のプロセッサ２０は、拡張ＢＩＯＳ特定部２２３として、メモリ２１上のコンピュータプログラムを実行する。【００９０】
すなわち、拡張ＢＩＯＳ特定部２２３は、外部装置情報と、構成情報と、拡張カード識別子との組み合わせを基に、組み合わせ表格納部２３２Ａの拡張ＢＩＯＳ管理表２３２Ｂを参照し、適切な拡張ＢＩＯＳデータを特定する。拡張ＢＩＯＳ送信部２２４は、特定した拡張ＢＩＯＳデータを管理保守部２のストレージ装置２９から読み出し、通信Ｉ／Ｆ  ２４を介して情報処理部３へ送信する。【００９１】
（その他の機能部）
通知表示部は、表示Ｉ／Ｆ  ２６を介して表示装置４６に種々の情報を表示する。表示される情報は、例えば、サーバ装置１Ａの構成情報、外部装置の情報、サーバ装置１Ａの構成に対応する適切な拡張ＢＩＯＳが特定できなかったときの通知等である。【００９２】
データ更新部は、ネットワークＩ／Ｆ  ２５を介してネットワーク上のコンピュータ、サーバ等から拡張ＢＩＯＳ管理表２３２Ｂ、拡張カード識別子管理表２３２Ｃを取得し、組み合わせ表格納部２３２Ａに格納する。また、データ更新部は、ネットワークＩ／Ｆ  ２５を介してネットワーク上のコンピュータ、サーバ等から拡張ＢＩＯＳデータ等を取得し、ストレージ装置２９に格納する。例えば、データ更新部は、例えば、サーバ装置１Ａのベンダ、ＰＣＩ拡張カードのベンダ等が提供するネットワーク上のサーバから、拡張ＢＩＯＳ管理表２３２Ｂ、拡張カード識別子管理表２３２Ｃ、拡張ＢＩＯＳデータを所定の契機に取得すればよい。所定の契機は、所定の時期、ユーザ操作によって指示されたとき、あるいは、サーバ装置１Ａの構成の変更、ＰＣＩ拡張カードの変更、追加等がなされたとき等である。【００９３】
＜処理フロー＞
情報処理部３のプロセッサ３０は、初期化部３２５、構成情報生成部３２１、構成情報送信部３２２、拡張ＢＩＯＳ受信部３２３、拡張ＢＩＯＳ読み取り部３２４、およびハードウェア制御部３２６として、メモリ３１上の基本ＢＩＯＳ３２を実行する。実施例２では、はじめ、サーバ装置１Ａ内の情報処理部３の電源は投入されておらず、管理保守部２、および、ＦＣ  ＳＷ  ４１Ａ、４１Ｂの電源は入っているものとする。【００９４】
図１２に、初期化部３２５の処理フローを例示する。情報処理部３の電源投入後、図１２の処理を実行する基本ＢＩＯＳ３２の初期化部３２５が呼び出される。初期化部３２５は、まず、情報処理部３のプロセッサ初期診断・初期化（Ｓ２１）、メモリの初期診断・初期化を実行する（Ｓ２２）。次に、情報処理部３は、情報処理部３内にある各種ハードウェアの初期診断およびリソース割り当てを実行する（Ｓ２３）。ここで、リソース割り当てでは、例えば、メモリ３１の領域をレジスタとして用いる各種ハードウェアに対して、メモリ３１の領域が割り当てられる。【００９５】
図１３に、構成情報生成部３２１の処理フローを例示する。構成情報生成部３２１はサーバ装置１Ａのハードウェアの構成に係る情報を収集し、構成情報を生成する。構成情報生成部３２１は、まず、サーバ装置１Ａのモデル情報を取得する（Ｓ５１）。サーバ装置１Ａのモデル情報は、例えば、情報処理部３のＲＯＭ上等に格納されている。次に、構成情報生成部３２１は、情報処理部３のプロセッサ３０およびメモリ３１の構成に関する情報、チップセットの情報等を取得する（Ｓ５２）。Ｓ５１およびＳ５２の処理で取得した情報は、サーバ情報と呼ばれる。【００９６】
次に、構成情報生成部３２１は、拡張カードの情報としてＦＣ  ＨＢＡ  ３５のベンダＩＤ、デバイスＩＤ、クラスコード、サブシステムベンダＩＤ、サブシステムＩＤを取得する（Ｓ５３）。ＦＣ  ＨＢＡ  ３５の情報は、コンフィグレーション・レジスタを呼び出すことで取得可能である。コンフィグレーション・レジスタは、入出力処理用のために情報処理部３の物理アドレス空間の一部に割り付けられている。構成情報生成部３２１がＦＣ  ＨＢＡ  ３５の情報取得指令用のコンフィグレーション・レジスタに所定の値を設定する。すると、ＦＣ  ＨＢＡ  ３５が自身の情報を情報出力用のコンフィグレーション・レジスタに出力する。次に、構成情報生成部３２１は、図１４で例示される構成情報を生成する（Ｓ５４）。構成情報生成部３２１は、生成した構成情報を構成情報格納部３３１へ格納する。【００９７】
図１４に、構成情報のデータ例を示す。図１４の例では、構成情報は、サーバ情報と拡張カード情報を含む。また、サーバ情報は、モデル情報、ＣＰＵに関する情報、チップセットに関する情報、メモリに関する情報を含む。さらに、モデル情報は、サーバのメーカを指定する情報、モデルを指定する情報、およびシリアル番号を含む。メモリに関する情報とは、例えば、メモリの容量等である。【００９８】
拡張カード情報は、サーバ装置１Ａが接続されるそれぞれの拡張カードについて、ベンダＩＤ、デバイスＩＤ、クラスコード、サブシステムベンダＩＤ、サブシステムＩＤを有する。【００９９】
図１５に構成情報送信部３２２の処理を例示する。構成情報送信部３２２は構成情報格納部３３１に格納された構成情報を読み出す（Ｓ５５）。そして、構成情報送信部３２２は通信Ｉ／Ｆ  ３４を介して構成情報を管理保守部２へ送信する（Ｓ５６）。【０１００】
図１６に、拡張ＢＩＯＳ受信部３２３の処理を例示する。拡張ＢＩＯＳ受信部３２３は管理保守部２から送信される拡張ＢＩＯＳデータを受信する機能を有する。拡張ＢＩＯＳ受信部３２３は、起動されると、定められたタイムアウト値に達するまで管理保守部２からの拡張ＢＩＯＳデータ送信を待つ（ＳＡ１）。【０１０１】
拡張ＢＩＯＳデータが受信されると（ＳＡ２でＹの場合）、拡張ＢＩＯＳ受信部３２３は、送信された拡張ＢＩＯＳデータを拡張ＢＩＯＳ受信データ格納部３３２へ格納する（ＳＡ３）。タイムアウト値に達するまで管理保守部２から拡張ＢＩＯＳデータが送信されない場合、あるいは拡張ＢＩＯＳ受信部３２３が管理保守部２からの送信終了通知を受け取った場合（ＳＡ１でＹの場合）、拡張ＢＩＯＳ受信部３２３は処理を終了する。以上の処理により、タイムアウト値に達する前に拡張ＢＩＯＳデータが管理保守部２から送信されると、受信された拡張ＢＩＯＳデータが拡張ＢＩＯＳ受信データ格納部３３２に格納される。【０１０２】
図１７に、拡張ＢＩＯＳ読み取り部３２４の処理を例示する。拡張ＢＩＯＳ読み取り部３２４は、拡張ＢＩＯＳ受信部３２３の処理終了後に起動される。拡張ＢＩＯＳ読み取り部３２４は情報処理部３のメモリ３１に、拡張ＢＩＯＳ受信データ格納部３３２の拡張ＢＩＯＳデータを転送する。【０１０３】
拡張ＢＩＯＳ読み取り部３２４は、起動された後、拡張ＢＩＯＳ受信データ格納部３３２の拡張ＢＩＯＳデータを検索する。拡張ＢＩＯＳ受信データ格納部３３２に拡張ＢＩＯＳデータがある場合（ＳＣ１でＹの場合）、拡張ＢＩＯＳ読み取り部３２４は、検索された拡張ＢＩＯＳデータをメモリ３１上へ転送する（ＳＣ２）。拡張ＢＩＯＳ受信部３２３による処理でのタイムアウトなどにより拡張ＢＩＯＳデータが拡張ＢＩＯＳ受信データ格納部３３２にない場合、拡張ＢＩＯＳ読み取り部３２４は拡張カードの記憶素子内の拡張ＢＩＯＳデータを情報処理部３のメモリ上へ転送する（ＳＣ３）。以上の処理によって、拡張ＢＩＯＳ受信データ格納部３３２に拡張ＢＩＯＳデータＣが格納されている場合、メモリ３１上に適切な拡張ＢＩＯＳが転送される。【０１０４】
図１８に、ハードウェア制御部３２６の処理を例示する。ハードウェア制御部３２６は拡張ＢＩＯＳを用いてハードウェアを制御する機能を有する。ハードウェア制御部３２６は、メモリ３１上の拡張ＢＩＯＳを用いて、拡張カードに対しデバイス依存の初期化を実施する（ＳＤ１）。デバイス依存の初期化としては、拡張カードごとに固有の初期化処理、例えば、ＦＣ  ＨＢＡ  ３５に対するレジスタのクリア処理、初期値設定等を例示できる。【０１０５】
次に、ハードウェア制御部３２６は、拡張カードに対してデバイスの設定を実施する（ＳＤ２）。拡張カードに対するデバイスの設定としては、拡張カードごとに固有の設定処理、例えば、ＦＣ  ＨＢＡ  ３５に対するＰＣＩバスとの接続設定等を例示できる。【０１０６】
そして、ハードウェア制御部３２６は、拡張ＢＩＯＳを用いた拡張カードのデバイス制御を開始する（ＳＤ３）。以上の処理によって、ＦＣ  ＨＢＡ  ３５ＡおよびＦＣ  ＨＢＡ  ３５Ｂは拡張ＢＩＯＳによって制御される。例えば、拡張ＢＩＯＳ内に設定されているレスポンス待ち時間等にしたがって、タイムアウトの判定がなされる。【０１０７】
次に、管理保守部２の処理を説明する。ここでは、管理保守部２の処理のうち、外部装置情報取得処理と拡張ＢＩＯＳ選択処理を例示する。
まず、外部装置情報取得処理について説明する。外部装置情報取得処理は、外部装置情報取得部２７により実行される。外部装置情報を最新に保つために、管理保守部２は外部装置情報取得部２７を定期的に呼び出す。外部装置情報取得部２７は、コマンド発行部２７１、コマンド応答受信部２７２、および外部装置情報生成部２７３を含む。【０１０８】
図１９に、コマンド発行部２７１の処理を例示する。コマンド発行部２７１は、外部装置管理表（図２０参照）に記載されたＩＰアドレスと、外部装置種類を参照する（Ｓ６１、Ｓ６２）。そして、コマンド発行部２７１は、外部装置に対して装置情報問い合わせコマンドを発行する（Ｓ６３）。実施例２では、図２０のようにＦＣ  ＳＷ  ４１Ａ及び４１Ｂの外部装置種類をともに「ＦＣＳＷ−０１２」であるとする。例えば、「ＦＣＳＷ−０１２」の装置情報問い合わせコマンドが「ｉｎｑｕｉｒｙ」であるとすると、コマンド発行部２７１は１０．０．０．１００と１０．０．０．１０１それぞれに「ｉｎｑｕｉｒｙ」コマンドを発行する。【０１０９】
なお、コマンド発行部２７１は、コンピュータプログラム内で外部装置種類を基に、外部装置管理表からＩＰアドレスを参照し、装置情報問い合わせコマンドを発行してもよい。また、コマンド発行部２７１は、外部装置管理表に記載されたＩＰアドレスを順次参照し、装置情報問い合わせコマンドを発行してもよい。【０１１０】
図２０に外部装置管理表のデータ例を示す。図２０の表の１つの行が、１つのレコードを示している。外部装置管理表の１つレコードは、例えば、Internet Protocol(ＩＰ）アドレスと外部装置種類を特定する情報とを含む。【０１１１】
図２１に、コマンド応答受信部２７２の処理を例示する。コマンド応答受信部２７２は、タイムアウト値に達するまで（Ｓ６４でＹの場合まで）、外部装置からの装置情報問い合わせコマンド応答結果を待つ（Ｓ６５）。コマンド発行部２７２は、コマンド発行数分の応答受信、あるいはタイムアウトによって処理を終了する（Ｓ６６でＹ）。【０１１２】
図２２に、外部装置情報生成部２７３の処理を例示する。外部装置情報生成部２７３はコマンド応答受信部２７２が受信した装置情報問い合わせコマンド応答結果から、外部装置情報（図２３参照）を生成する（Ｓ６７）。外部装置情報生成部２７３は、生成した外部装置情報を外部装置情報格納部２３４へ格納する（Ｓ６８）。以上の処理の結果、外部装置情報としてベンダ名、型番、ファームウェア（ＦＷ版）数がＦＣ  ＳＷ  ４１から送信されると、図２３で例示される外部装置情報が得られる。図２３の例では、外部装置情報は、それぞれの外部装置ごとに、ＩＰアドレス、ベンダ名、型番、およびファームウェア（ＦＷ）版数を保持している。また、図２３の例では、タイムアウト値以内にＩＰアドレス１０．０．０．１００および１０．０．０．１０１の外部装置から応答があったことが分かる。【０１１３】
次に、拡張ＢＩＯＳ選択部２２の処理について説明する。拡張ＢＩＯＳ選択部２２の処理は、例えば、情報処理部３から構成情報を受け取ること、あるいは、または、外部装置情報取得部２７が外部装置情報を外部装置情報格納部２３４に格納することによって開始される。拡張ＢＩＯＳ選択部２２は、外部装置情報および情報処理部３からの構成情報に応じた適切な拡張ＢＩＯＳを選択し、情報処理部３へ送信する。拡張ＢＩＯＳ選択部２２は、構成情報受信部２２１、拡張カード識別子特定部２２２、拡張ＢＩＯＳ特定部２２３、拡張ＢＩＯＳ送信部２２４を有する。構成情報が、第１情報の一例であり、外部装置情報が第２情報の一例である。また、図１４の構成情報中のベンダＩＤ、デバイスＩＤ、クラスコード、サブシステムベンダＩＤ、サブシステムＩＤ等が拡張接続部の構成または動作仕様の一例である。また、図２３の外部装置情報中のベンダ名、型番、およびファームウェア（ＦＷ）版数等が拡張装置の構成または動作仕様の一例である。サーバ装置１Ａは、第１情報と第２情報とによって、拡張ＢＩＯＳを特定するので、サーバ装置１Ａの構成に対して適切な化拡張ＢＩＯＳを決定できる。【０１１４】
図２４に、構成情報受信部２２１の処理を例示する。通常、管理保守部２のプロセッサ２０では、構成情報受信部２２１が起動されている。構成情報受信部２２１は、通信Ｉ／Ｆ  ２４を介し情報処理部３から構成情報を受け取る。例えば、構成情報が情報処理部３から送信されるまでの間は、構成情報受信部２２１はメモリ２１に常駐し受信を待つ（Ｓ７１）。ただし、構成情報を受信したときに、管理保守部２が構成情報受信部２２１を呼び出すようにしてもよい。構成情報を取得すると（Ｓ７２）、構成情報受信部２２１は構成情報を構成情報格納部２３１へ格納する（Ｓ７３）。Ｓ７１−Ｓ７３の処理により図１４に示される構成情報が受信され構成情報格納部２３１へ格納される。【０１１５】
図２５に、拡張カード識別子特定部２２２の処理を例示する。拡張カード識別子特定部２２２は、まず、構成情報格納部２３１に格納された構成情報を参照し、構成情報内に拡張カード情報があるかを判断する（Ｓ８１）。拡張カードの情報がない場合は、拡張カード識別子特定部２２２は処理を終了する。一方、拡張カード情報がある場合は拡張カード情報と、組み合わせ表格納部２３２Ａの拡張カード識別子管理表２３２Ｃ（図２６参照）との照らし合わせを実行する（Ｓ８２）。拡張カード識別子管理表２３２Ｃは、ベンダＩＤ、デバイスＩＤ、クラスコード、サブシステムベンダＩＤ、サブシステムＩＤをキーとし、拡張カード識別子を決定するための表である。拡張カード情報と拡張カード識別子管理表２３２Ｃとの照らし合わせの結果、拡張カード情報と拡張カード識別子管理表２３２Ｃとの間で一致する情報がある場合（Ｓ８３でＹの場合）、拡張カード識別子特定部２２２は、拡張カード識別子管理表２３２Ｃの該当の情報を拡張カード識別子として特定する（Ｓ８４）。構成情報内に、さらに拡張カード情報がある場合はすべての拡張カードに対して同様の処理を繰り返す（Ｓ８５でＹの場合）。【０１１６】
実施例２においては、構成情報にはＦＣ  ＨＢＡ  ３５Ａ及びＦＣ  ＨＢＡ  ３５Ｂの拡張カード情報が含まれている。よって、この処理によって、図２６に例示するような、ＦＣ  ＨＢＡ  ３５Ａの拡張カード識別子「００００１２３４」および、ＦＣ  ＨＢＡ  ３５Ｂの拡張カード識別子「００００２２３４」が特定される。【０１１７】
図２６に、拡張カード識別子管理表２３２Ｃのデータ構成を例示する。拡張カード識別子管理表２３２Ｃは、構成情報中の拡張カードに関する情報から拡張カード識別子を特定するときに使用される。拡張カード識別子管理表２３２Ｃは、ベンダＩＤ、デバイスＩＤ、クラスコード、サブシステムベンダＩＤ、サブシステムＩＤ、および拡張カード識別子の組みを有する。【０１１８】
ここで、ベンダＩＤとは、拡張カードに含まれるインターフェースチップの製造販売元を特定する情報である。また、デバイスＩＤとは、拡張カードに含まれるインターフェースチップのベンダがインターフェースチップに固有に付す識別情報である。クラスコードは、例えば、拡張カードに含まれるインターフェースチップの機能を特定する情報である。デバイスＩＤとクラスコードとによって、インターフェースチップの種類、機能等が特定される。なお、インターフェースチップの種類、機能は、拡張カードの種類ということもできる。拡張カードの種類は、例えば、ネットワークカード、グラフィックカード、サウンドカード、ＦＣ  ＨＢＡ等である。【０１１９】
サブシステムベンダＩＤは、拡張カードの製造販売元を特定する情報である。また、サブシステムＩＤは、拡張カードのベンダが拡張カードに固有に付す識別情報である。すなわち、ベンダＩＤがインターフェースチップの製造販売元を特定し、サブシステムベンダＩＤは、拡張カードの製造販売元を特定する。【０１２０】
図２７に、拡張ＢＩＯＳ特定部２２３の処理を例示する。拡張ＢＩＯＳ特定部２２３は構成情報のサーバ情報および拡張カード識別子、外部装置情報と、組み合わせ表格納部２３２Ａの拡張ＢＩＯＳ管理表２３２Ｂ（図２８参照）との照らし合わせを実行する（Ｓ９１）。拡張ＢＩＯＳ管理表２３２Ｂは、サーバ情報、拡張カード識別子、外部装置情報を主キーとして、適切な拡張ＢＩＯＳデータを特定するために使用される表である。照らし合わせの結果、主キーに一致する情報が拡張ＢＩＯＳ管理表２３２Ｂにある場合（Ｓ９２でＹの場合）、拡張ＢＩＯＳ特定部２２３は、該当の拡張ＢＩＯＳデータを適正な拡張ＢＩＯＳデータとして特定する。【０１２１】
主キーと一致する情報が拡張ＢＩＯＳ管理表２３２Ｂにない場合（Ｓ９２でＮの場合）、拡張ＢＩＯＳ特定部２２３は、通信Ｉ／Ｆ  ２４を介し情報処理部３へ拡張ＢＩＯＳ受信部終了通知を送信する（Ｓ９６）。さらに、拡張ＢＩＯＳ特定部２２３は、通知表示部を呼び出し、適切な拡張ＢＩＯＳデータがない旨の通知を表示装置４６に表示する（Ｓ９７）。そして、拡張ＢＩＯＳ特定部２２３は、処理を終了する。【０１２２】
図２８に、拡張ＢＩＯＳ管理表２３２Ｂの構成を例示する。拡張ＢＩＯＳ管理表２３２Ｂは、構成情報と拡張カード識別子とから適切な拡張ＢＩＯＳを特定するときに使用される。図２８で示される表の各行が拡張ＢＩＯＳ管理表２３２Ｂのレコードに相当する。拡張ＢＩＯＳ管理表２３２Ｂのレコードは、入力のフィールドと、出力のフィールドを有する。【０１２３】
さらに、入力のフィールドは、サーバ情報、１以上の拡張カード識別子のサブフィールド（拡張カード識別子１、拡張カード識別子２等）、および１以上の外部装置のサブフィールドを有する。【０１２４】
サーバ情報のサブフィールドには、サーバを特定する情報を格納する。また、拡張カード識別子のサブフィールドには、拡張カードを識別する情報を格納する。外部装置のサブフィールドには、拡張カードに接続される外部装置を識別する情報を格納する。【０１２５】
また、出力のフィールドには、１以上のファームウェアのフィールド（ＦＷ１、ＦＷ２等）を有する。ファームウェアのフィールドには、ファームウェアを特定する情報、具体的には、拡張ＢＩＯＳを特定する情報を設定する。【０１２６】
したがって、拡張ＢＩＯＳ管理表２３２Ｂの１つのレコードによって、サーバ、１以上の拡張カード、１以上の外部装置の組み合わせに対して、適切なファームウェア、例えば、拡張ＢＩＯＳを１以上指定できる。なお、入力のフィールドで指定される拡張カード識別子、および外部装置に対して、複数のファームウェアが特定された場合には、所定の順序、例えば、図２８で出力のフィールドの左側優先で選択するようにすればよい。ただし、このような優先順に限定される訳ではない。【０１２７】
以上の処理により、例えば、サーバ情報、拡張カード識別子「００００１２３４」「００００２２３４」、外部装置情報「ＶＦＣＳＷ５６７８，  ＦＷ  ０１０１」を主キーとして、適切な拡張ＢＩＯＳのデータ（例えば、図２８の拡張ＢＩＯＳ  Ｃ）が特定される。【０１２８】
図２９に、拡張ＢＩＯＳ送信部２２４の処理を例示する。拡張ＢＩＯＳ送信部２２４は、拡張ＢＩＯＳ特定部２２３によって特定された拡張ＢＩＯＳデータを管理保守部２のストレージ装置２９から読み出す（Ｓ９１）。そして、拡張ＢＩＯＳ送信部２２４は、通信Ｉ／Ｆ  ２４を介して情報処理部３に拡張ＢＩＯＳデータを送信する（Ｓ９２）。以上の処理により、管理保守部２のストレージ装置２９から適切な拡張ＢＩＯＳのデータ（例えば、拡張ＢＩＯＳデータＣ）が読み出され、情報処理部３へ送信される。【０１２９】
図３０に、管理保守部２の通知表示部の処理を例示する。通知表示部は、拡張ＢＩＯＳ選択部２２による処理の結果、拡張ＢＩＯＳ特定部２２３で拡張ＢＩＯＳデータが特定できなかったときに呼び出される。拡張ＢＩＯＳデータが特定できなかった場合、通知表示部は拡張ＢＩＯＳが特定できなかった旨をユーザに通知するため、表示Ｉ／Ｆ２６を介し、表示装置４６にメッセージを表示する（Ｓ９７１）。メッセージは、例えば、メッセージが出力された日時を示すタイムスタンプ部とメッセージ本文を含む。メッセージは、例えば、「２０１１−１１−１１  １１：１１：１１  Ｅｘｐａｎｓｉｏｎ  ＢＩＯＳ  Ｄａｔａ  Ｄｅｔｅｃｔｉｏｎ  Ｆａｉｌｕｒｅ．」といった形で表現される。【０１３０】
管理保守部２のデータ更新部は、組み合わせ表格納部２３２Ａのデータ（以下、単に組み合わせ表という）、およびストレージ装置２９内の拡張ＢＩＯＳデータ等の更新を実行する。【０１３１】
図３１に、データ更新部の処理フローを例示する。データ更新部は、ネットワークＩ／Ｆ  ２５を介し、ネットワークから組み合わせ表、あるいは、拡張ＢＩＯＳデータを取得する（ＳＧ１）。ここで、組み合わせ表は、拡張カード識別子管理表２３２Ｃおよび拡張ＢＩＯＳ管理表２３２Ｂを含む。取得した組み合わせ表と拡張ＢＩＯＳデータを用い、データ更新部は管理保守部２の組み合わせ表格納部２３２Ａ、ストレージ装置２９内の拡張ＢＩＯＳデータの更新を行う（ＳＧ２）。【０１３２】
ここで、組み合わせ表と拡張ＢＩＯＳデータを取得する取得先は、例えば管理保守部２のベンダの提供する外部サーバである。管理保守部２のベンダが、構成に応じた適切な拡張ＢＩＯＳの組み合わせ表、および拡張ＢＩＯＳデータを提供し、ユーザサイトの管理保守部２がベンダの外部サーバから提供されるデータを取得すればよい。【０１３３】
（ＦＣ  ＳＷの処理）
図３２に、ＦＣ  ＳＷ  ４１の接続構築部４１２の処理を例示する。接続構築部４１２は、図３２の処理によってＦＣ  ＨＢＡ  ３５、あるいはストレージシステム４２との接続を確立する。ＦＣ  Ｉ／Ｆ  ４１６を介してＦＣ  ＳＷが相手装置と接続されると、接続構築部４１２は、まず、物理リンクの確立を行う（ＳＥ２１）。次に、ＦＣで接続されている相手装置から論理リンクの確立要求を受け取ると（ＳＥ２２でＹの場合）、接続構築部４１２は装置とのパラメータ交換を行い（ＳＥ２３）、論理リンクを確立する（ＳＥ２４）。相手装置がＦＣ  ＨＢＡ  ３５の場合、ＦＣ  ＨＢＡ  ３５がＦＣ  ＳＷ  ４１へ論理リンクの確立要求を送るタイミングは、拡張ＢＩＯＳによってＦＣ  ＨＢＡ  ３５が情報処理部３のプロセッサ２０から制御可能になった後である。【０１３４】
接続構築部４１２によって相手装置、例えば、情報処理部３のＦＣ  ＨＢＡ  ３５との論理リンクが確立されると、通信部４１３が情報処理部３との通信処理を実行する。図３３に、ＦＣ  ＳＷ  ４１の通信部４１３の通信処理を例示する。この処理では、通信部４１３は、ＦＣ  Ｉ／Ｆ  ４１６を介してＦＣ  ＨＢＡ  ３５等の相手装置と通信する（ＳＥ３１）。ＦＣ  ＳＷ  ４１はネットワーク  Ｉ／Ｆ  ４１７を介した外部からのコマンドを受信する機能部として、コマンド受信部４１４を有する。【０１３５】
図３４に、ＦＣ  ＳＷ  ４１のコマンド受信部４１４の処理を例示する。コマンド受信部４１４は、ネットワーク  Ｉ／Ｆ  ４１７を介して、管理保守部２のネットワークＩ／Ｆ２５から、「Ｉｎｑｕｉｒｙ」コマンドを受信する（ＳＥ３２）。【０１３６】
図３５に、ＦＣ  ＳＷ  ４１のコマンド応答部４１５の処理を例示する。コマンド応答部４１５は、例えば、「Ｉｎｑｕｉｒｙ」の応答としてＦＣ  ＳＷ  ４１のベンダ名、型番、ＦＷ版数の装置情報を、管理保守部２のネットワークＩ／Ｆ  ２５へ送信する（ＳＥ３３）。【０１３７】
以上の図１２−図３５によって例示した処理によって、情報処理部３は、構成情報と外部装置情報に対応する適切な拡張ＢＩＯＳ（例えば、図２８の拡張ＢＩＯＳ  Ｃ）を用いてＦＣ  ＨＢＡ  ３５Ａ及びＦＣ  ＨＢＡ  ３５Ｂを制御する。拡張ＢＩＯＳ  ＣはＦＣ  ＨＢＡ  ３５Ａ、ＦＣ  ＨＢＡ  ３５Ｂをともに制御可能である。また、拡張ＢＩＯＳ  Ｃは待ち時間はＦＣ  ＳＷ  ４１のレスポンス時間の最大値と同値である６００ｍｓに設定されているなど、ＦＣ  ＳＷ  ４１と組み合わせた際の動作が保証されている拡張ＢＩＯＳである。よって、情報処理部３が拡張ＢＩＯＳ  Ｃを用いることで、サーバ装置１Ａは正常にＦＣ  ＨＢＡ  ３５Ａ、３５Ｂを制御でき、ＦＣ  ＳＷ  ４１やその先のストレージシステム４２と正常に通信が可能となる。【０１３８】
例えば、ユーザがサーバ装置１Ａを導入後に、ＦＣ  ＨＢＡ  ３５Ａ、３５Ｂ等の拡張カードあるいはＦＣ  ＳＷ４１Ａ、４１Ｂ等の外部装置を追加する場合、あるいは、既存の拡張カードあるいは既存の外部装置に代えて、他の拡張カードあるいは外部装置を導入する場合を想定する。【０１３９】
このように、ユーザがサーバ装置１Ａを導入後に、拡張カードあるいは外部装置の構成を変更したとしても、実施例２のサーバ装置１Ａでは、構成情報受信部２２１が、情報処理部３の構成情報を受信し、外部装置情報取得部２７が外部装置情報を取得する。そして、拡張ＢＩＯＳ特定部２２３が、拡張ＢＩＯＳ管理表２３２Ｂ、および拡張カード識別子管理表２３２Ｃにしたがって、適切な拡張ＢＩＯＳを特定し、拡張ＢＩＯＳ送信部２２４が、ストレージ装置２９内の適切な拡張ＢＩＯＳのデータを情報処理部３に引き渡す。したがって、ユーザが、サーバ装置１Ａを導入後に、拡張カード、あるいは外部装置等を変更したとしても、サーバ装置１Ａの処理によって、情報処理部３は、適切な拡張ＢＩＯＳにより、拡張カード、外部装置等を制御することができる。したがって、拡張カード、外部装置等の変更に伴う、ユーザ負担を軽減できる。【０１４０】
そのため、サーバ装置１Ａは、ストレージ装置２９内の拡張ＢＩＯＳのデータ、拡張ＢＩＯＳ管理表２３２Ｂ、および拡張カード識別子管理表２３２Ｃを更新するようにすればよい。更新は、定期的に実行してもよい。また、更新は、ユーザの更新指示にしたがって実行してもよい。また、更新は、拡張カード、外部装置４の等の変更を契機として実行してもよい。【０１４１】
さらに、実施例２のサーバ装置１Ａの構成では、管理保守部２は、通信インターフェース２４を介して、外部装置であるＦＣ  ＳＷ  ４１の通信インターフェース４１７と接続され、外部装置情報を取得する。したがって、情報処理部３のＦＣ  ＨＢＡ３５Ａ、３５Ｂを介して外部装置情報を取得する構成と比較して、拡張ＢＩＯＳに依存した動作の安定性の影響を受けることなく、外部装置情報を取得できる。【０１４２】
なお、情報処理部３と管理保守部２は通信Ｉ／Ｆ  ３４と通信Ｉ／Ｆ  ２４によって接続されているため、通信Ｉ／Ｆ  ２４をサーバ装置１Ａ外に持つことによって管理保守部２はサーバ装置１Ａ外に設けることも可能である。
【実施例３】
【０１４３】
＜構成＞
図３６は、実施例３に係るサーバ装置１Ｂの構成を例示する図である。実施例３のサーバ装置１Ｂは、実施例２のサーバ装置１Ａと比較して、管理保守部２が、ＦＣ  ＳＷ  ４１Ａ、４１Ｂとネットワークで接続されていない点が相違する。管理保守部２が、ＦＣ  ＳＷ  ４１Ａ、４１Ｂとネットワークで接続されていない点以外の構成については、サーバ装置１Ｂの構成は、サーバ装置１Ａの構成と同様である。すなわち、サーバ装置１Ｂは、情報処理部３Ｃ、管理保守部２Ｃを有する。また、情報処理部３Ｃには、ＦＣ  ＳＷ  ４１Ａ、４１Ｂ、および表示装置４６が接続される。また、ＦＣ  ＳＷ  ４１Ａ、４１Ｂには、ストレージシステム４２Ａ、４２Ｂが接続される。【０１４４】
実施例２では、外部装置情報は、管理保守部２Ｃの外部装置情報取得部２７が、ネットワークＩ／Ｆ  ２５を介して、ＦＣ  ＳＷ  ４１から収集した。実施例３では、管理保守部２ＣがＦＣ  ＳＷ  ４１とネットワークによって接続されていない構成において、サーバ装置１Ｂの構成に対して適切な拡張ＢＩＯＳを特定する処理を説明する。【０１４５】
図３７は、実施例３に係る情報処理部３Ｃの構成を例示する図である。実施例３では、情報処理部３Ｃの初期化部３２５、ハードウェア制御部３２６、構成情報送信部３２２、拡張ＢＩＯＳ受信部３２３、拡張ＢＩＯＳ読み取り部３２４は実施例２と同様の処理を行う。外部装置情報取得部３２８、構成情報生成部３２１Ｃ、再初期化部３２７は実施例３に対応する処理を実行する。【０１４６】
上述のように、実施例３では、管理保守部２ＣがＦＣ  ＳＷ  ４１とネットワークによって接続されていない。そのため、情報処理部３Ｃには、外部装置情報取得部３２８および最初期化部３２７が追加されている。管理保守部２ＣとＦＣ  ＳＷ  ４１との接続がなされない点、外部装置情報取得部３２８および最初期化部３２７が追加されている点以外については、実施例２のサーバ装置１Ｂの構成は、実施例２のサーバ装置１Ａと同様である。そこで、実施例２の構成要素のうち、実施例２と同一の構成要素については、同一の符号を付してその説明を省略する。【０１４７】
すなわち、情報処理部３Ｃの電源投入後、基本ＢＩＯＳ３２の初期化部３２５が呼び出される。次に、拡張ＢＩＯＳ読み取り部３２４が呼び出される。この時点では、拡張ＢＩＯＳ受信データ格納部３３２に拡張ＢＩＯＳデータは格納されていない。そのため、拡張ＢＩＯＳ読み取り部３２４はＦＣ  ＨＢＡ  ３５ＡおよびＦＣ  ＨＢＡ  ３５Ｂから、それぞれの拡張ＢＩＯＳを読み取り、情報処理部３Ｂのメモリ３１上に格納する（図１７、ＳＣ３参照）。【０１４８】
そして、ハードウェア制御部３２６は、拡張カードの記憶素子から読み取った拡張ＢＩＯＳを用いて、各拡張カードの、デバイス依存の初期化や設定を実施し、ハードウェアの制御を行う（図１８参照）。【０１４９】
次に、外部装置情報取得部３２８が、各拡張カード経由で外部装置の情報を取得する。すなわち、外部装置情報取得部３２８は、拡張カードであるＦＣ  ＨＢＡ  ３５Ａ、３５Ｂを通じて、ＦＣ  ＨＢＡ  ３５Ａ、３５Ｂに接続される外部装置、例えば、図３８のＦＣ  ＳＷ  ４１にアクセスし、外部装置情報を取得する。なお、この場合、実施例２で述べたように、拡張カードから読み取った拡張ＢＩＯＳは、拡張カードに接続される外部装置を制御できない可能性がある。しかし、外部装置情報取得部３２８による外部装置情報の取得は、図４０の処理で後述するように、外部装置との論理リンク接続時に１回行えばよい。したがって、拡張カードから読み取った拡張ＢＩＯＳによって、外部装置情報を取得する場合に、拡張ＢＩＯＳが不適切であることによる影響は、通常動作状態、すなわち、論理リンク接続時以降のデータ入出力時よりも小さい。【０１５０】
次に、構成情報生成部３２１Ｃは、サーバ装置１Ｂが持つ各ハードウェアの情報と、外部装置の情報から構成情報を生成する。さらに、構成情報送信部３２２は、外部装置の情報を含む構成情報を管理保守部２Ｃへと送信する。【０１５１】
そして、拡張ＢＩＯＳ受信部３２３は、管理保守部２Ｃから、外部装置の情報を含む構成情報に対応する適切な拡張ＢＩＯＳデータを受信し、拡張ＢＩＯＳ読み取り部３２４は、受信したデータから適切な拡張ＢＩＯＳデータを読み取る。再初期化部３２７は、受信した拡張ＢＩＯＳを使用するために必要な初期化処理を行う。【０１５２】
実施例３では、拡張ＢＩＯＳ受信データ格納部３３２に、拡張ＢＩＯＳが格納されてない段階では、拡張ＢＩＯＳ読み取り部３２４は、情報処理部３に接続された各拡張カードの記憶素子から拡張ＢＩＯＳのデータを読み取る。この処理は、実施例２と同様である。また、拡張カードの記憶素子から読み取られる拡張ＢＩＯＳは、第１の制御プログラムの一例である。また、拡張ＢＩＯＳ読み取り部３２４は、拡張接続部から第１の制御プログラムを取得する手段の一例である。【０１５３】
そして、適切な拡張ＢＩＯＳが格納された段階で、拡張ＢＩＯＳ読み取り部３２４は、管理保守部２Ｃからの受信データから、外部装置の情報を含む構成情報に対応する適切な拡張ＢＩＯＳデータを読み取る。この処理も、実施例２と同様である。【０１５４】
しかしながら、実施例３では、情報処理部３Ｃが拡張カードを通じて、外部装置情報を取得する点が実施例２と相違する。そして、情報処理部３Ｃが、外部装置情報を含む構成情報を管理保守部２Ｃに送信する。さらに、管理保守部２Ｃがその拡張カードと拡張カードに接続された外部装置に対応する適切な拡張ＢＩＯＳを決定し、情報処理部３Ｃへ送信する。そして、情報処理部３Ｃの再初期化によって、適切な拡張ＢＩＯＳによる制御が可能となる。【０１５５】
図３８にＦＣ  ＳＷ  ４１の構成図を例示する。実施例３では、実施例２のＦＣ  ＳＷ  ４１と比較して、ＦＣ  ＳＷ  ４１において、ネットワークＩ／Ｆ  ４１７、コマンド受信部４１４、およびコマンド応答部４１５が省略されている点が相違する。ただし、実施例３において、ＦＣ  ＳＷ  ４１が、ネットワークＩ／Ｆ  ４１７、コマンド受信部４１４、およびコマンド応答部４１５を有するようにしてもよい。【０１５６】
図３９に管理保守部２Ｃの構成を例示する図である。実施例３において、管理保守部２Ｃは、実施例２の管理保守部２と比較して、外部装置情報取得部２７、外部装置管理表格納部２３３、および外部装置情報格納部２３４が省略されている。管理保守部２Ｃの他の構成要素は、実施例２と同様であるので、その説明を省略する。【０１５７】
＜処理フロー＞
以下、図４０から図４４に図面を参照して、サーバ装置１Ｂ（情報処理部３Ｃ）の構成に対して、適切な拡張ＢＩＯＳを特定する処理を例示する。実施例３に係る処理フロー実行する前提として、拡張ＢＩＯＳ特定前、実施例２の図１７に示した拡張ＢＩＯＳ読み取り部３２４による処理が実行済みであるとする。拡張ＢＩＯＳ特定前、すなわち、サーバ装置１Ｂの構成に対して適切な拡張ＢＩＯＳ受信前に、図１７に示した拡張ＢＩＯＳ読み取り部３２４による処理を実行すると、拡張ＢＩＯＳ受信データ格納部３３２に、拡張ＢＩＯＳが存在しない。このため、図１７のＳＣ１の判定がＮとなり、拡張カード上の拡張ＢＩＯＳ、すなわち、ＦＣ  ＨＢＡ  ３５Ａ、３５Ｂ等に格納された拡張ＢＩＯＳが、メモリ３１にローディングされる（図１７のＳＣ３参照）。【０１５８】
図４０に、情報処理部３Ｃの外部装置情報取得部３２８の処理を例示する。外部装置情報取得部３２８は拡張ＢＩＯＳを用いて拡張カードを制御し、外部装置との論理リンクを確立する（Ｓ１５１、Ｓ１５２）。外部装置情報取得部３２８は、第２取得手段の一例である。情報処理部３Ｃのプロセッサ３０は、外部装置情報取得部３２８として、メモリ３１の基本ＢＩＯＳ３２を実行する。なお、外部装置情報取得部３２８は、第２取得手段の一例と考える場合には、Ｓ１５１、Ｓ１５２が、第２取得ステップの一例となる。また、プロセッサ３０が実行するメモリ３１の基本ＢＩＯＳ３２と、プロセッサ２０が実行するメモリ２１上のコンピュータプログラムの組み合わせが情報処理プログラムの一例となる。  【０１５９】
例えば、図３６に例示したＦＣ  ＨＢＡ  ３５ＡとＦＣ  ＳＷ  ４１Ａとの間の論理リンクは、fabric login（ファブリックログイン、FLOGI)によって実行される。ファブリックログインは、通常、所定の契機、例えば、ＦＣ  ＳＷ  ４１Ａにファイバチャネル接続されるデバイスが接続されたとき、あるいは、論理リンク確立の指示が、サーバ装置１ＢからＦＣ  ＨＢＡ  ３５Ａに指示されたとき等に、実行される。【０１６０】
ファブリックログインでは、まず、ＦＣ  ＳＷ  ４１Ａに接続されるデバイスであるＦＣ  ＨＢＡ  ３５ＡがＦＬＯＧＩフレームをＦＣ  ＳＷ  ４１Ａに送信する。ＦＬＯＧＩフレームには、ファイバチャネルのノードとして機能するＦＣ  ＨＢＡ  ３５Ａに関する情報が含まれる。  【０１６１】
ＦＣ  ＳＷ  ４１Ａは、ＦＬＯＧＩフレームを受信すると、ＦＬＯＧＩフレームを送信した送信元（ＦＣ  ＨＢＡ  ３５Ａ）に、ａｃｃｅｐｔ（アクセプト、ＡＣＣ)フレームを返信する。このＡＣＣフレームには、ＦＣ  ＳＷ  ４１Ａに関する情報、および、ＦＣ  ＳＷ  ４１ＡがＦＬＯＧＩフレームを送信した送信元（ＦＣ  ＨＢＡ  ３５Ａ）に割り当てたポートアドレスが含まれる。以上のＦＬＯＧＩフレームおよびＡＣＣフレームの送受信によって、ＦＣ  ＨＢＡ  ３５ＡとＦＣ  ＳＷ  ４１Ａとの間で論理リンクが確立し、通信が実行される。【０１６２】
以上のように、論理リンク確立時には、情報処理部３ＣのＦＣ  ＨＢＡ  ３５Ａと拡張カードであるＦＣ  ＳＷ  ４１Ａとは、互いのパラメータ情報を交換する。ＦＣ  ＨＢＡ  ３５ＢとＦＣ  ＳＷ  ４１Ｂについても同様である。このパラメータ情報にベンダ情報、型番、ＦＷ版数を含めることで、外部装置情報取得部３２８は、外部装置情報を取得する（Ｓ１５３）。なお、Ｓ１５１、Ｓ１５２による論理リンク確立時は、サーバ装置１Ｂ（情報処理部３Ｃ）の構成に対して、適切な拡張ＢＩＯＳが取得されていない。したがって、ＦＣ  ＨＢＡ  ３５Ａと、ＦＣ  ＳＷ  ４１Ａとの間のデータの入出力で、タイムアウトの設定値の相違等に起因して、エラーとリトライとが発生する可能性がある。しかしながら、図４０で例示した論理リンク確立時には、ＦＬＯＧＩフレームおよびＡＣＣフレームの送受信を行えばよい。このため、大量のデータをストレージシステム４２Ａ等に格納する場合と比較して、タイムアウトの発生する確率が低く、かつ、たとえ、タイムアウトが発生してもリトライで対処できる。また、リトライすることによるデータ転送速度低下等の影響も少ない。したがって、サーバ装置１Ｂ（情報処理部３Ｃ）の構成に対して、適切な拡張ＢＩＯＳが取得されていない場合でも、図４０の処理は、正常に実行可能である。【０１６３】
図４１に、構成情報生成部３２１Ｃの処理を例示する。図４１において、Ｓ５１およびＳ５２の処理は、実施例２の図１３と同様である。図４１では、実施例２との処理に対して、構成情報生成部３２１Ｃが拡張カードの制御に使用されている拡張ＢＩＯＳ情報、および外部装置情報を取得する点が追加されている。【０１６４】
すなわち、構成情報生成部３２１Ｃは、拡張カードのベンダＩＤ、デバイスＩＤ、クラスコード、サブシステムベンダＩＤ、サブシステムＩＤに加えて、拡張カードの制御に用いている拡張ＢＩＯＳを特定する情報を取得する（Ｓ５３Ａ）。  次に、構成情報生成部３２１Ｃは、外部装置情報取得部３２８が取得した外部装置情報を取得する（Ｓ５３Ｂ）。そして、構成情報生成部３２１Ｃは、Ｓ５３Ａで取得した情報およびＳ５３Ｂで取得した情報を基に、構成情報を生成する（Ｓ５４Ｂ）。構成情報生成部３２１Ｃは、生成した構成情報を構成情報格納部３３１へ格納する。  【０１６５】
図４２に、構成情報生成部３２１Ｃが生成する構成情報を例示する。実施例３の構成情報は、実施例２の構成情報（図１４参照）と比較して、拡張情報に拡張ＢＩＯＳを特定する情報が追加されている（＜使用拡張ＢＩＯＳ＞のタグを参照）。また、実施例３の構成情報は、外部装置情報が追加されている（＜外部装置情報＞のタグを参照）。【０１６６】
次に、構成情報送信部３２２が管理保守部２Ｃに構成情報を送信する。管理保守部２Ｃが構成に適した拡張ＢＩＯＳを特定すると、管理保守部２Ｃは、特定した拡張ＢＩＯＳのデータを送信する。このとき、管理保守部２Ｃが特定し、送信する拡張ＢＩＯＳが第２の制御プログラムの一例である。【０１６７】
そこで、拡張ＢＩＯＳ受信部３２３が拡張ＢＩＯＳデータを受信し、拡張ＢＩＯＳ受信データ格納部３３２へ格納する。以上の処理により、本実施例においては拡張ＢＩＯＳ受信データ格納部３３２へはサーバ装置１Ｂの構成に適した拡張ＢＩＯＳデータが格納される。その後、再初期化部３２７が呼び出される。拡張カードの記憶素子から読み取られる拡張ＢＩＯＳが第１の制御プログラムの一例である。【０１６８】
図４３に、再初期化部３２７の処理を例示する。再初期化部３２７は拡張ＢＩＯＳ受信データ格納部３３２に拡張ＢＩＯＳがあるか判断する（ＳＨ１）。そして、拡張ＢＩＯＳが格納されている場合は拡張カードを初期化部呼び出し後の状態に戻す処理を行う。すなわち、再初期化部３２７は、現在メモリ３１上に格納され、拡張カードを制御している拡張ＢＩＯＳを消去する（ＳＨ２）。【０１６９】
拡張カードを制御している拡張ＢＩＯＳが消去されると、次に、再初期化部３２７は、拡張ＢＩＯＳ読み取り部３２４を呼び出すことによって、拡張ＢＩＯＳ受信データ格納部３３２から情報処理部３Ｃのメモリ上へ拡張ＢＩＯＳデータを転送する。以上の処理により、ＦＣ  ＨＢＡ  ３５ＡおよびＦＣ  ＨＢＡ  ３５Ｂは拡張ＢＩＯＳによって操作や初期化がなされていない状態へ戻る。そして、再初期化部３２７は、拡張カードのリソースの再割り当て等の処理を実行する（ＳＨ３）。【０１７０】
その後、ハードウェア制御部３２６が、ＦＣ  ＨＢＡ  ３５ＡおよびＦＣ  ＨＢＡ  ３５Ｂを制御する。ハードウェア制御部３２６は、サーバ装置１Ｂの構成に適した拡張ＢＩＯＳによって制御を行う。【０１７１】
なお、ＳＨ１の判定で、拡張ＢＩＯＳが格納されていなかった場合は、そのまま再初期化部３２７の処理は、終了し、拡張ＢＩＯＳ読み取り部３２４による処理実行されない。ハードウェア制御部３２６は、拡張カードから読み出した拡張ＢＩＯＳによる制御を継続する。【０１７２】
図４４に、管理保守部２Ｃの拡張ＢＩＯＳ特定部２２３Ｃの処理を例示する。図４４の処理で、Ｓ９１−Ｓ９３、およびＳ９６−Ｓ９７の処理は、実施例２の場合と同様である（図２７参照）。すなわち、Ｓ９１−Ｓ９３の処理によって、拡張ＢＩＯＳ管理表の一致行に記載された拡張ＢＩＯＳ（例えば、図２８の拡張ＢＩＯＳ  Ｃ等）が特定される。【０１７３】
実施例３では、さらに、構成情報の使用拡張ＢＩＯＳとＳ９１−Ｓ９３の処理で特定された拡張ＢＩＯＳとが一致するか否かを判定する。構成情報の使用拡張ＢＩＯＳとは、現在、情報処理部３Ｃで使用中の拡張ＢＩＯＳである。Ｓ９４の判定で、２つの拡張ＢＩＯＳが一致すると判定された場合、拡張ＢＩＯＳ特定部２２３Ｃは、情報処理部３Ｃの拡張ＢＩＯＳ受信部３２３へ終了通知を送信する。すなわち、Ｓ９１−Ｓ９３で特定した拡張ＢＩＯＳと使用拡張ＢＩＯＳが一致した場合、拡張ＢＩＯＳ特定部２２３Ｃはサーバ装置１Ｂが既に適切な拡張ＢＩＯＳを使用しているものとみなす。そして、拡張ＢＩＯＳ受信部３２３へ終了通知を送信することで、サーバ装置１Ｂに既に最適な拡張ＢＩＯＳが構成されている場合に、再初期化部３２７、あるいは拡張ＢＩＯＳ読み取り部３２４の処理による不必要な時間の消費を防止することができる。【０１７４】
以上の実施例３の処理によっても、拡張ＢＩＯＳ選択部２２は、情報処理部３Ｃの構成に応じた適切な拡張ＢＩＯＳを特定できる。実施例３では、実施例２と異なり、ＦＣ  ＳＷ  ４１Ａ、４１Ｂ等が、図１０に例示したネットワークインターフェース４１７を有しない場合でも、ＦＣ  ＨＢＡ  ３５Ａ、３５Ｂを通じて、外部装置情報を取得できる。【０１７５】
そして、情報処理部３Ｃは、構成情報に対して適切な拡張ＢＩＯＳを用いてＦＣ  ＨＢＡ  ３５Ａ及びＦＣ  ＨＢＡ  ３５Ｂを制御する。実施例３の処理で特定された適切な拡張ＢＩＯＳはＦＣ  ＨＢＡ  ３５Ａ、ＦＣ  ＨＢＡ  ３５Ｂをともに制御可能である。また、待ち時間はＦＣ  ＳＷ  ４１のレスポンス時間の最大値と同値である６００ｍｓに設定されているなど、ＦＣ  ＳＷ  ４１と組み合わせた際の動作が保証されている拡張ＢＩＯＳである。よって、情報処理部３Ｃが構成情報に対して適切な拡張ＢＩＯＳを用いることで、サーバ装置１Ｂは正常にＦＣ  ＨＢＡ  ３５を制御でき、ＦＣ  ＳＷ  ４１およびＦＣ  ＳＷ  ４１の接続先のストレージシステム４２と正常に通信可能となる。【０１７６】
例えば、ユーザがサーバ装置１Ｂを導入後に、ＦＣ  ＨＢＡ  ３５Ａ、３５Ｂ等の拡張カードあるいはＦＣ  ＳＷ  ４１Ａ、４１Ｂ等の外部装置を追加する場合、あるいは、既存の拡張カードあるいは既存の外部装置に代えて、他の拡張カードあるいは外部装置を導入する場合を想定する。【０１７７】
このように、ユーザがサーバ装置１Ｂを導入後に、拡張カードあるいは外部装置の構成を変更したとしても、実施例３のサーバ装置１Ｂでは、構成情報受信部２２１が、情報処理部３の構成情報を受信し、拡張ＢＩＯＳ特定部２２３Ｃが、拡張ＢＩＯＳ管理表２３２Ｂ、拡張カード識別子管理表２３２Ｃにしたがって、適切な拡張ＢＩＯＳを特定し、拡張ＢＩＯＳ送信部２２４が、ストレージ装置２９内の適切な拡張ＢＩＯＳのデータを情報処理部３Ｃに引き渡す。したがって、ユーザが、サーバ装置１Ｂを導入後に、拡張カード、あるいは外部装置等を変更したとしても、サーバ装置１Ｂの処理によって、情報処理部３Ｃは、適切な拡張ＢＩＯＳにより、拡張カード、外部装置等を制御することができる。したがって、拡張カード、外部装置等の変更に伴う、ユーザ負担を軽減できる。【０１７８】
また、実施例３においては、管理保守部２Ｃが適切な拡張ＢＩＯＳを見つけることができなかった場合、あるいは既にサーバ装置の拡張ＢＩＯＳが適切なものであった場合、情報処理部３Ｃは拡張カードの持つ拡張ＢＩＯＳを使用し続ける。このときは、再初期化部３２７による再初期化処理とその後の拡張ＢＩＯＳ読み取り部３２４による拡張ＢＩＯＳ受信データ格納部３３２からの拡張ＢＩＯＳ読み取り処理といった、必要のない処理は行われない。【０１７９】
＜コンピュータが読み取り可能な記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。【０１８０】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ（リードオンリーメモリ）等がある。
【符号の説明】
【０１８１】
１          コンピュータ装置
１Ｂ、１Ｃ  サーバ装置
２、２Ｃ  管理保守部
３、３Ｃ  情報処理部
４        外部装置
２０、３０、４１０  プロセッサ
２１、３１  メモリ
２２      拡張ＢＩＯＳ選択部
２３      格納部
２４、３４  通信Ｉ／Ｆ
２５、３５、４１７  ネットワークＩ／Ｆ
２６      外部装置情報取得部
２９      ストレージ装置
３２      基本ＢＩＯＳ
３５、３５Ａ、３５Ｂ  ＦＣ  ＨＢＡ
３６      インターフェース
３６Ａ、３６Ｂ  ＰＣＩバスインターフェース
４１、４１Ａ、４１Ｂ  ＦＣ  ＳＷ
４２、４２Ａ、４２Ｂ  ストレージ装置
２２１      構成情報受信部
２２２      拡張カード識別子特定部
２２３      拡張ＢＩＯＳ特定部
２２４      拡張ＢＩＯＳ送信部
２３１      構成情報格納部
２３２Ａ    組み合わせ管理表格納部
２３２Ｂ    拡張ＢＩＯＳ管理表
２３２Ｃ    カード識別子管理表
２３３      外部装置管理表格納部
２３４      外部装置情報格納部
３２１、３２１Ｃ  構成情報生成部
３２２      構成情報送信部
３２３      拡張ＢＩＯＳ受信部
３２４      拡張ＢＩＯＳ読み取り部
３２５      初期化部
３２６      ハードウェア制御部
３２７      再初期化部
３２８      外部装置情報取得部
【図１】
2012172666.tif 000003
【図２】
2012172666.tif 000004
【図３】
2012172666.tif 000005
【図４】
2012172666.tif 000006
【図５】
2012172666.tif 000007
【図６】
2012172666.tif 000008
【図７】
2012172666.tif 000009
【図８】
2012172666.tif 000010
【図９】
2012172666.tif 000011
【図１０】
2012172666.tif 000012
【図１１】
2012172666.tif 000013
【図１２】
2012172666.tif 000014
【図１３】
2012172666.tif 000015
【図１４】
2012172666.tif 000016
【図１５】
2012172666.tif 000017
【図１６】
2012172666.tif 000018
【図１７】
2012172666.tif 000019
【図１８】
2012172666.tif 000020
【図１９】
2012172666.tif 000021
【図２０】
2012172666.tif 000022
【図２１】
2012172666.tif 000023
【図２２】
2012172666.tif 000024
【図２３】
2012172666.tif 000025
【図２４】
2012172666.tif 000026
【図２５】
2012172666.tif 000027
【図２６】
2012172666.tif 000028
【図２７】
2012172666.tif 000029
【図２８】
2012172666.tif 000030
【図２９】
2012172666.tif 000031
【図３０】
2012172666.tif 000032
【図３１】
2012172666.tif 000033
【図３２】
2012172666.tif 000034
【図３３】
2012172666.tif 000035
【図３４】
2012172666.tif 000036
【図３５】
2012172666.tif 000037
【図３６】
2012172666.tif 000038
【図３７】
2012172666.tif 000039
【図３８】
2012172666.tif 000040
【図３９】
2012172666.tif 000041
【図４０】
2012172666.tif 000042
【図４１】
2012172666.tif 000043
【図４２】
2012172666.tif 000044
【図４３】
2012172666.tif 000045
【図４４】
2012172666.tif 000046
【手続補正書】
【提出日】平成25年12月25日(2013.12.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
被接続装置を接続可能なインターフェースと、
前記インターフェースに接続された被接続装置の構成または動作仕様を含む装置情報を取得する取得手段と、
前記装置情報に基づいて、前記被接続装置を制御するための制御プログラムを決定する決定手段と、
前記決定された制御プログラムを用いて前記被接続装置を制御する制御手段と、
を備え、
前記被接続装置は、拡張接続部と前記拡張接続部に接続される拡張装置とを含み、
前記取得手段は、前記インターフェースに接続された拡張接続部の構成または動作仕様を含む第１情報を取得する第１取得手段と、
前記拡張接続部に接続される拡張装置の構成または動作仕様を含む第２情報を取得する第２取得手段と、を含む
情報処理装置。
【請求項２】
前記拡張接続部から第１の制御プログラムを取得する手段をさらに備え、
前記第２取得手段は、取得した第１の制御プログラムを用いて前記拡張接続部を介して前記被接続装置から前記第２情報を取得し、
前記決定手段は、前記第１情報と取得された第２情報とに基づいて第２の制御プログラムを特定し、
前記制御部は、前記第２の制御プログラムを用いて前記拡張接続部を制御する請求項１に記載の情報処理装置。
【請求項３】
前記第２取得手段は、前記拡張接続部を介さない通信インターフェースを介して前記被接続装置から前記第２情報を取得する請求項１に記載の情報処理装置。
【請求項４】
コンピュータが、
インターフェースに接続された被接続装置の構成または動作仕様を含む装置情報を取得する取得ステップと、
前記装置情報に基づいて、前記被接続装置を制御するための制御プログラムを決定する決定ステップと、
前記決定された制御プログラムを用いて前記被接続装置を制御する制御ステップと、を実行し、
前記被接続装置は、拡張接続部と前記拡張接続部によって接続される拡張装置とを含み、
前記取得ステップは、前記インターフェースに接続された拡張接続部の構成または動作仕様を含む第１情報を取得する第１取得ステップと、
前記拡張接続部によって接続される拡張装置の構成または動作仕様を含む第２情報を取得する第２取得ステップと、を含む
情報処理方法。
【請求項５】
前記拡張接続部から第１の制御プログラムを取得するステップをさらに実行し、
前記第２取得ステップは、前記第１の制御プログラムを用いて前記拡張接続部を介して前記被接続装置から前記第２情報を取得するステップを含み、
前記決定ステップは、前記第１情報と前記第１の制御プログラムを用いて取得された第２情報とに基づいて第２の制御プログラムを特定するステップを含み、
前記制御ステップは、前記第２の制御プログラムを用いて前記拡張接続部を制御するステップを含む請求項４に記載の情報処理方法。
【請求項６】
前記第２取得ステップは、前記拡張接続部を介さない通信インターフェースを介して前記被接続装置から前記第２情報を取得するステップを含む請求項４に記載の情報処理方法。
【請求項７】
コンピュータに、
インターフェースに接続された被接続装置の構成または動作仕様を含む装置情報を取得する取得ステップと、
前記装置情報に基づいて、前記被接続装置を制御するための制御プログラムを決定する決定ステップと、
前記決定された制御プログラムを用いて前記被接続装置を制御する制御ステップと、を実行させ、
前記被接続装置は、拡張接続部と前記拡張接続部によって接続される拡張装置とを含み、
前記取得ステップは、前記インターフェースに接続された拡張接続部の構成または動作仕様を含む第１情報を取得する第１取得ステップと、
前記拡張接続部によって接続される拡張装置の構成または動作仕様を含む第２情報を取得する第２取得ステップと、を含む
情報処理プログラム。
【請求項８】
前記コンピュータに、前記拡張接続部から第１の制御プログラムを取得するステップをさらに実行させ、
前記第２取得ステップは、前記第１の制御プログラムを用いて前記拡張接続部を介して前記被接続装置から前記第２情報を取得するステップを含み、
前記決定ステップは、前記第１情報と前記第１の制御プログラムを用いて取得された第２情報とに基づいて第２の制御プログラムを特定するステップを含み、
前記制御ステップは、前記第２の制御プログラムを用いて前記拡張接続部を制御するステップを含む請求項７に記載の情報処理プログラム。
【請求項９】
前記第２取得ステップは、前記拡張接続部を介さない通信インターフェースを介して前記被接続装置から前記第２情報を取得するステップを含む請求項７に記載の情報処理プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
開示の技術の一側面は、情報処理装置として例示できる。本情報処理装置は、被接続装置を接続可能なインターフェースと、インターフェースに接続された被接続装置の構成または動作仕様を含む装置情報を取得する取得手段と、装置情報に基づいて、被接続装置を制御するための制御プログラムを決定する決定手段と、決定された制御プログラムを用いて被接続装置を制御する制御手段と、を備え、被接続装置は、拡張接続部と拡張接続部に接続される拡張装置とを含み、取得手段は、インターフェースに接続された拡張接続部の構成または動作仕様を含む第１情報を取得する第１取得手段と、拡張接続部に接続される拡張装置の構成または動作仕様を含む第２情報を取得する第２取得手段と、を含む。
【国際調査報告】
2012172666.tif 000047
2012172666.tif 000048
2012172666.tif 000049
2012172666.tif 000050