JP2012098962A - メモリチェック方法および画像処理装置 - Google Patents

メモリチェック方法および画像処理装置 Download PDF

Info

Publication number
JP2012098962A
JP2012098962A JP2010246880A JP2010246880A JP2012098962A JP 2012098962 A JP2012098962 A JP 2012098962A JP 2010246880 A JP2010246880 A JP 2010246880A JP 2010246880 A JP2010246880 A JP 2010246880A JP 2012098962 A JP2012098962 A JP 2012098962A
Authority
JP
Japan
Prior art keywords
memory
data
check
system program
program 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.)
Pending
Application number
JP2010246880A
Other languages
English (en)
Inventor
Toshimasa Matsuki
逸応 松木
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 JP2010246880A priority Critical patent/JP2012098962A/ja
Publication of JP2012098962A publication Critical patent/JP2012098962A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】システムプログラムの起動処理の完了までに掛かる時間を短縮し、画像処理装置を早く使用可能にすることができるメモリチェック方法および画像処理装置を提供する。
【解決手段】第1ステップS1として、メモリチェック回路により、ワーク領域についてメモリチェックを行うとともに、プロセッサにより、システムプログラムデータを第1バッファメモリに書き込む。第2ステップS2として、メモリチェック回路により、格納領域について、第1バッファメモリに書き込まれたシステムプログラムデータを用いてメモリチェックを行う。第3ステップS3として、メモリチェック回路により、イメージ領域についてメモリチェックを行うとともに、プロセッサにより、格納領域に書き込まれたシステムプログラムデータに基づいて、システムプログラムの起動処理を行う。
【選択図】図4

Description

本発明は、メモリチェック方法および画像処理装置に関する。
マルチファンクション複合機などに備えられ、画像データに種々の画像処理を行う画像処理装置は、プログラムデータに基づく処理やデータの転送を行うプロセッサと、該プロセッサによるデータの読み出しおよび書き込みが可能なシステムメモリ(メインメモリ、または主記憶装置とも呼ばれる)と、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性メモリとを備えている。
不揮発性メモリには、画像処理装置全体の動作を統括するシステムプログラムが、システムプログラムデータとして記憶されている。特許文献1に記載のように、不揮発性メモリに記憶されているシステムプログラムデータは、システムメモリに転送および格納される。その後、格納されたシステムプログラムデータに基づいてプロセッサが所定の処理を行うことで、システムプログラムが起動する。システムプログラムの起動処理が完了した時点で、画像処理装置は画像データに対して画像処理を行うことが可能になる。
システムメモリには、システムプログラムデータだけではなく、たとえば、アプリケーションプログラムデータや画像データなどの様々なデータが格納される。マルチファンクション複合機の場合であれば、システムメモリには、たとえば、画像入力装置から入力される入力画像データや、画像出力装置へ出力される出力画像データなどが格納される。このようなシステムメモリのいずれかのメモリセルに故障が生じると、システムプログラムデータなどのデータが正常に格納できなくなり、画像処理装置が正常に動作できなくなる。そのため、システムメモリの各メモリセルに故障が生じているか否かを確認し、実動作での問題発生を未然に防ぐことが求められる。
一般的に、システムメモリは、製造時や画像処理装置の出荷時に故障がなくても、環境などの外部要因によって故障することがある。したがって、画像処理装置が安定して動作するためには、画像処理装置を起動するたびにシステムメモリのメモリチェックをすることが必要である。ここで、システムメモリのメモリチェックは、一般的に、メモリチェック専用のチェック用データを生成し、該チェック用データをシステムメモリへ書き込み、書き込んだデータを読み出して、書き込んだデータと読み出したデータとを比較することで行われる。したがって、画像処理装置によって処理する画像の解像度が高くなり、これに比例して搭載するシステムメモリの記憶容量が大きくなってきている近年では、メモリチェックに要する時間が増大しているという問題がある。
特許文献2には、この問題を解決する装置として、DMA(Direct Memory Access)コントローラを介して、システムメモリのメモリチェックを行う装置が開示されている。
特開2007−293565号公報 特開2002−342174号公報
特許文献2に記載の装置によれば、DMAコントローラを介して、プロセッサを介さずにシステムメモリのメモリチェックを行うことができるので、メモリチェックが行われている間に、プロセッサによって各周辺機器の初期化処理を行うことができる。
しかしながら、特許文献2の段落[0052]に記載のように、特許文献2に記載の装置は、システムメモリのメモリチェックの終了後に、システムプログラムの起動処理を行っている。したがって、メモリチェックに要する時間が多くなると、システムプログラムの起動を開始するのが遅くなってしまい、システムプログラムの起動処理が完了して画像処理装置が使用可能となるまでに多くの時間を要してしまうという課題がある。
なお、特許文献1に記載の装置は、DMAコントローラを介してシステムプログラムデータの転送を行うとともに、DMAコントローラによる転送の開始後かつ完了前に、プロセッサによって該システムプログラムデータ自体の正当性をチェックしているけれども、システムメモリのメモリチェックを行っていないので、システムメモリが故障している場合、システムプログラムデータが正当であるというチェック結果は無意味なものとなってしまう。
本発明は、上記課題を解決するものであり、システムプログラムの起動処理の完了までに掛かる時間を短縮し、画像処理装置を早く使用可能にすることができるメモリチェック方法および画像処理装置を提供することを目的とする。
本発明は、プロセッサと、
格納領域、ワーク領域、およびイメージ領域からなるシステムメモリと、
システムプログラムデータを記憶する不揮発性メモリと、
バッファメモリと、
ダイレクトメモリアクセスコントローラを含むメモリチェック回路であって、該ダイレクトメモリアクセスコントローラを介して前記システムメモリのメモリセルにチェック用データを書き込み、その後、該ダイレクトメモリアクセスコントローラを介して、前記システムメモリの前記チェック用データが書き込まれたメモリセルからデータを読み出して、前記チェック用データと読み出したデータとを比較し、比較の結果、2つのデータが一致しなかったときに、前記メモリセルに故障があったとするメモリチェックを行う回路であるメモリチェック回路と、を備える画像処理装置の起動処理における前記システムメモリのメモリチェック方法であって、
前記メモリチェック回路が、前記ワーク領域のメモリセルについてメモリチェックを行うとともに、前記プロセッサが、前記不揮発性メモリからの前記システムプログラムデータの読み出し、および前記バッファメモリへの前記システムプログラムデータの書き込みを開始する第1ステップと、
前記第1ステップの開始後に開始される第2ステップであって、前記メモリチェック回路が、前記格納領域のメモリセルについて、前記バッファメモリに書き込まれたシステムプログラムデータをチェック用データとして用いてメモリチェックを行う第2ステップと、
前記第2ステップの開始後に開始される第3ステップであって、
前記メモリチェック回路が、前記イメージ領域のメモリセルについてメモリチェックを行うとともに、
前記プロセッサが、前記第2ステップのメモリチェックにおいて前記格納領域に書き込まれた前記システムプログラムデータに基づいて、前記画像処理装置の起動処理のうち、少なくともシステムプログラムの起動処理を行う第3ステップと、を含むことを特徴とするメモリチェック方法である。
また本発明は、前記第2ステップのメモリチェックでは、前記システムプログラムデータを反転したデータである反転システムプログラムデータをチェック用データとして用いてメモリチェックを行い、その後、前記システムプログラムデータをチェック用データとして用いてメモリチェックを行うことを特徴とする。
また本発明は、前記メモリチェック方法において、前記システムプログラムデータ全体のデータ量よりも前記バッファメモリの記憶容量が小さく構成され、
前記第1ステップのメモリチェックを中断して、前記第2ステップのメモリチェックを行い、前記第2ステップのメモリチェックの後、前記第1ステップのメモリチェックを、中断したところから再開することを特徴とする。
また本発明は、前記メモリチェック方法において、前記不揮発性メモリに記憶される前記システムプログラムデータが圧縮されているとともに、前記画像処理装置が第2バッファメモリを含み、
前記第1ステップでは、前記不揮発性メモリに記憶される圧縮されているシステムプログラムデータを読み出して前記第2バッファメモリに書き込んだ後、該第2バッファメモリに書き込まれた圧縮されているシステムプログラムデータを伸張して、前記バッファメモリに書き込むことを特徴とする。
また本発明は、前記メモリチェック方法において、前記システムプログラムデータ全体のデータ量よりも前記格納領域の記憶容量が大きく構成され、
前記第2ステップでは、前記格納領域における前記システムプログラムデータが書き込まれたメモリセル以外のメモリセルについて、擬似乱数チェック用データまたは固定チェック用データをチェック用データとして用いてメモリチェックを行うことを特徴とする。
また本発明は、プロセッサと、システムメモリと、不揮発性メモリと、バッファメモリと、メモリチェック回路と、を備える画像処理装置であって、
前記システムメモリは、格納領域、ワーク領域、およびイメージ領域からなり、
前記不揮発性メモリは、システムプログラムデータを記憶しており、
前記メモリチェック回路は、ダイレクトメモリアクセスコントローラを含み、該ダイレクトメモリアクセスコントローラを介して前記システムメモリのメモリセルにチェック用データを書き込み、その後、該ダイレクトメモリアクセスコントローラを介して、前記システムメモリの前記チェック用データが書き込まれたメモリセルからデータを読み出して、書き込んだデータと読み出したデータとを比較し、比較の結果、2つのデータが一致しなかったときに、前記メモリセルに故障があったとするメモリチェックを行う回路であり、
前記画像処理装置は、
前記メモリチェック回路によって、前記ワーク領域のメモリセルについてメモリチェックを行うとともに、前記プロセッサによって、前記不揮発性メモリからの前記システムプログラムデータの読み出し、および前記バッファメモリへの前記システムプログラムデータの書き込みを開始する第1の処理を行い、
前記第1の処理の開始の後に、前記メモリチェック回路によって、前記格納領域のメモリセルについて、前記バッファメモリに書き込まれたシステムプログラムデータをチェック用データとして用いてメモリチェックを行う第2の処理を開始し、
前記第2の処理の開始の後に、
前記メモリチェック回路によって、前記イメージ領域のメモリセルについてメモリチェックを行うとともに、
前記プロセッサによって、前記第2の処理のメモリチェックにおいて前記格納領域に書き込まれた前記システムプログラムデータに基づいて、前記画像処理装置の起動処理のうち、少なくともシステムプログラムの起動処理を行う第3の処理を開始するように構成されることを特徴とする画像処理装置である。
本発明によれば、第3ステップにおいて、プロセッサとメモリチェック回路とにより、システムプログラムの起動処理とシステムメモリのメモリチェックとを並列して行うことができる。これによって、システムプログラムの起動処理の完了までに掛かる時間を短縮することができる。また、メモリチェック回路は、ダイレクトメモリアクセスコントローラを介してシステムメモリのメモリチェックを行うので、システムメモリのすべてのメモリセルについてメモリチェックを行うときであっても、プロセッサに掛かる負荷を軽減することができる。
また本発明では、格納領域のメモリチェックのときに、システムプログラムデータをチェック用データとして用いているので、格納領域のチェックが完了することで、システムプログラムデータ全体が格納領域に格納されることになる。したがって、システムプログラムデータ以外のチェック用データを用いてメモリチェックを行った後に格納領域に該システムプログラムデータを格納する場合と比較して、システムプログラムの起動処理の完了までに掛かる時間を短縮することができる。本発明では、このようにして、画像処理装置を早く使用可能にすることができる。
また本発明によれば、格納領域に対して、まず、反転システムプログラムデータをチェック用データとして用いてメモリチェックを行い、その後、システムプログラムデータをチェック用データとして用いてメモリチェックを行う。したがって、格納領域のメモリセルの故障をより確実に発見することができる。
また本発明によれば、システムプログラムデータ全体のデータ量よりもバッファメモリの記憶容量が小さいので、システムプログラムデータをバッファメモリに書き込む処理が複数回生じることになる。そして、本発明では、第1ステップにおけるワーク領域のメモリチェックを中断して、第2ステップにおける格納領域のメモリチェックを行い、該格納領域のメモリチェックを進めた後、第1ステップにおけるワーク領域のメモリチェックを、中断したところから再開する。これによって、第1ステップにおけるワーク領域のメモリチェックと、システムプログラムデータをバッファメモリに書き込む複数回の処理とを、並列して行うことができ、ワーク領域のメモリチェックに掛かる時間を有効に活用することができる。その結果、第1ステップの処理と第2ステップの処理との2つの処理の完了までに掛かる時間を短縮することができる。
また本発明によれば、画像処理装置は、第2バッファメモリを備え、不揮発性メモリから該第2バッファメモリへ、圧縮されているシステムプログラムデータ(圧縮システムプログラムデータ)が転送される。そして、第2バッファメモリに書き込まれた圧縮システムプログラムデータが伸張されて非圧縮のシステムプログラムデータとなって、第2バッファメモリとは異なるバッファメモリに記憶され、該バッファメモリに書き込まれた非圧縮のシステムプログラムデータがチェック用データとして用いられて、格納領域のメモリチェックが行われる。したがって、本発明では、不揮発性メモリ内でシステムプログラムデータが圧縮されていても、システムプログラムデータを用いた格納領域のメモリチェックを行うことができる。よって、不揮発性メモリ内において、システムプログラムデータを圧縮し、データ量を小さくすることができる。
また本発明によれば、格納領域におけるシステムプログラムデータが書き込まれたメモリセル以外のメモリセル(余剰領域のメモリセル)について、メモリチェック回路によって、擬似乱数チェック用データまたは固定チェック用データを用いてメモリチェックを行う。したがって、システムプログラムデータのデータ量よりも格納領域の記憶容量が大きくても、格納領域すべてについてメモリチェックを行うことができる。
また本発明によれば、第3の処理において、プロセッサとメモリチェック回路とにより、システムプログラムの起動処理とシステムメモリのメモリチェックとを並列して行うことができる。これによって、システムプログラムの起動処理の完了までに掛かる時間を短縮することができる。また、メモリチェック回路は、ダイレクトメモリアクセスコントローラを介してシステムメモリのメモリチェックを行うので、システムメモリのすべてのメモリセルについてメモリチェックを行うときであっても、プロセッサに掛かる負荷を軽減することができる。
また本発明では、格納領域のメモリチェックのときに、システムプログラムデータをチェック用データとして用いているので、格納領域のチェックが完了することで、システムプログラムデータ全体が格納領域に格納されることになる。したがって、システムプログラムデータ以外のチェック用データを用いてメモリチェックを行った後に格納領域に該システムプログラムデータを格納する場合と比較して、システムプログラムの起動処理の完了までに掛かる時間を短縮することができる。このようにして、本発明に係る画像処理装置を早く使用可能にすることができる。
複合機1000の構成を示す模式図である。 システムメモリ4の各領域の概念図である。 メモリチェック回路2の構成を示すブロック図である。 メモリチェック方法を表すフローチャートである。 第1ステップS1におけるメモリチェック回路2による処理を表すフローチャートである。 第2ステップS2におけるメモリチェック回路2による処理を表すフローチャートである。 第2ステップS2におけるメモリチェック回路2による処理を表すフローチャートである。 複合機2000の構成を示す模式図である。 メモリチェック回路2の構成を示すブロック図である。 メモリチェック方法を表すフローチャートである。 処理に掛かる時間を短縮することができることを示す概念図である。
以下に、本発明の第1実施形態である画像処理装置100を備える複合機1000について説明する。図1は、複合機1000の構成を示す模式図である。複合機1000は、画像処理装置100と、画像入力装置200と、画像出力装置300とを備える。複合機1000は、コピアモード(複写モード)、プリンタモード、およびファクシミリモードという3種の印刷モードを有しており、各印刷モードにおいて、記録用紙などの記録媒体上にフルカラーまたはモノクロの画像を形成する。複合機1000の印刷モードは、パーソナルコンピュータ、携帯端末装置、情報記録媒体などからの命令、図示しない操作部からの操作入力などに従って設定される。
画像入力装置200は、たとえば、ライン状に配置されるCCD(Charge Coupled
Device)イメージセンサを備えるスキャナ部を有する画像読取装置である。スキャナ部は、CCDイメージセンサの配置方向(主走査方向)に垂直な方向(副走査方向)に移動することによって、原稿から反射光像を読み取る。反射光像は、赤色(R)成分、緑色(G)成分、および青色(B)成分に色分解され、各成分の反射率を示すアナログ信号として、スキャナ部に読み取られる。画像入力装置200は、画素ごとに読み取ったRGBの各アナログ信号を1つのデータとしてまとめることによって、アナログ信号の画像データを作成し、該アナログ信号の画像データを画像処理装置100に出力する。
画像処理装置100は、画像入力装置200から入力されたアナログ信号の画像データを、入力画像データとして記憶する。そして、画像処理装置100は、記憶した入力画像データに、さまざまな画像処理を行って出力画像データとして、画像出力装置300に出力する。画像処理装置100が入力画像データに行う画像処理としては、たとえば、画質調整処理、色補正処理、階調再現処理などの、画像データに対して補正を行う処理などが挙げられる。また、たとえば、拡大処理、縮小処理、2色化処理などの、ユーザの指示に基づいて画像データに修正を加える処理も挙げられる。画像処理装置100の具体的な構成については後述する。
画像出力装置300は、電子写真方式、インクジェット方式などの画像形成装置である。画像出力装置300は、画像処理装置100から入力された出力画像データに基づいて、記録媒体に画像を形成する。
図1に示すように、画像処理装置100は、プロセッサ1と、メモリチェック回路2と、キャッシュメモリ3と、システムメモリ4と、第1不揮発性メモリ5と、第2不揮発性メモリ6と、インターフェイス部7と、表示部8と、第1バッファメモリ9と、第2バッファメモリ10とを含む。
プロセッサ1は、プログラムデータに基づく演算処理、および異なる電子デバイス間でのデータの転送制御処理などを行う制御演算装置である。プロセッサ1としては、1つのCPU(Central Processing Unit)が用いられてもよく、複数のCPUが用いられてもよい。ただし、複数のCPUを用いる場合は、各CPUを同期させる必要が生じるので、CPUは1つであることが好ましい。
キャッシュメモリ3は、SRAM(Static Random Access Memory)などの半導体メモリである。キャッシュメモリ3は、プロセッサ1による直接的なデータの読み出しおよび書き込みが可能に接続される。
第1バッファメモリ9および第2バッファメモリ10は、SRAMなどの半導体メモリである。第1バッファメモリ9および第2バッファメモリ10は、プロセッサ1による直接的なデータの読み出しおよび書き込みが可能に接続されるとともに、図示しないデータバスおよびアドレスバスに接続される。本実施形態では、後述する圧縮システムプログラムデータ全体のデータ量と比較して第2バッファメモリ10の記憶容量は大きく、また、後述する非圧縮システムプログラムデータ全体のデータ量と比較して第1バッファメモリ9の記憶容量は大きいものとする。
第2不揮発性メモリ6は、たとえば、SDメモリカード、HDD(Hard Disk Drive)などの不揮発性のメモリである。第2不揮発性メモリ6には、システムプログラムデータ、2次ダウンローダプログラムデータ、およびアプリケーションプログラムデータが記憶されている。
システムプログラムデータは、画像処理装置100全体の動作を統括し、入力画像データに対して所定の画像処理を行うためのプログラムであるシステムプログラムを表したデータである。システムプログラムデータは所定の処理の実行手順を示すデータであり、該所定の処理に係る設定を示すデータはシステムプログラムデータに含まれない。
また、本発明では、システムプログラムデータ全体だけではなく、該システムプログラムデータの一部のデータもシステムプログラムデータと称する。そして、本実施形態において、システムプログラムデータは、第2不揮発性メモリ6内に圧縮されて記憶されているものとし、以下では、圧縮されているシステムプログラムデータを圧縮システムプログラムデータと称し、圧縮されていないシステムプログラムデータを非圧縮システムプログラムデータと称し、特に区別しないときは単にシステムプログラムデータと称する。
システムプログラムデータに基づいてプロセッサ1が所定の処理を開始することで、システムプログラムの起動処理が開始される。システムプログラムの起動処理は、該システムプログラムの起動処理の開始から画像処理装置100が画像処理を行うことが可能になるまでの期間において、システムプログラムデータに基づいて行われる処理である。
アプリケーションプログラムデータは、画像処理装置100に接続される外部機器を起動させたり、入力画像データに対してシステムプログラムに含まれていない処理を行ったりするためのプログラムであるアプリケーションプログラムを表したデータである。アプリケーションプログラムデータに基づいてプロセッサ1が所定の処理を開始することで、アプリケーションプログラムの起動処理が開始される。アプリケーションプログラムの起動処理は、該アプリケーションプログラムの起動処理の開始から該アプリケーションプログラムが利用可能になるまでの期間において、アプリケーションプログラムデータに基づいて行われる処理である。
2次ダウンローダプログラムデータは、画像処理装置100の起動処理において、第1バッファメモリ9へ、非圧縮システムプログラムデータを書き込むためのプログラムを表したデータである。ここで、画像処理装置100の起動処理とは、画像処理装置100に電源が投入されてから画像処理装置100が使用可能になるまでの期間において、画像処理装置100によって行われる処理であり、本実施形態では、上述したシステムプログラムの起動処理およびアプリケーションプログラムの起動処理、外部機器などの初期化、ならびに後述するメモリチェック回路2によるメモリチェックを含む。2次ダウンローダプログラムには、メモリチェックに係る設定データであるメモリチェック設定データも含まれる。メモリチェック設定データは、プロセッサ1によって、メモリチェック回路2へ送られる。
第1不揮発性メモリ5は、たとえば、フラッシュメモリ、NVRAM(Non Volatile Random Access Memory)などの不揮発性の半導体メモリであり、第2不揮発性メモリ6よりも記憶容量が小さい。第1不揮発性メモリ5は、プロセッサ1による直接的なデータの読み出しが可能に接続される。第1不揮発性メモリ5には、1次ダウンローダプログラムデータが記憶されている。1次ダウンローダプログラムデータは、画像処理装置100の起動処理において、第2不揮発性メモリ6からキャッシュメモリ3へ、2次ダウンローダプログラムデータを転送するためのプログラムを表したデータであり、2次ダウンローダプログラムよりもデータ量が小さい。
本実施形態では、上記のように、第1不揮発性メモリ5に1次ダウンローダプログラムデータが記憶され、第2不揮発性メモリ6に圧縮システムプログラムデータおよび2次ダウンローダプログラムデータが記憶されている。これに対し、本発明の他の実施形態として、第1不揮発性メモリ5の記憶容量を充分に大きくし、該第1不揮発性メモリ5に、1次ダウンローダプログラムデータの代わりに、2次ダウンローダプログラムデータを記憶させてもよい。
メモリチェック回路2は、図示しないデータバスおよびアドレスバスを介して、プロセッサ1およびシステムメモリ4に接続されるデジタル電子回路である。メモリチェック回路2は、システムプログラムの起動処理のときに、システムメモリ4に対してメモリチェックを行う。メモリチェック回路2によるメモリチェックでは、まず、システムメモリ4のメモリセルにチェック用データが書き込まれ、次に、システムメモリ4における該チェック用データが書き込まれたメモリセルからデータが読み出される。そして、書き込まれたデータと読み出されたデータとが比較され、比較の結果、2つのデータが一致しなかったときに、システムメモリ4の該メモリセルに故障があったと判断される。
システムメモリ4は、たとえば、DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)などの半導体メモリである。本発明において、システムメモリ4は、概念的に、格納領域41、ワーク領域42、およびイメージ領域43の、3つの領域に区分される。図2は、システムメモリ4の各領域の概念図である。各領域は、それぞれ、システムメモリ4の一部分であり、複数のメモリセルからなる。
格納領域41は、少なくとも、システムプログラムデータが記憶(格納)される領域である。システムメモリ4全体の記憶容量を2ギガバイトとするとき、格納領域41の記憶容量は、たとえば、128メガバイトである。なお、本実施形態では、格納領域41に格納されるシステムプログラムデータ全体のデータ量よりも該格納領域41の記憶容量が大きいものとする。
ワーク領域42は、格納領域41に記憶(格納)されたシステムプログラムデータに基づくシステムプログラムの起動処理に少なくとも必要な領域である。ワーク領域42には、たとえば、システムプログラムの起動に必要な設定データや、システムプログラムデータに基づく演算処理の結果が記憶される。また、ワーク領域42には、アプリケーションプログラムデータを記憶でき、該アプリケーションプログラムデータに基づいてアプリケーションプログラムが起動する。システムメモリ4全体の記憶容量を2ギガバイトとするとき、ワーク領域42の記憶容量は、たとえば、512メガバイトである。
イメージ領域43は、システムメモリ4のうち、格納領域41およびワーク領域42以外の領域である。イメージ領域43には、主に、入力画像データが記憶される。システムメモリ4全体の記憶容量を2ギガバイトとするとき、イメージ領域43の記憶容量は、たとえば、1.4ギガバイトである。
インターフェイス部7は、USB(Universal Serial Bus)接続、ETHERネット(登録商標)接続などのための接続部である。たとえば、画像処理装置100は、インターフェイス部7を介してSDメモリカードやUSBメモリなどを接続でき、これらに記憶されている画像データを入力画像データとして記憶することができる。表示部8は、たとえば、タッチパネルなどから構成される。表示部8には、画像処理装置100の操作用の画像、メモリチェック回路2によるメモリチェックの結果などが表示される。
このような画像処理装置100によれば、システムメモリ4に記憶された入力画像データに対して、システムプログラムデータに基づいて画像処理が行われて、出力画像データとして画像出力装置300に出力される。また、画像処理装置100によれば、以下に詳述するメモリチェック回路2によって、システムプログラムの起動処理において、システムメモリ4に対してメモリチェックが行われる。
図3は、メモリチェック回路2の構成を示すブロック図である。メモリチェック回路2は、制御用レジスタ部21、第1メモリリード用DMAC(Direct Memory Access Controller)22、第2メモリリード用DMAC26、メモリライト用DMAC23、チェック用データ生成部25、および比較部24を備える。
第1メモリリード用DMAC22は、システムメモリ4からのデータの読み出しを、プロセッサ1を介さずに行うDMACである。第1メモリリード用DMAC22によって読み出されたデータは、比較部24へ送られる。第1メモリリード用DMAC22によるデータの読み出しは、1または複数バースト単位で行われる。1バーストでは、たとえば、8バイトのデータの読み出しが行われる。したがって、たとえば8バーストでは、64バイトのデータの読み出しが連続的に行われることになる。
第2メモリリード用DMAC26は、第1バッファメモリ9からのデータの読み出しを、プロセッサ1を介さずに行うDMACである。第2メモリリード用DMAC26によって読み出されたデータは、メモリライト用DMAC23、チェック用データ生成部25、および比較部24へ送られる。第2メモリリード用DMAC26によるデータの読み出しは、1または複数バースト単位で行われる。
メモリライト用DMAC23は、送られてきたデータを、プロセッサ1を介さずに、システムメモリ4へ書き込むDMACである。メモリライト用DMAC23に送られてくるデータとしては、第2メモリリード用DMAC26によって読み出されるデータと、後述するチェック用データ生成部25によって生成されるチェック用データとがある。メモリライト用DMAC23によるチェック用データの書き込みは、1あるいは複数バースト単位または1バイト単位で行われる。
1バイト単位でチェック用データを書き込む場合、メモリライト用DMAC23は、書き込むべき1バイトのチェック用データを含む8バイト(1バースト分)のチェック用データをシステムメモリ4に送るとともに、該1バイトのチェック用データ以外の7バイトのチェック用データをマスクするデータマスク信号を送る。これによって、システムメモリ4に1バイトのチェック用データが書き込まれる。
本実施形態は、上記のように、第1メモリリード用DMAC22と第2メモリリード用DMAC26とメモリライト用DMAC23との3つのDMACによって、プロセッサ1を介さずにデータの読み出しおよびデータの書き込みを行っている。これに対し、本発明の他の実施形態として、1つのDMACによって、プロセッサ1を介さずにデータの読み出しおよびデータの書き込みを行ってもよい。
制御用レジスタ部21は、プロセッサ1によって送られてきたメモリチェック設定データを記憶するレジスタを含む。メモリチェック設定データは、システムメモリ4のメモリチェックにおける先頭アドレスを示す先頭アドレスデータ、およびメモリチェックを行う3つの領域の記憶容量を示すサイズデータを含む。また、メモリチェック設定データには、第1メモリリード用DMAC22および第2メモリリード用DMAC26によるデータの読み出し、およびメモリライト用DMAC23によるチェック用データの書き込みをバースト単位で行うか1バイト単位で行うかを示すデータも含まれる。
また、制御用レジスタ部21は、最後アドレスデータを記憶する機能も有する。最後アドレスデータとは、システムメモリ4および第1バッファメモリ9において、メモリライト用DMAC23を介したデータの書き込み、または、第1メモリリード用DMAC22もしくは第2メモリリード用DMAC26を介したデータの読み出しが、最後に行われたアドレスを示すデータである。さらに、制御用レジスタ部21は、メモリチェックの結果を記憶し、プロセッサ1に伝える機能も有する。
チェック用データ生成部25は、後述する固定チェック用データ、擬似乱数チェック用データなどを生成し、メモリチェックに用いるチェック用データとして、メモリライト用DMAC23および比較部24へ送る。より詳細には、チェック用データ生成部25は、チェック用データを生成してメモリライト用DMAC23へ送った後、該チェック用データと同一のチェック用データを再度生成して、比較部24へ送る。
また、チェック用データ生成部25は、第2メモリリード用DMAC26から送られてきたデータ、固定チェック用データ、および擬似乱数チェック用データなどを反転したデータである反転データを生成し、メモリチェックに用いるチェック用データとして、メモリライト用DMAC23および比較部24へ送る。たとえば、チェック用データ生成部25は、反転データを生成するために、複数のNOT回路からなる信号反転回路を備えており、擬似乱数チェック用データなどを該信号反転回路によって反転させ、チェック用データとしてメモリライト用DMAC23および比較部24へ送る。
固定チェック用データは、メモリチェックが行われるときにおいて固定されているデータであり、メモリライト用DMAC23へ送られた回数とは相関の無いデータである。固定チェック用データは、たとえば、1ビットごとに「0」の論理値と「1」の論理値とが繰り返されたデータであってもいいし、適当な整数を表したデータであってもいい。擬似乱数チェック用データは、メモリチェックが行われるときにおいて固定されていないデータであり、メモリライト用DMAC23へ送るたびに値が変動する擬似的な乱数を表すデータである。チェック用データ生成部25が生成するチェック用データとしては、固定チェック用データおよび擬似乱数チェック用データ以外にも、メモリライト用DMAC23に送るたびに値が1ずつ増加する整数を表すインクリメントチェック用データなどであってもよい。
チェック用データ生成部25は、擬似乱数チェック用データを生成する構成の場合、たとえば、2バイトの線形帰還シフトレジスタ(Linier Feedback Shift Register,LFSR)を並列的に4つ接続した回路と、8バイトの擬似乱数チェック用データを保持する取得レジスタとを含む。2バイトのLFSRは、各2バイトの、シードレジスタ、タップレジスタ、およびシフトレジスタからなる。シードレジスタおよびタップレジスタには所定の値が設定され、シフトレジスタは、シードレジスタおよびタップレジスタに設定された値に基づいて、1クロックごとに、2バイトの擬似乱数を表すデータを取得レジスタへ送る。
取得レジスタは、4つのLFSRから送られてきた各2バイトのデータを、8バイトの擬似乱数チェック用データとして保持し、該擬似乱数チェック用データを、メモリライト用DMAC23および比較部24へ送る。メモリライト用DMAC23は、1バースト単位でシステムメモリ4への書き込みを行う場合は、1クロックで、8バイトの擬似乱数チェック用データを書き込む。また、メモリライト用DMAC23は、1バイト単位でシステムメモリ4への書き込みを行う場合は、データマスク信号によるマスク位置をずらすことによって、8クロックで、8バイトの擬似乱数チェック用データを書き込む。
上記のようにチェック用データ生成部25がタップレジスタおよびシードレジスタを備える場合、タップレジスタおよびシードレジスタに設定される値は、メモリチェック設定データの1つとして、プロセッサ1から制御用レジスタ部21に送られる。
チェック用データ生成部25は、固定チェック用データを生成する構成の場合、たとえば、8バイトの固定チェック用データを保持する取得レジスタを含む。この場合、メモリチェック設定データの1つとして、8バイトのデータが、プロセッサ1から制御用レジスタ部21に送られ、そして取得レジスタに送られる。取得レジスタは、この8バイトのデータを固定チェック用データとして保持し、該固定チェック用データを、メモリライト用DMAC23および比較部24へ送る。
なお、チェック用データ生成部25は、固定チェック用データを生成するか擬似乱数チェック用データを生成するかを選択可能な構成であってもよい。そのように選択可能な構成の場合、固定チェック用データを生成するか擬似乱数チェック用データを生成するかを示すデータは、メモリチェック設定データの1つとして、プロセッサ1から制御用レジスタ部21に送られる。
比較部24は、第1メモリリード用DMAC22から送られてきたデータと、第2メモリリード用DMAC26から送られてきたデータとの比較を、たとえば1バースト単位で行う。また、比較部24は、第1メモリリード用DMAC22から送られてきたデータと、チェック用データ生成部25から送られてきたチェック用データとの比較も行う。
比較の結果、2つのデータが不一致であれば、比較部24は、第1メモリリード用DMAC22によって読み出されたシステムメモリ4のメモリセルに故障があるとして、故障があったことを示すデータを制御用レジスタ部21へ送る。制御用レジスタ部21は、メモリセルに故障があった場合、該メモリセルのアドレスを、先頭アドレスデータ、サイズデータ、および最後アドレスデータに基づいて特定して、特定したアドレスを記憶する。また、制御用レジスタ部21は、故障したメモリセルに本来書き込まれるべきであったデータ(「0」の論理値または「1」の論理値)を、故障したメモリセルのアドレスに基づいて生成して、該データを記憶する。メモリセルに故障があったことを示すデータ、該メモリセルのアドレス、該メモリセルに本来書き込まれるべきであったデータは、制御用レジスタ部21からプロセッサ1へ伝えられる。
プロセッサ1は、システムメモリ4のメモリセルに故障があったことを示すデータを受けると、たとえば、表示部8にシステムメモリ4のメモリセルが故障していることを表示させ、システムメモリ4の交換を促す。さらに、プロセッサ1は、故障したシステムメモリ4の検査のために、故障したメモリセルのアドレス、および該メモリセルに本来書き込まれるべきであったデータを、表示部8に表示させてもよい。
なお、メモリチェック回路2によって発見できるシステムメモリ4のメモリセルの故障モードとしては、該メモリセルに「0」の論理値および「1」の論理値の少なくとも一方が書き込めない故障モードだけではなく、たとえば、該メモリセルのデータが他のメモリセルへの書き込みに付随して変化するような故障モードもある。
次に、画像処理装置100によって実行されるメモリチェック方法について説明する。図4は、メモリチェック方法を表すフローチャートである。本実施形態に係るメモリチェック方法では、第0ステップS0において、画像処理装置100の起動処理が開始される。第0ステップS0の開始後、第1ステップS1では、メモリチェック回路2が、ワーク領域42のメモリセルについてメモリチェックを行うとともに、プロセッサ1が、第2不揮発性メモリ6からの圧縮システムプログラムデータの読み出し、および第1バッファメモリ9への非圧縮システムプログラムデータの書き込みを開始する。第1ステップS1の開始後、第2ステップS2では、メモリチェック回路2が、格納領域41のメモリセルについて、第1バッファメモリ9に書き込まれた非圧縮システムプログラムデータをチェック用データとして用いてメモリチェックを行う。第2ステップS2の開始後、第3ステップS3では、メモリチェック回路2が、イメージ領域43のメモリセルについてメモリチェックを行うとともに、プロセッサ1が、第2ステップS2のメモリチェックにおいて格納領域41に書き込まれたシステムプログラムデータに基づいて、システムプログラムの起動処理を行う。以下に、メモリチェック方法の各ステップについて詳細に説明する。
第0ステップS0では、まず、ユーザにより、または、画像処理装置100以外の機器により、画像処理装置100に電源が投入される。次に、プロセッサ1が、キャッシュメモリ3、第1バッファメモリ9、および第2バッファメモリ10を初期化した後、該第1不揮発性メモリ5内の1次ダウンローダプログラムデータに従って、第2不揮発性メモリ6からキャッシュメモリ3へ、2次ダウンローダプログラムデータを転送する。
そして、プロセッサ1は、キャッシュメモリ3に転送、格納された2次ダウンローダプログラムデータに従って、システムメモリ4の初期化および各種設定(モードレジスタ設定、同期設定など)を行う。また、このとき、プロセッサ1は、キャッシュメモリ3に格納された2次ダウンローダプログラムデータに従って、メモリチェック回路2を初期化し、該メモリチェック回路2に、メモリチェック設定データを転送する。最後に、プロセッサ1は、ワーク領域42のメモリチェックをメモリチェック回路2に開始させ、これによって第1ステップS1が開始する。
第1ステップS1では、メモリチェック回路2は、ワーク領域42のメモリチェックを開始する。これと並列して、プロセッサ1は、第2不揮発性メモリ6から圧縮システムプログラムデータを読み出し、該圧縮システムプログラムデータを第2バッファメモリ10に書き込む。そして、プロセッサ1は、第2バッファメモリ10に書き込まれた圧縮システムプログラムデータを伸張して非圧縮システムプログラムデータとし、該非圧縮システムプログラムデータを第1バッファメモリ9に書き込む。
本実施形態では、プロセッサ1が第2バッファメモリ10内の圧縮システムプログラムデータを伸張し、第1バッファメモリ9に非圧縮システムプログラムデータを書き込む間に、メモリチェック回路2が、メモリチェックのために、メモリライト用DMAC23を介したワーク領域42へのチェック用データの書き込み、または、第1メモリリード用DMAC22を介したワーク領域42からのデータの読み出しを行う。そして、プロセッサ1が第2不揮発性メモリ6から圧縮システムプログラムデータを読み出して第2バッファメモリ10に書き込むときには、メモリチェック回路2によるチェック用データの書き込みまたはデータの読み出しは行われない。すなわち、本実施形態では、メモリチェック回路2によるメモリチェックに対して、プロセッサ1による第2バッファメモリ10への圧縮システムプログラムデータの転送処理が割り込むようになっている。このようにして、画像処理装置100は、プロセッサ1による圧縮システムプログラムデータの読み出しおよび非圧縮システムプログラムデータの書き込みと、メモリチェック回路2によるメモリチェックとを、並列して行う。
なお、本発明の他の実施形態としては、画像処理装置100は、プロセッサ1が第2不揮発性メモリ6にアクセスするのと同時に、メモリチェック回路2がシステムメモリ4にアクセスできる構成であってもよい。そのような構成であれば、プロセッサ1による第2不揮発性メモリ6からの圧縮システムプログラムデータの読み出しと、メモリチェック回路2によるチェック用データの書き込みまたはデータの読み出しとを、同時に行うことができる。
圧縮システムプログラムデータの伸張処理について、本実施形態では、プロセッサ1が行っているけれども、本発明の他の実施形態としては、圧縮システムプログラムデータの伸張処理を行う伸張処理回路を設けてもよい。伸張処理回路は、伸張処理専用のデジタル電子回路であり、第1バッファメモリ9からの直接的なデータの読み出しが可能に接続されるとともに、第2バッファメモリ10への直接的なデータの書き込みが可能に接続される。このような伸張処理回路を設けることによって、プロセッサ1に掛かる負荷を軽減することができる。
メモリチェック回路2は、ワーク領域42のメモリチェックが完了すると、該メモリチェックの完了を、プロセッサ1に伝える。このとき、本実施形態では、プロセッサ1による第1バッファメモリ9への非圧縮システムプログラムデータの書き込み処理が既に完了していれば、第1ステップS1の処理が完了し、第1バッファメモリ9への非圧縮システムプログラムデータの書き込み処理が完了していなければ、その書き込み処理の完了によって第1ステップS1の処理が完了する。第1ステップS1の処理が完了すると、プロセッサ1は、格納領域41のメモリチェックをメモリチェック回路2に開始させ、これによって第2ステップS2が開始する。
第2ステップS2では、メモリチェック回路2が、格納領域41のメモリチェックを行う。格納領域41のメモリチェックは、システムプログラムデータをチェック用データとして用いて行われる。本実施形態では、メモリチェック回路2は、システムプログラムデータを反転したデータである反転システムプログラムデータをチェック用データとして用いて格納領域41のメモリチェックを行い、その後、システムプログラムデータをチェック用データとして用いて格納領域41のメモリチェックを行う。このようにシステムプログラムデータをチェック用データとして用いてメモリチェックを行うことにより、格納領域41にシステムプログラムデータ全体が書き込まれる(格納される)ことになる。
なお、本実施形態では、上述したように、システムプログラムデータ全体のデータ量よりも格納領域41の記憶容量が大きい。そして、本実施形態では、メモリチェック回路2は、格納領域41におけるシステムプログラムデータが書き込まれたメモリセル以外のメモリセルについて、擬似乱数チェック用データまたは固定チェック用データを用いてメモリチェックを行う。
格納領域41のメモリチェックが完了すると、メモリチェック回路2は、該メモリチェックの完了をプロセッサ1に伝え、これによって第2ステップS2が完了する。第2ステップS2の処理が完了すると、プロセッサ1は、イメージ領域43のメモリチェックをメモリチェック回路2に開始させ、これによって第3ステップS3が開始する。
第3ステップS3では、メモリチェック回路2は、イメージ領域43のメモリチェックを開始する。これと並列して、プロセッサ1は、システムプログラムの起動処理を開始し、さらに、アプリケーションプログラムの起動処理、ならびに、外部機器および表示部8などの初期化処理を開始する。システムプログラムの起動処理およびアプリケーションプログラムの起動処理は、ワーク領域42上で行われる。以下では、システムプログラムの起動処理、アプリケーションプログラムの起動処理、ならびに、外部機器および表示部8などの初期化処理を、各種処理と称する。
本実施形態では、プロセッサ1がシステムプログラムデータに基づいて演算処理を行ったり、アプリケーションプログラムデータに基づいて演算処理を行ったりする間に、メモリチェック回路2が、メモリチェックのために、メモリライト用DMAC23を介したイメージ領域43へのチェック用データの書き込み、または、第1メモリリード用DMAC22を介したイメージ領域43からのデータの読み出しを行う。そして、プロセッサ1がシステムメモリ4のワーク領域42にデータを書き込んだり読み出したりするときには、メモリチェック回路2によるチェック用データの書き込みまたはデータの読み出しは行われない。すなわち、本実施形態では、メモリチェック回路2によるメモリチェックに対して、プロセッサ1によるワーク領域42へのデータの書き込みまたはデータの読み出しが割り込むようになっている。このようにして、画像処理装置100は、プロセッサ1による各種処理と、メモリチェック回路2によるメモリチェックとを、並列して行う。
なお、本発明の他の実施形態としては、画像処理装置100は、プロセッサ1がワーク領域42にアクセスするのと同時に、メモリチェック回路2がイメージ領域43にアクセスできる構成であってもよい。そのような構成であれば、プロセッサ1による各種処理と、メモリチェック回路2によるチェック用データの書き込みまたはデータの読み出しとを、同時に行うことができる。
メモリチェック回路2は、イメージ領域43のメモリチェックが完了すると、該メモリチェックの完了を、プロセッサ1に伝える。このとき、プロセッサ1による各種処理が既に完了していれば、第3ステップS3の処理が完了し、プロセッサ1による各種処理が完了していなければ、その各種処理の完了によって第3ステップS3の処理が完了する。第3ステップS3の処理が完了すると、プロセッサ1は、表示部8に、画像処理装置100が使用可能になったことを表示させる。
なお、本実施形態におけるメモリチェック方法では、第1ステップS1、第2ステップS2、および第3ステップS3において、メモリセルに故障があった場合、メモリチェック回路2は、メモリセルに故障があったことをプロセッサ1に伝え、その後、メモリセルに故障が無かった場合と同様に、メモリチェックを続行する。たとえば、第1ステップS1におけるメモリチェックでワーク領域42のメモリセルに故障があった場合、メモリチェック回路2は、その故障したメモリセルのアドレス以降のアドレスのメモリセルについて、メモリチェックを続行し、ワーク領域42のすべてのメモリセルについてメモリチェックを行う。本発明の他の実施形態としては、画像処理装置100は、メモリチェック回路2がプロセッサ1にメモリセルの故障を伝えた後、メモリチェック回路2によるメモリチェックを停止して、ユーザの指示を待つように構成されていてもよい。
次に、第1ステップS1におけるメモリチェックについて詳細に説明する。図5は、第1ステップS1におけるメモリチェック回路2による処理を表すフローチャートである。第1ステップS1の前の第0ステップS0において、制御用レジスタ部21には、プロセッサ1からメモリチェック設定データが送られており、このメモリチェック設定データに基づいて、メモリチェック回路2によるメモリチェックが行われる。なお、制御用レジスタ部21に送られるメモリチェック設定データは、第0ステップS0において一括で送られる必要は無く、たとえば、第1ステップS1において、必要に応じて適当な時期に、プロセッサ1から制御用レジスタ部21に送られてもよい。
第1ステップS1におけるメモリチェックでは、プロセッサ1から制御用レジスタ部21に、ワーク領域42のメモリチェックを開始する命令が伝えられると、メモリチェック回路2によって、以下に説明するステップA0〜ステップA15の処理が行われる。
ステップA0では、制御用レジスタ部21が、チェック用データ生成部25に、チェック用データ(固定チェック用データまたは擬似乱数チェック用データ)を生成して、生成したチェック用データをメモリライト用DMAC23に送るように指示を出す。
ステップA1では、チェック用データ生成部25が、チェック用データを生成して、生成したチェック用データをメモリライト用DMAC23に送る。そして、メモリライト用DMAC23が、ワーク領域42の先頭から、1バイト単位または1あるいは複数バースト単位で、送られてきたチェック用データを書き込む。
ステップA2では、制御用レジスタ部21が、ワーク領域42についての先頭アドレスデータ、サイズデータ、および最後アドレスデータに基づいて、ワーク領域42すべてにチェック用データが書き込まれたか否かを判断する。ワーク領域42すべてにチェック用データが書き込まれていれば、メモリチェック回路2による処理はステップA3へ進み、ワーク領域42すべてにチェック用データが書き込まれていなければ、メモリチェック回路2による処理はステップA1へ戻る。
ステップA3では、制御用レジスタ部21が、第1メモリリード用DMAC22に、ワーク領域42のメモリセルのデータを1または複数バースト単位で読み出し、読み出したデータを比較部24に送るように指示を出す。また、これと並列して、制御用レジスタ部21は、チェック用データ生成部25に、ワーク領域42に書き込んだチェック用データと同一のチェック用データを生成し、生成したチェック用データを比較部24に送るように指示を出す。
ステップA4では、第1メモリリード用DMAC22が、ワーク領域42の先頭から、データを1または複数バースト単位で読み出し、読み出したデータを比較部24に送る。また、これと並列して、チェック用データ生成部25が、ワーク領域42に書き込んだチェック用データと同一のチェック用データを生成し、生成したチェック用データを比較部24に送る。
ステップA5では、比較部24が、第1メモリリード用DMAC22から送られてきたデータと、チェック用データ生成部25から送られてきたデータとを比較し、2つのデータが一致するか否かを判断する。データの比較は、たとえば、1バースト単位(8バイト単位)で行われる。データが一致した場合、メモリチェック回路2による処理はステップA6へ進み、データが一致しなかった場合、メモリチェック回路2による処理はステップA14へ進む。
ステップA6では、制御用レジスタ部21が、ワーク領域42についての先頭アドレスデータ、サイズデータ、および最後アドレスデータに基づいて、ワーク領域42すべてについて、ステップA5における比較部24による比較が行われたか否かを判断する。ワーク領域42すべてについて比較が行われていれば、メモリチェック回路2による処理はステップA7へ進み、ワーク領域42すべてについて比較が行われていなければ、メモリチェック回路2による処理はステップA4へ戻る。
ステップA7では、制御用レジスタ部21が、ステップA1においてワーク領域42に書き込んだチェック用データを消去するとともに、チェック用データ生成部25に、ステップA1においてワーク領域42に書き込んだチェック用データを反転した反転データを生成して、生成した反転データをメモリライト用DMAC23に送るように指示を出す。また、これと並列して、制御用レジスタ部21は、第1メモリリード用DMAC22に、ワーク領域42からのデータの読み出しを停止するように指示を出す。
本実施形態のように、メモリチェックにおいて、上記のような反転データを用いることで、メモリセルの故障をより確実に発見することができる。たとえば、1つのチェック用データを用いてメモリチェックを行うと、メモリセルに、「0」の論理値が書き込めることが確認できる。そして、このチェック用データの反転データを用いてメモリチェックを行うと、同じメモリセルに「1」の論理値も書き込めることが確認できる。このように、反転データを用いてメモリチェックを行うことで、メモリセルに「0」の論理値と「1」の論理値との両方の値を正常に書き込めることを確認できる。
ステップA8では、チェック用データ生成部25が、チェック用データとして反転データを生成して、メモリライト用DMAC23に送る。そして、メモリライト用DMAC23が、ワーク領域42の先頭から、1バイト単位または1あるいは複数バースト単位で、送られてきた反転データを書き込む。
ステップA9では、制御用レジスタ部21が、ワーク領域42についての先頭アドレスデータ、サイズデータ、および最後アドレスデータに基づいて、ワーク領域42すべてに反転データが書き込まれたか否かを判断する。ワーク領域42すべてに反転データが書き込まれていれば、メモリチェック回路2による処理はステップA10へ進み、ワーク領域42すべてに反転データが書き込まれていなければ、メモリチェック回路2による処理はステップA8へ戻る。
ステップA10では、制御用レジスタ部21が、第1メモリリード用DMAC22に、ワーク領域42のメモリセルのデータを1または複数バースト単位で読み出し、読み出したデータを比較部24に送るように指示を出す。また、これと並列して、制御用レジスタ部21は、チェック用データ生成部25に、ワーク領域42に書き込んだ反転データと同一の反転データを生成し、生成した反転データを比較部24に送るように指示を出す。
ステップA11では、第1メモリリード用DMAC22が、ワーク領域42の先頭から、データを1または複数バースト単位で読み出し、読み出したデータを比較部24に送る。また、これと並列して、チェック用データ生成部25が、ワーク領域42に書き込んだ反転データと同一の反転データを生成し、生成した反転データを比較部24に送る。
ステップA12では、比較部24が、第1メモリリード用DMAC22から送られてきたデータと、チェック用データ生成部25から送られてきたデータとを比較し、2つのデータが一致するか否かを判断する。データの比較は、たとえば、1バースト単位(8バイト単位)で行われる。データが一致した場合、メモリチェック回路2による処理はステップA13へ進み、データが一致しなかった場合、メモリチェック回路2による処理はステップA14へ進む。
ステップA13では、制御用レジスタ部21が、ワーク領域42についての先頭アドレスデータ、サイズデータ、および最後アドレスデータに基づいて、ワーク領域42すべてについて、ステップA12における比較部24による比較が行われたか否かを判断する。ワーク領域42すべてについて比較が行われていれば、メモリチェック回路2による処理はステップA15へ進み、ワーク領域42すべてについて比較が行われていなければ、メモリチェック回路2による処理はステップA11へ戻る。
ステップA14の処理は、ステップA5またはステップA12においてデータが一致しなかった場合に行われる処理であり、メモリセルに故障が発見された後の処理である。システムメモリ4へ書き込んだデータと、システムメモリ4から読み出したデータとが一致しないということは、システムメモリ4へ正常なデータが書き込めないということである。すなわち、システムメモリ4のメモリセルに故障が生じているということである。そのため、ステップA14では、制御用レジスタ部21は、故障しているメモリセルのアドレスを記憶するとともに、システムメモリ4のメモリセルに故障が生じていることをプロセッサ1に伝える。
本実施形態では、メモリチェック回路2は、プロセッサ1にメモリセルの故障を伝えた後、ステップA1〜ステップA13の処理に準じた処理を行って、故障しているメモリセル以外のワーク領域42のメモリセルすべてについてメモリチェックを行い、他のメモリセルにも故障が生じていればその故障したメモリセルのアドレスを制御用レジスタ部21に記憶する。そして、メモリチェック回路2は、ワーク領域42のすべてのメモリセルについてメモリチェックが完了すると、処理をステップA15へ進める。
このように、本実施形態では、ワーク領域42の一部のメモリセルが故障していても、ステップA14においてワーク領域42のすべてのメモリセルについてメモリチェックを行う。したがって、故障したシステムメモリ4についての情報をより多く取得でき、故障原因の特定が容易になる。
ステップA15では、制御用レジスタ部21が、ステップA8においてワーク領域42に書き込んだ反転データを消去するとともに、格納領域41のメモリチェックが完了したことを、プロセッサ1に伝える。これによって、上述したメモリチェック方法の第1ステップS1が終了する。なお、上述した第3ステップS3におけるイメージ領域43のメモリチェックも、上記ステップA0〜ステップA15の処理と同様に行われる。
次に、第2ステップS2におけるメモリチェックについて詳細に説明する。図6Aおよび図6Bは、第2ステップS2におけるメモリチェック回路2による処理を表すフローチャートである。
第2ステップS2におけるメモリチェックでは、プロセッサ1から制御用レジスタ部21に、格納領域41のメモリチェックを開始する命令が伝えられると、メモリチェック回路2によって、以下に説明するステップB0〜ステップB17の処理が行われる。
ステップB0では、制御用レジスタ部21が、第2メモリリード用DMAC26に、第1バッファメモリ9に記憶された非圧縮システムプログラムデータを1または複数バースト単位で読み出し、読み出したデータをチェック用データ生成部25に送るように指示を出す。また、制御用レジスタ部21は、チェック用データ生成部25に、送られてきた非圧縮システムプログラムデータを反転し、反転システムプログラムデータを生成して、生成した反転システムプログラムデータをメモリライト用DMAC23に送るように指示を出す。
ステップB1では、第2メモリリード用DMAC26が、第1バッファメモリ9に記憶された非圧縮システムプログラムデータを1または複数バースト単位で読み出し、該非圧縮システムプログラムデータをチェック用データ生成部25に送り、チェック用データ生成部25が、チェック用データとして、該非圧縮システムプログラムデータから反転システムプログラムデータを生成して、メモリライト用DMAC23に送る。そして、メモリライト用DMAC23が、格納領域41の先頭から、1バイト単位または1あるいは複数バースト単位で、送られてきた反転システムプログラムデータを書き込む。
ステップB2では、制御用レジスタ部21が、格納領域41に、反転システムプログラムデータ全体が書き込まれたか否かを判断する。ここで、反転システムプログラムデータ全体とは、非圧縮システムプログラムデータ全体を反転したデータを意味する。格納領域41に反転システムプログラムデータ全体が書き込まれていれば、メモリチェック回路2による処理はステップB3へ進み、格納領域41に反転システムプログラムデータ全体が書き込まれていなければ、メモリチェック回路2による処理はステップB1へ戻る。
ステップB3では、制御用レジスタ部21が、第1メモリリード用DMAC22に、格納領域41のメモリセルのデータを1または複数バースト単位で読み出し、読み出したデータを比較部24に送るように指示を出す。また、これと並列して、制御用レジスタ部21は、第2メモリリード用DMAC26に、第1バッファメモリ9に記憶された非圧縮システムプログラムデータを1または複数バースト単位で読み出し、読み出したデータをチェック用データ生成部25に送るように指示を出すとともに、チェック用データ生成部25に、送られてきた非圧縮システムプログラムデータから反転システムプログラムデータを生成して、生成した反転システムプログラムデータを比較部24に送るように指示を出す。
ステップB4では、第1メモリリード用DMAC22が、格納領域41の先頭から、データを1または複数バースト単位で読み出し、読み出したデータを比較部24に送る。また、これと並列して、第2メモリリード用DMAC26が、第1バッファメモリ9に記憶された非圧縮システムプログラムデータを1または複数バースト単位で読み出し、該非圧縮システムプログラムデータをチェック用データ生成部25に送り、チェック用データ生成部25が、チェック用データとして、該非圧縮システムプログラムデータから反転システムプログラムデータを生成して、比較部24に送る。
ステップB5では、比較部24が、第1メモリリード用DMAC22から送られてきたデータと、チェック用データ生成部25から送られてきたデータとを比較し、2つのデータが一致するか否かを判断する。データの比較は、たとえば、1バースト単位(8バイト単位)で行われる。データが一致した場合、メモリチェック回路2による処理はステップB6へ進み、データが一致しなかった場合、メモリチェック回路2による処理はステップB16へ進む。
ステップB6では、制御用レジスタ部21が、反転システムプログラムデータ全体について、ステップB5における比較部24による比較が行われたか否かを判断する。反転システムプログラムデータ全体について比較が行われていれば、メモリチェック回路2による処理はステップB7へ進み、反転システムプログラムデータ全体について比較が行われていなければ、メモリチェック回路2による処理はステップB4へ戻る。
ステップB7では、制御用レジスタ部21が、ステップB1において格納領域41に書き込んだ反転システムプログラムデータを消去する。また、制御用レジスタ部21は、第2メモリリード用DMAC26に、第1バッファメモリ9に記憶された非圧縮システムプログラムデータを1または複数バースト単位で読み出し、読み出したデータをメモリライト用DMAC23に送るように指示を出す。また、これと並列して、制御用レジスタ部21は、第1メモリリード用DMAC22に、格納領域41からのデータの読み出しを停止するように指示を出す。
ステップB8では、第2メモリリード用DMAC26が、第1バッファメモリ9に記憶された非圧縮システムプログラムデータを1または複数バースト単位で読み出し、該非圧縮システムプログラムデータをメモリライト用DMAC23に送る。そして、メモリライト用DMAC23が、格納領域41の先頭から、1バイト単位または1あるいは複数バースト単位で、送られてきた非圧縮システムプログラムデータを書き込む。
ステップB9では、制御用レジスタ部21が、格納領域41に、非圧縮システムプログラムデータ全体が書き込まれたか否かを判断する。格納領域41に非圧縮システムプログラムデータ全体が書き込まれていれば、メモリチェック回路2による処理はステップB10へ進み、格納領域41に非圧縮システムプログラムデータ全体が書き込まれていなければ、メモリチェック回路2による処理はステップB8へ戻る。
ステップB10では、制御用レジスタ部21が、第1メモリリード用DMAC22に、格納領域41のメモリセルのデータを1または複数バースト単位で読み出し、読み出したデータを比較部24に送るように指示を出す。また、これと並列して、制御用レジスタ部21は、第2メモリリード用DMAC26に、第1バッファメモリ9に記憶された非圧縮システムプログラムデータを1または複数バースト単位で読み出し、読み出したデータを比較部24に送るように指示を出す。
ステップB11では、第1メモリリード用DMAC22が、格納領域41の先頭から、データを1または複数バースト単位で読み出し、読み出したデータを比較部24に送る。また、これと並列して、第2メモリリード用DMAC26が、第1バッファメモリ9に記憶された非圧縮システムプログラムデータを1または複数バースト単位で読み出し、該非圧縮システムプログラムデータを比較部24に送る。
ステップB12では、比較部24が、第1メモリリード用DMAC22から送られてきたデータと、第2メモリリード用DMAC26から送られてきたデータとを比較し、2つのデータが一致するか否かを判断する。データの比較は、たとえば、1バースト単位(8バイト単位)で行われる。データが一致した場合、メモリチェック回路2による処理はステップB13へ進み、データが一致しなかった場合、メモリチェック回路2による処理はステップB16へ進む。
ステップB13では、制御用レジスタ部21が、非圧縮システムプログラムデータ全体について、ステップB12における比較部24による比較が行われたか否かを判断する。非圧縮システムプログラムデータ全体について比較が行われていれば、メモリチェック回路2による処理はステップB14へ進み、非圧縮システムプログラムデータ全体について比較が行われていなければ、メモリチェック回路2による処理はステップB11へ戻る。
ステップB14では、制御用レジスタ部21が、格納領域41についての先頭アドレスデータ、サイズデータ、および最後アドレスデータに基づいて、格納領域41内に、ステップB8において非圧縮システムプログラムデータが書き込まれていない領域(余剰領域)が存在するか否かを判断する。余剰領域が存在する場合、メモリチェック回路2による処理はステップB15へ進み、余剰領域が存在しない場合、メモリチェック回路2による処理はステップB17へ進む。
ステップB15では、余剰領域について、メモリチェック回路2によるメモリチェックが行われる。余剰領域についてのメモリチェックは、ステップA1〜ステップA13の処理に準じた処理であり、余剰領域に固定チェック用データまたは擬似乱数チェック用データを書き込み、その後、余剰領域からデータを読み出して、書き込んだデータと読み出したデータとを比較し、2つのデータが一致するか否かをチェックする処理、および、余剰領域に固定チェック用データまたは擬似乱数チェック用データを反転した反転データを書き込み、その後、余剰領域からデータを読み出して、書き込んだデータと読み出したデータとを比較し、2つのデータが一致するか否かをチェックする処理である。
ステップB15の処理において、2つのデータが一致しなかった場合、すなわち、余剰領域のメモリセルに故障があった場合、メモリチェック回路2による処理はステップB16へ進み、2つのデータが一致した場合、制御用レジスタ部21はステップB15において余剰領域に書き込んだデータを消去し、メモリチェック回路2による処理はステップB17へ進む。
ステップB16の処理は、ステップB5、ステップB12、またはステップB15においてデータが一致しなかった場合に行われる処理であり、メモリセルに故障が発見された後の処理である。ステップB16では、制御用レジスタ部21は、故障しているメモリセルのアドレスを記憶するとともに、システムメモリ4のメモリセルに故障が生じていることをプロセッサ1に伝える。
本実施形態では、メモリチェック回路2は、プロセッサ1にメモリセルの故障を伝えた後、ステップA1〜ステップA13の処理に準じた処理を行って、故障しているメモリセル以外の格納領域41のメモリセルすべてについてメモリチェックを行い、他のメモリセルにも故障が生じていればその故障したメモリセルのアドレスを制御用レジスタ部21に記憶する。そして、メモリチェック回路2は、格納領域41のすべてのメモリセルについてメモリチェックが完了すると、処理をステップB17へ進める。
ステップB17では、格納領域41のメモリチェックが完了したことを、プロセッサ1に伝える。これによって、上述したメモリチェック方法の第2ステップS2が終了する。
このような本実施形態によれば、格納領域41のメモリチェックのときに、システムプログラムデータをチェック用データとして用いているので、格納領域41のチェックが完了することで、システムプログラムデータ全体が格納領域41に格納されることになる。したがって、システムプログラムデータ以外のチェック用データを用いてメモリチェックを行った後に、格納領域41にシステムプログラムデータを格納する場合と比較して、システムプログラムの起動処理の完了までに掛かる時間を短縮することができる。これによって、画像処理装置100を早く使用可能にすることができる。
また本実施形態では、メモリチェック回路2が第1メモリリード用DMAC22、第2メモリリード用DMAC26、およびメモリライト用DMAC23を介してシステムメモリ4のメモリチェックを行うので、システムメモリ4のすべてのメモリセルについてメモリチェックを行うときであっても、プロセッサ1に掛かる負荷を軽減することができる。また本実施形態では、上述した第3ステップS3において、プロセッサ1とメモリチェック回路2とにより、システムプログラムの起動処理とシステムメモリ4のメモリチェックとを並列して行うことができる。これによって、システムプログラムの起動処理の完了までに掛かる時間を短縮することができる。
また本実施形態では、格納領域41に対して、まず、反転システムプログラムデータをチェック用データとして用いてメモリチェックを行い、その後、システムプログラムデータをチェック用データとして用いてメモリチェックを行っている。したがって、格納領域41のメモリセルの故障をより確実に発見することができる。
また本実施形態では、画像処理装置100は、圧縮システムプログラムデータを記憶するための第2バッファメモリ10を備え、該第2バッファメモリに記憶された圧縮システムプログラムデータが伸張されて非圧縮システムプログラムデータとなって、第1バッファメモリ9に記憶される。そして、第1バッファメモリ9に記憶される非圧縮システムプログラムデータがチェック用データとして用いられて、格納領域41のメモリチェックが行われる。したがって、本実施形態では、第2不揮発性メモリ6内でシステムプログラムデータが圧縮されていても、システムプログラムデータを用いた格納領域41のメモリチェックを行うことができる。よって、第2不揮発性メモリ6内において、システムプログラムデータを圧縮し、データ量を小さくすることができる。
また本実施形態では、格納領域41におけるシステムプログラムデータが書き込まれたメモリセル以外のメモリセル(余剰領域のメモリセル)について、メモリチェック回路2によって、擬似乱数チェック用データまたは固定チェック用データを用いてメモリチェックを行っている。したがって、システムプログラムデータのデータ量よりも格納領域41の記憶容量が大きくても、格納領域41すべてについてメモリチェックを行うことができる。
また、本実施形態では、上述した第3ステップS3において、システムプログラムの起動処理以外の各種処理(アプリケーションプログラムの起動処理、ならびに、外部機器および表示部8などの初期化処理)も、システムメモリ4のメモリチェックと並列して行うことができる。したがって、画像処理装置100をより早く使用可能にすることができる。
本実施形態において、メモリライト用DMAC23によるデータの書き込みを1または複数バースト単位で行う場合、データを1バイト単位で書き込む場合と比較して、システムメモリ4のメモリチェックに要する時間を短縮することができる。これに対して、メモリライト用DMAC23によるデータの書き込みを1バイト単位で行う場合、データマスク信号を使用することになるので、システムメモリ4のメモリチェックだけでなく、データマスク信号に異常が生じているか否かのチェックも行うことができる。なお、システムメモリ4のメモリチェックに要する時間を短縮するために、第1メモリリード用DMAC22および第2メモリリード用DMAC26によるデータの読み出しは、1または複数バースト単位で行うことが好ましい。
また、本実施形態において、ワーク領域42およびイメージ領域43に対するチェック用データとして擬似乱数チェック用データを用いる場合、システムメモリ4のメモリセルの故障モードが他のメモリセルへの書き込みに付随して変化するような故障モードであったとしても、メモリセルの故障をより容易に発見することができる。ただし、擬似乱数チェック用データを用いる場合は、故障しているメモリセルに本来書き込まれるべきであったデータは、擬似乱数チェック用データを再度生成して、確認しなければならない。これに対して、チェック用データとして固定チェック用データを用いる場合は、故障しているメモリセルに本来書き込まれるべきであったデータを、チェック用データを再度生成することなく確認することができる。
次に、本発明の第2実施形態である画像処理装置400を備える複合機2000について説明する。複合機2000について、複合機1000と共通する構成には、同一の参照符号を付して説明を省略する。
図7は、複合機2000の構成を示す模式図である。複合機2000は、画像処理装置400と、画像入力装置200と、画像出力装置300とを備える。画像処理装置400は、プロセッサ1と、メモリチェック回路2と、キャッシュメモリ3と、システムメモリ4と、第1不揮発性メモリ5と、第2不揮発性メモリ6と、インターフェイス部7と、表示部8と、第1バッファメモリ9とを含む。
本実施形態では、第2不揮発性メモリ6には、圧縮システムプログラムデータではなく、非圧縮システムプログラムデータが記憶されているものとする。また本実施形態では、非圧縮システムプログラムデータ全体のデータ量と比較して第1バッファメモリ9の記憶容量は小さいものとする。
図8は、メモリチェック回路2の構成を示すブロック図である。メモリチェック回路2は、制御用レジスタ部21、第1メモリリード用DMAC22、第2メモリリード用DMAC26、メモリライト用DMAC23、チェック用データ生成部25、および比較部24を備える。
本実施形態では、第2メモリリード用DMAC26は、第1バッファメモリ9から読み出したデータを、メモリライト用DMAC23および比較部24へ送り、チェック用データ生成部25には送らない。したがって、本実施形態では、チェック用データ生成部25が、第2メモリリード用DMAC26によって読み出したデータから反転データ(反転システムプログラムデータ)を生成することはない。
次に、画像処理装置400によって実行されるメモリチェック方法について説明する。図9は、メモリチェック方法を表すフローチャートである。本実施形態に係るメモリチェック方法では、第0ステップT0において、画像処理装置400の起動処理が開始される。第0ステップT0の開始後、第1ステップT1では、メモリチェック回路2が、ワーク領域42のメモリセルについてメモリチェックを行うとともに、プロセッサ1が、第2不揮発性メモリ6から第1バッファメモリ9への、非圧縮システムプログラムデータの転送を開始する。第1ステップT1の開始後、第2ステップT2では、メモリチェック回路2が、格納領域41のメモリセルについて、第1バッファメモリ9に書き込まれた非圧縮システムプログラムデータをチェック用データとして用いてメモリチェックを行う。第2ステップT2の開始後、第3ステップT3では、メモリチェック回路2が、イメージ領域43のメモリセルについてメモリチェックを行うとともに、プロセッサ1が、第2ステップT2のメモリチェックにおいて格納領域41に書き込まれたシステムプログラムデータに基づいて、システムプログラムの起動処理を行う。以下に、メモリチェック方法の各ステップについて詳細に説明する。
第0ステップT0では、まず、ユーザにより、または、画像処理装置400以外の機器により、画像処理装置400に電源が投入される。次に、プロセッサ1が、キャッシュメモリ3および第1バッファメモリ9を初期化した後、該第1不揮発性メモリ5内の1次ダウンローダプログラムデータに従って、第2不揮発性メモリ6からキャッシュメモリ3へ、2次ダウンローダプログラムデータを転送する。
そして、プロセッサ1は、キャッシュメモリ3に転送、格納された2次ダウンローダプログラムデータに従って、システムメモリ4の初期化および各種設定(モードレジスタ設定、同期設定など)を行う。また、このとき、プロセッサ1は、キャッシュメモリ3に格納された2次ダウンローダプログラムデータに従って、メモリチェック回路2を初期化し、該メモリチェック回路2に、メモリチェック設定データを転送する。最後に、プロセッサ1は、ワーク領域42のメモリチェックをメモリチェック回路2に開始させ、これによって第1ステップT1が開始する。
第1ステップT1では、メモリチェック回路2は、ワーク領域42のメモリチェックを開始する。これと並列して、プロセッサ1は、第2不揮発性メモリ6から第1バッファメモリ9へ、非圧縮システムプログラムデータを転送する。すなわち、プロセッサ1は、第2不揮発性メモリ6から非圧縮システムプログラムデータを読み出し、読み出した非圧縮システムプログラムデータを第1バッファメモリ9に書き込む。
本実施形態では、プロセッサ1が第1バッファメモリ9に非圧縮システムプログラムデータを書き込むときに、メモリチェック回路2が、メモリチェックのために、メモリライト用DMAC23を介したワーク領域42へのチェック用データの書き込み、または、第1メモリリード用DMAC22を介したワーク領域42からのデータの読み出しを行う。そして、プロセッサ1が第2不揮発性メモリ6から非圧縮システムプログラムデータを読み出しているときには、メモリチェック回路2によるチェック用データの書き込みまたはデータの読み出しは行われない。すなわち、本実施形態では、メモリチェック回路2によるメモリチェックに対して、プロセッサ1による第1バッファメモリ9への非圧縮システムプログラムデータの転送処理が割り込むようになっている。このようにして、画像処理装置400は、プロセッサ1による非圧縮システムプログラムデータの転送と、メモリチェック回路2によるメモリチェックとを、並列して行う。
また本実施形態では、非圧縮システムプログラムデータ全体のデータ量よりも第1バッファメモリ9の記憶容量が小さいので、第1バッファメモリ9には、非圧縮システムプログラムデータの一部しか書き込まれない。これによって、第2不揮発性メモリ6から第1バッファメモリ9への非圧縮システムプログラムデータの転送が、非圧縮システムプログラムデータの一部のみの転送となるので、この転送の処理の方が、ワーク領域42のメモリチェックの完了よりも早く完了する。
そして、本実施形態では、プロセッサ1は、非圧縮システムプログラムデータの一部の転送がワーク領域42のメモリチェックよりも早く完了すると、第1ステップT1におけるワーク領域42のメモリチェックを一時中断して、以下の第2ステップT2の処理を開始し、第2ステップT2の処理を進めた後、第1ステップT1におけるワーク領域42のメモリチェックを、中断したところから再開する。
第2ステップT2では、プロセッサ1からの指示により、メモリチェック回路2が、非圧縮システムプログラムデータをチェック用データとして用いて、格納領域41のメモリチェックを行う。より詳細には、メモリチェック回路2内の第2メモリリード用DMAC26が、第1バッファメモリ9に書き込まれた非圧縮システムプログラムデータを1または複数バースト単位で読み出して、メモリライト用DMAC23に送り、メモリライト用DMAC23が、送られてきたデータを、格納領域41の先頭から、1バイト単位または1あるいは複数バースト単位で書き込む。そして、第1メモリリード用DMAC22が、格納領域41の先頭から、1または複数バースト単位でデータを読み出して比較部24に送るとともに、第2メモリリード用DMAC26が、第1バッファメモリ9から非圧縮システムプログラムデータを、1または複数バースト単位で読み出して比較部24に送る。比較部24は、2つのデータが一致するか否かを判断し、一致した場合は、メモリセルに故障は生じていないとし、一致しなかった場合は、メモリセルに故障が生じているとする。
メモリチェック回路2の制御用レジスタ部21は、第1バッファメモリ9内の非圧縮システムプログラムデータをすべて用いて格納領域41のメモリチェックが行われたと判断すると、格納領域41のメモリチェックを一時中断して、中断したことをプロセッサ1に伝える。プロセッサ1は、第2ステップT2における格納領域41のメモリチェックが一時中断すると、第1ステップT1におけるワーク領域42のメモリチェックを続きから再開するとともに、転送されていない残りの非圧縮システムプログラムデータを、第2不揮発性メモリ6から第1バッファメモリ9へ転送する。そして、非圧縮システムプログラムデータの一部の転送が完了すると、プロセッサ1は、メモリチェック回路2に、第2ステップT2における格納領域41のメモリチェックを続きから再開させる。
このように本実施形態では、第1ステップT1の処理と第2ステップT2の処理とが交互に繰り返される。2つの処理が交互に繰り返されることで、格納領域41に非圧縮システムプログラムデータ全体が書き込まれることになる。格納領域41に非圧縮システムプログラムデータ全体が書き込まれた時点で、格納領域41に余剰領域がある場合は、第1ステップT1の処理の完了後に、ステップA1〜ステップA13の処理に準じた処理によって、余剰領域についてのメモリチェックが行われる。
格納領域41すべてのメモリチェックが完了すると、メモリチェック回路2は、該メモリチェックの完了をプロセッサ1に伝えるとともに、該メモリチェックにおいて余剰領域に書き込まれたデータを消去する。これによって第2ステップT2が完了する。第2ステップT2の処理が完了すると、プロセッサ1は、イメージ領域43のメモリチェックをメモリチェック回路2に開始させ、これによって第3ステップT3が開始する。
第3ステップT3では、メモリチェック回路2は、イメージ領域43のメモリチェックを開始する。これと並列して、プロセッサ1は、システムプログラムの起動処理を開始し、さらに、アプリケーションプログラムの起動処理、ならびに、外部機器および表示部8などの初期化処理を開始する。システムプログラムの起動処理およびアプリケーションプログラムの起動処理は、ワーク領域42を使用して行われる。
メモリチェック回路2は、イメージ領域43のメモリチェックが完了すると、該メモリチェックの完了を、プロセッサ1に伝える。このとき、プロセッサ1による各種処理が既に完了していれば、第3ステップT3の処理が完了し、プロセッサ1による各種処理が完了していなければ、その各種処理の完了によって第3ステップT3の処理が完了する。第3ステップT3の処理が完了すると、プロセッサ1は、表示部8に、画像処理装置400が使用可能になったことを表示させる。
なお、本実施形態におけるメモリチェック方法では、第1ステップT1、第2ステップT2、および第3ステップT3において、メモリセルに故障があった場合、メモリチェック回路2は、メモリセルに故障があったことをプロセッサ1に伝え、その後、メモリセルに故障が無かった場合と同様に、メモリチェックを続行する。
このような本実施形態では、上記のように、第1ステップT1の処理と第2ステップT2の処理とが交互に繰り返されるので、第1ステップT1の処理および第2ステップT2の処理の両方が完了するまでに掛かる時間を短縮することができる。これによって、システムプログラムの起動処理の完了までに掛かる時間を短縮することができる。
以下に、2つの処理の完了までに掛かる時間を短縮できることを説明する。図10は、処理に掛かる時間を短縮することができることを示す概念図である。図10(a)に示すように、本実施形態では、第1ステップT1における非圧縮システムプログラムデータの転送およびワーク領域42のメモリチェックの並列処理と、第2ステップT2における格納領域41のメモリチェックとが交互に繰り返される。これに対して、本発明の他の実施形態では、図10(b)に示すように、第1ステップT1におけるワーク領域42のメモリチェックの完了後に、第2ステップT2の処理が開始する。
したがって、図10(b)に示すように、他の実施形態では、2度目以降の非圧縮システムプログラムデータの転送処理とワーク領域42のメモリチェックとが並列して行われず、図10(a)に示すように、その転送処理に掛かる期間の分だけ、第2実施形態の方が早く処理が進むことになる。このように、本実施形態では、第1ステップT1の処理において、ワーク領域42のメモリチェックと、非圧縮システムプログラムデータを第1バッファメモリ9に転送する複数回の処理とを並列して行うことができ、ワーク領域42のメモリチェックに掛かる時間を有効に活用することができる。その結果、第1ステップT1の処理と第2ステップT2の処理との2つの処理の完了までに掛かる時間を短縮することができる。
なお、本実施形態では、第2不揮発性メモリ6には非圧縮システムプログラムデータが記憶されているものとしたけれども、圧縮システムプログラムデータが記憶されていても、上記のように、第1ステップT1の処理と第2ステップT2の処理とを交互に繰り返すことは可能である。たとえば、予め非圧縮システムプログラムデータを分割しておき、分割されたデータごとに圧縮データを生成し、第2不揮発性メモリ6に記憶しておけばよい。そして、第2ステップT2が一時中断して第1ステップT1の処理が再開されるたびに、第2不揮発性メモリ6内の圧縮データを伸張して、非圧縮システムプログラムデータの一部として、第1バッファメモリ9に書き込めばよい。
また本実施形態では、非圧縮システムプログラムデータを用いて格納領域41のメモリチェックを行っているけれども、反転システムプログラムデータを用いたメモリチェックを行っていない。第1実施形態の説明で述べたように、あるデータと、そのデータの反転データとを用いてメモリチェックを行うことで、より確実にメモリの故障を発見することができる。これに対して、本実施形態における格納領域41のメモリチェックでは、非圧縮システムプログラムデータのみを用いているので、格納領域41のメモリチェックが不充分となるおそれがある。
しかしながら、格納領域41は、システムプログラムデータを格納するための領域であり、画像処理装置400が起動している間は、記憶状態の変化がほとんど生じない領域である。そして、格納領域41に記憶されている非圧縮システムプログラムデータが正当なデータであることは、第2ステップT2におけるメモリチェックによって確かめられている。したがって、本実施形態では、画像処理装置400の起動には支障を来さない。そして、本実施形態では、反転システムプログラムデータをチェック用データとして用いたメモリチェックを省略することで、システムプログラムの起動処理の完了までに掛かる時間をより短縮することができる。
上述した第1および2実施形態では、メモリチェック回路2は、本発明に係るメモリチェック方法を実行するための専用の電子回路である。本発明の他の実施形態としては、メモリチェック回路2の代わりとして、制御演算装置と半導体メモリとを設けることも可能である。すなわち、本発明の他の実施形態としては、本発明に係るメモリチェック方法を実行するためのプログラムデータを記憶する半導体メモリと、該プログラムデータに従って、プロセッサ1によるシステムプログラムの起動処理と並行して、システムメモリ4のメモリチェックを行う制御演算装置とを備える画像処理装置であってもよい。このような構成であれば、半導体メモリに他のプログラムデータを記憶させることができるので、制御演算装置によって他のプログラムを起動することが可能になる。
また、上述した第1および2実施形態では、メモリチェック回路2は1つのみ設けられるけれども、本発明の他の実施形態としては、メモリチェック回路2が複数設けられてもよい。メモリチェック回路2を複数備えていれば、システムメモリ4のメモリチェックを分散して行うことができる。たとえば、イメージ領域43のメモリチェックにおいて、イメージ領域43をさらに細分化して、細分化された領域について、複数のメモリチェック回路2がそれぞれメモリチェックを行うということができる。
1 プロセッサ
2 メモリチェック回路
3 キャッシュメモリ
4 システムメモリ
5 第1不揮発性メモリ
6 第2不揮発性メモリ
9 第1バッファメモリ
10 第2バッファメモリ
21 制御用レジスタ部
22 第1メモリリード用DMAC
23 メモリライト用DMAC
24 比較部
25 チェック用データ生成部
26 第2メモリリード用DMAC
41 格納領域
42 ワーク領域
43 イメージ領域
100,400 画像処理装置
200 画像入力装置
300 画像出力装置
1000,2000 複合機

Claims (6)

  1. プロセッサと、
    格納領域、ワーク領域、およびイメージ領域からなるシステムメモリと、
    システムプログラムデータを記憶する不揮発性メモリと、
    バッファメモリと、
    ダイレクトメモリアクセスコントローラを含むメモリチェック回路であって、該ダイレクトメモリアクセスコントローラを介して前記システムメモリのメモリセルにチェック用データを書き込み、その後、該ダイレクトメモリアクセスコントローラを介して、前記システムメモリの前記チェック用データが書き込まれたメモリセルからデータを読み出して、前記チェック用データと読み出したデータとを比較し、比較の結果、2つのデータが一致しなかったときに、前記メモリセルに故障があったとするメモリチェックを行う回路であるメモリチェック回路と、を備える画像処理装置の起動処理における前記システムメモリのメモリチェック方法であって、
    前記メモリチェック回路が、前記ワーク領域のメモリセルについてメモリチェックを行うとともに、前記プロセッサが、前記不揮発性メモリからの前記システムプログラムデータの読み出し、および前記バッファメモリへの前記システムプログラムデータの書き込みを開始する第1ステップと、
    前記第1ステップの開始後に開始される第2ステップであって、前記メモリチェック回路が、前記格納領域のメモリセルについて、前記バッファメモリに書き込まれたシステムプログラムデータをチェック用データとして用いてメモリチェックを行う第2ステップと、
    前記第2ステップの開始後に開始される第3ステップであって、
    前記メモリチェック回路が、前記イメージ領域のメモリセルについてメモリチェックを行うとともに、
    前記プロセッサが、前記第2ステップのメモリチェックにおいて前記格納領域に書き込まれた前記システムプログラムデータに基づいて、前記画像処理装置の起動処理のうち、少なくともシステムプログラムの起動処理を行う第3ステップと、を含むことを特徴とするメモリチェック方法。
  2. 前記第2ステップのメモリチェックでは、前記システムプログラムデータを反転したデータである反転システムプログラムデータをチェック用データとして用いてメモリチェックを行い、その後、前記システムプログラムデータをチェック用データとして用いてメモリチェックを行うことを特徴とする請求項1に記載のメモリチェック方法。
  3. 前記システムプログラムデータ全体のデータ量よりも前記バッファメモリの記憶容量が小さく構成される請求項1または2に記載のメモリチェック方法であって、
    前記第1ステップのメモリチェックを中断して、前記第2ステップのメモリチェックを行い、前記第2ステップのメモリチェックの後、前記第1ステップのメモリチェックを、中断したところから再開することを特徴とするメモリチェック方法。
  4. 前記不揮発性メモリに記憶される前記システムプログラムデータが圧縮されているとともに、前記画像処理装置が第2バッファメモリを含む請求項1〜3のいずれか1つに記載のメモリチェック方法であって、
    前記第1ステップでは、前記不揮発性メモリに記憶される圧縮されているシステムプログラムデータを読み出して前記第2バッファメモリに書き込んだ後、該第2バッファメモリに書き込まれた圧縮されているシステムプログラムデータを伸張して、前記バッファメモリに書き込むことを特徴とするメモリチェック方法。
  5. 前記システムプログラムデータ全体のデータ量よりも前記格納領域の記憶容量が大きく構成される請求項1〜4のいずれか1つに記載のメモリチェック方法であって、
    前記第2ステップでは、前記格納領域における前記システムプログラムデータが書き込まれたメモリセル以外のメモリセルについて、擬似乱数チェック用データまたは固定チェック用データをチェック用データとして用いてメモリチェックを行うことを特徴とするメモリチェック方法。
  6. プロセッサと、システムメモリと、不揮発性メモリと、バッファメモリと、メモリチェック回路と、を備える画像処理装置であって、
    前記システムメモリは、格納領域、ワーク領域、およびイメージ領域からなり、
    前記不揮発性メモリは、システムプログラムデータを記憶しており、
    前記メモリチェック回路は、ダイレクトメモリアクセスコントローラを含み、該ダイレクトメモリアクセスコントローラを介して前記システムメモリのメモリセルにチェック用データを書き込み、その後、該ダイレクトメモリアクセスコントローラを介して、前記システムメモリの前記チェック用データが書き込まれたメモリセルからデータを読み出して、前記チェック用データと読み出したデータとを比較し、比較の結果、2つのデータが一致しなかったときに、前記メモリセルに故障があったとするメモリチェックを行う回路であり、
    前記画像処理装置は、
    前記メモリチェック回路によって、前記ワーク領域のメモリセルについてメモリチェックを行うとともに、前記プロセッサによって、前記不揮発性メモリからの前記システムプログラムデータの読み出し、および前記バッファメモリへの前記システムプログラムデータの書き込みを開始する第1の処理を行い、
    前記第1の処理の開始の後に、前記メモリチェック回路によって、前記格納領域のメモリセルについて、前記バッファメモリに書き込まれたシステムプログラムデータをチェック用データとして用いてメモリチェックを行う第2の処理を開始し、
    前記第2の処理の開始の後に、
    前記メモリチェック回路によって、前記イメージ領域のメモリセルについてメモリチェックを行うとともに、
    前記プロセッサによって、前記第2の処理のメモリチェックにおいて前記格納領域に書き込まれた前記システムプログラムデータに基づいて、前記画像処理装置の起動処理のうち、少なくともシステムプログラムの起動処理を行う第3の処理を開始するように構成されることを特徴とする画像処理装置。
JP2010246880A 2010-11-02 2010-11-02 メモリチェック方法および画像処理装置 Pending JP2012098962A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010246880A JP2012098962A (ja) 2010-11-02 2010-11-02 メモリチェック方法および画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010246880A JP2012098962A (ja) 2010-11-02 2010-11-02 メモリチェック方法および画像処理装置

Publications (1)

Publication Number Publication Date
JP2012098962A true JP2012098962A (ja) 2012-05-24

Family

ID=46390790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010246880A Pending JP2012098962A (ja) 2010-11-02 2010-11-02 メモリチェック方法および画像処理装置

Country Status (1)

Country Link
JP (1) JP2012098962A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012178087A (ja) * 2011-02-28 2012-09-13 Kyocera Document Solutions Inc 画像読取装置およびメモリーチェック方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012178087A (ja) * 2011-02-28 2012-09-13 Kyocera Document Solutions Inc 画像読取装置およびメモリーチェック方法

Similar Documents

Publication Publication Date Title
JP2004062913A (ja) Nandフラッシュメモリをシステム駆動用及びデータ貯蔵用として使用する装置
JP2008065434A (ja) プログラム起動制御装置
US20210011660A1 (en) Information processing apparatus and control method
JP2009009213A (ja) データ記憶装置、プログラムおよびデータ記憶方法
JP4640989B2 (ja) 画像処理装置及び画像処理制御方法
JP2005157528A (ja) メモリ装置
JP2016136292A (ja) 半導体デバイス、ログ取得方法及び電子機器
JP2007140920A (ja) 画像形成装置
JP5530823B2 (ja) メモリチェック方法および画像処理装置
JP2012098962A (ja) メモリチェック方法および画像処理装置
JPH1021106A (ja) 半導体集積回路
US11095778B2 (en) Storing and outputting log for failure analysis in image forming apparatus equipped with SATA system, control method therefor, and storage medium
JP2005182538A (ja) データ転送装置
JP2010068355A (ja) 電子機器及びその制御方法
JP4885798B2 (ja) 情報処理装置及び画像処理装置
JP6033183B2 (ja) 画像形成装置、及び画像形成装置の起動方法
JP2007164552A (ja) メモリ制御装置およびデータ転送方法
JP5470124B2 (ja) 電子機器及び電子機器用プログラム
JP2021177301A (ja) 電子機器および電子機器の制御方法
JP2005258967A (ja) データ処理装置
US10291817B2 (en) Monochrome image forming apparatus processing monochrome input data utilizing a color conversion process thereby reducing toner usage in an eco mode
US10705915B2 (en) Embedded system, photographing device and refresh method
US10853205B2 (en) Information processing apparatus, method of controlling the same and storage medium
US20200288031A1 (en) Information processing apparatus equipped with storage device, control method therefor, and storage medium
JP2006331221A (ja) データ転送装置及びデータ転送方法