(57)【要約】【課題】書換型ＲＯＭに記憶されているプログラムをＲＡＭに展開し該ＲＡＭ内のプログラムによって動作する場合に、書換型ＲＯＭに記憶されている破損したプログラムを簡素な構成で復元する。【解決手段】複合機１０は、プログラムが書き換え可能に記憶されたＲＯＭ１３と、ＲＯＭ１３に記憶されているプログラムが読み出されて記憶されるＲＡＭ１４と、ＲＡＭ１４に記憶されたプログラムを実行すると共に、当該複合機１０の電源オフの操作を受け付けた場合に（ステップＳ２０１）、ＲＯＭ１３内のプログラムとＲＡＭ１４内のプログラムを比較し（ステップＳ２０５）、同じでない場合には（ステップＳ２０６；Ｎｏ）、ＲＡＭ１４内のプログラムをＲＯＭ１３内のプログラムに上書きして書き換える（ステップＳ２０７）制御部とを備える。【選択図】図４
2011170803.tif 000002
【特許請求の範囲】
【請求項１】
プログラムが書き換え可能に記憶された書換型ＲＯＭと、
前記書換型ＲＯＭに記憶されているプログラムが読み出されて記憶されるＲＡＭと、
前記ＲＡＭに記憶されたプログラムを実行すると共に、前記書換型ＲＯＭに記憶されているプログラムを初期化する場合に前記ＲＡＭに記憶されたプログラムを前記書換型ＲＯＭに記憶されているプログラムに上書きして書き換える制御部と、
を備えた情報処理装置。
【請求項２】
前記制御部は、前記書換型ＲＯＭに記憶されているプログラムが破損していると判断した場合に前記初期化を行う
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、前記書換型ＲＯＭに記憶されているプログラムと前記ＲＡＭに記憶されたプログラムを全て比較し、同一でない場合に前記書換型ＲＯＭに記憶されているプログラムが破損していると判断する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制御部は、前記書換型ＲＯＭに記憶されているプログラムの初期状態のチェックサム値を取得し、前記ＲＡＭに記憶されたプログラムのチェックサム値を算出して前記初期状態のチェックサム値と比較し、同一である場合に前記プログラムの比較を行う
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記制御部は、当該情報処理装置の電源オフを検知した場合に、前記書換型ＲＯＭに記憶されているプログラムが破損しているか否かを判断する
ことを特徴とする請求項２〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記制御部は、前記初期化を行った後に当該情報処理装置の電源をオフにする
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記書換型ＲＯＭには、前記プログラムの実行に使用されると共に、該プログラムの実行時に少なくとも一部が書き換え対象となるデータが記憶され、
前記ＲＡＭには、前記プログラムと共に前記データが読み出されて記憶され、
前記制御部は、前記ＲＡＭに記憶されたデータを使用して前記プログラムを実行すると共に、前記ＲＡＭに記憶された書き換え対象のデータの書き換えを行い、前記ＲＡＭに記憶されたデータは前記書換型ＲＯＭに記憶されているデータに上書きしない
ことを特徴とする請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
前記書換型ＲＯＭには、前記プログラムの実行に使用されると共に、該プログラムの実行時に少なくとも一部が書き換え対象となるデータが記憶され、
前記ＲＡＭには、前記プログラムと共に前記データが読み出されて記憶され、
前記制御部は、前記ＲＡＭに記憶されたデータを使用して前記プログラムを実行すると共に、前記ＲＡＭに記憶された書き換え対象のデータの書き換えを行い、前記書換型ＲＯＭに記憶されているデータが破損していると判断した場合は前記ＲＡＭに記憶されたデータを前記書換型ＲＯＭに記憶されているデータに上書きして書き換える
ことを特徴とする請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項９】
請求項１〜８のいずれか１項に記載の情報処理装置と、
前記制御部に制御されて記録紙に画像を形成する画像形成部と、
を備えたことを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、破損したプログラムを復元する機能を備えた情報処理装置および画像形成装置に関する。
【背景技術】
【０００２】
プログラムによって動作するコンピュータ制御システムを搭載し、外部接続に対応した各種の装置では、外部からコンピュータウイルスが侵入してプログラムに感染したり障害を起こしたりするおそれがある。この対策として、ウイルス感染やプログラム障害を調べる技術が考案されている。
【０００３】
たとえば、ウイルス感染に対しては、診断対象となるプログラムを複数の小エリアに分割し、小エリア毎の一部のデータを診断情報として保存しておき（詳細には、小エリア毎に、任意のアドレスにより指示される任意のデータ長のデータを読み出し、該アドレス、該データ長、および該データを診断情報として記録媒体に保存しておき）、プログラムの診断時に全ての診断情報と、これに対応する各データとを比較をすることで、プログラムの空き領域に潜り込むコンピュータウイルスを検出する技術がある（特許文献１参照）。
【０００４】
プログラム障害に対しては、障害判定用のデータ（初期状態のプログラムを表す初期状態プログラムデータ）をハードディスク装置などに記憶しておき、プログラム記録部に記録されている動作用のプログラムのデータと障害判定用のデータとを比較し、一致しなければプログラムに障害が起きたと判定する技術がある。またこの技術では、ハードディスク装置に予め保存しているバックアップ用のプログラムもしくはサーバなどから取得した同プログラムによって、障害の起きたプログラムを上書きし復元（復旧）するようにしている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−１７５６４７号公報
【特許文献２】特開２００６−３５０９５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
プログラムによって動作する装置、たとえば、コンピュータ制御システムを搭載したプリンタ機や複写機などの画像形成装置では、プログラムをフラッシュメモリ（書換型ＲＯＭ（Read Only Memory））に記憶しておき、装置の起動時にそのプログラムをフラッシュメモリよりもアクセス速度が速い揮発性メモリ（ＲＡＭ（Random Access Memory））に展開し、揮発性メモリ内のプログラムによって装置を動作させているものがある。この場合、フラッシュメモリに記憶されているプログラムがコンピュータウイルスなどによって破損されると、装置が起動しなくなるおそれがある。
【０００７】
プログラムの破損を検出する場合に、プログラムの一部のデータを診断する特許文献１の技術では、診断を行うデータ量に診断精度（プログラム破損の検出精度）が依存する。たとえば、プログラムの全てのデータを診断する場合に比べて診断精度は低下するため、プログラムの破損を確実に検出できないおそれがある。
【０００８】
また、装置の内部に別途保存しているもしくは外部から取得したバックアップ用のプログラムによって、障害の起きた動作用のプログラムを上書きし復元する特許文献２の技術では、バックアップ用のプログラムを装置内に保存しておくために記憶容量を大きくするもしくは装置外に同プログラムを保存しておく必要があるため、構成が肥大になる問題がある。
【０００９】
本発明は、上記の問題を解決しようとするものであり、書換型ＲＯＭに記憶されているプログラムをＲＡＭに展開し該ＲＡＭ内のプログラムによって動作する場合に、書換型ＲＯＭに記憶されている破損したプログラムを簡素な構成で復元することができる情報処理装置および画像形成装置を提供することを目的としている。
【課題を解決するための手段】
【００１０】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【００１１】
［１］プログラムが書き換え可能に記憶された書換型ＲＯＭと、
前記書換型ＲＯＭに記憶されているプログラムが読み出されて記憶されるＲＡＭと、
前記ＲＡＭに記憶されたプログラムを実行すると共に、前記書換型ＲＯＭに記憶されているプログラムを初期化する場合に前記ＲＡＭに記憶されたプログラムを前記書換型ＲＯＭに記憶されているプログラムに上書きして書き換える制御部と、
を備えた情報処理装置。
【００１２】
上記発明では、制御部は、書換型ＲＯＭに記憶されているプログラムをＲＡＭに読み出して記憶し、そのＲＡＭ内のプログラムを実行して当該情報処理装置を動作させる。書換型ＲＯＭ内のプログラムを初期化する場合は、ＲＡＭ内のプログラムを書換型ＲＯＭ内のプログラムに上書きして書き換える。
【００１３】
初期化は所定のタイミングに行う。所定のタイミングは、たとえば予め設定されたタイミング（所定の時刻、所定の時間間隔など）や所定の操作（初期化実行操作、電源オフ操作など）を受けたタイミングなどである。また所定のタイミングに、書換型ＲＯＭ内のプログラムが破損しているか否かを確認し、破損している場合に初期化を行うようにしてもよく、書換型ＲＯＭ内のプログラムが破損しているか否かを確認せずに初期化を行うようにしてもよい。書換型ＲＯＭ内のプログラムが破損していない場合には、その正常なプログラムは初期化によって正常な状態が維持される。書換型ＲＯＭ内のプログラムが破損している場合には、その破損しているプログラムは初期化によって復元される。
【００１４】
このように、書換型ＲＯＭ内から動作用に読み出したＲＡＭ内のプログラムを書換型ＲＯＭ内のプログラムの初期化用に利用することで、初期化用のプログラムを装置の内部や外部に別途保存しておく必要がなく、書換型ＲＯＭ内の破損したプログラムを簡素な構成で復元することができる。
【００１５】
［２］前記制御部は、前記書換型ＲＯＭに記憶されているプログラムが破損していると判断した場合に前記初期化を行う
ことを特徴とする［１］に記載の情報処理装置。
【００１６】
上記発明では、書換型ＲＯＭ内のプログラムが破損していると判断した場合のみ初期化を行うので、必要性の低い初期化動作を行わなくて済む。また、書換型ＲＯＭの書き換え回数に制限がある場合に有効である。
【００１７】
［３］前記制御部は、前記書換型ＲＯＭに記憶されているプログラムと前記ＲＡＭに記憶されたプログラムを全て比較し、同一でない場合に前記書換型ＲＯＭに記憶されているプログラムが破損していると判断する
ことを特徴とする［２］に記載の情報処理装置。
【００１８】
上記発明では、書換型ＲＯＭ内のプログラムとＲＡＭ内のプログラムを全て比較して書換型ＲＯＭ内のプログラムが破損しているか否かを判断するため、破損の有無を正確に判断することができる。
【００１９】
［４］前記制御部は、前記書換型ＲＯＭに記憶されているプログラムの初期状態のチェックサム値を取得し、前記ＲＡＭに記憶されたプログラムのチェックサム値を算出して前記初期状態のチェックサム値と比較し、同一である場合に前記プログラムの比較を行う
ことを特徴とする［３］に記載の情報処理装置。
【００２０】
上記発明では、ＲＡＭ内のプログラムの異常の有無をチェックサム値を用いて調べ、異常が無い場合に書換型ＲＯＭ内のプログラムとＲＡＭ内のプログラムの全比較を行い、書換型ＲＯＭ内のプログラムが破損していると判断した場合に初期化を行う。書換型ＲＯＭに記憶されているプログラムの初期状態のチェックサム値は、当該情報処理装置の内部に保存しておいたものを取得してもよく、外部から取得してもよい。内部に保存する場合は、予め求めておいたチェックサム値を保存しておいたり、装置の起動時などにプログラムのチェックサム値を求めて保存したりしてもよい。
【００２１】
これにより、ＲＡＭ内のプログラムに異常が有る場合の誤った初期化を回避できる。
【００２２】
［５］前記制御部は、当該情報処理装置の電源オフを検知した場合に、前記書換型ＲＯＭに記憶されているプログラムが破損しているか否かを判断する
ことを特徴とする［２］〜［４］のいずれか１項に記載の情報処理装置。
【００２３】
上記発明では、ＲＡＭ内の記憶情報（書換型ＲＯＭから展開されたプログラムなど）は情報処理装置の電源オフに伴い消去されるため、その消去直前に初期化を行う。すなわち、情報処理装置の電源オフを検知した場合に書換型ＲＯＭ内のプログラムの破損の有無を判断し、破損していると判断した場合に初期化を行う。これにより、次回の電源オン時に書換型ＲＯＭ内のプログラムが破損していて装置を起動できないなどの不具合を防止することができる。
【００２４】
［６］前記制御部は、前記初期化を行った後に当該情報処理装置の電源をオフにする
ことを特徴とする［５］に記載の情報処理装置。
【００２５】
上記発明では、情報処理装置の電源オフを検知した場合に書換型ＲＯＭ内のプログラムの破損の有無を判断し（［５］）、破損していると判断した場合に初期化を行い（［２］）、この初期化を行った後に情報処理装置の電源をオフにする。これにより、情報処理装置の電源オフ時に書換型ＲＯＭ内のプログラムが破損していると判断した場合には、初期化が完了し書換型ＲＯＭ内のプログラムが正常な状態に復元されてから情報処理装置の電源がオフにされる。
【００２６】
［７］前記書換型ＲＯＭには、前記プログラムの実行に使用されると共に、該プログラムの実行時に少なくとも一部が書き換え対象となるデータが記憶され、
前記ＲＡＭには、前記プログラムと共に前記データが読み出されて記憶され、
前記制御部は、前記ＲＡＭに記憶されたデータを使用して前記プログラムを実行すると共に、前記ＲＡＭに記憶された書き換え対象のデータの書き換えを行い、前記ＲＡＭに記憶されたデータは前記書換型ＲＯＭに記憶されているデータに上書きしない
ことを特徴とする［１］〜［６］のいずれか１項に記載の情報処理装置。
【００２７】
上記発明では、制御部は、書換型ＲＯＭに記憶されているプログラムとデータをＲＡＭに読み出して記憶し、そのＲＡＭ内のプログラムをＲＡＭ内のデータを使用して実行し当該情報処理装置を動作させる。プログラムの実行に伴いデータを書き換える必要が生じた場合は、ＲＡＭ内の書き換え対象のデータを書き換えて更新し、そのデータを使用してプログラムの実行を継続する。このように、ＲＡＭ内では書き換えられる可能性のあるデータについては書換型ＲＯＭ内のデータに上書きしないようにすることで、書換型ＲＯＭ内の初期データが変更されてしまうことを回避できる。
【００２８】
［８］前記書換型ＲＯＭには、前記プログラムの実行に使用されると共に、該プログラムの実行時に少なくとも一部が書き換え対象となるデータが記憶され、
前記ＲＡＭには、前記プログラムと共に前記データが読み出されて記憶され、
前記制御部は、前記ＲＡＭに記憶されたデータを使用して前記プログラムを実行すると共に、前記ＲＡＭに記憶された書き換え対象のデータの書き換えを行い、前記書換型ＲＯＭに記憶されているデータが破損していると判断した場合は前記ＲＡＭに記憶されたデータを前記書換型ＲＯＭに記憶されているデータに上書きして書き換える
ことを特徴とする［１］〜［６］のいずれか１項に記載の情報処理装置。
【００２９】
上記発明では、書換型ＲＯＭにプログラムとデータが記憶されている場合に、書換型ＲＯＭ内のデータが破損すると、書換型ＲＯＭ内のプログラムとデータをＲＡＭ内に読み出して装置を動作させる際に、プログラムを正しく実行できず、装置を起動できなくなるおそれがあるのに対し、このような起動不可となるトラブルを回避することができる。
【００３０】
すなわち、書換型ＲＯＭ内のデータが破損していると判断した場合は、ＲＡＭ内のデータを書換型ＲＯＭ内のデータに上書きして書き換える。この上書きによる書き換え直前のＲＡＭ内のデータは、直前までＲＡＭ内のプログラムの実行に使用されていたものであり、少なくとも装置の動作（プログラムの実行）には支障のないデータである。書換型ＲＯＭ内のデータに異常が有る場合は、装置の動作上支障のないＲＡＭ内のデータを利用して書換型ＲＯＭ内のデータに上書きし書き換えることで、装置が起動不可となるトラブルを回避することができる。
【００３１】
装置の起動後は、たとえば初期データを取得し、書換型ＲＯＭ内のデータ（初期データに対して変更されている可能性のあるデータ）に上書きして書き換えることで、書換型ＲＯＭ内のデータを初期データに戻すことも可能である。また、ＲＡＭ内のデータで書換型ＲＯＭ内のデータを書き換えた場合には、たとえば、この書き換え直後、もしくは、この書き換え後に行われた装置の再起動後などには、プログラムに使用するデータが初期値に対して変更された可能性がある旨を表示してユーザに報知するようにしてもよい。
【００３２】
［９］［１］〜［８］のいずれか１項に記載の情報処理装置と、
前記制御部に制御されて記録紙に画像を形成する画像形成部と、
を備えたことを特徴とする画像形成装置。
【発明の効果】
【００３３】
本発明の情報処理装置および画像形成装置によれば、書換型ＲＯＭに記憶されているプログラムをＲＡＭに展開し該ＲＡＭ内のプログラムによって動作する場合に、書換型ＲＯＭに記憶されている破損したプログラムを簡素な構成で復元することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の第１の実施形態に係る画像形成装置としての複合機の概略構成を示すブロック図である。
【図２】複合機のＲＯＭとＲＡＭにおける記憶領域の概略構成を示す図である。
【図３】複合機の電源オン時の動作の流れを示す図である。
【図４】複合機の電源オフ時の動作の流れを示す図である。
【図５】本発明の第２の実施形態に係る電源オン時の動作の流れを示す図である。
【図６】本発明の第２の実施形態に係る電源オフ時の動作の流れを示す図である。
【発明を実施するための形態】
【００３５】
以下、図面に基づき本発明の実施形態を説明する。
【００３６】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る画像形成装置としての複合機１０の概略構成を示すブロック図である。
【００３７】
複合機１０は、原稿の画像を光学的に読み取ってその複製画像を記録紙に印刷して出力するコピー機能、読み取った原稿の画像データをファイルにして保存したり端末装置やサーバなどへ送信したりするスキャン機能、端末装置から受信した印刷データに係る画像や当該複合機１０に保存されている画像データに係る画像を記録紙に印刷して出力するプリンタ機能、画像データを送受信するファクシミリ機能などを備えている。
【００３８】
複合機１０は、制御部としてのＣＰＵ（Central Processing Unit）１１に、バス１２を介してＲＯＭ１３と、ＲＡＭ１４と、不揮発メモリ１５と、ハードディスク装置（Hard Disk Drive；ＨＤＤ）１６と、表示部１７と、操作部１８と、ファクシミリ通信部１９と、ネットワーク通信部２０と、スキャナ部２１と、画像処理部２２と、プリンタ部２３と、電源管理部２４とを接続して構成される。
【００３９】
ＲＯＭ１３は、書き換え可能なフラッシュメモリ（書換型ＲＯＭ）で構成されており、複合機１０の動作を制御するためのプログラムと、該プログラムの実行に使用されるデータとを記憶している。ＣＰＵ１１は、複合機１０の起動時にＲＯＭ１３に格納されているプログラムとデータを読み出してＲＡＭ１４に記憶し、このＲＡＭ１４に展開したプログラムとデータに基づいて複合機１０の動作を制御する。
【００４０】
ＲＡＭ１４は、電源がオフになると記憶が消去するメモリ（揮発性メモリ）であり、ＣＰＵ１１がＲＯＭ１３内のプログラムとデータを展開し、このデータを使用してプログラムを実行する際に各種データを一時的に格納するワークメモリとして使用されるほか、画像データを一時的に保存するための画像メモリなどにも使用される。不揮発メモリ１５は、電源がオフになっても記憶が保持されるメモリであり、装置固有の情報や各種の設定情報などが記憶される。ハードディスク装置１６は、各種の保存データを格納するほか、画像データなども保存する。
【００４１】
表示部１７は、液晶ディスプレイなどで構成され、操作画面、設定画面などの各種の画面を表示する。操作部１８は、スタートボタン、ストップボタン、テンキーなどの各種のボタン類と、液晶ディスプレイの表面に設けられて押下された座標位置を検出するタッチパネルなどで構成され、ユーザが複合機１０に対して行う各種の操作を受け付ける。
【００４２】
ファクシミリ通信部１９は、ファクシミリ機能を備えた外部装置と公衆回線を通じて画像データを送受信する。ネットワーク通信部２０は、ＬＡＮ（Local Area Network）などのネットワークを通じて端末装置やサーバなどと通信を行う。
【００４３】
スキャナ部２１は、原稿を光学的に読み取って画像データを取得する。スキャナ部２１は、たとえば、原稿に光を照射する光源と、その反射光を受けて原稿を幅方向に１ライン分読み取るラインイメージセンサと、ライン単位の読取位置を原稿の長さ方向に順次移動させる移動手段と、原稿からの反射光をラインイメージセンサに導いて結像させるレンズやミラーなどからなる光学経路と、ラインイメージセンサの出力するアナログ画像信号をデジタルの画像データに変換する変換部などを備えて構成される。
【００４４】
画像処理部２２は、画像データに対して、画像補正、回転、拡大／縮小、圧縮／伸張など各種の画像処理を施す。
【００４５】
プリンタ部２３は、画像データに基づく画像を電子写真プロセスによって記録紙上に形成して出力する。プリンタ部２３は、たとえば、記録紙の搬送装置と、感光体ドラムと、帯電装置と、入力される画像データに応じて点灯制御されるＬＤ（Laser Diode）と、ＬＤから射出されたレーザ光を感光体ドラム上で走査させる走査ユニットと、現像装置と、転写分離装置と、クリーニング装置と、定着装置とを有する、いわゆるレーザープリンタとして構成されている。レーザ光に代えてＬＥＤ（Light Emitting Diode）で感光体ドラムを照射するＬＥＤプリンタのほか他の方式のプリンタであってもかまわない。
【００４６】
電源管理部２４は、複合機１０の電源のオンオフに係る管理などを行う。複合機１０の電源オン時（起動時）は各部に動作電力を供給し、電源オフ時は各部への動作電力の供給を停止する。
【００４７】
図２は、ＲＯＭ１３とＲＡＭ１４における記憶領域の概略構成を示す図である。
【００４８】
ＲＯＭ１３は、プログラムが記憶されているプログラム領域１３ａと、該プログラムの実行に使用されるデータが記憶されているデータ領域１３ｂとを備えている。ＲＯＭ１３内では、プログラム領域１３ａとデータ領域１３ｂとは連続した領域となっている。
【００４９】
プログラム領域１３ａに記憶されているプログラムは、ＣＰＵ１１に対する命令（処理）を記述したものである。たとえば、複合機１０の基本的な動作を制御するためのオペレーティングシステムや各種の機能による動作を制御するためのアプリケーションプログラムなどである。データ領域１３ｂに記憶されているデータは、プログラムの実行開始時に使用（参照）される初期値を示す複数のデータ（初期データ）であると共に、プログラムの実行時にその複数のうちの少なくとも一部が書き換え対象となるデータである。
【００５０】
ＲＡＭ１４は、ＲＯＭ１３のプログラム領域１３ａに記憶されているプログラムが読み出されて記憶されるプログラム領域１４ａと、ＲＯＭ１３のデータ領域１３ｂに記憶されているデータが読み出されて記憶されるデータ領域１４ｂとを備えている。ＲＡＭ１４内では、プログラム領域１４ａとデータ領域１４ｂとは連続していない領域となっている。ＲＯＭ１３内のプログラムとデータは、ＲＡＭ１４内ではＲＯＭ１３内とは異なる領域（連続していない領域）に展開される。
【００５１】
ＣＰＵ１１は、複合機１０の電源オン時にＲＯＭ１３のプログラム領域１３ａからプログラムを読み出してＲＡＭ１４のプログラム領域１４ａに記憶すると共に、ＲＯＭ１３のデータ領域１３ｂからデータを読み出してＲＡＭ１４のデータ領域１４ｂに記憶し、ＲＡＭ１４内のデータを使用してＲＡＭ１４内のプログラムを実行開始し、複合機１０を起動させて動作を開始させる。プログラムの実行では、命令内容（処理内容）に応じてＲＡＭ１４内の必要なデータ（該当する個々のデータの値）を使用し命令に従った計算（処理）を行う。計算の結果、使用したデータの値が変わり、元のデータをこの変更されたデータ（計算結果）に置き換える必要がある場合には、変更されたデータをＲＡＭ１４内の元のデータに上書きして更新する。プログラムの実行中は、このデータの置き換えが発生する度に、ＲＡＭ１４内の元のデータの上書き更新を行う。
【００５２】
複合機１０の電源オフ時は、電源管理部２４からＲＡＭ１４への動作電力の供給停止に伴い、ＲＡＭ１４内のプログラムとデータは消去される。
【００５３】
複合機１０は、電源オン毎にＲＯＭ１３内のプログラムとデータ（初期データ）がＲＡＭ１４に展開され、そのＲＡＭ１４内のプログラムとデータに基づいて起動し各種の動作を開始するようになっている。
【００５４】
次に、複合機１０の動作について説明する。
【００５５】
本実施形態のようにネットワークを通じて通信を行う複合機１０では、ネットワーク経由でコンピュータウイルスが複合機１０内に侵入し、ＲＯＭ１３内のプログラムが破損されるおそれがある。また、他の異常によってＲＯＭ１３内のプログラムが破損する可能性もある。ここでは、このようなＲＯＭ１３内のプログラムの破損に対し、プログラムを復元する動作について説明する。
【００５６】
図３は、複合機１０の電源オン時の動作の流れを示す図である。
【００５７】
ＣＰＵ１１は、複合機１０の電源オンの操作を受け付けると（ステップＳ１０１）、ＲＯＭ１３内のプログラムのチェックサム値を算出し、ハードディスク装置１６に保存する（ステップＳ１０２／Ｅｎｄ）。このチェックサム値は、ＲＯＭ１３に記憶されているプログラムの初期状態（破損前の状態）のチェックサム値となる。
【００５８】
図４は、複合機１０の電源オフ時の動作の流れを示す図である。
【００５９】
ＣＰＵ１１は、複合機１０の電源オフ（副電源オフ）の操作を受け付けると、電源管理部２４に電源オフの準備を指示する（ステップＳ２０１）。続いて、ハードディスク装置１６に保存されているチェックサム値（ＲＯＭ１３内のプログラムの初期状態のチェックサム値）を取得し（ステップＳ２０２）、ＲＡＭ１４内のプログラムのチェックサム値を算出してそれらを比較する（ステップＳ２０３）。
【００６０】
チェックサム値を比較した結果、値が同じである場合には（ステップＳ２０４；Ｙｅｓ）、ＣＰＵ１１はＲＡＭ１４内のプログラムが破損していないと判断し、ＲＯＭ１３内のプログラムとＲＡＭ１４内のプログラムを比較する（ステップＳ２０５）。ここでは、全プログラムデータの比較を行う。プログラムを比較した結果、同じである場合には（ステップＳ２０６；Ｙｅｓ）、ＣＰＵ１１はＲＯＭ１３内のプログラムが破損していないと判断し、電源管理部２４を制御して電源オフを実行する（ステップＳ２０８／Ｅｎｄ）。
【００６１】
プログラムを比較した結果、同じでない場合には（ステップＳ２０６；Ｎｏ）、ＣＰＵ１１はＲＯＭ１３内のプログラムが破損していると判断し、ＲＡＭ１４内のプログラムをＲＯＭ１３内のプログラムに上書きして書き換え、ＲＡＭ１４内のデータはＲＯＭ１３内のデータに上書きせずに（ステップＳ２０７）、電源管理部２４を制御して電源オフを実行する（ステップＳ２０８／Ｅｎｄ）。ステップＳ２０７により、ＲＯＭ１３内のプログラムは、破損していないことが確認されているＲＡＭ１４内のプログラムに置き換えられて初期化される。ＲＯＭ１３内のデータはＲＡＭ１４内のデータに置き換えられず維持される。
【００６２】
また、チェックサム値を比較した結果、値が同じでない場合には（ステップＳ２０４；Ｎｏ）、ＣＰＵ１１はＲＡＭ１４内のプログラムが破損していると判断し、ハードディスク装置１６から取得したチェックサム値と、ＲＯＭ１３内のプログラムのチェックサム値を比較する（ステップＳ２０９）。
【００６３】
チェックサム値を比較した結果、値が同じである場合には（ステップＳ２１０；Ｙｅｓ）、ＣＰＵ１１はＲＯＭ１３内のプログラムが破損していないと判断し、ＲＡＭ１４内のプログラムをＲＯＭ１３内のプログラムに上書きせずに、電源管理部２４を制御して電源オフを実行する（ステップＳ２０８／Ｅｎｄ）。チェックサム値が同じでない場合には（ステップＳ２１０；Ｎｏ）、ＣＰＵ１１はＲＡＭ１４内のプログラムに加えてＲＯＭ１３内のプログラムも破損していると判断し、表示部１７に警告を表示し（ステップＳ２１１）、電源管理部２４を制御して電源オフを実行する（ステップＳ２０８／Ｅｎｄ）。この場合は、警告表示を所定時間行った後に電源オフを実行する、もしくは、警告表示後に所定の操作（警告確認操作など）を受け付けると電源オフを実行するなどしてもよい。
【００６４】
警告表示の内容は、たとえば、複合機１０内のプログラムに異常が発生した旨、もしくは、複合機１０内のプログラムに異常が発生したためプログラムを修復する必要がある旨、もしくは、複合機１０内のプログラムに異常が発生したため電源オフ後はプログラムを修復するまで複合機１０を起動すべきでない旨などにしてもよい。
【００６５】
このように、本実施形態に係る複合機１０は、電源オフ時にＲＯＭ１３内のプログラムとＲＡＭ１４内のプログラムを比較して、ＲＯＭ１３内のプログラムが破損していると判断した場合は、ＲＡＭ１４内のプログラムをＲＯＭ１３内のプログラムに上書きして書き換える（初期化）。ＲＯＭ１３内から展開したＲＡＭ１４内のプログラムをＲＯＭ１３内のプログラムの復元用（初期化用）に利用することで、復元用のプログラムを装置の内部や外部に別途保存しておく必要がなく、ＲＯＭ１３内の破損したプログラムを簡素な構成で復元することができる。
【００６６】
特に上記のように、ＲＯＭ１３内のプログラムのチェックを該プログラムとＲＡＭ１４内のプログラムの比較のみで簡単に行うことができるため、たとえばネットワーク経由でＲＯＭ１３内のプログラムをチェックするなどの構成や動作が不要となる。また、ＲＯＭ１３内のプログラムの破損を防ぐために様々なシステム（ハードウェアやソフトウェアなど）を導入しなくて済むのでコストが抑えられる。
【００６７】
また、ＲＯＭ１３内のプログラムが破損していると判断した場合のみ上記の書き換えを行うので、必要性の低い書き換え動作を行わなくて済む。たとえば、汎用のフラッシュメモリは通常書き換え回数に制限がある。そのため、汎用のフラッシュメモリをＲＯＭ１３（書換型ＲＯＭ）に使用する場合は、必要性の低い書き換え動作を行わないことでＲＯＭ１３の長寿命化を図ることができる。
【００６８】
また、ＲＯＭ１３内のプログラムとＲＡＭ１４内のプログラムを全て比較してＲＯＭ１３内のプログラムが破損しているか否かを判断するため、破損の有無を正確に判断することができる。
【００６９】
また、ＲＡＭ１４内の記憶情報はＲＯＭ１３内の記憶情報に比べてコンピュータウイルスに攻撃される可能性が低いものと推測されるが、ＲＡＭ１４内のプログラムは復元用（初期化用）に利用するため異常が無いことを確認することが望ましい。本実施形態では、ＲＡＭ１４内のプログラムの異常の有無をチェックサム値を用いて調べ、異常が無い場合にＲＯＭ１３内のプログラムとＲＡＭ１４内のプログラムの全比較を行い、ＲＯＭ１３内のプログラムが破損していると判断した場合に上記の書き換えを行う。これにより、ＲＡＭ１４内のプログラムに異常が有る場合の誤った書き換えを回避できる。
【００７０】
また、ＲＡＭ１４内の記憶情報は複合機１０の電源オフに伴い消去されるため、その消去直前にＲＯＭ１３内のプログラムの破損を検出する。すなわち、複合機１０の電源オフ時にＲＯＭ１３内のプログラムが破損しているか否かを判断し、破損していると判断した場合に上記の書き換えを行うことで、次回の電源オン時にＲＯＭ１３内のプログラムが破損していて当該複合機１０を起動できないなどの不具合を防止することができる。このように、ＲＯＭ１３内のプログラムの破損の検出は、ＲＡＭ１４内のプログラムが消去される直前のタイミングに行えばよく、電源オフ時に１度行うだけでＲＯＭ１３内のプログラムの破損を検出し修復することができる。
【００７１】
また、複合機１０の電源オフ時にＲＯＭ１３内のプログラムが破損していると判断した場合は上記の書き換えを行い、この書き換えを行った後に複合機１０の電源をオフにする。これにより、複合機１０の電源オフ時にＲＯＭ１３内のプログラムが破損していると判断した場合には、上記の書き換えが完了しＲＯＭ１３内のプログラムが正常な状態に復元されてから複合機１０の電源がオフにされる。
【００７２】
また、ＲＯＭ１３内のデータは、プログラムの実行開始時に使用（参照）される初期値を示すデータ（初期データ）であると共に、プログラムの実行時に少なくとも一部が書き換え対象となるデータである。ＲＯＭ１３からプログラムと共にＲＡＭ１４に展開されたデータは、ＲＡＭ１４内のプログラムの実行時に書き換えられる可能性がある。このＲＡＭ内のデータはＲＯＭ１３内のデータに上書きしないことで、ＲＯＭ１３内の初期データが変更されてしまうことを回避できる。
【００７３】
[第２の実施形態]
第１の実施形態で説明したように、プログラムとデータを分けてＲＯＭ１３に記憶する構成では、ＲＯＭ１３内のデータが破損すると、ＲＯＭ１３内のプログラムとデータをＲＡＭ１４内に展開して複合機１０を動作させる際に、データが破損していてプログラムを正しく実行できず、複合機１０を起動できなくなるおそれがある。第２の実施形態では、このようなＲＯＭ１３内のデータの破損によって起動不可となるトラブルを回避するものである。
【００７４】
図５は、第２の実施形態に係る複合機１０の電源オン時の動作の流れを示す図である。
【００７５】
ＣＰＵ１１は、複合機１０の電源オンの操作を受け付けると（ステップＳ５０１）、ＲＯＭ１３内のプログラムのチェックサム値を算出し、ハードディスク装置１６に保存すると共に（ステップＳ５０２）、ＲＯＭ１３内のデータのチェックサム値を算出し、ハードディスク装置１６に保存する（ステップＳ５０３／Ｅｎｄ）。ステップＳ５０２のチェックサム値は、ＲＯＭ１３に記憶されているプログラムの初期状態（破損前の状態）のチェックサム値となり、ステップＳ５０３のチェックサム値は、ＲＯＭ１３に記憶されているデータの初期状態（破損前の状態）のチェックサム値となる。
【００７６】
図６は、第２の実施形態に係る複合機１０の電源オフ時の動作の流れを示す図である。
【００７７】
ステップＳ６０１〜Ｓ６０７は、図４のステップＳ２０１〜Ｓ２０７と同じである。ステップＳ６１３は、図４のステップＳ２０８と同じである。ステップＳ６１４〜Ｓ６１６は、図４のステップＳ２０９〜Ｓ２１１と同じである。ここでは、第１の実施形態と異なるステップのみを説明する。
【００７８】
ＲＯＭ１３内のプログラムとＲＡＭ１４内のプログラムを比較した結果（ステップＳ６０５）、同じである場合には（ステップＳ６０６；Ｙｅｓ）、ステップＳ６０８へ移行する。同じでない場合には（ステップＳ６０６；Ｎｏ）、ＲＡＭ１４内のプログラムをＲＯＭ１３内のプログラムに上書きして書き換え（ステップＳ６０７）、ステップＳ６０８へ移行する。
【００７９】
ステップＳ６０８では、ＣＰＵ１１は、ハードディスク装置１６からデータのチェックサム値（ＲＯＭ１３内のデータの初期状態のチェックサム値）を取得し（ステップＳ６０８）、ＲＯＭ１３内のデータのチェックサム値を算出してそれらを比較する（ステップＳ６０９）。
【００８０】
チェックサム値を比較した結果、値が同じである場合には（ステップＳ６１０；Ｙｅｓ）、ＣＰＵ１１はＲＯＭ１３内のデータが破損していないと判断し、電源管理部２４を制御して電源オフを実行する（ステップＳ６１３／Ｅｎｄ）。値が同じでない場合には（ステップＳ６１０；Ｎｏ）、ＣＰＵ１１はＲＯＭ１３内のデータが破損していると判断し、ＲＡＭ１４内のデータをＲＯＭ１３内のデータに上書きして書き換え（ステップＳ６１１）、表示部１７に警告を表示し、電源管理部２４を制御して電源オフを実行する（ステップＳ６１３／Ｅｎｄ）。この場合は、警告表示を所定時間行った後に電源オフを実行する、もしくは、警告表示後に所定の操作（警告確認操作など）を受け付けると電源オフを実行するなどしてもよい。
【００８１】
警告表示の内容は、たとえば、複合機１０内のプログラムに使用するデータが初期値に対して変更された可能性がある旨、もしくは、複合機１０内のプログラムに使用するデータが初期値に対して変更された可能性があるため初期値に戻す必要がある旨などにしてもよい。
【００８２】
このように、本実施形態では、複合機１０の電源オフ時にＲＯＭ１３内のデータの異常（破損）の有無をチェックサム値を用いて調べ、異常が有る場合はＲＡＭ１４内のデータをＲＯＭ１３内のデータに上書きして書き換える。このＲＡＭ１４内のデータは、電源オフの直前までＲＡＭ１４内のプログラムの実行に使用されていたものであり、少なくとも複合機１０の動作（プログラムの実行）には支障のないデータである。ＲＯＭ１３内のデータに異常が有る場合は、複合機１０の動作上支障のないＲＡＭ１４内のデータを利用してＲＯＭ１３内のデータに上書きし書き換えることで、複合機１０が起動不可となるトラブルを回避することができる。
【００８３】
複合機１０の起動後は、たとえば初期データを取得し、ＲＯＭ１３内のデータ（初期データに対して変更されている可能性のあるデータ）に上書きして書き換えることで、ＲＯＭ１３内のデータを初期データに戻すことも可能である。本実施形態では、ＲＡＭ１４内のデータでＲＯＭ１３内のデータを書き換えた直後に、図６のステップＳ６１２で説明した警告表示を行うことで、すなわち、複合機１０内のプログラムに使用するデータが初期値に対して変更された可能性がある旨などの警告表示を行うことで、ユーザが複合機１０内のデータを初期値に戻す必要があることを把握し、その対応が可能となる。また、同様の警告表示を複合機１０の再起動後に行うようにしてもよい。この場合も、ユーザが複合機１０内のデータを初期値に戻す必要があることを把握し、その対応が可能となる。
【００８４】
以上、本発明の実施形態を図面によって説明してきたが、具体的な構成は実施形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【００８５】
ＲＡＭ１４内のプログラムを利用したＲＯＭ１３内のプログラムの初期化は、ＲＯＭ１３内のプログラムが破損していると判断した場合のみに限らない。このような判断（ＲＯＭ１３内のプログラムとＲＡＭ１４内のプログラムの比較）を行わずに初期化を行うようにしてもよい。
【００８６】
上記の初期化は、複合機１０の電源オフ時に限らない。所定のタイミング、たとえば予め設定されている所定の時刻や所定の時間間隔などに行うようにしてもよい。
【００８７】
プログラムのチェックサム値やデータのチェックサム値は、ハードディスク装置１６に保存するほかに、不揮発メモリ１５に保存するようにしてもよい。また、複合機１０の起動時にチェックサム値を算出して保存するほかに、予め算出されているチェックサム値を保存しておくようにしてもよい。また、ネットワークを通じて外部のサーバなどからチェックサム値を取得するようにしてもよい。
【００８８】
第１の実施形態で説明したＲＡＭ１４内のプログラムの異常（破損）の確認や第２の実施形態で説明したＲＯＭ１３内のデータの異常（破損）の確認は、チェックサム値を用いるほかに、巡回冗長検査（Cyclic Redundancy Check；ＣＲＣ）などを用いて行うようにしてもよい。
【００８９】
また、第１および第２の実施形態ではＲＡＭ１４内のプログラムの異常の有無をチェックサム値を用いて調べ、ＲＡＭ１４内のプログラムに異常が無いことを確認するようにしているが、この確認は省略するようにしてもよい。第２の実施形態ではＲＯＭ１３内のデータの異常の有無をチェックサム値を用いて調べ、ＲＯＭ１３内のデータに異常が無いことを確認するようにしているが、この確認は省略するようにしてもよい。
【００９０】
また、ＲＯＭ１３内のプログラムが破損していると判断し、ＲＡＭ１４内のプログラムをＲＯＭ１３内のプログラムに上書きする場合には、ＲＯＭ１３内のデータも破損している可能性が高いので、ＲＡＭ１４内のデータをＲＯＭ１３内のデータに上書きするようにしてもよい。
【００９１】
また、本発明に係る画像形成装置は、実施形態で説明した複合機に限らず、プリンタ機や複写機なども対象にすることができる。本発明に係る情報処理装置は、書換型ＲＯＭ内のプログラムをＲＡＭに展開して動作する各種の情報処理装置を対象にすることができる。
【符号の説明】
【００９２】
１０…複合機
１１…ＣＰＵ
１２…バス
１３…ＲＯＭ
１３ａ…プログラム領域
１３ｂ…データ領域
１４…ＲＡＭ
１４ａ…プログラム領域
１４ｂ…データ領域
１５…不揮発メモリ
１６…ハードディスク装置
１７…表示部
１８…操作部
１９…ファクシミリ通信部
２０…ネットワーク通信部
２１…スキャナ部
２２…画像処理部
２３…プリンタ部
２４…電源管理部
【図１】
2011170803.tif 000003
【図２】
2011170803.tif 000004
【図３】
2011170803.tif 000005
【図４】
2011170803.tif 000006
【図５】
2011170803.tif 000007
【図６】
2011170803.tif 000008