(57)【要約】【課題】プログラムの更新を迅速に行う情報処理装置、及びプログラム更新方法を提供する。【解決手段】第１の記憶手段に記憶された圧縮プログラムを第２の記憶手段に展開し、前記第２の記憶手段に展開されたプログラムの実行を開始し、前記第１の記憶手段に記憶されたプログラムを更新する更新プログラムを取得し、前記更新プログラムを取得すると、実行が開始されたプログラムの実行中に前記第１の記憶手段に記憶された圧縮プログラムを更新プログラムに更新する。【選択図】図４
2007148656.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶手段に記憶された圧縮プログラムを第２の記憶手段に展開する展開手段と、
前記第２の記憶手段に展開されたプログラムの実行を開始する実行開始手段と、
前記第１の記憶手段に記憶された圧縮プログラムを更新する更新プログラムを取得する更新プログラム取得手段と、
前記更新プログラム取得手段が前記更新プログラムを取得すると、前記実行開始手段により実行が開始されたプログラムの実行中に前記第１の記憶手段に記憶された圧縮プログラムを更新プログラムに更新する更新手段と、
を有する情報処理装置。
【請求項２】
前記実行開始手段により実行が開始された前記プログラムは、記録媒体に画像を形成する画像形成処理を実行する画像形成プログラムを含む請求項１に記載の情報処理装置。
【請求項３】
前記更新手段が前記圧縮プログラムの更新を完了し、かつ前記画像形成処理を実行する必要がない場合に、当該情報処理装置を再起動する再起動手段を更に有する請求項２に記載の情報処理装置。
【請求項４】
第１の記憶手段に記憶された圧縮プログラムを第２の記憶手段に展開する展開段階と、
前記第２の記憶手段に展開されたプログラムの実行を開始する実行開始段階と、
前記第１の記憶手段に記憶された圧縮プログラムを更新する更新プログラムを取得する更新プログラム取得段階と、
前記更新プログラム取得段階で前記更新プログラムを取得すると、前記実行開始段階により実行が開始されたプログラムの実行中に前記第１の記憶手段に記憶された圧縮プログラムを更新プログラムに更新する更新段階と、
を有する情報処理装置におけるプログラム更新方法。
【請求項５】
前記実行開始段階により実行が開始された前記プログラムは、記録媒体に画像を形成する画像形成処理を実行する画像形成プログラムを含む請求項４に記載のプログラム更新方法。
【請求項６】
前記更新段階で前記圧縮プログラムの更新を完了し、かつ前記画像形成処理を実行する必要がない場合に、当該情報処理装置を再起動する再起動段階を更に有する請求項５に記載のプログラム更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム更新方法に係り、特にプログラムにより動作する情報処理装置でのプログラム更新方法、及びその方法を実行する情報処理装置に関する。
【背景技術】
【０００２】
近年のネットワークの普及に伴い、パソコンに限らず画像形成装置など多くの情報処理装置がネットワーク接続可能な装置となっている。ネットワークに接続可能であれば、装置に搭載されているプログラムを更新する新たなプログラムをダウンロードし、その新たなプログラムに更新することで、装置のプログラムを最新のプログラムとすることが可能となる。
【０００３】
情報処理装置が動作している場合、何らかのプログラムは常に実行されているので、実行中のプログラムを更新するとプログラムが暴走し、装置に不具合が生じる。
【０００４】
そこで、特許文献１には、画像形成装置におけるプログラムの更新において、画像処理の実行ができなくなるトラブルが発生したとき（例えば、トナー切れ等）に、新しいプログラム（ファームウェア）に更新する画像形成装置が開示されている。なお、ファームウェアとは、単に組み込み系におけるプログラムを示すものであるので、以下の説明ではいずれの表現も用いることとする。
【０００５】
特許文献２には、図７のタイムチャートに示される処理を改善するために、図８のタイムチャートに示される処理を実行する画像処理装置が開示されている。
【０００６】
図７のタイムチャートには、ファームウェア書換え後の処理（Ｖ−Ｗ間）と、節電モード（Ｘ−Ｙ間）後の復帰処理（Ｙ−Ｚ間）とが示されている。この処理に対し、特許文献２に開示された画像処理装置は、図８のタイムチャートに示されるように、ファームウェア書換え後に節電モード（Ｂ−Ｃ間）を実行することにより、図７のタイムチャートにおける一定時間（Ｗ−Ｘ間）と、復帰処理（Ｙ−Ｚ間）に要する時間とを削減したものである。
【特許文献１】特開２００３−０６７１５２号公報
【特許文献２】特開２００３−０６７１７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に開示された画像形成装置では、何らかのトラブルが発生しない限りファームウェアの更新がされないので、例えば新機能の追加や、緊急性を伴う場合のファームウェアの更新には対応することができない。
【０００８】
また、特許文献２に開示された画像処理装置では、図８に示されるようにプリントジョブ実行中は、ファームウェアの更新をすることができない。
【０００９】
このように、いずれの特許文献においてもプログラムの更新を迅速に行えないという問題点があった。
【００１０】
本発明は上記問題点に鑑み、プログラムの更新を迅速に行う情報処理装置、及びプログラム更新方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために請求項１の発明は、第１の記憶手段に記憶された圧縮プログラムを第２の記憶手段に展開する展開手段と、前記第２の記憶手段に展開されたプログラムの実行を開始する実行開始手段と、前記第１の記憶手段に記憶された圧縮プログラムを更新する更新プログラムを取得する更新プログラム取得手段と、前記更新プログラム取得手段が前記更新プログラムを取得すると、前記実行開始手段により実行が開始されたプログラムの実行中に前記第１の記憶手段に記憶された圧縮プログラムを更新プログラムに更新する更新手段と、を有する。
【００１２】
ここで、請求項１に記載の情報処理装置では、第１の記憶手段に記憶された圧縮プログラムを第２の記憶手段に展開し、前記第２の記憶手段に展開されたプログラムの実行を開始し、前記第１の記憶手段に記憶されたプログラムを更新する更新プログラムを取得し、前記更新プログラムを取得すると、実行が開始されたプログラムの実行中に前記第１の記憶手段に記憶された圧縮プログラムを更新プログラムに更新するので、実行されている処理の終了を待つことなくプログラムの更新を迅速に行うことができる。
【００１３】
また、請求項２の発明は、前記実行開始手段により実行が開始された前記プログラムは、記録媒体に画像を形成する画像形成処理を実行する画像形成プログラムを含む。
【００１４】
ここで、請求項２に記載の情報処理装置では、画像形成処理実行中であってもプログラムを更新することができる。
【００１５】
請求項３の発明は、前記更新手段が前記圧縮プログラムの更新を完了し、かつ前記画像形成処理を実行する必要がない場合に、当該情報処理装置を再起動する再起動手段を更に有する。
【００１６】
ここで、請求項３に記載の情報処理装置では、圧縮プログラムを更新した場合でも画像形成処理を可能な限り実行することができる。
【００１７】
請求項４の発明は、第１の記憶手段に記憶された圧縮プログラムを第２の記憶手段に展開する展開段階と、前記第２の記憶手段に展開されたプログラムの実行を開始する実行開始段階と、前記第１の記憶手段に記憶された圧縮プログラムを更新する更新プログラムを取得する更新プログラム取得段階と、前記更新プログラム取得段階で前記更新プログラムを取得すると、前記実行開始段階により実行が開始されたプログラムの実行中に前記第１の記憶手段に記憶された圧縮プログラムを更新プログラムに更新する更新段階と、を有する。
【００１８】
ここで、請求項４に記載のプログラム更新方法も、請求項１に記載の発明と同様の効果を得ることができる。
【００１９】
請求項５の発明は、前記実行開始段階により実行が開始された前記プログラムは、記録媒体に画像を形成する画像形成処理を実行する画像形成プログラムを含む。
【００２０】
ここで、請求項５に記載のプログラム更新方法も、請求項２に記載の発明と同様の効果を得ることができる。
【００２１】
請求項６の発明は、前記更新段階で前記圧縮プログラムの更新を完了し、かつ前記画像形成処理を実行する必要がない場合に、当該情報処理装置を再起動する再起動段階を更に有する。
【００２２】
ここで、請求項６に記載のプログラム更新方法も、請求項３に記載の発明と同様の効果を得ることができる。
【発明の効果】
【００２３】
本発明によれば、プログラムの更新を迅速に行う情報処理装置、及びプログラム更新方法を提供することができるという効果が得られる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。なお、本実施の形態は、画像形成装置用の情報処理装置として説明する。従来の一般的な画像形成装置の場合、コスト削減などの理由により、搭載されているＲＡＭの容量はさほど大きなものではなく、さらに画像形成装置が扱うデータは画像データなどの比較的大きなサイズのデータであるので、プログラムはフラッシュメモリなどのＲＯＭ上で動作するのが一般的である。
【００２５】
図１は、本実施の形態に係る画像形成装置の構成を示す図である。画像形成装置１０は、ＣＰＵ１２と、フラッシュメモリ１４と、ＲＡＭ１６と、ＮＶＭ（Non-Volatile Memory）１８と、ネットワークＩ／Ｆ２０と、プリンタエンジン２２と、ＨＤＤ２４と、ＵＩ（User Interface）２６とを含む。
【００２６】
ＣＰＵ１２は、画像形成装置１０の全体の動作を司るものであり、後述するフローチャートは、ＣＰＵ１２により実行される。フラッシュメモリ１４は、ＲＡＭ１６に展開されるプログラム並びに起動時に動作するブートプログラムが記憶されている。このフラッシュメモリ１４は、第１の記憶手段に対応する。
【００２７】
ＲＡＭ１６は、プログラムを記憶したり、一時的な情報を記憶するためのワークエリアとして用いられる。このＲＡＭ１６は、第２の記憶手段に対応する。上記フラッシュメモリ１４とＲＡＭ１６のメモリマップについては後述する。
【００２８】
ＮＶＭ１８は、不揮発性のメモリであり、例えば名称や電話番号など、画像形成装置の設置場所に関する普遍的なデータが記憶される。ネットワークＩ／Ｆ２０は、ネットワークに接続するためのものであり、ＮＩＣやそのドライバで構成される。このネットワークＩ／Ｆ２０により、更新プログラムを提供するサーバに接続されている。
【００２９】
プリンタエンジン２２は、紙などの記録媒体に画像を形成するエンジンである。ＨＤＤ２４は、画像データなどが記録される不揮発性の記憶装置である。ＵＩ２６は、ユーザが画像形成装置１０の操作や情報を入力する際に用いられるものである。バス２８は、情報のやりとりが行われる際に使用される。
【００３０】
次に、図２を用いてフラッシュメモリ１４とＲＡＭ１６のメモリマップについて説明する。図２には、フラッシュメモリ１４のメモリマップ３０と、ＲＡＭ１６のメモリマップ３２とが示されている。この図２における説明では、ブートプログラムとＲＡＭ１６に展開されるプログラムとを区別するために、後者をメインプログラムと表現する。また、メインプログラムは、プリンタエンジン２２を用いて記録媒体に画像を形成する画像形成処理を実行する画像形成プログラムを含む。
【００３１】
メモリマップ３０に示されるように、フラッシュメモリ１４にはブートプログラムと圧縮されたメインプログラムとが記憶されている。また、メモリマップ３２に示されるように、ＲＡＭ１６は、伸張されたメインプログラムを記憶する。
【００３２】
ブートプログラムは、電源投入時に最初に呼び出されるプログラムである。一般的に、ブートプログラムはまず各種デバイスの初期化を行い、ＯＳ（オペレーティングシステム）の初期コードに制御を移すプログラムであり、高レベルなソフトウェアを実行するために、段階を追って初期化を行なうプログラムである。
【００３３】
本実施の形態におけるブートプログラムの処理を、図３のフローチャートを用いて説明する。ステップＳ１０１で、各デバイスの初期化が行われる。ステップＳ１０２で、ＯＳが起動される。ステップＳ１０３で、フラッシュメモリ１４に記憶されている圧縮されたメインプログラムを伸張し、ＲＡＭ１６に展開する。その後、ステップＳ１０４で、展開したメインプログラムにプログラムカウンタをジャンプさせることで、ＲＡＭ１６上のメインプログラムの実行を開始する。実行が開始されると、ＣＰＵ１２により各命令が順次実行される。
【００３４】
この処理により、ＣＰＵ１２はＲＡＭ１６に展開されたメインプログラムのみを対象とするため、フラッシュメモリ１４に記憶されたメインプログラムが更新されたとしても、不具合を発生することなく画像形成などの通常の処理を実行することができる。
【００３５】
なお、上述したステップＳ１０３の処理は、展開手段に対応し、ステップＳ１０４の処理は実行開始手段に対応する。
【００３６】
次に、フラッシュメモリ１４に記憶されたメインプログラムを更新する処理について、フローチャートを用いて説明する。このフローチャートに説明では、メインプログラムを単にプログラムと表現し、フラッシュメモリ１４に記憶されたプログラムを更新するプログラムを更新プログラムと表現する。
【００３７】
上述したブートプログラムにより実行が開始されたプログラムは、各処理ごとのスレッドとしてディスパッチャにより順次処理を実行するので、各スレッドは見かけ上並行して動作する。また、これらのスレッドは、スレッド間メッセージを用いて情報や命令のやり取りを行う。なお、スレッドと同様のものとして、プロセスやタスクなどがあるが、これらの呼称はＯＳの種類などに依存する。従って、本実施の形態におけるスレッドとは、他のスレッドとメッセージの送受信が可能で、一定の処理を実行するものとする。
【００３８】
また、スレッドは画像形成装置において多く存在するが、以下の実施の形態では、本実施の形態に関連するプログラム更新スレッドと画像形成スレッドにおける処理について説明する。
【００３９】
まずプログラム更新スレッドについて説明する。プログラム更新スレッドは、更新プログラムを取得し、フラッシュメモリ１４のプログラムを更新する処理と、リブート処理を実行する。具体的に図４を用いて詳細を説明する。
【００４０】
ステップＳ２０１は、他のスレッドからのメッセージ受信による分岐処理である。この処理における他のスレッドとして、本実施の形態では上述した画像形成スレッドと、ネットワークからメッセージを受信し、メッセージ内容に応じて他のスレッドにメッセージを配信するネットワークスレッドがある。
【００４１】
ステップＳ２０１で受信するメッセージには、更新プログラム受信通知と、リブート不可応答と、リブート可応答がある。このうち、更新プログラム受信通知は、ネットワークスレッドからのメッセージであり、リブート不可応答とリブート可応答は画像形成スレッドからのメッセージである。
【００４２】
更新プログラム受信通知を受信した場合、ステップＳ２０２で、プログラム更新スレッドは、更新プログラムをネットワークを介して取得する。そして、ステップＳ２０３で、フラッシュメモリ１４に記憶されたプログラムを、取得した更新プログラムに更新する。プログラムの更新が完了すると、ステップＳ２０４で、画像形成スレッドにリブート可否要求を送信する。
【００４３】
このリブート可否要求とは、更新したプログラムで動作させるために一旦リブートする必要があるが、画像形成処理実行中はリブートしないため、画像形成処理を実行中かどうか画像形成スレッドに尋ねるためのメッセージである。
【００４４】
このメッセージに対する応答が、リブート不可応答とリブート可応答である。ステップＳ２０１で、リブート可応答を受信した場合、ステップＳ２０７で、リブート処理を実行する。リブート不可応答を受信した場合、ステップＳ２０５で、画像形成処理の終了を待つために、一定時間のタイマをセットする。ステップＳ２０６で、タイムアウトとなると、再びステップＳ２０４で、画像形成スレッドにリブート可否要求を送信する。
【００４５】
以上説明したように、プログラム更新スレッドは、プログラムの更新を完了し、かつ画像形成処理を実行する必要がない場合に、画像形成装置をリブートする。
【００４６】
なお、上述したステップＳ２０２の処理は更新プログラム取得手段に対応する。またステップＳ２０３の処理は更新手段に対応する。さらにステップＳ２０７の処理は、再起動手段に対応する。
【００４７】
次に、図５を用いて画像形成スレッドの処理について説明する。ステップＳ３０１は、プログラム更新スレッドからのリブート可否要求受信待ちである。もちろん画像形成スレッドは、このメッセージだけではなく、他の多くのメッセージも受信するが、ここではプログラムの更新に関するメッセージであるリブート可否要求受信待ちについてのみの説明とする。
【００４８】
リブート可否要求を受信すると、画像形成スレッドは、ステップＳ３０２で、画像形成処理実行中かどうか判断する。画像形成処理実行中の場合、ステップＳ３０３で、リブートを許可しないメッセージであるリブート不可応答をプログラム更新スレッドに送信する。
【００４９】
画像形成処理実行中ではない場合、ステップＳ３０４でリブートを許可するメッセージであるリブート可応答をプログラム更新スレッドに送信する。リブート可応答を受信したプログラム更新スレッドは、上述したようにリブート処理を実行する。
【００５０】
上記ステップＳ３０２では、画像形成処理実行中かどうかの判断が行われるが、この画像形成処理実行中とは、例えばコピー実行中やパソコンなどからの印刷要求によるプリント中であることを示す。そして、例えばプリント中に新たなプリント要求をパソコンから受信したときのような、キューに画像形成処理要求が並んでいる間も画像形成処理実行中と判断する。キューに並んでいる画像形成処理要求を全て実行し、画像形成処理を実行する必要がない場合、画像形成スレッドは、リブート可応答を送信する。
【００５１】
このようにすることにより、プログラムを更新した後も、画像形成処理を実行することができる。
【００５２】
以上説明した処理を、具体的に図６を用いて説明する。図６は、画像形成処理中にプログラムを更新し、リブートする場合のタイムチャートを示す図である。このタイムチャートでは、まずプリント処理Ａが実行中となっている。このプリント処理Ａの実行中に、更新プログラムを受信する。
【００５３】
本実施の形態では、画像形成処理実行中であっても、プログラムの更新は可能なので、更新プログラムの受信と共にプログラムの更新が行われる。
【００５４】
プログラムの更新中にプリント処理Ａが終了し、その後プリント処理Ｂ要求を受信するので、プリント処理Ｂが実行される。プリント処理Ｂが終了した時点で画像形成処理を実行する必要がない状態であり、かつプログラムの更新も完了しているので、リブート処理が実行される。
【００５５】
再起動後の初期化中にプリント処理Ｃ要求を受信し、ウォームアップ後にプリント処理Ｃが実行される。
【００５６】
図７、８で説明した従来技術と比較して、少なくともプログラム更新（Ｈ−Ｉ間）時間は短縮することができるので、プログラムの更新を迅速に行うことができる。
【００５７】
以上説明した実施の形態において、更新プログラムは、ネットワークを介して取得するものであったが、例えばメモリカードなどの着脱自在な記録媒体から取得するようにしても良い。
【００５８】
また、プログラムはフラッシュメモリ１４ではなくＨＤＤ２４に記憶されている場合でも、画像形成処理中にプログラムの更新を実行することが可能である。
【００５９】
さらに、画像形成装置の場合、接続されているエンジン自体もプログラムを有する場合がある。そのようなエンジンのプログラムも同様に、他の処理を実行しながらプログラムを更新することができる。
【００６０】
また、本実施の形態では、画像形成処理中に更新するものであったが、例えばスキャナとしての処理、あるいはファックスとしての処理を実行中であっても良い。
【図面の簡単な説明】
【００６１】
【図１】本実施の形態に係る画像形成装置の構成を示す図である。
【図２】フラッシュメモリのメモリマップと、ＲＡＭのメモリマップとを示す図である。
【図３】ブートプログラムの処理を示すフローチャートである。
【図４】プログラム更新スレッド処理を示すフローチャートである。
【図５】画像形成スレッド処理を示すフローチャートである。
【図６】画像形成処理中にプログラムを更新し、リブートする場合のタイムチャートである。
【図７】従来技術におけるファームウェア書換え後の処理と、復帰処理とを示すタイムチャートである（その１）。
【図８】従来技術におけるファームウェア書換え後の処理と、復帰処理とを示すタイムチャートである（その２）。
【符号の説明】
【００６２】
１０  画像形成装置
１２  ＣＰＵ
１４  フラッシュメモリ
１６  ＲＡＭ
２２  プリンタエンジン
３０、３２  メモリマップ
【図１】
2007148656.tif 000003
【図２】
2007148656.tif 000004
【図３】
2007148656.tif 000005
【図４】
2007148656.tif 000006
【図５】
2007148656.tif 000007
【図６】
2007148656.tif 000008
【図７】
2007148656.tif 000009
【図８】
2007148656.tif 000010