(57)【要約】【課題】異なるバスをまたがって動作するキャッシュメモリをリアルタイムに検証する。【解決手段】キャッシュメモリ検証システムは、第１バス７で接続されたＣＰＵ５及びキャッシュメモリ６を有する被試験デバイス４と、被試験デバイス４に第２バス８により接続されるメインメモリ３と、メインメモリ３のアドレス、当該アドレスに対応するデータ、及び少なくともＣＰＵ５からキャッシュメモリ６へのライト転送を示す属性情報からなるテーブル９１を有し、第１バス７及び第２バス８に流れるデータを監視するモニタ部９とを有する。モニタ部９は、ＣＰＵ５からキャッシュメモリ６への書き込み転送以外であって、キャッシュメモリ６に対するライト転送又はリード転送が発生した場合に、第１又は第２バスに流れるアドレス及びデータと、テーブル９１に格納されたアドレス及びデータと比較し、その一致・不一致をリアルタイムで判定する。【選択図】図１
2011170446.tif 000002
【特許請求の範囲】
【請求項１】
第１のバスで接続された制御部及びキャッシュメモリを有する被試験デバイスと、
前記被試験デバイスに第２のバスにより接続されるメインメモリと、
前記メインメモリのアドレス、当該アドレスに対応するデータ、及び少なくとも前記制御部から前記キャッシュメモリへのライト転送を示す属性情報からなるテーブルを有し、前記第１のバス及び第２のバスに流れる前記データを監視する監視部とを有し、
前記監視部は、前記制御部から前記キャッシュメモリへの書き込み転送以外であって、前記キャッシュメモリに対するライト転送又はリード転送が発生した場合に、前記第１又は第２のバスに流れるアドレス及びデータと、前記テーブルに格納されたアドレス及びデータと比較し、その一致・不一致をリアルタイムで判定するキャッシュメモリ検証装置。
【請求項２】
前記監視部は、前記判定で一致であった場合は、当該テーブルの属性を更新する、請求項１記載のキャッシュメモリ検証装置。
【請求項３】
前記テーブルは、前記制御部から前記キャッシュメモリへのライト転送を示す第１バスライト転送、前記制御部による前記キャッシュメモリのリード転送を示す第１バスリード転送、前記キャッシュメモリから前記メモリへのライト転送を示す第２バスライト転送、及び前記キャッシュメモリによる前記メインメモリのリード転送を示す第２バスリード伝送を前記属性情報として有する、請求項１又は２記載のキャッシュメモリ検証装置。
【請求項４】
前記監視部は、前記一致・不一致の結果と共に、前記属性情報を外部に出力する請求項３記載のキャッシュメモリ検証装置。
【請求項５】
前記メインメモリと前記キャッシュメモリとの間のデータの転送は複数のアドレスとこれに対応するデータからなるブロックデータであり、前記制御部と前記キャッシュメモリとの間のデータ転送は、１アドレス単位のデータである、請求項１乃至４のいずれか１項記載のキャッシュメモリ検証装置。
【請求項６】
前記メインメモリは、外部から検証用プログラムをロードし、前記制御部が当該検証用プログラムを実行することにより検証を行う、請求項１乃至５のいずれか１項記載のキャッシュメモリ検証装置。
【請求項７】
前記キャッシュメモリはライトバック方式のキャッシュメモリである、請求項１乃至６のいずれか１項記載のキャッシュメモリ検証装置。
【請求項８】
前記制御部は、ＣＰＵ（Central Processing Unit）又はＤＳＰ（Digital Signal Processor）である請求項１乃至７のいずれか１項記載のキャッシュメモリ検証装置。
【請求項９】
第１のバスで接続された制御部及びキャッシュメモリを有する被試験デバイスの前記キャッシュメモリを検証するキャッシュメモリの検証方法であって、
前記第１のバスに流れるデータ、及び前記キャッシュメモリとメインメモリを接続する第２のバスに流れるデータを、前記メインメモリのアドレス、当該アドレスに対応するデータ、及び少なくとも前記制御部から前記キャッシュメモリへのライト転送を示す属性情報からなるテーブルを参照して監視し、
前記制御部から前記キャッシュメモリへの書き込み転送以外であって、前記キャッシュメモリに対するライト転送又はリード転送が発生した場合に、前記第１又は第２のバスに流れるアドレス及びデータと、前記テーブルに格納されたアドレス及びデータとリアルタイムで比較し、その一致・不一致の判定結果を出力する、キャッシュメモリの検証方法。
【請求項１０】
第１のバスで接続された制御部及びキャッシュメモリを有する被試験デバイスの前記キャッシュメモリを検証する動作をコンピュータに実行させるためのプログラムであって、
前記第１のバスに流れるデータ及び、前記キャッシュメモリとメインメモリを接続する第２のバスに流れるデータを、前記メインメモリのアドレス、当該アドレスに対応するデータ、及び少なくとも前記制御部から前記キャッシュメモリへのライト転送を示す属性情報からなるテーブルを参照して監視し、
前記制御部から前記キャッシュメモリへの書き込み転送以外であって、前記キャッシュメモリに対するライト転送又はリード転送が発生した場合に、前記第１又は第２のバスに流れるアドレス及びデータと、前記テーブルに格納されたアドレス及びデータとリアルタイムで比較し、その一致・不一致を判定する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Central Processing Unit）又はＤＳＰ（Digital Signal Processor）などの制御部とメインメモリとの間に配置され、相互にバスで接続されるキャッシュメモリの検証装置、キャッシュメモリの検証方法及びプログラムに関する。
【背景技術】
【０００２】
従来、特許文献１には、検証対象の動作の正当性を確認する論理シミュレーション方法が開示されている。この特許文献１に記載の論理シミュレーション方法においては、検証対対象と、非検証対象回路であるプロセッサ及び主記憶と主記憶を制御する主記憶制御部と、検証対象装置、プロセッサ及び主記憶制御部の間をそれぞれ接続するバスと、このバスに接続されるモニタとを有し、テストデータに従ってテストを実行し、テスト結果を期待値と判定することで検証対象回路の動作を検証している。
【０００３】
しかしながら、メインメモリに動作の結果が反映されるようにテストプログラムを記述しなければならなく、多くの転送を必要とする。また、最終結果の比較となるため、デバッグ時にどこの転送に誤りがあるのかを判断することが困難であるという問題点がある。
【０００４】
これに対し、リアルタイムに被試験デバイスをチェックする方法として、スコアボードを用いた検証手法が特許文献２に記載されている。図６は、特許文献１に記載のシステムを示す図である。システムは、ＣＰＵ（Central Processing Unit）１０１、マスタデバイス１０２、１０３、メモリコントローラ１０４、レジスタ１５１を有するモジュール１０５、レジスタ１０６、ＣＰＵバスモニタ１０８が相互にバスを介して接続されている。また、メモリ１４１がメモリコントローラ１０４に、スコアーボード１０７がＣＰＵバスモニタ１０８とそれぞれバスを介して接続されている。
【０００５】
テストをスタートし、マスクデバイスが記憶素子に対してライト命令を発行したときに、スコアボード１０７のライトした記憶素子に対応するデータを更新する。マスクデバイスが、リード命令を発行したときには、スコアボード１０７からリードした記憶素子に対応するデータを読み込み、検証回路の実際の記憶素子からリードしたデータとスコアボード１０７からリードしたデータを比較する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−３１２３１１号公報
【特許文献２】特開２００３−１８６９３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献２に記載の方法では、例えば、ＣＰＵ１０１の中にキャッシュメモリが存在する場合、当該キャッシュメモリとＣＰＵとの間のバスを同様に、スコアボードを作成して検証することが考えられる。しかしながら、このようにバスをまたがるデータの正当性のチェックは行えず、検証が不十分である。すなわち、異なるバスに流れるデータを検証する場合、スコアボード間でデータの比較する仕組みがないため、キャッシュコントローラが間違った動作を行っているのか、ＣＰＵが間違ったデータを書き込みしているか不明であるという問題点がある。また、キャッシュコントローラのメモリ（レジスタ１０６）からのデータ読み出し書き込みは、ブロック単位であるのに対し、ＣＰＵからのキャッシュメモリへの書き込みはアドレス単位であるので、全部のアドレスに対して確実に検証が行われているか不明な場合もある。
【課題を解決するための手段】
【０００８】
本発明に係るキャッシュメモリ検証装置は、第１のバスで接続された制御部及びキャッシュメモリを有する被試験デバイスと、前記被試験デバイスに第２のバスにより接続されるメインメモリと、前記メインメモリのアドレス、当該アドレスに対応するデータ、及び少なくとも前記制御部から前記キャッシュメモリへのライト転送を示す属性情報からなるテーブルを有し、前記第１のバス及び第２のバスに流れる前記データを監視する監視部とを有し、前記監視部は、前記制御部から前記キャッシュメモリへの書き込み転送以外であって、前記キャッシュメモリに対するライト転送又はリード転送が発生した場合に、前記第１又は第２のバスに流れるアドレス及びデータと、前記テーブルに格納されたアドレス及びデータと比較し、その一致・不一致をリアルタイムで判定するものである。
【０００９】
本発明に係るキャッシュメモリの検証方法は、第１のバスで接続された制御部及びキャッシュメモリを有する被試験デバイスの前記キャッシュメモリを検証するキャッシュメモリの検証方法であって、前記第１のバスに流れるデータ、及び前記キャッシュメモリとメインメモリを接続する第２のバスに流れるデータを、前記メインメモリのアドレス、当該アドレスに対応するデータ、及び少なくとも前記制御部から前記キャッシュメモリへのライト転送を示す属性情報からなるテーブルを参照して監視し、前記制御部から前記キャッシュメモリへの書き込み転送以外であって、前記キャッシュメモリに対するライト転送又はリード転送が発生した場合に、前記第１又は第２のバスに流れるアドレス及びデータと、前記テーブルに格納されたアドレス及びデータとリアルタイムで比較し、その一致・不一致の判定結果を出力するものである。
【００１０】
また、本発明に係るプログラムは、上述したキャッシュメモリの検証処理をコンピュータに実行させるものである。
【００１１】
本発明においては、第１及び第２のバスにおいて、制御部からキャッシュメモリへの書き込み転送以外のリード転送、又はライト転送が発生した場合、第１又は第２のバスに流れるアドレス及びデータと、テーブルに格納されたアドレス及びデータと比較し、その一致・不一致をリアルタイムで判定することができるので、キャッシュメモリの動作検証をリアルタイムで行うことができる。
【発明の効果】
【００１２】
本発明によれば、異なるバスをまたがって動作するキャッシュメモリをリアルタイムに検証することができるキャッシュメモリ検証装置、キャッシュメモリの検証方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態にかかるキャッシュメモリ検証システムを示す図である。
【図２】（ａ）及び（ｂ）は、本発明の実施の形態にかかるキャッシュメモリ検証システムのモニタ部のテーブルの一例を示す図であって、順次更新される様子を示す図である。
【図３】（ａ）及び（ｂ）は、本発明の実施の形態にかかるキャッシュメモリ検証システムのモニタ部のテーブルの一例を示す図であって、順次更新される様子を示す図である。
【図４】本発明の実施の形態にかかるキャッシュメモリ検証システムのモニタ部のテーブルの一例を示す図であって、順次更新される様子を示す図である。
【図５】本発明の実施の形態にかかるキャッシュメモリ検証システムの動作を示すフローチャートである。
【図６】特許文献１に記載のシステムを示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、ライトバック方式のキャッシュメモリに接続されるバスに流れるデータをモニタすることで、当該キャッシュメモリの動作に誤りがないかをリアルタイムに検証するキャッシュメモリ検証装置に適用したものである。
【００１５】
図１は、本発明の実施の形態にかかるキャッシュメモリ検証システムを示す図である。キャッシュメモリ検証システムは、テストボード１とデバッガ２とを有する。テストボード１は、Ｌ１バス７で接続されたＣＰＵ又はＤＳＰ（以下の説明では、ＣＰＵとする。）及びキャッシュメモリ６を有するＬＳＩ等の被試験デバイス４と、被試験デバイス４にＬ２バス８により接続されるメインメモリ３と、メインメモリ３のアドレス、当該アドレスに対応するデータ、及び少なくともＣＰＵ５からキャッシュメモリ６へのライト転送を示す属性情報からなるテーブル９１を有し、Ｌ１バス７及びＬ２バス８に流れるデータを監視するモニタ部９とを有する。
【００１６】
モニタ部９は、ＣＰＵ５からキャッシュメモリ６への書き込み転送以外であって、キャッシュメモリ６に対するライト転送又はリード転送が発生した場合に、Ｌ１バス７及びＬ２バス８に流れるアドレス及びデータと、テーブル９１に格納されたアドレス及びデータと比較し、その一致・不一致をリアルタイムで判定する。
【００１７】
すなわち、キャッシュメモリ６に接続されるＬ１バス７及びＬ２バス８のアドレス毎のデータと転送属性を備えるリスト（テーブル９１）を作成し、バスに流れるデータとテーブル９１の情報の一致をチェックすることで、リアルタイムにキャッシュコントローラ６１の動作の正当性を検証するものである。
【００１８】
ここで、本実施の形態にかかるキャッシュメモリ検証システムにおいては、キャッシュメモリの動作検証、特に、キャッシュコントローラの動作検証をその目的とする。メインメモリ３及びＣＰＵ５は、その動作が保証されたものとする。
【００１９】
次に、モニタ部９が有するテーブル９１について説明する。図２（ａ）は、テーブル９１の一例を示す図である。テーブル９１は、アドレス（ａｄｄｒｅｓｓ）データ（ｄａｔａ）及び属性の情報を有する。アドレスは、メインメモリ３のアドレスに対応する。データは、メインメモリ３のアドレスに書き込まれているデータを示す。ここで、キャッシュメモリ６は、メインメモリ３のアドレスを指定して、メインメモリ３からデータを読み出ししたり書き込みしたりする。モニタ部９は、Ｌ２バス８を監視し、Ｌ２バス８に流れるデータが、キャッシュメモリ６からメインメモリ３へのライトデータであるか、キャッシュメモリ６からメインメモリ３へのリードデータであるかを監視する。
【００２０】
キャッシュメモリ６がメインメモリ３からデータを読み出す場合は、Ｌ２バス８におけるリード転送である旨を示す属性情報（Ｌ２ＲＥＡＤ）をテーブル９１に登録する。キャッシュメモリ６がメインメモリ３にデータを書き込みする場合は、Ｌ２バス８におけるライト転送である旨を示す属性情報（Ｌ２ＷＲＩＴＥ）をテーブル９１に登録する。
【００２１】
ここで、Ｌ２バス８は、データバス、アドレスバス、コントロールバスを含むものであり、アドレスバス上のアドレスを元に、そのアドレスのデータ及び属性情報をモニタ部９は監視し、後述する方法で、テーブル９１の情報と比較することで動作検証を行う。
【００２２】
同様に、ＣＰＵ５がキャッシュメモリ６からデータを読み出す場合は、Ｌ１バス７におけるリード転送である旨を示す属性情報（Ｌ１ＲＥＡＤ）をテーブル９１に登録する。また、ＣＰＵ５がキャッシュメモリ６にデータを書き込む場合は、Ｌ１バス７におけるライト転送である旨を示す属性情報（Ｌ１ＷＲＩＴＥ）をテーブル９１に書き込む。
【００２３】
また、Ｌ１バス７もＬ２バス８と同様に、データバス、アドレスバス、コントロールバスを含むものであり、アドレスバス上のアドレスを元に、そのアドレスのデータ及び属性情報をモニタ部９は監視し、後述する方法で、テーブル９１の情報と比較することで動作検証を行う。
【００２４】
なお、上述したように、本実施の形態にかかるキャッシュメモリ検証システムは、キャッシュメモリ６の動作検証を行うものである。したがって、ＣＰＵ５がキャッシュメモリ６にデータを書き込む場合、すなわち、属性情報がＬ１ＷＲＩＴＥである場合は、その動作を検証対象としない。すなわち、属性情報が、Ｌ１ＲＥＡＤ、Ｌ２ＲＥＡＤ、Ｌ２ＷＲＩＴＥの場合を検証対象とする。
【００２５】
次に、本実施の形態にかかるキャッシュメモリ検証システムの動作について説明する。まず、検証動作開始時、ＣＰＵ５のプログラムとなるテストプログラム２１をデバッガ２からメインメモリ３にロードする。ＣＰＵ５は、リセット解除され、テストプログラム２１でのプログラムを実行する。なお、デバッガ２には、検証中逐次、又は検証後に、検証中のテーブル９１の情報などが出力される。
【００２６】
検証開始時点では、テーブル９１には、何も書き込まれていない。最初にＣＰＵ５がメインメモリ３からのデータの読み出しを指示し、メインメモリ３からキャッシュメモリ６にデータが読み出された時点で、当該読み出しアドレス、そのデータ、属性情報がテーブル９１に登録される。こうして、新しく読みだされたアドレスに対応するデータ、属性情報は、新しく読みだされる毎にテーブル９１に登録されてく。
【００２７】
モニタ部９は、それぞれのＬ１バス７、Ｌ２バス８の転送時に、転送アドレスをキーにして、アドレスに対応するデータを参照し、テーブル９１中のデータと、Ｌ１バス７、Ｌ２バス８上のデータを比較することで動作が正しく行われているかのチェックを行う。そして、チェック完了後、読みだされたデータに誤りがない場合には、その属性情報の更新を行う。
【００２８】
図２乃至図４は、テーブル９１が更新されていく様子を示す図、図５は、本実施の形態にかかるキャッシュメモリ検証システムの動作を示すフローチャートである。まず、図５を参照して、キャッシュメモリ検証システムの動作について説明する。
【００２９】
図５に示すように、モニタ部９は、Ｌ１バス７及びＬ２バス８のデータ転送を監視する。データ転送があった場合、まず、いずれのバスでデータ転送があったかを判定する（ステップＳ１）。ここで、Ｌ２バス８でデータ転送があった場合、ステップＳ６に進み、テーブル９１を参照し、アドレスをキーとし、Ｌ２バス８に流れるデータが、テーブル９１に登録されているデータと等しいか否かをチェックする（ステップＳ６）。ここで、データが一致すれば（ステップＳ７：Ｙｅｓ）、テーブル９１の属性情報を更新し、ステップＳ１に戻る。一方、データが不一致の場合、キャッシュメモリ６の動作に誤りがあったものと判断し、検証を終了する。この場合、属性情報を有するため、これらの結果をデバッガ２に出力することで、例えば、Ｌ２ＲＥＡＤでデータの不一致があった場合、キャッシュメモリ６のメインメモリ３からの読み出し動作に不具合があったことがわかる。
【００３０】
次に、ステップＳ１で、データ転送はＬ１バス７であった場合、次に当該データ転送がＬ１ＲＥＡＤであるかＬ１ＷＲＩＴＥであるかを判定する。Ｌ１ＷＲＩＴＥであった場合、すなわち、ＣＰＵ５からキャッシュメモリ６への書き込み動作である場合には、テーブル９１との照合は行わない。上述したように、本実施の形態にかかるキャッシュメモリ検証装置は、キャッシュメモリ６の動作検証を行うものであるため、ＣＰＵ５の書き込み動作に対しては検証を行わず、ステップＳ５に進む。一方、Ｌ１ＷＲＩＴＥ動作であった場合、すなわち、ＣＰＵ５からキャッシュメモリ６のデータ読み出しである場合には、アドレスをキーにして、Ｌ１バス７に流れるデータと、テーブル９１に登録してあるデータが一致するか判定する（ステップＳ３）。一致した場合は（ステップＳ４：Ｙｅｓ）、及び上述のＬ１ＷＲＩＴＥであった場合には、テーブル９１を更新し（ステップＳ５）、ステップＳ１にも取る。不一致の場合は、検証動作を終了する。
【００３１】
次に、図２乃至図４を参照してテーブル９１の更新について具体的に説明する。例えば、０番地にキャッシュミスヒットが生じ、１ブロック（アドレス０〜３）のデータがメインメモリ３からキャッシュメモリ６に読みだされた場合、すなわち、Ｌ２ＲＥＡＤが発生した場合、テーブル９１は、図２（ａ）に示す状態となる。ここで、ＣＰＵ５がリード又はライトするデータは、アドレス単位であるがキャッシュメモリ６がメインメモリ３からリード、ライトするデータはブロック単位である。本例においては、キャッシュメモリ６のメインメモリ３からのリード、ライト単位を１ブロック、４ビットであるとして説明する。ＣＰＵ５のリードがアドレス０のデータであるため、アドレス０を含むブロック（アドレス０〜３）がメインメモリ３からキャッシュメモリ６に読みだされることになる。
【００３２】
本例においては、アドレス０〜３のデータが、それぞれ５５、６６、７７、８８であったものとする。属性情報は、Ｌ２ＲＥＡＤである。
【００３３】
この後、Ｌ１バス７で、アドレス０のリード転送が発生した場合、テーブル９１は、図２（ｂ）に示す状態になる。すなわち、キャッシュメモリ６からＣＰＵ５に読みだされたＬ１バス７上のアドレス０のデータと、テーブル９１の値が比較され、一致した場合は、テーブル９１を更新する。
【００３４】
その後、Ｌ１バス７でアドレス１のライト転送が発生した場合、テーブル９１は、図３（ａ）に示す状態になる。上述したように、属性情報Ｌ１ＷＲＩＴＥの動作は、ＣＰＵ５の書き込み動作であり、検証対象外であるので、テーブル９１を使用して一致不一致の判定は行わず、当該データをアドレス０に書き込むことでテーブル９１の更新を行う。ここでは、アドレス０に新しいデータＦＦが書き込まれてテーブル９１が更新される。
【００３５】
更に、その後、Ｌ２バス８でアドレス０のライトバックが発生した場合、図３（ｂ）に示すようになる。キャッシュメモリ６とメインメモリ３との間のリード、ライトは、当該アドレスを含むブロック単位で行われる。本例では、キャッシュメモリ６から当該ブロックがメインメモリ３に書き込まれるライト転送であるため、アドレス０を含むブロック（アドレス０〜３）の全てのデータと、テーブル９１に登録されているデータとの一致不一致が判定され、一致している場合は、ブロック全体の属性情報を更新する。転送属性は、全てＬ２ＷＲＩＴＥに更新される。
【００３６】
さらに、その後、Ｌ２バス８で、アドレス０を含むブロックのリード（キャッシュフィル）が発生した場合は、テーブル９１は、図４に示す状態となる。メインメモリ３からアドレス０を含むブロックがキャッシュメモリ６に読みだされるが、この読みだされたデータと、テーブル９１に登録されているデータが一致するか否かがチェックされ、一致している場合は、テーブル９１を更新する。すなわち、属性情報をＬ２ＲＥＡＤに書き換える。
【００３７】
このように、チェックは、Ｌ１バス７又はＬ２バス８での転送アドレスをキーにして、リスト９１のデータと比較することで行われる。データがリスト９１のデータと一致したならば、ＰＡＳＳとなり、リスト９１中のデータと一致しなければＦＡＩＬとなる。
【００３８】
図５を参照して上述したように、モニタ部９がバスに流れるデータとテーブル９１を参照してチェックするタイミングは、Ｌ１バス７でＣＰＵ５のキャッシュメモリ６からの読み出し（リード）が発生したタイミング、Ｌ２バス８でキャッシュメモリ６からメインメモリ３への書き込み（ライト）が発生したタイミング、同じくＬ２バス８でキャッシュメモリ６のメインメモリ３からの読み出し（リード）が発生したタイミングの３つのタイミングである。
【００３９】
例えば、Ｌ１バス７でリードが発生した場合、Ｌ１バス７のアドレスバスに流れるアドレスをキーにして、テーブル９１のデータとの一致を検証する。このとき、当該データの属性情報が、"Ｌ１ＲＥＡＤ","Ｌ１ＷＲＩＴＥ"だった場合、Ｌ１バス７でのデータコヒーレンシのチェックがＰＡＳＳしたことを示す。
【００４０】
データが一致し、そのデータの属性が、"Ｌ２ＲＥＡＤ","Ｌ２ＷＲＩＴＥ"だった場合、Ｌ２バス８での転送データが正しく、Ｌ１バス７に到達したことのチェックがＰＡＳＳしたことを示す。
【００４１】
また、例えばＬ２バス８ライトが発生した場合、Ｌ２バス８のアドレスバスに流れるアドレスをキーに、データバスのデータと、テーブル９１のデータの一致を検証する。データが一致し、そのデータの属性情報が、"Ｌ１ＲＥＡＤ","Ｌ１ＷＲＩＴＥ"だった場合、Ｌ１バス７での転送データが正しく、Ｌ２バス８に到達することのチェックがＰＡＳＳしたことを示す。また、データが一致し、そのデータの属性情報が、"Ｌ２ＲＥＡＤ","Ｌ２ＷＲＩＴＥ"だった場合、Ｌ２バス８でのデータコヒーレンシのチェックがＰＡＳＳしたことを示す。
【００４２】
このように、本実施の形態においては、リアルタイムにキャッシュメモリ６のデータのチェックを行うことができ、キャッシュメモリ６、特に、キャッシュコントローラ６１の動作をリアルタイムで検証することができる。モニタ部９は、Ｌ１バス７及びＬ２バス８に流れるデータを、同一のテーブル９１の情報（アドレス、データ、属性情報）を更新しながら、検証を行うため、異なるバスを跨るキャッシュメモリ６の動作であっても、その検証を行うことができる。
【００４３】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。本実施の形態においては、キャッシュメモリ６に接続するバスはＬ１バス７及びＬ２バス８のみとして説明したが、キャッシュメモリ６に接続されるバスは２以上であってもよい。その場合も、モニタ部９がテーブル９１に、アドレス、データ及び属性情報を保持・更新し、キャッシュメモリ６の動作を検証することができる。
【００４４】
例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の伝送媒体を介して伝送することにより提供することも可能である。
【符号の説明】
【００４５】
１  テストボード
２  デバッガ
３  メインメモリ
４  被試験デバイス
６  キャッシュメモリ
７  バス
８  バス
９  モニタ部
１０  特開平
２１  テストプログラム
６１  キャッシュコントローラ
９１  テーブル
９１  リスト
９１  テーブル
１０２  マスタデバイス
１０４  メモリコントローラ
１０５  モジュール
１０６  レジスタ
１０７  スコアボード
１０７  スコアボード
１０８  バスモニタ
１４１  メモリ
１５１  レジスタ
【図１】
2011170446.tif 000003
【図２】
2011170446.tif 000004
【図３】
2011170446.tif 000005
【図４】
2011170446.tif 000006
【図５】
2011170446.tif 000007
【図６】
2011170446.tif 000008