(57)【要約】【課題】ファームウェアをメモリに記憶させる。【解決手段】メモリは、ファームウェアを記憶する領域２０２と、ファームウェアが領域２０２に正常に記憶されていることを表わす判断データを記憶する領域２０４と、プログラムを記憶する領域２０６とを含む。この領域２０６には、ファームウェアを更新する第１のプログラム、メモリを含む情報処理装置を始動する第２のプログラム、および情報処理装置の外部からファームウェアを受信する第３のプログラムが記憶される。第２のプログラムの実行により情報処理装置が起動すると、第１のプログラムが実行される。このとき、判断データが領域２０４に記憶されていない場合には、第３のプログラムが実行され、外部からファームウェアを受信し、領域２０２にファームウェアを書き込み、領域２０４に判断データを書き込む。【選択図】　　　　図２
2004054421.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアを記憶するメモリであって、前記ファームウェアが情報処理装置において実行されると、前記情報処理装置は予め定められた処理を実行し、前記メモリは、
前記ファームウェアを記憶する第１の記憶領域と、
前記ファームウェアが前記第１の記憶領域に正常に記憶されていることを表わす判断データを記憶する第２の記憶領域とを含む、メモリ。
【請求項２】
前記メモリは、前記ファームウェアを前記第１の記憶領域に書き込む第１のプログラムを記憶する第３の記憶領域をさらに含み、
前記第１のプログラムが実行されると、前記ファームウェアを前記第１の領域に書き込む処理の状況に対応して、前記第２の記憶領域におけるデータの記憶状態が更新される、請求項１に記載のメモリ。
【請求項３】
前記第１のプログラムが実行されると、前記第１の記憶領域に前記ファームウェアを書き込む処理が開始する前に、前記第２の記憶領域に記憶されたデータは消去され、
前記第１の記憶領域に前記ファームウェアを書き込む処理が正常に完了すると、前記判断データは前記第２の記憶領域に書き込まれる、請求項２に記載のメモリ。
【請求項４】
前記情報処理装置は、利用者の指示に基づいて前記情報処理装置を起動する第２のプログラムを実行し、
前記メモリは、前記第２のプログラムを記憶する第４の記憶領域をさらに含み、
前記第２のプログラムは、前記判断データに基づいて、前記ファームウェアおよび第３のプログラムのいずれを実行するのかを判断し、
前記第３のプログラムは、前記ファームウェアの原本であるマスタファームウェアを前記メモリの外部から受信し、前記マスタファームウェアを前記ファームウェアとして前記第１の記憶領域に書き込む、請求項２または３に記載のメモリ。
【請求項５】
ファームウェアによる処理が実行される情報処理装置であって、前記情報処理装置は外部の記憶装置に接続され、前記記憶装置は前記ファームウェアの原本であるマスタファームウェアを記憶し、前記情報処理装置は、
前記ファームウェアと、前記ファームウェアが正常に記憶されていることを表わす判断データとを記憶するための記憶手段と、
前記判断データに基づいて、前記ファームウェアが正常に記憶されているか否かを判断するための判断手段と、
前記ファームウェアが正常に記憶されていると判断されると、前記ファームウェアを実行するための第１の実行手段と、
前記ファームウェアが異常に記憶されていると判断されると、前記記憶装置から前記マスタファームウェアを読み出すための読出手段と、
前記読み出したマスタファームウェアを前記ファームウェアとして前記記憶手段に書き込むプログラムを実行するための第２の実行手段とを含む、情報処理装置。
【請求項６】
前記記憶手段は、
前記ファームウェアを記憶する第１の記憶領域と、
前記判断データを記憶する第２の記憶領域とを含み、
前記第２の実行手段は、前記マスタファームウェアを前記第１の記憶領域に書き込む更新プログラムを実行するための手段を含み、
前記情報処理装置は、さらに、
前記更新プログラムの実行が開始されると、前記判断データを消去するための消去手段と、
前記更新プログラムの実行が正常に終了すると、前記ファームウェアが正常に記憶されていることを表わす値を判断データとして前記第２の記憶領域に書き込むための書込手段とを含む、請求項５に記載の情報処理装置。
【請求項７】
前記情報処理装置はネットワークを介して情報提供装置に接続され、前記情報提供装置は前記ファームウェアの原本であるマスタファームウェアを記憶し、前記情報処理装置は、
前記ネットワークに接続され、予め定められた条件を満足すると、前記情報提供装置から前記マスタファームウェアを受信するための受信手段と、
前記受信手段に接続され、前記マスタファームウェアを前記ファームウェアとして前記記憶手段に書き込むプログラムを実行するため第３の実行手段とをさらに含む、請求項５または６に記載の情報処理装置。
【請求項８】
前記受信手段は、前記ファームウェアが異常に記憶されていると判断されると、前記情報提供装置から前記マスタファームウェアを受信するための手段を含む、請求項７に記載の情報処理装置。
【請求項９】
前記情報提供装置は、予め定められた時間ごとに、２以上の情報処理装置のそれぞれに対応した個別のマスタファームウェアを前記２以上の情報処理装置のそれぞれに送信する装置であって、
前記受信手段は、前記予め定められた時間ごとに、前記個別のマスタファームウェアを前記情報提供装置から受信するための手段を含む、請求項７に記載の情報処理装置。
【請求項１０】
前記情報提供装置は、前記ネットワークを介して２以上の異なる情報処理装置に接続され、前記２以上の異なる情報処理装置のそれぞれに対応した個別のマスタファームウェアと、前記２以上の異なる情報処理装置のそれぞれに固有である装置データとを対応させて更新データとして記憶し、前記２以上の異なる情報処理装置のいずれかが送信した、前記個別のファームウェアのダウンロード要求に応答して、前記ダウンロード要求を送信した情報処理装置に前記更新データを送信し、前記情報処理装置は、
前記固有である装置データを取得するためのデータ取得手段と、
前記装置データと前記ダウンロード要求とを前記情報提供装置に送信するための送信手段と、
前記更新データの中から前記個別のファームウェアを取得するためのファームウェア取得手段とをさらに含む、請求項７に記載の情報処理装置。
【請求項１１】
ファームウェアを記憶する記憶方法であって、前記ファームウェアが情報処理装置において実行されると、前記情報処理装置は予め定められた処理を実行し、前記記憶方法は、
前記ファームウェアを記憶する第１の記憶ステップと、
前記ファームウェアが前記第１の記憶領域に正常に記憶されていることを表わす判断データを記憶する第２の記憶ステップとを含む、記憶方法。
【請求項１２】
ファームウェアによる処理を実行する情報処理方法であって、前記情報処理方法は外部の記憶装置に接続され、前記記憶装置は前記ファームウェアの原本であるマスタファームウェアを記憶し、前記情報処理方法は、
前記ファームウェアと、前記ファームウェアが正常に記憶されていることを表わす判断データとを記憶する記憶ステップと、
前記判断データに基づいて、前記ファームウェアが正常に記憶されているか否かを判断する判断ステップと、
前記ファームウェアが正常に記憶されていると判断されると、前記ファームウェアを実行する第１の実行ステップと、
前記ファームウェアが異常に記憶されていると判断されると、前記記憶装置から前記マスタファームウェアを読み出す読出ステップと、
前記読み出したマスタファームウェアを前記ファームウェアとして書き込むプログラムを実行する第２の実行ステップとを含む、情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はソフトウェアを記憶／更新する技術に関し、特に、ファームウェアを更新する技術に関する。
【０００２】
【従来の技術】
情報処理装置は、通常、それに組み込まれたソフトウェアにより、予め定められた処理を実行する。たとえば、ＰＣ（Ｐｅｒｓｏｎａｌ　Ｃｏｍｐｕｔｅｒ）には、ＢＩＯＳ（Ｂａｓｉｃ　Ｉｎｐｕｔ　Ｏｕｔｐｕｔ　Ｓｙｓｔｅｍ）と呼ばれるソフトウェアが含まれる。ユーザがＰＣを起動すると、そのＢＩＯＳが最初に実行され、ＰＣを所定の状態に設定する。その後、オペレーティングシステムの起動やアプリケーションプログラムの実行など、他のソフトウェアによる処理が可能となる。さらに、このＢＩＯＳを更新すると、ＰＣの機能を拡張することができる。
【０００３】
また、多くの一般ユーザに行き渡った携帯電話の場合、新たなソフトウェアを追加すると、そのソフトウェアによる機能を実現することができる。通常、携帯電話の各ユーザが、このソフトウェアをインストールすることになる。インストールが完了すると、ユーザは、新しい機能を利用することができる。
【０００４】
あるいは、現金自動預け払い機（Ａｕｔｏｍａｔｅｄ　Ｔｅｌｌｅｒ　Ｍａｃｈｉｎｅ、以下、ＡＴＭと表わす。）において、たとえば、ユーザが現金の引出しを求める場合には、キャッシュカードの挿入を検出する処理、そのカードの正当性を判断する処理、カードの使用者が入力した情報（暗証番号、金額など）を判断する処理、ＡＴＭとホスト機との間の通信処理、支払い金額を準備する処理、金額を払い出す処理、明細書を発行する処理などが実行される。ＡＴＭにこれらの一連の処理を実行させるため、その処理を実行するソフトウェアが予めＡＴＭに記憶されている。したがって、このソフトウェアを更新することにより、ＡＴＭが実行する処理を変更することができる。
【０００５】
一般に、これらのソフトウェアは、ファームウェアと呼ばれている。このファームウェアは、上記の例のように、情報処理装置に含まれる記憶装置（たとえば、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）など）に、予め記憶されている。したがって、ファームウェアの更新では、それらの記憶装置に新しいファームウェアを書き込むことになる。
【０００６】
ところで、このファームウェアを更新するとき、何らかの異常により、更新が正常に完了しない場合がある。新しいファームウェアを書き込んでいた情報処理装置が、たとえば停電により、途中で停止した場合である。このような場合、情報処理装置のファームウェアは完全な状態で記憶されていないため、再起動できないことがある。
【０００７】
そこで、その記憶装置を取り外し、再度、ファームウェアを書き込む処理が必要になる。たとえば、ファームウェアがＲＯＭに記憶されている場合、ＲＯＭライタなどを用いて、更新したいファームウェアを書き込むことになる。記憶装置を取り外すことができない場合、専用の冶具を用いる必要がある。このように、一度ファームウェアの更新が異常に終了すると、容易に復旧することができない。
【０００８】
このような課題を解決するために、たとえば、特開平９−３２５８８７号公報は、コンピュータのＢＩＯＳを書き換えるためのシステムを開示する。この公報が開示するＢＩＯＳ書換システムは、ＢＩＯＳの実行を前提とせずに起動可能なＢＩＯＳ書換プログラムを格納した書換プログラム記憶回路と、コンピュータのＢＩＯＳ記憶回路に格納されたＢＩＯＳを書き換えるＢＩＯＳ書換回路とを含む。
【０００９】
このシステムによると、ＢＩＯＳの更新が正常に終了しなかった場合、コンピュータの再起動を指示すると、ＢＩＯＳ書換プログラムが実行される。このプログラムが実行されると、ＢＩＯＳ書換回路により、ＢＩＯＳ記憶回路に新しいＢＩＯＳが書き込まれる。これにより、ＢＩＯＳが正常に更新されなかった場合でも、コンピュータを再起動すると、ＢＩＯＳが更新される。
【００１０】
また、特開平１１−３３８６９０号公報は、ファームウェア使用システムを開示する。この公報が開示するシステムは、ファームウェアを格納した第１の特定領域と、システム立ち上げプログラムおよびファームウェア書換プログラムを格納した第２の特定領域とを含むメモリと、ファームウェアを実行する回路と、ファームウェア書換プログラムを実行する回路とを含む。
【００１１】
このシステムによると、ファームウェアの更新が正常に終了しなかった場合、装置の再起動を指示すると、第２の特定領域に格納されたシステム立ち上げプログラムがこの装置を起動する。装置が起動すると、ファームウェア書換プログラムが実行され、ファームウェアの更新が行なわれる。これにより、ファームウェアが第１の特定領域に書き込まれる。
【００１２】
【発明が解決しようとする課題】
しかしながら、上記に開示されたシステムについては、以下のような問題点が考えられる。第１に、このシステムが適用される範囲が、たとえば、取り外し可能な記憶媒体を持つ装置に限定されるという場合が考えられる。第２に、ファームウェアの容量が大きい場合、コストが増加するという問題がある。第３に、メモリが機器から取り外されると、ファームウェアの記憶状態を把握することが困難になる場合がある。
【００１３】
本発明は上述の課題を解決するためになされたものであって、ファームウェアの記憶状態に対応させて、ファームウェアの更新と実行とが切り換えられ、さらには記憶状態を確認することができるメモリ、情報処理装置、記憶方法および情報処理方法を提供することである。
【００１４】
【課題を解決するための手段】
第１の発明に係るメモリは、ファームウェアを記憶する第１の記憶領域と、ファームウェアが第１の記憶領域に正常に記憶されていることを表わす判断データを記憶する第２の記憶領域とを含む。
【００１５】
第１の発明によると、メモリはファームウェア（たとえば、ＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）、ＢＩＯＳ（Ｂａｓｉｃ　Ｉｎｐｕｔ　Ｏｕｔｐｕｔ　Ｓｙｓｔｅｍ）、通信機器の制御プログラムなど）を記憶する。情報処理装置がファームウェアを実行すると、予め定められた処理が実行される。このメモリの第１の記憶領域は、このようなファームウェアを記憶する。第２の記憶領域は、ファームウェアが第１の記憶領域に正常に記憶されていることを表わす判断データを記憶する。したがって、第２の記憶領域に記憶された判断データを確認することにより、そのメモリはファームウェアを正常に記憶しているか否かを確認することができる。その結果、ファームウェアの記憶状態に対応させて、ファームウェアを更新することができるメモリを提供することができる。
【００１６】
第２の発明に係るメモリは、第１の発明の構成に加えて、ファームウェアを第１の記憶領域に書き込む第１のプログラムを記憶する第３の記憶領域をさらに含む。第１のプログラムが実行されると、ファームウェアを第１の領域に書き込む処理の状況に対応して、第２の記憶領域におけるデータの記憶状態が更新される。
【００１７】
第２の発明によると、第３の記憶領域は、ファームウェアを第１の記憶領域に書き込むための第１のプログラムを記憶する。その第１のプログラムが実行されると、ファームウェアが更新されるのに対応して、判断データの更新（たとえば、判断データの削除、再書き込み、など）が第２の記憶領域において行なわれる。したがって、判断データが第２の記憶領域に記憶されている場合には、ファームウェアは正常に書き込まれていると判断することができる。一方、判断データが第２の記憶領域に記憶されていない場合、あるいは、判断データとは異なるデータが第２の記憶領域に記憶されている場合には、ファームウェアは正常に書き込まれていないと判断することができる。このようにして、ファームウェアの記憶状態を確認することができ、その記憶状態に対応させて、メモリに記憶されたファームウェアを更新することができる。
【００１８】
第３の発明に係るメモリは、第２の発明の構成に加えて、第１のプログラムが実行されると、第１の記憶領域にファームウェアを書き込む処理が開始する前に、第２の記憶領域に記憶されたデータは消去されるものである。第１の記憶領域にファームウェアを書き込む処理が正常に完了すると、判断データは第２の記憶領域に書き込まれるものである。
【００１９】
第３の発明によると、第１のプログラムが実行されると、第１の記憶領域にファームウェアを書き込む処理を開始する前に、判断データは消去される。第１の記憶領域にファームウェアを書き込む処理が正常に完了すると、判断データが第２の記憶領域に書き込まれる。したがって、判断データが第２の記憶領域に記憶されている場合には、ファームウェアはメモリに正常に記憶されていると判断することができる。一方、判断データが書き込まれていない場合には、ファームウェアを第１の記憶領域に書き込む処理が途中で終了した、すなわち、ファームウェアは正常に記憶されていないと判断することができる。このようにして、ファームウェアの記憶状態を確認することができ、その記憶状態に対応させて、ファームウェアをメモリに更新することができる。
【００２０】
第４の発明に係るメモリは、第２または第３の発明の構成に加えて、メモリは、第２のプログラムを記憶する第４の記憶領域をさらに含む。第２のプログラムは、判断データに基づいて、ファームウェアおよび第３のプログラムのいずれを実行するのかを判断する。第３のプログラムは、ファームウェアの原本であるマスタファームウェアをメモリの外部から受信し、マスタファームウェアをファームウェアとして第１の記憶領域に書き込む。
【００２１】
第４の発明によると、情報処理装置は、利用者の指示（たとえば、電源スイッチのオンなど）に基づいて、情報処理装置を始動するための第２のプログラム（たとえば、開始プログラムなど）を実行する。第４の記憶領域は、第２のプログラムを記憶する。この第２のプログラムは、判断データに基づいて、ファームウェアおよび第３のプログラムのいずれを実行するのかを判断する。すなわち、判断データが第２の記憶領域に記憶されている場合には、第１の記憶領域に記憶されているファームウェアが実行される。ファームウェアが実行されると、情報処理装置は、予め定められた処理を継続する。一方、判断データが第２の記憶領域に記憶されていない場合には、第３のプログラムが実行される。この第３のプログラムは、メモリの外部から、ファームウェアの原本であるマスタファームウェアを受信し、そのマスタファームウェアをファームウェアとして第１の記憶領域に書き込み、情報処理装置を再び始動する。したがって、ファームウェアの記憶状態が異常であっても、メモリに記憶された第３のプログラムを実行することにより、ファームウェアが更新され、情報処理装置の処理を継続することができる。これにより、メモリは、第２の記憶領域に記憶した判断データに対応して、ファームウェアの実行およびファームウェアの更新を切り換えることができる。その結果、記憶状態に対応させて、ファームウェアの処理を切り換えることができるメモリを提供することができる。
【００２２】
第５の発明に係る情報処理装置は、ファームウェアと、ファームウェアが正常に記憶されていることを表わす判断データとを記憶するための記憶手段と、判断データに基づいて、ファームウェアが正常に記憶されているか否かを判断するための判断手段と、ファームウェアが正常に記憶されていると判断されると、ファームウェアを実行するための第１の実行手段と、ファームウェアが異常に記憶されていると判断されると、記憶装置からマスタファームウェアを読み出すための読出手段と、読み出したマスタファームウェアをファームウェアとして記憶手段に書き込むプログラムを実行するための第２の実行手段とを含む。
【００２３】
第５の発明によると、ファームウェアが情報処理装置の処理を実行する。この情報処理装置は、ファームウェアの原本であるマスタファームウェアを記憶する外部の記憶装置に接続される。この情報処理装置の記憶手段は、ファームウェアと、ファームウェアが正常に記憶されていることを表わす判断データとを記憶する。判断手段は、その判断データに基づいて、ファームウェアが正常に記憶されているか否かを判断する。判断データが記憶されている場合（すなわち、ファームウェアが正常に記憶されている場合）、第１の実行手段は、ファームウェアを実行する。判断データが記憶されていない場合（すなわち、ファームウェアが正常に記憶されていない場合）、読出手段は、外部の記憶装置からマスタファームウェアを読み出す。第２の実行手段は、読み出したマスタファームウェアをファームウェアとして記憶手段に書き込むプログラムを実行する。このようにして、判断データが正常に記憶されている場合には、そのファームウェアを実行し、判断データが記憶されていない場合には、外部から取得したファームウェアを使用してファームウェアを記憶手段に更新することができる。これにより、ファームウェアの記憶状態が異常であるために情報処理装置が作動しないということを防止することができる。その結果、ファームウェアの記憶状態に対応させて、ファームウェアの更新と実行とを切り換えることができる情報処理装置を提供することができる。
【００２４】
第６の発明に係る情報処理装置は、第５の発明の構成に加えて、記憶手段は、ファームウェアを記憶する第１の記憶領域と、判断データを記憶する第２の記憶領域とを含む。第２の実行手段は、マスタファームウェアを第１の記憶領域に書き込む更新プログラムを実行するための手段を含む。情報処理装置は、さらに、更新プログラムの実行が開始されると、判断データを消去するための消去手段と、更新プログラムの実行が正常に終了すると、ファームウェアが正常に記憶されていることを表わす値を判断データとして第２の記憶領域に書き込むための書込手段とを含む。
【００２５】
第６の発明によると、記憶手段の第１の記憶領域は、ファームウェアを記憶する。第２の記憶領域は、判断データを記憶する。第２の実行手段が更新プログラムを実行すると、マスタファームウェアが第１の記憶領域に書き込まれる。その更新プログラムの実行が開始されると、消去手段は、判断データを消去する。更新プログラムの実行が正常に終了したときには、書込手段は、ファームウェアが正常に記憶されていることを表わす値を、判断データとして第２の記憶領域に書き込む。したがって、ファームウェアの更新が正常に終了すると、第２の記憶領域には判断データが記憶されている。一方、ファームウェアの更新が異常に終了すると、第２の記憶領域はブランク（たとえば、「０ｘＦＦＦＦ」）のままである。これにより、第２の記憶領域に記憶されている値に基づいて、ファームウェアの記憶状態を検出することができる。その結果、情報処理装置が次回作動するときに、ファームウェアの記憶状態に対応させて予め定められた処理を実行することができる。
【００２６】
第７の発明に係る情報処理装置は、第５または第６の発明の構成に加えて、情報処理装置は、ネットワークに接続され、予め定められた条件を満足すると、情報提供装置からマスタファームウェアを受信するための受信手段と、受信手段に接続され、マスタファームウェアをファームウェアとして記憶手段に書き込むプログラムを実行するため第３の実行手段とをさらに含む。
【００２７】
第７の発明によると、情報処理装置は、ネットワークを介して情報提供装置に接続される。その情報提供装置は、ファームウェアの原本であるマスタファームウェアを記憶する。情報処理装置の受信手段は、予め定められた条件を満足すると（たとえば、予め定められた時間が経過すると、ファームウェアの記憶状態が異常であることが検出されると、あるいは、情報処理装置がマスタファームウェアのダウンロードの要求を送信すると等）、情報提供装置からマスタファームウェアを受信する。第３の実行手段が更新プログラムを実行すると、そのマスタファームウェアはファームウェアとして記憶手段に書き込まれる。これにより、情報処理装置がネットワークに接続されている場合、そのネットワークに接続された情報提供装置からファームウェアを受信して、情報処理装置のファームウェアを更新することができる。
【００２８】
第８の発明に係る情報処理装置は、第７の発明の構成に加えて、受信手段は、ファームウェアが異常に記憶されていると判断されると、情報提供装置からマスタファームウェアを受信するための手段を含む。
【００２９】
第８の発明によると、ファームウェアが異常に記憶されていると判断されると、受信手段は、情報提供装置からマスタファームウェアを受信する。第２の実行手段が更新プログラムを実行すると、マスタファームウェアはファームウェアとして記憶手段に書き込まれる。これにより、ファームウェアが正常に記憶されていない場合には、ネットワークに接続された情報処理装置のファームウェアを更新することができる。
【００３０】
第９の発明に係る情報処理装置は、第７の発明の構成に加えて、受信手段は、予め定められた時間ごとに、個別のマスタファームウェアを情報提供装置から受信するための手段を含む。
【００３１】
第９の発明によると、情報提供装置は、個別のマスタファームウェアを記憶する。この個別のマスタファームウェアは、ネットワークに接続された２以上の情報処理装置のそれぞれに対応したファームウェアである。情報提供装置は、予め定められた時間ごとに、それぞれの情報処理装置にその個別のマスタファームウェアを送信する。情報処理装置の受信手段は、予め定められた時間ごとに、情報提供装置から、その情報処理装置に対応したマスタファームウェアを受信する。第３の実行手段は、更新プログラムを実行して、そのマスタファームウェアをファームウェアとして記憶手段に書き込む。これにより、それぞれの情報処理装置は、予め定められた時間ごとに、ファームウェアを更新することができる。
【００３２】
第１０の発明に係る情報処理装置は、第７の発明の構成に加えて、固有である装置データを取得するためのデータ取得手段と、装置データとダウンロード要求とを情報提供装置に送信するための送信手段と、更新データの中から個別のファームウェアを取得するためのファームウェア取得手段とをさらに含む。
【００３３】
第１０の発明によると、情報提供装置は、ネットワークを介して２以上の異なる情報処理装置に接続される。これらの情報処理装置は、それぞれ異なるファームウェアを使用する。この情報提供装置は、そのような情報処理装置のそれぞれに対応した個別のマスタファームウェアと、情報処理装置のそれぞれに固有である装置データとを対応させて更新データとして記憶する。情報処理装置のデータ取得手段は、情報処理装置に固有である装置データを取得する。送信手段は、その装置データとファームウェアのダウンロード要求とを情報提供装置に送信する。情報提供装置が、２以上の情報処理装置のいずれかからファームウェアのダウンロード要求を受信すると、受信した装置データに対応するファームウェアを含む更新データを検索する。更新データが検索されると、情報提供装置は、そのダウンロード要求を送信した情報処理装置に更新データを送信する。情報処理装置のファームウェア取得手段は、受信した更新データの中からファームウェアを取得する。このようにして、情報処理装置の記憶手段におけるファームウェアの記憶状態が異常であるときには、情報処理装置は、そのファームウェアのダウンロード要求とその情報処理装置に固有な装置データとを情報提供装置に送信する。その後、情報処理装置に対応したファームウェアが、情報提供装置から情報処理装置に送信される。これにより、複数の情報処理装置およびそれらに固有なファームウェアを記憶した情報提供装置が接続されたネットワークを介して、それぞれの情報処理装置に対応したファームウェアを更新することができる。
【００３４】
第１１の発明に係る記憶方法は、ファームウェアを記憶する第１の記憶ステップと、ファームウェアが第１の記憶領域に正常に記憶されていることを表わす判断データを記憶する第２の記憶ステップとを含む。
【００３５】
第１１の発明によると、記憶方法はファームウェア（たとえば、ＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）、ＢＩＯＳ（Ｂａｓｉｃ　Ｉｎｐｕｔ　Ｏｕｔｐｕｔ　Ｓｙｓｔｅｍ）、通信機器の制御プログラムなど）を記憶する。情報処理装置がファームウェアを実行すると、予め定められた処理が実行される。この記憶方法の第１の記憶ステップは、このようなファームウェアを記憶する。第２の記憶ステップは、ファームウェアが第１の記憶方法により正常に記憶されていることを表わす判断データを記憶する。したがって、第２の記憶ステップにより記憶された判断データを確認すると、ファームウェアが正常に記憶されているか否かを確認することができる。その結果、ファームウェアの記憶状態に基づいて、ファームウェアを更新することができる記憶方法を提供することができる。
【００３６】
第１２の発明に係る情報処理方法は、ファームウェアと、ファームウェアが正常に記憶されていることを表わす判断データとを記憶する記憶ステップと、判断データに基づいて、ファームウェアが正常に記憶されているか否かを判断する判断ステップと、ファームウェアが正常に記憶されていると判断されると、ファームウェアを実行する第１の実行ステップと、ファームウェアが異常に記憶されていると判断されると、記憶装置からマスタファームウェアを読み出す読出ステップと、読み出したマスタファームウェアをファームウェアとして書き込むプログラムを実行する第２の実行ステップとを含む。
【００３７】
第１２の発明によると、ファームウェアが情報処理方法を実行する。この情報処理方法は、ファームウェアの原本であるマスタファームウェアを記憶する外部の記憶装置を使用する。この情報処理方法の記憶ステップは、ファームウェアと、ファームウェアが正常に記憶されていることを表わす判断データとを記憶する。判断ステップは、その判断データに基づいて、ファームウェアが正常に記憶されているか否かを判断する。判断データが記憶されている場合（すなわち、ファームウェアが正常に記憶されている場合）、第１の実行ステップは、ファームウェアを実行する。判断データが記憶されていない場合（すなわち、ファームウェアが正常に記憶されていない場合）、読出ステップは、外部の記憶装置からマスタファームウェアを読み出す。第２の実行ステップは、読み出したマスタファームウェアをファームウェアとして書き込むプログラムを実行する。このようにして、判断データが正常に記憶されている場合には、そのファームウェアを実行することができる。判断データが記憶されていない場合には、外部から取得したファームウェアを使用してファームウェアを更新することができる。これにより、ファームウェアの記憶状態が異常であるために情報処理方法が実行されないということを防止することができる。その結果、ファームウェアの記憶状態に対応させて、ファームウェアの更新と実行とを切り換えることができる情報処理方法を提供することができる。
【００３８】
【発明の実施の形態】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００３９】
＜第１の実施の形態＞
図１に、本発明の実施の形態に係る情報処理装置１００を含むネットワーク構成を示す。情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１０２と、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１０８と、通信ＩＦ（Ｉｎｔｅｒｆａｃｅ）１０６と、不揮発性メモリ２００とを含む。この情報処理装置１００は、通信ＩＦ１０６を介して、ファイルサーバ１１０に接続される。
【００４０】
ファイルサーバ１１０は、ＣＰＵ１１２と記憶装置１１４と通信ＩＦ１１６とを含む。記憶装置１１４は、情報処理装置１００で使用されるファームウェアの原本を記憶する。
【００４１】
情報処理装置１００のＣＰＵ１０２は、不揮発性メモリ２００に記憶されているファームウェアを実行する。ＣＰＵ１０２は、通信ＩＦ１０６を介して、ファイルサーバ１１０から受信した情報（たとえば、プログラム、データなど）をＲＡＭ１０８に一時的に保存する。ＣＰＵ１０２は、通信ＩＦ１０６を介して、情報（たとえば、プログラムのダウンロードの要求など）をファイルサーバ１１０に送信する。
【００４２】
図２に、本発明の実施の形態に係る不揮発性メモリ２００を示す。この不揮発性メモリ２００はフラッシュメモリを想定しているが、フラッシュメモリに限らず、不揮発性のメモリであって、電気的な消去および書換が可能なメモリであればよい。不揮発性メモリ２００は、第１の領域２０２と、第２の領域２０４と、第３の領域２０６とを含む。
【００４３】
図２において、第１の領域２０２には、ファームウェアが記憶される。この第１の領域２０２は、たとえば、アドレスが「０ｘＦＣ００２００２」から「０ｘＦＣＦＦＦＦＦＦ」までの領域である。なお、ファームウェアとは、機器を制御するソフトウェアである。このファームウェアが実行されると、予め定められた処理が行なわれる。
【００４４】
第２の領域２０４には、判断データが記憶される。この第２の領域２０４は、たとえば、アドレスが「０ｘＦＣ００２０００」から「０ｘＦＣ００２００２」までの領域である。この領域は、書き込み／消去が可能な領域である。すなわち、予め定められたプログラムが実行されると、そのプログラムの処理の状態に応じて、データがこの領域に書き込まれたり、あるいは、データが消去される。
【００４５】
なお、判断データとは、ファームウェアが第１の領域２０２に正常に記憶されていることを表わすデータである。たとえば、「０ｘ００００」という値である。すなわち、「０ｘ００００」の値が第２の領域２０４に記憶されているときは、ファームウェアが第１の領域２０２に正常に記憶されていると判断することができる。
【００４６】
一方、それ以外の値、たとえば、「０ｘＦＦＦＦ」の値がこの領域に記憶されているときは、ファームウェアが第１の領域２０２に正常に記憶されていないと判断することができる。
【００４７】
この判断データは、特に上述の値に限定されず、ファームウェアが正常に記憶されていることを表わすデータと、その他のデータとが区別できればよい。このようにして、ファームウェアのメモリにおける記憶の状態を判断することができる。
【００４８】
第３の領域２０６には、第１のプログラムと、第２のプログラムと、第３のプログラムとが記憶される。この第３の領域２０６は、たとえば、アドレスが「０ｘＦＣ００００００」から「０ｘＦＣ００２０００」までの領域である。
【００４９】
ここで、第１のプログラムとは、情報処理装置１００を始動するためのプログラム（以下、始動プログラムという。）である。利用者が、情報処理装置１００の電源スイッチをオンにすると、この始動プログラムが実行される。
【００５０】
また、第２のプログラムは、記憶状態判断プログラムである。このプログラムが実行されると、第２の領域２０４に記憶された判断データに基づいて、ファームウェアが第１の領域２０２に正常に記憶されているか否かが判断される。
【００５１】
第３のプログラムは、ファームウェア復旧プログラムである。このプログラムが実行されると、ファームウェアを第１の領域２０２に更新するための処理が実行される。
【００５２】
この第３の領域２０６は、データの書き込みが保護された領域である。すなわち、この領域に記憶されたプログラムは、書きかえられることがない。
【００５３】
なお、この書き込みの保護は、フラッシュメモリの機能である、ブロック単位でロックをかける機能を使用することにより、あるいは、この領域にデータを書き込まないようにプログラムを作成することにより実現可能である。これにより、ファームウェアの実行および更新に必要なプログラムは、正常な状態で記憶しておくことができる。
【００５４】
図３を参照して、本発明の実施の形態に係る情報処理装置１００が、ファームウェアの終了状態を判断して実行するまでの手順を、フローチャートに基づいて説明する。
【００５５】
ステップ１０２にて（以下、ステップをＳと略す。）、情報処理装置１００のＣＰＵ１０２は、システムの始動（たとえば、利用者が電源スイッチを押下したこと）を検知する。
【００５６】
Ｓ１０４にて、ＣＰＵ１０２は、始動プログラムを実行する。この始動プログラムが実行されると、予め定められた、情報処理装置１００を利用可能にするための準備の処理が実行される。
【００５７】
Ｓ２００にて、ＣＰＵ１０２は、後述する記憶状態判断処理を実行する。この記憶状態判断処理が実行されることにより、ファームウェアが第１の領域２０２に正常に記憶されているか否かを表わすフラグが返される。
【００５８】
Ｓ１０８にて、ＣＰＵ１０２は、ファームウェアが第１の領域２０２に正常に記憶されているか否かを判断する。ファームウェアが第１の領域２０２に正常に記憶されていると判断すると（Ｓ１０８にてＹＥＳ）、処理はＳ１１０に移される。そうでないと（Ｓ１０８にてＮＯ）、処理はＳ３００に移される。
【００５９】
Ｓ１１０にて、ＣＰＵ１０２は、ファームウェアを実行する。このファームウェアが実行されると、情報処理装置１００は利用者にとって利用可能な状態になり、その後、予め定められた処理を実行することができる。
【００６０】
Ｓ３００にて、ＣＰＵ１０２は、後述するファームウェア復旧処理を実行する。このファームウェア復旧処理が実行されると、ファームウェアが更新される。その後、処理はＳ２００に戻される。
【００６１】
図４を参照して、ＣＰＵ１０２が記憶状態判断処理を実行する手順を、フローチャートに基づいて説明する。
【００６２】
Ｓ２０２にて、ＣＰＵ１０２は、ファームウェアが正常に記憶されていることを表わす判断データが第２の領域２０４に記憶されているか否かを判断する。判断データが第２の領域２０４に記憶されていると判断すると（Ｓ２０２にてＹＥＳ）、処理はＳ２０４に移される。そうでないと（Ｓ２０２にてＮＯ）、処理はＳ２０６に移される。
【００６３】
Ｓ２０４にて、ＣＰＵ１０２は、ファームウェアが第２の領域２０４に正常に記憶されていることを表わすフラグ（たとえば、「０」）を出力する。Ｓ２０６にて、ＣＰＵ１０２は、ファームウェアが第２の領域２０４に正常に記憶されていないことを表わすフラグ（たとえば、「１」）を出力する。その後、処理は、メインの処理に戻される。
【００６４】
図５を参照して、本発明の実施の形態に係る情報処理装置１００が、ファームウェア処理を実行する手順を、フローチャートに基づいて説明する。
【００６５】
Ｓ３０２にて、ＣＰＵ１０２は、通信ＩＦ１０６を初期化する。これにより、情報処理装置１００は、ファイルサーバ１１０と通信可能な状態になる。
【００６６】
Ｓ４００にて、ＣＰＵ１０２は、後述するファームウェア更新処理を実行する。この処理が実行されると、ファームウェアが第１の領域２０２に記憶される。
【００６７】
Ｓ３０６にて、ＣＰＵ１０２は、情報処理装置１００を再起動する。その後、処理は、メインの処理に戻される。
【００６８】
図６を参照して、本実施の形態に係る情報処理装置１００がファームウェアを更新する手順を、フローチャートに基づいて説明する。
【００６９】
Ｓ４０２にて、ＣＰＵ１０２は、第２の領域２０４をクリアする。この領域をクリアする処理は、第２の領域２０４が含まれるブロックを消去することにより行なう。後述する判断データがこの領域に記憶されている場合、その判断データが削除されることになる。
【００７０】
Ｓ４０３にて、ＣＰＵ１０２は、不揮発性メモリ２００の第１の領域２０２を消去する。Ｓ４０４にて、ＣＰＵ１０２は、ＡＲＰ（Ａｄｄｒｅｓｓ　Ｒｅｓｏｌｕｔｉｏｎ　Ｐｒｏｔｏｃｏｌ）　Ｒｅｑｕｅｓｔを送信する。この場合、情報処理装置１００は、ファイルサーバ１１０のＩＰ（Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）アドレスを予め知っているものとする。このＡＲＰ　Ｒｅｑｕｅｓｔは、ファイルサーバ１１０の物理アドレスであるＭＡＣ（Ｍｅｄｉａ　Ａｃｃｅｓｓ　Ｃｏｎｔｒｏｌ）アドレスを要求するために使用される。
【００７１】
Ｓ４０６にて、ＣＰＵ１０２は、指定されたＩＰアドレスを持つファイルサーバ１１０からＡＲＰ　Ｒｅｓｐｏｎｓｅを受信する。ＣＰＵ１０２は、ＡＲＰ　Ｒｅｓｐｏｎｓｅに基づいて、ファームウェアが記憶されたファイルサーバ１１０の物理アドレスを取得する。
【００７２】
Ｓ４０８にて、ＣＰＵ１０２は、ファイルサーバ１１０にファームウェアのダウンロードの要求を送信する。ここで、ファイルサーバ１１０において、ファイル転送プロトコルなどのサーバ側のプログラムが予め起動されているものとする。ファイルサーバ１１０は、クライアントからの要求に基づいて、必要なファイルを送信する。
【００７３】
Ｓ４１０にて、ＣＰＵ１０２は、ファームウェアのデータをファイルサーバ１１０から受信して、ＲＡＭ１０８に一時的に保存する。
【００７４】
Ｓ４１２にて、ＣＰＵ１０２は、ＲＡＭ１０８のデータを不揮発性メモリ２００に書き込む。ＣＰＵ１０２は、さらに、不揮発性メモリ２００に書き込んだファームウェアのデータと、ＲＡＭ１０８に一時的に保存したファームウェアのデータとを比較する。これにより、ＲＡＭ１０８に一時的に保存されたファームウェアのデータが、不揮発性メモリ２００に正常に書き込まれたことが確認される。
【００７５】
Ｓ４１４にて、ＣＰＵ１０２は、ファームウェアの更新が完了したか否かを判断する。ファームウェアの更新が完了したと判断されると（Ｓ４１４にてＹＥＳ）、処理はＳ４１６に移される。そうでないと（Ｓ４１４にてＮＯ）、処理はＳ４１８に移される。
【００７６】
Ｓ４１６にて、ＣＰＵ１０２は、第２の領域２０４に判断データを書き込む。この判断データは、ファームウェアが正常に記憶されたことを表わすデータである。そのデータは、たとえば「０ｘ００００」である。すなわち、フラッシュメモリの領域のデータが消去されると、その領域の内容は「０ｘＦＦＦＦ」となるため、「０ｘＦＦＦＦ」以外の値であればよい。
【００７７】
Ｓ４１８にて、ＣＰＵ１０２は、ファームウェアのデータの受信中に異常を検出したか否かを判断する。ファームウェアのデータの受信中に異常を検出したと判断すると（Ｓ４１８にてＹＥＳ）、処理はＳ４２０に移される。そうでないと（Ｓ４１８にてＮＯ）、処理はＳ４０８に戻される。
【００７８】
さらに、不揮発性メモリ２００に書き込むときに異常が検出された場合（Ｓ４１８にてＹＥＳ）、あるいは、不揮発性メモリ２００に書き込んだファームウェアのデータと、ＲＡＭ１０８に一時的に保存されたデータとを比較して、それらのデータが一致しない場合（Ｓ４１８にてＹＥＳ）、処理はＳ４２０に移される。
【００７９】
Ｓ４２０にて、ＣＰＵ１０２は、予め定められたエラー処理を実行する。たとえば、情報処理装置１００に、ファームウェアの更新が正常に実行できないことを表わすインジケータを表示する。
【００８０】
以上のような構造およびフローチャートに基づく、本実施の形態に係る情報処理装置１００において、ファームウェアが正しく記憶されていない情報処理装置１００がファームウェアを更新する動作について説明する。
【００８１】
ユーザが情報処理装置１００の電源スイッチをオンにしたことが検知されると（Ｓ１０２）、不揮発性メモリ２００に記憶されている始動プログラムが実行される（Ｓ１０４）。
【００８２】
不揮発性メモリ２００の第２の領域２０４に判断データが記憶されていないと（Ｓ２０２にてＮＯ）、ファームウェアの記憶状態が異常であると判断され（Ｓ１０８にてＮＯ）、ファームウェアの復旧処理が開始する（Ｓ３００）。すなわち、情報処理装置１００の通信ＩＦ１０６が初期化され（Ｓ３０２）、ファームウェアの更新処理が開始される（Ｓ４００）。
【００８３】
最初に、不揮発性メモリ２００の第２の領域２０４がクリアされる（Ｓ４０２）。ＡＲＰ　Ｒｅｑｕｅｓｔが、情報処理装置１００からファイルサーバ１１０に送信される（Ｓ４０４）。その後、ＡＲＰ　Ｒｅｓｐｏｎｓｅが、ファイルサーバ１１０から情報処理装置１００に送信される（Ｓ４０６）。これにより、情報処理装置１００が通信するファイルサーバ１１０の物理アドレスが取得され、情報処理装置１００とファイルサーバ１１０との通信が可能になる。
【００８４】
ファームウェアのダウンロードの要求が情報処理装置１００からファイルサーバ１１０に送信されると（Ｓ４０８）、ファームウェアのデータがファイルサーバ１１０から情報処理装置１００に送信され、ＲＡＭ１０８に一時的に保存される（Ｓ４１０）。
【００８５】
ファームウェアがＲＡＭ１０８から不揮発性メモリ２００に書き込まれて（Ｓ４１２）、書き込みが完了したと判断されると（Ｓ４１４にてＹＥＳ）、第２の領域２０４に、ファームウェアの記憶状態は正常であることを表わす判断データ（たとえば、「０ｘ００００」）が書き込まれる（Ｓ４１６）。これにより、ファームウェアの更新が終了する。
【００８６】
不揮発性メモリ２００に記憶されたプログラムにより、情報処理装置１００が再起動されると（Ｓ３０６）、ファームウェア復旧処理は終了して、再び記憶状態判断処理が実行される（Ｓ２００）。
【００８７】
ファームウェアは不揮発性メモリ２００に正常に記憶されていると判断されると（Ｓ１０８にてＹＥＳ）、ファームウェアが実行される（Ｓ１１０）。その後、情報処理装置１００は、予め準備された処理を実行する。
【００８８】
以上により、情報処理装置１００の起動時に、ファームウェアの記憶状態がメモリに記憶されたデータに基づいて判断される。ファームウェアが正常に記憶されていない場合には、ファームウェアを復旧する処理が実行される。その後、ファームウェアの記憶状態が再度判断され、ファームウェアが正常に記憶されていると判断されると、予め定められた処理を実行する。すなわち、予め定められた処理が実行される前に、ファームウェアを正常な状態に更新しておくことができる。これにより、たとえファームウェアが正常に記憶されていない場合には、利用者がファームウェアの復旧処理を行なうことなく、ファームウェアは更新される。その結果、情報処理装置１００は、予め定められた処理を実行することができる。
【００８９】
＜第２の実施の形態＞
以下、本発明の第２の実施の形態に係る情報処理装置について説明する。なお、本実施の形態に係る情報処理装置は、前述の第１の実施の形態に係る情報処理装置と同じハードウェア構成を有する。それらについての機能も同じである。したがって、詳細な説明は繰り返さない。
【００９０】
図７に、本実施の形態に係る情報処理装置１００と同じ機種である情報処理装置を複数含む情報処理システムを示す。
【００９１】
この図に示すように、各情報処理装置（情報処理装置１００、…、情報処理装置１３０）が、ＨＵＢ１１８を介してファイルサーバ１１０に接続される。ここで、接続される情報処理装置の数は特に制限されない。
【００９２】
図８を参照して、利用者の指示により、各情報処理装置がファームウェアを更新する動作について、フローチャートに基づいて説明する。
【００９３】
Ｓ７０２にて、各情報処理装置のＣＰＵ１０２は、ファイルサーバ１１０から情報を受信する。この情報は、たとえば、ファイルサーバ１１０と情報処理装置との間における予め定められた情報、あるいは、情報処理システムの利用者がファイルサーバ１１０を介して与える指示などである。
【００９４】
Ｓ７０４にて、ＣＰＵ１０２は、情報の中にファームウェアを更新する指示が含まれているか否かを判断する。情報の中にファームウェアを更新する指示が含まれているとき（Ｓ７０４にてＹＥＳ）、処理はＳ４００に移される。そうでないと（Ｓ７０４にてＮＯ）、処理はＳ７０２に戻される。
【００９５】
Ｓ４００にて、ＣＰＵ１０２は、前述のファームウェア更新処理を実行する。この処理が実行されると、ファームウェアが不揮発性メモリ２００の第２の領域２０４に正常に記憶されている場合でも、ファームウェアは更新される。
【００９６】
以上のような構造およびフローチャートに基づく本実施の形態に係る各情報処理装置が、利用者の指示に基づいてファームウェアを更新する動作について説明する。
【００９７】
利用者が、ファイルサーバ１１０を介して、各情報処理装置にファームウェアを更新させるための指示を出力すると、その指示を含む情報が各情報処理装置により受信される（Ｓ７０２）。その情報の中から、ファームウェアを更新する指示が検出されると（Ｓ７０４にてＹＥＳ）、ファームウェア更新処理が開始される（Ｓ４００）。
【００９８】
ファームウェアを受信して（Ｓ４１０）、書き込みが完了すると（Ｓ４１４にてＹＥＳ）、第２の領域に判断データがセットされる（Ｓ４１６）。その後、処理は終了する。
【００９９】
これにより、情報処理システムの利用者の指示に基づいて、ＨＵＢ１１８を介してファイルサーバ１１０に接続している各情報処理装置のファームウェアを更新することができる。その結果、同種の情報処理装置を多数使用するような環境（たとえば、工場）において、ファームウェアを効率よく更新することができる。また、このような構成において、ファイルサーバ１１０をメンテナンスすることにより、各情報処理装置を一元的に管理することができる。
【０１００】
＜第３の実施の形態＞
以下、本発明の第３の実施の形態に係る情報処理装置について説明する。なお、本実施の形態に係る情報処理装置およびその情報処理装置を含む情報処理システムは、前述の第１または第２の実施の形態に係る情報処理装置および情報処理システムと同じハードウェア構成を有する。それらについての機能も同じである。したがって、詳細な説明は繰り返さない。
【０１０１】
図９を参照して、各情報処理装置がファームウェアを定期的に更新する動作を、フローチャートに基づいて説明する。
【０１０２】
Ｓ５０２にて、各情報処理装置のＣＰＵ１０２は、更新タイマをリセットする。その後、ＣＰＵ１０２内部のクロックがカウントを開始する。
【０１０３】
Ｓ５０４にて、ＣＰＵ１０２は、ファームウェアの更新時間が経過したか否かを判断する。この更新時間は、各情報処理装置およびファイルサーバ１１０において予め設定しておくことができる。こうすることにより、ファームウェアの通信タイミングを同期化することができる。ファームウェアの更新時間が経過したと判断されると（Ｓ５０４にてＹＥＳ）、処理はＳ６００に移される。そうでないと（Ｓ５０４にてＮＯ）、処理はＳ５０４に戻される。
【０１０４】
Ｓ６００にて、ＣＰＵ１０２は、後述するファームウェア定期更新処理を実行する。この処理が実行されると、ファームウェアが不揮発性メモリ２００の第２の領域２０４に正常に記憶されている場合でも、ファームウェアは定期的に更新される。
【０１０５】
図１０を参照して、各情報処理装置がファームウェア定期更新処理を実行する手順を、フローチャートに基づいて説明する。
【０１０６】
Ｓ６０２にて、ＣＰＵ１０２は、不揮発性メモリ２００の第２の領域２０４をクリアする。Ｓ６０４からＳ６１４までの処理は、Ｓ４１０からＳ４２０までの処理と同じであるので、ここでは繰り返さない。
【０１０７】
Ｓ６１０にて、ＣＰＵ１０２が判断データを第２の領域に書き込む。これによりファームウェア定期更新処理は完了する。その後、処理はＳ５０２に戻される。
【０１０８】
以上のような構造およびフローチャートに基づく、本実施の形態に係る各情報処理装置がファームウェアを定期的に更新する動作について説明する。
【０１０９】
ネットワークに接続された各情報処理装置の更新タイマがリセットされると（Ｓ５０２）、ファームウェアの更新時間が経過するまで（Ｓ５０４にてＮＯ）、処理は待機する。更新時間が経過すると（Ｓ５０４にてＹＥＳ）、ファームウェア定期更新処理が開始される（Ｓ６００）。
【０１１０】
第２の領域がクリアされ（Ｓ６０２）、ファームウェアがファイルサーバ１１０から各情報処理装置に送信されると（Ｓ６０４）、そのファームウェアは、不揮発性メモリ２００に書き込まれる（Ｓ６０６）。ファームウェアの書き込みが完了したと判断されると（Ｓ６０８にてＹＥＳ）、第２の領域２０４に判断データ（たとえば、「０ｘ００００」）が書き込まれる（Ｓ６１０）。
【０１１１】
ファームウェア定期更新処理が完了すると、各情報処理装置の更新タイマがリセットされ（Ｓ５０２）、次回の更新まで（すなわち、更新時間が経過するまで）、更新処理を待機する。
【０１１２】
なお、本実施の形態においては、ファームウェアを更新する処理が定期的に実行されるが、その処理の開始時に、ファームウェアを更新する必要があるか否かを判断する処理を追加してもよい。たとえば、ファイルサーバ１１０に記憶されているファームウェアのバージョンと、各情報処理装置に記憶されているファームウェアのバージョンとを比較する処理を追加してもよい。それらのバージョンが一致する場合、更新する処理を終了することにより、不要な更新が実行されなくなる。
【０１１３】
これにより、ＨＵＢを介して複数の情報処理装置をファイルサーバ１１０に接続すると、各情報処理装置のファームウェアを一元的に管理することができる。さらに、ファームウェアの更新を容易に実行することができる。
【０１１４】
＜第４の実施の形態＞
以下、本発明の第４の実施の形態に係る情報処理装置について説明する。図１１に、本実施の形態に係る複数の情報処理装置とファイルサーバ１１０とを含む情報処理ネットワークを示す。
【０１１５】
この図に示すように、複数の情報処理装置は、それぞれ異なる機種の装置である。したがって、それぞれの機種に対応したファームウェアが使用される。なお、それぞれのファームウェアが異なる点を除いて、情報処理装置の構成は、前述の第２の実施の形態の情報処理装置の構成と同じである。それらについての機能も同じである。したがって、詳細な説明は繰り返さない。
【０１１６】
図１２および図１３を参照して、本実施の形態に係る情報処理装置（Ａ）１０００によるファームウェア更新処理（Ｂ）の手順を、フローチャートに基づいて説明する。なお、このファームウェア更新処理（Ｂ）が実行されるまでの処理（メイン処理およびファームウェア復旧処理）は、上述の第１の実施の形態と同じであり、ここでは繰り返さない。
【０１１７】
Ｓ３０２にて、通信ＩＦ１０６が初期化される。Ｓ４０００にて、ファームウェア更新処理（Ｂ）が実行される。この処理における、Ｓ４０２〜Ｓ４０６およびＳ４１０〜Ｓ４２０の処理は、図６における処理と同じであるので、ここでは繰り返さない。
【０１１８】
Ｓ４０８０にて、ＣＰＵ１０２は、情報処理装置（Ａ）１０００の機種情報とファームウェアのダウンロードの要求とをファイルサーバ１１０に送信する。ここで、機種情報とは、複数の機種から特定の機種を識別するための情報である。この機種情報の代わりに、たとえば、機種番号、機種識別番号、機種ＩＤなどを使用してもよい。このように、ファームウェアの更新を必要とする情報処理装置の機種情報を送信すると、その情報処理装置に固有なファームウェアがファイルサーバ１１０において検索される。
【０１１９】
なお、ファイルサーバ１１０は、機種情報とそれに対応したファームウェアとの対応表を記憶しており、受信した機種情報に基づいてその表を検索することにより、要求のあった情報処理装置に適したファームウェアを準備することができる。準備されたファームウェアは、ファイルサーバ１１０から情報処理装置（Ａ）１０００に送信される。ファームウェアの更新が完了すると、処理はＳ３０６に移され、情報処理装置は再起動される。
【０１２０】
以上のような構造およびフローチャートに基づく、本実施の形態に係る情報処理装置（Ａ）１０００がファームウェアを更新する動作について説明する。
【０１２１】
利用者が、ネットワークに接続された情報処理装置（Ａ）１０００の電源をオンにすると、始動プログラムが実行される（Ｓ１０４）。ファームウェアが正常に記憶されていないと判断されると（Ｓ１０８にてＮＯ）、ファームウェア復旧処理が開始され、通信ＩＦ１０６が初期化される。
【０１２２】
第２の領域がクリアされ（Ｓ４０２）、ＡＲＰ　Ｒｅｑｕｅｓｔが情報処理装置（Ａ）１０００から送信されると（Ｓ４０４）、ＡＲＰ　Ｒｅｓｐｏｎｓｅがファイルサーバ１１０から情報処理装置（Ａ）１０００に送信される（Ｓ４０６）。
【０１２３】
情報処理装置（Ａ）１０００の機種情報とファームウェアのダウンロードの要求とがファイルサーバ１１０に送信されると（Ｓ４０８０）、情報処理装置（Ａ）１０００に固有のファームウェアがファイルサーバ１１０において準備される。そのファームウェアがファイルサーバ１１０から情報処理装置（Ａ）１０００に送信されると（Ｓ４１０）、不揮発性メモリ２００の第１の領域２０２に書き込まれる（Ｓ４１２）。
【０１２４】
ファームウェアの書き込みが完了すると（Ｓ４１４にてＹＥＳ）、不揮発性メモリ２００の第２の領域に判断データ（たとえば、「０ｘ００００」）がセットされる（Ｓ４１６）。
【０１２５】
その後、情報処理装置（Ａ）１０００は再起動され（Ｓ３０６）、ファームウェアの記憶状態が正常であると判断されると（Ｓ１０８にてＹＥＳ）、ファームウェアが実行される（Ｓ１１０）。その後、予め定められた処理が実行される。
【０１２６】
これにより、異なる機種の情報処理装置が接続されたネットワークにおいて、特定の情報処理装置の機種に対応したファームウェアを更新することができる。すなわち、ファームウェアのダウンロードの要求をファイルサーバ１１０に送信する際に、機種情報が送信される。ファイルサーバ１１０は、この固有なデータに基づいて、その情報処理装置に固有なファームウェアを検索して情報処理装置に送信することができる。その結果、情報処理装置は、自身に固有なファームウェアを更新することができる。
【０１２７】
＜第５の実施の形態＞
以下、本発明の第５の実施の形態に係る情報処理装置の処理について説明する。図１４に示すように、本実施の形態に係る情報処理装置１００が、インターネット１５０を介してファイルサーバ１１０に接続される。この図において、情報処理装置の構成は、前述の第１の実施の形態の情報処理装置の構成と同じである。それらについての機能も同じである。したがって、詳細な説明は繰り返さない。
【０１２８】
この場合、情報処理装置１００において、ファームウェアの記憶状態は異常であることが検出されると、インターネット１５０を介して、ファームウェアをファイルサーバ１１０から受信する。このときの通信手順は、特に限定されない。
【０１２９】
これにより、インターネットを介して接続された情報処理装置とファイルサーバとの間で、最新のファームウェアを更新することが可能になる。すなわち、ファイルサーバと情報処理装置とが離れて設置されていても、ファームウェアの更新を含むメンテナンスが可能になる。
【０１３０】
以上により、メモリに記憶された、ファームウェアが正常に記憶されていることを表わすデータに基づいて、ファームウェアを実行する処理とファームウェアを更新する処理とを切り換えることができる。
【０１３１】
その結果、ファームウェアの記憶状態に対応させて、処理を適切に切り換えることができる情報処理装置を提供することができる。
【０１３２】
なお、上述の第１の実施の形態におけるファームウェア更新処理は、ファームウェア復旧処理から呼び出される処理であるが、ファームウェア更新処理を単独で実行することも可能である。すなわち、たとえば、ファームウェアの記憶状態が正常であってそのファームウェアのバージョンアップを行ないたい場合、利用者の指示（たとえば、ファームウェアの更新開始の入力）を検知するとファームウェア更新処理を実行するように設定することもできる。これにより、ファームウェアが正常に記憶されている場合でも、利用者の意図にしたがって、ファームウェアを更新することができる。
【０１３３】
また、上述の第１の実施の形態における判断データは、ファームウェアが第１の領域２０２に正常に記憶されているか否かを表わす２値のデータであるが、これを第１の領域２０２のＣＲＣ（Ｃｙｃｌｉｃ　Ｒｅｄｕｎｄａｎｃｙ　Ｃｈｅｃｋ）とすることも可能である。
【０１３４】
すなわち、ファームウェアの更新処理においては、図６のＳ４１６にて、第２の領域にＣＲＣの結果をセットする、とする。記憶状態判断処理においては、図４のＳ２０２にて、最初に、ファームウェアの第１の領域２０２のＣＲＣを計算し、次にＣＲＣの計算結果を第２の領域の値と比較する。比較した結果が一致すればＳ２０４にて正常フラグを出力し、異なればＳ２０６にて異常フラグを出力する。これにより、より正確にファームウェアの記憶状態を判断できる。
【０１３５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るメモリを含む情報処理装置を含むネットワーク構成を表わす図である。
【図２】本発明の実施の形態に係るメモリを表わす図である。
【図３】本発明の実施の形態に係る情報処理装置が実行する処理のフローチャート（その１）である。
【図４】本発明の実施の形態に係る情報処理装置が実行する処理のフローチャート（その２）である。
【図５】本発明の実施の形態に係る情報処理装置が実行する処理のフローチャート（その３）である。
【図６】本発明の実施の形態に係る情報処理装置が実行する処理のフローチャート（その４）である。
【図７】本発明の第２の実施の形態に係る情報処理装置を含む情報処理システムの構成を表わす図である。
【図８】本発明の第２の実施の形態に係る情報処理装置が実行する処理のフローチャートである。
【図９】本発明の第３の実施の形態に係る情報処理装置が実行する処理のフローチャート（その１）である。
【図１０】本発明の第３の実施の形態に係る情報処理装置が実行する処理のフローチャート（その２）である。
【図１１】本発明の第４の実施の形態に係る情報処理装置を含む情報処理システムの構成を表わす図である。
【図１２】本発明の第４の実施の形態に係る情報処理装置が実行する処理のフローチャート（その１）である。
【図１３】本発明の第４の実施の形態に係る情報処理装置が実行する処理のフローチャート（その２）である。
【図１４】本発明の第５の実施の形態に係る情報処理装置を含む情報処理システムの構成を表わす図である。
【符号の説明】
１００，１２０，１３０，１０００，１０１０　情報処理装置、１０２，１１２　ＣＰＵ、１１４　記憶装置、１０６，１１６　通信ＩＦ、１０８　ＲＡＭ、１１０　ファイルサーバ、１１８　ＨＵＢ、１５０　インターネット、２００　不揮発性メモリ、２０２　第１の領域、２０４　第２の領域、２０６　第３の領域。
【図１】
2004054421.tif 000003
【図２】
2004054421.tif 000004
【図３】
2004054421.tif 000005
【図４】
2004054421.tif 000006
【図５】
2004054421.tif 000007
【図６】
2004054421.tif 000008
【図７】
2004054421.tif 000009
【図８】
2004054421.tif 000010
【図９】
2004054421.tif 000011
【図１０】
2004054421.tif 000012
【図１１】
2004054421.tif 000013
【図１２】
2004054421.tif 000014
【図１３】
2004054421.tif 000015
【図１４】
2004054421.tif 000016