JP2005242930A - 情報処理装置、プログラム更新方法、プログラム更新プログラム、およびプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents

情報処理装置、プログラム更新方法、プログラム更新プログラム、およびプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体 Download PDF

Info

Publication number
JP2005242930A
JP2005242930A JP2004055173A JP2004055173A JP2005242930A JP 2005242930 A JP2005242930 A JP 2005242930A JP 2004055173 A JP2004055173 A JP 2004055173A JP 2004055173 A JP2004055173 A JP 2004055173A JP 2005242930 A JP2005242930 A JP 2005242930A
Authority
JP
Japan
Prior art keywords
program
unit
update
main
patch data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004055173A
Other languages
English (en)
Inventor
Shugo Yamamoto
修吾 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2004055173A priority Critical patent/JP2005242930A/ja
Publication of JP2005242930A publication Critical patent/JP2005242930A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 情報処理装置のプログラムを更新する際、新バージョンのプログラムへの更新が正常に完了しなかった場合であっても、装置の起動や動作に支障を生じさせない。
【解決手段】 情報処理装置1は、展開プログラム格納部17に展開されたメインプログラムを演算部21が実行するものであって、演算部21が展開プログラム格納部17に展開されたメインプログラムを実行する前に、当該メインプログラムと、新バージョンのメインプログラムとの差分情報を有するパッチデータを用いて、展開プログラム格納部17に展開されたメインプログラムを書き換えることによって、当該メインプログラムを更新するプログラム更新部14を備える。これにより、メインプログラムの更新に失敗しても、装置が完全に起動しなくなることを防止できる。
【選択図】 図1

Description

本発明は、自装置の動作を制御するために実行されるプログラムを更新可能な情報処理装置、プログラム更新方法、プログラム更新プログラム、およびプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
プリンタや複写機などの情報処理装置では、通常、不揮発性メモリに、装置の動作を制御するためにCPU(Central Processing Unit)などの演算手段によって実行されるメインプログラムが格納されている。そして、これらの装置では、電源が投入されると、まず、不揮発性メモリ内のメインプログラムが、RAMなどの揮発性メモリにコピーされる。これにより、情報処理装置は、コピーされたメインプログラムに従い、起動して動作する。
多くの情報処理装置は、メインプログラム格納用の不揮発性メモリとして、書き換え可能なフラッシュメモリを備えている。このフラッシュメモリ内のメインプログラムは、専用のメモリライタを用いることによって、電子的に消去したり書き換えたりできる。
情報処理装置が正常に動作している限り、フラッシュメモリ内のメインプログラムを変更する必要は特にない。しかし、装置の仕様を変更する場合や、メインプログラムにおける不具合を修正する場合などには、フラッシュメモリ内のメインプログラムを、新バージョンのプログラムに更新する必要が生ずる。
メインプログラムを更新する場合、通常、旧プログラムを更新するために用いられるパッチデータを、インターネットに置かれたサーバ等からダウンロードして入手する。このパッチデータは、旧プログラムと新バージョンのプログラムとの差分情報を有するデータである。そして、入手したパッチデータをフラッシュメモリへ書き込むことによって、フラッシュメモリ内の旧プログラムを新バージョンに更新する。
しかし、従来、フラッシュメモリ内のデータを変更する場合、ある一定領域に含まれるデータを、いったん全て消去した後、この消去した領域に、相当するデータを全て書き込む必要があった。そのため、旧プログラムを更新するためのデータが、一定領域内のほんの一部分を占めるものに過ぎなくても、その一定領域全体に含まれるデータを全て更新していた。したがって、旧プログラムの更新に必要な時間は、一定領域内の一部分を占めるデータのみを書き換える場合であっても、領域全体を占めるデータを書き換えるために必要な時間と同等であるという問題が生じていた。
この問題点を解消するための方法として、特許文献1には、格納されている旧プログラムから新プログラムへの変更を、旧プログラムデータの変更部分をフラッシュメモリからRAMへコピーし、RAM上で書き換えたプログラムデータを前記フラッシュメモリに戻すことにより行うことを特徴とするフラッシュメモリの書き換え方法が開示されている。この方法によれば、フラッシュメモリに格納された旧プログラムのうち、変更対象となる部分のみをRAMに読み出して修正し、修正されたデータを再びフラッシュメモリに書き込むため、プログラムの更新に必要な時間を短縮できる。
しかし、特許文献1に開示された方法では、旧プログラム更新用のパッチデータに不備がある場合、更新される新プログラムに不具合が生じてしまう。そのため、この不具合のある新プログラムをフラッシュメモリに格納すると、装置が正常に起動しなくなる可能性があるという問題点があった。
そこで、この問題点を解消するための方法として、特許文献2に開示されている方法がある。この方法では、まず、書き換え用のユーザプログラムを、外部のプログラミング装置から、いったん、コンデンサによって内容の保持が可能なRAMに転送してから、情報処理装置を起動する。そして、この装置は、起動時に、RAM内のユーザプログラムが正常か否かをチェックし、正常であれば、フラッシュメモリに格納されている旧ユーザプログラムを消去して、RAM内の新ユーザプログラムをフラッシュメモリに書き込む。この手順によって、特許文献2の方法では、更新されたユーザプログラムの信頼性を向上させることができる。
特開2002−014833号公報(公開日:平成14年(2002年)1月18日) 特開2003−167609号公報(公開日:平成15年(2003年)6月13日)
しかし、上記した従来の方法は、プログラムを更新した後に、装置が正常に起動したり動作したりできない可能性があるという問題点を有する。
すなわち、これらの方法では、いずれも、フラッシュメモリ内の旧プログラムを、最終的には、新バージョンに更新する。ここで、例えば、新バージョンのプログラムへの更新を行う途中に、停電によって装置の電源が強制的オフになる状況を想定する。この場合、新プログラムのフラッシュメモリにおける更新が、完了せずに中断してしまう可能性が生ずる。そして、もし更新処理が完了しなかったら、フラッシュメモリに格納される新バージョンのプログラムは、不完全なものとなる。
このとき、装置を起動する際、不完全なプログラムを使用することになる。これにより、装置がまったく起動しなくなるおそれもあるし、仮に起動に成功したとしても、装置が安定して動作するか否か定かではない。また、従来の方法では、このような事態が発生した時には、すでにフラッシュメモリから旧プログラムは消去されている。そのため、不具合のある新プログラムではなく、正常な旧プログラムを用いて機器を起動させたくても、不可能である。
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、プログラムを更新した後に正常に起動したり動作したりすることを確実にする情報処理装置、プログラム更新方法、プログラム更新プログラム、およびプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
上記の課題を解決するために、本発明に係る情報処理装置は、主記憶部に展開されたメインプログラムを演算部が実行する情報処理装置において、上記演算部が上記主記憶部に展開されたメインプログラムを実行する前に、当該メインプログラムと新バージョンのメインプログラムとの差分情報を有するパッチデータを用いて、上記主記憶部に展開されたメインプログラムを書き換えることによって、上記メインプログラムを新バージョンに更新するプログラム更新手段を備えることを特徴としている。
この構成により、本装置では、主記憶部に展開されたメインプログラムを、演算部が実行する前に、プログラム更新手段がパッチデータを使用して新バージョンに更新する。これにより、演算部は、主記憶部内に展開される、新バージョンのメインプログラムを実行する。すなわち、本装置は、新バージョンのメインプログラムに従って起動し、動作する。
このように、本装置では、例えばフラッシュメモリなどの不揮発性メモリに予め格納されているメインプログラムを更新するのではなく、主記憶部に展開されたメインプログラムを更新する。したがって、仮にプログラム更新手段によるメインプログラムの更新が失敗に終わり、不具合のあるメインプログラムに従って装置が起動した結果、装置の起動が行われなかったり、あるいは起動後の装置の動作が不安定になったりしても、例えば装置を再起動すればよい。すると、更新前のメインプログラムが再び主記憶部に展開され、さらに、このメインプログラムが更新される。
これにより、本装置は、メインプログラムの更新に失敗しても、装置が完全に起動しなくなることを防止できるという効果を奏する。
また、本発明に係るプログラム更新方法(本方法)は、主記憶部に展開されたメインプログラムを演算部が実行する情報処理装置のプログラム更新方法であって、上記演算部が上記主記憶部に展開されたメインプログラムを実行する前に、当該メインプログラムと、新バージョンのメインプログラムとの差分情報を有するパッチデータを用いて、上記主記憶部に展開されたメインプログラムを書き換えるプログラム更新工程を含むことを特徴としている。
この構成により、本方法は、上述した本装置と同様の効果を奏する。
また、本発明に係る情報処理装置では、さらに、上記プログラム更新手段は、上記メインプログラムを更新した後に、この更新が正常に完了したか否かを判定するものであり、上記プログラム更新手段が上記メインプログラムの更新は正常に完了したと判定した場合に、上記主記憶部に展開されている、新バージョンに更新されたメインプログラムを上記演算部に実行させる起動手段をさらに備えることを特徴としている。
支障を生じさせない。 この構成により、プログラム更新手段によるメインプログラムの更新が正常に完了した場合に、起動手段が、この正常に更新されたメインプログラムを演算部に実行させる。そのため、本装置は、正常な新バージョンのメインプログラムに従って起動し、動作する。
これにより、メインプログラムの更新に失敗した場合であっても、不具合を有するメインプログラムに従って装置が起動することはない。それゆえ、正常な新バージョンのメインプログラムに従った装置の起動および動作が、確実に行われるという効果を奏する。
また、本発明に係る情報処理装置では、さらに、上記プログラム更新手段が、上記メインプログラムの更新は正常に完了しなかったと判定した場合に、上記メインプログラムを格納した第1不揮発性記憶部から上記メインプログラムを読み出し、上記演算部によって実行可能な形式に展開して、上記主記憶部に格納するプログラム展開手段をさらに備えるとともに、上記起動手段が、上記プログラム展開手段によって上記主記憶部に展開されたメインプログラムを上記演算部に実行させるものであることを特徴としている。
この構成により、プログラム更新手段によるメインプログラムの更新が正常に完了しなかった場合に、プログラム展開手段が、第1不揮発性記憶部からメインプログラムを読み出し、演算部によって実行可能な形式に展開して、主記憶部に格納する。そして、起動手段は、この新たに主記憶部に展開されたメインプログラムを演算部に実行させる。
そのため、本装置は、メインプログラムの更新に失敗しても、不具合のあるメインプログラムではなく、更新される前の正常なメインプログラムに従って起動し、動作する。これにより、メインプログラムの更新に失敗した場合に、起動後において装置の動作に異常が生じたり、あるいは装置そのものが起動できなくなったりすることを未然に防止できるという効果を奏する。
また、本発明に係る情報処理装置では、さらに、上記プログラム更新手段が、上記メインプログラムの更新は正常に完了しなかったと判定した場合に、上記メインプログラムを格納した第1不揮発性記憶部から上記メインプログラムを読み出し、上記演算部によって実行可能な形式に展開して、上記主記憶部に格納するプログラム展開手段をさらに備えるとともに、上記プログラム更新手段が、上記プログラム展開手段によって上記主記憶部に展開されたメインプログラムを上記パッチデータを用いて更新するものであることを特徴としている。
この構成により、プログラム更新手段によるメインプログラムの更新が正常に完了しなかった場合に、プログラム展開手段が、第1不揮発性記憶部からメインプログラムを読み出し、演算部によって実行可能な形式に展開して、主記憶部に格納する。そして、プログラム更新手段は、この新たに主記憶部に展開されたメインプログラムを、新バージョンのメインプログラムに更新する。
これにより、プログラム更新手段は、メインプログラムの更新処理に失敗しても、再び、メインプログラムの更新を実行する。したがって、起動手段は、不具合のあるメインプログラムを演算部に実行させることはない。すなわち、本装置は、不具合のあるメインプログラムに従って起動し、動作することがない。それゆえ、本装置は、メインプログラムの更新に失敗した場合に、起動後において装置の動作に異常が生じたり、あるいは装置そのものが起動できなくなったりすることを、未然に防止できるという効果を奏する。
また、本発明に係る情報処理装置では、さらに、上記パッチデータを外部から取得して、第2不揮発性記憶部に格納するパッチデータ取得手段をさらに備えており、上記プログラム更新手段は、上記パッチデータ取得手段が外部から取得して上記第2不揮発性記憶部に格納したパッチデータを用いて、上記主記憶部に展開されたメインプログラムを更新することを特徴としている。
この構成により、本装置では、外部(例えば外部記憶ディスクや、インターネット上のサーバなど)から新たに取得したパッチデータを用いて、主記憶部に展開されたメインプログラムの更新が行われる。そのため、メインプログラムのバージョンアップがさらに行われた場合であっても、最新のパッチデータを取得し、最新のメインプログラムに更新できるという効果を奏する。
また、本発明に係る情報処理装置では、さらに、上記パッチデータ取得手段は、外部からのパッチデータの取得に成功した場合に、当該外部から取得したパッチデータを上記第2不揮発性記憶部に格納するものであることを特徴としている。
この構成により、パッチデータ取得手段は、正常であることを確認できたパッチデータを、第2不揮発性記憶部に格納する。その結果、プログラム更新手段は、第2不揮発性記憶部に格納された正常なパッチデータを使用して、主記憶部に展開されたメインプログラムの更新を行うことができる。それゆえ、本装置は、プログラム更新手段が不具合を有するパッチデータを使用することによって、メインプログラムの更新を正常に完了させられなくなる事態を、未然に防止できるという効果を奏する。
また、本発明に係る情報処理装置では、さらに、上記パッチデータ取得手段は、自装置の電源が投入された後であり、かつ上記プログラム更新手段が上記主記憶部に展開されたメインプログラムを更新する前に、外部からパッチデータを取得することを特徴としている。
この構成により、パッチデータ取得手段は、装置の動作中ではなく、装置の電源が投入されてから、プログラム更新手段がメインプログラムを更新する前に、パッチデータを取得する。そのため、過去に取得したパッチデータの不具合が原因となって、装置が起動しなくなった場合であっても、新たなパッチデータを取得でき、メインプログラムの更新を実行できるという効果を奏する。
なお、上記情報処理装置は、コンピュータによって実現してもよい。この場合、コンピュータを上記各手段として動作させることにより上記情報処理装置をコンピュータにて実現させるプログラム更新プログラム、およびそのプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
以上のように本発明の情報処理装置では、主記憶部に展開されたメインプログラムを、演算部が実行する前に、プログラム更新手段がパッチデータを使用して新バージョンのメインプログラムに更新するため、メインプログラムの更新に失敗しても、装置が完全に起動しなくなることを防止できるという効果を奏する。
本発明の一実施形態を、以下に、図1から図7を参照して説明する。
図2は、本実施形態に係る情報処理装置1の概略的な構成を示すブロック図である。図2によると、情報処理装置1は、制御部2、この制御部2に備えられる起動処理部3、RAM4、FLASH5、ダイレクト通信部6(通信手段)、通信部7、ディスクドライブ8、表示部9、操作パネル10、電源スイッチ11,および演算部21を備えた構成である。
制御部2は、CPU(Central Processing Unit)などの演算部21によって情報処理装置1の起動や動作を制御する。また、起動処理部3は、この制御部2が有する機能の一部を実現するものであり、情報処理装置1における起動処理やプログラム更新処理を行う。この起動処理部3の詳細については後述する。
RAM4は揮発性メモリであり、図1に示すように、少なくともデータバッファ部16(副記憶部)および展開プログラム格納部17(主記憶部)を含む。ここで、データバッファ部16は、インターネットに接続されたサーバ20から取得されたパッチデータを一時的に格納するために使用される。また、展開プログラム格納部17は、後述するプログラム格納部18に格納されているメインプログラムを、CPUなどの演算部21によって実行可能な形式に展開して格納するために使用される。
なお、本発明で言う「メインプログラム」とは、CPUなどの演算部21によって実行され、情報処理装置1の起動や動作の制御に使用されるプログラムを言う。また、「パッチデータ」とは、メインプログラムを更新するために使用される、旧プログラムと新プログラムとの差分情報を有するデータを言う。このパッチデータには、更新が正常に行われた場合の、更新後のメインプログラムの総バイト数(サム)を表す情報も含まれている。
FLASH5は、フラッシュメモリからなる不揮発性メモリであり、図1に示すように、少なくともプログラム格納部18(第1不揮発性記憶部)およびパッチデータ格納部19(第2不揮発性記憶部)を含む。ここで、プログラム格納部18には、情報処理装置1の動作を制御するために使用されるメインプログラムが格納されている。また、パッチデータ格納部19は、インターネットに接続されたサーバ20から取得されたパッチデータを格納するために使用される。
ここで、情報処理装置1では、プログラム格納部18は、データの消去や書き込みを受け付けない、読み出し専用メモリ(Read Only Memory、ROM)としての機能を有する。そのため、本発明の情報処理装置1では、プログラム格納部18内のメインプログラムが、何らかの原因によって書き換えられることはない。
一方、パッチデータ格納部19は、外部からの電気信号によってデータの消去や書き込みを受け付ける、書き換え可能なメモリとしての機能を有する。したがって、パッチデータ格納部19には、後述するデータ書き込み部23によって、サーバ20から取得されたパッチデータが書き込まれることができる。
ダイレクト通信部6は、RS−232CやUSB(Universal Serial Bus)などのインターフェースを備えることによって、コンピュータ25と通信する機能を有する。本発明の情報処理装置1では、パッチデータ取得部12に備えられるデータ取得部22は、このダイレクト通信部6を通じて、コンピュータ25からパッチデータを取得することもできる。この詳細については、後述する。
通信部7は、通信ネットワーク回線を介して、インターネットに接続されるサーバ20などの、他のコンピュータと通信する機能を有する。具体的には、通信部7は、モジュラージャック等の通信ネットワーク接続インターフェースを備えることによって、電話回線を通じた通話、FAXの送受信、インターネットへの接続、およびメールの送受信を担当する。本発明の情報処理装置1では、パッチデータ取得部12に備えられるデータ取得部22が、この通信部7を通じて、サーバ20からパッチデータを取得する。この詳細については、後述する。
ディスクドライブ8は、後述するリムーバブルディスク24を挿入するためのドライブである。情報処理装置1では、パッチデータ取得部12に備えられるデータ取得部22は、このディスクドライブ8に挿入されたリムーバブルディスク24から、パッチデータを取得することもできる。この詳細については、後述する。
表示部9は、情報処理装置1に関する様々な情報を表示する機能を有する。例えば、表示部9は、情報処理装置1におけるメインプログラム更新処理の進展状況や、あるいは更新の失敗・成功等の結果を表示する。
操作パネル10は、情報処理装置1を操作するために、ユーザによって用いられる。本発明の情報処理装置1では、この操作パネル10を通じたユーザのプログラム更新指示によって、メインプログラムの更新処理の初期段階に相当する、パッチデータ取得処理が行われる。
電源スイッチ11は、ユーザの操作によって、情報処理装置1の電源をオン・オフするためのものである。情報処理装置1は、この電源スイッチ11がユーザによってオンにされると起動し、オフにされるとシャットダウンする。また、情報処理装置1には、ユーザによって押下されると装置が再起動されるリセットボタンが備えられていてもよい。
本発明の情報処理装置1は、メインプログラムを新プログラムに更新する際、更新処理中に何らかの問題が発生した結果、新プログラムに不具合が生じた場合であっても、何度でもプログラム更新処理を再開したり、あるいは旧プログラムに従って装置を起動できたりすることによって、プログラム更新の際の信頼性を確保することを目的としている。そして、情報処理装置1は、この目的を達成するために、特に起動処理部3に特徴を有するものである。そこで、以下に、図1、および図3〜5を使用して、起動処理部3の構成、作用、および効果について詳細に説明する。
図1は、本実施形態に係る情報処理装置1の構成を詳細に示すブロック図である。図1によると、起動処理部3は、パッチデータ取得部12(パッチデータ取得手段)、プログラム展開部13(プログラム展開手段)、プログラム更新部14(プログラム更新手段)、およびシステム起動部15(起動手段)から構成されている。ここで、情報処理装置1は、通信部7を通じて、サーバ20に接続されている。
パッチデータ取得部12は、インターネットに接続されているサーバ20から、通信部7を通じてパッチデータを取得する。このパッチデータ取得部12の詳細を、図3に示す。図3は、パッチデータ取得部12におけるパッチデータの取得および格納処理の流れを表す説明図である。図3によると、パッチデータ取得部12は、データ取得部22およびデータ書き込み部23から構成されている。
ここで、データ取得部22は、通信部7を通じてサーバ20にアクセスし、このサーバ20に保存されているパッチデータを取得して、データバッファ部16に一時的に格納する。また、データ取得部22は、取得したパッチデータが正常か否かを判定する機能も有する。一方、データ書き込み部23は、データバッファ部16内のパッチデータを、パッチデータ格納部19に書き込む。
プログラム展開部13は、プログラム格納部18に格納されているメインプログラムを読み出し、これを演算部21が実行可能な形式に展開してから、展開プログラム格納部17に書き込む。このプログラム展開部13は、メインプログラムがプログラム格納部18内にデータ圧縮された形式で格納されている場合、それを伸長して展開プログラム格納部17に書き込むこともできる。
プログラム更新部14は、パッチデータ格納部19内のパッチデータを使用することによって、展開プログラム格納部17内のメインプログラムを、修正された新メインプログラムに更新する。また、プログラム更新部14は、さらに、メインプログラムの更新が正常に完了したか否かを判定する機能も有する。
システム起動部15は、展開プログラム格納部17に展開されたメインプログラムに従って、情報処理装置1を起動させる。本発明の情報処理装置1では、後述するように、このシステム起動部15は、メインプログラムの更新が正常に完了した場合、更新されたメインプログラムを使用して装置を起動させる。一方、システム起動部15は、メインプログラムの更新が正常に完了しなかった場合、未更新の旧メインプログラムを使用して装置を起動させる。このことを実現する方法については、後述する。
サーバ20は、メインプログラムの更新に用いられるパッチデータを保存して、情報処理装置1に提供する外部格納場所としての役割を有するものである。データ取得部22は、通信部7を通じてこのサーバ20にアクセスすることによって、パッチデータを取得する。この点については、後述する。
以上の構成からなる情報処理装置1において、パッチデータを用いてメインプログラムを更新する手順を、以下に説明する。
上記の情報処理装置1は、装置の動作中に、操作パネル10がユーザからの入力を受け付けることによって、メインプログラムの更新処理を開始する。ここで、操作パネル10は、ユーザからのメインプログラム更新指示を受け付けると、パッチデータ取得部12に備えられるデータ取得部22に対して、動作開始命令(トリガ)を出力する。
トリガを入力されたデータ取得部22は、通信部7を通じて、インターネットに接続されているサーバ20にアクセスする。そして、データ取得部22は、このサーバ20に保存されているパッチデータを取得して、データバッファ部16に書き込む。また、データ取得部22は、サーバ20内のパッチデータの取得を完了するまで、この動作を続ける。
パッチデータの取得が完了した後、データ取得部22は、データバッファ部16内のパッチデータが正常であるか否かを判定する。このとき、データ取得部22は、この判定を行うために、サーバ20内のパッチデータと、データバッファ部16内のパッチデータが、同一であるか否かを調べる。具体的には、データ取得部22は、データバッファ部16に書き込んだパッチデータのバイト数(サム)と、サーバ20内にある取得対象としたパッチデータのバイト数(サム)とを比較し、これらが一致すればパッチデータは正常であると判定し、一致しなければ異常と判定する、いわゆる「サムチェック」を行う。
そして、データ取得部22は、データバッファ部16内のパッチデータが正常でないと判定した場合、表示部9に対して、エラーメッセージを出力して動作を終了する。これにより、不備のあるパッチデータを用いたメインプログラム更新処理が行われることがないため、プログラム更新の失敗を未然に防止できる。
一方、データ取得部22は、データバッファ部16内のパッチデータが正常であると判定した場合、データ書き込み部23に対してトリガを出力する。
トリガを入力されたデータ書き込み部23は、データバッファ部16内のパッチデータを、パッチデータ格納部19に格納する。これにより、情報処理装置1は、外部格納場所であるサーバ20から、最新のパッチデータを取得できる。したがって、メインプログラムのバージョンアップがさらに行われた場合であっても、情報処理装置1は、最新のパッチデータを取得し、メインプログラムを最新のプログラムに更新できる。また、データ書き込み部23は、パッチデータが正常であることをデータ取得部22が確認してから、パッチデータ格納部19にパッチデータを格納するため、後述するプログラム更新部14が不具合を有するパッチデータを使用してメインプログラムの更新を正常に完了させられなくなる事態を、未然に防止できる。
パッチデータ格納部19にパッチデータを格納した後、データ書き込み部23は、FLASH5に保存されている更新失敗履歴を「無」に設定する。この更新失敗履歴は、過去にメインプログラムの更新が失敗に終わったことを表す一種のフラッグであり、何らかの原因によってメインプログラムの更新が失敗に終わった場合に、後述するプログラム更新部14によって「有」に設定されるものである。なお、情報処理装置1が工場から出荷される段階では、この更新失敗履歴は「無」に設定されている。
ここで、データ書き込み部23は、パッチデータの書き込みを終了し、更新失敗履歴を「無」に設定した後、情報処理装置1を再起動する。
以上の処理によって、情報処理装置1は、まず、サーバ20から、メインプログラム更新用のパッチデータを取得する。この後、再起動された情報処理装置1は、取得したパッチデータを用いて、メインプログラムを更新する。この処理について、以下に説明する。
データ書き込み部23によって再起動されるか、または、電源スイッチ11がユーザによってオンにされた場合、情報処理装置1は、メインプログラムの更新処理および装置の起動処理を開始する。このとき、まず、プログラム展開部13が、プログラム格納部18内のメインプログラムを読み出して、演算部21によって実行可能な形式に展開する。そして、プログラム展開部13は、展開したメインプログラムを、展開プログラム格納部17に書き込む。その後、プログラム展開部13は、プログラム更新部14にトリガを出力する。
トリガを入力されたプログラム更新部14は、まず、パッチデータ格納部19内の所定のアドレスに、パッチデータが格納されているか否かを確認する。パッチデータが格納されていない場合、プログラム更新部14は、システム起動部15にトリガを出力する。この場合、システム起動部15は、未更新のメインプログラムを使用して装置を起動させるため、情報処理装置1は、未更新のメインプログラムに従って起動し、動作する。すなわち、情報処理装置1では、パッチデータ格納部19にパッチデータが格納されていない場合、メインプログラムの更新処理は行われない。
一方、パッチデータが格納されている場合、プログラム更新部14は、更新失敗履歴の状態を確認する。ここで、プログラム更新部14は、更新失敗履歴が「有」であれば、これを「無」に設定して、システム起動部15にトリガを出力する。この場合も、システム起動部15は、未更新のメインプログラムを使用して装置を起動させるため、情報処理装置1は、未更新のメインプログラムに従って起動し、動作する。すなわち、情報処理装置1では、パッチデータ格納部19にパッチデータが格納されていても、更新失敗履歴が「有」に設定されている場合は、メインプログラムの更新処理は行われない。
一方、プログラム更新部14は、更新失敗履歴が「無」であれば、パッチデータ格納部19にアクセスしてパッチデータを読み出す。そして、プログラム更新部14は、読み出したパッチデータを使用して、展開プログラム格納部17内に展開されているメインプログラムを更新する。具体的には、プログラム更新部14は、パッチデータが有する差分情報を基に、メインプログラムにおけるデータ更新場所を特定して、これをパッチデータで置き換える。
このように、本発明の情報処理装置1では、プログラム格納部18(不揮発性メモリ)に保存されているメインプログラムを消去したり改変したりすることなく、展開プログラム格納部17(揮発性メモリ)に展開されているメインプログラムを書き換える。これにより、メインプログラムの更新に失敗した場合であっても、プログラム格納部18に保存されているメインプログラムに変化は生じない。そのため、たとえ不具合のあるメインプログラムに従って装置の動作処理が行われた結果、装置が起動しなくなる事態が生じても、電源をいったんオフしたあと再びオンにしたり、あるいはリセットボタンを押下したりするなどして、装置を強制的に再起動すればよい。すると、情報処理装置1は、保存されている旧メインプログラムを再び読み出すことによって、上述したメインプログラムの更新処理が再び行う。そのため、メインプログラムの更新に失敗しても、装置が完全に起動できなくなることを防止できる。
なお、本実施の形態に係る情報処理装置1では、メインプログラムに更新に失敗した場合に対処するため、プログラム更新部14が、メインプログラムの更新を終了させた後、この更新に成功したか否かを判定する。具体的には、プログラム更新部14は、展開プログラム格納部17に格納されている更新後のメインプログラムの総バイト数(サム)を計算し、これを、パッチデータに予め含まれている、正常に更新された場合のメインプログラムの総バイト数(サム)と比較する、いわゆる「サムチェック」を行う。そして、プログラム更新部14は、これらが一致すればプログラム更新に成功したと判定し、一致しなければ失敗したと判定する。
ここで、プログラム更新部14は、メインプログラムの更新に成功したと判定した場合、システム起動部15にトリガを出力する。この場合、システム起動部15は、展開プログラム格納部17にアクセスして、更新された新メインプログラムを読み出し、このプログラムに従って、情報処理装置1を起動する。したがって、起動された情報処理装置1は、更新された新メインプログラムに従って動作することになる。すなわち、このような判定をプログラム更新部14が行うことによって、正常に更新されたメインプログラムによる装置の起動が、確実に行われる。
一方、プログラム更新部14は、メインプログラムの更新に失敗したと判定した場合、更新失敗履歴を「有」に設定して、プログラム展開部13にトリガを出力する。この場合、トリガを入力されたプログラム展開部13は、再び、プログラム格納部18にアクセスして、メインプログラムを読み出し、演算部21によって実行可能な形式に展開して、展開プログラム格納部17に格納する。そして、プログラム展開部13は、プログラム更新部14にトリガを出力する。
次に、トリガを入力されたプログラム更新部14は、上述のように、まず、パッチデータ格納部19にパッチデータが格納されているか確認する。この場合、パッチデータ格納部19には上述したようにパッチデータが格納されているため、プログラム更新部14は、更新失敗履歴の状態を確認する。ここで、上述したように、メインプログラムの更新は過去に失敗しているため、更新失敗履歴は「有」となっている。そのため、プログラム更新部14は、今度はこの更新失敗履歴を「無」に設定し、システム起動部15にトリガを出力する。
すると、システム起動部15は、展開プログラム格納部17にアクセスして、未更新のメインプログラムを読み出し、このプログラムに従って、情報処理装置1を起動させる。これにより、情報処理装置1は、プログラム更新部14によるメインプログラムの更新が失敗した場合、未更新の旧メインプログラムに従って動作することになる。
こうすることによって、システム起動部15は、もし、過去に展開プログラム格納部17内のメインプログラムが正常に更新されなかった場合でも、プログラム格納部18に格納されている、未更新の正常な旧メインプログラムを使用することによって、情報処理装置1を起動できる。
したがって、情報処理装置1は、たとえメインプログラムの更新に失敗し、その結果、メインプログラムに不具合が生じたとしても、不具合のあるメインプログラムに従って起動することはない。そのため、本発明の情報処理装置1では、起動後において装置の動作に異常が生じたり、あるいは装置そのものが起動できなくなったりすることを、未然に防止できる。
以上のように説明した、情報処理装置1におけるパッチデータ取得処理およびメインプログラム更新処理の流れを、図4および図5に示すフローチャートを使用して以下に説明する。
図4は、パッチデータ取得部12における処理の流れを表すフローチャートである。この図に示すように、まず、操作パネル10が、ユーザによるプログラム更新指示を受け付ける(S10)。次に、データ取得部22が、通信部7を通じてサーバ20からパッチデータを取得して、データバッファ部16に格納する(S11)。そして、データ取得部22は、16内のパッチデータが正常であるか否かを判定する(S12)。
ここで、データ取得部22が、パッチデータは正常でないと判定した場合(NO)、パッチデータ取得部12の動作は終了する。一方、データ取得部22が、パッチデータは正常であると判定した場合(YES)、データ書き込み部23が、データバッファ部16内のパッチデータをパッチデータ格納部19に格納する(S13)。そして、データ書き込み部23は、更新失敗履歴を「無」に設定して(S14)、プログラム展開部13にトリガを出力する(S15)。これによって、パッチデータ取得部12の動作は終了する。
図5は、プログラム展開部13、プログラム更新部14、およびシステム起動部15における処理の流れを表すフローチャートである。この図によると、まず、プログラム展開部13が、プログラム格納部18内のメインプログラムを、展開プログラム格納部17に展開する(S20)。次に、プログラム更新部14は、パッチデータ格納部19内にパッチデータが存在するか否かを確認する(S22)。
ここで、パッチデータがパッチデータ格納部19に存在しないことを確認した場合(NO)、プログラム更新部14は、更新失敗履歴を「無」に設定する(S26)。そして、システム起動部15が、未更新のメインプログラムを展開プログラム格納部17から読み出し、この未更新のメインプログラムに従って、情報処理装置1を起動させる(S27)。
一方、パッチデータがパッチデータ格納部19に存在することを確認した場合(YES)、プログラム更新部14は、更新失敗履歴が「無」であるか否かを判定する(S22)。ここで、更新失敗履歴が「有」であると判定した場合(NO)、プログラム更新部14は、更新失敗履歴を「無」に設定する(S26)。そして、システム起動部15が、未更新のメインプログラムを展開プログラム格納部17から読み出し、この未更新のメインプログラムに従って、情報処理装置1を起動させる(S27)。
一方、更新失敗履歴が「無」であると判定した場合(YES)、プログラム更新部14は、パッチデータ格納部19からパッチデータを読み出し、さらに、このパッチデータを使用して、展開プログラム格納部17内のメインプログラムを更新する(S23、プログラム更新工程)。プログラムの更新を終了させた後、プログラム更新部14は、メインプログラムの更新が成功したか失敗したかを判定する(S24)。
ここで、メインプログラムの更新に失敗したと判定した場合、プログラム更新部14は、更新失敗履歴を「有」に設定する(S25)。このとき、処理はS20に戻って、プログラム展開部13が再び、プログラム格納部18からメインプログラムを読み出して、展開プログラム格納部17に格納する。この場合、S22において、プログラム更新部14は更新失敗履歴が「有」と判定するため、上述したように、プログラム更新部14が更新失敗履歴を「無」に設定する(S26)。そして、システム起動部15は、未更新のメインプログラムを展開プログラム格納部17から読み出し、かつ、この未更新のメインプログラムに従って、情報処理装置1を起動させる(S27)。
一方、プログラム更新部14が、メインプログラムの更新に成功したと判定した場合、次の処理は、S20ではなくS27に移る。そして、システム起動部15が、展開プログラム格納部17内にある更新されたメインプログラムを読み出し、かつ、この更新されたメインプログラムに従って、情報処理装置1を起動させる(S27)。すなわち、ここで初めて、本発明の情報処理装置1において、メインプログラムの更新が正常に完了し、この更新された新メインプログラムに従って装置が起動することになる。
以上のように説明した情報処理装置1は、あくまで本発明を実施するための1つの形態に過ぎないものである。すなわち、本発明の情報処理装置1は、以下に説明するように、請求項に示す範囲内において、様々に変形された形態で実施できる。
例えば、データバッファ部16は、RAM4ではなくFLASH5に備えられていてもよいし、または、CPUなどの演算手段内に形成されるメモリからなってもよい。
また、FLASH5は、フラッシュメモリである必要は必ずしもなく、他の不揮発性メモリであってもよい。例えば、FLASH5は、一般的なEPROM(erasable and programmable read only memory)であってもよい。
また、本実施形態では、パッチデータ取得部12がインターネットに接続されたサーバ20からパッチデータを取得する例を挙げて説明した。しかし、サーバ20が接続される通信ネットワークはインターネットに限定されず、例えば、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等であってもよい。また、この通信ネットワークを構成する伝送媒体も特に限定されず、具体的には、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でもよい。
また、パッチデータ取得部12がサーバ20からパッチデータを取得する場合、このサーバ20が提供するFTP(File Transfer Protocol)サービスを使用してもよいし、あるいは、Webページ(ホームページ)にパッチデータのリンクを記載したWWW(World Wide Web)サービスを利用してもよい。
また、パッチデータ取得部12は、図6に示すように、リムーバブルディスク24や、あるいはコンピュータ25からパッチデータを取得してもよい。ここで、図6は、パッチデータ取得部12がリムーバブルディスク24またはコンピュータ25からパッチデータを取得する形態を表したブロック図である。
データ取得部22がリムーバブルディスク24からパッチデータを取得する場合、まず、コンピュータ25に保存されているパッチデータを、ユーザが、リムーバブルディスク24にコピーする。そして、パッチデータが保存されたリムーバブルディスク24を、ユーザが、ディスクドライブ8に挿入する。次に、操作パネル10が、ユーザからの入力を受け付けて、パッチデータの取得先をリムーバブルディスク24に設定した形で、データ取得部22に対してトリガを出力する。すると、トリガを入力されたデータ取得部22は、ディスクドライブ8を通じてリムーバブルディスク24にアクセスし、パッチデータを取得して、データバッファ部16に格納する。
この形態では、サーバ20からパッチデータを取得する場合に比べ、高速にパッチデータを取得できる。
また、データ取得部22がコンピュータ25からパッチデータを取得する場合、まず、操作パネル10が、ユーザからの入力を受け付けて、パッチデータの取得先をコンピュータ25に設定した形で、データ取得部22に対してトリガを出力する。次に、データ取得部22が、ダイレクト通信部6を通じて、コンピュータ25にアクセスする。そして、データ取得部22は、コンピュータ25からパッチデータを読み出して、データバッファ部16に格納する。
この場合、例えばディスクドライブ8や通信部7を有さず、リムーバブルディスク24にアクセスしたり、通信ネットワークに接続したりできない情報処理装置1においても、パッチデータを取得できる。また、装置を他のコンピュータに直接、ダイレクト通信部6を介して接続するだけで、データ取得部22がパッチデータを取得できるため、パッチデータを取得するための手間を簡略化できる。
なお、上述したサーバ20、リムーバブルディスク24、およびコンピュータ25のうち、パッチデータの取得先をサーバ20にすることが、データを取得する手間を簡略化できるため好ましい。特に、多数の情報処理装置1においてメインプログラムを更新したい場合、通信部7を通じて通信ネットワーク回線に接続すればサーバ20からパッチデータを取得できるため、それぞれの情報処理装置1をコンピュータ25に接続させたり、あるいはそれぞれの情報処理装置1に対してリムーバブルディスク24を用意したり場合に比べて、メインプログラムの更新に必要な労力を大幅に低減できる。
また、リムーバブルディスク24は、パッチデータを記録できる記録媒体であれば任意の媒体でよい。例えば、リムーバブルディスク24は、磁気テープやカセットテープなどのテープ、フロッピー(登録商標)ディスクなどの磁気ディスク、CD−ROMや光磁気ディスク(MO)、ミニディスク(MD)、デジタルビデオディスク(DVD)などのディスク、またはICカードや光カードとすることができる。
また、データ取得部22は、リムーバブルディスク24ではなく、固定式の記憶ディスクからパッチデータを取得してもよい。このような固定式記憶ディスクとして、例えば、ハードディスクなどの磁気ディスクがある。この場合、ディスクドライブ8は必要ではなく、固定式記憶ディスクを、SCSI(Small Computer System Interface)やUSB等のインターフェースを通じて情報処理装置1に接続させればよい。
また、本実施形態では、パッチデータ取得部12は、データ取得部22によるパッチデータの判定処理において、データが正常でないと判定された場合、即座に動作を終了する。しかし、パッチデータ取得部12は、このとき、即座に動作を終了するのではなく、例えば表示部9に対して、「データの取得に失敗しました。再度データを取得しますか?」などのメッセージを表示させるように、トリガを出力してもよい。
この場合、操作パネル10において、ユーザからのパッチデータ再取得指示が入力されると、データ取得部22が再びサーバ20等にアクセスしてパッチデータを取得し、データバッファ部16に格納する。この処理は、パッチデータの取得が正常に行われるか、あるいは、操作パネル10において、ユーザが、パッチデータの再取得を行わない旨の入力を行うまで、続けられる。
なお、パッチデータ取得部12は、データ取得部22が取得したパッチデータが、何度か(例えば3回)連続して正常でないと判定された場合、上述したように表示部9に対してメッセージ表示を促すトリガを出力するまでもなく、自動的に動作を終了してもよい。これにより、無用なパッチデータ取得処理の繰り返しを防止できる。
また、本実施形態では、プログラム更新部14は、一度でもメインプログラムの更新に失敗した場合、即座に更新失敗履歴を「有」に設定する。これにより、システム起動部15は、更新される前の旧メインプログラムを使用して、装置を起動する。しかし、プログラム更新部14は、プログラムの更新に失敗したと判定した場合であっても、即座に更新失敗履歴を「有」に設定せず、例えば、表示部9に対して、「プログラムの更新の失敗しました。プログラムを更新を再度実行しますか?」等のメッセージを表示させるように、トリガを出力してもよい。
このとき、操作パネル10を通じて、再度のメインプログラム更新を行う旨の入力がユーザによってなされた場合、プログラム更新部14は、更新失敗履歴を「無」に設定したまま、プログラム展開部13にトリガを出力する。すると、更新失敗履歴が「無」に設定されているため、プログラム更新部14は、再びメインプログラムの更新処理を行う。これにより、メインプログラムの更新に失敗した場合であっても、装置を再起動することなく再びメインプログラムの更新を試みることができる。
一方、操作パネル10を通じて、プログラムの更新を行わない旨の入力がユーザによってなされた場合、プログラム更新部14は、更新失敗履歴を「有」に設定して、プログラム展開部13にトリガを出力する。この場合、上述したように、システム起動部15が、未更新のメインプログラムを使用して、装置を起動させる。
なお、プログラム更新部14は、メインプログラムの更新が、何度か(例えば3回)連続して失敗したと判定した場合、自動的に更新失敗履歴を「有」に設定し、上述したように表示部9に対してメッセージ表示を促すトリガを出力するまでもなく、プログラム展開部13にトリガを出力するように構成してもよい。これにより、プログラム更新の試みが無用に繰り返されることを防止できる。
また、本実施形態では、パッチデータ格納部19に格納されるパッチデータは1種類のみである。しかし、パッチデータ格納部19には、メインプログラムのバージョン段階に対応した、複数種類のパッチデータが格納されてもよい。
この場合、プログラム更新部14は、メインプログラムを更新する際、パッチデータ格納部19内のパッチデータの種類を確認し、まず、最初に使用すべき第1パッチデータを特定する。そして、プログラム更新部14は、この第1パッチデータを使用して、メインプログラムを更新し、かつ、更新処理が正常に行われたかを判定する。
ここで、プログラム更新部14は、更新処理が正常に行われたと判定した場合、再び、パッチデータ格納部19にアクセスして、残りのパッチデータの種類を確認し、次に使用すべき第2パッチデータを特定する。次に、プログラム更新部14は、この第2パッチデータを使用して、更新されたメインプログラムを、さらに更新し、かつ、この更新処理が正常に行われた否かを判定する。
このような一連のプログラム更新・判定処理を、プログラム更新部14は、使用すべきパッチデータを全て特定するまで続ける。この間、プログラム更新部14は、一度でもプログラム更新が正常に行われなかったと判定した場合、上述したように更新失敗履歴を「有」にして、プログラム展開部13にトリガを出力する。
以上の処理によって、情報処理装置1では、様々なバージョンのメインプログラムに対応した、複数のパッチデータを用いることによって、展開プログラム格納部17に展開されたメインプログラムを、複数回上の最新のバージョンに更新できる。したがって、最新バージョンのメインプログラムに従って情報処理装置1を動作させたい場合において、プログラム格納部18に最新バージョンの直前のバージョンのメインプログラムを用意する必要がない。また、プログラム格納部18に格納されている旧バージョンのメインプログラムを、最新バージョンの直前のバージョンに書き換えておく必要もない。すなわち、情報処理装置1では、プログラム格納部18に格納されているメインプログラムを、最新バージョンやあるいはそれ以前の新たなバージョンに書き換えることなく、展開プログラム格納部17に展開されたメインプログラムを、複数回のバージョンアップ処理によって最新バージョンに更新することができる。したがって、情報処理装置1は、メインプログラムの更新途中においてプログラム更新処理が失敗に終わった場合であっても、プログラム格納部18に格納されている旧メインプログラムに従って起動し、かつ動作することができる。
例えば、プログラム格納部18にバージョン1.0のメインプログラムが格納されており、かつ、パッチデータ格納部19においてバージョン1.2のメインプログラムに対応した第1パッチデータと、バージョン2.0(最新版)のメインプログラムに対応した第2パッチデータとが格納されている場合、情報処理装置1は、まず、展開プログラム格納部17に展開されているメインプログラムを、第1パッチデータを用いることによってバージョン1.2に更新する。この更新に成功すると、情報処理装置1は、次に、展開プログラム格納部17に展開されているバージョン1.2のメインプログラムを、第2パッチデータを用いてバージョン2.0に更新する。
このように、例えばバージョン1.2および2.0に対応した2つのパッチデータを用いることによって、情報処理装置1は、展開プログラム格納部17に展開されているバージョン1.0のメインプログラムに対して複数回のバージョンアップ処理を行い、これを最新のバージョン2.0に更新する。すなわち、情報処理装置1は、プログラム格納部18に格納されているバージョン1.0のメインプログラムを、途中段階のバージョン1.2やあるいは最新のバージョン2.0に書き換えることはない。したがって、情報処理装置1は、バージョン1.0のメインプログラムをプログラム格納部18に保持したまま、最新のバージョン2.0のメインプログラムに従って起動し、かつ動作する。
また、本実施形態では、まず、起動中の情報処理装置1において、パッチデータ取得部12がパッチデータを取得し、次に装置を再起動させていた。しかし、図7に示すように、パッチデータ取得部12は、装置の起動中ではなく、装置の電源が投入された後であり、かつプログラム更新部14によるメインプログラムの更新処理が行われる前に、パッチデータを取得することもできる。ここで、図7は、本発明の他の実施形態に係る情報処理装置1における、パッチデータ取得部12におけるパッチデータの取得および格納処理の流れを表す説明図である。
この形態の場合、図7に示すように、まず、電源スイッチ11がユーザによってオンにされる際、同時に、操作パネル10を通じて、ユーザによるプログラム更新指示が受け付けられる。これにより、操作パネル10は、パッチデータ取得部12に備えられるデータ取得部22に対してトリガを出力する。すると、トリガを受け取ったデータ取得部22は、サーバ20やリムーバブルディスク24などにアクセスして、パッチデータを取得する。これ以降の処理は、基本的に、上述したパッチデータ取得部12が行う処理と同一である。
しかし、この形態の場合、データ書き込み部23は、データバッファ部16内のパッチデータをパッチデータ格納部19に格納した後に、図1に示すような情報処理装置1の再起動を行わず、その代わりに、プログラム展開部13にトリガを出力する。これにより、装置の再起動は行われず、引き続き、プログラム展開部13によるメインプログラムの展開処理に始まる、一連のメインプログラムの更新および装置の起動処理が行われる。
以上の構成により、情報処理装置1は、過去に取得したパッチデータの不具合が原因となって、装置が起動しなくなった場合であっても、新たなパッチデータを取得でき、メインプログラムの更新処理を実行できる。
なお、情報処理装置1は、装置の起動中にユーザからのプログラム更新処理を受け付けた後、いったん再起動して、パッチデータを取得する形態であってもよい。この形態の場合、まず、情報処理装置1の起動中に、操作パネル10を通じて、ユーザによるプログラム更新指示が受け付けられる。すると、操作パネル10は、FLASH5に、プログラム更新指示フラッグを保存する。そして、操作パネル10は、情報処理装置1を再起動させる。
装置の再起動後、パッチデータ取得部12に備えられるデータ取得部22が、FLASH5内にプログラム更新指示フラッグが保存されているか確認する。そして、プログラム更新指示フラッグが保存されている場合、データ取得部22は、このフラッグを消去してから、サーバ20にアクセスしてパッチデータを取得し、データバッファ部16に格納する。そのため、パッチデータの取得が正常に行われれば、上述したように、プログラム更新部14によるプログラム更新処理が行われる。一方、更新指示フラッグが保存されていない場合、データ取得部22はパッチデータの取得を行わず、動作を終了する。
なお、情報処理装置1では、例えば、メインプログラム更新の際、サーバ20等から取得したパッチデータに欠陥があったり、あるいは、プログラムの更新に失敗したりした結果、装置を通常に起動できなくなった場合、リムーバブルディスク24や、通信ネットワーク回線を経由したサーバ20から、パッチデータを取得できなくなる可能性がある。
このような事態が生じた場合、情報処理装置1は、電源スイッチ11をオンにした時に、操作パネル10を通じたユーザからの特別起動モード指示を受け付けることによって、ダイレクト通信部6を通じたコンピュータ25からのパッチデータの取得のみが可能な、特別起動モードにより起動できる。
この起動モードでは、データ取得部22は、ダイレクト通信部6を通じて、コンピュータ25から直接、パッチデータを取得して、データバッファ部16に格納する。これにより、情報処理装置1が起動しない状況においても、システム起動部15による起動処理が開始される前に、データ取得部22がコンピュータ25からパッチデータを取得できる。したがって、プログラム更新部14がこのパッチデータを使用してメインプログラムの更新を行うことにより、情報処理装置1を再び起動させることができる。
なお、上述した各部材(起動処理部3、パッチデータ取得部12、プログラム展開部13、プログラム更新部14、システム起動部15、データ取得部22、およびデータ書き込み部23)は、いずれも機能ブロックであり、CPUなどの演算部21が図示しない記憶部に格納されたプログラム更新プログラムを実行し、図示しない入出力回路などの周辺回路を制御することによって、実現される。
したがって、本発明の目的は、上述した機能を実現するソフトウェアであるプログラム更新プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータによって読み取り可能に記録した記録媒体を、情報処理装置に供給し、この装置に備えられるコンピュータ(またはCPUやMPU、DSP)が、記録媒体に記録されているプログラムコードを読み出し実行することによって、達成可能である。
この場合、記録媒体から読み出されたプログラムコード自体が上述した機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。具体的には、情報処理装置1が備える起動処理部3は、情報処理装置1のメモリ(図示せず)に格納された所定のプログラムを、マイクロプロセッサなどの演算部21が実行することにより実現される。
一方で、上述した各部材は、上述したソフトウェアと同様の処理を行うハードウェアとして実現してもよい。この場合、本発明の目的は、ハードウェアである情報処理装置によって達成されることになる。
また、演算部21は、単体の構成であってもよいし、あるいは、装置内部のバスや各種の通信路を介して接続された複数の演算部21が、協同してプログラムコードを実行する構成であってもよい。
ここで、演算部21によって直接的に実行可能なプログラムコードそのもの、または、後述する解凍などの処理によってプログラムコードを生成可能な、データとしてのプログラムは、これらのプログラムまたはデータを記録媒体に格納し、この記録媒体を配布したり、あるいは、プログラムを、有線または無線の通信路を介して伝送するための通信ネットワークによって送信したりして配布したりすることによって、演算部21で実行されるものとする。
このとき、通信ネットワークとしては、特に限定されず、具体的には、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体(通信路)としては、特に限定されず、具体的には、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
なお、プログラムを配布する際の記録媒体は、取り外し可能であることが好ましい。しかし、プログラムを配布した後の記録媒体は、取り外し可能であるか否かを問わない。また、記録媒体は、プログラム更新プログラムが記録されている媒体であれば、書き換え(書き込み)可能か否か、あるいは揮発性か否かは問われず、また、記録方法および形状も問われない。
このような記録媒体を例示すると、磁気テープやカセットテープなどのテープ、フロッピー(登録商標)ディスクやハードディスクなどの磁気ディスク、CD−ROMや光磁気ディスク(MO)、ミニディスク(MD)、デジタルビデオディスク(DVDなどのディスクなどである。また、上記記録媒体は、ICカードや光カードのようなカード、あるいは、マスクROMやEPROM、EEPROMまたはフラッシュROMなどの半導体メモリであっても良い。あるいは、CPUなどの演算部21内に形成されるメモリであってもよい。
なお、プログラムコードを記録媒体から読み出して主記憶に格納するためのプログラム、および、通信ネットワークからプログラムコードをダウンロードするためのプログラムは、コンピュータによって実行可能にあらかじめ装置に格納されているものとする。
また、プログラムコードは、上述した各処理の全手段を演算部21へ指示するコードであればよい。または、プログラムコードは、所定の手順で呼び出すことによって、各処理の一部または全部を実行可能な基本プログラム(例えば、オペレーティングシステムやライブラリなど)がすでに存在していれば、この基本プログラムの呼び出しを、演算部21へ指示するコードやポインタなどによって、全手順の一部または全部を置き換えても良い。
また、記録媒体にプログラムを格納する際の形式は、例えば、実メモリに配置した状態のように、演算部21がアクセスして実行可能な格納形式であればよい。または、実メモリに配置する前で、演算部21が常時アクセス可能なローカルな記録媒体(例えば、実メモリやハードディスクなど)にインストールした後の格納形式や、あるいは、通信ネットワークや搬送可能な記録媒体などから、ローカルな記録媒体にインストールする前の格納形式であっても良い。
また、プログラムは、コンパイルされた後のオブジェクトコードに限る物ではなく、ソースコードや、インタプリトまたはコンパイルの途中で生成される中間コードとして、記録媒体に格納されていてもよい。いずれの場合であっても、圧縮された情報の解凍、符号化された情報の復元、インタプリト、コンパイル、リンク、または、実メモリへの配置などの処理、あるいは、これらの処理の組み合わせによって、中間コードを演算部21が実行可能な形式に変換可能であれば、プログラムを記録媒体に格納する際の形式にかかわらず、同様の効果を得ることができる。
なお、本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
本発明の情報処理装置は、例えばプリンタ、複写機、ファックスなど、プログラムに従って動作し、そのプログラムを更新可能な装置に広く適用できる。
本発明の一実施形態に係る情報処理装置の概略的な構成を示すブロック図である。 本発明の一実施形態に係る情報処理装置の構成をさらに詳細に示すブロック図である。 パッチデータ取得部におけるパッチデータの取得および格納処理の流れを表す説明図である。 パッチデータ取得部における処理の流れを表すフローチャートである。 プログラム展開部、プログラム更新部、およびシステム起動部における処理の流れを表すフローチャートである。 パッチデータ取得部がリムーバブルディスクまたはコンピュータからパッチデータを取得する形態を表したブロック図である。 本発明の他の実施形態に係る情報処理装置における、パッチデータ取得部におけるパッチデータの取得および格納処理の流れを表す説明図である。
符号の説明
1 情報処理装置
2 制御部
3 起動処理部
4 RAM
5 FLASH
6 ダイレクト通信部
7 通信部
8 ディスクドライブ
9 表示部
10 操作パネル
11 電源スイッチ
12 パッチデータ取得部(パッチデータ取得手段)
13 プログラム展開部(プログラム展開手段)
14 プログラム更新部(プログラム更新手段)
15 システム起動部(起動手段)
16 データバッファ部(副記憶部)
17 展開プログラム格納部(主記憶部)
18 プログラム格納部(第1不揮発性記憶部)
19 パッチデータ格納部(第2不揮発性記憶部)
20 サーバ(外部)
21 演算部
22 データ取得部
23 データ書き込み部
24 リムーバブルディスク(外部)
25 コンピュータ(外部)
S23 プログラム更新工程

Claims (10)

  1. 主記憶部に展開されたメインプログラムを演算部が実行する情報処理装置において、
    上記演算部が上記主記憶部に展開されたメインプログラムを実行する前に、当該メインプログラムと新バージョンのメインプログラムとの差分情報を有するパッチデータを用いて、上記主記憶部に展開されたメインプログラムを書き換えることによって、上記メインプログラムを新バージョンに更新するプログラム更新手段を備えることを特徴とする情報処理装置。
  2. 上記プログラム更新手段は、上記メインプログラムを更新した後に、この更新が正常に完了したか否かを判定するものであり、
    上記プログラム更新手段が上記メインプログラムの更新は正常に完了したと判定した場合に、上記主記憶部に展開されている、新バージョンに更新されたメインプログラムを上記演算部に実行させる起動手段をさらに備えることを特徴とする請求項1に記載の情報処理装置。
  3. 上記プログラム更新手段が、上記メインプログラムの更新は正常に完了しなかったと判定した場合に、上記メインプログラムを格納した第1不揮発性記憶部から上記メインプログラムを読み出し、上記演算部によって実行可能な形式に展開して、上記主記憶部に格納するプログラム展開手段をさらに備えるとともに、
    上記起動手段が、上記プログラム展開手段によって上記主記憶部に展開されたメインプログラムを上記演算部に実行させるものであることを特徴とする請求項2に記載の情報処理装置。
  4. 上記プログラム更新手段が、上記メインプログラムの更新は正常に完了しなかったと判定した場合に、上記メインプログラムを格納した第1不揮発性記憶部から上記メインプログラムを読み出し、上記演算部によって実行可能な形式に展開して、上記主記憶部に格納するプログラム展開手段をさらに備えるとともに、
    上記プログラム更新手段が、上記プログラム展開手段によって上記主記憶部に展開されたメインプログラムを上記パッチデータを用いて更新するものであることを特徴とする請求項2に記載の情報処理装置。
  5. 上記パッチデータを外部から取得して、第2不揮発性記憶部に格納するパッチデータ取得手段をさらに備えており、
    上記プログラム更新手段は、上記パッチデータ取得手段が外部から取得して上記第2不揮発性記憶部に格納したパッチデータを用いて、上記主記憶部に展開されたメインプログラムを更新することを特徴とする請求項1〜4の何れか1項に記載の情報処理装置。
  6. 上記パッチデータ取得手段は、外部からのパッチデータの取得に成功した場合に、当該外部から取得したパッチデータを上記第2不揮発性記憶部に格納するものであることを特徴とする請求項5に記載の情報処理装置。
  7. 上記パッチデータ取得手段は、自装置の電源が投入された後であり、かつ上記プログラム更新手段が上記主記憶部に展開されたメインプログラムを更新する前に、外部からパッチデータを取得することを特徴とする、請求項5または6に記載の情報処理装置。
  8. 主記憶部に展開されたメインプログラムを演算部が実行する情報処理装置のプログラム更新方法であって、
    上記演算部が上記主記憶部に展開されたメインプログラムを実行する前に、当該メインプログラムと、新バージョンのメインプログラムとの差分情報を有するパッチデータを用いて、上記主記憶部に展開されたメインプログラムを書き換えるプログラム更新工程を含むことを特徴とするプログラム更新方法。
  9. 請求項1から7のいずれか1項に記載の情報処理装置を動作させるプログラム更新プログラムであって、コンピュータを上記の各手段として機能させるためのプログラム更新プログラム。
  10. 請求項9に記載のプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2004055173A 2004-02-27 2004-02-27 情報処理装置、プログラム更新方法、プログラム更新プログラム、およびプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体 Withdrawn JP2005242930A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004055173A JP2005242930A (ja) 2004-02-27 2004-02-27 情報処理装置、プログラム更新方法、プログラム更新プログラム、およびプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004055173A JP2005242930A (ja) 2004-02-27 2004-02-27 情報処理装置、プログラム更新方法、プログラム更新プログラム、およびプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体

Publications (1)

Publication Number Publication Date
JP2005242930A true JP2005242930A (ja) 2005-09-08

Family

ID=35024577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004055173A Withdrawn JP2005242930A (ja) 2004-02-27 2004-02-27 情報処理装置、プログラム更新方法、プログラム更新プログラム、およびプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体

Country Status (1)

Country Link
JP (1) JP2005242930A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100710845B1 (ko) * 2006-01-23 2007-04-23 염찬섭 중복 패치 방지 방법
JP2007249340A (ja) * 2006-03-14 2007-09-27 Fujitsu Ltd ソフトウェアアップデート方法、アップデート管理プログラム、情報処理装置
JP2010198387A (ja) * 2009-02-25 2010-09-09 Kyocera Corp 電子機器
JP2016143132A (ja) * 2015-01-30 2016-08-08 京セラドキュメントソリューションズ株式会社 ファームウェア更新システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100710845B1 (ko) * 2006-01-23 2007-04-23 염찬섭 중복 패치 방지 방법
JP2007249340A (ja) * 2006-03-14 2007-09-27 Fujitsu Ltd ソフトウェアアップデート方法、アップデート管理プログラム、情報処理装置
JP2010198387A (ja) * 2009-02-25 2010-09-09 Kyocera Corp 電子機器
JP2016143132A (ja) * 2015-01-30 2016-08-08 京セラドキュメントソリューションズ株式会社 ファームウェア更新システム

Similar Documents

Publication Publication Date Title
US8041988B2 (en) Firmware update for consumer electronic device
KR100750132B1 (ko) 부팅, 소프트웨어 자동 업데이트 및 에러 복원 방법과 그시스템, 그 방법을 기록한 컴퓨터 판독 가능한 기록매체
US8539471B2 (en) Updating firmware of an electronic device
US8726262B2 (en) Firmware update system and information apparatus, and program
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
US20050060528A1 (en) Booting and boot code update method and system thereof
US20090254898A1 (en) Converting a device from one system to another
GB2466685A (en) Fault tolerant updating of firmware
CN102334100A (zh) 程序更新设备、程序更新方法以及信息处理设备
JP2008504628A (ja) 安全なフラッシング
JP2001331327A (ja) 電子機器
WO2018049798A1 (zh) 一种缓存分区重构的方法和装置
US20230132494A1 (en) Information processing apparatus, method of controlling the same, and storage medium
JP5084853B2 (ja) ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム
JP2005284902A (ja) 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム
JP2005242930A (ja) 情報処理装置、プログラム更新方法、プログラム更新プログラム、およびプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005215841A (ja) ソフトウエア修正機能付き携帯電話端末装置
JP2003157204A (ja) データ書き換え装置及びデータ書き換え方法並びに記憶媒体
JP2006072982A (ja) データ処理装置およびファームウェアの更新方法
JPH0793276A (ja) コンピュータの立ち上げ方式
JP2005128613A (ja) 画像形成装置
JP2001273143A (ja) 電子制御装置
CN117270914B (zh) 一种终端设备的系统升级方法、装置、设备和介质
JP2007133602A (ja) 情報処理システムおよび車載装置
JP2003122575A (ja) 情報処理装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070501