(57)【要約】【課題】システム起動時に実際の動作に即したメモリチェックを行えるようにする。【解決手段】メモリチェック装置２は、システムメモリ２６と、メモリチェック回路２３とを備え、メモリチェック回路２３は、ＤＭＡコントローラを介してシステムメモリ２６のメモリセルにメモリチェック用データを書き込んだ後、ＤＭＡコントローラを介してシステムメモリ２６のメモリセルに書き込まれたメモリチェック用データを読み出して、書き込んだメモリチェック用データと読み出したメモリチェック用データとを比較し、データが一致するか否かを判定することでメモリチェックを行う。メモリチェック回路２３は、メモリチェックの前に、メモリチェック用データをシステムメモリ２６のメモリセルに書き込むライトアクセスとシステムメモリ２６のメモリセルからメモリチェック用データを読み出すリードアクセスとの全組み合わせを所定のアクセス間隔で発生させる。【選択図】図１
2013218620.tif 000002
【特許請求の範囲】
【請求項１】
システムメモリと、ダイレクトメモリアクセスコントローラを含むメモリチェック回路とを備え、該メモリチェック回路は、前記ダイレクトメモリアクセスコントローラを介して前記システムメモリのメモリセルにメモリチェック用データを書き込んだ後、前記ダイレクトメモリアクセスコントローラを介して前記システムメモリのメモリセルに書き込まれたメモリチェック用データを読み出して、前記書き込んだメモリチェック用データと前記読み出したメモリチェック用データとを比較し、データが一致するか否かを判定することでメモリチェックを行うメモリチェック装置であって、
前記メモリチェック回路は、前記メモリチェックの前に、前記メモリチェック用データを前記システムメモリのメモリセルに書き込むライトアクセスと、前記システムメモリのメモリセルから前記メモリチェック用データを読み出すリードアクセスとの全組み合わせを所定のアクセス間隔で発生させることを特徴とするメモリチェック装置。
【請求項２】
請求項１に記載のメモリチェック装置において、前記システムメモリが複数ランクで構成されている場合、前記メモリチェック回路は、前記メモリチェックの前に、同一ランクおよび異なるランクそれぞれに対して前記全組み合わせのアクセスを所定のアクセス間隔で発生させることを特徴とするメモリチェック装置。
【請求項３】
請求項１または２に記載のメモリチェック装置において、前記メモリチェック回路は、前記メモリチェックの前に、前記システムメモリのメモリセルに対してライトアクセス、ライトアクセス、リードアクセス、リードアクセス、ライトアクセスを順に実行し、前記全組み合わせのアクセスとして、ライトアクセスとライトアクセス、ライトアクセスとリードアクセス、リードアクセスとリードアクセス、リードアクセスとライトアクセスの組み合わせを発生させることを特徴とするメモリチェック装置。
【請求項４】
請求項１〜３のいずれか１項に記載のメモリチェック装置において、前記メモリチェック回路は、前記メモリチェックにより、前記書き込んだメモリチェック用データと前記読み出したメモリチェック用データとを比較し、データが一致しないと判定した場合、前記書き込んだメモリチェック用データと前記全組み合わせに含まれるリードアクセスで読み出したメモリチェック用データとを比較することを特徴とするメモリチェック装置。
【請求項５】
請求項１〜４のいずれか１項に記載のメモリチェック装置において、前記メモリチェック回路は、前記メモリチェックにより、前記書き込んだメモリチェック用データと前記読み出したメモリチェック用データとを比較し、データが一致しないと判定した場合、前記所定のアクセス間隔よりも長いアクセス間隔で前記メモリチェック用データを再度読み出し、前記書き込んだメモリチェック用データと前記再度読み出したメモリチェック用データとを比較することを特徴とするメモリチェック装置。
【請求項６】
請求項１〜５のいずれか１項に記載のメモリチェック装置において、システムプログラムを予め記憶した不揮発性メモリと、ＣＰＵとを備え、
前記システムメモリは、前記システムプログラムを格納するためのプログラムエリアと、前記システムプログラムを実行するためのワークエリアと、画像データを格納するためのイメージエリアとを有し、
前記メモリチェック回路は、前記プログラムエリアのメモリセルについて前記全組み合わせのアクセスを所定のアクセス間隔で発生させて第１のメモリチェックを行い、該第１のメモリチェックにて前記プログラムエリアのメモリセルが全て故障していなかった場合、前記ワークエリアのメモリセルについて前記全組み合わせのアクセスを所定のアクセス間隔で発生させて第２のメモリチェックを行い、
前記ＣＰＵは、前記第２のメモリチェックと並行して、前記不揮発性メモリに記憶されているシステムプログラムを前記プログラムエリアにダウンロードする処理を開始し、
前記メモリチェック回路は、前記第２のメモリチェックにて前記ワークエリアのメモリセルが全て故障していなかった場合、前記イメージエリアのメモリセルについて前記全組み合わせのアクセスを所定のアクセス間隔で発生させて第３のメモリチェックを行い、
前記ＣＰＵは、前記第３のメモリチェックと並行して、少なくとも前記プログラムエリアにダウンロードされたシステムプログラムの起動処理を行うことを特徴とするメモリチェック装置。
【請求項７】
請求項１〜６のいずれか１項に記載のメモリチェック装置を備え、該メモリチェック装置によるメモリチェックを起動時に実行することを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリチェック装置および画像形成装置に関し、より詳細には、システム起動時にシステムメモリのチェックを行うメモリチェック装置および該装置を備えた画像形成装置に関する。
【背景技術】
【０００２】
従来、画像形成装置として、コピー機能、プリント機能、スキャナ機能、ファクシミリ機能などの複数の機能を備えたデジタル複合機（ＭＦＰ）が知られているが、このようなデジタル複合機は、大きく分けて、画像データを入力するスキャナなどの画像入力部と、画像データに対して各種画像処理を施す画像処理部と、画像データを印刷出力する画像出力部とを備える。画像処理部は、ＤＤＲ−ＳＤＲＡＭ（Double-Data-Rate Synchronous Dynamic Random Access Memory）などで構成されるシステムメモリを備え、システムプログラムの格納や画像データの格納などに使用される。通常、システムプログラムは不揮発性メモリに格納されており、システム起動時に不揮発性メモリからシステムメモリへダウンロードされ、システムメモリ上で動作する。
【０００３】
また、画像入力部から入力された画像データや、画像出力部から出力される画像データについても、システムメモリへ格納される。この際、システムメモリが正常動作していなければ、システムプログラムや画像データの破壊が起こり、システム自体が正常動作しなくなるという問題が発生する。このため、システム起動時にシステムメモリが正常動作しているか否かを判定し、実動作での問題発生を未然に防ぐことが必要とされる。例えば、システムプログラムを格納する領域にメモリセルの不良があった場合、正常にプログラムを実行することができず、システムが不安定になるという問題がある。また、システムメモリに格納する画像データが圧縮符号化データである場合、この圧縮符号化データ自体が不正となってしまい、正常な画像データに伸張することができないという問題もある。
【０００４】
また、システムメモリについては、初期不良がなくても、環境等の外部要因により故障する可能性があり、システムの安定動作には、システム起動毎のメモリチェックは必要不可欠となっている。近年のデジタル複合機では、画質向上にともない、処理する画像自体の解像度も高くなってきており、搭載するシステムメモリの容量も増える傾向にある。システムメモリの容量が増えれば、メモリチェック時間も比例して長くなるが、システム起動時間には制約があるため、メモリチェックを効率的に行うことが求められている。
【０００５】
従来のメモリチェックは、メモリチェック専用のチェックデータを生成し、これをシステムメモリへ書き込み、書き込んだデータを読み出し、書き込んだデータと読み出したデータとを比較することで行われている。この場合、システムメモリへのアクセスは、連続するライトアクセス、リードアクセスとなる。また、例えば、特許文献１には、半導体メモリのテスト時に意図的にメモリセルプレート電圧を変化させ、通常時よりもメモリセルのキャパシタリークが発生しやすい状態を作りだすことによって、不良メモリセルを検出する技術が記載されている。また、特許文献２には、メモリデバイス内の欠陥メモリセルを検出するために、メモリセルに対してライト動作直後に同一メモリセルに対してダミーリード動作を続け、メモリセルの安定性に関して最悪の条件を与える技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３２３９４９号公報
【特許文献２】特開２００９−１７００８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、実際の動作では、システムメモリに対してリードアクセスまたはライトアクセスがランダムに発生するため、上述のメモリチェック方法は、実際の動作に即したテスト条件にはなっていない。つまり、特許文献１には、メモリセルのリークに起因する不安定さを回避するためにメモリセルプレート電圧を変化させてチェックを行うことが開示されているが、システム起動時にリードアクセスとライトアクセスがランダムに発生することを想定してメモリチェックは行われていない。
【０００８】
また、特許文献２には、特定のメモリセルに対してライト動作直後にダミーリード動作を続け、欠陥メモリセルを検出する技術が開示されているが、これも、特許文献１と同様に、メモリセルへのリードアクセスまたはライトアクセスがランダムに発生することを想定してメモリェックは行われていない。
【０００９】
本発明は、上述のような実情に鑑みてなされたもので、システム起動時に実際の動作に即したメモリチェックを行うことができるメモリチェック装置および該装置を備えた画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の第１の技術手段は、システムメモリと、ダイレクトメモリアクセスコントローラを含むメモリチェック回路とを備え、該メモリチェック回路は、前記ダイレクトメモリアクセスコントローラを介して前記システムメモリのメモリセルにメモリチェック用データを書き込んだ後、前記ダイレクトメモリアクセスコントローラを介して前記システムメモリのメモリセルに書き込まれたメモリチェック用データを読み出して、前記書き込んだメモリチェック用データと前記読み出したメモリチェック用データとを比較し、データが一致するか否かを判定することでメモリチェックを行うメモリチェック装置であって、前記メモリチェック回路は、前記メモリチェックの前に、前記メモリチェック用データを前記システムメモリのメモリセルに書き込むライトアクセスと、前記システムメモリのメモリセルから前記メモリチェック用データを読み出すリードアクセスとの全組み合わせを所定のアクセス間隔で発生させることを特徴としたものである。
【００１１】
第２の技術手段は、第１の技術手段において、前記システムメモリが複数ランクで構成されている場合、前記メモリチェック回路は、前記メモリチェックの前に、同一ランクおよび異なるランクそれぞれに対して前記全組み合わせのアクセスを所定のアクセス間隔で発生させることを特徴としたものである。
【００１２】
第３の技術手段は、第１または第２の技術手段において、前記メモリチェック回路は、前記メモリチェックの前に、前記システムメモリのメモリセルに対してライトアクセス、ライトアクセス、リードアクセス、リードアクセス、ライトアクセスを順に実行し、前記全組み合わせのアクセスとして、ライトアクセスとライトアクセス、ライトアクセスとリードアクセス、リードアクセスとリードアクセス、リードアクセスとライトアクセスの組み合わせを発生させることを特徴としたものである。
【００１３】
第４の技術手段は、第１〜第３のいずれか１の技術手段において、前記メモリチェック回路は、前記メモリチェックにより、前記書き込んだメモリチェック用データと前記読み出したメモリチェック用データとを比較し、データが一致しないと判定した場合、前記書き込んだメモリチェック用データと前記全組み合わせに含まれるリードアクセスで読み出したメモリチェック用データとを比較することを特徴としたものである。
【００１４】
第５の技術手段は、第１〜第４のいずれか１の技術手段において、前記メモリチェック回路は、前記メモリチェックにより、前記書き込んだメモリチェック用データと前記読み出したメモリチェック用データとを比較し、データが一致しないと判定した場合、前記所定のアクセス間隔よりも長いアクセス間隔で前記メモリチェック用データを再度読み出し、前記書き込んだメモリチェック用データと前記再度読み出したメモリチェック用データとを比較することを特徴としたものである。
【００１５】
第６の技術手段は、第１〜第５のいずれか１の技術手段において、システムプログラムを予め記憶した不揮発性メモリと、ＣＰＵとを備え、前記システムメモリは、前記システムプログラムを格納するためのプログラムエリアと、前記システムプログラムを実行するためのワークエリアと、画像データを格納するためのイメージエリアとを有し、前記メモリチェック回路は、前記プログラムエリアのメモリセルについて前記全組み合わせのアクセスを所定のアクセス間隔で発生させて第１のメモリチェックを行い、該第１のメモリチェックにて前記プログラムエリアのメモリセルが全て故障していなかった場合、前記ワークエリアのメモリセルについて前記全組み合わせのアクセスを所定のアクセス間隔で発生させて第２のメモリチェックを行い、前記ＣＰＵは、前記第２のメモリチェックと並行して、前記不揮発性メモリに記憶されているシステムプログラムを前記プログラムエリアにダウンロードする処理を開始し、前記メモリチェック回路は、前記第２のメモリチェックにて前記ワークエリアのメモリセルが全て故障していなかった場合、前記イメージエリアのメモリセルについて前記全組み合わせのアクセスを所定のアクセス間隔で発生させて第３のメモリチェックを行い、前記ＣＰＵは、前記第３のメモリチェックと並行して、少なくとも前記プログラムエリアにダウンロードされたシステムプログラムの起動処理を行うことを特徴としたものである。
【００１６】
第７の技術手段は、第１〜第６のいずれか１の技術手段におけるメモリチェック装置を備え、該メモリチェック装置によるメモリチェックを起動時に実行することを特徴とした画像形成装置である。
【発明の効果】
【００１７】
本発明によれば、システムメモリへのメモリチェック用データの生成、書き込み、読み出し、比較までＤＭＡ（ダイレクトメモリアクセス）にて行うことができ、さらに、ライトアクセスとリードアクセスの全組み合わせを所定のアクセス間隔で意図的に発生させてメモリチェックすることができるため、システム起動時に実際の動作に即したメモリチェックを行うことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態に係る画像形成装置の構成例を示すブロック図である。
【図２】システムメモリのメモリマップの一例を示す図である。
【図３】システムメモリに対するメモリチェック用データのライトアクセスとリードアクセスの全組み合わせの一例を示す図である。
【図４】本発明によるメモリチェック装置の動作例を説明するための図である。
【図５】本発明のメモリチェック装置が備えるメモリチェック回路の構成例を示すブロック図である。
【図６】本発明のメモリチェック装置によるメモリチェック方法の一例を説明するためのフロー図である。
【図７】本発明のメモリチェック装置によるメモリチェック方法の他の例を説明するためのフロー図である。
【発明を実施するための形態】
【００１９】
以下、添付図面を参照しながら、本発明のメモリチェック装置および該装置を備えた画像形成装置に係る好適な実施の形態について説明する。
【００２０】
図１は、本発明の一実施形態に係る画像形成装置の構成例を示すブロック図で、図中、１０は画像形成装置を示す。画像形成装置１０は、大きく分けて、画像入力部１、画像処理部２、および画像出力部３により構成されており、例えば、コピー機能、プリント機能、スキャナ機能、ファクシミリ機能などを備えたデジタル複合機（ＭＦＰ）として例示することができる。画像入力部１は、例えばＣＣＤ（Charge Coupled Device）を備えた原稿読取装置（スキャナ）であり、原稿を光学的に読み取って画像データを入力する。画像処理部２は、画像データに各種画像処理を施し、本発明のメモリチェック装置として機能する。画像出力部３は、例えば電子写真方式の印刷装置であり、画像データを印刷出力する。以下では、画像処理部２にメモリチェック装置（以下、メモリチェック装置２という）を適用した場合を例示して説明する。
【００２１】
図１において、メモリチェック装置２は、外部デバイス２１、ＣＰＵ２２、メモリチェック回路２３、ＳＲＡＭ（Static Random Access Memory）２４、不揮発性メモリ２５、およびシステムメモリ２６を備えて構成される。外部デバイス２１は、ＵＳＢ（Universal Serial Bus：登録商標）、イーサネット（ＥＴＨＥＲＮＥＴ：登録商標）などの画像形成装置１０に搭載される外部デバイスである。ＣＰＵ２２は、メモリチェック装置２の動作を制御し、制御レジスタの設定などを行う。メモリチェック回路２３は、ダイレクトメモリアクセスコントローラ（以下、ＤＭＡコントローラという）を備える。
【００２２】
メモリチェック回路２３は、ＤＭＡコントローラを介してシステムメモリ２６のメモリセルにメモリチェック用データを書き込んだ後、ＤＭＡコントローラを介してシステムメモリ２６のメモリセルに書き込まれたメモリチェック用データ（例えば、擬似乱数、固定値など）を読み出して、書き込んだメモリチェック用データと読み出したメモリチェック用データとを比較し、比較の結果、データが一致しなかったときに、システムメモリ２６のメモリセルが故障していると判定する。また、メモリチェック回路２３は、メモリチェック用データを内部で生成する処理、ＤＭＡコントローラを介してシステムメモリ２６のメモリセルにメモリチェック用データを書き込むライトアクセス処理、システムメモリ２６のメモリセルからメモリチェック用データを読み出すリードアクセス処理、さらには、書き込んだメモリチェック用データと読み出したメモリチェック用データとを比較する処理（コンペア処理）を行う。
【００２３】
不揮発性メモリ２５には、システムメモリ２６の初期化やメモリチェック等を行うためのメモリチェックプログラム（ブートプログラムまたはダウンローダプログラムともいう）と、画像形成装置１０の動作を制御するためのシステムプログラムとが予め記憶されており、システム起動時に、メモリチェックプログラムが不揮発性メモリ２５からバッファＲＡＭであるＳＲＡＭ２４にダウンロードされ、ＣＰＵ２２がこのメモリチェックプログラムをＳＲＡＭ２４上で実行することで、システムプログラムが不揮発性メモリ２５からシステムメモリ２６にダウンロードされる。
【００２４】
システムメモリ２６は、例えば、ＤＤＲ−ＳＤＲＡＭ（Double-Data-Rate Synchronous Dynamic Random Access Memory）などで構成され、図２に示すように、システムプログラムを格納するためのプログラムエリア２６ａと、システムプログラムを実行するためのワークエリア２６ｂと、画像データを格納するためのイメージエリア２６ｃとを有する。例えば、システムメモリ２６の記憶容量を２ＧＢとした場合、プログラムエリア２６ａに１２８ＭＢ、ワークエリア２６ｂに５１２ＭＢ，イメージエリア２６ｃに１.４ＧＢがそれぞれ割り当てられる。
【００２５】
本発明の主たる目的は、システム起動時に実際の動作に即したメモリチェックを行えるようにすることにある。このための構成として、メモリチェック回路２３は、メモリチェックの前に、メモリチェック用データをシステムメモリ２６のメモリセルに書き込むライトアクセスと、システムメモリ２６のメモリセルからメモリチェック用データを読み出すリードアクセスとの全組み合わせを所定のアクセス間隔で発生させる。
【００２６】
具体的には、メモリチェック回路２３は、後述の図３に示すように、メモリチェックの前に、システムメモリ２３に対してライトアクセス、ライトアクセス、リードアクセス、リードアクセス、ライトアクセスを順に実行し、メモリチェック用データのライトアクセスとリードアクセスの全組み合わせとして、ライトアクセスとライトアクセス、ライトアクセスとリードアクセス、リードアクセスとリードアクセス、リードアクセスとライトアクセスの４つの組み合わせを発生させる。なお、これら全組み合わせのアクセスは、システムメモリ２６の性能に応じた最短のアクセス間隔で発生させることが望ましい。なお、メモリアクセスの間隔は、メモリのタイミング規定によって決まる。すなわち、メモリアクセスを行う場合、メモリに対して複数のコマンドを連続して発行するが、コマンドからコマンドまでの最小間隔がメモリの仕様で規定されており、最小の間隔でアクセスすることで、アクセス間隔を最短にすることができる。そして、タイミング規定の最小値でアクセスすることにより、メモリアクセス効率を上げることができる。本発明では、最もアクセスが混み合ったケース（つまり、アクセス間隔が最短になるケース）でも正しくメモリアクセスを行えるか否かをチェックすることができる。
【００２７】
図３は、システムメモリ２６に対するメモリチェック用データのライトアクセスとリードアクセスの全組み合わせの一例を示す図である。図３（Ａ）は同一ランクの場合のライトアクセスとリードアクセスの組み合わせの一例を示し、図３（Ｂ）は異なるランクの場合のライトアクセスとリードアクセスの組み合わせの一例を示す。本例のシステムメモリ２６は、ＤＤＲ（ＤＤＲ１，ＤＤＲ２，ＤＤＲ３）−ＳＤＲＡＭによるＳＯ−ＤＩＭＭ（Small Outline Dual In line Memory Module）として構成され、メモリ構成として、複数ランクのＳＯ−ＤＩＭＭを適用した場合について説明する。
【００２８】
ここで、メモリコントローラがＤＩＭＭ上のＳＤＲＡＭとデータを入出力する単位（動作ブロックの単位）をランクと呼ぶ。シングルランクではメモリ上の全てのＳＤＲＡＭを使用して入出力が行われ、デュアルランクではメモリ上のＳＤＲＡＭが二つのブロックに分けられてそれぞれのブロックごとに入出力が行われる。デュアルランクのメモリを使用する場合はひとつのメモリスロットに電気的には２枚のメモリが刺さっている状態となる。ここで、システムメモリ２６が複数ランクで構成されている場合、最短となるアクセス間隔がランク間で異なる場合がある。このため、メモリチェック回路２３は、同一ランクおよび異なるランクそれぞれに対してメモリチェック用データのライトアクセスとリードアクセスの全組み合わせを発生させ、発生させた全組み合わせのアクセスについてメモリチェックを行う。
【００２９】
同一ランクの場合のライトアクセスとリードアクセスの組み合わせの例を図３（Ａ）に示す。メモリチェック回路２３は、システム起動時に、システムメモリ２６のメモリセルにメモリチェック用データを書き込むライトアクセス、また、システムメモリ２６のメモリセルからメモリチェック用データを読み出すリードアクセスを発生させる。本例の場合、これらのライトアクセスとリードアクセスを、ライトアクセスＷ１、ライトアクセスＷ２、リードアクセスＲ１，リードアクセスＲ２，ライトアクセスＷ３の順に発生させる。
【００３０】
これにより、（１）ライトアクセスＷ１とライトアクセスＷ２の組み合わせ、（２）ライトアクセスＷ２とリードアクセスＲ１の組み合わせ、（３）リードアクセスＲ１とリードアクセスＲ２の組み合わせ、（４）リードアクセスＲ２とライトアクセスＷ３の組み合わせ、を発生させることが可能となる。なお、各アクセスの間隔はこのランクで取り得る最短時間Ｔとされている。そして、メモリチェック回路２３は、これら全組み合わせのアクセスを発生させた後に、リードアクセスＲ３を発生させ、ライトアクセスＷ３で書き込んだデータと、リードアクセスＲ３で読み出したデータとを比較し、データが一致するか否かを判定する。データが一致すれば、システムメモリ２６のこのメモリセルは正常と判断され、データが不一致であれば、このメモリセルは不良と判断される。
【００３１】
ここで、リードアクセスＲ１で読み出したデータおよびリードアクセスＲ２で読み出したデータはそれぞれ一時的に記憶されている。メモリチェック回路２３は、ライトアクセスＷ３で書き込んだデータと、リードアクセスＲ３で読み出したデータとが一致しなかった場合、ライトアクセスＷ３で書き込んだデータと、リードアクセスＲ１で読み出したデータ，リードアクセスＲ２で読み出したデータとを比較するようにしてもよい。これにより、データの不一致が全組み合わせのアクセスのいずれの組み合わせで発生したか特定することができる。つまり、リードアクセスＲ１で読み出したデータが不一致であった場合、（２）のライトーリードの組み合わせに問題があると考えられる。また、リードアクセスＲ２で読み出したデータが不一致であった場合、（３）のリードーリードの組み合わせに問題があると考えられる。また、リードアクセスＲ１およびリードアクセスＲ２で読み出したデータが両方とも不一致であった場合、（２）のライトーリードの組み合わせ、または、（３）のリードーリードの組み合わせ、または、（２）および（３）の両方の組み合わせに問題があると考えられる。
【００３２】
また、メモリチェック回路２３は、ライトアクセスＷ３で書き込んだデータと、リードアクセスＲ３で読み出したデータとが一致しなかった場合、最短のアクセス間隔（最短時間Ｔ）よりも長いアクセス間隔でデータをシステムメモリ２６から再度読み出し、ライトアクセスＷ３で書き込んだデータと、システムメモリ２６から再度読み出したデータとを比較するようにしてもよい。そして、比較の結果、システムメモリ２６から再度読み出したデータがライトアクセスＷ３で書き込んだデータに一致した場合、ライト側は正常で、リード側に問題があると推定することができる。より具体的に説明すると、図３（Ａ）において、Ｒ１で不正なデータが読み出された場合、関連するアクセスはＷ１-Ｗ２-Ｒ１-Ｒ２であるため、「Ｗ１-Ｗ２でＷ１が不正」、または、「Ｗ２-Ｒ１でＲ１が不正」、または、「Ｒ１-Ｒ２でＲ１が不正」、という３つの可能性が考えられる。この際、最短ではないアクセスを行い正常なデータが読み出せた場合、「Ｗ１の書込み」は正常と判断できる。同様に、Ｒ２で不正なデータが読み出された場合、関連するアクセスはＷ１-Ｗ２-Ｒ１-Ｒ２-Ｗ３であるため、「Ｗ１-Ｗ２でＷ２が不正」、「Ｗ２-Ｒ１でＷ２が不正」、「Ｒ１-Ｒ２でＲ２が不正」、「Ｒ２-Ｗ３でＲ２が不正」、という４つの可能性が考えられる。この際、最短ではないアクセスを行い正常なデータが読み出せた場合、「Ｗ２の書込み」は正常と判断できる。最後に、Ｒ３で不正なデータが読み出された場合、関連するアクセスはＲ２-Ｗ３-Ｒ３であるため、「Ｒ２-Ｗ３でＷ３が不正」、「Ｗ３-Ｒ３でＷ３が不正」、「Ｗ３-Ｒ３でＲ３が不正」、という３つの可能性が考えられる。この際、最短ではないアクセスを行い正常なデータが読み出せた場合、「Ｗ３の書込み」は正常と判断できる。
【００３３】
上記において、一度メモリへライト（Write）したデータを再度読み出し、正しいデータが読み出せたということはメモリへは正しくデータが書き込まれていると考えられる。従って、ライトは正常で、最短間隔でのリードで不正なデータの読み出しが発生したと推定することができる。
【００３４】
また、異なるランク（ランクＡ，Ｂ）の場合のライトアクセスとリードアクセスの組み合わせの例を図３（Ｂ）に示す。メモリチェック回路２３は、システム起動時に、システムメモリ２６のメモリセルにメモリチェック用データを書き込むライトアクセス、また、システムメモリ２６のメモリセルからメモリチェック用データを読み出すリードアクセスを発生させる。本例の場合、これらのライトアクセスとリードアクセスを、ランクＡのライトアクセスＷ１′、ランクＢのライトアクセスＷ２′、ランクＡのリードアクセスＲ１′，ランクＢのリードアクセスＲ２′，ランクＡのライトアクセスＷ３′の順に発生させる。
【００３５】
これにより、（１１）ランクＡのライトアクセスＷ１′とランクＢのライトアクセスＷ２′の組み合わせ、（１２）ランクＢのライトアクセスＷ２′とランクＡのリードアクセスＲ１′の組み合わせ、（１３）ランクＡのリードアクセスＲ１′とランクＢのリードアクセスＲ２′の組み合わせ、（１４）ランクＢのリードアクセスＲ２′とランクＡのライトアクセスＷ３′の組み合わせ、を発生させることが可能となる。なお、各アクセスの間隔はランクＡ，Ｂで取り得る最短時間Ｔ′とされている。そして、メモリチェック回路２３は、これら全組み合わせのアクセスを発生させた後に、ランクＡのリードアクセスＲ３′を発生させ、ライトアクセスＷ３′で書き込んだデータと、リードアクセスＲ３′で読み出したデータとを比較し、データが一致するか否かを判定する。データが一致すれば、システムメモリ２６のこのメモリセル（ランクＡ）は正常と判断され、データが不一致であれば、このメモリセルは不良と判断される。
【００３６】
上記のメモリチェック回路２３は、システムメモリ２６へのメモリチェック用データの生成、書き込み、読み出し、比較まで行う専用のＤＭＡにて行うことができるため、ＣＰＵ２２はＤＭＡの設定、起動、終了、結果判定を行うだけでよく、ＣＰＵ２２の負荷を大幅に低減することができ、また、メモリチェック時間の短縮を可能とし、効率的にメモリチェックを行うことができる。また、メモリチェック回路２３により、ライトアクセスとリードアクセスの全組み合わせを所定のアクセス間隔で意図的に発生させてメモリチェックすることができるため、システム起動時に実際の動作に即したメモリチェックを行うことができる。
【００３７】
図４は、本発明によるメモリチェック装置２の動作例を説明するための図である。図４（Ａ）、（Ｂ）におけるＳ１〜Ｓ７はそれぞれ対応している。不揮発性メモリ２５には、前述したように、システムメモリ２６の初期化やメモリチェックなどを行うためのメモリチェックプログラムと、画像形成装置１０の動作を制御するためのシステムプログラムとが予め格納されている。システム起動時に、メモリチェックプログラムが不揮発性メモリ２５からＳＲＡＭ２４にダウンロードされ（Ｓ１）、ＣＰＵ２２は、ＳＲＡＭ２４上でメモリチェックプログラムを実行し、システムメモリ２６を初期化する（Ｓ２）。
【００３８】
次に、ＣＰＵ２２は、メモリチェック回路２３に対して、プログラムエリア２６ａのチェック設定を行い、メモリチェック回路２３内のＤＭＡコントローラを起動させる。メモリチェック回路２３は、プログラムエリア２６ａのメモリセルについて全組み合わせのアクセス、すなわち、前述の図３（Ａ）に例示したように、（１）ライトとライト、（２）ライトとリード、（３）リードとリード、（４）リードとライトの組み合わせを所定のアクセス間隔で発生させて第１のメモリチェックを実施し、プログラムエリア２６ａのメモリセルが全て故障していなかった場合、ＣＰＵ２２へ完了を通知する（Ｓ３）。
【００３９】
次に、ＣＰＵ２２は、不揮発性メモリ２５からシステムプログラムをシステムメモリ２６のプログラムエリア２６ａにダウンロードする（Ｓ４）。このＳ４の処理と並行して、ＣＰＵ２２は、メモリチェック回路２３に対して、ワークエリア２６ｂのチェック設定を行い、メモリチェック回路２３内のＤＭＡコントローラを起動させる。メモリチェック回路２３は、ワークエリア２６ｂのメモリセルについて、プログラムエリア２６ａと同様にして、第２のメモリチェックを実施し、ワークエリア２６ｂのメモリセルが全て故障していなかった場合、ＣＰＵ２２へ完了を通知する（Ｓ５）。
【００４０】
次に、ＣＰＵ２２は、メモリチェック回路２３に対して、イメージエリア２６ｃのチェック設定を行い、メモリチェック回路２３内のＤＭＡコントローラを起動させる。メモリチェック回路２３は、イメージエリア２６ｃのメモリセルについて、プログラムエリア２６ａ、ワークエリア２６ｂと同様にして、第３のメモリチェックを実施し、イメージエリア２６ｃのメモリセルが全て故障していなかった場合、ＣＰＵ２２へ完了を通知する（Ｓ６）。このとき、ＣＰＵ２２は、第３のメモリチェックと並行して、少なくともプログラムエリア２６ａにダウンロードされたシステムプログラムの起動処理を行う（Ｓ７）。
【００４１】
上記Ｓ７でのシステムプログラムの起動処理には、例えば、外部デバイス２１の初期化処理や、所定のアプリケーションソフトウェアの起動処理などが含まれる。このように、システム起動時のメモリチェック以外の処理を、メモリチェックと並行して実行させることができるため、システム起動時間を短縮することが可能となる。
【００４２】
図５は、本発明のメモリチェック装置２が備えるメモリチェック回路２３の構成例を示すブロック図である。メモリチェック回路２３は、ダイレクトメモリアクセスコントローラ（ＤＭＡコントローラ）２３ａ、メモリリードＤＭＡコントローラ２３ｂ、コンペア用データ生成部２３ｃ、ライト用データ生成部２３ｄ、メモリライトＤＭＡコントローラ２３ｅ、コンペア部２３ｆ、および制御レジスタ部２３ｇを備えて構成される。
【００４３】
システムメモリ２６は、前述したように、システムプログラムや画像データ等を格納するためのメモリであって、メモリチェックの対象とされる。ＣＰＵ２２は、メモリチェック回路２３の各種設定（ＤＭＡ転送アドレス、サイズ、モード、メモリチェック用データの設定等）を行う。ＤＭＡコントローラ２３ａは、例えば、前述の図３（Ａ）の例に示した（１）ライト−ライト、（２）ライト−リード、（３）リード−リード、（４）リード−ライトの組み合わせを所定のアクセス間隔で発生させる。メモリリードＤＭＡコントローラ２３ｂは、制御レジスタ部２３ｇからのアドレス設定、サイズ設定に従い、メモリチェック用データの書き込み後にメモリチェック用データの読み出しを行う。また、読み出したメモリチェック用データをコンペア部２３ｆへ転送する。
【００４４】
コンペア用データ生成部２３ｃは、制御レジスタ部２３ｇからの擬似乱数、固定値データなどに基づきメモリチェック用データを生成する。また、生成したメモリチェック用データをコンペア部２３ｆへ転送する。ライト用データ生成部２３ｄは、制御レジスタ部２３ｇからの擬似乱数、固定値データなどに基づきメモリチェック用データを生成する。また、生成したメモリチェック用データをメモリライトＤＭＡコントローラ２３ｅへ転送する。コンペア部２３ｆは、制御レジスタ部２３ｇからの設定に従い、メモリリードＤＭＡコントローラ２３ｂとコンペア用データ生成部２３ｃからそれぞれ転送されるデータのコンペアを行う。判定結果は制御レジスタ部２３ｇへ出力する。また、コンペアエラーが発生した場合、エラー発生アドレス、メモリリードデータ、期待値データも制御レジスタ部２３ｇへ出力する。
【００４５】
メモリライトＤＭＡコントローラ２３ｅは、ライト用データ生成部２３ｄからメモリチェック用データを受け取り、制御レジスタ部２３ｇからのアドレス設定、サイズ設定に従い、受け取ったメモリチェック用データをシステムメモリ２６へ書き込む。例えば、１Ｂｙｔｅ書き込みの設定が有効な場合には、１Ｂｙｔｅ単位でシステムメモリ２６へメモリチェック用データの書き込みを行う。制御レジスタ部２３ｇは、メモリチェック回路２３の各構成要素の設定を行うレジスタを持つ。これらのレジスタはＣＰＵ２２から設定することができる。また、コンペアエラー発生時は、コンペア部２３ｆからのエラー情報を受け取り、ＣＰＵ２２からのアクセスに応答して出力する。
【００４６】
図６は、本発明のメモリチェック装置２によるメモリチェック方法の一例を説明するためのフロー図である。本例ではメモリチェック装置１が図５のメモリチェック回路２３を備え、システムメモリ２６のプログラムエリア２６ａについてメモリチェックを行う場合を代表例として説明する。まず、メモリチェック装置２のＣＰＵ２２が、メモリチェック用パラメータの設定を行う（ステップＳ１１）。例えば、システムメモリ２６の同一ランクに対してメモリチェックを行うのか、あるいは、異なるランクに対してメモリチェックを行うのかを設定する。また、メモリチェックするメモリアドレスおよびサイズを設定する。また、１ＢｙｔｅアクセスのＯＮ／ＯＦＦ（有効／無効）を設定する。
【００４７】
次に、ＣＰＵ２２が、メモリチェック用データの設定を行う（ステップＳ１２）。例えば、メモリチェック用データとして、擬似乱数または固定値データのいずれかを設定する。擬似乱数の場合、Ｔａｐ値，Ｓｅｅｄ値を制御レジスタ部２３ｇに設定する。また、固定値データの場合、システムメモリ２６に書き込む固定パターンデータを制御レジスタ部２３ｇに設定する。
【００４８】
次に、メモリチェック回路２３は、ＣＰＵ２２からの指示に従い、ＤＭＡコントローラ２３ａ、メモリリードＤＭＡコントローラ２３ｂ、およびメモリライトＤＭＡコントローラ２３ｅを起動させ、メモリリード・ライトのＤＭＡ転送、すなわち、メモリライトＤＭＡコントローラ２３ｅがメモリチェック用データをプログラムエリア２６ａのメモリセルに書き込む処理、および、プログラムエリア２６ａのメモリセルに書き込まれたメモリチェック用データをメモリリードＤＭＡコントローラ２３ｂを介して読み出す処理を開始する（ステップＳ１３）。なお、ステップＳ１３において、ＤＭＡコントローラ２３ａは、プログラムエリア２６ａのメモリセルについて全組み合わせのアクセス、すなわち、（１）ライトとライト、（２）ライトとリード、（３）リードとリード、（４）リードとライトの組み合わせを所定のアクセス間隔で発生させてメモリチェックを行う。
【００４９】
そして、メモリチェック回路２３のコンペア部２３ｆは、メモリチェック用データのＤＭＡ転送が完了したか否かを判定し（ステップＳ１４）、ＤＭＡ転送が完了したと判定した場合（ＹＥＳの場合）、コンペア部２３ｆが、コンペア用データ生成部２３ｃから、プログラムエリア２６ａに書き込んだメモリチェック用データと同じ期待値（コンペア用データ）を取得し、取得した期待値と、プログラムエリア２６ａからメモリリードＤＭＡコントローラ２３ｂを介して読み出したデータとを比較して“ＯＫ（一致）”／“ＮＧ（不一致）”を判定する（ステップＳ１５）。また、ステップＳ１４において、ＤＭＡ転送が完了していないと判定した場合（ＮＯの場合）、ＤＭＡ転送が完了するまでステップＳ１４で待機状態に移行する。
【００５０】
次に、コンペア部２３ｆは、ステップＳ１５において、コンペア結果が“ＯＫ”又は“ＮＧ”のいずれであるかを判定し、コンペア結果が“ＯＫ”、つまり、一致と判定した場合（図中、ＯＫの場合）、プログラムエリア２６ａの全てのメモリセルについてメモリチェックが完了したか否かを判定し（ステップＳ１６）、プログラムエリア２６ａの全メモリセルについてメモリチェックが完了したと判定した場合（ＹＥＳの場合）、引き続き、システムメモリ２６のワークエリア２６ｂ，イメージエリア２６ｃについても同様のメモリチェックを行う。また、ステップＳ１６において、プログラムエリア２６ａの全メモリセルについてメモリチェックが完了していないと判定した場合（ＮＯの場合）、ステップＳ１３に戻り処理を繰り返す。
【００５１】
また、コンペア部２３ｆは、ステップＳ１５において、コンペア結果が“ＮＧ”、つまり、不一致と判定した場合（図中、ＮＧの場合）、エラー発生情報を制御レジスタ部２３ｇに格納する（ステップＳ１７）。ここで、ステップＳ１５でのコンペア判定の結果はＣＰＵ２２に割り込みで通知され、ＣＰＵ２２は割り込み検知後、制御レジスタ部２３ｇから判定結果を読み出し、判定結果が“ＮＧ”の場合には、エラー発生情報を制御レジスタ部２３ｇから取得することもできる。
【００５２】
上記の処理により、システムメモリ２６のプログラムエリア２６ａ、ワークエリア２６ｂ、およびイメージエリア２６ｃの全てのメモリチェックが終了すると、システムメモリ２６に係る一連のメモリチェックが完了する。
【００５３】
図７は、本発明のメモリチェック装置２によるメモリチェック方法の他の例を説明するためのフロー図である。まず、メモリチェック装置２は、プログラムエリア２６ａのメモリセルについて、例えば図３（Ａ）に示した全組み合わせのアクセスを所定のアクセス間隔で発生させて第１のメモリチェックを行い（ステップＳ２１）、第１のメモリチェックにてプログラムエリア２６ａのメモリセルが全て故障していなかった場合、ワークエリア２６ｂのメモリセルについて全組み合わせのアクセスを所定のアクセス間隔で発生させて第２のメモリチェックを行う（ステップＳ２２）。この際、ＣＰＵ２２は、ステップＳ２２における第２のメモリチェックと並行して、不揮発性メモリ２５に記憶されているシステムプログラムをプログラムエリア２６ａにダウンロードする処理を開始する。
【００５４】
次に、メモリチェック装置２は、ステップＳ２２の第２のメモリチェックにてワークエリア２６ｂのメモリセルが全て故障していなかった場合、イメージエリア２６ｃのメモリセルについて全組み合わせのアクセスを所定のアクセス間隔で発生させて第３のメモリチェックを行う（ステップＳ２３）。この際、ＣＰＵ２２は、ステップＳ２３における第３のメモリチェックと並行して、少なくともプログラムエリア２６ａにダウンロードされたシステムプログラムを起動させ、外部デバイス２１の初期化処理などを行う。
【符号の説明】
【００５５】
１…画像入力部、２…画像処理部（メモリチェック装置）、３…画像出力部、１０…画像形成装置、２１…外部デバイス、２２…ＣＰＵ、２３…メモリチェック回路、２３ａ…ダイレクトメモリアクセスコントローラ、２３ｂ…メモリリードＤＭＡコントローラ、２３ｃ…コンペア用データ生成部、２３ｄ…ライト用データ生成部、２３ｅ…メモリライトＤＭＡコントローラ、２３ｆ…コンペア部、２３ｇ…制御レジスタ部、２４…ＳＲＡＭ、２５…不揮発性メモリ、２６…システムメモリ、２６ａ…プログラムエリア、２６ｂ…ワークエリア、２６ｃ…イメージエリア。
【図１】
2013218620.tif 000003
【図２】
2013218620.tif 000004
【図３】
2013218620.tif 000005
【図４】
2013218620.tif 000006
【図５】
2013218620.tif 000007
【図６】
2013218620.tif 000008
【図７】
2013218620.tif 000009