(57)【特許請求の範囲】
【請求項１】
プロセッサと、
格納領域、ワーク領域、およびイメージ領域からなるシステムメモリと、
不揮発性メモリと、
ダイレクトメモリアクセスコントローラを含むメモリチェック回路であって、該ダイレクトメモリアクセスコントローラを介して前記システムメモリのメモリセルに所定のデータを書き込み、その後、該ダイレクトメモリアクセスコントローラを介して、前記システムメモリの前記所定のデータが書き込まれたメモリセルからデータを読み出して、書き込んだ所定のデータと読み出したデータとを比較し、比較の結果、データが一致しなかったときに、前記メモリセルに故障があったとするメモリチェックを行う回路であるメモリチェック回路と、を備える画像処理装置の起動処理における前記システムメモリのメモリチェック方法であって、
前記メモリチェック回路が、前記格納領域のメモリセルについてメモリチェックを行う第１ステップと、
前記第１ステップのメモリチェックにおいて前記格納領域のメモリセルがすべて故障していなかったときに、
前記メモリチェック回路が、前記ワーク領域のメモリセルについてメモリチェックを行うとともに、
前記プロセッサが、前記不揮発性メモリに予め記憶されているシステムプログラムデータの、前記格納領域への転送を開始し、前記ワーク領域のメモリセルについてのメモリチェックが完了するまでに、前記システムプログラムデータの、前記格納領域への転送を完了するか、または前記ワーク領域のメモリセルについてのメモリチェックと、前記システムプログラムデータの、前記格納領域への転送とが同時に完了する第２ステップと、
前記第２ステップのメモリチェックにおいて前記ワーク領域のメモリセルがすべて故障していなかったときに、
前記メモリチェック回路が、前記イメージ領域のメモリセルについてメモリチェックを行うとともに、
前記プロセッサが、前記格納領域に転送されたシステムプログラムデータに基づいて、前記画像処理装置の起動処理のうち、少なくともシステムプログラムの起動処理を行う第３ステップと、を含むことを特徴とするメモリチェック方法。
【請求項２】
前記第３ステップで行われる前記画像処理装置の起動処理には、システムプログラムの起動処理以外に、アプリケーションプログラムの起動処理と、外部機器の初期化との、少なくとも一方が含まれることを特徴とする請求項１に記載のメモリチェック方法。
【請求項３】
前記メモリチェック回路は、前記ダイレクトメモリアクセスコントローラを介して前記システムメモリに前記所定のデータを書き込むとき、１または複数バースト単位で書き込むことを特徴とする請求項１または２に記載のメモリチェック方法。
【請求項４】
前記メモリチェック回路は、前記ダイレクトメモリアクセスコントローラを介して前記システムメモリに前記所定のデータを書き込むとき、１バイト単位で書き込むことを特徴とする請求項１または２に記載のメモリチェック方法。
【請求項５】
前記メモリチェック回路は、前記ダイレクトメモリアクセスコントローラを介して前記システムメモリに、前記所定のデータとして擬似乱数パターンデータを書き込むことを特徴とする請求項１〜４のいずれか１つに記載のメモリチェック方法。
【請求項６】
前記メモリチェック回路は、前記ダイレクトメモリアクセスコントローラを介して前記システムメモリに、前記所定のデータとして固定パターンデータを書き込むことを特徴とする請求項１〜４のいずれか１つに記載のメモリチェック方法。
【請求項７】
プロセッサと、システムメモリと、不揮発性メモリと、メモリチェック回路と、を備える画像処理装置であって、
前記システムメモリは、格納領域、ワーク領域、およびイメージ領域からなり、
前記不揮発性メモリは、予めシステムプログラムデータを記憶しており、
前記メモリチェック回路は、ダイレクトメモリアクセスコントローラを含み、該ダイレクトメモリアクセスコントローラを介して前記システムメモリのメモリセルに所定のデータを書き込み、その後、該ダイレクトメモリアクセスコントローラを介して、前記システムメモリの前記所定のデータが書き込まれたメモリセルからデータを読み出して、書き込んだ所定のデータと読み出したデータとを比較し、比較の結果、データが一致しなかったときに、前記メモリセルに故障があったとするメモリチェックを行う回路であり、
前記メモリチェック回路は、前記格納領域のメモリセルについてメモリチェックを行うように構成され、
前記格納領域のメモリセルについてのメモリチェックにおいて該格納領域のメモリセルがすべて故障していなかったとき、
前記メモリチェック回路が、前記ワーク領域のメモリセルについてメモリチェックを行うとともに、
前記プロセッサが、前記システムプログラムデータの、前記格納領域への転送を開始し、前記ワーク領域のメモリセルについてのメモリチェックが完了するまでに、前記システムプログラムデータの、前記格納領域への転送を完了するか、または前記ワーク領域のメモリセルについてのメモリチェックと、前記システムプログラムデータの、前記格納領域への転送とが同時に完了するように構成され、
前記ワーク領域のメモリセルについてのメモリチェックにおいて該ワーク領域のメモリセルがすべて故障していなかったとき、
前記メモリチェック回路が、前記イメージ領域のメモリセルについてメモリチェックを行うとともに、
前記プロセッサが、前記格納領域に転送されたシステムプログラムデータに基づいて、前記画像処理装置の起動処理のうち、少なくともシステムプログラムの起動処理を行うように構成されることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリチェック方法および画像処理装置に関する。
【背景技術】
【０００２】
マルチファンクション複合機などに備えられ、画像データに種々の画像処理を行う画像処理装置は、プログラムデータに基づく処理やデータの転送を行うプロセッサ、該プロセッサによるデータの読み出しおよび書き込みが可能なシステムメモリ（メインメモリ、または主記憶装置とも呼ばれる）、およびＨＤＤ（ハードディスクドライブ）やフラッシュメモリなどの不揮発性メモリを備えている。
【０００３】
不揮発性メモリには、画像処理装置全体の動作を統括するシステムプログラムが、システムプログラムデータとして記憶されている。不揮発性メモリに記憶されているシステムプログラムデータがシステムメモリに転送、格納され、格納されたシステムプログラムデータに基づいてプロセッサが所定の処理を行うことで、システムプログラムは起動する。システムプログラムの起動処理が完了した時点で、画像処理装置は画像データに対して画像処理を行うことが可能になる。
【０００４】
システムメモリには、システムプログラムデータだけではなく、たとえば、アプリケーションプログラムデータや画像データなどの様々なデータが格納される。マルチファンクション複合機の場合であれば、システムメモリには、たとえば、画像入力装置から入力される入力画像データや、画像出力装置へ出力される出力画像データなどが格納される。このようなシステムメモリのいずれかのメモリセルに故障が生じると、システムプログラムデータなどのデータが正常に格納できなくなり、画像処理装置が正常に動作できなくなる。そのため、システムメモリのメモリセルに故障が生じているか否かを確認し、実動作での問題発生を未然に防ぐことが求められる。
【０００５】
一般的に、システムメモリは、製造時や画像処理装置の出荷時に故障がなくても、環境などの外部要因によって故障することがある。したがって、画像処理装置が安定して動作するためには、画像処理装置を起動するたびにシステムメモリのメモリチェックをすることが必要である。しかしながら、近年の画像処理装置は、処理する画像の解像度が高く、これに比例して搭載するシステムメモリの容量が大きくなってきているので、メモリチェックに要する時間も多くなっている。従来では、システムプログラムデータの転送処理およびシステムプログラムの起動処理はメモリチェックの終了後に行われるので、メモリチェックに要する時間が多くなると、システムプログラムの起動処理が完了して画像処理装置が使用可能となるまでに多くの時間を要してしまうという問題がある。
【０００６】
特許文献１には、この問題を解決する装置として、マルチプロセッサシステムによって、システムメモリのメモリチェックを行う装置が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１６９８９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載の装置は、システムメモリのうち、所定のプログラムデータが格納される領域以外の領域であるメモリチェック対象領域のメモリチェックを、複数の副プロセッサに分担させて行わせている。したがって、特許文献１に記載の装置によれば、メモリチェック対象領域のメモリチェックを、従来よりも早く終了させることができる。
【０００９】
しかしながら、特許文献１に記載の装置では、すべての副プロセッサによるチェックが終了しない限り、すなわち、メモリチェック対象領域全体のメモリチェックが終了しない限り、システムプログラムの起動処理を行うことができないという課題がある。また、特許文献１に記載の装置では、メモリチェック対象領域のメモリセルについてのみメモリチェックを行っているので、メモリチェック対象領域以外の領域のメモリセルについて、故障を発見することができない。
【００１０】
本発明は、上記のような課題を解決するものであり、システムメモリのメモリチェックとシステムプログラムの起動処理とを並列に行うことができるメモリチェック方法および画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、プロセッサと、
格納領域、ワーク領域、およびイメージ領域からなるシステムメモリと、
不揮発性メモリと、
ダイレクトメモリアクセスコントローラを含むメモリチェック回路であって、該ダイレクトメモリアクセスコントローラを介して前記システムメモリのメモリセルに所定のデータを書き込み、その後、該ダイレクトメモリアクセスコントローラを介して、前記システムメモリの前記所定のデータが書き込まれたメモリセルからデータを読み出して、書き込んだ所定のデータと読み出したデータとを比較し、比較の結果、データが一致しなかったときに、前記メモリセルに故障があったとするメモリチェックを行う回路であるメモリチェック回路と、を備える画像処理装置の起動処理における前記システムメモリのメモリチェック方法であって、
前記メモリチェック回路が、前記格納領域のメモリセルについてメモリチェックを行う第１ステップと、
前記第１ステップのメモリチェックにおいて前記格納領域のメモリセルがすべて故障していなかったときに、
前記メモリチェック回路が、前記ワーク領域のメモリセルについてメモリチェックを行うとともに、
前記プロセッサが、前記不揮発性メモリに予め記憶されているシステムプログラムデータの、前記格納領域への転送を開始し、前記ワーク領域のメモリセルについてのメモリチェックが完了するまでに、前記システムプログラムデータの、前記格納領域への転送を完了するか、または前記ワーク領域のメモリセルについてのメモリチェックと、前記システムプログラムデータの、前記格納領域への転送とが同時に完了する第２ステップと、
前記第２ステップのメモリチェックにおいて前記ワーク領域のメモリセルがすべて故障していなかったときに、
前記メモリチェック回路が、前記イメージ領域のメモリセルについてメモリチェックを行うとともに、
前記プロセッサが、前記格納領域に転送されたシステムプログラムデータに基づいて、前記画像処理装置の起動処理のうち、少なくともシステムプログラムの起動処理を行う第３ステップと、を含むことを特徴とするメモリチェック方法である。
【００１２】
また本発明は、前記第３ステップで行われる前記画像処理装置の起動処理には、システムプログラムの起動処理以外に、アプリケーションプログラムの起動処理と、外部機器の初期化との、少なくとも一方が含まれることを特徴とする。
【００１３】
また本発明は、前記メモリチェック回路が、前記ダイレクトメモリアクセスコントローラを介して前記システムメモリに前記所定のデータを書き込むとき、１または複数バースト単位で書き込むことを特徴とする。
【００１４】
また本発明は、前記メモリチェック回路が、前記ダイレクトメモリアクセスコントローラを介して前記システムメモリに前記所定のデータを書き込むとき、１バイト単位で書き込むことを特徴とする。
【００１５】
また本発明は、前記メモリチェック回路が、前記ダイレクトメモリアクセスコントローラを介して前記システムメモリに、前記所定のデータとして擬似乱数パターンデータを書き込むことを特徴とする。
【００１６】
また本発明は、前記メモリチェック回路が、前記ダイレクトメモリアクセスコントローラを介して前記システムメモリに、前記所定のデータとして固定パターンデータを書き込むことを特徴とする。
【００１７】
また本発明は、プロセッサと、システムメモリと、不揮発性メモリと、メモリチェック回路と、を備える画像処理装置であって、
前記システムメモリは、格納領域、ワーク領域、およびイメージ領域からなり、
前記不揮発性メモリは、予めシステムプログラムデータを記憶しており、
前記メモリチェック回路は、ダイレクトメモリアクセスコントローラを含み、該ダイレクトメモリアクセスコントローラを介して前記システムメモリのメモリセルに所定のデータを書き込み、その後、該ダイレクトメモリアクセスコントローラを介して、前記システムメモリの前記所定のデータが書き込まれたメモリセルからデータを読み出して、書き込んだ所定のデータと読み出したデータとを比較し、比較の結果、データが一致しなかったときに、前記メモリセルに故障があったとするメモリチェックを行う回路であり、
前記メモリチェック回路は、前記格納領域のメモリセルについてメモリチェックを行うように構成され、
前記格納領域のメモリセルについてのメモリチェックにおいて該格納領域のメモリセルがすべて故障していなかったとき、
前記メモリチェック回路が、前記ワーク領域のメモリセルについてメモリチェックを行うとともに、
前記プロセッサが、前記システムプログラムデータの、前記格納領域への転送を開始し、前記ワーク領域のメモリセルについてのメモリチェックが完了するまでに、前記システムプログラムデータの、前記格納領域への転送を完了するか、または前記ワーク領域のメモリセルについてのメモリチェックと、前記システムプログラムデータの、前記格納領域への転送とが同時に完了するように構成され、
前記ワーク領域のメモリセルについてのメモリチェックにおいて該ワーク領域のメモリセルがすべて故障していなかったとき、
前記メモリチェック回路が、前記イメージ領域のメモリセルについてメモリチェックを行うとともに、
前記プロセッサが、前記格納領域に転送されたシステムプログラムデータに基づいて、前記画像処理装置の起動処理のうち、少なくともシステムプログラムの起動処理を行うように構成されることを特徴とする画像処理装置である。
【発明の効果】
【００１８】
本発明によれば、第２ステップにおいて、プロセッサとメモリチェック回路とにより、システムプログラムの起動処理とシステムメモリのメモリチェックとを並列に行うことができる。これによって、システムメモリのメモリチェックに要する時間を有効に活用することができる。また本発明では、メモリチェック回路がダイレクトメモリアクセスコントローラを介してシステムメモリのメモリチェックを行うので、システムメモリのすべてのメモリセルについてメモリチェックを行うときであっても、プロセッサに掛かる負荷を軽減することができる。
【００１９】
また本発明によれば、第３ステップにおいて、システムプログラムの起動処理以外にも、アプリケーションプログラムの起動処理および外部機器の初期化のうち、少なくとも一方の処理を、メモリチェック回路によるシステムメモリのメモリチェックと並列に行うことができる。したがって、システムメモリのメモリチェックに要する時間をより有効に活用することができる。
【００２０】
また本発明によれば、メモリチェック回路は、ダイレクトメモリアクセスコントローラを介したデータの書き込みを、１または複数バースト単位で行う。これによって、データを１バイト単位で書き込む場合と比較して、システムメモリのメモリチェックに要する時間を短縮することができる。
【００２１】
また本発明によれば、メモリチェック回路は、ダイレクトメモリアクセスコントローラを介したデータの書き込みを、１バイト単位で行う。したがって、データの書き込みのときにデータマスク信号を使用するので、システムメモリのメモリチェックだけでなく、データマスク信号に異常が生じているか否かのチェックも行うことができる。
【００２２】
また本発明によれば、メモリチェック回路は、システムメモリに、擬似乱数パターンデータを書き込む。これによって、システムメモリのメモリセルの故障モードが他のメモリセルへの書き込みに付随して変化するような故障モードであったとしても、メモリセルの故障をより容易に発見することができる。
【００２３】
また本発明によれば、メモリチェック回路は、システムメモリに、固定パターンデータを書き込む。これによって、メモリセルの故障が発見されたときに、故障しているメモリセルに本来書き込まれるべきであったデータを、当該固定パターンデータを再度生成することなく確認することができる。
【００２４】
また本発明によれば、プロセッサとメモリチェック回路とにより、システムプログラムの起動処理とシステムメモリのメモリチェックとを並列に行うことができる。これによって、システムメモリのメモリチェックに要する時間を有効に活用することができる。また本発明では、メモリチェック回路がダイレクトメモリアクセスコントローラを介してシステムメモリのメモリチェックを行うので、プロセッサに掛かる負荷を軽減しながら、システムメモリのすべてのメモリセルについて、メモリチェックを行うことができる。
【図面の簡単な説明】
【００２５】
【図１】複合機１０００の構成を示す模式図である。
【図２】システムメモリ４の各領域の概念図である。
【図３】メモリチェック回路２の構成を示すブロック図である。
【図４】メモリチェック方法を表すフローチャートである。
【図５】第１ステップＳ１におけるメモリチェック回路２による処理を表すフローチャートである。
【発明を実施するための形態】
【００２６】
以下に、本発明の実施形態である画像処理装置１００を備える複合機１０００について説明する。図１は、複合機１０００の構成を示す模式図である。複合機１０００は、画像処理装置１００と、画像入力装置２００と、画像出力装置３００とを備える。複合機１０００は、コピアモード（複写モード）、プリンタモード、およびファクシミリモードという３種の印刷モードを有しており、各印刷モードにおいて、記録用紙などの記録媒体上にフルカラーまたはモノクロの画像を形成する。複合機１０００の印刷モードは、パーソナルコンピュータ、携帯端末装置、情報記録媒体などからの命令、図示しない操作部からの操作入力などに従って設定される。
【００２７】
画像入力装置２００は、たとえば、ライン状に配置されるＣＣＤ（Charge Coupled 
Device）イメージセンサを備えるスキャナ部を有する画像読取装置である。スキャナ部は、ＣＣＤイメージセンサの配置方向（主走査方向）に垂直な方向（副走査方向）に移動することによって、原稿から反射光像を読み取る。反射光像は、赤色（Ｒ）成分、緑色（Ｇ）成分、および青色（Ｂ）成分に色分解され、各成分の反射率を示すアナログ信号として、スキャナ部に読み取られる。画像入力装置２００は、画素ごとに読み取ったＲＧＢの各アナログ信号を１つのデータとしてまとめることによって、アナログ信号の画像データを作成し、当該アナログ信号の画像データを画像処理装置１００に出力する。
【００２８】
画像処理装置１００は、画像入力装置２００から入力されたアナログ信号の画像データを、入力画像データとして記憶する。そして、画像処理装置１００は、記憶した入力画像データに、さまざまな画像処理を行って出力画像データとして、画像出力装置３００に出力する。画像処理装置１００が入力画像データに行う画像処理としては、たとえば、画質調整処理、色補正処理、階調再現処理などの、画像データに対して補正を行う処理などが挙げられる。また、たとえば、拡大処理、縮小処理、２色化処理などの、ユーザの指示に基づいて画像データに修正を加える処理も挙げられる。画像処理装置１００の具体的な構成については後述する。
【００２９】
画像出力装置３００は、電子写真方式、インクジェット方式などの画像形成装置である。画像出力装置３００は、画像処理装置１００から入力された出力画像データに基づいて、記録媒体に画像を形成する。
【００３０】
図１に示すように、画像処理装置１００は、プロセッサ１と、メモリチェック回路２と、キャッシュメモリ３と、システムメモリ４と、第１不揮発性メモリ５と、第２不揮発性メモリ６と、インターフェイス部７と、表示部８とを含む。
【００３１】
プロセッサ１は、プログラムデータに基づく演算処理、および異なる電子デバイス間でのデータの転送制御処理などを行う制御演算装置である。プロセッサ１としては、１つのＣＰＵ（Central Processing Unit）が用いられてもよく、複数のＣＰＵが用いられてもよい。ただし、複数のＣＰＵを用いる場合は、各ＣＰＵを同期させる必要が生じるので、ＣＰＵは１つであることが好ましい。
【００３２】
キャッシュメモリ３は、ＳＲＡＭ（Static Random Access Memory）などの半導体メモリである。キャッシュメモリ３は、プロセッサ１による直接的なデータの読み出しおよび書き込みが可能に構成される。
【００３３】
第２不揮発性メモリ６は、たとえば、ＨＤＤ、ＳＤメモリカードなどの不揮発性のメモリである。第２不揮発性メモリ６には、システムプログラムデータ、２次ダウンローダプログラムデータ、およびアプリケーションプログラムデータが記憶されている。
【００３４】
システムプログラムデータは、画像処理装置１００全体の動作を統括し、入力画像データに対して所定の画像処理を行うためのプログラムであるシステムプログラムを表したデータである。システムプログラムデータは所定の処理の実行手順を示すデータであり、当該所定の処理に係る設定を示すデータはシステムプログラムデータに含まれない。
【００３５】
システムプログラムデータに基づいてプロセッサ１が所定の処理を開始することで、システムプログラムの起動処理が開始される。システムプログラムの起動処理は、当該システムプログラムの起動処理の開始から画像処理装置１００が画像処理を行うことが可能になるまでの期間において、システムプログラムデータに基づいて行われる処理である。
【００３６】
アプリケーションプログラムデータは、画像処理装置１００に外付けされる外部機器を起動させたり、入力画像データに対してシステムプログラムに含まれていない処理を行ったりするためのプログラムであるアプリケーションプログラムを表したデータである。アプリケーションプログラムデータに基づいてプロセッサ１が所定の処理を開始することで、アプリケーションプログラムの起動処理が開始される。アプリケーションプログラムの起動処理は、当該アプリケーションプログラムの起動処理の開始から当該アプリケーションプログラムが利用可能になるまでの期間において、アプリケーションプログラムデータに基づいて行われる処理である。
【００３７】
２次ダウンローダプログラムデータは、画像処理装置１００の起動処理において、第２不揮発性メモリ６からシステムメモリ４へ、システムプログラムデータを転送するためのプログラムを表したデータである。ここで、画像処理装置１００の起動処理とは、画像処理装置１００に電源が投入されてから画像処理装置１００が使用可能になるまでの期間において、画像処理装置１００によって行われる処理であり、本実施形態では、上述したシステムプログラムの起動処理およびアプリケーションプログラムの起動処理、外部機器などの初期化、ならびに後述するメモリチェック回路２によるメモリチェックを含む。２次ダウンローダプログラムには、メモリチェックに係る設定データであるメモリチェック設定データも含まれる。メモリチェック設定データは、プロセッサ１によって、メモリチェック回路２へ送られる。
【００３８】
第１不揮発性メモリ５は、たとえば、フラッシュメモリ、ＮＶＲＡＭ（Non Volatile 
Random Access Memory）などの不揮発性の半導体メモリである。第１不揮発性メモリ５は、プロセッサ１による直接的なデータの読み出しが可能に構成される。第１不揮発性メモリ５には、１次ダウンローダプログラムデータが記憶されている。１次ダウンローダプログラムデータは、画像処理装置１００の起動処理において、第２不揮発性メモリ６からキャッシュメモリ３へ、２次ダウンローダプログラムデータを転送するためのプログラムを表したデータである。
【００３９】
本実施形態では、上記のように、第１不揮発性メモリ５に１次ダウンローダプログラムデータが記憶され、第２不揮発性メモリ６にシステムプログラムデータおよび２次ダウンローダプログラムデータが記憶されている。これに対し、本発明の他の実施形態として、第１不揮発性メモリ５に、１次ダウンローダプログラムデータの代わりに、２次ダウンローダプログラムデータが記憶されていてもよい。
【００４０】
メモリチェック回路２は、図示しないデータバスおよびアドレスバスを介して、プロセッサ１およびシステムメモリ４に接続されるデジタル電子回路である。メモリチェック回路２は、システムプログラムの起動処理のときに、システムメモリ４に対してメモリチェックを行う。メモリチェック回路２によるメモリチェックでは、まず、システムメモリ４のメモリセルにパターンデータが書き込まれ、次に、システムメモリ４における当該パターンデータが書き込まれたメモリセルからデータが読み出される。そして、書き込まれたデータと読み出されたデータとが比較され、比較の結果、データが一致しなかったときに、システムメモリ４の当該メモリセルに故障があったと判断される。
【００４１】
システムメモリ４は、たとえば、ＤＤＲ  ＳＤＲＡＭ（Double Data Rate Synchronous
Dynamic Random Access Memory）などの半導体メモリである。本発明において、システムメモリ４は、概念的に、格納領域４１、ワーク領域４２、およびイメージ領域４３の、３つの領域に区分される。各領域は、それぞれ、システムメモリ４の一部分であり、複数のメモリセルからなる。
【００４２】
図２は、システムメモリ４の各領域の概念図である。格納領域４１は、少なくともシステムプログラムデータが記憶（格納）される領域である。システムメモリ４全体の記憶容量を２ギガバイトとするとき、格納領域４１の記憶容量は、たとえば、１２８メガバイトである。
【００４３】
ワーク領域４２は、格納領域４１に記憶（格納）されたシステムプログラムデータに基づくシステムプログラムの起動処理に少なくとも必要な領域である。ワーク領域４２には、たとえば、システムプログラムの起動に必要な設定データや、システムプログラムデータに基づく演算処理の結果が記憶される。また、ワーク領域４２には、アプリケーションプログラムデータを記憶でき、当該アプリケーションプログラムデータに基づいてアプリケーションプログラムが起動する。システムメモリ４全体の記憶容量を２ギガバイトとするとき、ワーク領域４２の記憶容量は、たとえば、５１２メガバイトである。
【００４４】
イメージ領域４３は、システムメモリ４のうち、格納領域４１およびワーク領域４２以外の領域である。イメージ領域４３には、主に、入力画像データが記憶される。システムメモリ４全体の記憶容量を２ギガバイトとするとき、イメージ領域４３の記憶容量は、たとえば、１．４ギガバイトである。
【００４５】
インターフェイス部７は、ＵＳＢ（Universal Serial Bus）接続、ＥＴＨＥＲネット接続などのための接続部である。たとえば、画像処理装置１００は、インターフェイス部７を介してＵＳＢメモリなどを接続でき、当該ＵＳＢメモリに記憶されている画像データを入力画像データとして記憶することができる。表示部８は、たとえば、タッチパネルなどから構成される。表示部８には、画像処理装置１００の操作用の画像、メモリチェック回路２によるメモリチェックの結果などが表示される。
【００４６】
このような画像処理装置１００によれば、システムメモリ４に記憶された入力画像データに対して、システムメモリ４に記憶されたシステムプログラムデータに基づいて画像処理が行われて、出力画像データとして画像出力装置３００に出力される。また、画像処理装置１００によれば、以下に詳述するメモリチェック回路２によって、システムプログラムの起動処理において、システムメモリ４に対してメモリチェックが行われる。
【００４７】
図３は、メモリチェック回路２の構成を示すブロック図である。メモリチェック回路２は、制御用レジスタ部２１、メモリリード用ＤＭＡＣ（Direct Memory Access 
Controller）２２、メモリライト用ＤＭＡＣ２３、比較部２４、およびパターンデータ生成部２５を備える。
【００４８】
制御用レジスタ部２１は、プロセッサ１によって送られてきたメモリチェック設定データを記憶するレジスタを含む。また、制御用レジスタ部２１は、メモリチェックの結果を記憶し、プロセッサ１に伝える機能も有する。メモリチェック設定データは、システムメモリ４におけるメモリチェックにおける先頭アドレスを示す先頭アドレスデータ、およびメモリチェックを行う領域の記憶容量を示すサイズデータを含む。
【００４９】
メモリリード用ＤＭＡＣ２２は、システムメモリ４からのデータの読み出しを、プロセッサ１を介さずに行うＤＭＡＣである。メモリリード用ＤＭＡＣ２２によって読み出されたデータは、比較部２４へ送られる。メモリリード用ＤＭＡＣ２２によるデータの読み出しは、１または複数バースト単位で行われる。１バーストでは、たとえば、８バイトのデータの読み出しが行われる。したがって、たとえば８バーストでは、６４バイトのデータの読み出しが連続的に行われることになる。
【００５０】
メモリライト用ＤＭＡＣ２３は、後述するパターンデータ生成部２５から送られてきたパターンデータを、プロセッサ１を介さずに、システムメモリ４へ書き込むＤＭＡＣである。メモリライト用ＤＭＡＣ２３によるパターンデータの書き込みは、１あるいは複数バースト単位または１バイト単位で行われる。
【００５１】
１バイト単位でパターンデータを書き込む場合、メモリライト用ＤＭＡＣ２３は、書き込むべき１バイトのパターンデータを含む８バイト（１バースト分）のパターンデータをシステムメモリ４に送るとともに、当該１バイトのデータ以外の７バイトのパターンデータをマスクするデータマスク信号を送る。これによって、システムメモリ４に１バイトのパターンデータが書き込まれる。メモリライト用ＤＭＡＣ２３によるパターンデータの書き込みがバースト単位で行われるか１バイト単位で行われるかを示すデータは、メモリチェック設定データの１つとして、プロセッサ１から制御用レジスタ部２１に送られる。
【００５２】
本実施形態では、上記のように、メモリリード用ＤＭＡＣ２２とメモリライト用ＤＭＡＣ２３との２つのＤＭＡＣによって、データの読み出しとデータの書き込みとを行っている。これに対し、本発明の他の実施形態として、１つのＤＭＡＣによって、データの読み出しおよびデータの書き込みを行ってもよい。
【００５３】
パターンデータ生成部２５は、固定パターンデータ、擬似乱数パターンデータなどを生成し、メモリチェックに用いるパターンデータとして、メモリライト用ＤＭＡＣ２３および比較部２４へ送る。より詳細には、パターンデータ生成部２５は、パターンデータを生成してメモリライト用ＤＭＡＣ２３へ送った後、当該パターンデータと同一のパターンデータを再度生成して、比較部２４へ送る。
【００５４】
固定パターンデータは、メモリチェックが行われるときにおいて固定されているデータであり、メモリライト用ＤＭＡＣ２３へ送られた回数とは相関の無いデータである。固定パターンデータは、たとえば、１ビットごとに０の値と１の値とが繰り返されたデータであってもいいし、適当な整数を表したデータであってもいい。擬似乱数パターンデータは、メモリチェックが行われるときにおいて固定されていないデータであり、メモリライト用ＤＭＡＣ２３へ送るたびに値が変動する擬似的な乱数を表すデータである。パターンデータ生成部２５が生成するパターンデータとしては、固定パターンデータおよび擬似乱数パターンデータ以外にも、メモリライト用ＤＭＡＣ２３に送るたびに値が１ずつ増加する整数を表すインクリメントパターンデータなどであってもよい。
【００５５】
パターンデータ生成部２５は、擬似乱数パターンデータを生成する構成の場合、たとえば、２バイトの線形帰還シフトレジスタ（Linier Feedback Shift Register,ＬＦＳＲ）を並列的に４つ接続した回路と、８バイトの擬似乱数パターンデータを保持する取得レジスタとを含む。２バイトのＬＦＳＲは、各２バイトの、シードレジスタ、タップレジスタ、およびシフトレジスタからなる。シードレジスタおよびタップレジスタには所定の値が設定され、シフトレジスタは、シードレジスタおよびタップレジスタに設定された値に基づいて、１クロックごとに、２バイトの擬似乱数を表すデータを取得レジスタへ送る。
【００５６】
取得レジスタは、４つのＬＦＳＲから送られてきた各２バイトのデータを、８バイトの擬似乱数パターンデータとして保持し、当該擬似乱数パターンデータを、メモリライト用ＤＭＡＣ２３および比較部２４へ送る。メモリライト用ＤＭＡＣ２３は、１バースト単位でシステムメモリ４への書き込みを行う場合は、１クロックで、８バイトの擬似乱数パターンデータを書き込む。また、メモリライト用ＤＭＡＣ２３は、１バイト単位でシステムメモリ４への書き込みを行う場合は、データマスク信号によるマスク位置をずらすことによって、８クロックで、８バイトの擬似乱数パターンデータを書き込む。
【００５７】
上記のようにパターンデータ生成部２５がタップレジスタおよびシードレジスタを備える場合、タップレジスタおよびシードレジスタに設定される値は、メモリチェック設定データの１つとして、プロセッサ１から制御用レジスタ部２１に送られる。
【００５８】
パターンデータ生成部２５は、固定パターンデータを生成する構成の場合、たとえば、８バイトの固定パターンデータを保持する取得レジスタを含む。この場合、メモリチェック設定データの１つとして、８バイトのデータが、プロセッサ１から制御用レジスタ部２１に送られ、そして取得レジスタに送られる。取得レジスタは、当該８バイトのデータを固定パターンデータとして保持し、当該固定パターンデータを、メモリライト用ＤＭＡＣ２３および比較部２４へ送る。
【００５９】
なお、パターンデータ生成部２５は、固定パターンデータを生成するか擬似乱数パターンを生成するかを選択可能な構成であってもよい。そのように選択可能な構成の場合、固定パターンデータを生成するか擬似乱数パターンを生成するかを示すデータは、メモリチェック設定データの１つとして、プロセッサ１から制御用レジスタ部２１に送られる。
【００６０】
また、パターンデータ生成部２５は、メモリライト用ＤＭＡＣ２３および比較部２４へ送る固定パターンデータ、擬似乱数パターンデータなどを反転したデータである反転データを生成し、メモリチェックに用いるパターンデータとして、メモリライト用ＤＭＡＣ２３および比較部２４へ送る。たとえば、パターンデータ生成部２５は、反転データを生成するために、複数のＮＯＴ回路からなる信号反転回路を備えており、上記取得レジスタに保持される擬似乱数パターンデータなどを当該信号反転回路によって反転させ、パターンデータとしてメモリライト用ＤＭＡＣ２３および比較部２４へ送る。
【００６１】
比較部２４は、メモリリード用ＤＭＡＣ２２から送られてきたデータと、パターンデータ生成部２５から送られてきたパターンデータとの比較を、たとえば１バースト単位で行う。比較の結果、データが不一致であれば、比較部２４は、メモリリード用ＤＭＡＣ２２によって読み出されたメモリセルに故障があるとして、制御用レジスタ部２１へ、故障があったことを示すデータを送る。制御用レジスタ部２１は、メモリセルに故障があった場合、当該メモリセルのアドレスを、メモリチェックにおける先頭アドレス、および、故障が発見されるまでの比較部２４による比較回数に基づいて特定して、当該アドレスを記憶する。また、制御用レジスタ部２１は、当該メモリセルに本来書き込まれるべきであったデータ（０の値または１の値）を、故障したメモリセルのアドレスに基づいて確認して、当該データを記憶する。メモリセルに故障があったことを示すデータ、当該メモリセルのアドレス、当該メモリセルに本来書き込まれるべきであったデータは、制御用レジスタ部２１からプロセッサ１へ伝えられる。
【００６２】
プロセッサ１は、システムメモリ４のメモリセルに故障があったことを示すデータを受けると、たとえば、表示部８にシステムメモリ４のメモリセルが故障していることを表示させ、システムメモリ４の交換を促す。さらに、プロセッサ１は、故障したシステムメモリ４の検査のために、故障したメモリセルのアドレス、および当該メモリセルに本来書き込まれるべきであったデータを、表示部８に表示させてもよい。
【００６３】
なお、メモリチェック回路２によって発見できるシステムメモリ４のメモリセルの故障モードとしては、当該メモリセルに０の値および１の値の少なくとも一方が書き込めない故障モードだけではなく、たとえば、当該メモリセルのデータが他のメモリセルへの書き込みに付随して変化するような故障モードもある。
【００６４】
次に、画像処理装置１００によって実行されるメモリチェック方法について説明する。図４は、メモリチェック方法を表すフローチャートである。本実施形態に係るメモリチェック方法では、第０ステップＳ０において、画像処理装置１００の起動処理が開始される。次に、第１ステップＳ１において、メモリチェック回路２が、格納領域４１のメモリセルについてメモリチェックを行う。次に、第２ステップＳ２において、メモリチェック回路２がワーク領域４２のメモリセルについてメモリチェックを行うとともに、プロセッサ１が第２不揮発性メモリ６内のシステムプログラムデータの、格納領域４１への転送を開始する。最後に、第３ステップＳ３において、メモリチェック回路２がイメージ領域４３のメモリセルについてメモリチェックを行うとともに、プロセッサ１が、格納領域４１に転送、格納されたシステムプログラムデータに基づいて、システムプログラムの起動処理を行う。以下に、メモリチェック方法の各ステップについて詳細に説明する。
【００６５】
第０ステップＳ０では、まず、ユーザにより、または、画像処理装置１００以外の機器により、画像処理装置１００に電源が投入される。次に、プロセッサ１が、第１不揮発性メモリ５内の１次ダウンローダプログラムデータに従って、第２不揮発性メモリ６の初期化を行い、第２不揮発性メモリ６からキャッシュメモリ３へ、２次ダウンローダプログラムデータを転送する。
【００６６】
そして、プロセッサ１が、キャッシュメモリ３に転送、格納された２次ダウンローダプログラムデータに従って、システムメモリ４の設定（モードレジスタ設定、同期設定など）および初期化を行う。また、このとき、プロセッサ１は、キャッシュメモリ３に格納された２次ダウンローダプログラムデータに従って、メモリチェック回路２に、メモリチェック設定データを転送する。最後に、プロセッサ１は、格納領域４１のメモリチェックを、メモリチェック回路２に開始させる。
【００６７】
第１ステップＳ１では、メモリチェック回路２は、格納領域４１のメモリチェックを開始する。そして、格納領域４１のメモリチェックが完了すると、メモリチェック回路２は、格納領域４１のメモリチェックの完了を、プロセッサ１に伝える。
【００６８】
第２ステップＳ２の処理は、第１ステップＳ１のメモリチェックにおいて、格納領域４１のメモリセルすべてについて、故障が生じていないときに行われる。なお、本発明では、後述するように、格納領域４１のメモリセルに故障が生じていた場合であっても、第２ステップＳ２の処理を行ってもよい。第２ステップＳ２では、メモリチェック回路２は、ワーク領域４２のメモリチェックを開始する。これと並列して、プロセッサ１は、第２不揮発性メモリ６から格納領域４１へ、システムプログラムデータの転送を開始する。この転送の処理は、より具体的には、プロセッサ１が、第２不揮発性メモリ６内のシステムプログラムデータを読み出し、読み出したシステムプログラムデータを、格納領域４１へ書き込む処理である。
【００６９】
本実施形態では、上記のようにプロセッサ１が第２不揮発性メモリ６内のシステムプログラムデータを読み出しているときに、メモリチェック回路２が、メモリチェックのために、メモリライト用ＤＭＡＣ２３を介したワーク領域４２へのパターンデータの書き込み、または、メモリリード用ＤＭＡＣ２２を介したワーク領域４２からのデータの読み出しを行う。そして、プロセッサ１がシステムプログラムデータを格納領域４１に書き込む処理を行うときは、メモリチェック回路２によるパターンデータの書き込みまたはデータの読み出しは行われない。すなわち、本実施形態では、メモリチェック回路２によるメモリチェックに対して、プロセッサ１による格納領域４１へのシステムプログラムデータの書き込み処理が割り込むようになっている。このようにして、画像処理装置１００は、プロセッサ１によるシステムプログラムデータの転送と、メモリチェック回路２によるメモリチェックとを、並列に行う。
【００７０】
なお、本発明の他の実施形態としては、画像処理装置１００は、プロセッサ１とメモリチェック回路２とが、システムメモリ４へ、同時にアクセスできる構成であってもよい。そのような構成であれば、プロセッサ１によるシステムプログラムデータの書き込みと、メモリチェック回路２によるパターンデータの書き込みまたはデータの読み出しとを、並列に行うことができる。
【００７１】
本実施形態では、上記のようにプロセッサ１によるシステムメモリ４への書き込み処理がメモリチェック回路２によるメモリチェックよりも優先して行われるので、メモリチェック回路２によるメモリチェックよりも、プロセッサ１によるシステムプログラムデータの転送の方が早く完了する。これに対し、参考形態としては、プロセッサ１によるシステムメモリ４への書き込み処理よりも、メモリチェック回路２によるメモリチェックを優先させることで、プロセッサ１によるシステムプログラムデータの転送よりも、メモリチェック回路２によるメモリチェックの方が早く完了するように構成してもよい。また、本発明の他の実施形態としては、メモリチェック回路２によるメモリチェックと、プロセッサ１によるシステムプログラムデータの転送とが同時に完了するように構成してもよい。ただし、プロセッサ１によるシステムプログラムデータの転送は、遅くとも、第３ステップＳ３におけるイメージ領域４３のメモリチェックの完了前には、完了する。
【００７２】
ワーク領域４２のメモリチェックが完了すると、メモリチェック回路２は、ワーク領域４２のメモリチェックの完了を、プロセッサ１に伝える。
【００７３】
第３ステップＳ３の処理は、第２ステップＳ２のメモリチェックにおいて、ワーク領域４２のメモリセルすべてについて、故障が生じていないときに行われる。なお、本発明では、ワーク領域４２のメモリセルに故障が生じていた場合であっても、第３ステップＳ３の処理を行ってもよい。第３ステップＳ３では、メモリチェック回路２は、イメージ領域４３のメモリチェックを開始する。これと並列して、プロセッサ１は、システムプログラムの起動処理を開始し、さらに、アプリケーションプログラムの起動処理、ならびに、外部機器、インターフェイス部７、および表示部８の初期化を開始する。このようなプロセッサ１による各種処理は、第２ステップＳ２と同様に、メモリチェック回路２によるワーク領域４２のメモリチェックに対して、割り込みで行われる。
【００７４】
本実施形態では、プロセッサ１によるシステムメモリ４への書き込み処理がメモリチェック回路２によるメモリチェックよりも優先して行われるので、メモリチェック回路２によるメモリチェックよりも、プロセッサ１による上記各種処理の方が早く完了する。これに対し、本発明の他の実施形態としては、プロセッサ１によるシステムメモリ４への書き込み処理よりも、メモリチェック回路２によるメモリチェックを優先させることで、プロセッサ１による上記各種処理よりも、メモリチェック回路２によるメモリチェックの方が早く完了するように構成してもよい。また、メモリチェック回路２によるメモリチェックと、プロセッサ１による上記各種処理とが同時に完了するように構成してもよい。
【００７５】
イメージ領域４３のメモリチェックが完了すると、メモリチェック回路２は、イメージ領域４３のメモリチェックの完了を、プロセッサ１に伝える。プロセッサ１は、イメージ領域４３のメモリチェックの完了を受け、かつ、上記各種処理が完了していれば、表示部８に、画像処理装置１００が使用可能になったことを表示させる。
【００７６】
なお、本実施形態におけるメモリチェック方法では、第１ステップＳ１、第２ステップＳ２、および第３ステップＳ３において、メモリセルの故障があった場合、メモリチェック回路２は、メモリセルの故障があったことをプロセッサ１に伝える。メモリチェック回路２は、メモリセルの故障があったことをプロセッサ１に伝えた後、メモリセルに故障がなかった場合と同様に、その後のメモリチェックを続行してもよい。たとえば、第１ステップＳ１におけるメモリチェックで格納領域４１のメモリセルに故障があった場合に、メモリチェック回路２は、当該メモリセルのアドレス以降のアドレスのメモリセルについて、メモリチェックを続行し、システムメモリ４のすべてのメモリセルについてメモリチェックを行ってもよい。
【００７７】
次に、第１ステップＳ１におけるメモリチェックについて詳細に説明する。図５は、第１ステップＳ１におけるメモリチェック回路２による処理を表すフローチャートである。第１ステップＳ１の前の第０ステップＳ０において、制御用レジスタ部２１には、プロセッサ１からメモリチェック設定データが送られており、このメモリチェック設定データに基づいて、メモリチェック回路２によるメモリチェックが行われる。なお、制御用レジスタ部２１に送られるメモリチェック設定データは、第０ステップＳ０において一括で送られる必要は無く、たとえば、第１ステップＳ１において、必要に応じて適当な時期に、プロセッサ１から制御用レジスタ部２１に送られてもよい。
【００７８】
第１ステップＳ１におけるメモリチェックでは、プロセッサ１から制御用レジスタ部２１に、格納領域４１のメモリチェックを開始する命令が伝えられると、メモリチェック回路２によって、以下に説明するステップＡ０〜ステップＡ１５の処理が行われる。
【００７９】
ステップＡ０では、制御用レジスタ部２１が、パターンデータ生成部２５に、パターンデータ（固定パターンデータまたは擬似乱数パターンデータ）を生成して、生成したパターンデータをメモリライト用ＤＭＡＣ２３に送るように指示を出す。
【００８０】
ステップＡ１では、パターンデータ生成部２５が、パターンデータを生成して、生成したパターンデータをメモリライト用ＤＭＡＣ２３に送る。そして、メモリライト用ＤＭＡＣ２３が、格納領域４１の先頭から、１バイト単位または１あるいは複数バースト単位で、当該パターンデータを書き込む。
【００８１】
ステップＡ２では、制御用レジスタ部２１が、格納領域４１についての先頭アドレスデータおよびサイズデータ、ならびにメモリライト用ＤＭＡＣ２３による書き込み回数に基づいて、格納領域４１すべてにパターンデータが書き込まれたか否かを判断する。格納領域４１すべてにパターンデータが書き込まれていれば、メモリチェック回路２による処理はステップＡ３へ進み、格納領域４１すべてにパターンデータが書き込まれていなければ、メモリチェック回路２による処理はステップＡ１へ戻る。
【００８２】
ステップＡ３では、制御用レジスタ部２１が、メモリリード用ＤＭＡＣ２２に、格納領域４１のメモリセルのデータを１または複数バースト単位で読み出し、読み出したデータを比較部２４に送るように指示を出す。また、これと並列して、制御用レジスタ部２１は、パターンデータ生成部２５に、格納領域４１に書き込んだパターンデータと同一のパターンデータを生成し、生成したパターンデータを比較部２４に送るように指示を出す。
【００８３】
ステップＡ４では、メモリリード用ＤＭＡＣ２２が、格納領域４１の先頭から、データを１または複数バースト単位で読み出し、読み出したデータを比較部２４に送る。また、これと並列して、パターンデータ生成部２５が、格納領域４１に書き込んだパターンデータと同一のパターンデータを生成し、生成したパターンデータを比較部２４に送る。
【００８４】
ステップＡ５では、比較部２４が、メモリリード用ＤＭＡＣ２２から送られてきたデータと、パターンデータ生成部２５から送られてきたデータとを比較し、２つのデータが一致するか否かを判断する。データの比較は、たとえば、１バースト単位（８バイト単位）で行われる。データが一致した場合、メモリチェック回路２による処理はステップＡ６へ進み、データが一致しなかった場合、メモリチェック回路２による処理はステップＡ１４へ進む。
【００８５】
ステップＡ６では、制御用レジスタ部２１が、格納領域４１についてのサイズデータおよび比較部２４による比較回数に基づいて、格納領域４１すべてについて、ステップＡ５における比較部２４による比較が行われたか否かを判断する。格納領域４１すべてについて比較が行われていれば、メモリチェック回路２による処理はステップＡ７へ進み、格納領域４１すべてについて比較が行われていなければ、メモリチェック回路２による処理はステップＡ４へ戻る。
【００８６】
ステップＡ７では、制御用レジスタ部２１が、パターンデータ生成部２５に、ステップＡ８において格納領域４１に書き込んだパターンデータを反転した反転データを生成して、生成した反転データをメモリライト用ＤＭＡＣ２３に送るように指示を出す。また、これと並列して、制御用レジスタ部２１は、メモリリード用ＤＭＡＣ２２に、格納領域４１からのデータの読み出しを停止するように指示を出す。
【００８７】
本実施形態のように、メモリチェックにおいて、上記のような反転データを用いることで、メモリセルの故障をより確実に発見することができる。たとえば、１つのパターンデータを用いてメモリチェックを行うと、メモリセルに、０の値が書き込めることが確認できる。そして、当該パターンデータの反転データを用いてメモリチェックを行うと、当該メモリセルに１の値も書き込めることが確認できる。このように、反転データを用いてメモリチェックを行うことで、メモリセルに０の値と１の値との両方の値を正常に書き込めることを確認できる。
【００８８】
ステップＡ８では、パターンデータ生成部２５が、反転データを生成して、メモリライト用ＤＭＡＣ２３に送る。そして、メモリライト用ＤＭＡＣ２３が、格納領域４１の先頭から、１バイト単位または１あるいは複数バースト単位で、当該パターンデータを書き込む。
【００８９】
ステップＡ９では、制御用レジスタ部２１が、格納領域４１についての先頭アドレスデータおよびサイズデータ、ならびにメモリライト用ＤＭＡＣ２３による書き込み回数に基づいて、格納領域４１すべてに反転データが書き込まれたか否かを判断する。格納領域４１すべてに反転データが書き込まれていれば、メモリチェック回路２による処理はステップＡ１０へ進み、格納領域４１すべてに反転データが書き込まれていなければ、メモリチェック回路２による処理はステップＡ８へ戻る。
【００９０】
ステップＡ１０では、制御用レジスタ部２１が、メモリリード用ＤＭＡＣ２２に、格納領域４１のメモリセルのデータを１または複数バースト単位で読み出し、読み出したデータを比較部２４に送るように指示を出す。また、これと並列して、制御用レジスタ部２１は、パターンデータ生成部２５に、格納領域４１に書き込んだ反転データと同一の反転データを生成し、生成した反転データを比較部２４に送るように指示を出す。
【００９１】
ステップＡ１１では、メモリリード用ＤＭＡＣ２２が、格納領域４１の先頭から、データを１または複数バースト単位で読み出し、読み出したデータを比較部２４に送る。また、これと並列して、パターンデータ生成部２５が、格納領域４１に書き込んだ反転データと同一の反転データを生成し、生成した反転データを比較部２４に送る。
【００９２】
ステップＡ１２では、比較部２４が、メモリリード用ＤＭＡＣ２２から送られてきたデータと、パターンデータ生成部２５から送られてきたデータとを比較し、２つのデータが一致するか否かを判断する。データの比較は、たとえば、１バースト単位（８バイト単位）で行われる。データが一致した場合、メモリチェック回路２による処理はステップＡ１３へ進み、データが一致しなかった場合、メモリチェック回路２による処理はステップＡ１４へ進む。
【００９３】
ステップＡ１３では、制御用レジスタ部２１が、格納領域４１についてのサイズデータおよび比較部２４による比較回数に基づいて、格納領域４１すべてについて、ステップＡ１２における比較部２４による比較が行われたか否かを判断する。格納領域４１すべてについて比較が行われていれば、メモリチェック回路２による処理はステップＡ１５へ進み、格納領域４１すべてについて比較が行われていなければ、メモリチェック回路２による処理はステップＡ１１へ戻る。
【００９４】
ステップＡ１４の処理は、ステップＡ５またはステップＡ１２においてデータが一致しなかった場合に行われる処理であり、メモリセルに故障が発見された後の処理である。システムメモリ４へ書き込んだデータと、システムメモリ４から読み出したデータとが一致しないということは、システムメモリ４へ正常なデータが書き込めないということである。すなわち、システムメモリ４のメモリセルに故障が生じているということである。したがって、ステップＡ１４では、制御用レジスタ部２１は、故障しているメモリセルのアドレスを記憶するとともに、システムメモリ４のメモリセルに故障が生じていることをプロセッサ１に伝える。
【００９５】
本実施形態では、メモリチェック回路２は、プロセッサ１にメモリセルの故障を伝えた後、ステップＡ１〜ステップＡ１３の処理に準じた処理を行って、故障しているメモリセル以外の格納領域４１のメモリセルすべてについてメモリチェックを行い、他のメモリセルにも故障が生じていれば当該メモリセルのアドレスを制御用レジスタ部２１に記憶する。そして、メモリチェック回路２は、格納領域４１のすべてのメモリセルについてメモリチェックが完了すると、処理をステップＡ１５へ進める。
【００９６】
このように、本実施形態では、格納領域４１の一部のメモリセルが故障していても、ステップＡ１４において格納領域４１のすべてのメモリセルについてメモリチェックを行う。したがって、故障したシステムメモリ４についての情報をより多く取得でき、故障原因の特定が容易になる。なお、本発明の他の実施形態として、画像処理装置１００は、メモリチェック回路２がプロセッサ１にメモリセルの故障を伝えた後、メモリチェック回路２によるメモリチェックを停止して、ユーザの指示を待つように構成されていてもよい。
【００９７】
ステップＡ１５では、制御用レジスタ部２１が、格納領域４１のメモリチェックが完了したことを、プロセッサ１に伝える。これによって、上述したメモリチェック方法の第１ステップＳ１が終了する。なお、上述した第２ステップＳ２におけるワーク領域４２のメモリチェック、および第３ステップＳ３におけるイメージ領域４３のメモリチェックも、上記ステップＡ０〜ステップＡ１５の処理と同様に行われる。
【００９８】
このような本実施形態によれば、メモリチェック回路２がメモリリード用ＤＭＡＣ２２およびメモリライト用ＤＭＡＣ２３を介してシステムメモリ４のメモリチェックを行うので、システムメモリ４のすべてのメモリセルについてメモリチェックを行うときであっても、プロセッサ１に掛かる負荷を軽減することができる。また、本実施形態では、上述した第２ステップＳ２において、プロセッサ１とメモリチェック回路２とにより、システムプログラムの起動処理とシステムメモリ４のメモリチェックとを並列に行うことができる。したがって、システムメモリ４のメモリチェックに要する時間を有効に活用することができる。
【００９９】
また、本実施形態では、上述した第２ステップＳ２において、システムプログラムの起動処理以外の各種処理（アプリケーションプログラムの起動処理、ならびに、外部機器、インターフェイス部７、および表示部８の初期化）も、システムメモリ４のメモリチェックと並列に行うことができる。したがって、システムメモリ４のメモリチェックに要する時間をより有効に活用することができる。
【０１００】
上述した実施形態において、メモリライト用ＤＭＡＣ２３によるパターンデータの書き込みを１または複数バースト単位で行う場合、パターンデータを１バイト単位で書き込む場合と比較して、システムメモリ４のメモリチェックに要する時間を短縮することができる。これに対して、メモリライト用ＤＭＡＣ２３によるパターンデータの書き込みを１バイト単位で行う場合、データマスク信号を使用することになるので、システムメモリ４のメモリチェックだけでなく、データマスク信号に異常が生じているか否かのチェックも行うことができる。なお、システムメモリ４のメモリチェックに要する時間を短縮するために、メモリリード用ＤＭＡＣ２２によるデータの読み出しは、１または複数バースト単位で行うことが好ましい。
【０１０１】
また、上述した実施形態において、パターンデータとして擬似乱数パターンデータを用いる場合、システムメモリ４のメモリセルの故障モードが他のメモリセルへの書き込みに付随して変化するような故障モードであったとしても、メモリセルの故障をより容易に発見することができる。ただし、擬似乱数パターンデータを用いる場合は、故障しているメモリセルに本来書き込まれるべきであったデータは、擬似乱数パターンデータを再度生成して、確認しなければならない。これに対して、パターンデータとして固定パターンデータを用いる場合は、故障しているメモリセルに本来書き込まれるべきであったデータを、パターンデータを再度生成することなく確認することができる。
【０１０２】
上述した実施形態では、メモリチェック回路２は、本発明に係るメモリチェック方法を実行するための専用の電子回路である。本発明の他の実施形態としては、メモリチェック回路２の代わりとして、制御演算装置と半導体メモリとを設けることも可能である。すなわち、本発明の他の実施形態としては、本発明に係るメモリチェック方法を実行するためのプログラムデータを記憶する半導体メモリと、当該プログラムデータに従って、プロセッサ１によるシステムプログラムの起動処理に並行して、システムメモリ４のメモリチェックを行う制御演算装置とを備える画像処理装置であってもよい。このような構成であれば、半導体メモリに他のプログラムデータを記憶させることができるので、制御演算装置によって他のプログラムを起動することが可能になる。
【０１０３】
また、上述した実施形態では、メモリチェック回路２は１つのみ設けられるけれども、本発明の他の実施形態としては、メモリチェック回路２が複数設けられてもよい。メモリチェック回路２を複数備えていれば、システムメモリ４のメモリチェックを分散して行うことができる。たとえば、格納領域４１のメモリチェックにおいて、格納領域４１をさらに細分化して、細分化された領域について、複数のメモリチェック回路２がそれぞれメモリチェックを行うということができる。
【符号の説明】
【０１０４】
１  プロセッサ
２  メモリチェック回路
３  キャッシュメモリ
４  システムメモリ
５  第１不揮発性メモリ
６  第２不揮発性メモリ
２１  制御用レジスタ部
２２  メモリリード用ＤＭＡＣ
２３  メモリライト用ＤＭＡＣ
２４  比較部
２５  パターンデータ生成部
４１  格納領域
４２  ワーク領域
４３  イメージ領域
１００  画像処理装置
２００  画像入力装置
３００  画像出力装置
１０００  複合機
【図１】
0005530823.tif 000002
【図２】
0005530823.tif 000003
【図３】
0005530823.tif 000004
【図４】
0005530823.tif 000005
【図５】
0005530823.tif 000006