JP4463061B2 - 電子機器のファームウェア管理装置及び管理方法 - Google Patents

電子機器のファームウェア管理装置及び管理方法 Download PDF

Info

Publication number
JP4463061B2
JP4463061B2 JP2004284314A JP2004284314A JP4463061B2 JP 4463061 B2 JP4463061 B2 JP 4463061B2 JP 2004284314 A JP2004284314 A JP 2004284314A JP 2004284314 A JP2004284314 A JP 2004284314A JP 4463061 B2 JP4463061 B2 JP 4463061B2
Authority
JP
Japan
Prior art keywords
firmware
errors
version
error
past
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.)
Expired - Fee Related
Application number
JP2004284314A
Other languages
English (en)
Other versions
JP2006099393A (ja
Inventor
裕之 石倉
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 JP2004284314A priority Critical patent/JP4463061B2/ja
Publication of JP2006099393A publication Critical patent/JP2006099393A/ja
Application granted granted Critical
Publication of JP4463061B2 publication Critical patent/JP4463061B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ファームウェアを具備する電子機器のファームウェア管理装置及びファームウェア管理方法に関する。
従来から、複合機,プリンタ,通信管理機器,コンピュータなどの機器は、その機能拡張や機器の不具合解消のために、その処理プログラム、すなわちファームウェアが機器内の書き換え可能なROM(Read Only Memory)などに書き換え可能に格納されている。コンピュータでは、OS(Operating System),BIOS(Basic Input/Output System)がこの処理プログラムに該当し、マザーボード上に装着されたフラッシュメモリ等の不揮発性メモリに記録されている。ファームウェアは、更新の必要がないものはマスクROM等に書き換え不能に記録されているものもあるが、近年の情報処理技術が急速に発達していることもあり、フラッシュメモリやEEPROM(Electrically Erasable and Programmable ROM)などに書き換え可能に記録されているものが多い。
従来から各種電子機器のファームウェアを更新する技術として、ROM内の起動プログラムを確実且つ復元可能な状態で更新制御するコンピュータ周辺装置及びそのプログラム更新制御方法が提案されている(例えば、特許文献1を参照)。特許文献1に記載の技術は、アドレスマップを変更し、周辺装置を制御する起動プログラムを書き換え可能なROMに記憶し、その起動プログラムを書き換える際に、ワークメモリ上で、既にROM上に書き込まれている起動プログラムをワークメモリ上に退避し、ダウンロードされた新規の起動プログラムの実行状態に基づいてROMの更新又はROMの復元を制御する。
また、特許文献1に記載の技術はアドレスマップの変更を必要とするため、ハードウェアが複雑になることなど種々の問題が生ずるが、このような問題を解消するためのファームウェア更新システムも提案されている(例えば、特許文献2を参照)。
特許文献2に記載のシステムは、フラッシュROMに格納されている旧ファームウェアを新ファームウェアに更新する場合に、番地格納手段により、フレキシブルディスク装置初期化手段の番地を示す番地情報を、不揮発性RAMの初期化手段番地格納領域に格納しておく。ファームウェアに更新後、エラーが発生すると、エラー情報をエラー情報格納領域に格納し、特別領域に、フレキシブルディスク装置初期化手段を複写し、さらにメモリの展開領域に展開し、実行し、旧ファームウェアに戻す。
特開平7−146837号公報 特開2000−3276号公報
上述したように、ファームウェアをアップデート後、不具合が生じた場合には、前回のファームウェアに戻すことが通常行われている。
しかしながら、前回のファームウェア自体が機能はするものの致命的な不具合が存在することや、致命的ではないが頻繁にエラーが生ずることもある。上述した特許文献1,2をはじめとするファームウェア更新に関する従来技術にあっても、新ファームウェアを書き込み可能なROMへ書き込む際の書き込みエラーや、新ファームウェアを一度実行した際のエラーに対しては、前回のファームウェアに戻すという対処ができるものの、前回のファームウェア自体の不具合には何ら対処できない。
従って、ファームウェアの更新者は、通常、新ファームウェアを搭載できた場合には、その状態を維持し、そうでない場合や感覚的にあまりにも実行時のエラーが多い場合には、新ファームウェアを採用せずに前回のファームウェアを実行可能に電子機器に搭載した状態に戻すことになる。実際には、新ファームウェア自体を起動することにより生ずるエラーが、前回のファームウェアを起動することにより生ずるエラーに比べて格段に多い場合であっても、その電子機器に詳しいサービスマンなどでない限りそのエラーがファームウェア起因のものであることは判り難いので、ユーザは新ファームウェアを実行可能に搭載したままその電子機器を利用することになる。
本発明は、上述のごとき実情に鑑みてなされたものであり、書き換え可能なファームウェアを搭載した電子機器に対し、そのファームウェアを新ファームウェアに更新した後に、記録されている他バージョンのファームウェアの中から適切なファームウェアを利用することが可能な、ファームウェア管理装置、ファームウェア管理プログラム、そのファームウェア管理装置又はファームウェア管理プログラムを搭載した電子機器、そのファームウェア管理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び、ファームウェア管理方法を提供することをその目的とする。
本発明は、上述のごとき課題を解決するために、以下の各技術手段でそれぞれ構成される。
第1の技術手段は、電子機器におけるファームウェア管理装置であって、現在使用中のファームウェア及び過去に用いられたバージョンのファームウェアを記憶する記憶手段を有し、
動作中に発生したファームウェアのエラー数をシステムエラーと通常エラーとを区分して計数する計数手段と、
前記計数手段により計数された前記各々のエラー数を、現在使用中のファームウェア及び過去に用いられたバージョンのファームウェアと対応して記憶する記憶手段と、
現在使用中のファームウェアの更新時から所定期間経過までの前記各々のエラーの1日当りの平均エラー数と、前記記憶手段に記憶された過去に用いられたバージョンの前記各々の1日当りの平均エラー数を算出し、それぞれ比較する比較手段と、
前記比較手段による比較結果に基づいて、過去に用いられたファームウェアの中から、前記システムエラーの平均エラー数が現在使用中のファームウェアのシステムエラーの平均エラー数より第1の所定割合以上少なく、且つ、当該ファームウェアの前記通常エラーの平均エラー数が現在使用中のファームウェアの前記通常エラーの平均エラー数よりも第2の所定の割合以上少ないファームウェアを特定する特定手段を備え、
該当するファームウェアが特定された場合、現在使用中のファームウェアを当該ファームウェアに変更する電子機器におけるファームウェア管理装置を特徴とする。
第2の技術手段は、現在使用中のファームウェア及び過去に用いられたバージョンのファームウェアを記憶する記憶手段及び、動作中に発生したファームウェアのエラー数をシステムエラーと通常エラーとを区分して計数し、計数した前記各々のエラー数を、現在使用中のファームウェア及び過去に用いられたバージョンのファームウェアと対応して記憶する記憶手段を備えた電子機器におけるファームウェア管理装置の管理方法であって、
前記記憶手段に記憶された計数値に基づき現在使用中のファームウェアの更新時から所定期間経過までの前記各々のエラーの1日当りの平均エラー数及び過去に用いられたバージョンの前記各々のエラーの1日当りの平均エラー数をそれぞれ算出するステップと、
算出した現在使用中のファームウェアと過去に用いられたバージョンのファームウェアの1日当りの前記平均エラー数をそれぞれ比較するステップと、
前記比較により、過去に用いられたファームウェアの中から、前記システムエラーの平均エラー数が現ファームウェアのシステムエラーの平均数より第1の所定割合以上少なく、且つ、当該ファームウェアの前記通常エラーの平均エラー数が現ファームウェアの前記通常エラーの平均エラー数よりも第2の所定の割合以上少ないファームウェアを特定するステップと、
該当するファームウェアが特定された場合、現ファームウェアを当該ファームウェアに変更するステップを含む電子機器におけるファームウェア管理装置の管理方法を特徴とする。
本発明によれば、書き換え可能なファームウェアを搭載した電子機器に対し、そのファームウェアを新ファームウェアに更新した後に、記録されている他バージョンのファームウェアの中から適切なファームウェアを利用することが可能となる。従って、本発明を適用することで、ファームウェアを更新した後にそれを旧バージョンのファームウェアに変更した場合であっても、そうでなくても、提供されている全てのバージョンの中で最適なバージョンのファームウェアが利用されるので、全バージョン中で不具合を最大限解消した状態にすることが可能となる。
本発明は、電子機器のファームウェアの管理に関するものである。本発明は、ファームウェア管理装置、ファームウェア管理プログラム、電子機器、そのプログラムを記録した記録媒体、或いは、ファームウェア管理装置又はファームウェア管理プログラムにおける処理手順に沿ったファームウェアの変更を行うファームウェア管理方法としての形態もある。ここで、その電子機器において現在利用中のファームウェア(以下、現ファームウェアという)は、そのバージョンをアップグレード或いはデグレードすることが可能なように、書き換え可能な不揮発性記憶手段に格納されているものとする。
また、本発明に係るファームウェア管理装置は、そのファームウェア管理プログラムを実行可能に組み込んだ装置として、或いはそれに対応する手段(後述の計数手段,比較手段,特定手段,変更手段,平均数算出手段等)をハードウェアとして搭載した装置として構成できる。そして、このようなファームウェア管理装置を電子機器にハードウェアとして搭載することで、或いは、このようなファームウェア管理プログラムをファームウェアの一部として電子機器に搭載することで、実行時のエラーを少なくするファームウェアが選定されるように、ファームウェアの管理を行う。ファームウェア管理プログラムをファームウェアの一部として電子機器に搭載する例としては、電子機器の書き換え可能な不揮発性半導体メモリ(フラッシュメモリ(フラッシュROM)等のEEPROMなどのPROM)に、自身を管理するファームウェア管理プログラムを含むファームウェアを実行可能に格納するか、或いは図10で後述するようにファームウェア管理プログラムのみをマスクROMなど書き換え不可能なメモリ(勿論書き換え可能なメモリでもよい)に一ファームウェアとして格納して現ファームウェアを書き換え可能な不揮発性半導体メモリに格納するなどが挙げられる。
このように、本発明に係る電子機器は、ここで説明するファームウェア管理装置を備えた電子機器、或いはファームウェア管理プログラムを実行可能に格納した電子機器として実現できる。ここで、電子機器としては、コピー機、ファクシミリ機、スキャナ、それらの複合機をはじめとして、ターミナルアダプタやルータ、ファイアウォールやウィルスチェック機能を組み込んだセキュリティ機器、ネットワークアダプタ等の通信機器、さらにはPC(パーソナルコンピュータ)内のネットワークアダプタ,ビデオエンコーダ等の各種ボード、テレビ受像機やビデオレコーダ等の家電機器、自動車など、様々な分野の電子機器やその構成部品が挙げられる。
以下、本発明を、ファームウェア管理装置を中心として説明し、さらにファームウェア管理装置が、ファームウェア管理プログラムを含む現ファームウェアが実行可能に組み込まれた装置であること、及び過去に利用されたことのある歴代のバージョンのファームウェアのそれぞれにもこのファームウェア管理プログラムが含まれること、を前提として主に説明する。そして、本発明に係るファームウェア管理プログラムを含む現ファームウェアが、電子機器の一例としての、複合機のメインコントローラに実行可能に組み込まれる形態を中心に説明する。従って、ここでは、ファームウェア管理装置はメインコントローラにおける、演算装置、各種記憶装置、及びファームウェア管理プログラムから構成されることになる。なお、本発明に係るプログラム、電子機器、記録媒体、方法についても、これらの前提に限定されることなく、以下の説明が流用できることは言及するまでもない。
図1は、本発明の一実施形態に係るファームウェア管理装置の一構成例を示す図で、複合機のメインコントローラに組み込まれたファームウェア管理装置の一例を示す図である。図中、1はメインコントローラ(以下、単にコントローラという)、2は画像印字部(プリンタ部)、3は画像読み取り部(スキャナ部)、4は外部I/F(インターフェース)、11はRAM、12フラッシュROM(以下、フラッシュメモリという)、13はCPU、14はストレージデバイスである。
ここで例示する複合機は、画像を印字する画像印字部2、原稿の画像を読み取る画像読み取り部3、及びLAN(Local Area Network)アダプタ等の外部I/Fなどが、それらにバス接続されたコントローラ1によって制御されている。
コントローラ1は、処理データ格納用のRAM(Randam Access Memory)11、実行プログラム格納用のフラッシュメモリ12、CPU(中央演算処理装置)13、及び過去のファームウェア・エラー履歴格納用のストレージデバイスによって構成されている。本発明に係るファームウェア管理プログラムを含んだ現ファームウェアは、フラッシュメモリ12に格納されており、その実行時には、CPU13によってRAM11上に読み出されて実行され、この実行によりコントローラ1が機能し、画像印字部2,画像読み取り部3,外部I/F4などを集中的に制御する。なお、各部2〜4それぞれにサブコントローラが内蔵されていてもよい。さらに、現ファームウェアに対応する過去に利用したバージョンのファームウェアは、ストレージデバイス14に格納されている。
そして、本実施形態に係るファームウェア管理装置は、次の計数手段,比較手段,特定手段,変更手段を備えるものとする。計数手段は、現ファームウェアをコントローラ1で実行した際に発生したエラー数を計数する。実際には、例えばCPU13がエラー発生時毎にストレージデバイス14等の記憶装置におけるそのバージョンに対するエラー履歴のカウントをアップすることで、この計数結果をエラー履歴として記憶させておく。この計数処理は、現ファームウェアとなった歴代のバージョン(世代)のファームウェアに対しても行われ、計数の結果がストレージデバイス14にエラー履歴として格納される。
比較手段は、計数手段によって計数された現ファームウェアのエラー数と、過去に利用された1又は複数バージョンのファームウェアをコントローラ1で実行した際に発生したエラー数とを比較する。この比較処理は、例えば、CPU13がストレージデバイス14からエラー履歴をRAM11上に読み出して実行すればよい。
特定手段は、比較手段による比較結果に基づいて、過去に利用されたバージョンのファームウェアの中から、現ファームウェアに比べ利用に適したバージョンのファームウェアを特定する。ここで、現ファームウェアに比べて利用に適したバージョンがない場合には、特定しなければよい。この特定処理は、例えば、CPU13が比較処理結果に基づいて実行すればよい。そして、変更手段は、フラッシュメモリ12等の書き換え可能な不揮発性記憶手段に記憶されている現ファームウェアを、特定手段で特定されたバージョンのファームウェアに変更する。この変更処理については後述するが、現ファームウェアがコントローラ1内にある中で最新のファームウェアである場合には、デグレードとなる。ファームウェアの変更は、ファームウェアのバージョンアップ(グレードアップ)がファームウェア自体を書き換えることで実行されることを前提に説明しているが、パッチによりアップグレードする場合であっても、変更する際には、デグレードの場合でもそのパッチ部分を削除してやればよい。
なお、図1においては、上述の各手段は、それらの処理内容を手順とするプログラム(本実施形態に係るファームウェア管理プログラム)、及びそれを実行するためのCPU13等の演算装置で構成している。従って、このプログラムは、計数ステップ,比較ステップ,特定ステップ,変更ステップを含んでなる。また、本実施形態に係るファームウェア管理方法も、これらステップを含んでなる。
図2は、図1のファームウェア管理装置における処理例を説明するためのフロー図で、本発明の一実施形態に係るファームウェア管理プログラム及び方法による処理手順を説明するためのフロー図でもある。
ここでは、エラーとして、複合機ユーザによって回復が不可能なエラーであるシステムエラーのみを考慮した例を説明するが、その他のエラー(通信エラーやジャム等も含む)に対してのみ対応してもよいし、その双方を合わせて取り扱っても、さらには後述する他の実施形態のごとくその双方を個々に取り扱ってもよい。なお、システムエラーは、システムが停止するような致命的なエラーを指し、電源を入れ直して再起動によって回復するようなエラーや、別システムから起動させて復帰可能なエラーも含むものとする。
まず、一定期間経過したか否かを判定し(ステップS1)、一定期間が経過した段階でステップS2以降の処理を実行する。一定期間としては、1ヶ月,10日,1日など適宜決めればよく、また、電子機器或いはそのコントローラ1の稼動時間をベースにした期間に定めてもよい。また、ここでは、新ファームウェアを現ファームウェアとしてアップデートした時点から一定期間経過後にステップS2以降の処理を施すものとして説明するが、このファームウェアとは異なるファームウェア(バージョンが異なるのではなく対象が異なるファームウェア)を導入したときにそれとの相性などからエラーが発生し始めることも考えられ、ステップS2以降の処理を一定期間毎に実行するよう構成してもよい。
ステップS2では、現ファームウェアのその期間内のシステムエラー数を算出する(ステップS2)。過去バージョンのシステムエラー数をストレージデバイス14から読み出す(ステップS3)。現在バージョンと過去の複数バージョンのファームウェアのシステムエラー数を比較する(ステップS4)。そして、現在よりシステムエラー数が少ないバージョンのファームウェアが存在するかを判定し(ステップS5)、存在しない場合には処理を終了する。一方、ステップS5において存在すると判定された場合には、現ファームウェアを該当するバージョンに変更し(ステップS6)、再起動する(ステップS7)。再起動後は、上述の現ファームウェア(既に以前に利用していたファームウェアと化している)に比べ、利用に適したバージョンのファームウェアによってコントローラ1が駆動されることになる。そして、そのバージョンのファームウェアが、変更前に利用していたファームウェアより古いファームウェアであっても、現ファームウェアになる。
図3は、図2のファームウェア管理処理において実行されるファームウェア変更処理を説明するためのフロー図である。
上述したステップS6,S7におけるファームウェアの変更処理について補足的に説明する。変更前は、現在バージョンのファームウェア(現ファームウェア)がフラッシュメモリ12に格納されており、RAM11上に転送されて実行中である。まず、そのフラッシュメモリ12に、ストレージデバイス14から該当するバージョンのファームウェアを読み出して上書きする(ステップS11)。このとき、上書きすることで現ファームウェアは消去されるが、上述のごとくRAM11上に一時的に記憶されており、現ファームウェアの実行に差し支えはない。また、ステップS11において、上書きせずに、現ファームウェアをストレージデバイス14に移動させるようにしてもよい。この場合、過去のファームウェアの中の1バージョンとして、この現ファームウェアも格納されることになる。
ステップS11の後、システムエラー数をリセットし(ステップS12)、再起動する(ステップS13)。この後は通常の起動後の処理を行うが、この時点で既に変更バージョン(更新バージョン)のファームウェアがフラッシュメモリ12に格納されており、従って、コントローラ1のCPU13は変更バージョンのファームウェアをRAM11上に転送して実行する(ステップS14)。ステップS14の処理からは、コントローラ1では変更バージョンのファームウェアに基づく制御がなされている。
以上、本実施形態は、現行ファームウェアでエラーが発生した場合に、過去複数世代のファームウェアにおけるエラー発生状況との比較から、ファームウェアをデグレード(アップグレードの場合もある)する世代を特定する。従って、従来の技術では、このような過去に利用した複数世代におけるエラー発生頻度からデグレードするといった処理ができなかったが、本実施形態によれば、ファームウェアをバージョンアップ後にシステムエラー等が多発した場合、緊急避難的に過去の複数世代の中からエラーの少ないファームウェアに戻すことでシステムエラー等発生を抑えることが可能となる。このように、本実施形態によれば、書き換え可能なファームウェアを搭載した電子機器に対し、そのファームウェアを新ファームウェアに更新した後に、記録されている1又は複数のバージョンのファームウェアの中から適切なファームウェアを、喩えそれが旧ファームウェアでありデグレードとなったとしても選択して利用することが可能となる。
図4は、図1のファームウェア管理装置で表される本発明の他の実施形態に係るファームウェア管理装置における処理例を説明するためのフロー図で、本発明の他の実施形態に係るファームウェア管理プログラム及び方法による処理手順を説明するためのフロー図でもある。
本発明に係る他の実施形態として、上述した実施形態において、次の平均数算出手段をファームウェア管理装置に備え、エラー数を単純に比較するのではなく、その平均で比較するようにすることが好ましい。
平均数算出手段は、現ファームウェアに対し、その現ファームウェアの更新時から所定期間経過までの平均エラー数を、例えば計数手段での計数値(エラー発生回数)を所定期間で除算することで算出する手段である。ここで、更新時だけからではなくその後の所定期間の平均を算出するようにしてもよい。また、所定期間としては例えば上述したような期間(1日,10日等)でよいし、起動中の時間も鑑みて平均エラー数を算出するようにしてもよい。そして、比較手段は、エラー数の代わりに、平均数算出手段で算出された現ファームウェアの平均エラー数と、過去に利用されたバージョンのファームウェアを電子機器で実行した際に発生した平均エラー数とを比較する。そして、本実施形態に係るファームウェア管理プログラムはこれら手段に対応するステップを含んでなる。
そして、本実施形態においては、次の特定手段を備えることが好ましい。この特定手段は、比較結果に基づいて、現ファームウェアの平均エラー数より少ない平均エラー数をもつバージョンのファームウェアが存在した場合、該当するバージョンのファームウェアを利用に適したバージョンとして特定する。そして、本実施形態に係るファームウェア管理プログラムはこの特定手段に対応するステップを含んでなる。
本実施形態におけるファームウェア変更処理は、まず、図2で説明したステップS1と同じ処理(ステップS21)を実行し、一定期間が経過した段階でステップS22以降の処理を実行する。なお、ここでも、エラーとしてシステムエラーのみを考慮した場合を例示する。
ステップS22では、現ファームウェアの1日当りの平均システムエラー数を算出する(ステップS22)。過去バージョンのシステムエラー数をストレージデバイス14から読み出す(ステップS23)、過去バージョンそれぞれの1日当りの平均システムエラー数を算出する(ステップS24)。そして、現在バージョンと過去の複数バージョンのファームウェアの平均システムエラー数を比較する(ステップS25)。そして、現在より平均システムエラー数が少ないバージョンのファームウェアが存在するかを判定し(ステップS26)、存在しない場合には処理を終了する。一方、ステップS26において存在すると判定された場合には、現ファームウェアを該当するバージョンに変更し(ステップS27)、再起動する(ステップS28)。これ以降は、上述したように、利用に適したバージョンのファームウェアによってコントローラ1が駆動されることになる。
以上、本実施形態によれば、図1乃至図3を参照して説明した実施形態の効果に加えて、突発的なエラー数からデグレードなど変更を行うのではなく、平均エラー数の比較からデグレードなど変更を行うので、拙速なバージョン切替とはならずに済む。
図5は、図1のファームウェア管理装置で表される本発明の他の実施形態に係るファームウェア管理装置における処理例を説明するためのフロー図で、本発明の他の実施形態に係るファームウェア管理プログラム及び方法による処理手順を説明するためのフロー図でもある。
本発明の他の実施形態として、上述した平均数算出手段を備える実施形態において、特定手段において利用に適したバージョンを特定するに際し、現ファームウェアの平均エラー数の割合に基づいた特定を行うことが好ましい。すなわち、本実施形態における特定手段は、比較手段による比較結果に基づいて、比較対象である過去に利用したバージョンのファームウェアの平均エラー数に対する現ファームウェアの平均エラー数の割合が、所定割合以上であった場合に、該当するバージョンのファームウェアを利用に適したバージョンとして特定する。そして、本実施形態に係るファームウェア管理プログラムはこの特定手段に対応するステップを含んでなる。
本実施形態におけるファームウェア変更処理は、図4で説明したステップS21〜S26と同じ処理(ステップS31〜S36)を行った後、ステップS36で存在しないと判定された場合にはそのまま処理を終了し、存在すると判定された場合には、ステップS37へ進む。なお、ここでも、エラーとしてシステムエラーのみを考慮した場合を例示する。
ステップS37では、現在バージョンの平均システムエラー数が該当バージョンより一定の割合a以上であるか否かを判定する。そして、一定割合a以上である場合にのみ、現ファームウェアを該当するバージョンに変更して(ステップS38)、再起動する(ステップS39)。これ以降は、上述したように、利用に適したバージョンのファームウェアによってコントローラ1が駆動されることになる。
以上、本実施形態によれば、図4を参照して説明した実施形態の効果に加えて、過去のファームウェアより現行ファームウェアがエラーが多かったとしても、僅差の場合にデグレードすることがなくなるので、他の問題を起こす虞がなくなる。
図6は、図1のファームウェア管理装置で表される本発明の他の実施形態に係るファームウェア管理装置における処理例を説明するためのフロー図で、本発明の他の実施形態に係るファームウェア管理プログラム及び方法による処理手順を説明するためのフロー図でもある。
本発明の他の実施形態として、上述した平均数算出手段を備えた実施形態において、特定処理を行う前段階で、システムエラーとその他のエラーである通常エラー(通信エラーやジャム発生)とのそれぞれに対して別々に処理を行うことが好ましい。そのため、本実施形態においては、計数手段は、システムエラー数を計数する手段と、通常エラー数を計数する手段との双方を有し、平均数算出手段は、平均システムエラー数を算出する手段と平均通常エラー数を算出する手段との双方を有し、比較手段は、平均システムエラー数に基づいて比較を行う手段と平均通常エラー数に基づいて比較を行う手段との双方を有する。さらに、本実施形態における特定手段は、比較手段による比較結果に基づいて、比較対象である過去に利用したバージョンのファームウェアの平均システムエラー数に対する現ファームウェアの平均システムエラー数の割合が、第1の所定割合以上であった場合で、且つ、比較対象である過去に利用したバージョンのファームウェアの平均通常エラー数に対する現ファームウェアの平均通常エラー数の割合が、第2の所定割合以上であった場合に、該当するバージョンのファームウェアを利用に適したバージョンとして特定する。そして、本実施形態に係るファームウェア管理プログラムはこれら手段に対応するステップを含んでなる。
本実施形態におけるファームウェア変更処理は、まず、図5で説明したステップS31〜S37と同様の処理(ステップS41〜S47)を行う。但し、ステップS42〜S44での処理は、システムエラー数に対してのみ施すのではなく、通常エラー数に対しても施すものとする。
本実施形態においては、ステップS46,S47の判定で、現ファームウェアより平均システムエラー数が少ないバージョンVのファームウェアが存在する場合であって、且つ、現ファームウェアの平均システムエラー数が、バージョンVより一定の割合A以上であった場合であっても、一律にファームウェアの変更を実行する処理とはなっていない。すなわち、ステップS47でYESの場合、今度は、平均通常エラー数の平均値によってファームウェアの変更が必要か否か(変更することが適しているか否か)を判定する。
具体的には、まず、ステップS42〜S44により算出した現ファームウェア及び利用したことのある他のバージョンのファームウェアに対する平均通常エラー数に基づいて、現在バージョンと過去に利用した複数バージョンのファームウェアの平均通常エラー数を比較する(ステップS48)。平均通常エラー数の算出については、ステップS48での比較処理までに実行していればよい。ステップS48での比較の結果、現在バージョンの平均通常エラー数がバージョンVより一定の割合B以上か否かを判定する(ステップS49)。割合Bより小さい場合には処理を終了し、割合B以上である場合のみ、現ファームウェアを該当するバージョンVに変更して(ステップS50)、再起動する(ステップS51)。これ以降は、上述したように、利用に適したバージョンのファームウェアによってコントローラ1の制御がなされることになる。
ここで、割合A,Bの値は、基本的に設計事項であるが、例えば、A=1.4(140%)、B=0.5(50%)とすると、現ファームウェアがバージョンVのファームウェアより平均システムエラー数において4割以上増しでも、平均通常エラー数において5割以下であれば、現ファームウェアをバージョンVに変更しないことになる。逆に、現ファームウェアがバージョンVより平均システムエラー数において4割以上増しで、平均通常エラー数において5割より大きければ、現ファームウェアをバージョンVに変更することになる。通常の使用状態を鑑みると、現ファームウェアが蓄積された中で最新のバージョンとなっていることが多く、この変更はデグレードに該当する。
以上、本実施形態によれば、図4を参照して説明した実施形態の効果に加えて、現行ファームウェアのシステムエラーが増加していたとしても、それを補うに足るほど通常エラーが低減している場合にはデグレードなど変更を禁止するので、実際のトラブルを少なく保つことができる。
図7は、図1のファームウェア管理装置で表される本発明の他の実施形態に係るファームウェア管理装置における処理例を説明するためのフロー図で、本発明の他の実施形態に係るファームウェア管理プログラム及び方法による処理手順を説明するためのフロー図でもある。
本発明の他の実施形態として、図6で説明した実施形態において通常エラーが少なくてもあまりにもシステムエラーが多い場合には変更処理を実行するようにすることが好ましい。そして、本実施形態に係るファームウェア管理装置ではこのような変更処理を実行する手段を備えるものとし、また、本実施形態に係るファームウェア管理プログラムはこの手段に対応するステップを含んでなる。
本実施形態におけるファームウェア変更処理は、まず、図6で説明したステップS41〜S46と同じ処理(ステップS61〜S66)を行う。ステップS62〜S64での処理でも、システムエラー数に対してのみ施すのではなく、通常エラー数に対しても施す。そして、ステップS66において、平均システムエラー数の少ないバージョンVが存在した場合のみ、ステップS67以降の処理に進む。本実施形態においては、平均システムエラー数による比較においてその閾値を2つ、平均通常エラー数による比較においてその閾値を1つ設け、ステップS67以降で閾値処理がなされる。
ステップS67では、現在バージョンの平均システムエラー数がバージョンVより一定の割合C以上か否かを判定する。この判定の結果、割合C以上であれば、現ファームウェアを該当するバージョンVに変更して(ステップS71)、再起動する(ステップS72)。これ以降は、上述したように、利用に適したバージョンのファームウェアによってコントローラ1の制御がなされることになる。
一方、ステップS67において、割合C以上でないと判定された場合、ステップS68へ進む。ステップS68では、現ファームウェアの平均システムエラー数がバージョンVより一定の割合D以上か否かを判定する。この判定の結果、割合D以上でなければ、処理を終了し、割合D以上であればステップS69へ進む。ステップS69では、現ファームウェアと過去に利用された複数バージョンのファームウェアの平均通常エラー数を比較する。平均通常エラー数の算出については、ステップS70での比較処理までに実行していればよく、この例ではステップS62〜S64で算出している。ステップS69での比較の結果、現ファームウェアの平均通常エラー数がバージョンVより一定の割合B以上か否かを判定する(ステップS70)。割合Bより小さい場合には処理を終了し、割合B以上である場合のみ、現ファームウェアを該当するバージョンVに変更して(ステップS71)、再起動する(ステップS72)。これ以降は、上述したように、利用に適したバージョンのファームウェアによってコントローラ1の制御がなされることになる。
ここで、割合C,D,Bの値は、基本的に設計事項であり、C>Dであればよく、例えば、C=1.5(150%)、D=1.1(110%)、B=0.5(50%)とすると、現ファームウェアがバージョンVのファームウェアより平均システムエラー数において5割以上増しでなくても、1割以上増しで、且つ平均通常エラー数において5割より大きければ、現ファームウェアをバージョンVに変更することになる。通常の使用状態を鑑みると、現ファームウェアが蓄積された中で最新のバージョンとなっていることが多く、この変更はデグレードに該当する。逆に、現ファームウェアがバージョンVより平均システムエラー数において1割以上5割未満の増しでも、平均通常エラー数において5割以下であれば、現ファームウェアをバージョンVに変更しないことになる。このように、本発明では、なるべくバージョンの変更を行わなくて済むような処理を追加することが好ましい。
以上、本実施形態によれば、図6を参照して説明した実施形態の効果に加えて、通常エラーが少なくてもあまりにもシステムエラーが多い場合には変更処理を実行するので、システムエラーの許容限度を設け、適切に変更処理を行うことができる。
図8は、図1のファームウェア管理装置で表される本発明の他の実施形態に係るファームウェア管理装置における処理例を説明するためのフロー図で、本発明の他の実施形態に係るファームウェア管理プログラム及び方法による処理手順を説明するためのフロー図でもある。
本発明の他の実施形態として、上述した各実施形態における比較処理に際し、利用された期間が所定の期間より短いバージョンのファームウェアを、比較対象から除外することが好ましい。ファームウェアは、ある程度の間隔でリリースされているが、たまたま算定期間が短いバージョンがあった場合、エラー数が少ないか偏りがあることが考えられ、他の問題が生ずることも考えられるので、比較対象から除外することが好ましい。そして、本実施形態に係るファームウェア管理装置ではこのような除外処理を実行する手段を備えるものとし、また、本実施形態に係るファームウェア管理プログラムはこの手段に対応するステップを含んでなる。以下、説明の簡略化のため、本実施形態を、図2を参照して説明した実施形態に対してこの除外を実行する例のみを図8を参照して説明するが、上述した他の実施形態にもこの説明を流用できる。
本実施形態におけるファームウェア変更処理は、まず、図2で説明したステップS1〜S3と同じ処理(ステップS81〜S83)を行う。なお、ここでも、エラーとしてシステムエラーのみを考慮した場合を例示する。
ステップS83の後、過去に利用したバージョンから使用期間の短いバージョンを取り除いた変更候補リスト(更新候補リストともいえる)を作成する(ステップS84)。そして、現在バージョンと変更候補リストにある過去に利用された複数バージョンとに対し、ファームウェアのシステムエラー数を比較する(ステップS85)。そして、現在よりシステムエラー数が少ないバージョンのファームウェアが変更候補リスト内に存在するかを判定し(ステップS86)、存在しない場合には処理を終了する。一方、ステップS86において存在すると判定された場合には、現ファームウェアを該当するバージョンに変更し(ステップS87)、再起動する(ステップS88)。再起動後は、上述のごとく利用に適したバージョンのファームウェアによってコントローラ1の制御がなされることになる。
以上、本実施形態によれば、上述した各実施形態の効果に加えて、あまりに短い期間でしか利用されていないファームウェアへの変更(デグレード又はアップグレード)を禁止するよう比較対象から除外するので、短期間のみ使用されているような他のエラーが予想されるバージョンのファームウェアに変更されることがなくなる。
図9は、図1のファームウェア管理装置で表される本発明の他の実施形態に係るファームウェア管理装置における処理例を説明するためのフロー図で、本発明の他の実施形態に係るファームウェア管理プログラム及び方法による処理手順を説明するためのフロー図でもある。
本発明の他の実施形態として、上述した各実施形態における特定処理に際し、予め、特定の対象となるバージョンを指定しておくようにすることが好ましい。すなわち、本実施形態では、ファームウェア管理装置に、特定手段において特定の対象となるバージョンを指定する手段を設け、予めこのような指定を行っておく。なお、特定の対象とならないバージョンの指定であっても当然よい。
そして、本実施形態に係るファームウェア管理プログラムはこの手段に対応するステップを含んでなる。例示しているような、ファームウェア管理プログラムが現ファームウェアや過去のファームウェアに含まれる形態にあっては、ファームウェア内にどのバージョンまで遡っていいか、或いはこのバージョンまでは互換性があるなどという情報が記述され、その情報に基づく処理がなされる。これにより、例えば、デグレードの対象が現ファームウェアから過去N世代までを限度とするような指定も可能である。なお、ファームウェア内に使用可能なグレードを記載しておく際などは、その後のアップグレードを可能とするように、このバージョン以上も特定可能としておくか、或いは、所定期間毎に変更処理を行ってアップグレードできなくするのではなく、変更処理を基本的に一度だけとするとよい。以下、説明の簡略化のため、本実施形態を、図2を参照して説明した実施形態に対してこの除外を実行する例のみを図9を参照して説明するが、上述した他の実施形態にもこの説明を流用できる。
本実施形態におけるファームウェア変更処理は、まず、図2で説明したステップS1〜S3と同じ処理(ステップS91〜S93)を行う。なお、ここでも、エラーとしてシステムエラーのみを考慮した場合を例示する。
ステップS93の後、過去に利用したバージョンから、現在バージョンで限定されたバージョンのみからなる変更候補リスト(更新候補リストともいえる)を作成する(ステップS94)。そして、現在バージョンと変更候補リストにある過去に利用された複数バージョンとに対し、ファームウェアのシステムエラー数を比較する(ステップS95)。そして、現在よりシステムエラー数が少ないバージョンのファームウェアが変更候補リスト内に存在するかを判定し(ステップS96)、存在しない場合には処理を終了する。一方、ステップS96において存在すると判定された場合には、現ファームウェアを該当するバージョンに変更し(ステップS97)、再起動する(ステップS98)。再起動後は、上述のごとく利用に適したバージョンのファームウェアによってコントローラ1の制御がなされることになる。
以上、本実施形態によれば、上述した各実施形態の効果に加えて、あまりにも古いバージョンに遡ってデグレードすることを禁止するよう比較対象から除外するので、他の問題が予想されるバージョンのファームウェアに変更されることがなくなる。例えば、ファームウェアのアップグレードが、その電子機器に接続されるネットワークシステムの規格変更などに伴うものである場合などにも、遡り過ぎでデグレードされてしまうようなことを防ぐことができる。
図10は、本発明の他の実施形態に係るファームウェア管理装置の一構成例を示す図で、図中、5はファームウェア管理部であり、その他の構成要素は図1のそれと同様であり、その詳細な説明を省略する。
図10では、図1のファームウェア管理装置と異なり、ファームウェア管理装置としてコントローラ1内ではなくファームウェア管理部5を別途設けている。ファームウェア管理部5は、例えば、コントローラ1に接続されたサブコントローラでなり、このサブコントローラ内にそのファームウェアとして本発明に係るファームウェア管理プログラムが実行可能にマスクROM,フラッシュメモリ等の記憶手段に格納されている。この例では、実質的に、まずサブコントローラを起動させることになる。
このように、電子機器(或いは電子機器をコントロールするための他の電子機器;但し他の電子機器からの起動が必要となる)のファームウェアの一つとしてのファームウェア管理プログラムが、現ファームウェアやそれに対応する過去のバージョンのファームウェアとは別途組み込まれるよう、構成してもよい。
最後に、本発明によるファームウェア管理の機能を実現するためのファームウェア管理プログラムやデータを記憶した記録媒体の実施形態について簡単に説明する。記録媒体としては、具体的には、CD−ROM、光磁気ディスク、DVD−ROM、FD、フラッシュメモリ、及びその他各種ROMやRAM等が想定でき、上述した本発明の各実施形態のファームウェア管理プログラムを、これら記録媒体に記録して流通させることにより、当機能の実現を容易にする。そして、コンピュータ等の情報処理装置に、上述のごとくの記録媒体を装着して情報処理装置によりプログラムを読み出すか、若しくは情報処理装置が備えている記録媒体に当プログラムを記憶させておき、必要に応じて読み出すことにより、本発明に係わるファームウェア管理の機能を実行することができる。
本発明の一実施形態に係るファームウェア管理装置の一構成例を示す図である。 図1のファームウェア管理装置における処理例を説明するためのフロー図である。 図2のファームウェア管理処理において実行されるファームウェア変更処理を説明するためのフロー図である。 図1のファームウェア管理装置で表される本発明の他の実施形態に係るファームウェア管理装置における処理例を説明するためのフロー図である。 図1のファームウェア管理装置で表される本発明の他の実施形態に係るファームウェア管理装置における処理例を説明するためのフロー図である。 図1のファームウェア管理装置で表される本発明の他の実施形態に係るファームウェア管理装置における処理例を説明するためのフロー図である。 図1のファームウェア管理装置で表される本発明の他の実施形態に係るファームウェア管理装置における処理例を説明するためのフロー図である。 図1のファームウェア管理装置で表される本発明の他の実施形態に係るファームウェア管理装置における処理例を説明するためのフロー図である。 図1のファームウェア管理装置で表される本発明の他の実施形態に係るファームウェア管理装置における処理例を説明するためのフロー図である。 本発明の他の実施形態に係るファームウェア管理装置の一構成例を示す図である。
符号の説明
1…メインコントローラ(コントローラ)、2…画像印字部、3…画像読み取り部、4…外部I/F、5…ファームウェア管理部、11…RAM、12…フラッシュROM(フラッシュメモリ)、13…CPU、14…ストレージデバイス。

Claims (2)

  1. 電子機器におけるファームウェア管理装置であって、現在使用中のファームウェア及び過去に用いられたバージョンのファームウェアを記憶する記憶手段を有し、
    動作中に発生したファームウェアのエラー数をシステムエラーと通常エラーとを区分して計数する計数手段と、
    前記計数手段により計数された前記各々のエラー数を、現在使用中のファームウェア及び過去に用いられたバージョンのファームウェアと対応して記憶する記憶手段と、
    現在使用中のファームウェアの更新時から所定期間経過までの前記各々のエラーの1日当りの平均エラー数と、前記記憶手段に記憶された過去に用いられたバージョンの前記各々の1日当りの平均エラー数を算出し、それぞれ比較する比較手段と、
    前記比較手段による比較結果に基づいて、過去に用いられたファームウェアの中から、前記システムエラーの平均エラー数が現在使用中のファームウェアのシステムエラーの平均エラー数より第1の所定割合以上少なく、且つ、当該ファームウェアの前記通常エラーの平均エラー数が現在使用中のファームウェアの前記通常エラーの平均エラー数よりも第2の所定の割合以上少ないファームウェアを特定する特定手段を備え、
    該当するファームウェアが特定された場合、現在使用中のファームウェアを当該ファームウェアに変更することを特徴とする電子機器におけるファームウェア管理装置。
  2. 現在使用中のファームウェア及び過去に用いられたバージョンのファームウェアを記憶する記憶手段及び、動作中に発生したファームウェアのエラー数をシステムエラーと通常エラーとを区分して計数し、計数した前記各々のエラー数を、現在使用中のファームウェア及び過去に用いられたバージョンのファームウェアと対応して記憶する記憶手段を備えた電子機器におけるファームウェア管理装置の管理方法であって、
    前記記憶手段に記憶された計数値に基づき現在使用中のファームウェアの更新時から所定期間経過までの前記各々のエラーの1日当りの平均エラー数及び過去に用いられたバージョンの前記各々のエラーの1日当りの平均エラー数をそれぞれ算出するステップと、
    算出した現在使用中のファームウェアと過去に用いられたバージョンのファームウェアの1日当りの前記平均エラー数をそれぞれ比較するステップと、
    前記比較により、過去に用いられたファームウェアの中から、前記システムエラーの平均エラー数が現ファームウェアのシステムエラーの平均数より第1の所定割合以上少なく、且つ、当該ファームウェアの前記通常エラーの平均エラー数が現ファームウェアの前記通常エラーの平均エラー数よりも第2の所定の割合以上少ないファームウェアを特定するステップと、
    該当するファームウェアが特定された場合、現ファームウェアを当該ファームウェアに変更するステップを含むことを特徴とする電子機器におけるファームウェア管理装置の管理方法。
JP2004284314A 2004-09-29 2004-09-29 電子機器のファームウェア管理装置及び管理方法 Expired - Fee Related JP4463061B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004284314A JP4463061B2 (ja) 2004-09-29 2004-09-29 電子機器のファームウェア管理装置及び管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004284314A JP4463061B2 (ja) 2004-09-29 2004-09-29 電子機器のファームウェア管理装置及び管理方法

Publications (2)

Publication Number Publication Date
JP2006099393A JP2006099393A (ja) 2006-04-13
JP4463061B2 true JP4463061B2 (ja) 2010-05-12

Family

ID=36239145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004284314A Expired - Fee Related JP4463061B2 (ja) 2004-09-29 2004-09-29 電子機器のファームウェア管理装置及び管理方法

Country Status (1)

Country Link
JP (1) JP4463061B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008140333A (ja) * 2006-12-05 2008-06-19 Mitsubishi Electric Corp ネットワーク接続装置
JP2009294894A (ja) * 2008-06-05 2009-12-17 Brother Ind Ltd プリンタ動作制御方法、プリンタ、およびプリンタシステム
JP5599055B2 (ja) * 2010-09-22 2014-10-01 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
JP6111918B2 (ja) * 2013-07-24 2017-04-12 富士ゼロックス株式会社 画像処理装置、画像処理システムおよびプログラム
JP6315209B2 (ja) * 2015-01-30 2018-04-25 京セラドキュメントソリューションズ株式会社 ファームウェア更新システム
WO2022239060A1 (ja) * 2021-05-10 2022-11-17 日本電信電話株式会社 システム検証装置、システム検証方法、及び、システム検証プログラム

Also Published As

Publication number Publication date
JP2006099393A (ja) 2006-04-13

Similar Documents

Publication Publication Date Title
US8060662B2 (en) Recording control apparatus, recording control method, and computer program product
US7702952B2 (en) Firmware update for consumer electronic device
EP2879051B1 (en) An electronic device including a MTD used temporarily during non-volatile memory file system update
EP1271322A2 (en) Crash recovery system
US9332147B2 (en) Image forming apparatus and method of booting image forming apparatus having hibernation function
JP2007293737A (ja) ソフトウェア資源の登録管理方法、電子機器、プログラム
JP4789958B2 (ja) 部品情報復元方法、部品情報管理方法及び電子装置
JP4463061B2 (ja) 電子機器のファームウェア管理装置及び管理方法
US20230132494A1 (en) Information processing apparatus, method of controlling the same, and storage medium
KR100832269B1 (ko) 무선 통신 단말의 프로그램 갱신 방법 및 시스템
JP4802607B2 (ja) 画像処理装置
US11797292B2 (en) Information processing apparatus using swap file, control method therefor, and storage medium
US10447886B2 (en) Image processing apparatus for updating a non-volatile memory and method controlling image processing apparatus
JP7443786B2 (ja) 情報処理装置、情報処理方法、プログラムおよび情報処理システム
US10958802B2 (en) Image forming apparatus, control method of image forming apparatus, and storage medium
JP5338610B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
US11928217B2 (en) Information processing apparatus, control method of information processing apparatus, and storage medium
US20230280934A1 (en) Information processing apparatus, control method of information processing apparatus, and non-transitory storage medium
JP7424457B2 (ja) 画像形成装置及びプログラム
JP6769162B2 (ja) 電子機器、電子機器の制御方法およびプログラム
JP2003288276A (ja) 電子機器
JP6248910B2 (ja) 画像処理装置及びプログラムのバックアップ方法
JP2006344022A (ja) 機器及びプログラム起動方法
JP4741390B2 (ja) 画像処理装置
CN112579119A (zh) 固件更新系统、电子设备和计算机可读非临时性记录介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060912

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100216

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees