(57)【要約】【課題】デバイスに推奨されるファームウェアのバージョンがない場合に、ユーザの所望のファームウェアを決定することのできるデバイスを提供する。【解決手段】デバイスは、コンピュータシステムに増設され、ファームウェアによって動作するデバイスであって、前記ファームウェアを決定するときに、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合の前記ファームウェアの決定における条件を規定するユーザポリシーを、記憶部に予め記憶させるポリシー指定部と、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合に、前記ユーザポリシーに基づいて、前記デバイスに適用する前記ファームウェアを決定するファームウェア決定部と、を備える。【選択図】図１１
2019179510.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムに増設され、ファームウェアによって動作するデバイスであって、
前記ファームウェアを決定するときに、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合の前記ファームウェアの決定における条件を規定するユーザポリシーを、記憶部に予め記憶させるポリシー指定部と、
前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合に、前記ユーザポリシーに基づいて、前記デバイスに適用する前記ファームウェアを決定するファームウェア決定部と、
を備えるデバイス。
【請求項２】
前記ユーザポリシーは、
動作の安定したバージョンの前記ファームウェアを対象とすることを前記条件として規定する、
請求項１に記載のデバイス。
【請求項３】
前記ユーザポリシーは、
前記動作の安定したバージョンのうち最多のバージョンの前記ファームウェアを対象とすることを前記条件として規定する、
請求項１または請求項２に記載のデバイス。
【請求項４】
前記ユーザポリシーは、
最新のバージョンの前記ファームウェアを対象とすることを前記条件として規定する、
請求項１から請求項３の何れか一項に記載のデバイス。
【請求項５】
請求項１から請求項４の何れか一項に記載のデバイスと、
前記デバイスを識別するデバイスＩＤに基づいて、前記デバイスに推奨されるファームウェアを特定し、特定した当該ファームウェアを前記デバイスに出力する入出力制御部と、
を備えるコンピュータシステム。
【請求項６】
コンピュータシステムに増設され、ファームウェアによって動作するデバイスによるファームウェア決定方法であって、
前記ファームウェアを決定するときに、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合の前記ファームウェアの決定における条件を規定するユーザポリシーを、記憶部に予め記憶させることと、
前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合に、前記ユーザポリシーに基づいて、前記デバイスに適用する前記ファームウェアを決定することと、
を含むデバイスによるファームウェア決定方法。
【請求項７】
コンピュータシステムに増設され、ファームウェアによって動作するデバイスのコンピュータに、
前記ファームウェアを決定するときに、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合の前記ファームウェアの決定における条件を規定するユーザポリシーを、記憶部に予め記憶させることと、
前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合に、前記ユーザポリシーに基づいて、前記デバイスに適用する前記ファームウェアを決定することと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス、コンピュータシステム、デバイスによるファームウェア決定方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータシステムの中には、拡張機能を実現するＩＯデバイスを増設することのできるコンピュータシステムがある。このように増設されるＩＯデバイスは、さまざまなコンピュータシステムにおいて動作する必要があり、ファームウェアを更新することで、異なるコンピュータシステムにおける動作を可能にしている。
特許文献１には、関連する技術として、ファームウェアの更新に関連する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２６０３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１に記載されている技術は、システムボードを交換するときに、新たに使用されるシステムボードのファームウェアのバージョンが交換箇所であるパーティションで使用されていたファームウェアのバージョンと異なる場合、その新たに使用されるシステムボードのファームウェアを、交換箇所のパーティションで使用されていたバージョンのファームウェアに変更するものである。
そのため、拡張機能を実現するＩＯデバイスを増設可能なコンピュータシステムに、特許文献１に記載されている技術を用いた場合、新たに増設するＩＯデバイスのファームウェアが、ユーザの所望の性能を有するファームウェアである場合でも、ユーザの望まない性能のファームウェアに変更されてしまう可能性がある。
【０００５】
本発明の各態様は、上記の課題を解決することのできるデバイス、コンピュータシステム、デバイスによるファームウェア決定方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の一態様によれば、デバイスは、コンピュータシステムに増設され、ファームウェアによって動作するデバイスであって、前記ファームウェアを決定するときに、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合の前記ファームウェアの決定における条件を規定するユーザポリシーを、記憶部に予め記憶させるポリシー指定部と、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合に、前記ユーザポリシーに基づいて、前記デバイスに適用する前記ファームウェアを決定するファームウェア決定部と、を備える。
【０００７】
本発明の別の態様によれば、コンピュータシステムは、上記のデバイスと、前記デバイスを識別するデバイスＩＤに基づいて、前記デバイスに推奨されるファームウェアを特定し、特定した当該ファームウェアを前記デバイスに出力する入出力制御部と、を備える。
【０００８】
本発明の別の態様によれば、デバイスによるファームウェア決定方法は、コンピュータシステムに増設され、ファームウェアによって動作するデバイスによるファームウェア決定方法であって、前記ファームウェアを決定するときに、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合の前記ファームウェアの決定における条件を規定するユーザポリシーを、記憶部に予め記憶させることと、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合に、前記ユーザポリシーに基づいて、前記デバイスに適用する前記ファームウェアを決定することと、を含む。
【０００９】
本発明の別の態様によれば、プログラムは、コンピュータシステムに増設され、ファームウェアによって動作するデバイスのコンピュータに、前記ファームウェアを決定するときに、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合の前記ファームウェアの決定における条件を規定するユーザポリシーを、記憶部に予め記憶させることと、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合に、前記ユーザポリシーに基づいて、前記デバイスに適用する前記ファームウェアを決定することと、を実行させる。
【発明の効果】
【００１０】
本発明の各態様によれば、デバイスに推奨されるファームウェアのバージョンがない場合に、ユーザの所望のファームウェアを決定することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態によるコンピュータシステムの構成を示す図である。
【図２】本発明の一実施形態による補助記憶装置が記憶する情報の例を示す図である。
【図３】本発明の一実施形態による記憶部が記憶する情報の例を示す図である。
【図４】本発明の一実施形態による記憶装置が記憶する情報の例を示す図である。
【図５】本発明の一実施形態におけるファームウェア管理テーブルの一例を示す図である。
【図６】本発明の一実施形態におけるＯＳ／デバイスファームウェア対応テーブルの一例を示す図である。
【図７】本発明の一実施形態によるコンピュータシステムの処理フローを示す第１の図である。
【図８】本発明の一実施形態におけるＯＳ／デバイスファームウェア対応テーブルへの情報の記録を説明するための図である。
【図９】本発明の一実施形態における通知情報の一例を示す図である。
【図１０】本発明の一実施形態によるコンピュータシステムの処理フローを示す第２の図である。
【図１１】本発明の実施形態によるＳＡＮストレージ装置の最小構成を示す図である。
【図１２】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１２】
＜実施形態＞
以下、図面を参照しながら実施形態について詳しく説明する。
コンピュータシステム１は、図１に示すように、ＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）デバイス１０（デバイスの一例）、記憶装置２０、入出力制御部３０、中央演算処理装置４０、主記憶装置５０、補助記憶装置６０を備える。
入出力制御部３０は、ＩＯデバイス１０、記憶装置２０、中央演算処理装置４０、主記憶装置５０、補助記憶装置６０のそれぞれに接続される。
【００１３】
ＩＯデバイス１０は、コンピュータシステム１において増設されたデバイスである。ＩＯデバイス１０は、図１に示すように、ＩＯデバイス制御部１０１（ポリシー指定部の一例、ファームウェア決定部の一例）、デバイス１０２、記憶部１０３を備える。
【００１４】
ＩＯデバイス制御部１０１は、入出力制御部３０との間で信号を送受信する。またＩＯデバイス制御部１０１は、デバイス１０２の動作との間で、デバイス１０２の動作をコントロールするための信号を送受する。
デバイス１０２は、増設されたＩＯデバイス１０ごとに定まった機能を実行する。
【００１５】
記憶部１０３は、ＩＯデバイス１０が行う処理に必要な種々の情報を記憶する。例えば、記憶部１０３は、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＦＬＡＳＨメモリなどの不揮発性メモリである。記憶部１０３は、図３に示すように、記憶領域が分割されて使用され、ＩＯデバイス制御部１０１の設定データ３０１、ファームウェア３０３などを記憶する。設定データ３０１には、ＩＯデバイス制御部１０１及びデバイス１０２それぞれの設定値、複数のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上のデバイスドライバ、デバイス１０２に要求するファームウェアのバージョンの情報、ＩＯデバイス１０を識別するためのＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）情報などを含む。
【００１６】
また、ファームウェア３０３に関する情報は、ファームウェア管理テーブル３０２に含まれる。図５は、ファームウェア管理テーブル３０２の一例を示す図である。
ファームウェア管理テーブル３０２におけるイメージＩＤ５０１は、ファームウェアイメージの識別番号情報を記憶するフィールドである。バージョン５０２は、ファームウェアイメージのバージョン情報を記憶するフィールドである。タイムスタンプ５０３は、ファームウェアに記録されているそのファームウェアが作成された日付を示す情報または発行された日付を示す情報を記憶するフィールドである。サポートフラグ５０４は、ファームウェアが対応可能なＯＳとそのバージョンをフラグ定義５０５に従って整理記述するフィールドである。ファームウェア管理テーブル３０２では、ファームウェアごとに各フィールドの情報が管理される。ＩＯデバイス制御部１０１は、ファームウェア管理テーブル３０２の生成、更新、参照、管理を行う。
【００１７】
記憶装置２０は、ＥＥＰＲＯＭ、ＦＬＡＳＨメモリなどの不揮発性メモリである。記憶装置２０は、図４に示すように、記憶領域が分割されて使用され、例えば、ＯＳ／デバイスファームウェア対応テーブル４０１を記憶する。
図６は、ＯＳ／デバイスファームウェア対応テーブル４０１の一例を示す図である。
ＯＳ／デバイスファームウェア対応テーブル４０１における起動可能ＯＳ識別番号６０１は、コンピュータシステム１が起動可能なＯＳ環境の識別番号を記憶するフィールドである。ＯＳ情報６０２は、ＯＳの種別とそのバージョン情報を記憶するフィールドである。起動ファームウェア指定デバイス６０３は、ＯＳ環境でＩＯデバイス１０に対して起動するファームウェアのバージョンの指定があるデバイス１０２のＩＤ情報と、そのＩＤ情報に対応するファームウェアのバージョンを記憶するフィールドである。ＯＳ／デバイスファームウェア対応テーブル４０１では、ＯＳ環境ごとに各フィールドの情報が管理される。中央演算処理装置４０は、ＯＳ環境上でＩＯデバイス１０を起動させる指定されたファームウェアの情報を持つデバイスドライバからその情報を収集するプログラムに応じて、ＯＳ／デバイスファームウェア対応テーブル４０１の生成、更新、参照、管理を行う。
【００１８】
ＯＳ／デバイスファームウェア対応テーブル４０１の生成について図８を用いて説明する。
図８のデバイスドライバ群７０に示すように、ＯＳには様々なデバイス１０２を動作させられるよう多数のデバイスドライバが存在している。各デバイスドライバは、デバイス１０２を制御するためのプログラムであり、中央演算処理装置４０は、各デバイス１０２に付与されたデバイスＩＤ（例えば、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）  ＩＤ）により制御対象のデバイス１０２を判別している。また、デバイスドライバに、ファームウェアのうちデバイス１０２に適用可能なファームウェアであるサポートファームウェアのバージョン情報を持たせている。さらにＯＳ上で動作するサポートファームウェア情報収集プログラム８０をインストールし、中央演算処理装置４０は、ＯＳ起動時や、デバイスドライバ更新時などのタイミングで動作させる。サポートファームウェア情報収集プログラム８０は、デバイスドライバから、デバイスＩＤ情報とファームウェア情報を収集する機能を備える。中央演算処理装置４０は、サポートファームウェア情報収集プログラム８０を実行することで、ＯＳ／デバイスファームウェア対応テーブル４０１における情報を記録・更新する。
【００１９】
入出力制御部３０は、中央演算処理装置４０、主記憶装置５０、補助記憶装置６０それぞれの装置間の信号の送受信を制御する。また、入出力制御部３０は、通知情報を生成し、生成した通知情報をＩＯデバイス制御部１０１に出力する。
図９は、通知情報の一例を示す図である。通知情報におけるデバイスＩＤ７０１には、ＩＯデバイス１０のＩＤ情報が記憶されている。例えば、ＩＤ情報は、ＰＣＩ  ＩＤである。指定ファームウェアＶｅｒ７０２には、ＩＯデバイス１０のファームウェアのバージョン情報が記憶される。指定ファームウェアＶｅｒ７０２に記憶されるバージョン情報は、ＯＳ上のデバイスドライバが要求するファームウェアのバージョン情報である。ＯＳ＿Ｉｎｆｏ（Ｔｙｐｅ／Ｖｅｒ）７０３には、コンピュータシステム１が今回起動するＯＳの種別（Ｔｙｐｅ）とバージョン（Ｖｅｒ）とが記憶される。
【００２０】
中央演算処理装置４０は、演算などの処理を実行する。
主記憶装置５０は、演算処理で使用されるデータの格納などに利用される。
補助記憶装置６０は、ＯＳイメージを記憶する。補助記憶装置６０は、ＯＳイメージを複数記憶してもよい。補助記憶装置６０は、例えば、ハードディスクである。補助記憶装置６０は、図２に示すように、記憶領域を複数に分割して利用することができる。先頭の記憶領域には、ＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）２０１と呼ばれる、補助記憶装置６０内の分割領域（パーティション）を管理するための管理テーブルが記憶されている。パーティション２０２は、パーティションＡ、Ｂ、Ｃ、Ｄを含む。パーティションＡにはＯＳ環境１が記憶されている。パーティションＢにはＯＳ環境２が記憶されている。パーティションＣにはＯＳ環境３が記憶されている。パーティションＤにはＯＳ環境４が記憶されている。
【００２１】
次に、本発明の一実施形態によるコンピュータシステム１の処理について説明する。ここでは、図７に示すコンピュータシステム１の起動における入出力制御部３０とＩＯデバイス１０の動作について説明する。
コンピュータシステム１の電源が投入されると、コンピュータシステム１が動作を開始する。コンピュータシステム１が動作を開始すると、ＩＯデバイス１０において、デバイス１０２が初期化される。以下に具体例を示す。
【００２２】
ＩＯデバイス制御部１０１は、記憶部１０３が記憶する設定データ３０１に含まれるデバイスＩＤを読み取る。ＩＯデバイス制御部１０１は、読み取ったデバイスＩＤを入出力制御部３０に出力する（通知する）（ステップＳ１）。
【００２３】
入出力制御部３０は、ＩＯデバイス１０からデバイスＩＤを受ける。入出力制御部３０は、受けたデバイスＩＤから接続されたデバイス１０２を認識する（ステップＳ２）。  電源の投入後からコンピュータシステム１において、コンピュータシステム１を起動させる処理が実行され、その処理において起動するＯＳを確定させる処理（例えば、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ））の記憶する起動プログラムにより起動した中央演算処理装置４０が、ユーザによる操作により選択されたＯＳを確定させる処理）により、起動されるＯＳが決定される（ステップＳ３）。
【００２４】
起動するＯＳが決定すると、入出力制御部３０は、記憶装置２０からＯＳ／デバイスファームウェア対応テーブル４０１を読み出す。入出力制御部３０は、読み出したＯＳ／デバイスファームウェア対応テーブル４０１の起動可能ＯＳ識別番号６０１の中から起動するＯＳに一致するＯＳを特定する。入出力制御部３０は、特定したＯＳの指定ＦＷ＿Ｖｅｒの中から、ＩＯデバイス１０から受け取ったデバイスＩＤのデバイス１０２に適したファームウェアを特定する（ステップＳ４）。
具体的には、入出力制御部３０は、特定したＯＳの指定ＦＷ＿Ｖｅｒの中に、ＩＯデバイス１０から受け取ったデバイスＩＤと一致するバージョンのファームウェアがあるか否かを判定する。入出力制御部３０は、デバイスＩＤと一致するバージョンのファームウェアがあると判定した場合、その一致するバージョンのファームウェアがデバイス１０２に適したファームウェアであると判定する。また、入出力制御部３０は、デバイスＩＤと一致するバージョンのファームウェアがないと判定した場合、デバイス１０２に適したファームウェアがないと判定する。
【００２５】
入出力制御部３０は、ステップＳ４の処理により特定したデバイスＩＤ、指定ＦＷ＿Ｖｅｒ、ＯＳ情報６０２（種別／バージョン）を含むＯＳ・ファームウェア情報を生成する。
具体的には、入出力制御部３０は、デバイスＩＤと一致するバージョンのファームウェアがあると判定した場合、特定したデバイスＩＤ、指定ＦＷ＿Ｖｅｒ、ＯＳ情報６０２を含むＯＳ・ファームウェア情報を生成する。また、入出力制御部３０は、デバイスＩＤと一致するバージョンのファームウェアがないと判定した場合、ＯＳ情報６０２があるか否かを判定する。入出力制御部３０は、ＯＳ情報６０２があると判定した場合、特定したデバイスＩＤ、特定したＯＳ情報６０２、バージョンを示す情報を含まないことを示す情報の指定ＦＷ＿Ｖｅｒを含むＯＳ・ファームウェア情報を生成する。また、入出力制御部３０は、ＯＳ情報６０２がないと判定した場合、特定したデバイスＩＤ、バージョンを示す情報を含まないことを示す情報のＯＳ情報６０２、バージョンを示す情報を含まないことを示す情報の指定ＦＷ＿Ｖｅｒを含むＯＳ・ファームウェア情報を生成する。
入出力制御部３０は、生成したＯＳ・ファームウェア情報をＩＯデバイス１０に出力する（ステップＳ５）。
【００２６】
ＩＯデバイス制御部１０１は、入出力制御部３０からＯＳ・ファームウェア情報を受ける（ステップＳ６）。ＩＯデバイス制御部１０１は、起動するファームウェアを決定する処理を実行する（ステップＳ７）。ＩＯデバイス制御部１０１が行うステップＳ７の処理の詳細については、後述する。
【００２７】
ＩＯデバイス制御部１０１は、記憶部１０３が記憶するファームウェア３０３の中から指定されたファームウェアを読み出す。ＩＯデバイス制御部１０１は、読み出したファームウェアを実行する（ステップＳ８）。このファームウェアの実行によりＩＯデバイス１０全体の起動処理が進められる。ＩＯデバイス制御部１０１は、起動処理が完了したか否かを判定する（ステップＳ９）。
ＩＯデバイス制御部１０１は、起動処理が完了しないと判定した場合（ステップＳ９においてＮＯ）、ステップＳ９の処理に戻す。
また、ＩＯデバイス制御部１０１は、起動処理が完了したと判定した場合（ステップＳ９においてＹＥＳ）、起動処理が完了したことを入出力制御部３０に通知する（ステップＳ１０）。例えば、ＩＯデバイス制御部１０１は、起動処理が完了したことを報知する報知信号を入出力制御部３０に出力する。
【００２８】
入出力制御部３０は、ＩＯデバイス１０から報知信号を受ける。入出力制御部３０は、報知信号を受けるとＯＳを起動する処理を実行する（ステップＳ１１）。なお、コンピュータシステム１には、複数のＩＯデバイス１０が増設されることがある。そのため、入出力制御部３０によるＯＳを起動する処理は、コンピュータシステム１に増設されたすべてのデバイス１０２の起動が完了した後に行うものであってもよい。
【００２９】
次に、ＩＯデバイス制御部１０１が行うステップＳ７の処理の詳細について説明する。
図１０は、起動するファームウェアを決定する処理を示す処理フローである。
ＩＯデバイス制御部１０１は、ステップＳ６の処理を行うと、受けたＯＳ・ファームウェア情報にファームウェアを指定する情報があるか否か、すなわち指定ＦＷ＿Ｖｅｒがバージョンを示す情報であるか否かを判定する（ステップＳ２２）。ＩＯデバイス制御部１０１は、指定ＦＷ＿Ｖｅｒがバージョンを示す情報であると判定する場合、ＯＳ・ファームウェア情報にファームウェアを指定する情報があると判定する。また、ＩＯデバイス制御部１０１は、指定ＦＷ＿Ｖｅｒがバージョンを示す情報を含まないことを示す情報であると判定する場合、ＯＳ・ファームウェア情報にファームウェアを指定する情報がないと判定する。
【００３０】
ＩＯデバイス制御部１０１は、ＯＳ・ファームウェア情報にファームウェアを指定する情報があると判定した場合（ステップＳ２２においてＹＥＳ）、記憶部１０３が記憶するファームウェア３０３の中に指定されたファームウェア、すなわち指定ＦＷ＿Ｖｅｒが示すバージョンのファームウェアがあるか否かを判定する（ステップＳ２３）。
ＩＯデバイス制御部１０１は、ファームウェア３０３の中に指定されたファームウェアがあると判定した場合（ステップＳ２３においてＹＥＳ）、指定ＦＷ＿Ｖｅｒが示すバージョンのファームウェアでデバイス１０２を起動する（ステップＳ２４）。
ＩＯデバイス制御部１０１は、ファームウェア３０３の中に指定されたファームウェアがないと判定した場合（ステップＳ２３においてＮＯ）、ＯＳ情報６０２があるか否かを判定する（ステップＳ２５）。また、ＩＯデバイス制御部１０１は、ＯＳ・ファームウェア情報にファームウェアを指定する情報がないと判定した場合（ステップＳ２２においてＮＯ）、ステップＳ２５の処理に進める。
【００３１】
ＩＯデバイス制御部１０１は、ＯＳ情報６０２があると判定した場合（ステップＳ２５においてＹＥＳ）、ファームウェア管理テーブル３０２において、ＯＳ情報６０２の示すＯＳのバージョンに一致するＯＳの候補を絞り込む。そして、ＩＯデバイス制御部１０１は、絞り込んだＯＳの候補の中から、サポートフラグ５０４またはタイムスタンプ５０３に基づいて起動する１つのファームウェアを決定する（ステップＳ２６）。例えば、ＩＯデバイス制御部１０１は、予めユーザポリシーの情報を設定データ３０１に記憶させ、ＩＯデバイス制御部１０１は、そのユーザポリシーの情報が示すファームウェアを優先して決定すればよい。ユーザポリシーは、ファームウェアの決定における条件を規定する情報であり、デバイス１０２に適したバージョンのファームウェアの指定がない場合に、ＩＯデバイス制御部１０１がファームウェアを決定するときの条件をユーザが任意に付加することを可能にする。この場合のユーザポリシーの例としては、安定版のファームウェア（動作の安定なファームウェア）を対象とする設定、最新のバージョンのファームウェアを対象とする設定、安定版のファームウェアを対象とし、さらにそれらの中から最新のバージョンを対象とする設定、安定版のファームウェアのみを対象とする設定、最新のバージョンのファームウェアのみを対象とする設定、安定版のファームウェアのみを対象とし、さらにそれらの中から最新のバージョンのみを対象とする設定などが挙げられる。
ＩＯデバイス制御部１０１は、決定したファームウェアをファームウェア管理テーブル３０２において特定する。ＩＯデバイス制御部１０１は、特定したファームウェアを記憶部１０３から読み出す。ＩＯデバイス制御部１０１は、読み出したファームウェアでデバイス１０２を起動する（ステップＳ２７）。
【００３２】
また、ＩＯデバイス制御部１０１は、ＯＳ情報６０２がないと判定した場合（ステップＳ２５においてＮＯ）、タイムスタンプ５０３に基づいて起動する１つのファームウェアを決定する（ステップＳ２８）。具体的には、予めユーザポリシーの情報を設定データ３０１に記憶させ、ＩＯデバイス制御部１０１は、そのユーザポリシーの情報とファームウェア管理テーブル３０２のタイムスタンプ５０３とに基づいて、ファームウェアを決定する。この場合のユーザポリシーの例としては、最新のバージョンのファームウェアと決定する設定、サポートフラグ５０４のうち安定版を示すフラグが最多のバージョンのファームウェアとする設定などが挙げられる。
ＩＯデバイス制御部１０１は、決定したファームウェアをファームウェア管理テーブル３０２において特定する。ＩＯデバイス制御部１０１は、特定したファームウェアを記憶部１０３から読み出す。ＩＯデバイス制御部１０１は、読み出したファームウェアでデバイス１０２を起動する（ステップＳ２９）。
【００３３】
以上、本発明の一実施形態によるコンピュータシステム１について説明した。本発明の一実施形態によるコンピュータシステム１において、ＩＯデバイス制御部１０１は、ファームウェアを決定するときに、デバイス１０２に推奨されるファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合のファームウェアの決定における条件を規定するユーザポリシーを、記憶部１０３に予め記憶させる。また、ＩＯデバイス制御部１０１は、デバイス１０２に推奨されるファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合に、ユーザポリシーに基づいて、デバイス１０２に適用するファームウェアを決定する。
このようにすれば、ユーザは、ファームウェアを決定する条件を規定するユーザポリシーを任意の条件に設定することができる。その結果、コンピュータシステム１において、ＩＯデバイス１０は、推奨されるファームウェアのバージョンがない場合に、ユーザの所望のファームウェアを決定することができる。
【００３４】
図１１は、本発明の実施形態によるデバイス１０ａの最小構成を示す図である。
デバイス１０ａは、コンピュータシステムに増設され、ファームウェアによって動作するデバイスである。デバイス１０ａは、図１１に示すように、ポリシー指定部１０１ａと、ファームウェア決定部１０１ｂと、を備える。
ポリシー指定部１０１ａは、前記ファームウェアを決定するときに、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合の前記ファームウェアの決定における条件を規定するユーザポリシーを、記憶部に予め記憶させる。
ファームウェア決定部１０１ｂは、前記デバイスに推奨される前記ファームウェアのバージョン情報としてバージョンを示す情報を含まないことを示す情報を取得した場合に、前記ユーザポリシーに基づいて、前記デバイスに適用する前記ファームウェアを決定する。
【００３５】
なお、本発明の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【００３６】
本発明の実施形態における記憶装置２０、記憶部１０３、主記憶装置５０、補助記憶装置６０、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲においてどこに備えられていてもよい。また、記憶装置２０、記憶部１０３、主記憶装置５０、補助記憶装置６０、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲において複数存在しデータを分散して記憶していてもよい。
【００３７】
本発明の実施形態について説明したが、上述のＩＯデバイス１０、デバイス１０ａ、その他の制御装置は内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
図１２は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ５は、図１２に示すように、ＣＰＵ６、メインメモリ７、ストレージ８、インターフェース９を備える。
例えば、上述のＩＯデバイス１０、デバイス１０ａ、その他の制御装置のそれぞれは、コンピュータ５に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ８に記憶されている。ＣＰＵ６は、プログラムをストレージ８から読み出してメインメモリ７に展開し、当該プログラムに従って上記処理を実行する。また、ＣＰＵ６は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ７に確保する。
また、コンピュータシステム１は、上述のコンピュータシステム、すなわち、図１２に示すコンピュータ５を備えるものであってもよい。
【００３８】
ストレージ８の例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、半導体メモリ等が挙げられる。ストレージ８は、コンピュータ５のバスに直接接続された内部メディアであってもよいし、インターフェース９または通信回線を介してコンピュータ５に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ５に配信される場合、配信を受けたコンピュータ５が当該プログラムをメインメモリ７に展開し、上記処理を実行してもよい。少なくとも１つの実施形態において、ストレージ８は、一時的でない有形の記憶媒体である。
【００３９】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル（差分プログラム）であってもよい。
【００４０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
【符号の説明】
【００４１】
１・・・コンピュータシステム
５・・・コンピュータ
６・・・ＣＰＵ
７・・・メインメモリ
８・・・ストレージ
９・・・インターフェース
１０・・・ＩＯデバイス
１０ａ、１０２・・・デバイス
２０・・・記憶装置
３０・・・入出力制御部
４０・・・中央演算処理装置
５０・・・主記憶装置
６０・・・補助記憶装置
１０１・・・ＩＯデバイス制御部
１０１ａ・・・ポリシー指定部
１０１ｂ・・・ファームウェア決定部
１０３・・・記憶部
【図１】
2019179510.tif 000003
【図２】
2019179510.tif 000004
【図３】
2019179510.tif 000005
【図４】
2019179510.tif 000006
【図５】
2019179510.tif 000007
【図６】
2019179510.tif 000008
【図７】
2019179510.tif 000009
【図８】
2019179510.tif 000010
【図９】
2019179510.tif 000011
【図１０】
2019179510.tif 000012
【図１１】
2019179510.tif 000013
【図１２】
2019179510.tif 000014