(57)【要約】【課題】ＢＩＯＳが不良である場合であってもＢＩＯＳを更新できる可能性を向上させる。【解決手段】代替ＢＩＯＳが書き込まれており、ＭＭＩＯを用いたアクセスが可能な共有メモリに接続されており、現用ＢＩＯＳを記憶するＢＩＯＳフラッシュと、リセットされた直後に、現用ＢＩＯＳを実行可能なプロセッサと、現用ＢＩＯＳの更新の可不可を示す設定を保持する保持手段とを備えた情報処理装置であって、ＢＩＯＳは、更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に判定手順を実行する手順と、更新可ならば、現用ＢＩＯＳを、共有メモリから読み出した代替ＢＩＯＳに更新する更新手順の実行に必要な初期化を行う手順と、更新可ならば、更新手順を実行する手順と、更新不可ならば、情報処理装置の動作に必要な初期化を実行する手順と、更新不可ならば、ブートローダーを呼出す手順とを含む。【選択図】      図１
2019139373.tif 000002
【特許請求の範囲】
【請求項１】
メモリマップトＩＯを用いたデータの書き込み及び読み出しが可能な共有メモリ、
前記共有メモリにＢＩＯＳデータである所望の代替ＢＩＯＳデータの書き込みが可能なＢＩＯＳデータ書き込み装置、及び
前記ＢＩＯＳデータである現用ＢＩＯＳデータを不揮発的に記憶するＢＩＯＳフラッシュと、
リセットされた直後に、前記ＢＩＯＳフラッシュによって記憶されている前記ＢＩＯＳデータに含まれるＢＩＯＳコードを実行可能なプロセッサと、
前記ＢＩＯＳフラッシュに記憶された前記現用ＢＩＯＳデータを前記代替ＢＩＯＳデータへ更新することの可不可を示す更新設定を保持する更新設定保持手段と
を含む情報処理装置であって、
前記ＢＩＯＳコードは、前記プロセッサに、
前記更新設定保持手段から取得した前記更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、前記判定手順を実行する更新判定手順と、
前記更新判定手順による判定結果が更新可である場合に、前記ＢＩＯＳフラッシュが記憶している前記現用ＢＩＯＳデータを、前記共有メモリから読み出した前記代替ＢＩＯＳデータに更新する更新手順の実行に必要な初期化を行う更新時初期化手順と、
前記更新判定手順による判定結果が更新可である場合に、前記更新手順を実行するＢＩＯＳ更新手順と、
前記更新判定手順による判定結果が更新不可である場合に、前記情報処理装置の動作に必要な初期化を実行する非更新時初期化手順と、
前記更新判定手順による判定結果が更新不可である場合に、ブートローダーを呼出すブートローダー呼出手順と
を実行させる情報処理装置
を備えた情報処理システム。
【請求項２】
前記ＢＩＯＳデータ書き込み装置は、前記情報処理装置が起動されているか否かによらず動作可能である
請求項１に記載の情報処理システム。
【請求項３】
前記更新時初期化手順は、前記更新手順に必要な初期化を行う際に、前記更新手順の実行のために必要最小限な初期化を行う
請求項１又は２に記載の情報処理システム。
【請求項４】
前記情報処理装置は、ランダムアクセスメモリを更に含み、
前記更新手順の実行のために必要最小限な初期化は、前記ランダムアクセスメモリの初期化を含まない
請求項３に記載の情報処理システム。
【請求項５】
前記代替ＢＩＯＳデータの長さは、前記共有メモリの記憶容量より大きく、
前記ＢＩＯＳコードは、前記ＢＩＯＳ更新手順において、前記共有メモリから前記代替ＢＩＯＳデータの部分を読み出し、読み出した該部分を前記ＢＩＯＳフラッシュへ直接書き込むことを繰り返す
請求項１乃至４の何れか１項に記載の情報処理システム。
【請求項６】
前記ＢＩＯＳ更新手順は、前記更新手順が実行された後に、前記更新設定保持手段が保持する前記更新設定を更新不可に変更する
請求項１乃至５の何れか１項に記載の情報処理システム。
【請求項７】
前記非更新時初期化手順は、前記情報処理装置の動作に必要な初期化の実行が失敗した場合に、前記更新設定保持手段が保持する前記更新設定を更新可に変更する
請求項１乃至６の何れか１項に記載の情報処理システム。
【請求項８】
ＢＩＯＳデータである所望の代替ＢＩＯＳデータが書き込まれており、メモリマップトＩＯを用いたデータの書き込み及び読み出しが可能な共有メモリに接続されており、
前記ＢＩＯＳデータである現用ＢＩＯＳデータを不揮発的に記憶するＢＩＯＳフラッシュと、
リセットされた直後に、前記ＢＩＯＳフラッシュによって記憶されている前記ＢＩＯＳデータに含まれるＢＩＯＳコードを実行可能なプロセッサと、
前記ＢＩＯＳフラッシュに記憶された前記現用ＢＩＯＳデータを前記代替ＢＩＯＳデータへ更新することの可不可を示す更新設定を保持する更新設定保持手段と
を備えた情報処理装置であって、
前記ＢＩＯＳコードは、
前記更新設定保持手段から取得した前記更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、前記判定手順を実行する更新判定手順と、
前記更新判定手順による判定結果が更新可である場合に、前記ＢＩＯＳフラッシュが記憶している前記現用ＢＩＯＳデータを、前記共有メモリから読み出した前記代替ＢＩＯＳデータに更新する更新手順の実行に必要な初期化を行う更新時初期化手順と、
前記更新判定手順による判定結果が更新可である場合に、前記更新手順を実行するＢＩＯＳ更新手順と、
前記更新判定手順による判定結果が更新不可である場合に、前記情報処理装置の動作に必要な初期化を実行する非更新時初期化手順と、
前記更新判定手順による判定結果が更新不可である場合に、ブートローダーを呼出すブートローダー呼出手順と
を含む情報処理装置。
【請求項９】
ＢＩＯＳデータである所望の代替ＢＩＯＳデータが書き込まれており、
メモリマップトＩＯを用いたデータの書き込み及び読み出しが可能な
共有メモリに接続されており、
前記ＢＩＯＳデータである現用ＢＩＯＳデータを不揮発的に記憶するＢＩＯＳフラッシュと、
リセットされた直後に、前記ＢＩＯＳフラッシュによって記憶されている前記ＢＩＯＳデータに含まれるＢＩＯＳコードを実行可能なプロセッサと、
前記ＢＩＯＳフラッシュに記憶された前記現用ＢＩＯＳデータを前記代替ＢＩＯＳデータへ更新することの可不可を示す更新設定を保持する更新設定保持手段と
を備えた情報処理装置のＢＩＯＳ更新方法であって、
前記ＢＩＯＳコードは、
前記更新設定保持手段から取得した前記更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、前記判定手順を実行する更新判定手順と、
前記更新判定手順による判定結果が更新可である場合に、前記ＢＩＯＳフラッシュが記憶している前記現用ＢＩＯＳデータを、前記共有メモリから読み出した前記代替ＢＩＯＳデータに更新する更新手順の実行に必要な初期化を行う更新時初期化手順と、
前記更新判定手順による判定結果が更新可である場合に、前記更新手順を実行するＢＩＯＳ更新手順と、
前記更新判定手順による判定結果が更新不可である場合に、前記情報処理装置の動作に必要な初期化を実行する非更新時初期化手順と、
前記更新判定手順による判定結果が更新不可である場合に、ブートローダーを呼出すブートローダー呼出手順と
を実行する、情報処理装置のＢＩＯＳ更新方法。
【請求項１０】
ＢＩＯＳデータである所望の代替ＢＩＯＳデータが書き込まれており、メモリマップトＩＯを用いたデータの書き込み及び読み出しが可能な共有メモリに接続されており、
前記ＢＩＯＳデータである現用ＢＩＯＳデータを不揮発的に記憶するＢＩＯＳフラッシュと、
リセットされた直後に、前記ＢＩＯＳフラッシュによって記憶されている前記ＢＩＯＳデータに含まれるＢＩＯＳコードを実行可能なプロセッサと、
前記ＢＩＯＳフラッシュに記憶された前記現用ＢＩＯＳデータを前記代替ＢＩＯＳデータへ更新することの可不可を示す更新設定を保持する更新設定保持手段と
を備えた情報処理装置が備えるコンピュータに、
前記更新設定保持手段から取得した前記更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、前記判定手順を実行する更新判定手順と、
前記更新判定手順による判定結果が更新可である場合に、前記ＢＩＯＳフラッシュが記憶している前記現用ＢＩＯＳデータを、前記共有メモリから読み出した前記代替ＢＩＯＳデータに更新する更新手順の実行に必要な初期化を行う更新時初期化手順と、
前記更新判定手順による判定結果が更新可である場合に、前記更新手順を実行するＢＩＯＳ更新手順と、
前記更新判定手順による判定結果が更新不可である場合に、前記情報処理装置の動作に必要な初期化を実行する非更新時初期化手順と、
前記更新判定手順による判定結果が更新不可である場合に、ブートローダーを呼出すブートローダー呼出手順と
を実行させる、情報処理装置のＢＩＯＳ更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＢＩＯＳ（Basic Input/Output System）のコード及び設定データ（ＢＩＯＳデータ）における不良に対処する技術に関する。
【背景技術】
【０００２】
ＢＩＯＳデータは、通常、システム内の不揮発性メモリ（ＢＩＯＳフラッシュロム（以下、単に「ＢＩＯＳフラッシュ」又は「ＢＩＯＳロム」と称す）等）に記憶されている。ＢＩＯＳフラッシュにおけるビットエラー等に起因してＢＩＯＳデータが壊れた場合、ＢＩＯＳが正常に動作しないことがある。ＢＩＯＳが正常に動作しない場合に備えて、システムがＢＩＯＳデータのバックアップを保持することがある。
【０００３】
ＢＩＯＳデータの不良に対処する技術の一例が、特許文献１に開示されている。特許文献１のフラッシュメモリは、ＢＩＯＳ（データ）を記憶するフラッシュメモリ領域と、バックアップ用のＢＩＯＳを記憶する固定メモリ領域と、切換器とを含む。フラッシュメモリ領域に記憶されているＢＩＯＳは更新可能であるが、固定メモリ領域に記憶されているバックアップ用のＢＩＯＳは更新不能である。切換器は、フラッシュメモリ領域に記憶されたＢＩＯＳによるシステムの起動に失敗したとき、固定メモリ領域に記憶されているバックアップ用のＢＩＯＳを選択する。上記構成の結果、特許文献１のフラッシュメモリは、フラッシュメモリ領域に記憶されたＢＩＯＳが壊れていても、バックアップ用のＢＩＯＳを用いて、システムを正常に起動させる。
【０００４】
ＢＩＯＳデータの不良に対処する技術の別の一例が、特許文献２に開示されている。特許文献２のフォールトトレラントサーバは、２台のサーバを含む。各サーバは、ＣＰＵ（Central Processing Unit）を含むシステムと、ＢＩＯＳデータを格納したＢＩＯＳロムと、ＢＭＣ（Base Management Controller）と、ＢＭＣが使用するメモリと、ＢＩＯＳロムとシステム又はＢＭＣとの接続を切り替えるアクセス切替回路とを含む。第１のサーバのＢＭＣは、第１のサーバのシステムの起動前に、ＢＩＯＳロムが格納しているＢＩＯＳデータをメモリに読み出す。そして、第１のサーバのＢＭＣは、第１のサーバのＢＩＯＳデータに不具合があった場合に、第２のサーバのＢＭＣにＢＩＯＳ復旧データを要請し、第２のサーバのＢＭＣから送られたＢＩＯＳ復旧データを受け取り、第１のサーバのＢＩＯＳロムに書き戻す。上記構成の結果、特許文献２のサーバシステムは、一方のサーバに記憶されているＢＩＯＳが壊れていても、他方のサーバに記憶されているＢＩＯＳを用いて、システムを正常に起動させる。
【０００５】
ＢＩＯＳがバグ（不具合）を含んでいる場合や、新しいＢＩＯＳの機能が必要になった場合には、ＢＩＯＳロムが記憶しているＢＩＯＳデータを更新する必要がある。システム外のツール（ＲＯＭライタ等）を用いてＢＩＯＳデータを更新する場合には、システム外のツールと更新作業の手間とが必要である。そこで、ＢＩＯＳ又はシステムによって、ＢＩＯＳデータを更新できることが望ましい。
【０００６】
更新用のＢＩＯＳデータは、通常、メディア（ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）等）やネットワークを介して入手される。入手したＢＩＯＳデータが壊れていた結果、ＢＩＯＳロムに書き込まれたＢＩＯＳデータが壊れてしまうことがある。あるいは、入手したＢＩＯＳデータをＢＩＯＳロムに書き込んだ際に、ＢＩＯＳロムに書き込まれたＢＩＯＳデータが壊れてしまうことがある。あるいは、ＢＩＯＳがバグを含んでいることもある。ところが、ＢＩＯＳロムに書き込まれたＢＩＯＳデータが不良である（ＢＩＯＳデータが壊れている、又はＢＩＯＳがバグを含む等）と、ＢＩＯＳやシステムがＢＩＯＳの更新に必要な機能（メディアやネットワークを介したＢＩＯＳデータの入手、入手したＢＩＯＳデータによるＢＩＯＳロムの更新等）を実行できない場合がある。このような場合には、システム外のツールを用いてＢＩＯＳデータを更新する必要がある。
【０００７】
特許文献１の技術では、固定メモリ領域に記憶されたＢＩＯＳデータの不良によって、ＢＩＯＳがＢＩＯＳデータの更新に必要な機能を実行できない場合には、ＢＩＯＳ又はシステムはＢＩＯＳデータを更新することができない。又、特許文献２の技術では、２台のサーバのＢＩＯＳロムに格納されている両方のＢＩＯＳデータの不良によって、ＢＩＯＳがＢＩＯＳデータの更新に必要な機能を実行できない場合には、ＢＩＯＳ又はシステムはＢＩＯＳデータを更新することができない。
【０００８】
ＢＩＯＳロムに記憶されているＢＩＯＳデータが不良であってもＢＩＯＳを更新できる技術の一例が、特許文献３に開示されている。特許文献３の情報処理装置では、サービスプロセッサは、サーバモジュールのリカバリ用のファームウェア（ＢＩＯＳ）のＦＤ（Ｆｌｏｐｐｙ（登録商標）Ｄｉｓｋ）イメージを保持する。当該ＦＤイメージは、サービスプロセッサの機能に影響を与えないので、サービスプロセッサにおいて自由に更新可能である。サーバモジュールは、ＵＳＢ（Universal Serial Bus）ストレージとして認識されるメモリを有する、データの受信可能な装置（ＵＳＢストレージ）を含む。サービスプロセッサは、サーバモジュールのＢＩＯＳデータの更新に失敗した場合に、サーバモジュールのＵＳＢストレージに当該ＦＤイメージを転送する。そして、サーバモジュールは、ＵＳＢストレージが保持している当該ＦＤイメージを用いて、システムを起動（仮想的にＦＤブート）する。上記構成の結果、特許文献３の情報処理装置は、サーバモジュールのＢＩＯＳデータの更新に失敗した場合であっても、正しいＦＤイメージを用意すれば、サーバモジュールのＢＩＯＳデータを更新できる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】実用新案登録第３０６６０６３号公報
【特許文献２】特開２０１１−２５３４０８号公報
【特許文献３】特開２００８−１７６７０８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献３の情報処理装置は、ＵＳＢストレージからＢＩＯＳイメージを取得するので、ＵＳＢストレージの初期化後でないとＢＩＯＳを更新できない。電源投入によってＣＰＵがリセットされると、ＢＩＯＳは、通常、ＰＯＳＴ（Power on Self Test）を実行した後に、ブートプログラムローダーを呼び出すことによってシステムを起動する。ＰＯＳＴでは、ＣＰＵの初期化、チップセットの初期化、メインメモリの初期化、ビデオ機能の初期化、キーボード若しくはマウスの初期化、ＨＤＤ（Hard Disk Drive）若しくはＦＤＤ（Floppy Disk Drive）の初期化、ＨＤＤの診断、メインメモリの診断、又は拡張カードの初期化等を含む一連の処理が所定の順序で行われる。つまり、特許文献３の情報処理装置では、サーバモジュールのＢＩＯＳデータを更新するためには、実行される順序が少なくともＵＳＢストレージの初期化に到るまでの処理に関するＢＩＯＳデータが正常である必要があった。つまり、特許文献３の情報処理装置には、実行される順序が少なくともＵＳＢストレージの初期化に到るまでの処理に関するＢＩＯＳデータが正常でなければ、サーバモジュールのＢＩＯＳデータを更新できないという問題があった。
【００１１】
本発明は、上記の課題に鑑みてなされたもので、ＢＩＯＳデータが不良である場合であってもＢＩＯＳデータを更新できる可能性を向上させることを主たる目的とする。
【課題を解決するための手段】
【００１２】
本発明の一態様において、情報処理システムは、メモリマップトＩＯを用いたデータの書き込み及び読み出しが可能な共有メモリ、共有メモリにＢＩＯＳデータである所望の代替ＢＩＯＳデータの書き込みが可能なＢＩＯＳデータ書き込み装置、及びＢＩＯＳデータである現用ＢＩＯＳデータを不揮発的に記憶するＢＩＯＳフラッシュと、リセットされた直後に、ＢＩＯＳフラッシュによって記憶されているＢＩＯＳデータに含まれるＢＩＯＳコードを実行可能なプロセッサと、ＢＩＯＳフラッシュに記憶された現用ＢＩＯＳデータを代替ＢＩＯＳデータへ更新することの可不可を示す更新設定を保持する更新設定保持手段とを含む情報処理装置であって、ＢＩＯＳコードは、プロセッサに、更新設定保持手段から取得した更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、判定手順を実行する更新判定手順と、更新判定手順による判定結果が更新可である場合に、ＢＩＯＳフラッシュが記憶している現用ＢＩＯＳデータを、共有メモリから読み出した代替ＢＩＯＳデータに更新する更新手順の実行に必要な初期化を行う更新時初期化手順と、更新判定手順による判定結果が更新可である場合に、更新手順を実行するＢＩＯＳ更新手順と、更新判定手順による判定結果が更新不可である場合に、情報処理装置の動作に必要な初期化を実行する非更新時初期化手順と、更新判定手順による判定結果が更新不可である場合に、ブートローダーを呼出すブートローダー呼出手順とを実行させる情報処理装置を備える。
【００１３】
本発明の一態様において、情報処理装置は、ＢＩＯＳデータである所望の代替ＢＩＯＳデータが書き込まれており、メモリマップトＩＯを用いたデータの書き込み及び読み出しが可能な共有メモリに接続されており、ＢＩＯＳデータである現用ＢＩＯＳデータを不揮発的に記憶するＢＩＯＳフラッシュと、リセットされた直後に、ＢＩＯＳフラッシュによって記憶されているＢＩＯＳデータに含まれるＢＩＯＳコードを実行可能なプロセッサと、ＢＩＯＳフラッシュに記憶された現用ＢＩＯＳデータを代替ＢＩＯＳデータへ更新することの可不可を示す更新設定を保持する更新設定保持手段とを備えた情報処理装置であって、ＢＩＯＳコードは、更新設定保持手段から取得した更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、判定手順を実行する更新判定手順と、更新判定手順による判定結果が更新可である場合に、ＢＩＯＳフラッシュが記憶している現用ＢＩＯＳデータを、共有メモリから読み出した代替ＢＩＯＳデータに更新する更新手順の実行に必要な初期化を行う更新時初期化手順と、更新判定手順による判定結果が更新可である場合に、更新手順を実行するＢＩＯＳ更新手順と、更新判定手順による判定結果が更新不可である場合に、情報処理装置の動作に必要な初期化を実行する非更新時初期化手順と、更新判定手順による判定結果が更新不可である場合に、ブートローダーを呼出すブートローダー呼出手順とを含む。
【００１４】
本発明の一態様において、情報処理装置のＢＩＯＳ更新方法は、ＢＩＯＳデータである所望の代替ＢＩＯＳデータが書き込まれており、メモリマップトＩＯを用いたデータの書き込み及び読み出しが可能な共有メモリに接続されており、ＢＩＯＳデータである現用ＢＩＯＳデータを不揮発的に記憶するＢＩＯＳフラッシュと、リセットされた直後に、ＢＩＯＳフラッシュによって記憶されているＢＩＯＳデータに含まれるＢＩＯＳコードを実行可能なプロセッサと、ＢＩＯＳフラッシュに記憶された現用ＢＩＯＳデータを代替ＢＩＯＳデータへ更新することの可不可を示す更新設定を保持する更新設定保持手段とを備えた情報処理装置のＢＩＯＳ更新方法であって、ＢＩＯＳコードは、更新設定保持手段から取得した更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、判定手順を実行する更新判定手順と、更新判定手順による判定結果が更新可である場合に、ＢＩＯＳフラッシュが記憶している現用ＢＩＯＳデータを、共有メモリから読み出した代替ＢＩＯＳデータに更新する更新手順の実行に必要な初期化を行う更新時初期化手順と、更新判定手順による判定結果が更新可である場合に、更新手順を実行するＢＩＯＳ更新手順と、更新判定手順による判定結果が更新不可である場合に、情報処理装置の動作に必要な初期化を実行する非更新時初期化手順と、更新判定手順による判定結果が更新不可である場合に、ブートローダーを呼出すブートローダー呼出手順とを実行する。
【００１５】
本発明の一態様において、情報処理装置のＢＩＯＳ更新プログラムは、ＢＩＯＳデータである所望の代替ＢＩＯＳデータが書き込まれており、メモリマップトＩＯを用いたデータの書き込み及び読み出しが可能な共有メモリに接続されており、ＢＩＯＳデータである現用ＢＩＯＳデータを不揮発的に記憶するＢＩＯＳフラッシュと、リセットされた直後に、ＢＩＯＳフラッシュによって記憶されているＢＩＯＳデータに含まれるＢＩＯＳコードを実行可能なプロセッサと、ＢＩＯＳフラッシュに記憶された現用ＢＩＯＳデータを代替ＢＩＯＳデータへ更新することの可不可を示す更新設定を保持する更新設定保持手段とを備えた情報処理装置が備えるコンピュータに、ＢＩＯＳコードは、更新設定保持手段から取得した更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、判定手順を実行する更新判定手順と、更新判定手順による判定結果が更新可である場合に、ＢＩＯＳフラッシュが記憶している現用ＢＩＯＳデータを、共有メモリから読み出した代替ＢＩＯＳデータに更新する更新手順の実行に必要な初期化を行う更新時初期化手順と、更新判定手順による判定結果が更新可である場合に、更新手順を実行するＢＩＯＳ更新手順と、更新判定手順による判定結果が更新不可である場合に、情報処理装置の動作に必要な初期化を実行する非更新時初期化手順と、更新判定手順による判定結果が更新不可である場合に、ブートローダーを呼出すブートローダー呼出手順とを実行させる。
【発明の効果】
【００１６】
本発明によれば、ＢＩＯＳデータが不良である場合であってもＢＩＯＳデータを更新できる可能性を向上できるという効果がある。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態における情報処理装置の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態における情報処理装置の動作を示すフローチャートである。である。
【図３】本発明の第２の実施形態における情報処理装置の動作を示すフローチャートである。
【図４】本発明の第３の実施形態における情報処理装置の構成の一例を示すブロック図である。
【図５】本発明の第３の実施形態における情報処理装置の動作を示すフローチャート（その１）である。
【図６】本発明の第３の実施形態における情報処理装置の動作を示すフローチャート（その２）である。
【図７】本発明の第３の実施形態における情報処理装置の動作を示すフローチャート（その３）である。
【図８】本発明の各実施形態における情報処理装置を実現可能なハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について、図面を参照して詳細に説明する。尚、全ての図面において、同等の構成要素には同じ符号を付し、適宜説明を省略する。
（第１の実施形態）
本発明の各実施形態の基本である、本発明の第１の実施形態について説明する。
【００１９】
本実施形態における構成について説明する。
【００２０】
図１は、本発明の第１の実施形態における情報処理装置の構成の一例を示すブロック図である。
【００２１】
本実施形態における情報処理システム５００は、共有メモリ４１０と、ＢＩＯＳデータ書き込み装置４００と、情報処理装置１００とを含む。
【００２２】
共有メモリ４１０は、メモリマップトＩＯ（ＭＭＩＯ：Memory Mapped I/O）を用いたデータの書き込み及び読み出しが可能なメモリである。
【００２３】
ＢＩＯＳデータ書き込み装置４００は、共有メモリ４１０にＢＩＯＳデータである所望の代替ＢＩＯＳデータ３００の書き込みが可能な装置である。ＢＩＯＳデータ書き込み装置４００は、情報処理装置１００が起動されているか否かによらず動作可能である。
【００２４】
情報処理装置１００は、ＢＩＯＳフラッシュ１２０と、プロセッサ１１０と、更新設定保持手段１３０とを含む。
【００２５】
ＢＩＯＳフラッシュ１２０は、ＢＩＯＳデータである現用ＢＩＯＳデータ２００を不揮発的に記憶する。
【００２６】
プロセッサ１１０は、リセットされた直後に、ＢＩＯＳフラッシュ１２０によって記憶されているＢＩＯＳデータに含まれるＢＩＯＳコード２１０を実行可能なプロセッサである。
【００２７】
更新設定保持手段１３０は、ＢＩＯＳフラッシュ１２０に記憶された現用ＢＩＯＳデータ２００を代替ＢＩＯＳデータ３００へ更新することの可不可を示す更新設定を保持する。
【００２８】
ＢＩＯＳコード２１０は、プロセッサ１１０に実行させる、更新判定手順２２０と、更新時初期化手順２３０と、ＢＩＯＳ更新手順２４０と、非更新時初期化手順２５０と、ブートローダー呼出手順２６０とを含む。
【００２９】
更新判定手順２２０は、更新設定保持手段１３０から取得した更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、当該判定手順を実行する。通常、上述した判定手順の実行に必要な初期化は、プロセッサ１１０の初期化と、更新設定保持手段１３０が保持する更新設定を取得するために必要なＰＣＨ（Platform Controller Hub）（不図示）の初期化とを含む。
【００３０】
更新時初期化手順２３０は、更新判定手順２２０による判定結果が更新可である場合に、ＢＩＯＳ更新手順２４０の実行に必要な初期化を行う。通常、上述したＢＩＯＳ更新手順２４０の実行に必要な初期化は、共有メモリから代替ＢＩＯＳデータ３００を読み出すために必要な、共有メモリの初期化を含む。
【００３１】
ＢＩＯＳ更新手順２４０は、更新判定手順２２０による判定結果が更新可である場合に、ＢＩＯＳフラッシュ１２０が記憶している現用ＢＩＯＳデータ２００を、共有メモリ４１０から読み出した代替ＢＩＯＳデータ３００に更新する。
【００３２】
非更新時初期化手順２５０は、更新判定手順２２０による判定結果が更新不可である場合に、情報処理装置１００の動作に必要な初期化を実行する。通常、上述した情報処理装置１００の動作に必要な初期化は、メインメモリ（不図示）の初期化、ビデオカード、キーボード、マウス、ＨＤＤ、又は拡張カード等の周辺機器（不図示）の初期化を含む。これらの初期化は、メインメモリやＨＤＤの診断等を含んでもよい。
【００３３】
ブートローダー呼出手順２６０は、更新判定手順２２０による判定結果が更新不可である場合に、ブートローダーを呼出す。
【００３４】
本実施形態における動作について説明する。
【００３５】
図２は、本発明の第１の実施形態における情報処理装置の動作を示すフローチャートである。尚、図２に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【００３６】
まず、情報処理装置１００は、更新設定保持手段１３０から取得した更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行う（ステップＳ１１０）。
【００３７】
次に、情報処理装置１００は、更新設定保持手段１３０から更新設定を取得する（ステップＳ１２０）。
【００３８】
続いて、情報処理装置１００は、取得した更新設定が更新可であるか否かを判定する（ステップＳ１３０）。
【００３９】
判定結果が更新可である場合に（ステップＳ１３０におけるＹｅｓ）、情報処理装置１００は、ＢＩＯＳ更新の実行に必要な初期化を行う（ステップＳ１４０）。
【００４０】
続いて、情報処理装置１００は、共有メモリ４１０から代替ＢＩＯＳデータ３００を読み出す（ステップＳ１５０）。
【００４１】
続いて、情報処理装置１００は、ＢＩＯＳフラッシュ１２０が記憶している現用ＢＩＯＳデータ２００を、共有メモリ４１０から読み出した代替ＢＩＯＳデータ３００に更新し（ステップＳ１６０）、処理を終了する。
【００４２】
一方、判定結果が更新不可である場合に（ステップＳ１３０におけるＮｏ）、情報処理装置１００は、情報処理装置１００の動作に必要な初期化を実行する（ステップＳ２１０）。
【００４３】
続いて、情報処理装置１００は、ブートローダーを呼出し（ステップＳ２４０）、処理を終了する。
【００４４】
以上説明したように、本実施形態における情報処理システム５００では、プロセッサ１１０によって実行される現用ＢＩＯＳデータ２００に含まれるＢＩＯＳコード２１０は、現用ＢＩＯＳデータ２００を更新する前に必要な手順（更新判定手順２２０及び更新時初期化手順２３０）を実行した後、他の処理を挟まず直ちに現用ＢＩＯＳデータ２００を更新する手順（ＢＩＯＳ更新手順２４０）を実行する。ここで、ＢＩＯＳコード２１０において、現用ＢＩＯＳデータ２００の更新時に実行されないコードが不良であっても、現用ＢＩＯＳデータ２００の更新時に実行されるコード（更新判定手順２２０、更新時初期化手順２３０、及びＢＩＯＳ更新手順２４０）が不良でなければ、現用ＢＩＯＳデータ２００を正常に更新できる。つまり、ＢＩＯＳコード２１０は、不良を含む現用ＢＩＯＳデータ２００の更新完了前に、更新判定手順２２０と更新時初期化手順２３０とＢＩＯＳ更新手順２４０と以外のコードを実行する場合に比べて、現用ＢＩＯＳデータ２００を正常に更新できる可能性を高める。従って、本実施形態における情報処理装置１００には、ＢＩＯＳデータが不良である場合であってもＢＩＯＳデータを更新できる可能性を向上できるという効果がある。
【００４５】
尚、更新時初期化手順２３０は、ＢＩＯＳ更新手順２４０に必要な初期化を行う際に（ステップＳ１４０）、ＢＩＯＳ更新手順２４０の実行のために必要最小限な初期化を行うことが望ましい。例えば、情報処理装置１００がランダムアクセスメモリを更に含む場合に、ＢＩＯＳ更新手順２４０の実行のために必要最小限な初期化は、ランダムアクセスメモリの初期化を含まないことが望ましい。この場合には、現用ＢＩＯＳデータ２００を正常に更新できる可能性が極大化されるという効果がある。
【００４６】
又、代替ＢＩＯＳデータ３００の長さが共有メモリ４１０の記憶容量より大きい場合には、ＢＩＯＳコード２１０は、ＢＩＯＳ更新手順２４０において、共有メモリ４１０から代替ＢＩＯＳデータ３００の部分を読み出し、読み出した当該部分をＢＩＯＳフラッシュ１２０へ直接書き込むことを繰り返してもよい。この場合には、共有メモリ４１０のコストが削減されるという効果がある。
【００４７】
又、情報処理装置１００は、共有メモリ４１０を含んでもよい。この場合には、情報処理システム５００の構成が単純化されるという効果がある。
【００４８】
又、ＢＩＯＳデータ書き込み装置４００は、共有メモリ４１０を含んでもよい。この場合には、情報処理システム５００の構成が単純化されるという効果がある。
（第２の実施形態）
次に、本発明の第１の実施形態を基本とする、本発明の第２の実施形態について説明する。本実施形態におけるＢＩＯＳコードは、本発明の第１の実施形態におけるＢＩＯＳコードと動作が異なる。
【００４９】
図１を再び参照して、本実施形態における構成について説明する。
【００５０】
本実施形態における構成は、本発明の第１の実施形態における構成と同じである。但し、本実施形態における情報処理システム５０１のＢＩＯＳコード２１１は、本発明の第１の実施形態における情報処理システム５００のＢＩＯＳコード２１０と動作が異なる。
【００５１】
ＢＩＯＳコード２１１は、ＢＩＯＳ更新手順２４０の代わりにＢＩＯＳ更新手順２４１を含む。
【００５２】
又、ＢＩＯＳコード２１１は、非更新時初期化手順２５０の代わりに非更新時初期化手順２５１を含む。
【００５３】
本実施形態における動作について説明する。
【００５４】
図３は、本発明の第２の実施形態における情報処理装置の動作を示すフローチャートである。尚、図３に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【００５５】
ＢＩＯＳ更新手順２４１は、ＢＩＯＳ更新手順２４０を実行した（ステップＳ１５０、Ｓ１６０）後に、更新設定保持手段１３０が保持する更新設定を更新不可に変更する（ステップＳ１７１）。そして、ＢＩＯＳ更新手順２４１は、更新設定が変更された（ステップＳ１７１又はＳ２３１（後述））後に、プロセッサ１１０をリセットする（ステップＳ１８１）。
【００５６】
又、非更新時初期化手順２５１は、非更新時初期化手順２５０を実行する（ステップＳ２１０）。そして、非更新時初期化手順２５１は、非更新時初期化手順２５０（ステップＳ２１０）が失敗した場合に（ステップＳ２２０におけるＹｅｓ）、更新設定保持手段１３０が保持する更新設定を更新可に変更し（ステップＳ２３１）、ステップＳ１８１へ処理を進める。一方、非更新時初期化手順２５１は、非更新時初期化手順２５０（ステップＳ２１０）が失敗しなかった場合に（ステップＳ２２０におけるＮｏ）、ステップＳ２４０へ処理を進める。
【００５７】
本実施形態における他の動作は、本発明の第１の実施形態における動作と同じである。
【００５８】
以上説明したように、本実施形態における情報処理システム５０１のＢＩＯＳコード２１１が、本発明の第１の実施形態における情報処理システム５００のＢＩＯＳコード２１０と動作が異なる点を除いて、本実施形態における情報処理システム５０１は本発明の第１の実施形態における情報処理システム５００と同じである。そして、ＢＩＯＳコード２１１は、ＢＩＯＳ更新手順２４０の代わりにＢＩＯＳ更新手順２４１を含むが、ＢＩＯＳ更新手順２４１はＢＩＯＳ更新手順２４０を含む。又、ＢＩＯＳコード２１１は、非更新時初期化手順２５０の代わりに非更新時初期化手順２５１を含むが、非更新時初期化手順２５１は非更新時初期化手順２５０を含む。従って、本実施形態における情報処理システム５０１の効果は、本発明の第１の実施形態における情報処理システム５００の効果を含む。
【００５９】
又、本実施形態における情報処理システム５０１では、現用ＢＩＯＳデータ２００の更新後に、更新設定が更新不可に変更される（ステップＳ１７１）。従って、本実施形態における情報処理システム５０１には、更新設定を手作業で変更する必要がないという効果がある。
【００６０】
又、本実施形態における情報処理システム５０１では、現用ＢＩＯＳデータ２００が更新され、更新設定が更新不可に変更された後に、プロセッサがリセットされる（ステップＳ１８１）。従って、本実施形態における情報処理システム５０１には、情報処理装置１００を手作業で再起動する必要がないという効果がある。
【００６１】
又、本実施形態における情報処理システム５０１では、通常起動における初期化（ステップＳ２１０）が失敗した際に、更新設定が更新可に変更された後に（ステップＳ２３１）、プロセッサがリセットされる（ステップＳ１８１）。従って、本実施形態における情報処理システム５０１には、ＢＩＯＳにおける初期化の失敗時に、更新設定を手作業で変更した後に情報処理装置１００を手作業で再起動する必要がないという効果がある。
（第３の実施形態）
次に、本発明の第２の実施形態を基本とする、本発明の第３の実施形態について説明する。本実施形態では、ＢＩＯＳデータ書き込み装置は、ＩＰＭＩ（Intelligent Platform Management Interface）に準拠したＢＭＣ（Base Management Controller）である。又、本実施形態では情報処理装置（サーバ）の構成及び動作についてより詳細に説明する。
【００６２】
本実施形態における構成について説明する。
【００６３】
図４は、本発明の第３の実施形態におけるサーバシステムの構成の一例を示すブロック図である。
【００６４】
本実施形態におけるサーバシステム８０５は、サーバ５０５と、管理端末６０５とを含む。サーバ５０５と管理端末６０５とは、ネットワーク７０５を介して接続されている。
【００６５】
管理端末６０５は、サーバ５０５の保守又は管理等を行うための通信端末である。管理端末６０５は、ＢＭＣ４０５を操作する。管理端末６０５は、ネットワークインターフェース６１５を含む。
【００６６】
ネットワークインターフェース６１５は、ＢＭＣ４０５と通信を行う。
【００６７】
サーバ５０５は、情報処理装置１０５と、ＢＭＣ４０５とを含む。サーバ５０５は２台以上の情報処理装置１０５又は２台以上のＢＭＣ４０５を含んでもよい。複数台の情報処理装置１０５は、１台のＢＭＣ４０５に接続されてもよい。
【００６８】
情報処理装置１０５は、ＣＰＵ（Central Processing Unit）１１５と、ＰＣＨ１４５と、メインメモリ１５５と、ＢＩＯＳフラッシュ１２５と、リカバリーアップデートジャンパ１３５とを含む。情報処理装置１０５は、例えば、ＳＡＴＡ（Serial Advanced Technology Attachment）インターフェースを有するＤＶＤドライブ１８５、又はＵＳＢインターフェースを有するＤＶＤドライブ１９５等を更に含んでもよい。
【００６９】
ＣＰＵ１１５は、情報処理装置１０５の全体を制御する。ＣＰＵ１１５は、ＰＣＨ１４５と、メインメモリ１５５とに接続されている。
【００７０】
ＰＣＨ１４５は、データパスを管理し、ＣＰＵ１１５の機能を補助する。情報処理装置１０５がＳＡＴＡインターフェース又はＵＳＢインターフェースを有する装置を含む場合、ＰＣＨ１４５は、ＳＡＴＡインターフェースに対応するための手段（ＳＡＴＡインターフェース１６５）、又はＵＳＢインターフェースに対応するための手段（ＵＳＢインターフェース１７５）を含む。
【００７１】
メインメモリ１５５は、例えば、ＲＡＭ（Random Access Memory）である。
【００７２】
ＢＩＯＳフラッシュ１２５は、現用ＢＩＯＳデータ２０５を不揮発的に記憶しているフラッシュＲＯＭ（Read Only Memory）である。現用ＢＩＯＳデータ２０５は、情報処理装置１０５の起動時にＣＰＵ１１５によって使用されるＢＩＯＳデータである。ＢＩＯＳデータは、ＣＰＵ１１５によって実行可能なＢＩＯＳコードと、ＢＩＯＳコードの実行に必要な設定データとを含む。
【００７３】
リカバリーアップデートジャンパ１３５は、リカバリーアップデートを実行するか否かに関する設定を保持しているスイッチである。リカバリーアップデートとは、ＢＩＯＳフラッシュ１２５によって記憶されているＢＩＯＳデータを、所望のＢＩＯＳデータに書き換えることとする。リカバリーアップデートジャンパ１３５は、ＩＰＭＩのＯＥＭ（Original Equipment Manufacturer）コマンドによって制御可能であることとする。
【００７４】
ＣＰＵ１１５は、ＢＩＯＳフラッシュ１２５によって記憶されている現用ＢＩＯＳデータ２０５に含まれるＢＩＯＳコード２１５を実行する。ＢＩＯＳコード２１５は、必要に応じて、ＢＭＣ４０５に含まれる共有メモリ４１５（後述）、ＣＰＵ１１５、ＰＣＨ１４５、メインメモリ１５５、又はＳＡＴＡインターフェース１６５若しくはＵＳＢインターフェース１７５等を介して接続されているハードウェア等の初期化を行う。初期化は、ＰＯＳＴ（Power on Self Test）であってもよい。ＢＩＯＳコード２１５は、共有メモリ４１５にアクセス可能であることとする。
【００７５】
情報処理装置１０５にＤＣ（Direct Current）が給電されると、ＣＰＵ１１５によってＢＩＯＳコード２１５が起動される。以下の説明では、ＢＩＯＳコード２１５は、ＢＭＣ４０５に含まれる共有メモリ４１５、ＣＰＵ１１５、ＰＣＨ１４５、メインメモリ１５５、ＳＡＴＡインターフェース１６５、ＵＳＢインターフェース１７５を、この順で初期化することとする。
【００７６】
ＢＭＣ４０５は、情報処理装置１０５の監視、制御、又は管理等を行う。ＢＭＣ４０５は、情報処理装置１０５が起動されているか否かによらず動作可能である。ＢＭＣ４０５は、ＰＣＨ１４５を介して情報処理装置１０５に接続されている。ＢＭＣ４０５は、リカバリーアップデートジャンパ１３５を操作可能である。ＢＭＣ４０５は、ＢＭＣファームウェア４２５と、ネットワークインターフェース４３５と、共有メモリ４１５と、ＳＰＩフラッシュ４４５とを含む。ＢＭＣ４０５は、ネットワーク７０５を介して管理端末６０５によって操作可能である。ＢＭＣ４０５は、ネットワーク７０５を介したＩＰＭＩに準拠した通信を利用して、管理端末６０５からのサーバ５０５の管理を可能にする。
【００７７】
ＳＰＩフラッシュ４４５は、代替ＢＩＯＳデータ３０５を保持する。ＳＰＩフラッシュ４４５は、ＳＰＩ（Serial Peripheral Interface）を有する。
【００７８】
ＢＭＣファームウェア４２５は、ＢＭＣ４０５に含まれる図示されないプロセッサによって実行される。ＢＭＣファームウェア４２５は、リカバリーアップデートが必要な場合に、ＳＰＩフラッシュ４４５によって保持されている代替ＢＩＯＳデータ３０５の全部又は一部を、共有メモリ４１５へ書き込む。ＢＭＣファームウェア４２５は、ＩＰＭＩに準拠してＢＩＯＳコード２１５と通信を行う。但し、ＩＰＭＩはＯＥＭコマンドによって拡張可能である。又、ＢＭＣファームウェア４２５は、ＩＰＭＩ以外の規格に準拠してＢＩＯＳコード２１５と通信を行ってもよい。
【００７９】
共有メモリ４１５は、ＭＭＩＯ（Memory Mapped Input/Output）を用いたアクセスが可能なメモリである。共有メモリ４１５は、ＢＭＣファームウェア４２５及びＢＩＯＳコード２１５によってアクセス可能である。
【００８０】
ネットワークインターフェース４３５は、管理端末６０５と通信を行う。
【００８１】
ＣＰＵ１１５により実行されたＢＩＯＳコード２１５は、共有メモリ４１５に書き込まれた代替ＢＩＯＳデータ３０５に、ＭＭＩＯ（Memory Mapped Input/Output）を使用してアクセスする。
【００８２】
本実施形態における他の構成は、第２の実施形態における構成と同じである。
【００８３】
本実施形態における動作について説明する。
【００８４】
図５乃至７は、本発明の第３の実施形態にける情報処理装置及びＢＭＣの動作を示すフローチャートである。図５乃至７において、左側は情報処理装置１０５の動作を示し、右側はＢＭＣ４０５の動作を示す。但し、図５乃至７では、動作の主体を特に明示しない限り、情報処理装置１０５の動作の主体はＣＰＵ１１５によって実行されている現用ＢＩＯＳデータ２０５に含まれるＢＩＯＳコード２１５である。又、図５乃至７では、動作の主体を特に明示しない限り、ＢＭＣ４０５の動作の主体はＢＭＣ４０５における不図示のプロセッサによって実行されているＢＭＣファームウェア４２５である。又、図５乃至７は、一連の動作を各図に分割して示している。尚、図５乃至７に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【００８５】
ＢＭＣ４０５の不図示のプロセッサによって実行されているＢＭＣファームウェア４２５（以下、単に「ＢＭＣファームウェア４２５」と称す）は、リカバリーアップデートジャンパ１３５が設定（有効化）された状態で情報処理装置１０５を起動することを、ＩＰＭＩのＯＥＭコマンドで指示する（ステップＳ５１０）。
【００８６】
情報処理装置１０５は、リカバリーアップデートジャンパ１３５の設定指示を取得し、リカバリーアップデートジャンパ１３５を設定する。そして、情報処理装置１０５は、ＤＣを給電される（ステップＳ３１０）。
【００８７】
情報処理装置１０５のＣＰＵ１１５は、ＢＩＯＳコード２１５を起動する（ステップＳ３２０）。
【００８８】
情報処理装置１０５のＣＰＵ１１５によって実行されている、現用ＢＩＯＳデータ２０５のＢＩＯＳコード２１５（以下、単に「ＢＩＯＳコード２１５」と称す）は、共有メモリ４１５を初期化する（ステップＳ３３０）。
【００８９】
ＢＩＯＳコード２１５は、ＣＰＵ及びＰＣＨを初期化する（ステップＳ３４０）。つまり、ＢＩＯＳコード２１５は、本ステップの終了時点において、リカバリーアップデートの実行のために必要最小限な初期化を終了する。
【００９０】
ＢＩＯＳコード２１５は、リカバリーアップデートジャンパ１３５の状態を確認する（ステップＳ３５０）。
【００９１】
リカバリーアップデートジャンパ１３５が設定（有効化）されているので、ＢＩＯＳコード２１５は、以降、リカバリーアップデートを行う。ここで、本説明では、共有メモリ４１５のサイズは５１２ＫＢであり、代替ＢＩＯＳデータ３０５のサイズは８ＭＢであることとする。
【００９２】
ＢＭＣファームウェア４２５は、ＳＰＩフラッシュ４４５に格納されている代替ＢＩＯＳデータ３０５のデータ長（８ＭＢ）を確認して、情報処理装置１０５へ通知する（ステップＳ５２０）。
【００９３】
ＢＩＯＳコード２１５は、書き込み指示をＩＰＭＩのＯＥＭコマンドによってＢＭＣ４０５へ指示する（ステップＳ３６０）。ここで、書き込み指示は、代替ＢＩＯＳデータ３０５の指定領域を共有メモリ４１５に書き込む指示である。書き込み指示を表すＩＰＭＩのＯＥＭコマンドでは、共有メモリ４１５へ書き込むべき、代替ＢＩＯＳデータにおける開始位置（オフセット）と長さ（サイズ）とを指定可能であることとする。
【００９４】
ＢＭＣファームウェア４２５は、情報処理装置１０５から書き込み指示を取得する（ステップＳ５３０）。
【００９５】
ＢＭＣファームウェア４２５は、代替ＢＩＯＳデータ３０５における、当該書き込み指示においてオフセットとサイズとによって指定された部分（最大５１２ＫＢ）を、共有メモリ４１５に書き込む（ステップＳ５４０）。
【００９６】
ＢＩＯＳコード２１５は、共有メモリ４１５にＭＭＩＯを用いてアクセスする（ステップＳ３７０）。
【００９７】
ＢＩＯＳコード２１５は、共有メモリ４１５に書き込まれた代替ＢＩＯＳデータ３０５の一部を読み出す（ステップＳ３８０）。この時点では、メインメモリ１５５は初期化前であるので、メインメモリ１５５は使用できない。そのため、ＢＩＯＳコード２１５は、共有メモリ４１５から読み出したデータをＢＩＯＳフラッシュ１２５に直接書き込む（ステップＳ３９０）。
【００９８】
ＢＩＯＳコード２１５は、代替ＢＩＯＳデータ３０５の全体がフラッシュＲＯＭ１２５に書き込まれたか否かを判定する（ステップＳ４００）。代替ＢＩＯＳデータ３０５の全体がフラッシュＲＯＭ１２５に書き込まれたならば（ステップＳ４００におけるＹｅｓ）、ＢＩＯＳコード２１５は、ステップＳ４２０へ処理を進める。代替ＢＩＯＳデータ３０５の全体がフラッシュＲＯＭ１２５に書き込まれていないならば（ステップＳ４００におけるＮｏ）、ＢＩＯＳコード２１５は、ステップＳ４１０へ処理を進める。
【００９９】
ＢＩＯＳコード２１５は、フラッシュＲＯＭ１２５に書き込んでいない代替ＢＩＯＳデータ３０５の部分に関する書き込み指示をＩＰＭＩのＯＥＭコマンドによってＢＭＣファームウェア４２５へ指示し、ＢＭＣファームウェア４２５は、ステップＳ５３０へ処理を進める（ステップＳ４１０）。つまり、ＢＩＯＳコード２１５は、ステップＳ４１０、Ｓ３７０、Ｓ３８０、Ｓ３９０、Ｓ４００の処理を、代替ＢＩＯＳデータ３０５の全体がフラッシュＲＯＭ１２５に書き込まれるまで繰り返し実行する。
【０１００】
ＢＩＯＳコード２１５は、リカバリーアップデートを終了することを、ＩＰＭＩのＯＥＭコマンドでＢＭＣファームウェア４２５に指示する（ステップＳ４２０）。
【０１０１】
ＢＭＣ４０５は、リカバリーアップデートを終了する指示を取得し、リカバリーアップデートジャンパ１３５が解除（リセット）された状態で情報処理装置１０５を再起動することを、ＩＰＭＩのＯＥＭコマンドで指示する（ステップＳ５５０）。
【０１０２】
情報処理装置１０５は、リカバリーアップデートジャンパ１３５が解除された状態で再起動される（ステップＳ４３０）。
【０１０３】
本実施形態における他の動作は、第２の実施形態における動作と同じである。
【０１０４】
以上説明したように、本実施形態におけるサーバシステム８０５では、ＣＰＵ１１５によって実行される現用ＢＩＯＳデータ２０５に含まれるＢＩＯＳコード２１５は、現用ＢＩＯＳデータ２０５を更新する前に必要な手順（ステップＳ３３０及びＳ３４０）を実行した後、直ちに現用ＢＩＯＳデータ２０５を更新する手順（ステップＳ３５０乃至Ｓ４１０）を実行する。ここで、ＢＩＯＳコード２１５において、現用ＢＩＯＳデータ２０５の更新時に実行されないコードが不良であっても、現用ＢＩＯＳデータ２０５の更新時に実行されるコード（ステップＳ３３０乃至Ｓ４１０）が不良でなければ、現用ＢＩＯＳデータ２０５を正常に更新できる。つまり、ＢＩＯＳコード２１５は、不良を含む現用ＢＩＯＳデータ２０５の更新完了前に、ステップＳ３３０乃至Ｓ４１０以外のコードを実行する場合に比べて、現用ＢＩＯＳデータ２０５を正常に更新できる可能性を高める。従って、本実施形態におけるサーバ５０５には、ＢＩＯＳデータが不良である場合であってもＢＩＯＳデータを更新できる可能性を向上できるという効果がある。
【０１０５】
尚、本実施形態におけるサーバ５０５は、不良なＢＩＯＳのリカバリーアップデートにおける耐故障性を向上する目的だけでなく、正常なＢＩＯＳのバージョンアップにおけるバージョンアップ作業の中断に対する耐故障性を向上する目的にも有用である。
【０１０６】
図８は、本発明の各実施形態における、情報処理装置、ＢＩＯＳデータ書き込み装置、及びＢＭＣを実現可能なハードウェア構成の一例を示すブロック図である。
【０１０７】
情報処理装置９０７、ＢＩＯＳデータ書き込み装置９０７、又はＢＭＣ９０７は、記憶装置９０２と、ＣＰＵ（Central Processing Unit）９０３と、キーボード９０４と、モニタ９０５と、Ｉ／Ｏ（Input/Output）装置９０８とを備え、これらが内部バス９０６によって接続されている。記憶装置９０２は、ＣＰＵ９０３の動作プログラムを格納する。ここで、動作プログラムとは、情報処理装置１００のＢＩＯＳコード２１０、２１１、ＯＳ（Operating System）（不図示）、若しくはアプリケーション（不図示）、情報処理装置１０５のＢＩＯＳコード２１５、ＯＳ（不図示）、若しくはアプリケーション（不図示）、ＢＩＯＳデータ書き込み装置４００のファームウェア（不図示）、ＯＳ（不図示）、若しくはアプリケーション（不図示）、又はＢＭＣ４０５のＢＭＣファームウェア４２５等である。ＣＰＵ９０３は、情報処理装置９０７、ＢＩＯＳデータ書き込み装置９０７、又はＢＭＣ９０７の全体を制御し、記憶装置９０２に格納された動作プログラムを実行し、Ｉ／Ｏ装置９０８によって動作プログラムの実行やデータの送受信を行なう。尚、上記の情報処理装置９０７、ＢＩＯＳデータ書き込み装置９０７、又はＢＭＣ９０７の内部構成は一例である。情報処理装置９０７、ＢＩＯＳデータ書き込み装置９０７、又はＢＭＣ９０７は、必要に応じて、キーボード９０４、モニタ９０５を接続する装置構成であってもよい。
【０１０８】
上述した本発明の各実施形態における情報処理装置９０７、ＢＩＯＳデータ書き込み装置９０７、又はＢＭＣ９０７は、専用の装置によって実現してもよいが、Ｉ／Ｏ装置９０８が外部との通信を実行するハードウェアの動作以外は、コンピュータ（情報処理装置）によっても実現可能である。本発明の各実施形態において、Ｉ／Ｏ装置９０８は、例えば、共有メモリ４１０、共有メモリ４１５、情報処理装置１００、１０５、ＢＩＯＳデータ書き込み装置４００、ＢＭＣ４０５、又は管理端末６０５等との入出力部である。この場合、係るコンピュータは、記憶装置９０２に格納されたソフトウェア・プログラムをＣＰＵ９０３に読み出し、読み出したソフトウェア・プログラムをＣＰＵ９０３において実行する。上述した各実施形態の場合、係るソフトウェア・プログラムには、上述したところの、図１、４に示した、情報処理装置１００、１０５、ＢＩＯＳデータ書き込み装置４００、又はＢＭＣ４０５の各部の機能を実現可能な記述がなされていればよい。但し、これらの各部には、適宜ハードウェアを含むことも想定される。そして、このような場合、係るソフトウェア・プログラム（コンピュータ・プログラム）は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。
【０１０９】
以上、本発明を、上述した各実施形態およびその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態およびその変形例に記載した範囲に限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
【０１１０】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
メモリマップトＩＯを用いたデータの書き込み及び読み出しが可能な共有メモリ、
前記共有メモリにＢＩＯＳデータである所望の代替ＢＩＯＳデータの書き込みが可能なＢＩＯＳデータ書き込み装置、及び
前記ＢＩＯＳデータである現用ＢＩＯＳデータを不揮発的に記憶するＢＩＯＳフラッシュと、
リセットされた直後に、前記ＢＩＯＳフラッシュによって記憶されている前記ＢＩＯＳデータに含まれるＢＩＯＳコードを実行可能なプロセッサと、
前記ＢＩＯＳフラッシュに記憶された前記現用ＢＩＯＳデータを前記代替ＢＩＯＳデータへ更新することの可不可を示す更新設定を保持する更新設定保持手段と
を含む情報処理装置であって、
前記ＢＩＯＳコードは、前記プロセッサに、
前記更新設定保持手段から取得した前記更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、前記判定手順を実行する更新判定手順と、
前記更新判定手順による判定結果が更新可である場合に、前記ＢＩＯＳフラッシュが記憶している前記現用ＢＩＯＳデータを、前記共有メモリから読み出した前記代替ＢＩＯＳデータに更新する更新手順の実行に必要な初期化を行う更新時初期化手順と、
前記更新判定手順による判定結果が更新可である場合に、前記更新手順を実行するＢＩＯＳ更新手順と、
前記更新判定手順による判定結果が更新不可である場合に、前記情報処理装置の動作に必要な初期化を実行する非更新時初期化手順と、
前記更新判定手順による判定結果が更新不可である場合に、ブートローダーを呼出すブートローダー呼出手順と
を実行させる情報処理装置
を備えた情報処理システム。
（付記２）
前記ＢＩＯＳデータ書き込み装置は、前記情報処理装置が起動されているか否かによらず動作可能である
付記１に記載の情報処理システム。
（付記３）
前記更新時初期化手順は、前記更新手順に必要な初期化を行う際に、前記更新手順の実行のために必要最小限な初期化を行う
付記１又は２に記載の情報処理システム。
（付記４）
前記情報処理装置は、ランダムアクセスメモリを更に含み、
前記更新手順の実行のために必要最小限な初期化は、前記ランダムアクセスメモリの初期化を含まない
付記３に記載の情報処理システム。
（付記５）
前記代替ＢＩＯＳデータの長さは、前記共有メモリの記憶容量より大きく、
前記ＢＩＯＳコードは、前記ＢＩＯＳ更新手順において、前記共有メモリから前記代替ＢＩＯＳデータの部分を読み出し、読み出した該部分を前記ＢＩＯＳフラッシュへ直接書き込むことを繰り返す
付記１乃至４の何れか１項に記載の情報処理システム。
（付記６）
前記ＢＩＯＳ更新手順は、前記更新手順が実行された後に、前記更新設定保持手段が保持する前記更新設定を更新不可に変更する
付記１乃至５の何れか１項に記載の情報処理システム。
（付記７）
前記非更新時初期化手順は、前記情報処理装置の動作に必要な初期化の実行が失敗した場合に、前記更新設定保持手段が保持する前記更新設定を更新可に変更する
付記１乃至６の何れか１項に記載の情報処理システム。
（付記８）
前記ＢＩＯＳ更新手順は、前記更新設定が変更された後に、前記プロセッサをリセットする
付記１乃至７の何れか１項に記載の情報処理システム。
（付記９）
前記情報処理装置は、前記共有メモリを含む
付記１乃至８の何れか１項に記載の情報処理システム。
（付記１０）
ＢＩＯＳデータである所望の代替ＢＩＯＳデータが書き込まれており、メモリマップトＩＯを用いたデータの書き込み及び読み出しが可能な共有メモリに接続されており、
前記ＢＩＯＳデータである現用ＢＩＯＳデータを不揮発的に記憶するＢＩＯＳフラッシュと、
リセットされた直後に、前記ＢＩＯＳフラッシュによって記憶されている前記ＢＩＯＳデータに含まれるＢＩＯＳコードを実行可能なプロセッサと、
前記ＢＩＯＳフラッシュに記憶された前記現用ＢＩＯＳデータを前記代替ＢＩＯＳデータへ更新することの可不可を示す更新設定を保持する更新設定保持手段と
を備えた情報処理装置であって、
前記ＢＩＯＳコードは、
前記更新設定保持手段から取得した前記更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、前記判定手順を実行する更新判定手順と、
前記更新判定手順による判定結果が更新可である場合に、前記ＢＩＯＳフラッシュが記憶している前記現用ＢＩＯＳデータを、前記共有メモリから読み出した前記代替ＢＩＯＳデータに更新する更新手順の実行に必要な初期化を行う更新時初期化手順と、
前記更新判定手順による判定結果が更新可である場合に、前記更新手順を実行するＢＩＯＳ更新手順と、
前記更新判定手順による判定結果が更新不可である場合に、前記情報処理装置の動作に必要な初期化を実行する非更新時初期化手順と、
前記更新判定手順による判定結果が更新不可である場合に、ブートローダーを呼出すブートローダー呼出手順と
を含む情報処理装置。
（付記１１）
ＢＩＯＳデータである所望の代替ＢＩＯＳデータが書き込まれており、
メモリマップトＩＯを用いたデータの書き込み及び読み出しが可能な
共有メモリに接続されており、
前記ＢＩＯＳデータである現用ＢＩＯＳデータを不揮発的に記憶するＢＩＯＳフラッシュと、
リセットされた直後に、前記ＢＩＯＳフラッシュによって記憶されている前記ＢＩＯＳデータに含まれるＢＩＯＳコードを実行可能なプロセッサと、
前記ＢＩＯＳフラッシュに記憶された前記現用ＢＩＯＳデータを前記代替ＢＩＯＳデータへ更新することの可不可を示す更新設定を保持する更新設定保持手段と
を備えた情報処理装置のＢＩＯＳ更新方法であって、
前記ＢＩＯＳコードは、
前記更新設定保持手段から取得した前記更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、前記判定手順を実行する更新判定手順と、
前記更新判定手順による判定結果が更新可である場合に、前記ＢＩＯＳフラッシュが記憶している前記現用ＢＩＯＳデータを、前記共有メモリから読み出した前記代替ＢＩＯＳデータに更新する更新手順の実行に必要な初期化を行う更新時初期化手順と、
前記更新判定手順による判定結果が更新可である場合に、前記更新手順を実行するＢＩＯＳ更新手順と、
前記更新判定手順による判定結果が更新不可である場合に、前記情報処理装置の動作に必要な初期化を実行する非更新時初期化手順と、
前記更新判定手順による判定結果が更新不可である場合に、ブートローダーを呼出すブートローダー呼出手順と
を実行する、情報処理装置のＢＩＯＳ更新方法。
（付記１２）
ＢＩＯＳデータである所望の代替ＢＩＯＳデータが書き込まれており、メモリマップトＩＯを用いたデータの書き込み及び読み出しが可能な共有メモリに接続されており、
前記ＢＩＯＳデータである現用ＢＩＯＳデータを不揮発的に記憶するＢＩＯＳフラッシュと、
リセットされた直後に、前記ＢＩＯＳフラッシュによって記憶されている前記ＢＩＯＳデータに含まれるＢＩＯＳコードを実行可能なプロセッサと、
前記ＢＩＯＳフラッシュに記憶された前記現用ＢＩＯＳデータを前記代替ＢＩＯＳデータへ更新することの可不可を示す更新設定を保持する更新設定保持手段と
を備えた情報処理装置が備えるコンピュータに、
前記更新設定保持手段から取得した前記更新設定が更新可であるか否かを判定する判定手順の実行に必要な初期化を行った後に、前記判定手順を実行する更新判定手順と、
前記更新判定手順による判定結果が更新可である場合に、前記ＢＩＯＳフラッシュが記憶している前記現用ＢＩＯＳデータを、前記共有メモリから読み出した前記代替ＢＩＯＳデータに更新する更新手順の実行に必要な初期化を行う更新時初期化手順と、
前記更新判定手順による判定結果が更新可である場合に、前記更新手順を実行するＢＩＯＳ更新手順と、
前記更新判定手順による判定結果が更新不可である場合に、前記情報処理装置の動作に必要な初期化を実行する非更新時初期化手順と、
前記更新判定手順による判定結果が更新不可である場合に、ブートローダーを呼出すブートローダー呼出手順と
を実行させる、情報処理装置のＢＩＯＳ更新プログラム。
【産業上の利用可能性】
【０１１１】
本発明は、パーソナルコンピュータ、サーバ、及びプロセッサを内蔵する装置全般において、ＢＩＯＳの不良やＢＩＯＳ更新作業の中断に対する耐故障性を向上する用途において利用できる。
【符号の説明】
【０１１２】
１００、１０５  情報処理装置
１１０  プロセッサ
１１５  ＣＰＵ
１２０、１２５  ＢＩＯＳフラッシュ
１３０  更新設定保持手段
１３５  リカバリーアップデートジャンパ
１４５  ＰＣＨ
１５５  メインメモリ
１６５  ＳＡＴＡインターフェース
１７５  ＵＳＢインターフェース
１８５、１９５  ＤＶＤドライブ
２００、２０５  現用ＢＩＯＳデータ
２１０、２１１、２１５  ＢＩＯＳコード
２２０  更新判定手順
２３０  更新時初期化手順
２４０、２４１  ＢＩＯＳ更新手順
２５０、２５１  非更新時初期化手順
２６０  ブートローダー呼出手順
３００、３０５  代替ＢＩＯＳデータ
４００  ＢＩＯＳデータ書き込み装置
４０５  ＢＭＣ
４１０、４１５  共有メモリ
４２５  ＢＭＣファームウェア
４３５  ネットワークインターフェース
４４５  ＳＰＩフラッシュ
５０５  サーバ
６０５  管理端末
６１５  ネットワークインターフェース
７０５  ネットワーク
８０５  サーバシステム
９０２  記憶装置
９０３  ＣＰＵ
９０４  キーボード
９０５  モニタ
９０６  内部バス
９０７  情報処理装置
９０８  Ｉ／Ｏ装置
【図１】
2019139373.tif 000003
【図２】
2019139373.tif 000004
【図３】
2019139373.tif 000005
【図４】
2019139373.tif 000006
【図５】
2019139373.tif 000007
【図６】
2019139373.tif 000008
【図７】
2019139373.tif 000009
【図８】
2019139373.tif 000010