(57)【特許請求の範囲】
【請求項１】
データの伝送経路であるバスと、
前記バスを介してスレーブデバイスにアクセスし、前記スレーブデバイスからデータを読み出す、あるいは前記スレーブデバイスにデータを書き込む処理である入出力処理を実行する複数のマスターデバイスと、
前記マスターデバイスに対するレジスタ設定を行って前記マスターデバイスを動作させる処理装置と、
前記マスターデバイスと前記処理装置とを接続する第１スイッチと、
前記マスターデバイスと前記バスとを接続する第２スイッチと、
複数の前記マスターデバイスのうち選択された前記マスターデバイスである対象デバイスにより実行される前記入出力処理をトレースするトレース制御回路と、
前記トレース制御回路によってトレースされた前記入出力処理に関する情報であって、前記入出力処理を再現する再現処理を実行するための情報であるトレース情報を記憶するトレースメモリーと、を備え、
前記トレース情報に基づき前記再現処理を実行するとき、
前記第１スイッチは、前記対象デバイスと前記処理装置との接続を遮断し、
前記第２スイッチは、前記対象デバイスと前記バスとの接続を遮断し、
前記トレース制御回路は、トレースした前記入出力処理の実行時に前記処理装置が前記対象デバイスに対して行ったレジスタ設定と設定内容が同じになるよう前記処理装置の代わりに前記対象デバイスに対してレジスタ設定を行うとともに、トレースした前記入出力処理の実行時に前記対象デバイスが前記スレーブデバイスから読み出したデータと同じデータを前記スレーブデバイスの代わりに前記対象デバイスに出力することを特徴とするデータ処理装置。
【請求項２】
前記トレースメモリーは、前記トレース情報として、前記対象デバイスに対して行われた各レジスタ設定の設定内容および前記各レジスタ設定の設定タイミングを記憶し、前記バスに出力された各データの内容、前記各データの転送元と転送先のアドレス、前記各データの属性および前記各データの出力タイミングを記憶することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記トレース制御回路は、トレースした前記入出力処理の実行時に前記対象デバイスが行った動作と、前記再現処理の実行時に前記対象デバイスが行った動作とが異なっているか否かを前記トレース情報に基づき判断し、異なっていると判断した場合、前記再現処理が失敗した旨を前記処理装置に通知し、
前記処理装置は、前記再現処理が失敗した旨を報知するための処理を行うことを特徴とする請求項１または２に記載のデータ処理装置。
【請求項４】
前記マスターデバイスは、画像データの転送を制御するＤＭＡコントローラー、画像データに対して画像処理を行う画像処理回路、および、画像データを記憶する画像処理メモリーを有するデバイスであることを特徴とする請求項１〜３のいずれか１項に記載のデータ処理装置。
【請求項５】
前記トレースメモリーは、予め定められたテスト動作を前記マスターデバイスに行わせるための動作情報を記憶し、
前記トレース制御回路は、前記動作情報に基づく動作と同じ動作を前記マスターデバイスに行わせ、前記マスターデバイスの動作結果を示す動作結果情報を前記処理装置に通知することを特徴とする請求項１〜４のいずれか１項に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスを介してデータを伝送するデータ処理装置に関する。
【背景技術】
【０００２】
画像形成装置のようなデータ処理装置は、画像データに対して種々の画像処理を行い、画像処理済みの画像データに基づき印刷を行ったり、画像処理済みの画像データを外部機器に送信したりする。
【０００３】
たとえば、画像形成装置に画像データが入力されると、その画像データはメモリーに一旦記憶され、画像処理部に出力される。画像処理部は、画像データに対して画像処理を行う。そして、画像処理済みの画像データは、メモリーに書き戻される。
【０００４】
このような画像形成装置は、特許文献１に開示されている。特許文献１の画像形成装置は、メモリーに記憶された画像データに対して画像処理を行う画像処理部を備える。この画像処理部は、ＤＭＡコントローラーおよび画像処理専用メモリーを含み、バスを介してメモリーに接続される。そして、画像処理部は、ＣＰＵを介さず、メモリーから画像データを読み出し、その画像データに対して画像処理を行った後、画像処理済みの画像データをメモリーに書き戻す。すなわち、画像処理部は、メモリーとの間で画像データのＤＭＡ転送を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−２４２８７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
たとえば、画像処理部による画像データの画像処理や画像データのＤＭＡ転送が期待通りに行われなければ（すなわち、画像処理部が期待通りに動作しなければ）、不具合が発生する。不具合が発生すると、画像処理部から出力される画像データ（メモリーに書き込まれた画像データ）が期待通りのデータとならない。このため、データ処理時に不具合が発生しているか否かは、画像処理部から出力される画像データの確認などを行うことによって分かる。
【０００７】
データ処理時に不具合が発生した場合には、不具合原因の解析が必要となる。しかし、不具合の発生原因は様々であり、画像処理部からの出力結果だけでは、発生原因の解析作業に時間がかかる（あるいは、不具合原因が分からない）という問題がある。
【０００８】
本発明は、上記の課題を解決するためになされたものであり、データ処理時に不具合が発生した場合に、その不具合原因の解析作業を容易に行うことが可能なデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明のデータ処理装置は、データの伝送経路であるバスと、バスを介してスレーブデバイスにアクセスし、スレーブデバイスからデータを読み出す、あるいはスレーブデバイスにデータを書き込む処理である入出力処理を実行する複数のマスターデバイスと、マスターデバイスに対するレジスタ設定を行ってマスターデバイスを動作させる処理装置と、マスターデバイスと処理装置とを接続する第１スイッチと、マスターデバイスとバスとを接続する第２スイッチと、複数のマスターデバイスのうち選択されたマスターデバイスである対象デバイスにより実行される入出力処理をトレースするトレース制御回路と、トレース制御回路によってトレースされた入出力処理に関する情報であって、入出力処理を再現する再現処理を実行するための情報であるトレース情報を記憶するトレースメモリーと、を備える。そして、トレース情報に基づき再現処理を実行するとき、第１スイッチは、対象デバイスと処理装置との接続を遮断する。第２スイッチは、対象デバイスとバスとの接続を遮断する。トレース制御回路は、トレースした入出力処理の実行時に処理装置が対象デバイスに対して行ったレジスタ設定と設定内容が同じになるよう処理装置の代わりに対象デバイスに対してレジスタ設定を行うとともに、トレースした入出力処理の実行時に対象デバイスがスレーブデバイスから読み出したデータと同じデータをスレーブデバイスの代わりに対象デバイスに出力する。
【００１０】
本発明の構成では、入出力処理時（データ処理時）に不具合が発生した場合に、不具合が発生したときに実行されていた入出力処理を再現するためのトレース情報を取得することができる。したがって、不具合原因を解析するためのシミュレーターにトレース情報を入力することにより、不具合が発生したときに実行されていた入出力処理をシミュレーター上で再現することができる（シミュレーターを用いて不具合原因を解析することができる）。その結果、不具合原因の解析作業が容易になる。
【００１１】
また、この構成では、不具合が発生したときに実行されていた入出力処理をデータ処理装置上でも再現することができる。このため、シミュレーターを用いた解析作業に先立って、不具合が発生したときに実行されていた入出力処理を正確に再現できたか否かを判断することができる。たとえば、再現処理の実行時にマスターデバイスから出力されたデータ（スレーブデバイスに書き込まれたデータ）を確認することにより、不具合が発生したときに実行されていた入出力処理を正確に再現できたか否かを判断することができる。
【発明の効果】
【００１２】
本発明によれば、データ処理時に不具合が発生した場合に、不具合原因の解析作業を容易に行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態による画像形成装置の構成を示す図
【図２】本発明の一実施形態による画像形成装置のハードウェア構成を示す図
【図３】本発明の一実施形態による画像形成装置に設けられるトレース部とＤＭＡモジュールとの接続関係を示す図
【図４】本発明の一実施形態による画像形成装置において行われるトレース処理の流れを説明するためのフローチャート
【図５】本発明の一実施形態による画像形成装置において行われる再現処理の流れを説明するためのフローチャート
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態について、画像形成装置（複合機）を例にとって説明する。
【００１５】
＜画像形成装置の全体構成＞
図１に示すように、本実施形態の画像形成装置１００は、画像読取部１および印刷部２を備える。
【００１６】
画像読取部１は、コンタクトガラス１１ａ上に載置された原稿をランプ１２で照射し、原稿からの反射光を受けたイメージセンサー１３の出力値をＡ／Ｄ変換することによって、原稿の画像データを生成する。なお、画像読取部１は、コンタクトガラス１１ｂ上を経由する原稿搬送路に沿って原稿を搬送する原稿搬送ユニット１４を含む。この原稿搬送ユニット１４を用いる場合には、搬送中の原稿がコンタクトガラス１１ｂ上を通過するときに、画像読取部１による原稿の読み取りが行われる。
【００１７】
印刷部２は、用紙搬送路２１に供給された用紙を複数の搬送ローラー対２２によって搬送する。このとき、印刷部２は、画像データ（たとえば、画像読取部１による原稿の読み取りによって得られた画像データ）に基づきトナー像を形成する。そして、印刷部２は、搬送中の用紙にトナー像を印刷（転写）する。この印刷部２は、給紙部３、画像形成部４および定着部５によって構成される。
【００１８】
給紙部３は、ピックアップローラー３１および給紙ローラー対３２を含み、用紙カセット３３に収納された用紙を用紙搬送路２１に供給する。画像形成部４は、感光体ドラム４１、帯電装置４２、露光装置４３、現像装置４４、転写ローラー４５およびクリーニング装置４６を含み、画像データに基づきトナー像を形成するとともに、そのトナー像を用紙に転写する。定着部５は、定着ローラー対５１を含み、用紙を加熱および加圧してトナー像を定着させる。
【００１９】
＜画像形成装置のハードウェア構成＞
図２に示すように、画像形成装置１００は、制御部１１０を備える。制御部１１０は、画像形成装置１００の全体制御を行う。また、制御部１１０は、画像読取部１および印刷部２と接続され、これらの制御を行う。すなわち、制御部１１０は、画像読取部１の読取動作および印刷部２の印刷動作をそれぞれ制御する。
【００２０】
また、制御部１１０は、画像形成装置１００に入力された画像データに対して種々の画像処理を行う。たとえば、制御部１１０は、画像読取部１による原稿の読み取りによって得られた画像データに対する画像処理を行う。あるいは、制御部１１０は、ネットワーク通信部６と接続され、ネットワーク通信部６を介して画像形成装置１００に入力された画像データに対する画像処理を行う。なお、ネットワーク通信部６には、画像形成装置１００のユーザーにより使用されるパーソナルコンピューター（ＰＣ）２００が接続される。そして、ＰＣ２００にて生成された画像データがネットワーク通信部６を介して画像形成装置１００に入力される。
【００２１】
この制御部１１０は、図２および図３に示すように、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３およびＤＭＡモジュール１１４を備える。ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３およびＤＭＡモジュール１１４は、それぞれ、バス１０に接続され、バス１０を介して他のデバイスとの間でデータをやり取りする。なお、ＣＰＵ１１１は「処理装置」に相当し、ＲＡＭ１１３は「スレーブデバイス」に相当し、ＤＭＡモジュール１１４は「マスターデバイス」に相当する。
【００２２】
ＣＰＵ１１１は、制御用のプログラムやデータに基づき動作する。ＲＯＭ１１２は、たとえば、フラッシュＲＯＭであり、ＲＡＭ１１３は、たとえば、ダイナミックＲＡＭ（ＤＲＡＭ）である。ＣＰＵ１１１を動作させるための制御用のプログラムやデータは、ＲＯＭ１１２に記憶され、ＲＡＭ１１３に展開される。また、ＲＡＭ１１３には、画像形成装置１００に入力された画像データ（画像処理の対象となる画像データ）が格納される。
【００２３】
ＤＭＡモジュール１１４は、画像データに対して画像処理を行うための画像処理モジュールであり、画像処理回路１１５や画像処理メモリー１１６を有する。なお、ＤＭＡモジュール１１４は複数設けられており、複数のＤＭＡモジュール１１４によって画像処理部１１７が構成される。複数のＤＭＡモジュール１１４は、ガンマ補正処理、回転処理、拡大縮小処理および圧縮伸長処理など画像データに対して互いに異なる画像処理を行う。図２および図３では、便宜上、２モジュール分のＤＭＡモジュール１１４を図示するが、ＤＭＡモジュール１１４の設置数は特に限定されない。
【００２４】
ここで、ＤＭＡモジュール１１４は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）方式でのデータ転送を制御するＤＭＡマスターとして機能するデバイスであって、ＤＭＡコントローラー（ＤＭＡＣ）１１８を有する。すなわち、ＤＭＡモジュール１１４は、ＣＰＵ１１１を介さず、ＲＡＭ１１３との間でデータの入出力処理（データのＤＭＡ転送）を実行する。
【００２５】
たとえば、コピージョブやプリントジョブが実行されると、ＣＰＵ１１１は、画像形成装置１００に入力された画像データをＲＡＭ１１３に格納する。その後、ＣＰＵ１１１は、ＲＡＭ１１３に格納された画像データの読み出しと画像処理済みの画像データのＲＡＭ１１３への書き込みとをＤＭＡモジュール１１４に実行させるため、ＤＭＡモジュール１１４を起動する。
【００２６】
ＤＭＡモジュール１１４を起動するため、ＣＰＵ１１１は、ＤＭＡモジュール１１４のレジスタ部１１９に含まれる複数のレジスタ（たとえば、転送元アドレスレジスタ、転送先アドレスレジスタおよび転送サイズレジスタなど）に対して適切な値を書き込む。すなわち、ＤＭＡモジュール１１４の起動に際し、ＣＰＵ１１４は、レジスタ設定（転送先アドレス、転送元アドレスおよび転送サイズなどの設定）を複数回行う。
【００２７】
ＣＰＵ１１１は、ＤＭＡモジュール１１４に対するレジスタ設定を完了させると、ＤＭＡモジュール１１４を起動する。これにより、ＤＭＡモジュール１１４は、入出力処理（画像処理のためのデータ転送）を開始する。すなわち、ＤＭＡモジュール１１４は、バス１０にアクセスする。そして、ＤＭＡモジュール１１４は、ＲＡＭ１１３から画像データを読み出し、当該画像データに対して画像処理を行った後、画像処理済みの画像データをＲＡＭ１１３に書き込む。また、ＤＭＡモジュール１１４は、入出力処理が終了すると、ＣＰＵ１１１に終了を通知する。
【００２８】
たとえば、コピージョブやプリントジョブでは、複数のＤＭＡモジュール１１４のうち所定のＤＭＡモジュール１１４による画像処理によって、画像形成装置１００に入力された画像データが露光制御用データ（露光装置４３を制御するためのデータ）に変換される。そして、露光制御用データは露光装置４３に出力される。
【００２９】
また、図２に示すように、制御部１１０は、デバッグインターフェース部７と接続される。デバッグインターフェース部７は、デバッグ制御の命令をＣＰＵ１１１に入力するためのものである。たとえば、デバッグインターフェース部７には、デバッグ担当者により使用されるデバッグ端末３００（ＰＣなど）が接続される。
【００３０】
＜トレース処理および再現処理＞
本実施形態では、複数のＤＭＡモジュール１１４のうち、選択したＤＭＡモジュール１１４により行われた入出力処理（画像処理のためのデータ転送）を再現するための再現処理の実行が可能である。たとえば、デバッグインターフェース部７にデバッグ端末３００を接続し、そのデバッグ端末３００を操作することにより、複数のＤＭＡモジュール１１４のうちから再現処理の処理対象を選択することができる（以下の説明では、再現処理の処理対象を対象デバイス１１４と称する場合がある）。以下、図２および図３を参照して具体的に説明する。
【００３１】
制御部１１０には、再現処理を実行するため、スイッチＳＷ１およびＳＷ２が設けられる。スイッチＳＷ１は、複数のＤＭＡモジュール１１４のそれぞれに１つずつ割り当てられており、対応するＤＭＡモジュール１１４とＣＰＵ１１１とを接続する。スイッチＳＷ２は、複数のＤＭＡモジュール１１４のそれぞれに１つずつ割り当てられており、対応するＤＭＡモジュール１１４とバス１０（ＲＡＭ１１３）とを接続する。スイッチＳＷ１は「第１スイッチ」に相当し、スイッチＳＷ２は「第２スイッチ」に相当する。
【００３２】
さらに、制御部１１０には、再現処理を実行するトレース部１２０が設けられる。トレース部１２０は、スイッチＳＷ１を介してＤＭＡモジュール１１４のレジスタ設定ポートに接続され、スイッチＳＷ２を介してＤＭＡモジュール１１４の入出力ポートに接続される。なお、ＤＭＡモジュール１１４のレジスタ設定ポートは、レジスタ設定を行うための信号が入力されるポートである。ＤＭＡモジュール１１４の入出力ポートは、リードデータおよびライトデータが入出力されるポートである。
【００３３】
また、トレース部１２０は、トレース制御回路１２１およびトレースメモリー１２２を有する。トレース制御部１２０は、対象デバイス１１４が行った入出力処理（対象デバイス１１４に対して行われたレジスタ設定も含む）をトレースする。トレースメモリー１２２は、トレース情報１２３を記憶する。トレース情報１２３は、トレース制御回路１２１によってトレースされた入出力処理に関する情報であって、再現処理を実行するための情報である。
【００３４】
トレース制御回路１２１は、対象デバイス１１４のレジスタ設定ポートに入力された信号を監視するとともに、対象デバイス１１４の入出力ポートを介して入出力されたデータを監視し、それによって得られた情報をトレース情報１２３としてトレースメモリー１２３に記憶させる。
【００３５】
たとえば、トレース制御回路１２１は、対象デバイス１１４に対して複数回行われる各レジスタ設定の設定内容や、各レジスタ設定の設定タイミング（或るレジスタの設定が行われてから次のレジスタの設定が行われるまでの時間間隔）などを示す情報をトレース情報１２３としてトレースメモリー１２２に記憶させる。
【００３６】
また、トレース制御回路１２１は、バス１０に出力された各データの内容、各データの属性、および、各データの転送元と転送先のアドレスなどを示す情報をトレース情報１２３としてトレースメモリー１２２に記憶させる。データ属性には、ライトデータであるかリードデータであるかを示す情報、バースト長を示す情報、および、バイトイネーブル情報などがある。バイトイネーブル情報というのは、バス１０を構成する各バイトレーンの有効／無効を示す情報である。
【００３７】
さらに、トレース制御回路１２１は、トレース情報１２３として、バス１０に出力された各データの出力タイミング（或るデータがバス１０に出力されてから次のデータがバス１０に出力されるまでの時間間隔）を示す情報をトレースメモリー１２２に記憶させる。
【００３８】
（トレース処理）
図４に示すフローチャートを参照し、対象デバイス１１４により行われる入出力処理（対象デバイス１１４に対して行われるレジスタ設定も含む）をトレースするときの流れについて説明する。図４に示すフローチャートのスタート時点では、画像形成装置１００にデバッグ端末３００が接続された状態となっている。そして、トレース処理を実行するための設定として、デバッグ端末３００からの指示で、複数のＤＭＡモジュール１１４から対象デバイス１１４を選択する。そして、トレース部１２０によるトレース処理は、対象デバイス１１４に対してレジスタ設定が行われるタイミングで開始される。
【００３９】
ステップＳ１において、トレース制御回路１２１は、対象デバイス１１４によって行われる入出力処理のトレースを開始する。また、ステップＳ２において、トレース制御回路１２１は、トレースによって得られた情報をトレース情報１２３としてトレースメモリー１２３に記憶させていく。
【００４０】
ステップＳ３において、トレース制御回路１２１は、トレース終了タイミングになったか否かを判断する。たとえば、トレース終了タイミングは、対象デバイス１１４による画像処理（画像処理済みの画像データのＲＡＭ１１３への書き込み）が完了した時点に設定される。そして、トレース終了タイミングになったとトレース制御回路１２１が判断した場合、ステップＳ４に移行し、トレース制御回路１２１によるトレースが終了する。一方で、ステップＳ３において、トレース終了タイミングになっていないとトレース制御回路１２１が判断した場合には、ステップＳ２に移行する。すなわち、トレース制御回路１２１によるトレースが続行される。
【００４１】
（再現処理）
図５に示すフローチャートを参照し、対象デバイス１１４により行われた入出力処理（対象デバイス１１４に対して行われたレジスタ設定も含む）を再現するときの流れについて説明する。図５に示すフローチャートのスタート時点では、画像形成装置１００にデバッグ端末３００が接続された状態となっている。そして、再現処理を実行するための設定として、デバッグ端末３００からの指示で、複数のＤＭＡモジュール１１４から対象デバイス１１４を選択する。また、再現処理の実行をデバッグ端末３００が指示する。
【００４２】
再現処理の実行が指示されると、ステップＳ１１において、トレース部１２０が起動する。そして、ステップＳ１２において、トレース制御回路１２１は、スイッチＳＷ１を制御し、対象デバイス１１４とＣＰＵ１１１との接続を遮断する。また、トレース制御回路１２１は、スイッチＳＷ２を制御し、対象デバイス１１４とバス１０との接続を遮断する。これにより、対象デバイス１１４に接続されるデバイスはトレース部１２０だけとなる。
【００４３】
その後、ステップＳ１３において、トレース制御回路１２１は、ＣＰＵ１１１の代わりに、対象デバイス１１４に対してレジスタ設定を行う。
【００４４】
このとき、トレース制御回路１２１は、トレースした入出力処理の実行時にＣＰＵ１１１が対象デバイス１１４に対して行ったレジスタ設定と設定内容が同じになるよう対象デバイス１１４に対してレジスタ設定を行う。また、トレース制御回路１２１は、トレースした入出力処理の実行時にＣＰＵ１１１が対象デバイス１１４に対して複数回行った各レジスタ設定の設定タイミングと同じタイミングで対象デバイス１１４に対してレジスタ設定を行う。すなわち、トレース制御回路１２１によるレジスタ設定は、トレース情報１２３に基づき行われる。
【００４５】
トレース制御回路１２１によるレジスタ設定が完了すると、ステップＳ１４に移行する。ステップＳ１４に移行すると、対象デバイス１１４が起動する（動作を開始する）。対象デバイス１１４が起動すると、対象デバイス１１４がトレース部１２０にアクセスする。たとえば、対象デバイス１１４からトレース部１２０に対して、データの読み出し命令などが出力される。
【００４６】
ステップＳ１５において、トレース制御回路１２１は、対象デバイス１１４に対してデータを出力する。このとき、トレース制御回路１２１は、トレースした入出力処理の実行時にＲＡＭ１１３から対象デバイス１１４（バス１０）に出力されたデータと同じデータを対象デバイス１１４に出力する。また、トレース制御回路１２１は、トレースした入出力処理の実行時にＲＡＭ１１３から対象デバイス１１４に出力されたデータの出力タイミングと同じタイミングで対象デバイス１１４にデータを出力する。すなわち、トレース制御回路１２１から対象デバイス１１４へのデータ出力は、トレース情報１２３に基づき行われる。
【００４７】
ここで、対象デバイス１１４に対して行ったレジスタ設定およびその設定タイミングがトレースした入出力処理の実行時と同じであり、対象デバイス１１４に出力したデータおよびその出力タイミングもトレースした入出力処理の実行時と同じであるので、対象デバイス１１４はトレースした入出力処理の実行時と同じ動作を行う。すなわち、対象デバイス１１４は、トレースした入出力処理の実行時に画像処理したデータと同じデータの画像処理を行い、トレースした入出力処理の実行時にＲＡＭ１１３に出力したデータ（書き込んだデータ）と同じデータを同じ出力タイミングで出力する。
【００４８】
しかし、トレースした入出力処理の実行時に対象デバイス１１４が行った動作（ここでは第１動作とする）と、再現処理の実行時に対象デバイス１１４が行った動作（ここでは第２動作とする）とが異なる場合がある。
【００４９】
このため、ステップＳ１６において、トレース制御回路１２１は、トレース情報１２３に基づき、第１動作と第２動作との比較を行う。そして、ステップＳ１７において、トレース制御回路１２１は、第１動作と第２動作とが一致しているか否かを判断する。たとえば、トレース制御回路１２１は、対象デバイス１１４から出力されたデータがトレース情報１２３で示されるデータと一致していれば、第１動作と第２動作とが一致していると判断する。あるいは、トレース制御部１２１は、対象デバイス１１４から出力されたデータ（または、データの書き込み命令）の出力タイミングがトレース情報１２３で示される出力タイミングと一致していれば、第１動作と第２動作とが一致していると判断する。
【００５０】
第１動作と第２動作とが一致しているとトレース制御回路１２１が判断した場合、ステップＳ１８に移行する。ステップＳ１８に移行すると、トレース制御回路１２１は、再現処理が成功と判断する。
【００５１】
一方で、第１動作と第２動作とが一致していないとトレース制御回路１２１が判断した場合には、ステップＳ１９に移行する。ステップＳ１９に移行すると、トレース制御回路１２１は、再現処理が失敗したと判断する。再現処理が失敗したと判断した場合、トレース制御部１２０は、再現処理が失敗した旨をＣＰＵ１１１に通知する。そして、ＣＰＵ１１１は、再現処理が失敗した旨を報知するための所定処理を行う。たとえば、ＣＰＵ１１１は、再現処理が失敗した旨のエラー通知をデバッグ端末３００に送信する。このエラー通知を受けたデバッグ端末３００は、エラー表示を行う。
【００５２】
本実施形態の画像形成装置１００（データ処理装置）は、上記のように、データの伝送経路であるバス１０と、バス１０を介してＲＡＭ１１３（スレーブデバイス）にアクセスし、ＲＡＭ１１３からデータを読み出すとともにＲＡＭ１１３にデータを書き込む処理である入出力処理を実行する複数のＤＭＡモジュール１１４（マスターデバイス）と、ＤＭＡモジュール１１４に対するレジスタ設定を行ってＤＭＡモジュール１１４を動作させるＣＰＵ１１１（処理装置）と、ＤＭＡモジュール１１４とＣＰＵ１１１とを接続するスイッチＳＷ１（第１スイッチ）と、ＤＭＡモジュール１１４とバス１０とを接続するスイッチＳＷ２（第２スイッチ）と、複数のＤＭＡモジュール１１４のうち選択された対象デバイス１１４により実行される入出力処理をトレースするトレース制御回路１２１と、トレース制御回路１２１によってトレースされた入出力処理に関する情報であって、入出力処理を再現する再現処理を実行するための情報であるトレース情報１２３を記憶するトレースメモリー１２２と、を備える。そして、トレース情報１２３に基づき再現処理を実行するとき、スイッチＳＷ１は、対象デバイス１１４とＣＰＵ１１１との接続を遮断する。スイッチＳＷ２は、対象デバイス１１４とバス１０との接続を遮断する。トレース制御回路１２１は、トレースした入出力処理の実行時にＣＰＵ１１１が対象デバイス１１４に対して行ったレジスタ設定と設定内容が同じになるようＣＰＵ１１１の代わりに対象デバイス１１４に対してレジスタ設定を行うとともに、トレースした入出力処理の実行時に対象デバイス１１４がＲＡＭ１１３から読み出したデータと同じデータをＲＭＡ１１３の代わりに対象デバイス１１４に出力する。
【００５３】
本実施形態の構成では、入出力処理時に不具合が発生した場合に、不具合が発生したときに実行されていた入出力処理を再現するためのトレース情報１２３を取得することができる。したがって、不具合原因を解析するためのシミュレーターにトレース情報１２３を入力することにより、不具合が発生したときに実行されていた入出力処理をシミュレーター上で再現することができる（シミュレーターを用いて不具合原因を解析することができる）。その結果、不具合原因の解析作業が容易になる。
【００５４】
また、この構成では、不具合が発生したときに実行されていた入出力処理を画像形成装置１００上でも再現することができる。このため、シミュレーターを用いた解析作業に先立って、不具合が発生したときに実行されていた入出力処理を正確に再現できたか否かを判断することができる。たとえば、再現処理の実行時に対象デバイス１１４から出力されたデータ（ＲＡＭ１１３に書き込まれたデータ）を確認することにより、不具合が発生したときに実行されていた入出力処理を正確に再現できたか否かを判断することができる。
【００５５】
また、本実施形態では、上記のように、トレース制御回路１２１は、トレース情報１２３として、対象デバイス１１４に対して行われた各レジスタ設定の設定内容および各レジスタ設定の設定タイミングをトレースメモリー１２２に記憶させるとともに、バス１０に出力された各データの内容、各データの転送元と転送先のアドレス、各データの属性および各データの出力タイミングをトレースメモリー１２２に記憶させる。このような情報をトレース情報１２３として取得できるよう構成すれば、容易に、不具合が発生したときに実行されていた入出力処理を正確に再現することができる。たとえば、再現処理の実行時に対象デバイス１１４が行うデータの読み出しや書き込みタイミングを不具合が発生したときに実行されていた入出力処理において対象デバイス１１４が行ったデータの読み出しや書き込みタイミングと一致させることができる。
【００５６】
また、本実施形態では、上記のように、トレース制御回路１２１は、トレースした入出力処理の実行時に対象デバイス１１４が行った動作と、再現処理の実行時に対象デバイス１１４が行った動作とが異なっているか否かをトレース情報１２３に基づき判断し、異なっていると判断した場合、再現処理が失敗した旨をＣＰＵ１１１に通知する。この通知を受けたＣＰＵ１１１は、再現処理が失敗した旨を報知するための処理を行う。このように構成すれば、デバック担当者からすると、不具合が発生したときに実行されていた入出力処理を正確に再現できたか否かを事前（解析作業を行う前）に把握することができ、利便性が良い。言い換えると、正確に再現できていないトレース情報１２３を基に解析作業が行われるのを抑制することができる。
【００５７】
ここで、予め定められたテスト動作をＤＭＡモジュール１１４（テスト対象モジュール１１４）に行わせ、テスト対象モジュール１１４に不具合が発生しているか否かを判断することができるよう構成してもよい。このように構成する場合、トレースメモリー１２３には、テスト対象モジュール１１４にテスト動作を行わせるための動作情報が予め記憶される。そして、トレース制御回路１２１は、動作情報に基づく動作と同じ動作をテスト対象モジュール１１４に行わせる。
【００５８】
このとき、トレース制御回路１２１は、動作情報で示される動作と同じ動作がテスト対象モジュール１１４にて行われるように、テスト対象モジュール１１４に対してレジスタ設定を行い、テスト対象モジュール１１４へのデータ出力を行う。これにより、テスト対象モジュール１１４に不具合が発生していれば、テスト対象モジュール１１４は動作情報で示される動作と異なる動作を行うことになる。
【００５９】
その後、トレース制御回路１２１は、テスト対象モジュール１１４の動作結果を示す動作結果情報をＣＰＵ１１１に通知する。そして、ＣＰＵ１１１に通知された動作結果情報はデバッグ端末３００に表示される。これにより、トレース処理や再現処理を行わなくても、動作結果情報に基づき、テスト対象モジュール１１４に不具合が発生しているか否かを判断することができる。
【００６０】
なお、トレース制御回路１２１からテスト対象モジュール１１４へのデータの出力タイミングを変化させた場合のテスト対象モジュール１１４の各動作を確認するため、テスト対象モジュール１１４へのデータの出力タイミングが自動調整されてもよい。
【００６１】
今回開示された実施形態は、すべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記実施形態の説明ではなく特許請求の範囲によって示され、さらに、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。
【符号の説明】
【００６２】
１０  バス
１１１  ＣＰＵ（処理装置）
１１３  ＲＡＭ（スレーブデバイス）
１１４  ＤＭＡモジュール（マスターデバイス）
１１５  画像処理回路
１１６  画像処理メモリー
１１８  ＤＭＡコントローラー
１２１  トレース制御回路
１２２  トレースメモリー
１２３  トレース情報
ＳＷ１  スイッチ（第１スイッチ）
ＳＷ２  スイッチ（第２スイッチ）
【図１】
0006376142.tif 000002
【図２】
0006376142.tif 000003
【図３】
0006376142.tif 000004
【図４】
0006376142.tif 000005
【図５】
0006376142.tif 000006