(57)【要約】    【課題】ＢＩＯＳ設定情報の書替えを専用ツールによらずに簡単且つ容易にできるようにする。    【解決手段】ＢＩＯＳ更新部５５はOＳ上で動作し、ワンタイム書替えプログラム６０を付加したＢＩＯＳアップデートファイルをインストールしてフラッシュＲＯＭ１６の第２プログラム領域５２にワンタイム書替えプログラム６０を書込む。ＢＩＯＳ実行部５６は、電源投入に伴うＢＩＯＳ２０の実行中に、フラッシュＲＯＭ１６の第２プログラム領域５２にワンタイム書替えプログラム６０が格納されているか否か検査し、格納されている場合にワンタイム書替えプログラム６０を実行して第２不揮発性メモリのＢＩＯＳ設定情報を書き替える。ワンタイム書替えプログラム６０は正常終了すると消去される。    【選択図】      図１
2007149065.tif 000002
【特許請求の範囲】
【請求項１】
プログラムと、
前記プログラムの動作を設定するプログラム設定情報が格納される設定情報格納領域を格納する不揮発性メモリと、
前記プログラム設定情報を書き替え、前記プログラムの一部として実行されるワンタイム書替えプログラムを前記不揮発性メモリに書込むプログラム更新部と、
前記プログラムの実行中に、前記不揮発性メモリに前記ワンタイム書替えプログラムが格納されているか否か検査し、格納されている場合に前記ワンタイム書替えプログラムを実行して前記不揮発性メモリのプログラム設定情報を書き替えるプログラム実行部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置に於いて、
前記ワンタイム書替えプログラムは、前記ワンタイム書替えプログラムの有効性を示すシグニチャー、前記ワンタイム書替えプログラムの正当性を示すチェックサム、前記ワンタイム書替えプログラムのプログラムエントリ、及びプログラム実体を有し、
前記プログラム実行部は、シグニチャーが有効で且つチェックサムの検査で正当と判断した場合に、前記ワンタイム書替えプログラムを実行することを特徴とする情報処理装置。
【請求項３】
請求項２記載の情報処理装置に於いて、前記ワンタイム書替えプログラムは、前記プログラム設定情報の設定項目、格納位置を指定すると共にデータを記述した１又は複数の書替えコードを含むことを特徴とする情報処理装置。
【請求項４】
請求項１記載の情報処理装置に於いて、前記プログラム実行部は、前記プログラム設定情報の書替えが正常終了した場合に、ワンタイム書替えプログラムを消去することを特徴とする情報処理装置。
【請求項５】
請求項１記載の情報処理装置に於いて、前記プログラム実行部は、前記プログラム設定情報の書替えが正常終了していない場合には、ワンタイム書替えプログラムを正常終了するまで格納することを特徴とする情報処理装置。
【請求項６】
請求項１記載の情報処理装置に於いて、前記プログラム実行部は、前記プログラム設定情報の書替えが正常終了していない場合には、エラー表示することを特徴とする情報処理装置。
【請求項７】
請求項１記載の情報処理装置に於いて、
前記プログラム実行部は、前記プログラム設定情報の書替えが正常終了していない場合には、前記プログラムの実行を停止することを特徴とする情報処理装置。
【請求項８】
プログラムの動作を設定するプログラム設定情報を書き替え、前記プログラムの一部として実行されるワンタイム書替えプログラムを前記不揮発性メモリに書込むプログラム更新ステップと、
前記プログラムの実行中に、不揮発性メモリに格納された前記ワンタイム書替えプログラムが格納されているか否か検査し、格納されている場合に前記ワンタイム書替えプログラムを実行して前記プログラム設定情報を書替えるプログラム実行ステップと、
を備えたことを特徴とする情報処理装置の処理方法。
【請求項９】
請求項８記載の情報処理装置の処理方法に於いて、前記プログラム実行ステップは、前記プログラム設定情報の書替えが正常終了した場合に、ワンタイム書替えプログラムを消去することを特徴とする情報処理装置の処理方法。
【請求項１０】
コンピュータに、
不揮発性メモリに格納されたワンタイム書替えプログラムが格納されているか否か検査する検査ステップと、
ワンタイム書替えプログラムが格納されている場合に前記ワンタイム書替えプログラムを実行しての動作を設定するプログラム設定情報を書替える書替えステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＢＩＯＳの設定情報を書替える情報処理装置、ＢＩＯＳ処理方法及びプログラムに関し、特に、ＯＳ上で動作するアプリケーションを使用してＢＩＯＳの設定情報を書替える情報処理装置、ＢＩＯＳ処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、コンピュータのマザーボードに実装された基本入出力システム（プログラム）であるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）は、フラッシュＲＯＭなどの不揮発性メモリに記憶されており、電源投入時に最初に実行され、デバイスの診断と初期化、起動ドライブの決定、マスターブートレコードのメインメモリへのロードを行う。その後は、メインメモリ上でのプログラムの実行に移行し、ブートアップ処理によりウィンドウズ（Ｒ）などのＯＳを起動し、アプリケーションの実行を可能とする。
【０００３】
ＢＩＯＳは、大別して入出力インタフェースの提供、コンピュータの起動及びハードウェアの設定という３つの機能をもっており、その内、ハードウェアの設定に使用する設定情報については、起動する度に設定することを不要とするため、ＣＭＯＳと呼ばれるスタティクＲＡＭ（以下「ＣＭＯＳ−ＲＡＭ」という）に保存し、ハードウェアを初期化する際に使用している。ここで、ＣＭＯＳ−ＲＡＭは揮発性メモリであるが、電池によるバックアップで不揮発性メモリとしている。
【０００４】
ＢＩＯＳはコンピュータ製造時にマザーボードのフラッシュＲＯＭに一旦記憶すれば、その後のユーザによる使用中には基本的には変更する必要はないものであるが、ＢＩＯＳにバグが含まれていたり、ＣＰＵや周辺機器に対応するため、ＢＩＯＳの中のコード命令を書替えるバーションアップが必要であり、メーカ側からＢＩＯＳアップデートファイルをダウンロードなどで取得し、ＢＩＯＳを最新バージョンに更新するようにしている。
【０００５】
ＢＩＯＳアップデートは、ＭＳ−ＤＯＳ起動ディスクを作成し、ここにアップデータＢＩＯＳイメージファイルとフラッシュユーテリィティをコピーし、フラッシュユーティリティを起動してＢＩＯＳイメージファイルによるＢＩＯＳの書替え更新を行うことができる。
【０００６】
このようなＤＯＳ環境でのアップデートは一般のユーザにはなじみのないものであることから、ウィンドウズ（Ｒ）からＢＩＯＳをアップデートするユーテリィティが提供されており、更に、インターネット上から最新ＢＩＯＳをダウンロードして自動的にアップデートする機能も設けられ、ＢＩＯＳのアップデート作業を非常に簡単にしている。
【０００７】
一方、ＢＩＯＳにあっては、ハードウェアやユーザの使用形態に合わせ、設定情報を書替えてカスタマイズすることが可能であり、ＢＩＯＳの設定は、ＢＩＯＳに組み込まれているユーテリィティを使用して行うことができる。
【０００８】
ＢＩＯＳユーテリィティが提供する設定のセットアップメニューは、ＣＰＵ関連ではＣＰＵとチップセット結ぶバスのＦＳＢクロック（Ｆｒｏｎｔ  Ｓｉｔｅ  Ｂｕｓ  ｃｌｏｃｋ）、キャッシュのオン／オフ、クロック倍率などがあり、ハードディスク関連では動作モード、各種メモリパラメータ、動作モードなどがあり、ポート関連では各種コントローラのオン／オフ、ＤＭＡチャネルのセット、Ｉ／Ｏポートアドレスなどがあり、更に、電力関連では、省電力レベル、各種ウェイクアップ起動など多岐にわたる。更に、メーカーによっては、上級ユーザしか扱えない設定については隠しメニューを提供しているものもある。
【０００９】
図１９は従来のコンピュータにおけるＢＩＯＳ実行環境２００とＯＳ実行環境３００である。ＢＩＯＳ実行環境２００にはフラッシュＲＯＭ２０２とＣＭＯＳ−ＲＡＭ２０４が設けられ、フラッシュＲＯＭ２０２にはＢＩＯＳ２０６が記憶され、ＣＭＯＳ−ＲＡＭ２０４にはＢＩＯＳ設定情報２０８が記憶されている。更にフラッシュＲＯＭ２０２にはユーテリィティ２１０が記憶され、そのセットアップメニュー画面を使用してＢＩＯＳ設定情報２０８を書替えることができる。
【００１０】
ＯＳ実行環境３００はメインメモリ上のウィンドウズ（Ｒ）などを実行することで実現され、ＢＩＯＳアップデートツール３０２によりＢＩＯＳアップデートファイル３０４をインターネットからダウンロードしてフラッシュＲＯＭ２０２のＢＩＯＳ２０６を自動的に最新バージョンに更新できる。
【特許文献１】特開２０００−２２２１８３号公報
【特許文献２】特開平０８−１６４０８号公報
【特許文献３】特開２０００−３５７０９３号公報
【特許文献４】特開平０９−３２５８８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、このような従来のＢＩＯＳの設定にあっては、ユーテリィティ２１０で提供されるセットアップメニュー画面を使用したユーザの手動設定に依存しており、ＣＰＵ及び周辺機器についてしっかりとした基礎知識をもたなければ適切な設定は困難であり、このためメーカー側からＢＩＯＳの設定に関する最新情報をユーザに提供して設定情報を書替えるといったことは期待できない。
【００１２】
ユーザレベルでＢＩＯＳ設定情報の書替えを可能とするためには、例えば、機種や書替える設定情報に応じ、ウィンドウズ（Ｒ）などのＯＳ上で動作する専用の設定情報書替えツール３０６を作成し、例えばインターネットから設定情報書替えファイル３０８をダウンロードしてＢＩＯＳ設定情報２０８を自動更新する必要がある。
【００１３】
しかしながら、このようなＯＳ上で動作してＢＩＯＳ設定情報を書替える専用ツールの作成には、例えば１週間といった開発工数を必要とし、手間と時間がかかる問題がある。即ち、ＢＩＯＳの設定情報書替えツール３０６を作成するためには、ＢＩＯＳ２０６を記憶しているフラッシュROM２０２や、ＢＩＯＳ設定情報２０８を記憶しているＣＭＯＳ−ＲＡＭ２０４の中のどの位置、どんなデータ形式で、どのような項目が入れてあるか、何バイトか、変換されたデータが入っているのか、ビット０を有効と扱っているか、ビット１を有効と扱っているか等の情報を把握する必要があり、ＢＩＯＳ設定情報２０８を書き替える専用ツールの作成にかなりの手間と時間がかかるという問題がある。
【００１４】
本発明は、ＢＩＯＳ設定情報の書替えを専用ツールによらずに簡単且つ容易にできるようにしたコンピュータ、ＢＩＯＳ処理方法及びプログラムを提供する。
【課題を解決するための手段】
【００１５】
図１は本発明の原理説明図である。
（装置）
プログラムであるＢＩＯＳ２０とＢＩＯＳ２０の動作を設定するＢＩＯＳ設定情報２４が格納される設定情報格納領域５４を格納する不揮発性メモリと、
ＢＩＯＳ設定情報５４を書き替え、ＢＩＯＳ２０の一部として実行されるワンタイム書替えプログラム６０を不揮発性メモリに書込むＢＩＯＳ更新部５５と、
ＢＩＯＳ２０の実行中に、不揮発性メモリにワンタイム書替えプログラム６０が格納されているか否か検査し、格納されている場合にワンタイム書替えプログラム６０を実行して不揮発性メモリのＢＩＯＳ設定情報５４を書き替えるＢＩＯＳ実行部５６と、
を備えたことを特徴とする。
【００１６】
ここで、ワンタイム書替えプログラムは、プログラムの有効性を示すシグニチャー、プログラムの正当性を示すチェックサム、プログラムエントリ、及びプログラム実体を有し、ＢＩＯＳ実行部は、シグニチャーが有効で且つチェックサムの検査で正当と判断した場合に、ワンタイム書替えプログラムを実行する。
【００１７】
ワンタイム書替えプログラムは、プログラム実体として、ＢＩＯＳ設定情報の設定項目、格納位置を指定すると共にデータを記述した１又は複数の書替えコードを配置する。
【００１８】
ＢＩＯＳ実行部は、ＢＩＯＳ設定情報の書替えが正常終了した場合に、ワンタイム書替えプログラムを消去する。ＢＩＯＳ実行部は、ＢＩＯＳ設定情報の書替えが正常終了していない場合には、ワンタイム書替えプログラムを正常終了するまで格納する。
【００１９】
ＢＩＯＳ実行部は、ＢＩＯＳ設定情報の書替えが正常終了していない場合には、エラー表示する。ＢＩＯＳ設定情報の書替えが正常終了していない場合には、ＢＩＯＳの実行を停止するようにしても良い。
【００２０】
ＢＩＯＳとワンタイム書替えプログラムを格納する不揮発性メモリはフラッシュＲＯＭであり、設定情報格納領域を格納する不揮発性メモリは電池でバックアップされたＣＭＯＳ−ＲＡＭである。またワンタイム書替えプログラムを格納する不揮発性メモリと設定情報格納領域を格納する不揮発性メモリをフラッシュＲＯＭとしても良い。
【００２１】
（方法）
本発明は、情報処理装置のＢＩＯＳ処理方法を提供する。本発明のＢＩＯＳ処理方法は、
ＢＩＯＳの動作を設定するＢＩＯＳ設定情報を書き替え、ＢＩＯＳの一部として実行されるワンタイム書替えプログラムを前記不揮発性メモリに書込むＢＩＯＳ更新ステップと、
ＢＩＯＳの実行中に、不揮発性メモリに格納されたワンタイム書替えプログラムが格納されているか否か検査し、格納されている場合にワンタイム書替えプログラムを実行してＢＩＯＳ設定情報を書替えるＢＩＯＳ実行ステップと、
を備えたことを特徴とする。
【００２２】
（プログラム）
本発明は、情報処理装置のＢＩＯＳ処理プログラムを提供する。本発明のＢＩＯＳ処理プログラムは、コンピュータに、
ＢＩＯＳの実行中に、不揮発性メモリに格納されたワンタイム書替えプログラムが格納されているか否か検査する検査ステップと、
ワンタイム書替えプログラムが格納されている場合にワンタイム書替えプログラムを実行してＢＩＯＳの動作を設定するＢＩＯＳ設定情報を書替えるＢＩＯＳ実行ステップと、
を実行させることを特徴とする。
【００２３】
なお、本発明による方法及びプログラムの詳細は、本発明による情報処理装置の場合と基本的に同じである。
【発明の効果】
【００２４】
本発明によれば次の効果が得られる。ＢＩＯＳはコンピュータの機種毎に特化しており、システム固有のＢＩＯＳ設定情報の管理方法や格納場所などもＢＩＯＳが把握している。また、フラッシュＲＯＭなどの不揮発性メモリへのアクセスもＢＩＯＳ自身で行っていることから、書き替えるための手段も用意されている。そこで、ワンタイム書替えプログラムを、既存のＢＩＯＳをアップデートする仕組みを使って書き込み、実際のＢＩＯＳ設定情報の書替え処理はＢＩＯＳの一部として行わせることで、ＢＩＯＳ設定情報を容易に書替えることができる。
【００２５】
また、ＢＩＯＳは、システム固有のＢＩＯＳ設定情報の書き替えを正常に完了するまでは、ワンタイム書替えプログラムを破棄しないので、システム固有のＢＩＯＳ設定情報の書き替えを確実に実施することができる。
【００２６】
またワンタイム書替えプログラムの開発は、ＢＩＯＳのプログラム開発環境において、ソースレベルで既存のＢＩＯＳソースファイルにワンタイム書替えプログラムのソースファイルを作成して付加した後に、コンパイルし、更にリンカーして実行形式のＢＩＯＳアップデートファイルを生成すれば良く、設定情報を記憶しているＣＭＯＳ−ＲＡＭのどの位置に、どんなデータ形式で、どのような項目が入れてあるか、何バイトか、変換されたデータが入っているのか、ビット０を有効と扱っているか、ビット１を有効と扱っているか等の情報を把握する必要がなく、開発期間を大幅に短縮して作業負担を低減できる。
【００２７】
またＢＩＯＳ設定情報を、ＢＩＯＳと同じフラッシュＲＯＭに記憶している場合には、フラッシュＲＯＭの書替えに必要な特殊な命令は、ＢＩＯＳが本来もっている命令をそのまま使用することができ、改めてフラッシュＲＯＭの書替えに必要なフラッシュユーティリティ等の作成を不要にできる。
【００２８】
更に、ＢＩＯＳ設定情報のワンタイム書替えプログラムは、一度、正常に実行されると消去され、その後の電源投入時に不必要に実行されることはなく、ＢＩＯＳ設定情報の書替えのためにＢＩＯＳによる起動時間が遅くなるようなことはない。
【発明を実施するための最良の形態】
【００２９】
図２は本発明が適用されるコンピュータのハードウェア環境のブロック図である。図２において、本発明のコンピュータはマザーボード１０を有し、マザーボード１０上にはＣＰＵ１２が搭載されている。ＣＰＵ１２からのバス１４に対してはフラッシュＲＯＭ１６とＣＭＯＳ−ＲＡＭ１８が接続される。
【００３０】
フラッシュＲＯＭ１６は不揮発性の読み出し専用メモリであるが、予め定めた所定の手順に従って電気的に記憶内容を書き替えることができる。フラッシュＲＯＭ１６にはＢＩＯＳ２０が記憶されている。ＣＭＯＳ−ＲＡＭ１８は揮発性のメモリであるが、電池２２を接続することにより電源バックアップを行い、これによって不揮発性のメモリを構成している。ＣＭＯＳ−ＲＡＭ１８にはフラッシュＲＯＭ１６のＢＩＯＳ２０における電源投入時のデバイス初期化処理の際に設定されるＢＩＯＳ設定情報２４が記憶されている。
【００３１】
その他、ＣＰＵ１２からのバス１４に対してはメインメモリ２６、ハードディスクドライバ２８、フロッピードライバ３２、ＣＤドライバ３６、デバイスインタフェース４０及びネットワークアダプタ４８が接続されている。マザーボード１０に対する周辺装置としてハードディスクドライバ２８に対してハードディスクドライブ３０が接続され、フロッピードライバ３２に対してフロッピィディスクドライブ３４が接続され、ＣＤドライバ３６に対してＣＤドライブ３８が接続され、デバイスインタフェース４０にはキーボード４２、マウス４４、ディスプレイ４６が接続されている。
【００３２】
図３は図２のマザーボード１０上のフラッシュＲＯＭ１６とＣＭＯＳ−ＲＡＭ１８におけるＢＩＯＳメモリ配置の説明図である。図３において、第１不揮発性メモリとして機能するフラッシュＲＯＭ１６は第１プログラム領域５０と第２プログラム領域５２に分けられている。
【００３３】
第１プログラム領域５０にはＢＩＯＳ２０が最初から記憶されている。これに対し第２プログラム領域５２には、マザーボード１０の製造時には空き領域としているが、コンピュータを出荷してユーザが使用した際のＢＩＯＳアップデートに通じてワンタイム書替えプログラム６０が書き込まれ、これによってワンタイム書替えプログラム６０はＢＩＯＳ２０の一部となり、その後に、ＢＩＯＳ２０を実行することでワンタイム書替えプログラム６０も実行され、ワンタイム書替えプログラム６０によりＢＩＯＳ設定情報２４の中のプログラムに記述された特定の設定情報の書替えができる。
【００３４】
第２不揮発性メモリとして実行されるＣＭＯＳ−ＲＡＭ１８には設定情報格納領域５４が設けられ、ここにＢＩＯＳ設定情報２４が記憶されている。ＢＩＯＳ設定情報２４は、ＢＩＯＳ２０の実行時にハードウェアに初期設定するために必要な各種の設定情報であり、コンピュータを設計開発する段階で決めた設定に対応したデフォルト値が製造段階で記憶されている。
【００３５】
ＣＰＵ１２には、プログラムの実行による実現される機能として、ＢＩＯＳ更新部５５とＢＩＯＳ実行部５６が設けられている。ＢＩＯＳ更新部５５は、図４のようにＢＩＯＳアップデート用のＯＳ上で動作するアプリケーションプログラムである。
【００３６】
図４は本発明によるコンピュータのＢＩＯＳ実行環境とＯＳ実行環境６４を示している。コンピュータの電源を投入するとＢＩＯＳ実行環境６２が形成され、ＢＩＯＳ２０の実行によりデバイスの診断と初期化、起動ドライブの決定、及び起動ドライブからのマスタブートレコードのメインメモリ２６にコピーを行い、その後メインメモリ２６上の処理に引き渡してブートアップ処理により起動媒体からＯＳをインストールして実行させる。
【００３７】
ＯＳの実行で実現されるＯＳ実行環境６４、例えばウィンドウズ（Ｒ）において、ＢＩＯＳ実行環境６２のフラッシュＲＯＭ１６に設けているＢＩＯＳ２０を更新するためのＢＩＯＳアップデートツール６６がアプリケーションプログラムとして提供されている。
【００３８】
図３のＢＩＯＳ更新部５５は、図４のＯＳ実行環境６４に配置したＢＩＯＳアップデートツール６６により実現される機能である。ＢＩＯＳアップデートツール６６は、例えばインターネットからダウンロードすることができ、ダウンロードしたＢＩＯＳアップデートファイル６８を実行してＢＩＯＳ実行環境６２におけるフラッシュＲＯＭ１６のＢＩＯＳ２０を更新する公知のツールである。
【００３９】
本発明にあっては、ＢＩＯＳアップデートツール６６によるＢＩＯＳアップデート機能を利用する。例えばインターネットからダウンロードされるアップデートファイル６８にＢＩＯＳ設定環境２４を書き替えるためのワンタイム書替えプログラム６０−１を付加しておき、ワンタイム書替えプログラム６０−１を付加したＢＩＯＳアップデートファイル６８をＢＩＯＳアップデートツール６６より実行すると、ＢＩＯＳ実行環境６２のフラッシュＲＯＭのＢＩＯＳ２０の更新と同時に初期状態では空き領域となっている図３の第２プログラム領域５２にワンタイム書替えプログラム６０を書き込むことができる。
【００４０】
このようにフラッシュＲＯＭ１６のＢＩＯＳ２０にその一部としてワンタイム書替えプログラム６０の書き込みができたならば、コンピュータの電源を再投入することで、図３のＣＰＵ１２に示したＢＩＯＳ実行部５６が動作して、フラッシュＲＯＭ１６のＢＩＯＳ２０を実行する。
【００４１】
ＢＩＯＳ２０の実行中にあっては、所定のタイミングで第２プログラム領域５２に対するワンタイム書替えプログラム６０の存在の有無が検査され、ワンタイム書替えプログラム６０の存在が認識された場合には、ワンタイム書替えプログラム６０を実行することでＣＭＯＳ―ＲＡＭ１８上に記憶しているＢＩＯＳ設定情報２４の特定の項目につき書き替えることができる。
【００４２】
一方、図４に示すように、ＢＩＯＳ実行環境６２に設けたフラッシュＲＯＭ１６にはＢＩＯＳ２０に加えて設定情報を設定するためのユーティリティ５８が格納されている。ユーティリティ５８は、ＢＩＯＳ実行環境６２において起動することで、ＢＩＯＳセットアップメニュー画面をディスプレイ上に表示し、このディスプレイ上の表示を見ながらユーザがハードウェア関連、チップ関連、ポート関連、さらには電力関連というようにして分類された設定情報について任意に設定を変更することが可能である。しかし、ユーティリティ５８を使用したＢＩＯＳ設定情報の設定変更については、ＣＰＵ及び周辺環境についての十分な基礎知識を十分もっていることが要求され、通常のユーザでは対応が困難であることから、本発明にあってはＯＳ実行環境６４で動作するＢＩＯＳアップデートツール６６を利用したワンタイム書替えプログラムの実行により、ＢＩＯＳ設定情報の書替えを行うことでユーザの負担の低減とともにＢＩＯＳ設定情報の書替えに使用する設定情報書替えツールの開発を不要にしている。
【００４３】
図５は本発明のマザーボード１０のフラッシュＲＯＭ１６に初期的に記憶されたＢＩＯＳ２０のプログラム構成の説明図である。図５において、フラッシュＲＯＭ１６は第１プログラム領域５０と第２プログラム領域５２に分けられており、第１プログラム領域５０にＢＩＯＳ２０を記憶し、第２プログラム領域５２には空き領域としている。
【００４４】
第１プログラム領域５０に記憶されたＢＩＯＳ２０はデバイス診断部７２、デバイス初期化部７６、起動ドライブ決定部７８及びブートストラップレコードメインメモリロード処理部８０で構成されている。
【００４５】
これに加えて本発明にあっては例えばデバイス診断部７２とデバイス初期化部７６の間にワンタイム書替えプログラム検査部７４を新たに設けている。これらデバイス診断部７２、ワンタイム書替えプログラム検査部７４、デバイス初期化部７６、起動ドライブ決定部７８及びブートストラップレコードメインメモリロード処理部８０は具体的には命令コード列が記憶されている。
【００４６】
図６は、図４に示したダウンロードしたＢＩＯＳアップデートファイルをＢＩＯＳアップデートツール６６でアップデートしてワンタイム書替えプログラム６０をフラッシュＲＯＭ１６に書き込んだＢＩＯＳのプログラム構成の説明図である。
【００４７】
フラッシュＲＯＭ１６の第１プログラム領域５０は初期的に記憶された図３のＢＩＯＳ２０と同じであるが、第２プログラム領域５２には、ＢＩＯＳアップデートに伴いワンタイム書替えプログラム６０が記憶されている。
【００４８】
このため図６のＢＩＯＳ２０をコンピュータの電源投入により実行すると、デバイス診断部７２の処理を実行した後、ワンタイム書替えプログラム検査部７４が動作して第２プログラム領域５２にワンタイム書替えプログラム６０が存在するか否かチェックし、存在している場合にはワンタイム書替えプログラム６０を実行し、ワンタイム書替えプログラム６０に記述している特定のＢＩＯＳ設定情報の書き替えを行う。
【００４９】
そしてワンタイム書替えプログラム６０による設定情報の書替えが済んだ後、デバイス初期化部７６を用いたデバイスの初期化処理が行われ、続いて起動ドライブ決定部７８により起動ドライブが決定された後、決定した起動ドライブからブートストラップレコードメインメモリロード処理部８０がマスタブートレコードのメインメモリにコピーし、ＣＰＵの処理をＢＩＯＳ２０からメインメモリに引き渡してブート処理におけるＯＳの起動に入る。
【００５０】
このＢＩＯＳ２０の実行に伴うワンタイム書替えプログラム６０の実行により正常にＢＩＯＳ設定情報の書替えが終了すると、その時点でワンタイム書替えプログラム６０は第２プログラム領域５２から消去される。したがってワンタイム書替えプログラム６０により一度ＢＩＯＳ設定情報の書替えが終了すると、その後のコンピュータの電源投入に伴うＢＩＯＳ２０の実行の際にすでにワンタイム書替えプログラム６０は存在していないことから、改めて設定情報の書替えが行われることはない。
【００５１】
一方、何らかの原因によりワンタイム書替えプログラム６０によるＢＩＯＳ設定情報が正常終了しなかった場合には、ワンタイム書替えプログラムは消去されずにフラッシュＲＯＭ１６上に常駐することとなり、その後のコンピュータの電源投入に伴うＢＩＯＳの実行時に再度ワンタイム書替えプログラム６０が実行され、設定情報が正常に書替えられるまでワンタイム書替えプログラム６０は常駐することになる。
【００５２】
図７は本発明によるワンタイム書替えプログラムを含むＢＩＯＳ開発環境のブロック図である。図７において、ＢＩＯＳ開発環境８２にはＢＩＯＳソースプログラム作成部８４、コンパイラ８８、リンカー９２が設けられている。ＢＩＯＳソースプログラム作成部８４は、所定のプログラム言語、例えばアセンブラ言語によりＢＩＯＳソースプログラムを記述しＢＩＯＳソースプログラムファイル８６に格納する。
【００５３】
最初はＢＩＯＳのみの作成であるが、その後、ユーザ段階でＢＩＯＳ設定情報の書替えを必要とした場合には、ＢＩＯＳソースプログラム作成部８４においてＢＩＯＳ設定情報を書き替えるためのワンタイム書替えプログラムを作成し、それまでに作成したＢＩＯＳソースプログラムに付加する。
【００５４】
コンパイラ８８はＢＩＯＳソースプログラムファイル８６をオブジェクト形式のプログラムに変更し、オブジェクトプログラムファイル９０に格納する。このときＢＩＯＳソースプログラムにワンタイム書替えプログラムが付加されているとまったく同じ環境でコンパイラ８８が動作してオブジェクトプログラムファイル９０を生成する。
【００５５】
リンカー９２はオブジェクトプログラムファイル９０を対象に実行可能なＢＩＯＳプログラムを生成し、実行形式ＢＩＯＳプログラムファイル９４に格納する。このリンカー９２による実行形式ＢＩＯＳプログラムファイルの作成段階でＢＩＯＳ設定情報が生成され、ＢＩＯＳ設定情報データベース９６に格納される。
【００５６】
実行形式ＢＩＯＳプログラムファイル９４に作成されたＢＩＯＳプログラムは、マザーボードのフラッシュＲＯＭ１６に記憶され、ＢＩＯＳ設定情報データベース９６のＢＩＯＳ設定情報はＣＭＯＳ−ＲＡＭ１８に記憶される。
【００５７】
一方、リンカー９２でワンタイム書替えプログラムを付加したＢＩＯＳオブジェクトプログラムファイルを実行形式に変換した場合には、ＢＩＯＳ設定情報は最初の作成時と同じものである。このため、ワンタイム書替えプログラムを付加した場合は、実行形式ＢＩＯＳプログラムのみをネットワーク上に配置し、ユーザからのアクセスに対しワンタイム書替えプログラムを付加した実行形式のＢＩＯＳプログラムを、図４に示したようにＢＩＯＳアップデートファイル６８としてダウンロードし、ＢＩＯＳアップデートツール６６の実行によりフラッシュＲＯＭ１６のＢＩＯＳ２０を更新し、そこにワンタイム書替えプログラム６０を書き込むことになる。
【００５８】
図８は図７のＢＩＯＳ開発環境８２で作成されるオリジナルと更新用のＢＩＯＳソースプログラムの説明図である。図８（Ａ）はオリジナルのＢＩＯＳソースプログラム９８であり、図５のＢＩＯＳ２０のように、ワンタイム書替えプログラム検査部７４に対応してワンタイム書替えプログラム検査命令１０４がある。
【００５９】
続いて図５のデバイス初期化部７６に対応した命令コード１０６として、例えば「チップＸの設定を設定項目１とする書込命令」が格納されており、この命令コード１０４に対応してＣＭＯＳ−ＲＡＭ１８の設定項目１で指定される格納位置に「ＢＩＯＳ設定情報Ａ」が記憶されている。初期段階ではワンタイムソース領域１０２は空き領域となっている。
【００６０】
図８（Ｂ）は更新用のＢＩＯＳソースプログラム１０８であり、ＢＩＯＳソース領域１００についてはオリジナルと同じであるが、ワンタイムソース領域１０２についてはワンタイム書替えプログラム６０が付加されており、ワンタイム書替えプログラム６０はヘッダ１１０と命令コード１１２で構成されている。
【００６１】
命令コード１１２は例えば「設定項目１のＢＩＯＳ設定情報をＢとする書き込み命令」である。このためＢＩＯＳの実行に伴ってワンタイム書替えプログラム６０を実行すると、命令コード１１２によりＣＭＯＳ−ＲＡＭ１８の設定項目１で指定される位置に格納している「ＢＩＯＳ設定情報Ａ」が「ＢＩＯＳ設定情報Ｂ」に書き替えられることになる。
【００６２】
このため命令コード１０６の実行で、チップＸの設定はそれまでの「Ａ」から「Ｂ」に変更されることになる。
【００６３】
このようなオリジナルと更新用のＢＩＯＳソースプログラムを比較して明らかなように、ＢＩＯＳ設定情報を書替えるためのソースプログラム作成は、空き領域となっているワンタイムソース領域１０２に、書替えを行いたいＢＩＯＳ設定情報の命令コードを含むワンタイム書替えプログラム６０のソース文を記述するだけでよく、図７のＢＩＯＳ開発環境が同じである限り、設定情報を記憶しているＣＭＯＳ−ＲＡＭ１８のどの位置に、どんなデータ形式で、どのような項目が入れてあるか、何バイトか、変換されたデータが入っているのか、ビット０を有効と扱っているか、ビット１を有効と扱っているか等の情報を把握する必要がなく、開発期間を大幅に短縮して作業負担を低減できる。
【００６４】
図９は図８（Ｂ）のワンタイム書替えプログラム６０のヘッダ１１０のフォーマット構成の説明図である。
【００６５】
図９において、ワンタイム書替えプログラム６０のヘッダ１１０で示す位置にサイズで示すバイト数の領域を確保しており、ヘッダ１１０は１６進表示したアドレスのオフセット００００ｈ，００４ｈ，０００８ｈ，０００Ａｈ，００Ｃｈの領域に分けられ、先頭側からワンタイム書替えプログラム６０が有効であることを示すシグニチャー１１４、プログラムサイズ１１６、チェックサム補正フィールド１１８、フラグ１２０、ワンタイム書替えプログラムのエントリ１２２を設けている。
【００６６】
ここでシグニチャー１１４の値としては例えば「ＯＴＰＧ」が格納されており、この値が得られることでワンタイム書替えプログラム６０が有効であることを認識する。チェックサム補正フィールド１１８には、ヘッダ１１０を含めたプログラム全体のサム値が「０」となるように補正値が格納されており、チェックサム補正フィールド１１８の補正値を使用した全体のチェックサムが「０」となることでプログラム自体の正当性を認識する。
【００６７】
ワンタイム書替えプログラム６０をフラッシュＲＯＭ１６に書き込んだ後のコンピュータの電源再投入に伴うＢＩＯＳ実行時の処理は、図６のＢＩＯＳ２０におけるワンタイム書替えプログラム検査部７４のコード命令により第２プログラム領域５２に格納されているワンタイム書替えプログラムを参照し、図９のヘッダ１１０のシグニチャー１１４が「ＯＴＰＧ」であること、ワンタイム書替えプログラム全体のサム値が０になることを確認し、ワンタイム書替えプログラム６０の存在を認識した場合、図９のヘッダ１１０から取得したワンタイム書替えプログラムのエントリー１２２をコールすることで、それ以降のワンタイム書替えプログラムの実体（命令コード列）１２４を実行し、ＣＭＯＳ−ＲＡＭ１８の該当するＢＩＯＳ設定情報を書きかえることになる。
【００６８】
図１０はＢＩＯＳ設定情報を保管するＣＭＯＳ−ＲＡＭ１８の構成であり、１６進表示されたオフセットで示すアドレスにより１バイトの格納領域を複数確保している。
【００６９】
図１１はＣＭＯＳ−ＲＡＭ１８のマップ構成と入出力アクセスに使用するレジスタ構成の説明図である。図１１において、ＣＭＯＳ−ＲＡＭ１８はＩ／ＯコントローラによるＩ／Ｏ空間１２６を介してアクセスされ、Ｉ／ＯコントローラはＣＭＯＳ−ＲＡＭ１８の位置を指定するインデックスレジスタ１２８をＩ／Ｏ空間１２６のアドレス「００７０ｈ」に配置し、データの読み取りや書き込みを行うためのデータレジスタ１３０をＩ／Ｏ空間１２６のアドレス「００７１ｈ」に配置している。
【００７０】
ここでＣＭＯＳ−ＲＡＭ１８上の入出力処理を説明すると次のようになる。例えばＣＭＯＳ−ＲＡＭ１８のアドレス「００３０ｈ」にデータ「００５５ｈ」を書き込む場合にはアッセンブラソース文で、
ＯＵＴ  ７０ｈ，３０ｈ
ＯＵＴ  ７１ｈ，５５ｈ
とすればよい。
【００７１】
このアッセンブラソース文は、Ｉ／Ｏ空間１２６のアドレス７０ｈのインデックスレジスタ１２８にオフセット３０ｈを入れてＣＭＯＳ−ＲＡＭ１８上のオフセットを指定し、Ｉ／Ｏ空間１２６のアドレス７１ｈのデータレジスタ１３０に書き込むデータ５５ｈを入れてＣＭＯＳ−ＲＡＭ１８のオフセット３０ｈにデータ５５ｈを書き込む。
【００７２】
次にＣＭＯＳ−ＲＡＭ１８にデータを書込む入出力処理を説明する。この入出力処理は、ＢＩＯＳ２０がＣＭＯＳ−ＲＡＭ１８にアクセスするために準備している処理で、ワンタイム書替えプログラム６０でＣＭＯＳ−ＲＡＭ１８上のＢＩＯＳ設定情報を書替える処理にも用いる。
【００７３】
図１２はデータを書込むためのＣＭＯＳ−ＲＡＭアクセスルーチン１３６のアッセンブラソース文である。１行目はコマンド定義であり、外部からのデータ書込みである。２行目、３行目がエントリであり、４行目はｃｍｏｓＷｒｉｔｅ処理の戻り値であるが、ここでは使用しないので「Ｎｏｎｅ」としている。５〜６行目はアクセスルーチンの説明であり、「ＤＸのＣＭＯＳ  Ｌｏｃａｔｉｏｎに基づき書込み先のＣＭＯＳ位置を決定し、データを書き込む」としている。
【００７４】
図１３はＣＭＯＳ−ＲＡＭ記憶位置の定義１３８であり「Ｉｎｄｅｘ＝０，ｂｉｔ＝０」を「ＣＭＯＳ−ｌｏｃａｔｉｏｎ＝０」とした場合のＣＭＯＳ−ＲＡＭ１８上の位置は図１３の定義内容で計算できる。ここで位置はバイト単位であるためインデックスを１バイトとしている。
【００７５】
図１４はアッセンブラソース文上でＣＭＯＳ−ＲＡＭ１８のデータ格納位置を指定する際に使用されるサンプルコードを定義したコード表１４０てある。例えばアッセンブラソース文でコード「ＳＥＴＵＰ＿ＤＡＴＡ＿１」をデータ書込み先として指定すると、コード表１４０からＣＭＯＳ−ＲＡＭ１８上の格納位置として「（インデックス０＊８）」、即ち、オフセット００ｈの１バイトが指定される。なお、ＥＱＵは擬似命令であり、等号を表す。
【００７６】
図１５はＣＭＯＳ−ＲＡＭ１８にデータを書込むためのＣＭＯＳ−ＲＡＭ書替え用アッセンブラソース文１４２の例である。このソース文は、ｄｘレジスタの「ＳＥＴＵＰ＿ＤＡＴＡ＿３」に基づき図１４のコード表から書き込み先のＣＭＯＳ−ＲＡＭ１８の書込み位置を決定し、そこにａｘレジスタのデータ「１２３４ｈ」を書き込む。勿論、このアッセンブラソース文はコンパイラにより機械語の命令コードに変換され、リンカー処理を経て実行形式のプログラムとなる。
【００７７】
図１６は本発明によるＢＩＯＳ設定情報書替えのためのＢＩＯＳアップデート処理のフローチャートであり、図４を参照して説明すると次のようになる。
【００７８】
図１６において、ＢＩＯＳアップデート処理は、ステップＳ１でコンピュータのＯＳ実行環境６４にアプリケーションとしてＢＩＯＳアップデートツール６６をインストールして実行して、ステップＳ２で例えばネットワークからのダウンロードによりＢＩＯＳ２０にワンタイム書替えプログラム６０−１を付加したＢＩＯＳアップデートファイル６８を取得し、このＢＩＯＳアップデートファイル６８を指定してアップデートを行う。このアップデートによりステップＳ３でＢＩＯＳ実行環境６２に設けているフラッシュＲＯＭ１６におけるワンタイム書替えプログラム６０の書き込み処理が行われる。
【００７９】
続いてステップＳ４でコンピュータの再起動処理を行うと、ステップＳ５でフラッシュＲＯＭ１６のＢＩＯＳ２０の命令コード列をＣＰＵ１２で実行することでＢＩＯＳ初期化処理を実行する。この初期化処理の実行中にステップＳ６でワンタイム書替えプログラムの存在の有無がチェックされ、存在していることが認識されるとステップＳ７に進み、ワンタイム書替えプログラムを実行し、ＣＭＯＳ−ＲＡＭ１８の設定情報を変更する。
【００８０】
続いてステップＳ８でワンタイム書替えプログラムが正常終了か否かチェックし、正常終了であればステップＳ９でワンタイム書替えプログラム６０をフラッシュＲＯＭ１６から消去する。そしてステップＳ１０でＢＩＯＳ初期化処理を再開し、残りの処理を行い、ステップＳ１１で起動媒体（通常はハードディスクドライブ）のマスタブートレコードをメインメモリにコピーして処理をＯＳに引き渡す。
【００８１】
一方、ステップＳ８でワンタイム書替えプログラム６０の正常終了が認識されなかった場合にはステップＳ１２に進み、書替えエラーを表示した後、ステップＳ１３でＢＩＯＳ初期化処理を停止する。
【００８２】
この場合にはフラッシュＲＯＭ１６のワンタイム書替えプログラム６０は消去されず、常駐することとなる。したがってワンタイム書替えプログラムによるＢＩＯＳ設定情報の書替えラーを認識したユーザは、コンピュータの再起動することでステップＳ５からのＢＩＯＳ初期化処理を実行し、ワンタイム書替えプログラムを正常終了させて消去させる。
【００８３】
ここで図１６のステップＳ６におけるワンタイム書替えプログラムの存在を確認するための確認処理は次の手順で行う。
（１）図９に示したように、ワンタイム書替えプログラム６０のヘッダ１１０におけるシグニチャー１１４を検査して、例えばシグニチャーとして「ＯＴＧＰ」が得られれば有効と判断する。
（２）続いて、ヘッダ１１０を含むプログラム全体のチェックサムを補正フィールド１１８の値を含めて検査し、チェックサム値が例えば予め設定した正常値「０」であった場合にはチェックサムは正当と判断し、ステップＳ６からステップＳ７に進んでワンタイム書替えプログラムを実行する。
（３）シグニチャーが無効であったり、チェックサムが正当でなかった場合には、ワンタイム書替えプログラムは無いと判断され、ステップＳ６からステップＳ１０に進む処理が行われる。
【００８４】
図１７はＢＩＯＳとその設定情報を同じフラッシュＲＯＭに記憶した本発明によるコンピュータの他の実施形態のブロック図である。図１７において、マザーボード１０に設けられたＣＰＵ１２のバス１４に対しては、この実施形態にあってはフラッシュＲＯＭ１６が設けられ、ここにＢＩＯＳ２０をＢＩＯＳ設定情報２４の両方を記憶している。このため図２の実施形態に示したＢＩＯＳ設定情報２４を記憶する電池２２によりバックアップされたＣＭＯＳ−ＲＡＭ１８は不要となる。
【００８５】
フラッシュＲＯＭ１６に格納されたＢＩＯＳ２０には、ワンタイム書替えプログラムを付加したＢＩＯＳアップデートファイルを使用したＯＳ上のＢＩＯＳアップデートツールによる更新処理の実行でワンタイム書替えプログラム６０が付加され、この段階でコンピュータを再起動することでワンタイム書替えプログラムがＢＩＯＳの実行に伴ってワンタイム書替えプログラムが実行されてＢＩＯＳ設定情報２４が書き替えられ、書替えが正常終了するとＢＩＯＳ２０に付加しているワンタイム書替えプログラムは消去されることになる。すなわち図１７の実施形態にあっては同じフラッシュＲＯＭ上にＢＩＯＳ２０とＢＩＯＳ設定情報２４を記憶した以外は図２の実施形態と構成機能動作は同じになる。
【００８６】
また本発明はコンピュータのＢＩＯＳ起動処理に伴ってＢＩＯＳ設定情報を書替えるプログラムを提供するものであり、このプログラムは図１６のフローチャートにおけるステップＳ４〜Ｓ１１でフラッシュＲＯＭにワンタイム書替えプログラム６０を付加したＢＩＯＳ２０をアップデートした後の再起動で実行される処理内容となる。
【００８７】
なお、本発明はその目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【００８８】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
（付記）
（付記１）
プログラムと、
前記プログラムの動作を設定するプログラム設定情報が格納される設定情報格納領域を格納する不揮発性メモリと、
前記プログラム設定情報を書き替え、前記プログラムの一部として実行されるワンタイム書替えプログラムを前記不揮発性メモリに書込むプログラム更新部と、
前記プログラムの実行中に、前記不揮発性メモリに前記ワンタイム書替えプログラムが格納されているか否か検査し、格納されている場合に前記ワンタイム書替えプログラムを実行して前記不揮発性メモリのプログラム設定情報を書き替えるプログラム実行部と、
を備えたことを特徴とする情報処理装置。（１）
【００８９】
（付記２）
付記１記載の情報処理装置に於いて、
前記ワンタイム書替えプログラムは、前記ワンタイム書替えプログラムの有効性を示すシグニチャー、前記ワンタイム書替えプログラムの正当性を示すチェックサム、前記ワンタイム書替えプログラムのプログラムエントリ、及びプログラム実体を有し、
前記プログラム実行部は、シグニチャーが有効で且つチェックサムの検査で正当と判断した場合に、前記ワンタイム書替えプログラムを実行することを特徴とする情報処理装置。（２）
【００９０】
（付記３）
付記２記載の情報処理装置に於いて、前記ワンタイム書替えプログラムは、前記プログラム設定情報の設定項目、格納位置を指定すると共にデータを記述した１又は複数の書替えコードを含むことを特徴とする情報処理装置。（３）
【００９１】
（付記４）
付記１記載の情報処理装置に於いて、前記プログラム実行部は、前記プログラム設定情報の書替えが正常終了した場合に、ワンタイム書替えプログラムを消去することを特徴とする情報処理装置。（４）
【００９２】
（付記５）
付記１記載の情報処理装置に於いて、前記プログラム実行部は、前記プログラム設定情報の書替えが正常終了していない場合には、ワンタイム書替えプログラムを正常終了するまで格納することを特徴とする情報処理装置。（５）
【００９３】
（付記６）
付記１記載の情報処理装置に於いて、前記プログラム実行部は、前記プログラム設定情報の書替えが正常終了していない場合には、エラー表示することを特徴とする情報処理装置。（６）
【００９４】
（付記７）
付記１記載の情報処理装置に於いて、
前記プログラム実行部は、前記プログラム設定情報の書替えが正常終了していない場合には、前記プログラムの実行を停止することを特徴とする情報処理装置。（７）
【００９５】
（付記８）
付記１記載の情報処理装置に於いて、前記プログラムと前記ワンタイム書替えプログラムを格納する前記不揮発性メモリはフラッシュＲＯＭであり、設定情報格納領域を格納する前記不揮発性メモリは電池でバックアップされたＣＭＯＳ−ＲＡＭであることを特徴とする情報処理装置。
【００９６】
（付記９）
付記１記載の情報処理装置に於いて、前記不揮発性メモリはフラッシュＲＯＭであることを特徴とする情報処理装置。
【００９７】
（付記１０）
付記１記載の情報処理装置に於いて、前記プログラムはＢＩＯＳであることを特徴とする情報処理装置。
【００９８】
（付記１１）
プログラムの動作を設定するプログラム設定情報を書き替え、前記プログラムの一部として実行されるワンタイム書替えプログラムを前記不揮発性メモリに書込むプログラム更新ステップと、
前記プログラムの実行中に、不揮発性メモリに格納された前記ワンタイム書替えプログラムが格納されているか否か検査し、格納されている場合に前記ワンタイム書替えプログラムを実行して前記プログラム設定情報を書替えるプログラム実行ステップと、
を備えたことを特徴とする情報処理装置の処理方法。（８）
【００９９】
（付記１２）
付記１１記載の情報処理装置の処理方法に於いて、
前記ワンタイム書替えプログラムは、前記ワンタイム切替えプログラムの有効性を示すシグニチャー、前記ワンタイム切替えプログラムの正当性を示すチェックサム、前記ワンタイム切替えプログラムのプログラムエントリ、及びプログラム実体を有し、
前記プログラム実行ステップは、シグニチャーが有効で且つチェックサムの検査で正当と判断した場合に、前記ワンタイム書替えプログラムを実行することを特徴とする情報処理装置の処理方法。
【０１００】
（付記１３）
付記１２記載の情報処理装置の処理方法に於いて、前記ワンタイム書替えプログラムは、前記プログラム設定情報の設定項目、格納位置を指定すると共にデータを記述した１又は複数の書替えコードを配置したことを特徴とする情報処理装置の処理方法。
【０１０１】
（付記１４）
付記１１記載の情報処理装置の処理方法に於いて、前記プログラム実行ステップは、前記プログラム設定情報の書替えが正常終了した場合に、ワンタイム書替えプログラムを消去することを特徴とする情報処理装置の処理方法。（９）
【０１０２】
（付記１５）
付記１１記載の情報処理装置の処理方法に於いて、前記プログラム実行ステップは、前記プログラム設定情報の書替えが正常終了していない場合には、前記不揮発性メモリにワンタイム書替えプログラムを正常終了するまで格納することを特徴とする情報処理装置の処理方法。
【０１０３】
（付記１６）
付記１１記載の情報処理装置の処理方法に於いて、前記プログラム実行ステップは、前記プログラム設定情報の書替えが正常終了していない場合には、エラー表示することを特徴とする情報処理装置の処理方法。
【０１０４】
（付記１７）
付記１１記載の情報処理装置の処理方法に於いて、前記プログラム実行ステップは、前記プログラム設定情報の書替えが正常終了していない場合には、前記プログラムの実行を停止することを特徴とする情報処理装置の処理方法。
【０１０５】
（付記１８）
付記１１記載の情報処理装置の処理方法に於いて、前記プログラムと前記ワンタイム書替えプログラムを格納する前記不揮発性メモリはフラッシュＲＯＭであり、設定情報格納領域を格納する前記不揮発性メモリは電池でバックアップされたＣＭＯＳ−ＲＡＭであることを特徴とする情報処理装置の処理方法。
【０１０６】
（付記１９）
付記１１記載の情報処理装置の処理方法に於いて、前記不揮発性メモリはフラッシュＲＯＭであることを特徴とする情報処理装置の処理方法。
【０１０７】
（付記２０）
コンピュータに、
不揮発性メモリに格納されたワンタイム書替えプログラムが格納されているか否か検査する検査ステップと、
ワンタイム書替えプログラムが格納されている場合に前記ワンタイム書替えプログラムを実行しての動作を設定するプログラム設定情報を書替える書替えステップと、
を実行させるためのプログラム。（１０）
【０１０８】
（付記２１）
付記２０記載のプログラムに於いて、前記切替えステップは、前記プログラム設定情報の書替えが正常終了した場合に、ワンタイム書替えプログラムを消去することを特徴とするプログラム。
【図面の簡単な説明】
【０１０９】
【図１】本発明の原理説明図
【図２】本発明が適用されるコンピュータのハードウェア環境のブロック図
【図３】図２のマザーボード上のＢＩＯＳメモリ配置の説明図
【図４】本発明によるＢＩＯＳのアップデート処理の説明図
【図５】フラッシュＲＯＭに初期的に記憶されたＢＩＯＳの構成説明図
【図６】アップデートによりワンタイム書替えプログラムを書き込んだＢＩＯＳの構成説明図
【図７】ＢＩＯＳ開発環境のブロック図
【図８】オリジナルと更新用のＢＩＯＳソースプログラムの説明図
【図９】本発明によるワンタイム書替えプログラムの構成説明図
【図１０】ＢＩＯＳ設定情報を保存するＣＭＯＳ−ＲＡＭの構成説明図
【図１１】ＣＭＯＳ−ＲＡＭのマップと入出力処理に使用するレジスタ構成の説明図
【図１２】外部のデータを書込むＣＭＯＳ−ＲＡＭアクセスルーチンの説明図
【図１３】ＣＭＯＳ−ＲＡＭ上の記憶位置の定義の説明図
【図１４】ＣＭＯＳ−ＲＡＭの格納位置の指定に使用するサンプルコードの説明図
【図１５】外部のデータを書込むＣＭＯＳ−ＲＡＭ書替え用アッセンブラソース文の説明図
【図１６】本発明による設定情報を書替えるためのＢＩＯＳアップデート処理のフローチャート
【図１７】ＢＩＯＳとその設定情報を同じフラッシュＲＯＭに記憶したコンピュータ装置のブロック図
【図１８】ＯＳ上のＢＩＯＳアップデートツールを使用して行う従来のＢＩＯＳアップデート処理の説明図
【符号の説明】
【０１１０】
１０：マザーボード
１２：ＣＰＵ
１４：バス
１６：フラッシュＲＯＭ
１８：ＣＭＯＳ−ＲＡＭ
２０：ＢＩＯＳ
２２：電池
２４：ＢＩＯＳ設定情報
２６：メインメモリ
２８：ハードディスドライバ
３０：ハードディスクドライブ
３２：プロッピーディスクドライバ
３４：フロッピーディスクドライブ
３６：ＣＤドライバ
３８：ＣＤドライブ
４０：デバイスインタフェース
４２：キーボード
４４：マウス
４６：ディスプレイ
４８：ネットワークアダプタ
５０：第１プログラム領域
５２：第２プログラム領域
５４：設定情報格納領域
５５：ＢＩＯＳ更新部
５６：ＢＩＯＳ実行部
５８：ユーティリティ
６０，６０−１：ワンタイム書替えプログラム
６２：ＢＩＯＳ実行環境
６４：ＯＳ実行環境
６６：ＢＩＯＳアップデートツール
６８：ＢＩＯＳアップデートファイル
７０：書替え処理
７２：デバイス診断部
７４：ワンタイム書替えプログラム検査部
７６：デバイス初期化部
７８：起動ドライブ決定部
８０：ブートストラップレコードロードメインメモリ処理部
８２：ＢＩＯＳ開発環境
８４：ＢＩＯＳソースプログラム作成部
８６：ＢＩＯＳソースプログラムファイル
８８：コンパイラ
９０：オブジェクトプログラムファイル
９２：リンカー
９４：実行形式ＢＩＯＳプログラムファイル
９６：ＢＩＯＳ設定情報データベース
９８：オリジナルＢＩＯＰＳソースプログラム
１００：ＢＩＯＳソース領域
１０２：ワンタイムソース領域
１０４：ワンタイム書き替えプログラム検査命令
１０６，１１２：命令コード
１０８：更新用ＢＩＯＳソースプログラム
１１０：ヘッダ
１１４：シグニチャー
１１６：プログラムサイズ
１１８：チェックサム補正フィールド
１２０：フラグ
１２２：ワンタイム書替えプログラムのエントリ
１２４：ワンタイム書替えプログラムの実体
１２８：インデックスレジスタ
１３０：データレジスタ
１３６：ＣＭＯＳ−ＲＡＭアクセスルーチン
１３８：ＣＭＯＳ−ＲＡＭ位置定義
１４０：コード表
１４２：ＣＭＯＳ−ＲＡＭ書替えソースプログラム
【図１】
2007149065.tif 000003
【図２】
2007149065.tif 000004
【図３】
2007149065.tif 000005
【図４】
2007149065.tif 000006
【図５】
2007149065.tif 000007
【図６】
2007149065.tif 000008
【図７】
2007149065.tif 000009
【図８】
2007149065.tif 000010
【図９】
2007149065.tif 000011
【図１０】
2007149065.tif 000012
【図１１】
2007149065.tif 000013
【図１２】
2007149065.tif 000014
【図１３】
2007149065.tif 000015
【図１４】
2007149065.tif 000016
【図１５】
2007149065.tif 000017
【図１６】
2007149065.tif 000018
【図１７】
2007149065.tif 000019
【図１８】
2007149065.tif 000020