(57)【要約】【課題】  デバイスの動作検証をより高速に行うと共に、より信憑性の高い検証を行うための技術を提供すること。【解決手段】  処理データをメインメモリ４０４に書き込む要求を検知した場合、外部デバイスが動作検証対象デバイスであるのか否かを判断すると共に、書き込み要求先のメインメモリ４０４内のアドレスが所定のアドレス領域内であるのか否かを判断する。そして、外部デバイスが動作検証対象デバイスであり、且つ書き込み要求先のメインメモリ４０４内のアドレスが所定のアドレス領域内である場合には、処理データに対応する期待値データをメインメモリ４０４から読み出す。そして、処理データと、読み出したデータとが一致しているのか否かを判断する。【選択図】  図４
2007080183.tif 000002
【特許請求の範囲】
【請求項１】
複数の外部デバイスに含まれる動作検証対象デバイスが正常動作を行った場合に、当該動作検証対象デバイスから得られるデータを期待値データとして保持する第１のメモリと、
前記動作検証対象デバイスを特定する為の情報を保持する第２のメモリと、
前記第１のメモリにおいて所定のアドレス領域を示す情報を保持する第３のメモリと、
注目外部デバイスが動作を行った結果得られる処理データを前記第１のメモリに書き込む要求を検知した場合、当該注目外部デバイスが動作検証対象デバイスであるのか否かを判断する第１の判断手段と、
前記要求を検知した場合、書き込み要求先の前記第１のメモリ内のアドレスが前記所定のアドレス領域内であるのか否かを判断する第２の判断手段と、
前記第１の判断手段、前記第２の判断手段による判断処理の結果、前記注目外部デバイスが動作検証対象デバイスであり、且つ前記書き込み要求先の前記第１のメモリ内のアドレスが前記所定のアドレス領域内である場合には、前記処理データに対応する期待値データを前記第１のメモリから読み出す読み出し手段と、
前記処理データと、前記読み出し手段が読み出したデータとが一致しているのか否かを判断することで、前記注目外部デバイスの動作を検証する検証手段と
を備えることを特徴とするデータ処理装置。
【請求項２】
前記外部装置はＬＳＩ論理回路であることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記検証手段は、前記処理データと、前記読み出し手段が読み出したデータとが一致していない場合には、エラーの通知を行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
更に、
前記第１の判断手段、前記第２の判断手段による判断処理の結果、前記注目外部デバイスが動作検証対象デバイスではない、及び／又は、前記書き込み要求先の前記第１のメモリ内のアドレスが前記所定のアドレス領域内ではない場合には、前記処理データを当該アドレスに書き込む書き込み手段を備えることを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
複数の外部デバイスに含まれる動作検証対象デバイスが正常動作を行った場合に、当該動作検証対象デバイスから得られるデータを期待値データとして保持する第１のメモリと、
前記動作検証対象デバイスを特定する為の情報を保持する第２のメモリと、
前記第１のメモリにおいて所定のアドレス領域を示す情報を保持する第３のメモリとを備えるデータ処理装置の制御方法であって、
注目外部デバイスが動作を行った結果得られる処理データを前記第１のメモリに書き込む要求を検知した場合、当該注目外部デバイスが動作検証対象デバイスであるのか否かを判断する第１の判断工程と、
前記要求を検知した場合、書き込み要求先の前記第１のメモリ内のアドレスが前記所定のアドレス領域内であるのか否かを判断する第２の判断工程と、
前記第１の判断工程、前記第２の判断工程による判断処理の結果、前記注目外部デバイスが動作検証対象デバイスであり、且つ前記書き込み要求先の前記第１のメモリ内のアドレスが前記所定のアドレス領域内である場合には、前記処理データに対応する期待値データを前記第１のメモリから読み出す読み出し工程と、
前記処理データと、前記読み出し工程で読み出したデータとが一致しているのか否かを判断することで、前記注目外部デバイスの動作を検証する検証工程と
を備えることを特徴とするデータ処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部装置、特にＬＳＩ論理回路の動作検証を行うための技術に関するものである。
【背景技術】
【０００２】
LSIを含む論理システムの規模は年々増大しており、システムに搭載される機能も高度化・多様化している。このような状況の中、目的のシステムを効率よく実現する為の手段として、CPUおよび周辺入出力制御装置、画像処理装置等の回路を、バスを用いて電気的に接続し、１つのチップに搭載したシステムLSIの開発が行われている。年々拡大する電子機器の性能への要求を満たす為に、システムLSIが扱うデータ量は飛躍的に増大しており、これにあわせて大容量のメモリデバイスが用いられるようになっている。画像処理、動画処理といった膨大なデータを扱う回路の検証では、論理シミュレーションを用いて実機で起こりうる全ての事象を検証するのには膨大な時間必要であり、現実的には不可能である。
【０００３】
そのためエミュレータと呼ばれる装置を用いて検証を高速化する手法が用いられている（例えば、特許文献１参照）。しかし、エミュレータは検証環境構築に多くの時間が必要であり、実機動作と比べると速度も遅い為、特定のテストパターンに限定して使用する必要がある。これらの理由から、動画処理等の大容量のデータを用いた検証は、エンジニアリング・サンプル（以下ES）を用いて、ソフトウェアの検証と同時にハードウェアの実機検証をするという手法が用いられている。その検証方法として、ハードウェアによる一連のデータ処理終了後にメモリに保存された処理データをCPUがROMまたはメモリ上にあらかじめ保存しておいた期待値データと比較を行う方法がとられている。
【特許文献１】特開２００４−３６１１７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしこれらの方法では、ハードウェアでの一連のデータ処理が終わってから処理データと期待値データを比較している為、不具合発生時の原因の解析が困難であった。また、データ比較の別の方法として、一回のデータ処理ごとにCPUが処理データと期待値データを比較する方法が考えられる。しかしこの場合、本来のデータ処理シーケンスにCPUからの期待値および処理データ読み出しが毎回加わってしまい、テストの信憑性が低下してしまうとともに、シミュレーション時間の増加を招いてしまう。
【０００５】
本発明は以上の問題に鑑みて成されたものであり、デバイスの動作検証をより高速に行うと共に、より信憑性の高い検証を行うための技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の目的を達成するために、例えば、本発明のデータ処理装置は以下の構成を備える。
【０００７】
即ち、複数の外部デバイスに含まれる動作検証対象デバイスが正常動作を行った場合に、当該動作検証対象デバイスから得られるデータを期待値データとして保持する第１のメモリと、
前記動作検証対象デバイスを特定する為の情報を保持する第２のメモリと、
前記第１のメモリにおいて所定のアドレス領域を示す情報を保持する第３のメモリと、
注目外部デバイスが動作を行った結果得られる処理データを前記第１のメモリに書き込む要求を検知した場合、当該注目外部デバイスが動作検証対象デバイスであるのか否かを判断する第１の判断手段と、
前記要求を検知した場合、書き込み要求先の前記第１のメモリ内のアドレスが前記所定のアドレス領域内であるのか否かを判断する第２の判断手段と、
前記第１の判断手段、前記第２の判断手段による判断処理の結果、前記注目外部デバイスが動作検証対象デバイスであり、且つ前記書き込み要求先の前記第１のメモリ内のアドレスが前記所定のアドレス領域内である場合には、前記処理データに対応する期待値データを前記第１のメモリから読み出す読み出し手段と、
前記処理データと、前記読み出し手段が読み出したデータとが一致しているのか否かを判断することで、前記注目外部デバイスの動作を検証する検証手段と
を備えることを特徴とする。
【０００８】
本発明の目的を達成するために、例えば、本発明のデータ処理装置の制御方法は以下の構成を備える。
【０００９】
即ち、複数の外部デバイスに含まれる動作検証対象デバイスが正常動作を行った場合に、当該動作検証対象デバイスから得られるデータを期待値データとして保持する第１のメモリと、
前記動作検証対象デバイスを特定する為の情報を保持する第２のメモリと、
前記第１のメモリにおいて所定のアドレス領域を示す情報を保持する第３のメモリとを備えるデータ処理装置の制御方法であって、
注目外部デバイスが動作を行った結果得られる処理データを前記第１のメモリに書き込む要求を検知した場合、当該注目外部デバイスが動作検証対象デバイスであるのか否かを判断する第１の判断工程と、
前記要求を検知した場合、書き込み要求先の前記第１のメモリ内のアドレスが前記所定のアドレス領域内であるのか否かを判断する第２の判断工程と、
前記第１の判断工程、前記第２の判断工程による判断処理の結果、前記注目外部デバイスが動作検証対象デバイスであり、且つ前記書き込み要求先の前記第１のメモリ内のアドレスが前記所定のアドレス領域内である場合には、前記処理データに対応する期待値データを前記第１のメモリから読み出す読み出し工程と、
前記処理データと、前記読み出し工程で読み出したデータとが一致しているのか否かを判断することで、前記注目外部デバイスの動作を検証する検証工程と
を備えることを特徴とする。
【発明の効果】
【００１０】
本発明の構成により、デバイスの動作検証をより高速に行うと共に、より信憑性の高い検証を行うことができる。
【発明を実施するための最良の形態】
【００１１】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１２】
＜データ処理装置について＞
本実施形態では、動作検証対象のデバイスを含む複数の外部デバイスに接続されたデータ処理装置について説明する。
【００１３】
ここで、動作検証対象デバイスは、所定の処理を行うと処理結果のデータを出力する。この処理結果のデータは動作検証対象デバイスの動作が正常であれば期待通りのデータとなる。しかし、動作検証対象デバイスの動作が正常ではなかった場合、処理結果のデータは期待通りのデータとは成らない。
【００１４】
そこで、本実施形態では、先ず、動作検証対象デバイスが正常である場合に出力されるであろうデータ（期待値データ）をメモリに保持しておく。そして、データ処理装置は、動作検証対象デバイスから出力された処理結果のデータを受け、受けたデータとメモリに保持されている期待値データとの比較を行い、処理結果のデータが期待通りのデータであるのか否かをチェックする。これにより、動作検証対象デバイスの動作が正常であるか否かの検証を行うことができる。
【００１５】
図１は、本実施形態に係るデータ処理装置のハードウェア構成、及びデータの流れを示すブロック図である。同図に示す如く、本実施形態に係るデータ処理装置は、メモリコントローラ１１０とメモリ１０６とで構成されている。
【００１６】
メモリコントローラ１１０は、外部デバイスからメモリ１０６に対するアクセスを検知すると、このアクセスの制御を行う。また、外部デバイスのうち動作検証対象デバイスから出力されたデータをメモリ１０６に書き込む要求をこの動作検証対象デバイスから受けると、この処理結果のデータの検証処理を行う。
【００１７】
メモリ１０６には、動作検証対象デバイスが正常である場合に、この動作検証対象デバイスから出力されるであろうデータ、即ち期待値データが保持されている。動作検証対象デバイスが複数の場合には、それぞれの動作検証対象デバイス毎に期待値データを保持する。また、メモリ１０６は、動作検証対象デバイスから出力された処理結果のデータを保持するための空きエリアも有する。
【００１８】
次に、メモリコントローラ１１０の構成について説明する。メモリコントローラ１１０は、外部デバイス側で処理した結果のデータ（書き込みデータ１０２）、書き込みデータ１０２をメモリ１０６に書き込む要求、そしてこの外部デバイスを識別するための情報（バスマスタ識別子）を受ける。
【００１９】
書き込みコマンド生成装置１０１は、書き込みデータ１０２をメモリ１０６に書き込む要求を受けると、この書き込みデータ１０２を書き込むメモリ１０６上のアドレス等を指定するコマンド（書き込みコマンド）を生成する。
【００２０】
また、この要求を受けると、読み出しコマンド生成装置１０４は、この書き込みデータ１０２に対応する期待値データが保持されているメモリ１０６上のアドレス等を指定するコマンド（読み出しコマンド）を生成する。書き込みデータ１０２に対応する期待値データが保持されているメモリ１０６上のアドレスは、例えば、書き込みデータ１０２を書き込むメモリ１０６上のアドレスに所定のバイアスを加算することで得る。
【００２１】
一方、レジスタ１０９には、動作検証対象デバイスのバスマスター識別子、メモリ１０６上において書き込みデータ１０２を格納するためのエリア（上記空きエリア）を特定する情報（エリア情報）が保持されている。
【００２２】
制御装置１０３は、上記書き込み要求を受けると先ず、外部デバイスから受けたバスマスター識別子とレジスタ１０９に保持されているバスマスター識別子とを比較し、この外部デバイスが動作検証対象デバイスであるのか否かをチェックする。更に、制御装置１０３は、レジスタ１０９に保持されているエリア情報を参照し、書き込みコマンド生成装置１０１が生成したコマンドに含まれている書き込みアドレスが、空きエリア内に含まれているか否かをチェックする。
【００２３】
以上の２つのチェック処理の結果、外部デバイスが動作検証対象デバイスであり、且つ書き込みアドレスが空きエリア内に含まれている場合、制御装置１０３はコマンド選択装置１０５を制御し、読み出しコマンドを選択させる。その結果、コマンド選択装置１０５は、選択した読み出しコマンドに基づいて、メモリ１０６から期待値データ（読み出しデータ１０７）を読み出す。この読み出しデータ１０７は、書き込みデータ１０２に対応するものであり、動作検証対象デバイスが正常に動作していれば書き込みデータ１０２と読み出しデータ１０７とは一致するはずである。
【００２４】
そこで、比較装置１０８は書き込みデータ１０２と読み出しデータ１０７とを比較し、それぞれが一致しているのか否かをチェックする。そして一致していない場合には、動作検証対象デバイスの動作が正常ではないことを意味するので、比較装置１０８はその旨を出力する。
【００２５】
一方、以上の２つのチェック処理の結果、外部デバイスが動作検証対象デバイスではない、及び／又は書き込みアドレスが空きエリア内に含まれていない場合、制御装置１０３はコマンド選択装置１０５を制御し、書き込みコマンドを選択させる。その結果、コマンド選択装置１０５は、選択した書き込みコマンドに基づいて、メモリ１０６の空きエリアに書き込みデータ１０２を書き込む。
【００２６】
＜データ処理装置を組み込んだ装置について＞
図４は、以上説明した動作を行うデータ処理装置を、動作検証しようとするデバイスを含むシステムに組み込んだ場合のハードウェア構成を示すブロック図である。
【００２７】
ＵＳＢ  ＩＦ４０５を介してディジタルカメラ等から入力された画像データは、ＤＭＡＣ４０６によりバス４０２を介してメモリコントローラ４０３（図１に示したメモリコントローラ１１０と同様の構成を有する）に転送される。メモリコントローラ４０３はこの画像データをメインメモリ４０４に転送し、そこに保存する。
【００２８】
ＣＰＵ４０１がＪＰＥＧエンコーダ４１０を制御することで、ＪＰＥＧエンコーダ４１０はメインメモリ４０４に保存された画像データをＤＭＡＣ４０９により逐次読み出し、読み出した画像データに対して符号化処理を行う。符号化結果のデータ（符号化データ）は再度メインメモリ４０４に保存する。
【００２９】
そして、１フレーム分の画像データの符号化処理が完了すると、ＣＰＵ４０１はメモリコントローラ４０３を介してメインメモリ４０４から先ほど符号化が完了した１フレーム分の符号化データを読み出す。そして読み出した符号化データをＲＯＭＣ４０７を介してＦｌａｓｈＲＯＭ４０８に転送し、そこに保存する。
【００３０】
このような構成を有するシステムにおいて、ＪＰＥＧエンコーダ４１０の動作検証を、メモリコントローラ４０３を用いて行う場合を例に取り、メモリコントローラ４０３の動作について以下、説明する。
【００３１】
＜データ処理装置が行う処理について＞
図２は、図４に示す如く、データ処理装置を、動作検証しようとするデバイスを含むシステムに組み込んだ場合に、このデータ処理装置を構成するメモリコントローラ１１０が行う処理のフローチャートである。
【００３２】
先ず、同図のフローチャートに従った処理を行う前段では、システムの初期化等、様々な初期化処理を行う。これにより、メモリコントローラ４０３は、ＣＰＵ４０１やＤＭＡＣ１０９といった「バスマスタ」から、メインメモリ４０４へのデータ書き込み要求／読み出し要求を受け付けることができる。
【００３３】
また、メインメモリ４０４には、予め期待値データ（ここではＪＰＥＧエンコーダ４１０が正常動作を行った場合に得られる符号化データ）が保持されているものとする。
【００３４】
メモリコントローラ４０３を構成する各部は要求受付を行っている（ステップＳ２０２）。この状態において、各部が外部デバイス（バスマスタ）からメインメモリ４０４へのアクセス要求がメインメモリ４０４からデータを読み出す要求（Ｒｅａｄ要求）であることを検知した場合には、処理をステップＳ２０３を介してステップＳ２０４に進める。
【００３５】
そして、読み出しコマンド生成装置１０４は、読み出し要求の対象となっているデータをメインメモリ４０４から読み出す為のコマンド（Ｒｅａｄコマンド）を生成する（ステップＳ２０４）。そして、コマンド選択装置１０５はこのコマンドに基づいて、読み出し要求されたデータを読み出す（ステップＳ２０４）。
【００３６】
一方、メインメモリ４０４へのアクセス要求がメインメモリ４０４に対するデータの書き込み要求である場合には処理をステップＳ２０３を介してステップＳ２０５に進める。そして、制御装置１０３は、現在のメモリコントローラ４０３にテストモードが設定されているのか否かをチェックする（ステップＳ２０５）。メモリコントローラ４０３は、外部デバイスの動作検証を行うモードと行わないモードの何れかを設定することができる。例えば、動作検証を行う場合には、ＴｅｓｔＭｏｄｅ＝１を設定し、動作検証を行わない場合にはＴｅｓｔＭｏｄｅ＝０を設定する。このＴｅｓｔＭｏｄｅの値がレジスタ１０９に予め設定される。従って、ステップＳ２０５では、制御装置１０３は、レジスタ１０９に設定されたＴｅｓｔＭｏｄｅの値を参照し、参照した値が１か０かをチェックする処理を行う。
【００３７】
ＴｅｓｔＭｏｄｅ＝０の場合には処理をステップＳ２０６に進める。そして、書き込みコマンド生成装置１０１は、書き込み対象のデータとして、書き込み要求と共に受けたデータ（ここでは符号化データ）をメインメモリ４０４に書き込む為のコマンド（Ｗｒｉｔｅコマンド）を生成する（ステップＳ２０６）。そして、コマンド選択装置１０５はこのコマンドに基づいて、書き込み要求されたデータをメインメモリ４０４に書き込む（ステップＳ２０６）。
【００３８】
一方、ＴｅｓｔＭｏｄｅ＝１の場合には処理をステップＳ２０７に進める。そして、制御装置１０３は、書き込み要求と共に外部デバイスから受けたバスマスター識別子と、レジスタ１０９に保持されているバスマスター識別子とを比較する（ステップＳ２０７）。これにより、この外部デバイスが動作検証対象デバイス（ここではＪＰＥＧエンコーダ４１０）であるのか否かをチェックする（ステップＳ２０７）。チェックの結果、それぞれのバスマスター識別子が一致していない場合、この外部デバイスが動作検証対象デバイスではないと判断し、処理をステップＳ２０６に進める。
【００３９】
一方、それぞれのバスマスター識別子が一致している場合には処理をステップＳ２０８に進める。そして、制御装置１０３は、レジスタ１０９に保持されているエリア情報を参照し、書き込みコマンド生成装置１０１が生成したコマンドに含まれている書き込みアドレスが、空きエリア内に含まれているか否かをチェックする（ステップＳ２０８）。チェックの結果、含まれていない場合には、処理をステップＳ２０６に進める。
【００４０】
一方、含まれている場合には処理をステップＳ２０９に進め、先ず、制御装置１０３はコマンド選択装置１０５を制御し、読み出しコマンドを選択させる。その結果、コマンド選択装置１０５は、選択した読み出しコマンドに基づいて、メモリ１０６から期待値データを読み出す。次に、比較装置１０８は、書き込み要求されているデータと読み出した期待値データとを比較し、それぞれが一致しているのか否かをチェックする（ステップＳ２１０）。チェックの結果、一致していない場合には、動作検証対象デバイスの動作が正常ではないことを意味するので、比較装置１０８はその旨（エラー）をＣＰＵ４０１に割り込みを用いて出力する（ステップＳ２１１）。
【００４１】
＜システムが行う処理について＞
図３は、図４に示したシステムが行う処理のフローチャートである。先ず、ＣＰＵ４０１は、メモリコントローラ４０３に図２のフローチャートに従った処理を実行させるためのプログラムをＦｌａｓｈＲＯＭ４０８から読み出し、メモリコントローラ４０３を介してメインメモリ４０４に格納する（ステップＳ３０２）。
【００４２】
次に、ＣＰＵ４０１は、メインメモリ４０４に格納すべき上記期待値データをＦｌａｓｈＲＯＭ４０８から読み出し、メモリコントローラ４０３を介してメインメモリ４０４に格納する（ステップＳ３０３）。次に、ＣＰＵ４０１は、ＦｌａｓｈＲＯＭ４０８からバスマスター識別子、エリア情報を読み出し、レジスタ１０９に対して出力し、そこに保存させる（ステップＳ３０４）。
【００４３】
次に、ＣＰＵ４０１はＴｅｓｔＭｏｄｅの値をセットする（ステップＳ３０５）。以上の処理を行った後に、ＣＰＵ４０１はＪＰＥＧエンコーダ４１０に対して１フレーム分の画像の符号化処理を実行するよう、指示するので、ＪＰＥＧエンコーダ４１０はこの指示に従った処理を開始する（ステップＳ３０６）。そしてＪＰＥＧエンコーダ４１０が１フレーム分の画像の符号化処理を完了させると、ＣＰＵ４０１はメモリコントローラ４０３に対して図２のフローチャートに従った処理を実行するよう指示する。これにより、メモリコントローラ４０３は、図２のフローチャートに従った処理を実行する（ステップＳ３０６）。なお、図２のフローチャートに従った処理は、ステップＳ３０２でメインメモリ４０４に格納されたプログラムをメモリコントローラ４０３が実行することで成される。
【００４４】
次に、ＣＰＵ４０１はメモリコントローラ４０３の比較装置１０８からエラーを受けたか否かを判断する（ステップＳ３０７）。そして、エラーを受けている場合には処理をステップＳ３０８に進め、システムの各部の動作を中断させると共に、エラーが生じた旨を報知する（ステップＳ３０８）。報知形態については特に限定するものではないが、例えば、バス４０２にモニタが接続されている場合には、このモニタに、現在符号化した画像のフレーム番号と共に、このフレームの符号化が失敗した旨を表示する。
【００４５】
以上の処理により、本実施形態によれば、メモリコントローラに期待値データとのデータ比較機能を設けたことで、処理データの妥当性チェックはメモリコントローラが全てに行う為、ＣＰＵによるデータ比較を行う必要が無くなり、検証速度の向上が図られる。
【００４６】
また、検証速度を損なうことなく一回の処理ごとにデータ比較を行う為、不具合発生時にエラー情報を即座にＣＰＵに通知することができ、不具合原因の特定を容易にすることができる。
【００４７】
なお、本実施形態では、メインメモリ４０４内に処理データを格納するための空きエリアと、期待値データを格納するためのエリアとを設けるようにした。しかし、処理データと期待値データとが一致した場合には、この期待値データにこの処理データを上書きするようにしても良い。その場合、期待値データを格納するためのエリア以外に別途処理データを格納するためのエリアを設ける必要がないので、メモリ効率を向上させることができる。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態に係るデータ処理装置のハードウェア構成、及びデータの流れを示すブロック図である。
【図２】図４に示す如く、データ処理装置を、動作検証しようとするデバイスを含むシステムに組み込んだ場合に、このデータ処理装置を構成するメモリコントローラ１１０が行う処理のフローチャートである。
【図３】図４に示したシステムが行う処理のフローチャートである。
【図４】データ処理装置を、動作検証しようとするデバイスを含むシステムに組み込んだ場合のハードウェア構成を示すブロック図である。
【図１】
2007080183.tif 000003
【図２】
2007080183.tif 000004
【図３】
2007080183.tif 000005
【図４】
2007080183.tif 000006