(57)【要約】【課題】本発明は、障害発生によってプログラムが破損した場合のファームウェア復旧作業を自動化しかつ効率良く実行することを課題としている。【解決手段】本発明は，ファームウェア更新前にファームウェア更新データのレビジョンを記憶するフラグＡと、ファームウェア更新後にファームウェア更新データのレビジョンを記憶するフラグＢと、フラグＡ、Ｂが異なる場合にはプログラム破損と判定してファームウェアの再更新を行う復旧プログラムとを設け、ファームウェア更新中に不慮の電源切断等の障害発生等によるプログラム破損が発生した場合に、復旧プログラムによりファームウェアを復旧させることを特徴とする。【選択図】　図１
2004038716.tif 000002
【特許請求の範囲】
【請求項１】
システムを動作させるマザーボード、該マザーボードを制御する主制御プログラムとファームウェア更新データとを記憶する主記憶装置、ユーザがシステムを操作するためのメニュー画面を表示する操作パネル、および外部とのデータ送受信を制御する入出力制御部とプログラムに従い演算処理を行うＣＰＵとプログラムを格納したＲＯＭとファームウェア更新データ等を一時記憶するためのＲＡＭとを有する拡張カードとを備え、ユーザが前記操作パネルから前記ファームウェア更新のメニューを選択でき、ユーザが前記ファームウェア更新メニューを選択した場合に前記主記憶装置から拡張カードに前記ファームウェア更新データがダウンロードされＲＯＭ中のプログラムを書き換えるという前記ファームウェア更新方法に対して、前記ファームウェア更新前に該ファームウェア更新データのレビジョンを記憶するフラグＡと、前記ファームウェア更新後に該ファームウェア更新データのレビジョンを記憶するフラグＢと、前記フラグＡ、前記フラグＢが異なる場合にはプログラム破損と判定して前記ファームウェアの再更新を行う復旧プログラムとを設ことを特徴とする、障害発生時の自動復旧機能を備えたファームウェア更新方法。
【請求項２】
ユーザによって前記ファームウェア更新メニューが選択されても、前記フラグＡ、前記フラグＢおよび前記ファームウェア更新データのレビジョンが同一の場合には前記ファームウェア更新の必要なしと判定し更新を行わないことを特徴とする、請求項１記載の障害発生時の自動復旧機能を備えたファームウェア更新方法。
【請求項３】
プログラムが破損しているか否かに関わらず、前記フラグＡ、前記フラグＢと前記主記憶装置に記憶されている前記ファームウェア更新データのレビジョンとが異なる場合には、ユーザに前記ファームウェア更新メニューを選択させることなく自動的にファームウェア更新を実行することを特徴とする、請求項２記載の障害発生時の自動復旧機能を備えたファームウェア更新方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はファームウェア更新中に障害が発生した場合の復旧手段を備えた障害発生時の自動復旧機能を備えたファームウェア更新方法に関する。
【０００２】
【従来の技術】
図２は、従来のファームウェア構成例を示す概略図である。主記憶装置２は、マザーボード１を制御する主制御プログラム３やファームウェア更新データ４等を記憶している。拡張カード５は、マザーボード１との信号の送受信を制御する入出力制御部６と、プログラムに従って演算処理を行うＣＰＵ７と、プログラムを格納しておくＲＯＭ８と、プログラムにより必要とされる変数やマザーボード１から送信されたファームウェア更新データ４等を一時的に記憶するＲＡＭ９とを有する。
【０００３】
ＲＯＭ８には、電源立ち上げ時にＣＰＵ７のレジスタ設定など拡張カードが起動するための初期化処理を実行する起動プログラム１０と、ファームウェア更新作業を含めた拡張カード５の主な動作を制御する主動作プログラム１１とが記憶されている。主動作プログラム１１は、起動プログラム１０の終了後に実行される。ファームウェア更新データ４は、主動作プログラム１１を更新するためのデータである。操作パネル１２は、ユーザがシステムを操作するためのメニュー画面を表示する。
【０００４】
以下ファームウェア更新のフローについて説明する。まず、ユーザが操作パネル１２からファームウェア更新を実行すると、マザーボード１は主制御プログラム３に従い、ファームウェア更新データ４を拡張カード５へとダウンロードする。次に、ＣＰＵ７は主動作プログラム１１に従い、ダウンロードされたファームウェア更新データ４をＲＡＭ９に一時記憶させる。ファームウェア更新データ４のダウンロード終了後、ＣＰＵ７はＲＯＭ８中の主動作プログラム１１を一部または全て消去してから、ＲＡＭ９中のファームウェア更新データ４をＲＯＭ８に書き込む。
【０００５】
しかし、ＣＰＵ７がＲＯＭ８中の主動作プログラム１１に従って書き換えを実行していると、前述の通りＲＯＭ８中の主動作プログラム１１が一部または全て消去されてしまうため、ＣＰＵ７は主動作プログラム１１を読み取れなくなり停止してしまう。そのためＲＯＭ８中のプログラムの書き換えにおいては、ＣＰＵ７はＲＯＭ８中の主動作プログラム１１におけるファームウェア更新作業用のプログラムをＲＡＭ９へとコピーし、その後ＣＰＵ７はＲＡＭ９にコピーされたファームウェア更新作業用のプログラムに従い動作させるようにする。
【０００６】
ＲＯＭ８へのファームウェア更新データ４の書き込み終了後、ＣＰＵ７は前述のＲＡＭ９中のファームウェア更新作業用プログラムに従い、マザーボード１にファームウェア更新が終了したことを通達する。マザーボード１は主制御プログラム３に従い、操作パネル１２からユーザにファームウェア更新終了を通達する。その後、電源再立ち上げ等によってシステムを再起動すれば、更新された主動作プログラム１１が実行される。
【０００７】
【発明が解決しようとする課題】
しかしながら、ファームウェア更新中に電源切断等の不慮の障害が発生すると、前述の通りＲＯＭ８における主動作プログラム１１の消去中やファームウェア更新データ４の書き込み中であるため、主動作プログラム１１が不完全に書き換えられ破損してしまうこととなり、またＲＡＭ９においても、記憶していた情報が電源切断等により失われてしまうため、ファームウェアが機能しない状態になってしまう。ファームウェア復旧のためにはＲＯＭ８を交換する等の手作業が必要であった。
【０００８】
本発明は、前述の障害発生によってプログラムが破損した場合のファームウェア復旧作業を自動化し、かつ効率良く実行することを目的としている。
【０００９】
【課題を解決するための手段】
前述の目的は、ＲＯＭ８中に主動作プログラム１１のレビジョンを記憶するフラグＡ、Ｂを用意し、ＲＯＭ８中のデータの書き換えをフラグＡ、主動作プログラム１１、フラグＢの順にすると、ファームウェア更新が正常に終了した場合にはフラグＡ、Ｂとファームウェア更新データ４のレビジョンは同一となり、ファームウェア更新が正常に終了しなかった場合にはフラグＡ、Ｂとファームウェア更新データ４のレビジョンは少なくとも１つは異なる内容となることを利用して主動作プログラム１１の破損状況を判定し、破損が認められれば主記憶装置２からファームウェア更新データ４を再度ダウンロードしてプログラムを書き換える機能を持つ復旧プログラムを備えることにより達成される。
【００１０】
【発明の実施の形態】
以下実施例図面を参照して本発明を説明する。図１は、本発明の実施例におけるファームウェア構成を示す概略図である。マザーボード１、主記憶装置２、主制御プログラム３、ファームウェア更新データ４、拡張カード５、入出力制御部６、ＣＰＵ７、ＲＯＭ８、ＲＡＭ９、起動プログラム１０、主動作プログラム１１、操作パネル１２はそれぞれ図２と同様である。復旧プログラム１３は、起動プログラム１０の終了後に実行され、プログラムの破損状況をチェックし、プログラムが破損している場合には復旧作業を行う。フラグＡ、Ｂは、前述のプログラム破損の判定基準となるフラグである。主制御プログラム３には、ファームウェア更新データ４のレビジョンを読み取り、復旧プログラム１３の要請に応じてファームウェア更新データ４およびファームウェア更新データ４のレビジョンを送信する機能を付加する。
【００１１】
本実施例では、主動作プログラム１１の更新中に障害が発生したと仮定し、その場合の復旧作業について以下説明する。図２に、本発明の実施例におけるファームウェア復旧作業に対するフロー図を示す。障害が発生し電源を再立ち上げすると、起動プログラム１０の後、復旧プログラム１３による主動作プログラム１１の破損状況の判定が行われる。主動作プログラム１１に破損が認められた場合、すなわちフラグＡ、Ｂが異なる場合には、プログラム書き換え中に障害が発生したと判定される。この場合、復旧プログラム１３はマザーボード１にファームウェア更新データ４を送信するよう要請する。ファームウェア更新データ４のダウンロード後、フラグＡ、主動作プログラム１１、フラグＢの順に更新する。書き込みが正常であれば、フラグＡ、Ｂはファームウェア更新データ４のレビジョンと同一となり主動作プログラム１１が実行される。
【００１２】
主動作プログラム１１に破損が認められない場合、すなわちフラグＡ、Ｂが同一である場合には、復旧プログラム１３はマザーボード１にファームウェア更新データ４のレビジョンを送信するよう要請する。送信されたファームウェア更新データ４のレビジョンとフラグＡが同一であれば、フラグＢ更新終了後に障害が発生したことになるので、プログラム破損なしと判定され、復旧プログラム１３は終了し、主動作プログラム１１が開始される。送信されたファームウェア更新データ４のレビジョンとフラグＡが異なれば、フラグＡの更新前に障害が発生したことになるので、プログラムの破損はないが未更新であると判定される。よって復旧プログラム１３は、ファームウェアのレビジョンとファームウェア更新データ４のレビジョンとが異なることを操作パネル１２からユーザに通達し、未更新である主動作プログラム１１へジャンプする。ユーザはもう一度メニューからファームウェア更新を実行すれば良い。
【００１３】
これらの作業を実行しても復旧しない場合は、障害発生時に拡張カード５の何処かにハードウェア的な障害が発生した可能性があるので、任意の手段にてその旨をユーザに通達する等の処置をとる。
【００１４】
また、ユーザによりメニューからファームウェア更新が実行された時に、ファームウェア更新データ４のレビジョンと、フラグＡ、Ｂが既に同一であれば更新の必要がないので、主制御プログラム３または主動作プログラム１１にて更新をキャンセルするよう設計しても良い。ＲＯＭは書き込み回数に制限があるため、余計な書き込みを省くことでＲＯＭの寿命を延長が期待できる。
【００１５】
また、復旧プログラム１３は電源立ち上げの都度フラグＡ、Ｂを監視し、かつプログラムの破損がなければファームウェア更新データ４のレビジョンも電源立ち上げの都度監視している。よって、主記憶装置２に格納されているファームウェア更新データ４がアップグレードされ、ファームウェア更新データ４のレビジョンが上がった場合には、復旧プログラム１３は、前述のプログラムの破損はないが未更新である場合と同じ動作をする。このプログラムの破損はないが未更新である場合を、プログラム破損ありと判定させれば、前述のようにファームウェアは自動的に更新されるようになる。よって、ユーザがメニューからファームウェア更新作業を操作することなく、電源立ち上げ後に復旧プログラム１３で自動的にファームウェアを更新するよう設計することもできる。
【００１６】
【発明の効果】
以上説明したように本発明によれば、復旧プログラム、ファームウェア更新データのレビジョンおよびフラグＡ、Ｂによってプログラムの破損状況を判定することにより、ファームウェア復旧作業を自動化し、かつ効率良く実行することができる。
【００１７】
また、フラグＡ、Ｂにファームウェアのレビジョンを記憶させておくことにより、ファームウェア更新データのレビジョンと、フラグＡ、Ｂが同一であった場合、ファームウェア更新をキャンセルさせることができ、書き込み回数の制限があるＲＯＭに対して余計な書き込みを省けるため、ＲＯＭの寿命延長が期待できる。
【００１８】
さらには、復旧プログラムを利用して、主記憶装置に格納されているファームウェア更新データのレビジョンが上がった場合、ユーザがファームウェア更新メニューを選択することなく自動的にファームウェア更新を実行させることもできる。
【図面の簡単な説明】
【図１】本発明の実施例におけるファームウェア構成を示す概略図。
【図２】従来のファームウェア構成例を示す概略図。
【図３】本発明の実施例におけるファームウェア復旧作業のフロー図。
【符号の説明】
１はマザーボード、２は主記憶装置、３はマザーボード１の主制御プログラム、４はファームウェア更新データ、５は拡張カード、６は拡張カードの入出力制御部、７は拡張カードのＣＰＵ、８は拡張カードのＲＯＭ、９は拡張カードのＲＡＭ、１０は拡張カード５の起動プログラム、１１は拡張カード５の主動作プログラム、１２は拡張カード５の復旧プログラムである。
【図１】
2004038716.tif 000003
【図２】
2004038716.tif 000004
【図３】
2004038716.tif 000005