(57)【要約】      （修正有）【課題】ファームウェア・アップグレードを許可すべきか禁止すべきかの判断を容易にする。【解決手段】第１のビット列は、コンピュータ・システムのファームウェアの互換性情報に対応する。各ビットは、ファームウェアまたはシステムの属性に対応し、その属性がその属性に関する潜在的非互換性要因を示すときに１になる。第２のビット列は、それによってファームウェアがアップグレードされるファームウェア・イメージに対応する。各ビットは、ファームウェア・イメージが第１のビット列のうちの対応ビットの属性と互換性があるかどうかを示し、そのファームウェア・イメージがその属性と互換性がある場合に１になる。第１および第２のビット列について論理ＡＮＤ演算が実行される。論理ＡＮＤ演算の結果が第１のビット列に等しい場合、ファームウェアは、ファームウェア・イメージでアップグレードすることが許可され、等しくない場合に禁止される。【選択図】図３
2006190278.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・システムのファームウェアのファームウェア互換性情報に対応し、各ビットが前記コンピュータ・システムおよび前記ファームウェアのうちの少なくとも一方の属性に対応する第１のファームウェア関連ビット列を決定するステップと、
それによって前記コンピュータ・システムの前記ファームウェアがアップグレードされることが望ましいファームウェア・イメージに対応し、各ビットが前記ファームウェア・イメージが前記第１のビット列のうちの対応ビットの前記属性と互換性があるかどうかを示す第２のファームウェア関連ビット列を決定するステップと、
前記第１のビット列および前記第２のビット列について論理ＡＮＤ演算を実行するステップと、
前記論理ＡＮＤ演算の結果が前記第１のビット列に等しい場合に、前記コンピュータ・システムの前記ファームウェアを前記ファームウェア・イメージでアップグレードすることを許可するステップと、
前記論理ＡＮＤ演算の結果が前記第１のビット列に等しくない場合に、前記コンピュータ・システムの前記ファームウェアを前記ファームウェア・イメージでアップグレードすることを禁止するステップと、
を有する方法。
【請求項２】
前記コンピュータ・システムの前記ファームウェアを前記ファームウェア・イメージでアップグレードすることを許可するために、前記ファームウェア・イメージに対応する前記第２のビット列のうちの対応ビットも１という値に等しくならなければならないように、前記第１のビット列のうちの各ビットが対応する前記属性が前記属性に関する前記コンピュータ・システムの潜在的非互換性要因を示す場合に前記第１のビット列のうちの前記ビットが１という値に等しくなる、請求項１に記載の方法。
【請求項３】
前記ファームウェア・イメージに対応する前記第２のビット列のうちの対応ビットが任意の値を有することができ、前記コンピュータ・システムの前記ファームウェアを前記ファームウェア・イメージでアップグレードすることを許可するかどうかに影響しないように、前記第１のビット列のうちの各ビットが対応する前記属性が前記属性に関する前記コンピュータ・システムの潜在的非互換性要因を示さない場合に前記第１のビット列のうちの前記ビットが０という値に等しくなる、請求項２に記載の方法。
【請求項４】
前記ファームウェア・イメージが前記第１のビット列のうちの前記ビットによって示された前記コンピュータ・システムの前記潜在的非互換性要因を引き起こさないように、前記ファームウェア・イメージが前記第２のビット列のうちの各ビットが対応する前記第１のビット列のうちの前記ビットに対応する前記属性と互換性がある場合に前記第２のビット列のうちの前記ビットが１という値に等しくなる、請求項２に記載の方法。
【請求項５】
前記属性と互換性がない場合に前記第２のビット列のうちの各ビットが０という値に等しくなる、請求項４に記載の方法。
【請求項６】
前記第１のファームウェア関連ビット列を決定する前記ステップが、前記コンピュータ・システムから前記第１のビット列を取り出すステップを有する、請求項１に記載の方法。
【請求項７】
前記第２のファームウェア関連ビット列を決定する前記ステップが、前記ファームウェア・イメージから前記第２のビット列を取り出すステップを有する、請求項１に記載の方法。
【請求項８】
コンピュータ・システムであって、
プロセッサと、
ファームウェアと
各ビットが前記コンピュータ・システムおよび前記ファームウェアのうちの少なくとも一方の属性に対応する、ファームウェアの互換性情報に対応する関連する第１のビット列と、
少なくとも前記ファームウェアに関連する前記第１のビット列に基づいて前記コンピュータ・システムの前記ファームウェアをアップグレードするために前記プロセッサによって実行されるコンピュータ・プログラムを格納する記憶装置と、
を含むコンピュータ・システム。
【請求項９】
前記コンピュータ・プログラムが、関連する第２のビット列を有するファームウェア・イメージで前記コンピュータ・システムの前記ファームウェアをアップグレードするためのものであり、前記第２のビット列のうちの各ビットが、前記ファームウェア・イメージが前記第１のビット列のうちの対応ビットの属性と互換性があるかどうかを示し、前記ファームウェア・イメージで前記コンピュータ・システムの前記ファームウェアをアップグレードするための前記コンピュータ・プログラムが、前記ファームウェアに関連する前記第１のビット列と、前記ファームウェア・イメージに関連する前記第２のビット列とに基づくものである、請求項８に記載のコンピュータ・システム。
【請求項１０】
前記コンピュータ・プログラムが、前記第１のビット列および前記第２のビット列について論理ＡＮＤ演算を実行するためのものであり、前記論理ＡＮＤ演算の結果が前記第１のビット列に等しい場合に、前記コンピュータ・プログラムが前記ファームウェア・イメージで前記ファームウェアをアップグレードし、前記論理ＡＮＤ演算の結果が前記第１のビット列に等しくない場合に、前記コンピュータ・プログラムが前記ファームウェア・イメージで前記ファームウェアをアップグレードしないようにする、請求項９に記載のコンピュータ・システム。
【請求項１１】
前記コンピュータ・システムの前記ファームウェアを前記ファームウェア・イメージでアップグレードすることを許可するために、前記ファームウェア・イメージに対応する前記第２のビット列のうちの対応ビットも１という値に等しくならなければならないように、前記第１のビット列のうちの各ビットが対応する前記属性が前記属性に関する前記コンピュータ・システムの潜在的非互換性要因を示す場合に前記第１のビット列のうちの前記ビットが１という値に等しくなる、請求項９に記載のコンピュータ・システム。
【請求項１２】
前記ファームウェア・イメージに対応する前記第２のビット列のうちの対応ビットが任意の値を有することができ、前記コンピュータ・システムの前記ファームウェアを前記ファームウェア・イメージでアップグレードすることを許可するかどうかに影響しないように、前記第１のビット列のうちの各ビットが対応する前記属性が前記属性に関する前記コンピュータ・システムの潜在的非互換性要因を示さない場合に前記第１のビット列のうちの前記ビットが０という値に等しくなる、請求項１１に記載のコンピュータ・システム。
【請求項１３】
前記ファームウェア・イメージが前記第１のビット列のうちの前記ビットによって示された前記コンピュータ・システムの前記潜在的非互換性要因を引き起こさないように、前記ファームウェア・イメージが前記第２のビット列のうちの各ビットが対応する前記第１のビット列のうちの前記ビットに対応する前記属性と互換性がある場合に前記第２のビット列のうちの前記ビットが１という値に等しくなる、請求項１１に記載のコンピュータ・システム。
【請求項１４】
前記属性と互換性がない場合に前記第２のビット列のうちの各ビットが０という値に等しくなる、請求項１３に記載のコンピュータ・システム。
【請求項１５】
コンピュータ・システムに、当該コンピュータ・システムのファームウェアに関連する第１のビット列をファームウェア・イメージに関連する第２のビット列と比較することに基づいて、前記ファームウェア・イメージで前記ファームウェアのアップグレードを実行させるためのプログラムであって、
前記第１のビット列のうちの各ビットが前記コンピュータ・システムおよび前記ファームウェアのうちの少なくとも一方の属性に対応し、
前記第２のビット列のうちの各ビットが、前記ファームウェア・イメージが前記第１のビット列のうちの対応ビットの前記属性と互換性があるかどうかを示す、プログラム。
【請求項１６】
前記プログラムは前記コンピュータ・システムにさらに、前記第１のビット列および前記第２のビット列について論理ＡＮＤ演算を実行させ、前記論理ＡＮＤ演算の結果が前記第１のビット列に等しい場合に、前記ファームウェアを前記ファームウェア・イメージでアップグレードを実行させ、前記論理ＡＮＤ演算の結果が前記第１のビット列に等しくない場合に、前記ファームウェアを前記ファームウェア・イメージでアップグレードしないように実行させる、請求項１５に記載のプログラム。
【請求項１７】
前記コンピュータ・システムの前記ファームウェアを前記ファームウェア・イメージでアップグレードすることを許可するために、前記ファームウェア・イメージに対応する前記第２のビット列のうちの対応ビットも１という値に等しくならなければならないように、前記第１のビット列のうちの各ビットが対応する前記属性が前記属性に関する前記コンピュータ・システムの潜在的非互換性要因を示す場合に前記第１のビット列のうちの前記ビットが１という値に等しくなり、
前記ファームウェア・イメージに対応する前記第２のビット列のうちの対応ビットが任意の値を有することができ、前記コンピュータ・システムの前記ファームウェアを前記ファームウェア・イメージでアップグレードすることを許可するかどうかに影響しないように、前記第１のビット列のうちの各ビットが対応する前記属性が前記属性に関する前記コンピュータ・システムの潜在的非互換性要因を示さない場合に前記第１のビット列のうちの前記ビットが０という値に等しくなる、請求項１５に記載のプログラム。
【請求項１８】
前記ファームウェア・イメージが前記第１のビット列のうちの前記ビットによって示された前記コンピュータ・システムの前記潜在的非互換性要因を引き起こさないように、前記ファームウェア・イメージが前記第２のビット列のうちの各ビットが対応する前記第１のビット列のうちの前記ビットに対応する前記属性と互換性がある場合に前記第２のビット列のうちの前記ビットが１という値に等しくなる、請求項１７に記載のプログラム。
【請求項１９】
前記属性と互換性がない場合に前記第２のビット列のうちの各ビットが０という値に等しくなる、請求項１８に記載のプログラム。
【請求項２０】
前記プログラムは前記コンピュータ・システムにさらに、前記ファームウェア・イメージおよび前記第２のビット列の保管を実行させる、請求項１５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、新しいファームウェア・イメージでコンピュータ・システムのファームウェアをアップグレードすることに関し、詳細には、コンピュータ・システムのファームウェアのファームウェア関連ビットを新しいファームウェア・イメージに関連する対応ビットと比較することに基づいてアップグレードを許可すべきか禁止すべきかを判定することに関する。
【背景技術】
【０００２】
コンピュータ・システムのファームウェアは、電力なしにその内容を保持する不揮発性メモリ上に保管された、あるカテゴリのコンピュータ・プログラム・コードおよびデータと見なすことができる。このような不揮発性メモリとしては、読取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、および電気消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）を含む。したがって、ファームウェアは、コンピュータ・プログラム・コードを保管するときに「ハード・ソフトウェア」になる。
【０００３】
ある一般的なタイプのファームウェアは、コンピュータの基本入出力システム（ＢＩＯＳ）として知られている。ＢＩＯＳは、不揮発性メモリに保管され、オペレーティング・システムとハードウェアとの間のインターフェースを提供する、複数コンピュータ・プログラム・ルーチンの本質的なセットと見なすことができる。ＢＩＯＳは、周辺技術ならびにリアルタイム・タイム アンド データ・クロック（realtime time-and-date clock）などの内部サービスをサポートする。
【０００４】
コンピュータ・システムのファームウェアは、新しい周辺技術と足並みを揃えるためにまたは現行ファームウェア内に存在するバグを訂正するために、定期的に更新またはアップグレードしなければならない可能性がある。ファームウェアがＲＯＭに保管されている場合、ファームウェアは物理的に交換しなければならない。しかし、ファームウェアがＥＰＲＯＭまたはＥＥＰＲＯＭに保管されている場合、ファームウェアは、新しいファームウェア・イメージをＥＰＲＯＭまたはＥＥＰＲＯＭにロードすることにより、ソフトウェアを介してアップグレードすることができる。
【０００５】
望ましくは、ファームウェアは、様々な理由でいくつかの異なるタイプのコンピュータ・システムにわたって共通している。第１に、共通のファームウェアを有することにより、そうでなければ異なるタイプのコンピュータ・システムのために個別のファームウェアを管理しなければならないユーザ、特に情報技術（ＩＴ）管理者に対して発生するコストが低減される。さらに、共通のファームウェアを有することにより、世界中のＷｅｂサイト上のファームウェア・ダウンロード・ページの数が低減される。また、いくつかの異なるタイプのコンピュータ・システムについて共通のファームウェアを有することにより、工場内で管理しなければならず、開発およびテスト・プロセス中に対処しなければならない種々の項目の数が低減される。
【０００６】
しかし、新しいファームウェア・イメージが常に１つまたは複数の特定のタイプのコンピュータ・システムと互換性があるわけではない可能性がある。このような事例では、ファームウェア・アップグレードを処理するために様々な戦略が存在する。第１に、新しいファームウェア・イメージについて２通りまたはそれ以上の異なるバージョンが提供される場合がある。しかし、この戦略では、前の段落で述べた理由でコストが増加する。
【０００７】
第２に、「ｒｅａｄ  ｍｅ」またはその他のタイプのファイルがファームウェア更新パッケージとともに提供されるかまたは他のタイプの変更ヒストリー・ファイルが提供される場合もある。したがって、ユーザは、所与の新しいファームウェア・イメージが自分の種々のコンピュータ・システムと互換性があるかどうかを判定することができる。しかし、この手法は、ユーザに対して不当な負担を課し、ユーザが偶発的に所与のコンピュータ・システムについて間違ったファームウェア・イメージをインストールするのを防止することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
第３に、システムＩＤまたはＩＤを使用する場合もある。コンピュータ・システムのシステムＩＤが新しいファームウェア・イメージに保管されたシステムＩＤの１つと一致しない場合、そのコンピュータ・システムは、この新しいファームウェア・イメージでそのファームウェアをアップグレードすることができなくなる。新しいタイプのコンピュータ・システムが導入される場合、この新しいタイプのコンピュータ・システムが古いタイプのコンピュータ・システムとは異なるシステムＩＤを返すように変更が行われる。所与のファームウェア・イメージが互換性がある可能性のあるすべての異なるコンピュータ・システムのシステムＩＤをそのファームウェア・イメージに追加しなければならない。
【０００９】
さらに、システム自体のファームウェアを更新するために使用されるファームウェア更新プログラムは、それが新しいタイプのコンピュータ・システムと互換性があることと、さらにそれが新しいタイプのコンピュータ・システムからシステムＩＤを適切に入手し、このＩＤを新しいファームウェア・イメージに保管されたＩＤと適切に比較することを保証するように更新しなければならない。すなわち、この戦略では、新しいタイプのコンピュータ・システムが導入されるたびにファームウェア更新プログラム自体を更新しなければならない。また、この戦略では、新しいファームウェア・イメージが導入されるたびにファームウェア更新プログラム自体を更新しなければならない。
【００１０】
したがって、この手法は柔軟性のないものである。この手法では、新しいタイプのコンピュータ・システムが導入されたときに、新しいタイプのコンピュータ・システムのファームウェアが固有のＩＤを有し、ファームウェア更新プログラムが潜在的に新しいファームウェア・イメージの影響を受ける可能性のあるすべての異なるタイプのコンピュータ・システムを認識するように、ファームウェアとファームウェア更新プログラムの両方に対して変更を行わなければならない。このため、ファームウェア・アップグレード・プログラムは、導入される所与のファームウェア・イメージと効果的に同期を取らなければならない。すべての異なるタイプのコンピュータ・システムにも、導入されるすべての新しいファームウェア・イメージにも、同じファームウェア・アップグレード・プログラムを使用できるわけではない。
【００１１】
したがって、上記その他の理由で、本発明が必要である。
【課題を解決するための手段】
【００１２】
本発明は、ファームウェア関連ビットの比較に基づくファームウェア・アップグレードの許可または禁止に関する。本発明の方法は、第１のファームウェア関連ビット列を決定する。第１のビット列は、コンピュータ・システムのファームウェアのファームウェア互換性情報に対応する。第１のビット列のうちの各ビットは特に、ファームウェアまたはコンピュータ・システムのいずれか一方の属性に対応する。第１のビット列のうちの各ビットは、そのビットが対応する属性がその属性に関するコンピュータ・システムの潜在的非互換性要因を示す場合に１に等しくなる可能性があり、示さない場合に０に等しくなる可能性がある。
【００１３】
この方法は、第２のファームウェア関連ビット列を決定する。第２のビット列は、それによってコンピュータ・システムのファームウェアがアップグレードされることが望ましいファームウェア・イメージに対応する。第２のビット列のうちの各ビットは、ファームウェア・イメージが第１のビット列のうちの対応ビットの属性と互換性があるかどうかを示す。第２のビット列のうちの各ビットは、そのファームウェア・イメージが第１のビット列のうちの対応ビットによって示されたコンピュータ・システムの潜在的非互換性要因を引き起こさないように、そのファームウェア・イメージが第１のビット列のうちの対応ビットの属性と互換性がある場合に１に等しくなる可能性がある。第２のビット列のうちの各ビットは、属性と互換性がない場合に０に等しくなる可能性がある。
【００１４】
この方法は、第１のビット列および第２のビット列について論理ＡＮＤ演算を実行する。論理ＡＮＤ演算の結果が第１のビット列に等しい場合、コンピュータ・システムのファームウェアは、ファームウェア・イメージでアップグレードすることが許可される。しかし、論理ＡＮＤ演算の結果が第１のビット列に等しくない場合、コンピュータ・システムのファームウェアは、ファームウェア・イメージでアップグレードすることが禁止される。このようにして、コンピュータ・システムのファームウェアは、ファームウェア・イメージがコンピュータ・システムと互換性がある場合のみ、そのファームウェア・イメージでアップグレードすることができる。
【００１５】
本発明のコンピュータ・システムは、プロセッサと、ファームウェアと、当該ファームウェアの互換性情報に対応する関連する第１のビット列とを含む。第１のビット列のうちの各ビットは、コンピュータ・システムまたはファームウェアの属性に対応する。また、このコンピュータ・システムは、少なくともファームウェアに関連する第１のビット列に基づいてファームウェアをアップグレードするためにプロセッサによって実行されるコンピュータ・プログラムを格納することができる記憶装置も含む。
【００１６】
このコンピュータ・プログラムは具体的には、関連の第２のビット列を有するファームウェア・イメージでコンピュータ・システムのファームウェアをアップグレードするためのものである。第２のビット列のうちの各ビットは、ファームウェア・イメージが第１のビット列のうちの対応ビットの属性と互換性があるかどうかを示す。このコンピュータ・プログラムは、そのファームウェアに関連する第１のビット列と、ファームウェア・イメージに関連する第２のビット列とに基づいて、そのファームウェア・イメージでコンピュータ・システムのファームウェアをアップグレードするためのものである。
【００１７】
たとえば、このコンピュータ・プログラムは、第１のビット列および第２のビット列について論理ＡＮＤ演算を実行することができる。論理ＡＮＤ演算の結果が第１のビット列に等しい場合、このコンピュータ・プログラムは、ファームウェア・イメージでそのファームウェアをアップグレードする。論理ＡＮＤ演算の結果が第１のビット列に等しくない場合、このコンピュータ・プログラムは、ファームウェア・イメージでそのファームウェアをアップグレードしない。
【００１８】
本発明の装置（article of manufacture）は、コンピュータ可読媒体と、その媒体内の手段とを含む。コンピュータ可読媒体は、記録可能データ記憶媒体、被変調搬送波信号、または他のタイプのコンピュータ可読媒体にすることができる。手段は、ファームウェアに関連する第１のビット列をファームウェア・イメージに関連する第２のビット列と比較することに基づいて、ファームウェア・イメージでコンピュータ・システムのファームウェアをアップグレードするためのものである。第１のビット列のうちの各ビットは、コンピュータ・システムまたはファームウェアの属性に対応する。第２のビット列のうちの各ビットは、ファームウェア・イメージが第１のビット列のうちの対応ビットの属性と互換性があるかどうかを示す。
【００１９】
本発明のプログラムは、コンピュータ・システムに、当該コンピュータ・システムのファームウェアに関連する第１のビット列をファームウェア・イメージに関連する第２のビット列と比較することに基づいて、ファームウェア・イメージでファームウェアのアップグレードを実行させる。ここで、第１のビット列のうちの各ビットはコンピュータ・システムおよびファームウェアのうちの少なくとも一方の属性に対応し、第２のビット列のうちの各ビットは、ファームウェア・イメージが第１のビット列のうちの対応ビットの属性と互換性があるかどうかを示す。
【００２０】
本発明の諸実施形態は従来技術を凌ぐ利点を提供する。各ビットは他のビットから独立している。ファームウェア・アップグレード・プロセス中に考慮に入れる必要がある可能性がある現在の非互換性要因および潜在的に将来の非互換性要因をすべて反映するために、第１のビット列および第２のビット列には、それぞれ十分な数のビットが存在する。第１のビット列はコンピュータ・システムのファームウェア内に存在し、第２のビット列は新しいファームウェア・イメージ内に存在する。ファームウェア・アップグレード・コンピュータ・プログラムは、第１のおよび第２のビット列の詳細または原点（origin）を認識する必要はない。したがって、任意の新しいファームウェア・イメージについて、そのプログラムを実行可能な任意のタイプのコンピュータ・システム上のファームウェア・アップグレードを管理するために、同じファームウェア・アップグレード・プログラムを使用することができる。すなわち、ファームウェア・アップグレード・プログラムの更新は、新しいファームウェア・イメージと同期を取る必要はない。ファームウェア・アップグレード・プログラムによって実行される比較はいつも同じであり、新しいタイプのコンピュータ・システムが導入されるときにファームウェア・アップグレード・プログラムによって異なる比較に対処する必要はない。
【００２１】
本発明のさらに他の利点、諸態様、および諸実施形態は、以下に示す詳細な説明を読み、添付図面を参照することにより、明らかになるであろう。
本明細書で参照した図面は本明細書の一部を形成する。図面に示した特徴は、特に明示的に示したものを除き、本発明のすべての諸実施形態の例証ではなく、本発明のいくつかの諸実施形態のみの例証となるものであり、それと反対の含意は行わないものとする。
【発明を実施するための最良の形態】
【００２２】
本発明の例示的な諸実施形態に関する以下の詳細な説明では、本明細書の一部を形成する添付図面を参照するが、同図面では本発明を実施可能な特定の例示的な諸実施形態が例証のために示されている。これらの諸実施形態については、当業者が本発明を実施できるようにするために十分に詳細に説明する。その他の諸実施形態を使用することができ、本発明の精神または範囲を逸脱せずに、論理的、機械的、およびその他の変更を加えることができる。したがって、以下の詳細な説明は制限的な意味で解釈すべきではなく、本発明の範囲は特許請求の範囲のみによって定義される。
【００２３】
図１は、本発明の一実施形態により、ファームウェア・アップグレード・コンピュータ・プログラム１０６により新しいファームウェア・イメージ１０８でコンピュータ・システム１０２のファームウェア１０４をアップグレードする際のシナリオ１００を示している。コンピュータ・システム１０２は、ファームウェアを有する任意のタイプのコンピューティング・デバイスまたは周辺装置を含むことができる。たとえば、コンピュータ・システム１０２は、デスクトップまたはラップトップ・コンピュータならびにビデオ・カード、サウンド・カードなどの周辺装置にすることができる。ファームウェア１０４は、従来技術の項で説明した通り、基本入出力システム（ＢＩＯＳ）または他のタイプのファームウェアにすることができる。ファームウェア１０４は、不揮発性メモリ集積回路（ＩＣ）など、コンピュータ・システム１０２の不揮発性メモリに保管されている。
【００２４】
ファームウェア・アップグレード・プログラム１０６は、新しいファームウェア・イメージ１０８でファームウェア１０４をアップグレードするように設計されたコンピュータ・プログラムであり、コンピュータ・システム１０２上で実行することができる。アップグレード・プログラム１０６は好ましくは、それによりファームウェア１０４をアップグレードするための特定のファームウェア・イメージ１０８に依存しない。さらに、アップグレード・プログラム１０６は好ましくは、特定のファームウェア１０４にも特定のコンピュータ・システム１０２にも依存しない。すなわち、コンピュータ・システム１０２がファームウェア・アップグレード・コンピュータ・プログラム１０６を実行できる限り、そのプログラム１０６はファームウェア・イメージ１０８またはファームウェア１０４の特定の詳細を考慮に入れる必要がない。
【００２５】
ファームウェア・イメージ１０８は、ファームウェア１０４にロードしてファームウェア１０４をアップグレードするように設計されたバイナリまたはその他のタイプのデータ・ファイルにすることができる。たとえば、ファームウェア・イメージ１０８は、ファームウェア１０４内にまだ存在せず、ファームウェア・イメージ１０８にコーディングされた新しい特徴をコンピュータ・システム１０２が利用できるようにすることができる。また、ファームウェア・イメージ１０８は、ファームウェア１０４によって提供されない新しい周辺技術をシステム１０２が利用できるようにすることもできる。また、ファームウェア・イメージ１０８は、バグ修正およびファームウェア１０４に対するその他の訂正も含むことができる。
【００２６】
コンピュータ・システム１０２は関連の第１のファームウェア関連ビット列１１０を有し、ファームウェア・イメージ１０８は関連の第２のファームウェア関連ビット列１１２を有する。詳細な説明においてより詳細に後述する通り、第１のビット列１１０はコンピュータ・システム１０２のファームウェア１０４のファームウェア互換性情報に対応する。詳細な説明においてより詳細に後述する通り、第２のビット列１１２はそれによりコンピュータ・システム１０２のファームウェア１０４をアップグレードするためのファームウェア・イメージ１０８に対応する。
【００２７】
第１のビット列１１０は、そのファームウェア１０４内など、コンピュータ・システム１０２内に保管される。たとえば、第１のビット列１１０は、ＢＩＯＳ位置１５ｈに保管することができ、当業者であれば分かるように、ソフトウェア・システム管理割込み（ＳＭＩ）を介して入手するかあるいはＢＩＯＳ読取り専用メモリ（ＲＯＭ）領域内のテーブルに保管するかまたはその両方を行うことができる。第２のビット列１１２は、ファームウェア・イメージ１０８を包含する同じバイナリまたはその他のデータ・ファイル内など、新しいファームウェア・イメージ１０８自体の内部に保管することができる。
【００２８】
ファームウェア・アップグレード・コンピュータ・プログラム１０６はまず、新しいファームウェア・イメージ１０８でファームウェア１０４をアップグレードする前に、ファームウェア・イメージ１０８がコンピュータ・システム１０２と互換性があることを検証する。これは好ましくは以下のように実施される。第１に、プログラム１０６はコンピュータ・システム１０２から第１のビット列１１０を決定するかまたは受信する。次に、プログラム１０６は、ファームウェア・イメージ１０８から第２のビット列１１２を決定するかまたは受信する。プログラム１０６は、第１のビット列１１０および第２のビット列１１２について論理ＡＮＤ演算を実行する。
【００２９】
論理ＡＮＤ演算の結果が第１のビット列１１０に等しい場合、プログラム１０６はファームウェア・イメージ１０８でファームウェア１０４をアップグレードする。すなわち、当技術分野で既知の通り、アップグレード・プログラム１０６はファームウェア・イメージ１０８をファームウェア１０４にロードする。論理ＡＮＤ演算の結果が第１のビット列１１０に等しくない場合、プログラム１０６は、ファームウェア・イメージ１０８がコンピュータ・システム１０２と互換性がないと結論を下し、ファームウェア・イメージ１０８でファームウェア１０４をアップグレードしない。
【００３０】
図２は、本発明の一実施形態により、図１のファームウェア・イメージ１０８で図１のファームウェア１０４をアップグレードすべきかどうかを判定するために第１のファームウェア関連ビット列１１０を第２のファームウェア関連ビット列１１２と比較する方法をより詳細に示すシナリオ２００を示している。第１のビット列１１０は、ひとまとめにしてビット２０２と呼ばれるビット２０２Ａ、２０２Ｂ、２０２Ｃ、・・・、２０２Ｎを含む。第２のビット列１１２は、ひとまとめにしてビット２０４と呼ばれるビット２０４Ａ、２０４Ｂ、２０４Ｃ、・・・、２０４Ｎを含む。第１のビット列１１０および第２のビット列１１２について論理ＡＮＤ演算を実行すると、その結果、ビット列２０６が得られる。このビット列２０６は、ひとまとめにしてビット２０８と呼ばれるビット２０８Ａ、２０８Ｂ、・・・、２０８Ｎを含む。ビット列１１０、１１２、および２０６のそれぞれは１０進値または１６進値によって表すことができ、この値は図２に示すようにバイナリ形式で表されることは留意されることである。
【００３１】
第１のビット列１１０のビット２０２のそれぞれは、コンピュータ・システム１０２またはファームウェア１０４の属性に対応する。特に、ビット２０２のそれぞれは、このビットが対応する属性がこの属性に関するコンピュータ・システム１０２の潜在的非互換性要因を示す場合に１という値に等しくなる。ビット２０２のそれぞれは、示さない場合に０という値に等しくなり、それに対してこのビットが対応する属性がこの属性に関するコンピュータ・システム１０２の潜在的非互換性要因を示さないことを示している。
【００３２】
たとえば、ビット２０２Ａは、コンピュータ・システム１０２が特定のタイプのグラフィックス・チップＡを有するかどうかを示すことができる。ビット２０２Ａは具体的に１という値に等しいので、これは、コンピュータ・システム１０２がこの特定のタイプのグラフィックス・チップＡを有することを意味する。したがって、イメージ１０８などの所与のファームウェア・イメージがこの特定のタイプのグラフィックス・チップＡと互換性がない場合、コンピュータ・システム１０２のファームウェア１０４はそのファームウェア・イメージでアップグレードしてはならないので、ビット２０２Ａはこの属性に関するコンピュータ・システム１０２の潜在的非互換性要因を示す。
【００３３】
逆に、ビット２０２Ｂはコンピュータ・システム１０２が特定のタイプのグラフィックス・チップＢを有するかどうかを示すことができ、ビット２０２Ｃはコンピュータ・システム１０２が特定のタイプのグラフィックス・チップＣを有するかどうかを示すことができる。ビット２０２Ｂおよび２０２Ｃはそれぞれ具体的に０という値に等しいので、これは、コンピュータ・システム１０２が特定のタイプのグラフィックス・チップＢまたは特定のタイプのグラフィックス・チップＣのいずれも有していないことを意味する。したがって、所与のファームウェア・イメージが特定のタイプのグラフィックス・チップＢおよびＣと互換性がない場合でも、この非互換性はファームウェア・イメージでそのファームウェア１０４をアップグレードさせるためのコンピュータ・システム１０２の能力に影響しないので、ビット２０２Ｂおよび２０２Ｃはこれらの属性に関するコンピュータ・システム１０２の潜在的非互換性要因を示さない。すなわち、コンピュータ・システム１０２は特定のタイプのグラフィックス・チップＢまたはＣを有していないので、新しいファームウェア・イメージがこれらのタイプのグラフィックス・チップと互換性があるかどうかは重大ではない。
【００３４】
他の一例として、ビット２０２Ｎは、コンピュータ・システム１０２あるいはファームウェア１０４またはその両方がファームウェア１０４内の暗号化パスワード保護をサポートできるかどうかを示すことができる。一実施形態では、ビット２０２Ｎは具体的に１という値に等しいので、これは、コンピュータ・システム１０２あるいはファームウェア１０４またはその両方がファームウェア１０４内で暗号化パスワード保護をサポートできないことを意味する。したがって、所与のファームウェア・イメージが暗号化パスワード保護をサポートするためのシステム１０２あるいはファームウェア１０４またはその両方の機能を必要とする場合、ファームウェア１０４はそのファームウェア・イメージでアップグレードしてはならないので、ビット２０２Ｎはこの属性に関するコンピュータ・システム１０２あるいはファームウェア１０４またはその両方の潜在的非互換性要因を示す。
【００３５】
第１のビット列１１０内のビット２０２の数は望ましくは、コンピュータ・システム１０２あるいはファームウェア１０４またはその両方の属性の任意の潜在的非互換性要因を示すのに十分なほど大きい。ビット２０２自体は互いに独立している。すなわち、各ビット２０２を０という値に設定するかまたは１という値に設定するかは必ずしも任意の他のビット２０２を０という値に設定するかまたは１という値に設定するかに依存しない。むしろ、各ビット２０２は、コンピュータ・システム１０２あるいはファームウェア１０４またはその両方がそれに対してビットが対応する属性と互換性があるかまたは互換性がないかに基づいて設定される。
【００３６】
第２のビット列１１２の各ビット２０４は、第１のビット列１１０のビット２０２のうちの１つに対応する。したがって、ビット２０４Ａはビット２０２Ａに対応し、ビット２０４Ｂはビット２０２Ｂに対応し、ビット２０４Ｃはビット２０２Ｃに対応し、ビット２０４Ｎはビット２０２Ｎに対応し、以下同様である。すなわち、それに対して第１のビット列１１０のうちの対応ビットが対応する属性に関して新しいファームウェア・イメージ１０８が互換性があるかどうかを第２のビット列１１２のうちの各ビットが示すという点で、各ビット２０４はビット２０２のうちの対応する１つのビットを有する。
【００３７】
たとえば、ビット２０４Ａおよび２０４Ｂは１という値に等しく、これは、それに対して対応ビット２０２Ａおよび２０２Ｂが対応する特定のタイプのグラフィックス・カードＡおよびＢに関して新しいファームウェア・イメージ１０８が互換性があることを意味する。同様に、ビット２０４Ｃは０という値に等しく、これは、それに対して対応ビット２０２Ｃが対応する特定のタイプのグラフィックス・カードＣに関して新しいファームウェア・イメージ１０８が互換性がないことを意味する。加えて、ビット２０４Ｎは０という値に等しく、これは、それに対して対応ビット２０２Ｎが対応する暗号化パスワード保護のサポートを新しいファームウェア・イメージ１０８が必要とすること（必要としないこととは対照的）を意味する。
【００３８】
したがって、ファームウェア・イメージ１０８が第１のビット列１１０のこのビットによって示されたコンピュータ・システム１０２の潜在的非互換性要因を引き起こさないように、それに対して第１のビット列１１０の対応ビットが対応する属性に関してファームウェア・イメージ１０８が互換性があるときに、第２のビット列１１２の各ビット２０４は１という値に等しくなる。属性と互換性がない場合、第２のビット列１１２の各ビット２０４は０という値を有することができる。たとえば、第１のビット列１１０のビット２０２Ａが１という値を有する場合、ファームウェア・イメージ１０８が特定のタイプのグラフィックス・カードＡと互換性があることをコンピュータ・システム１０２およびファームウェア１０４が要求していることを示している。第２のビット列１１２の対応ビット２０４Ａも１という値を有するので、これは、ファームウェア・イメージ１０８が特定のタイプのグラフィックス・カードＡと互換性があることを意味する。
【００３９】
もう１つの例として、第１のビット列１１０のビット２０２Ｎが１という値を有する場合、ファームウェア・イメージ１０８が暗号化パスワード保護を必要としないことをコンピュータ・システム１０２あるいはファームウェア１０４またはその両方が要求していることを示している。しかし、第２のビット列１１２の対応ビット２０４Ｎは０という値を有し、ファームウェア１０４が暗号化パスワード保護を必要とすることを意味する。したがって、これに関しては、ファームウェア・イメージ１０８はコンピュータ・システム１０２あるいはファームウェア１０４またはその両方と互換性がない。すなわち、ファームウェア・イメージ１０８は、１という値を有する第１のビット列１１０のビット２０２Ｎによって示される属性の潜在的非互換性要因を引き起こす。
【００４０】
ファームウェア１０４およびコンピュータ・システム１０２が提示された新しいファームウェア・イメージ１０８と互換性があるかどうかを判定するために、第１のビット列１１０のビット２０２は第２のビット列１１２のビット２０４と論理ＡＮＤが取られ、その結果としてビット列２０６のビット２０８が得られる。たとえば、ビット２０２Ａおよび２０４Ａがまとめて論理ＡＮＤが取られると、その結果としてビット２０８Ａが得られ、ビット２０２Ｂおよび２０４Ｂがまとめて論理ＡＮＤが取られると、その結果としてビット２０８Ｂが得られる。同様に、ビット２０２Ｃおよび２０４Ｃがまとめて論理ＡＮＤが取られると、その結果としてビット２０８Ｃが得られ、ビット２０２Ｎおよび２０４Ｎがまとめて論理ＡＮＤが取られると、その結果としてビット２０８Ｎが得られる。一般に、ビット列１１０によって表される値はビット列１１２によって表される値と論理ＡＮＤが取られ、その結果としてビット列２０６が得られる。
【００４１】
第２のビット列１１２のビット２０４と論理ＡＮＤが取られた第１のビット列１１０のビット２０２が第１のビット列１１０のビット２０２に等しい場合、これは、コンピュータ・システム１０２が新しいファームウェア・イメージ１０８と互換性があることを意味し、システム１０２のファームウェア１０４はイメージ１０８で更新またはアップグレードすることができる。したがって、第１のビット列１１０のビット２０２のうちのいずれかが１という値を有する場合、ファームウェア１０４をファームウェア・イメージ１０８でアップグレードすることを許可するために、第２のビット列１１２のビット２０４のうちの対応ビットも１という値に等しくなければならない。比較すると、第１のビット列１１０のビット２０２のうちのいずれかが０という値を有する場合、第２のビット列１１２のビット２０４のうちの対応ビットは１または０のいずれかの値を有することができ、したがって、ファームウェア１０４がファームウェア・イメージ１０８でアップグレードできるかどうかに影響しない。
【００４２】
たとえば、第１のビット列１１０のビット２０２Ａが１という値を有する場合、ファームウェア・イメージ１０８が特定のタイプのグラフィックス・カードＡと互換性があることをコンピュータ・システム１０２が要求していることを意味する。第２のビット列１１０のうちの対応ビット２０４Ａも１という値を有するので、ファームウェア・イメージ１０８はこの特定のタイプのグラフィックス・カードと互換性があり、したがって、これに関しては、システム１０２と互換性がある。すなわち、ビット２０２Ａがビット２０４Ａと論理ＡＮＤが取られると、その結果、ビット２０８Ａが得られ、このビットもビット２０２Ａと同じ値を有する。
【００４３】
比較すると、特定のタイプのグラフィックス・カードＡおよびＢに対応する第１のビット列のうちのビット２０２Ｂおよび２０２Ｃは０という値を有し、ファームウェア・イメージ１０８が特定のタイプのグラフィックス・カードＡおよびＢのいずれか一方と互換性があることをコンピュータ・システム１０２が要求していないことを意味する。したがって、ファームウェア・イメージ１０８が、１という値を有するビット２０４Ｂによって表される通り、特定のタイプのグラフィックス・カードＢと互換性があり、０という値を有するビット２０４Ｃによって表される通り、特定のタイプのグラフィックス・カードＣと互換性がないということは、イメージ１０８とシステム１０２との互換性に影響しない。すなわち、ビット２０２Ｂおよび２０２Ｃがビット２０４Ｂおよび２０４Ｃと論理ＡＮＤが取られると、その結果、ビット２０８Ｂおよび２０８Ｃが得られ、これらのビットはビット２０２Ｂおよび２０２Ｃと同じ値を有する。
【００４４】
最後の一例として、第１のビット列１１０のビット２０２Ｎが１という値を有する場合、暗号化パスワード保護をサポートすることをファームウェア・イメージ１０８がシステム１０２あるいはファームウェア１０４またはその両方に要求しないことをコンピュータ・システム１０２が要求していることを意味する。しかし、第２のビット列１１２のビット２０４Ｎは０という値を有し、実際は暗号化パスワード保護をサポートすることをファームウェア・イメージ１０８がシステム１０２あるいはファームウェア１０４またはその両方に要求していることを意味する。したがって、ビット２０２Ｎがビット２０４Ｎと論理ＡＮＤが取られると、その結果、ビット２０８Ｎが得られ、このビットはビット２０２Ｎとは異なる値を有する。したがって、ファームウェア・イメージ１０８は、ビット２０２Ｎによって示される属性に関してコンピュータ・システム１０２と互換性がない。すなわち、ビット２０２Ｎはシステム１０２の潜在的非互換性要因を識別し、実際はファームウェア・イメージ１０８がこの非互換性要因を引き起こす。
【００４５】
したがって、一般に、第１のビット列１１０のビット２０２のうちのいずれかが第２のビット列１１２のビット２０４のうちの対応ビットと論理ＡＮＤが取られた結果、ビット２０２のビットが得られない場合、コンピュータ・システム１０２はファームウェア・イメージ１０８と互換性がない。言い換えると、ビット２０２によって表された値がビット２０４によって表された値と論理ＡＮＤが取られた結果、ビット２０２によって表された値に等しくない場合、コンピュータ・システム１０２はファームウェア・イメージ１０８と互換性がない。第１のビット列１１０のビット２０２のうちのいずれかが１という値を有し、コンピュータ・システム１０２あるいはファームウェア１０４またはその両方の所与の属性に関する潜在的非互換性要因を示す場合、ファームウェア・イメージ１０８がシステム１０２と互換性があるためには、第２のビット列１１２のビット２０４のうちの対応ビットも１という値を有していなければならない。属性と互換性がない場合、ファームウェア・イメージ１０８は当該潜在的非互換性要因を引き起こし、したがって、イメージ１０８はファームウェア１０４にロードされない。
【００４６】
図３は、本発明の一実施形態により、コンピュータ・システム１０２のファームウェア１０４を新しいファームウェア・イメージ１０８でアップグレードすべきかどうかを判定するための方法３００を示している。この方法３００は、一実施形態では、図１のファームウェア・アップグレード・コンピュータ・プログラム１０６などにより、コンピュータのプロセッサによって実行可能な１つまたは複数のコンピュータ・プログラム部分として実現することができる。方法３００はまず、第１のビット列１１０を決定する（３０２）。たとえば、第１のビット列１１０は、コンピュータ・システム１０２から取り出すことができる。方法３００は次に、第２のビット列１１２を決定する（３０４）。同様に、第２のビット列１１２は、ファームウェア・イメージ１０８から取り出すことができる。
【００４７】
次に、方法３００は、前述の通り、第１のビット列１１０および第２のビット列１１２について論理ＡＮＤ演算を実行する（３０６）。たとえば、図２に示し、同図に関連して説明した例では、この論理ＡＮＤ演算を実行すると、その結果、ビット列２０６が得られる。論理ＡＮＤ演算の結果が第１のビット列１１０に等しい場合（３０８）、コンピュータ・システム１０２のファームウェア１０４はファームウェア・イメージ１０８でアップグレードすることが許可される（３１０）。等しくない場合、ファームウェア１０４は、ファームウェア・イメージ１０８でアップグレードすることが許可されない（３１２）。
【００４８】
したがって、論理ＡＮＤ演算の結果が第１のビット列１１０に等しい場合、これは、新しいファームウェア・イメージ１０８がコンピュータ・システム１０２およびファームウェア１０４と互換性があることを意味する。したがって、ファームウェア１０４は、ファームウェア・アップグレード・プログラム１０６などにより、ファームウェア・イメージ１０８をファームウェア１０４にロードすることによって、ファームウェア・イメージ１０８で更新またはアップグレードすることができる。しかし、論理ＡＮＤ演算の結果が第１のビット列１１０に等しくない場合、これは、新しいファームウェア・イメージ１０８がシステム１０２およびファームウェア１０４と互換性がないことを意味する。
【００４９】
ファームウェア・イメージ１０８でファームウェア１０４をアップグレードした後、ファームウェア１０４は依然として同じ関連のファームウェア関連ビット列１１０を維持することは留意されることである、すなわち、ファームウェア関連ビット列１１０は所与のコンピュータ・システム１０２あるいはファームウェア１０４またはその両方に特定のものである。したがって、ビット列１１０は、関連のファームウェア関連ビット列１１２を有する新しいファームウェア・イメージ１０８がファームウェア１０４にロードされたときに変化しない。さらに、ファームウェア・アップグレード・コンピュータ・プログラム１０６など、方法３００を実行するエンティティは、第１のビット列１１０または第２のビット列１１２のビットのうちのいずれかのビットの重要度を把握している必要はなく、これらのビットの原点を把握している必要もない。むしろ、そのエンティティは、ファームウェア１０４を新しいファームウェア・イメージ１０８でアップデートすることを許可すべきかどうかを判定するために方法３００を実行するだけでよい。
【００５０】
図４は、本発明の特定の一実施形態によるコンピュータ・システム１０２をより詳細に示している。システム１０２は、ファームウェア１０４と、プロセッサ４０２と、ファームウェア・アップグレード・コンピュータ・プログラム１０６を保管する記憶装置４０４とを含むものとして示されている。当業者であれば分かるように、コンピュータ・システム１０２は、本発明の他の諸実施形態では、図４に示すものに加えてあるいは図４に示すものの代わりにまたはその両方として、その他のコンポーネントを有する場合もある。
【００５１】
ファームウェア１０４は具体的には、第１のファームウェア関連ビット列１１０を保管するものとして図４に示されており、記憶装置４０４は具体的には、ファームウェア・アップグレード・コンピュータ・プログラム１０６を保管するものとして図４に示されている。記憶装置４０４は、ハード・ディスク・ドライブなどの不揮発性ストレージならびに半導体メモリなどの揮発性ストレージにするかまたはそれらを含むことができる。プロセッサ４０２は、新しいファームウェア・イメージに関連する第２のビット列と比較されるシステム１０２に関連する第１のビット列１１０に基づいて、新しいファームウェア・イメージでファームウェア１０４をアップグレードすべきかどうかを判定するために、一実施形態では記憶装置４０４からのアップグレード・プログラム１０６を実行する。また、アップグレード・プログラム１０６は実際には、新しいファームウェア・イメージがコンピュータ・システム１０２およびファームウェア１０４と互換性があるときに、新しいファームウェア・イメージでファームウェア１０４をアップグレードする。
【００５２】
特定の諸実施形態について本明細書で例示し説明してきたが、図示した特定の諸実施形態の代わりに、同じ目的を達成するために計画された任意の配置を使用できることを当業者であれば分かることは留意されることである。本出願は、本発明の諸実施形態のすべての適応例または変形例を包含するものである。たとえば、コンピュータ・システム１０２あるいはそのファームウェア１０４またはその両方の特定の属性に関する特定の潜在的非互換性要因について、これらの属性に関するものとして種々のビット２０２について説明したが、このような特定の属性および特定の潜在的非互換性要因は例示のみのために提示されたものである。当業者であれば分かるように、本発明のその他の諸実施形態は、異なる属性、したがって、異なる潜在的非互換性要因に関するビットを有することができる。したがって、本発明が特許請求の範囲およびそれと同等のもののみによって制限されることは明白に意図されている。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施形態により、新しいファームウェア・イメージでコンピュータ・システムのファームウェアをアップグレードするためのシナリオを示す図である。
【図２】本発明の一実施形態により、ファームウェア・イメージをコンピュータ・システムのファームウェアにロードすべきかどうかを判定するためにコンピュータ・システムの第１のビット列を新しいファームウェア・イメージの第２のビット列と比較する方法を示す図である。
【図３】本発明の一実施形態により、コンピュータ・システムのファームウェアを新しいファームウェア・イメージでアップグレードすることを許可すべきかどうかを判定するための方法の流れ図である。
【図４】本発明の一実施形態による基本的コンピュータ・システムを示す図である。
【符号の説明】
【００５４】
１０２：コンピュータ・システム
１０４：ファームウェア
１０６：ファームウェア・アップグレード・プログラム
１０８：新しいファームウェア・イメージ
１１０：第１のビット列
１１２：第２のビット列
【図１】
2006190278.tif 000003
【図２】
2006190278.tif 000004
【図３】
2006190278.tif 000005
【図４】
2006190278.tif 000006