(57)【特許請求の範囲】
【請求項１】
システムオンチップ内のバス上の信号を監視し、当該システムオンチップのシステム性能評価用のプロファイリングデータを収集して外部へ出力するシステム性能プロファイリング装置であって、
前記バス上の信号を監視してコマンドの発生を検出するコマンド検出部と、
前記バス上の信号を監視してデータの転送を検出するデータ検出部と、
前記コマンド検出部の検出結果を基に前記コマンドの発生回数をカウントする第１カウンタ部と、
前記データ検出部の検出結果を基にデータの転送回数をカウントする第２カウンタ部と、
システム性能評価用のプロファイリングデータの収集中は前記第１カウンタ部の第１ビット桁の値を外部へ出力し、プロファイリングデータの収集終了後に前記第１カウンタ部の前記第１ビット桁より下位のビット桁の値を外部へ出力する第１セレクタ部と、
システム性能評価用のプロファイリングデータの収集中は前記第２カウンタ部の第２ビット桁の値を外部へ出力し、プロファイリングデータの収集終了後に前記第２カウンタ部の前記第２ビット桁より下位のビット桁の値を外部へ出力する第２セレクタ部と、
を備え、
前記第１カウンタ部の第１ビット桁を設定するビット桁設定部を更に備えたシステム性能プロファイリング装置。
【請求項２】
システムオンチップ内のバス上の信号を監視し、当該システムオンチップのシステム性能評価用のプロファイリングデータを収集して外部へ出力するシステム性能プロファイリング装置であって、
前記バス上の信号を監視してコマンドの発生を検出するコマンド検出部と、
前記バス上の信号を監視してデータの転送を検出するデータ検出部と、
前記コマンド検出部の検出結果を基に前記コマンドの発生回数をカウントする第１カウンタ部と、
前記データ検出部の検出結果を基にデータの転送回数をカウントする第２カウンタ部と、
システム性能評価用のプロファイリングデータの収集中は前記第１カウンタ部の第１ビット桁の値を外部へ出力し、プロファイリングデータの収集終了後に前記第１カウンタ部の前記第１ビット桁より下位のビット桁の値を外部へ出力する第１セレクタ部と、
システム性能評価用のプロファイリングデータの収集中は前記第２カウンタ部の第２ビット桁の値を外部へ出力し、プロファイリングデータの収集終了後に前記第２カウンタ部の前記第２ビット桁より下位のビット桁の値を外部へ出力する第２セレクタ部と、
を備え、
前記第２カウンタ部の第２ビット桁を設定するビット桁設定部を更に備えたシステム性能プロファイリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大規模・多機能半導体集積回路（ＳＯＣ：System on Chip）のシステム性能評価技術に関する。
【背景技術】
【０００２】
デジタルＡＶ機器に代表される家電向けＳｏＣは、複数機能を１チップ上に搭載することによりチップ数の削減によるコスト削減を実現するだけでなく、新たに生み出されたシステム制御アーキテクチャやバスアーキテクチャを搭載することによりシステム全体の性能向上を実現することができるというメリットがある。
反面、ＳｏＣは、実物を用いた検証時にオンチップバスがＳｏＣ内に隠蔽されるためにＳｏＣのシステム性能の評価が困難になるというデメリットがある。
【０００３】
このデメリットに対して、ＳｏＣ内部のオンチップバスをＳｏＣ外部へ出力してオンチップバス上の信号を外部で観測することにより、ＳｏＣのシステム性能評価を行う手法がある（例えば、特許文献１参照。）。
ところが、この手法には、ＳｏＣ内部のオンチップバスの高速化が進むとＳｏＣ内部での配線のばらつきを抑える開発工数と難易度が激増するという問題や、外部へ出力する信号線数が膨大になり、必要な出力端子が確保できないという問題がある。
【０００４】
そこで、ＳｏＣ内部のオンチップバス上の信号そのものを観測するのではなく、バストランザクションの特定条件下のイベントの発生を観測し、イベントの発生を示すパルス信号でＳｏＣに搭載したカウンタを更新してイベント発生回数情報を取得する。そして、取得したイベント発生回数情報をＳｏＣ外部へ出力し、外部出力されたイベント発生回数情報によりＳｏＣのシステム性能評価を行う手法がある（例えば、特許文献２参照。）。
【特許文献１】特開２００２−１４９４４２号公報
【特許文献２】特許第３１５８４２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＳｏＣのシステム性能評価のためにイベントの発生を観測する期間が長くなるほどイベントの発生回数が増加することから、イベントの発生を長時間観測するためにはカウンタのリソース（カウンタビットの数）を大きくする必要がある。カウンタリソースの増大はＳｏＣの単価上昇につながるという問題がある。
また、イベント発生の観測期間中のイベント発生回数をカウンタで計数することが可能な最大数が決まっていることから、イベント発生の観測時間に制約があるという問題がある。
【０００６】
そこで、本発明は、ＳｏＣ内部に搭載され、カウンタリソースを増大することなくイベント発生回数の収集時間に制約をなくすことが可能なシステム性能プロファイリング装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明のシステム性能プロファイリング装置は、システムオンチップ内のバス上の信号を監視し、当該システムオンチップのシステム性能評価用のプロファイリングデータを収集して外部へ出力するシステム性能プロファイリング装置であって、前記バス上の信号を監視してコマンドの発生を検出するコマンド検出部と、前記バス上の信号を監視してデータの転送を検出するデータ検出部と、前記コマンド検出部の検出結果を基に前記コマンドの発生回数をカウントする第１カウンタ部と、前記データ検出部の検出結果を基にデータの転送回数をカウントする第２カウンタ部と、システム性能評価用のプロファイリングデータの収集中は前記第１カウンタ部の第１ビット桁の値を外部へ出力し、プロファイリングデータの収集終了後に前記第１カウンタ部の前記第１ビット桁より下位のビット桁の値を外部へ出力する第１セレクタ部と、システム性能評価用のプロファイリングデータの収集中は前記第２カウンタ部の第２ビット桁の値を外部へ出力し、プロファイリングデータの収集終了後に前記第２カウンタ部の前記第２ビット桁より下位のビット桁の値を外部へ出力する第２セレクタ部と、を備える。
【発明の効果】
【０００８】
上記システム性能プロファイリング装置によれば、第１セレクタ部は、プロファイリングデータの収集中は第１カウンタ部の第１ビット桁の値を外部へ出力し、収集終了後に第１カウンタ部の第１ビット桁より下位のビット桁の値を外部へ出力する。また、第２セレクタ部は、プロファイリングデータの収集中は第２カウンタ部の第２ビット桁の値を外部へ出力し、収集終了後に第２カウンタ部の第２ビット桁より下位のビット桁の値を外部へ出力する。このため、システム性能プロファイリング装置を搭載したＳｏＣの外部に第１セレクタ部が出力する第１ビット桁の値を基にカウント動作を行うカウンタと第２セレクタ部が出力する第２ビット桁の値を基にカウント動作を行うカウンタとを設けた場合には、第１カウンタ部と第２カウンタ部とを外部に設けた各カウンタと連携させることにより、計数することが可能なコマンド発生回数及びデータ転送回数が増加する。従って、ＳｏＣ内部に搭載された第１カウンタ部及び第２カウンタ部のカウンタリソースを増大することなく、第１カウンタ部及び第２カウンタ部が要因となるプロファイリングデータの収集時間の制約がなくなる。また、第１セレクタ部及び第２セレクタ部が外部への出力を切り替える構成になっているため、少ないピンの数でシステム性能プロファイリング装置を実現することができる。
【０００９】
上記システム性能プロファイリング装置において、前記第１カウンタ部の第１ビット桁を設定するビット桁設定部を更に備えるようにしてもよい。
これによれば、第１セレクタ部から外部へ出力する第１カウンタ部の第１ビット桁を変更することができる。このため、例えば、外部装置などの動作能力に応じて、少ないコマンド発生回数に基づいた発生頻度の分布を得ることができる。
【００１０】
上記システム性能プロファイリング装置において、前記第２カウンタ部の第２ビット桁を設定するビット桁設定部を更に備えるようにしてもよい。
これによれば、第２セレクタ部から外部へ出力する第２カウンタ部の第２ビット桁を変更することができる。このため、例えば、外部装置などの動作能力に応じて、少ないデータ転送回数に基づいた発生頻度の分布を得ることができる。
【００１１】
上記システム性能プロファイリング装置において、システム性能評価用のプロファイリングデータの収集開始前に発生した全てのコマンドに対するデータの転送が完了するまで、前記第２カウンタ部のカウント動作を抑止するカウント抑止部を更に備えるようにしてもよい。
これによれば、プロファイリングデータの収集開始前に発生した全てのコマンドに対するデータの転送が完了してから第２カウンタ部はデータの転送回数をカウントすることになる。このため、収集開始タイミングを任意にすることができ、平均バースト長の観点でアクセスオーバヘッドの性能評価を行うことができる。
【００１２】
上記システム性能プロファイリング装置において、前記第２セレクタ部は、システム性能評価用のプロファイリングデータの収集終了時にデータの転送が完了していないコマンドの数を、プロファイリングデータの収集終了後に前記第２ビット桁より下位のビット桁の値を出力する前又は出力した後に外部へ出力するようにしてもよい。
また、上記システム性能プロファイリング装置において、前記第１セレクタ部は、システム性能評価用のプロファイリングデータの収集終了時にデータの転送が完了していないコマンドの数を、プロファイリングデータの収集終了後に前記第１ビット桁より下位のビット桁の値を出力する前又は出力した後に外部へ出力するようにしてもよい。
【００１３】
これによれば、第２セレクタ部又は第１セレクタ部はプロファイリングデータの収集終了後に当該収集終了時にデータの転送が完了していないコマンドの数を外部へ出力する。このため、収集終了タイミングを任意にすることができ、平均バースト長の観点でアクセスオーバヘッドの性能評価を行うことができる。
上記システム性能プロファイリング装置において、前記データ検出部及び前記第２カウンタ部はシステム性能評価用のプロファイリングデータの収集開始後に発生した全てのコマンドに対するデータの転送が完了するまで処理を継続し、前記第２セレクタ部は前記全てのコマンドに対するデータの転送が完了するまでは前記第２ビット桁の値を外部へ出力し、前記全てのコマンドに対するデータの転送が完了した後に前記第２ビット桁より下位のビット桁の値を外部へ出力するようにしてもよい。
【００１４】
これによれば、全てのコマンドに対するデータの転送が完了するまでデータ転送の検出及びデータ転送回数のカウントに関する限りはプロファイリングデータの収集期間が延長されたことになる。このため、収集終了タイミングを任意にすることができ、平均バースト長の観点でアクセスオーバヘッドの性能評価を行うことができる。
上記システム性能プロファイリング装置において、前記プロファイリングデータを収集するバストランザクションの条件を設定する条件設定部を更に備え、前記第１カウンタ部は前記条件設定部により設定された条件を満たすコマンドの発生回数をカウントし、前記第２カウンタ部は前記条件設定部により設定された条件を満たすデータの転送回数をカウントするようにしてもよい。
【００１５】
これによれば、プロファイリングデータを収集するバストランザクションの条件を設定できる。このため、例えば、ライトトランザクションのみでシステム性能の評価を行うこと、リードトランザクションのみでシステム性能の評価を行うこと、などが可能になる。
【発明を実施するための最良の形態】
【００１６】
≪第１の実施の形態≫
以下、本発明の第１の実施の形態について図面を参照しつつ説明する。
本実施の形態及び後述の各実施の形態において、システム性能プロファイリング装置は、ＳｏＣ内に集積され、ＳｏＣ内のオンチップバスに発生するバストランザクションのうち所定条件のトランザクションのコマンドの発生回数及びデータの転送回数を収集し、これらの回数情報をシステム性能評価用のプロファイリングデータとして外部へ出力するものである。また、ライトトランザクションとリードトランザクションとを対象とする。
＜オンチップバス上の信号及びトークン検出＞
オンチップバス上の信号並びにコマンドトークンの成立、ライトデータトークンの成立及びリードデータトークンの成立について図１及び図２を参照しつつ説明する。図１はオンチップバス上の本実施の形態及び第２の実施の形態に関連する信号を示し、図２はコマンドトークン、ライトデータトークン及びリードデータトークンの成立条件を示す図である。
【００１７】
図１中において、（ｍ−＞ｓ）はマスタからスレーブへの信号であることを示し、（ｓ−＞ｍ）はスレーブからマスタへの信号であることを示す。
なお、図１は、アドレス0x38からの16Byteラップリードアクセス（４Byteバスで４Burstリード）、アドレス0x03からの10Byteライトアクセス（４Byteバスで４Bursライト）の例であり、後述の図８においても同じである。
（コマンドトークン）
コマンドトークン成立の検出にはコマンド要求信号ｍｃｏｍｒｅｑとコマンド受諾許可信号ｓｃｏｍａｃｃｅｐｔａｂｌｅとの２信号が用いられる。双方の信号がハイレベルのときのマスタクロック信号ｍｃｌｋの立ち上がりエッジでコマンドトークン成立を検出したとしてイベント信号（以下、コマンドイベント信号と記載する。）を生成する。
【００１８】
また、生成されたコマンドイベント信号がリードコマンドに関するものかライトコマンドに関するものであるかを区別するためにリードライト信号ｍｒｘｗが用いられる。リードライト信号ｍｒｘｗがハイレベルのときに生成されたコマンドイベント信号はリードコマンドに関するものである。また、リードライト信号ｍｒｘｗがローレベルのときに生成されたコマンドイベント信号はライトコマンドに関するものである。
（データトークン）
ライトデータトークン成立の検出にはライト有効信号ｍｗｖａｌｉｄとライトデータ受諾許可信号ｓｗｄｔａｃｃｅｐｔａｂｌｅとが用いられる。双方の信号がハイレベルのときのマスタクロック信号ｍｃｌｋの立ち上がりエッジでライトデータトークン成立を検出したとしてイベント信号（以下、ライトデータイベント信号と記載する。）を生成する。
【００１９】
リードデータトークン成立の検出にはリード有効信号ｓｒｖａｌｉｄとリードデータ受諾許可信号ｍｒｄｔａｃｃｅｐｔａｂｌｅとが用いられる。双方の信号がハイレベルのときのマスタクロック信号ｍｃｌｋの立ち上がりエッジでリードデータトークン成立を検出したとしてイベント信号（以下、リードデータイベント信号と記載する。）を生成する。
＜構成＞
本実施の形態のシステム性能プロファイリング装置の構成について図３を参照しつつ説明する。図３は本実施の形態のシステム性能プロファイリング装置の構成図である。
【００２０】
システム性能プロファイリング装置１は、ホストＩＦ（interface）１１とフィルタ設定部１２とコマンドトークン検出部１３とライトデータトークン検出部１４とリードデータトークン検出部１５とコマンドフィルタ１６とライトデータフィルタ１７とリードデータフィルタ１８とカウンタ部１９とセレクタ部２０とを備えている。
ホストＩＦ１１は自装置を外部装置と接続するためのインターフェースである。
【００２１】
フィルタ設定部１２は、ホストＩＦ１１を介して指定されたフィルタパラメータをコマンドフィルタ１６、ライトデータフィルタ１７及びリードデータフィルタ１８の夫々に設定する。フィルタパラメータとしては、ライトトランザクションのイベントのみカウント、リードトランザクションのイベントのみカウント、及びライトトランザクション及びリードトランザクションの双方のイベントのカウントの３種類がある。
【００２２】
フィルタ設定部１２は、フィルタパラメータを設定する際に、フィルタ設定マスク信号とＲ／Ｗフィルタ設定信号を利用する。各フィルタパラメータとフィルタ設定マスク信号及びＲ／Ｗフィルタ設定信号との関係を図４に示す。
なお、このフィルタ設定マスク信号とＲ／Ｗフィルタ設定信号とを用いた各イベント信号のフィルタリング処理の具体的構成については図５を参照して後述する。
【００２３】
コマンドトークン検出部１３は、コマンド要求信号ｍｃｏｍｒｅｑとコマンド受諾許可信号ｓｃｏｍａｃｃｅｐｔａｂｌｅとの双方がハイレベルのときのマスタクロックｍｃｌｋの立ち上がりエッジでコマンドトークン成立を検出したとしてパルス信号のコマンドイベント信号を生成し、生成したコマンドイベント信号をコマンドフィルタ１６へ出力する。
【００２４】
ライトデータトークン検出部１４は、ライト有効信号ｍｗｖａｌｉｄとライトデータ受諾許可信号ｓｗｄｔａｃｃｅｐｔａｂｌｅとの双方がハイレベルのときのマスタクロックｍｃｌｋの立ち上がりエッジでライトデータトークン成立を検出したとしてパルス信号のライトデータイベント信号を生成し、生成したライトデータイベント信号をライトデータフィルタ１７へ出力する。
【００２５】
リードデータトークン検出部１５は、リード有効信号ｓｒｖａｌｉｄとリードデータ受諾許可信号ｍｒｄｔａｃｃｅｐｔａｂｌｅとの双方の信号がハイレベルのときのマスタクロックｍｃｌｋの立ち上がりエッジでリードデータトークン成立を検出したとしてパルス信号のリードデータイベント信号を生成し、生成したリードデータイベント信号をリードデータフィルタ１８へ出力する。
【００２６】
コマンドフィルタ１６は、コマンドトークン検出部１３から入力されるコマンドイベント信号のうち、フィルタ設定部１２により設定されたフィルタパラメータが示す条件のコマンドのコマンドイベント信号を後段の回路ブロックへ出力する。なお、具体的なフィルタ構成は図５を参照して後述する。
ライトデータフィルタ１７は、フィルタ設定部１２により設定されたフィルタパラメータがライトトランザクションのイベントのみカウントの場合、及びライトトランザクション及びリードトランザクションの双方のイベントのカウントの場合、ライトデータトークン検出部１４から入力されるライトデータイベント信号を後段の回路ブロックへ出力する。なお、具体的なフィルタ構成は図５を参照して後述する。
【００２７】
リードデータフィルタ１８は、フィルタ設定部１２により設定されたフィルタパラメータがリードトランザクションのイベントのみカウントの場合、及びライトトランザクション及びリードトランザクションの双方のイベントのカウントの場合、リードデータトークン検出部１５から入力されるリードデータイベント信号を後段の回路ブロックへ出力する。なお、具体的なフィルタ構成は図５を参照して後述する。
【００２８】
カウンタ部１９は、コマンドカウンタ１９ａ、ライトデータカウンタ１９ｂ及びリードデータカウンタ１９ｃを有し、各カウンタはホストＩＦ１１からシステム評価用のプロファイリングデータの収集開始信号が入力されるとカウント動作を開始し、ホストＩＦ１１からプロファイリングデータの収集終了信号が入力されるとカウント動作を停止する。
コマンドカウンタ１９ａは、コマンドフィルタ１６から入力されるコマンドイベント信号の立ち上がりエッジでカウンタ値を１カウントアップする。コマンドカウンタ１９ａは、予め定められたビット桁（以下、第１出力ビット桁と記載する。）の値及び第１出力ビット桁より下位の全てのビット桁の値（以下、第１出力カウンタ値と記載する。）をコマンドセレクタ２０ａへ出力する。
【００２９】
ライトデータカウンタ１９ｂは、ライトデータフィルタ１７から入力されるライトデータイベント信号の立ち上がりエッジでカウンタ値を１カウントアップする。ライトデータカウンタ１９ｂは、予め定められたビット桁（以下、第２出力ビット桁と記載する。）の値及び第２出力ビット桁より下位の全てのビット桁の値（以下、第２出力カウンタ値と記載する。）をデータセレクタ２０ｂへ出力する。
【００３０】
リードデータカウンタ１９ｃは、リードデータフィルタ１８から入力されるリードデータイベント信号の立ち上がりエッジでカウンタ値を１カウントアップする。リードデータカウンタ１９ｃは、予め定められたビット桁（以下、第３出力ビット桁と記載する。）の値及び第３出力ビット桁より下位の全てのビット桁の値（以下、第３出力カウンタ値と記載する。）をデータセレクタ２０ｃへ出力する。
【００３１】
上記の第１出力ビット桁、第２出力ビット桁及び第３出力ビット桁は、例えば、最上位のビット桁である。
カウンタ部１９は、ホストＩＦ１１から収集開始信号が入力されると、セレクタ部２０へ第１出力ビット桁の値、第２出力ビット桁の値及び第３出力ビット桁の値の選択を示す第１選択指令信号を出力する。また、カウンタ部１９は、ホストＩＦ１１から収集終了信号が入力されると、セレクタ部２０へ第１出力カウンタ値、第２出力カウンタ値及び第３出力カウンタ値の選択を示す第２選択指令信号を出力する。
【００３２】
セレクタ部２０は、コマンドセレクタ２０ａ、ライトデータセレクタ２０ｂ及びリードデータセレクタ２０ｃを有する。
コマンドセレクタ２０ａは、カウンタ部１９から第１選択指令信号が入力されると、以降、コマンドカウンタ１９ａから入力される第１出力ビット桁の値を選択して外部へ出力する。また、コマンドセレクタ２０ａは、カウンタ部１９から第２選択指令信号が入力されると、コマンドカウンタ１９ａから入力される第１出力カウンタ値を選択して外部へ出力する。
【００３３】
ライトデータセレクタ２０ｂは、カウンタ部１９から第１選択指令信号が入力されると、以降、ライトデータカウンタ１９ｂから入力される第２出力ビット桁の値を選択して外部へ出力する。また、ライトデータセレクタ２０ｂは、カウンタ部１９ら第２選択指令信号が入力されると、ライトデータカウンタ１９ｂから入力される第２出力カウンタ値を選択して外部へ出力する。
【００３４】
リードデータセレクタ２０ｃは、カウンタ部１９から第１選択指令信号が入力されると、以降、リードデータカウンタ１９ｃから入力される第３出力ビット桁の値を選択して外部へ出力する。また、リードデータセレクタ２０ｃは、カウンタ部１９から第２選択指令信号が入力されると、リードデータカウンタ１９ｃから入力される第３出力カウンタ値を選択して外部へ出力する。
＜各フィルタの具体的構成＞
図３のコマンドフィルタ１６、ライトデータフィルタ１７及びリードデータフィルタ１８の具体的構成について図５を参照しつつ説明する。図５は各フィルタを論理回路で表した図である。
【００３５】
コマンドフィルタ１６は、ＡＮＤ回路１１１とＯＲ回路１１２とインバータ回路１１３とＥＸＯＲ回路１１４とによって構成されており、それらの接続関係は図５に示す通りである。
ライトデータフィルタ１７は、ＡＮＤ回路１２１とＯＲ回路１２２とインバータ回路１２３とによって構成されており、それらの接続関係は図５に示す通りである。
【００３６】
リードデータフィルタ１８は、ＡＮＤ回路１３１とＯＲ回路１３２とによって構成されており、それらの接続関係は図５に示す通りである。
（コマンドフィルタの回路動作）
フィルタパラメータがライトトランザクション及びリードトランザクションの双方のイベントのカウントである場合、図４に示す通りフィルタ設定マスク信号が「１」である。
【００３７】
この場合、ＯＲ回路１１２は「１」を出力してＡＮＤ回路１１１の一方の入力端子に「１」が入力される。これにより、ＡＮＤ回路１１１はコマンドトークン検出部１３が出力するコマンドイベント信号をそのまま後段のコマンドカウンタ１９ａへ出力する。これにより、コマンドカウンタ１９ａはライトトランザクション及びリードトランザクションの双方のイベントをカウントすることになる。
【００３８】
フィルタパラメータがライトトランザクションのイベントのカウントである場合、図４に示す通りフィルタ設定マスク信号が「０」、ｒ／ｗフィルタ設定信号が「０」（ライトコマンドであることを示している場合）である。
この場合、フィルタ対象信号ｍｒｘｗが「０」のとき、ＥＸＯＲ回路１１４は「０」を出力し、インバータ回路１１３は「１」を出力する。ＯＲ回路１１２は「１」を出力してＡＮＤ回路１１１の一方の入力端子に「１」が入力される。これにより、ＡＮＤ回路１１１はコマンドトークン検出部１３が出力するコマンドイベント信号をそのまま後段のコマンドカウンタ１９ａへ出力する。
【００３９】
また、フィルタ対象信号ｍｒｘｗが「１」のとき、ＥＸＯＲ回路１１４は「１」を出力し、インバータ回路１１３は「０」を出力する。ＯＲ回路１１２は「０」を出力してＡＮＤ回路１１１の一方の入力端子に「０」が入力される。これにより、ＡＮＤ回路１１１はコマンドトークン検出部１３が出力するコマンドイベント信号にマスクをかけて、マスクをかけた信号（「０」：ローレベル）を後段のコマンドカウンタ１９ａへ出力する。
【００４０】
これにより、コマンドカウンタ１６ａはライトトランザクションのイベントのみカウントすることになる。
フィルタパラメータがリードトランザクションのイベントのカウントである場合、図４に示す通りフィルタ設定マスク信号が「０」、ｒ／ｗフィルタ設定信号が「１」（リードコマンドであることを示している場合）である。
【００４１】
この場合、フィルタ対象信号ｍｒｘｗが「１」のとき、ＥＸＯＲ回路１１４は「０」を出力し、インバータ回路１１３は「１」を出力する。ＯＲ回路１１２は「１」を出力してＡＮＤ回路１１１の一方の入力端子に「１」が入力される。これにより、ＡＮＤ回路１１１はコマンドトークン検出部１３が出力するコマンドイベント信号をそのまま後段のコマンドカウンタ１９ａへ出力する。
【００４２】
また、フィルタ対象信号ｍｒｘｗが「０」のとき、ＥＸＯＲ回路１１４は「１」を出力し、インバータ回路１１３は「０」を出力する。ＯＲ回路１１２は「０」を出力してＡＮＤ回路１１１の一方の入力端子に「０」が入力される。これにより、ＡＮＤ回路１１１はコマンドトークン検出部１３が出力するコマンドイベント信号にマスクをかけて、マスクをかけた信号（「０」：ローレベル）を後段のコマンドカウンタ１９ａへ出力する。
【００４３】
これにより、コマンドカウンタ１６ａはリードトランザクションのイベントのみカウントすることになる。
（ライトデータフィルタの回路動作）
フィルタパラメータがライトトランザクション及びリードトランザクションの双方のイベントのカウントである場合、図４に示す通りフィルタ設定マスク信号が「１」である。
【００４４】
この場合、ＯＲ回路１２２は「１」を出力してＡＮＤ回路１２１の一方の入力端子に「１」が入力される。これにより、ＡＮＤ回路１２１はライトデータトークン検出部１４が出力するライトデータイベント信号をそのまま後段のライトデータカウンタ１９ｂへ出力する。これにより、ライトデータカウンタ１９ｂはライトトランザクションのイベントをカウントすることになる。
【００４５】
フィルタパラメータがライトトランザクションのイベントのカウントである場合、図４に示す通りフィルタ設定マスク信号が「０」、ｒ／ｗフィルタ設定信号が「０」である。
この場合、インバータ回路１２３は「１」を出力し、ＯＲ回路１２２は「１」を出力してＡＮＤ回路１２１の一方の入力端子に「１」が入力される。これにより、ＡＮＤ回路１２１はライトデータトークン検出部１４が出力するライトデータイベント信号をそのまま後段のライトデータカウンタ１９ｂへ出力する。これにより、ライトデータカウンタ１９ｂはライトトランザクションのイベントをカウントすることになる。
【００４６】
フィルタパラメータがリードトランザクションのイベントのカウントである場合、図４に示す通りフィルタ設定マスク信号が「０」、ｒ／ｗフィルタ設定信号が「１」である。
この場合、インバータ回路１２３は「０」を出力し、ＯＲ回路１２２は「０」を出力してＡＮＤ回路１２１の一方の入力端子に「０」が入力される。これにより、ＡＮＤ回路１２１はライトデータトークン検出部１４が出力するライトデータイベント信号にマスクをかけて、マスクをかけた信号（「０」：ローレベル）を後段のライトデータカウンタ１９ｂへ出力する。
【００４７】
これにより、ライトデータカウンタ１９ｂはライトトランザクションのイベントをカウントしなくなる。
（リードデータフィルタの回路動作）
フィルタパラメータがライトトランザクション及びリードトランザクションの双方のイベントのカウントである場合、図４に示す通りフィルタ設定マスク信号が「１」である。
【００４８】
この場合、ＯＲ回路１３２は「１」を出力してＡＮＤ回路１３１の一方の入力端子に「１」が入力される。これにより、ＡＮＤ回路１３１はリードデータトークン検出部１５が出力するリードデータイベント信号をそのまま後段のリードデータカウンタ１９ｃへ出力する。これにより、リードデータカウンタ１９ｃはリードトランザクションのイベントをカウントすることになる。
【００４９】
フィルタパラメータがリードトランザクションのイベントのカウントである場合、図４に示す通りフィルタ設定マスク信号が「０」、ｒ／ｗフィルタ設定信号が「１」である。
この場合、ＯＲ回路１３２は「１」を出力してＡＮＤ回路１３１の一方の入力端子に「１」が入力される。これにより、ＡＮＤ回路１３１はリードデータトークン検出部１５が出力するリードデータイベント信号をそのまま後段のリードデータカウンタ１９ｃへ出力する。これにより、リードデータカウンタ１９ｃはリードトランザクションのイベントをカウントすることになる。
【００５０】
フィルタパラメータがライトトランザクションのイベントのカウントである場合、図４に示す通りフィルタ設定マスク信号が「０」、ｒ／ｗフィルタ設定信号が「０」である。
この場合、ＯＲ回路１３２は「０」を出力してＡＮＤ回路１３１の一方の入力端子に「０」が入力される。これにより、ＡＮＤ回路１３１はリードデータトークン検出部１５が出力するリードデータイベント信号にマスクをかけて、マスクをかけた信号（「０」：ローレベル）を後段のリードデータカウンタ１９ｃへ出力する。
【００５１】
これにより、リードデータカウンタ１９ｃはリードトランザクションのイベントをカウントしなくなる。
＜動作＞
図３に示したシステム性能プロファイリング装置１の動作について説明する。
外部装置からホストＩＦ１１を介してフィルタ設定部１２にフィルタパラメータの情報が入力され、フィルタ設定部１２はコマンドフィルタ１６、ライトデータフィルタ１７及びリードデータフィルタ１８にフィルタパラメータを設定する。また、外部装置からホストＩＦ１１を介してカウンタ部１９にプロファイリングデータの収集開始信号が入力され、カウンタ部１９の各部はカウント動作を開始し、カウンタ部１９は上述した第１選択指令信号をセレクタ部２０へ出力する。
【００５２】
これにより、コマンドセレクタ２０ａはコマンドカウンタ１９ａから入力される第１出力ビット桁の値を選択して外部へ出力する。ライトデータセレクタ２０ｂはライトデータカウンタ１９ｂから入力される第２出力ビット桁の値を選択して外部へ出力する。リードデータセレクタ２０ｃはリードデータカウンタ１９ｃから入力される第３出力ビット桁の値を選択して外部へ出力する。この状態が継続する。
【００５３】
コマンドトークン検出部１３、ライトデータトークン検出部１４及びリードデータトークン検出部１５は、夫々、コマンドトークンの検出、ライトデータトークンの検出及びリードデータトークンの検出を行う。コマンドフィルタ１６、ライトデータフィルタ１７及びリードデータフィルタ１８は、夫々、設定されたフィルタパラメータに基づくフィルタリング処理を行い、コマンドイベント信号、ライトデータイベント信号及びリードデータイベント信号を後段の回路ブロックへ出力する。
【００５４】
そして、コマンドカウンタ１９ａ、ライトデータカウンタ１９ｂ及びリードデータカウンタ１９ｃは夫々コマンドイベント信号、ライトデータイベント信号及びリードデータイベント信号に基づくカウント動作を行う。
コマンドセレクタ２０ａ、ライトデータセレクタ２０ｂ及びリードデータセレクタ２０ｃは、夫々、コマンドカウンタ１９ａの第１出力ビット桁の値、ライトデータカウンタ１９ｂの第２出力ビット桁の値及びリードデータカウンタ１９ｃの第３出力ビット桁の値を選択して外部へ出力する。
【００５５】
外部装置からホストＩＦ１１を介してカウンタ部１９に収集終了信号が入力されると、カウンタ部１９の各部はカウント動作を停止し、カウンタ部１９は上述した第２選択指令信号をセレクタ部２０へ出力する。
これにより、コマンドセレクタ２０ａはコマンドカウンタ１９ａから入力されている第１出力カウンタ値を選択して外部へ出力する。ライトデータセレクタ２０ｂはライトデータカウンタ１９ｂから入力されている第２出力カウンタ値を選択して外部へ出力する。リードデータセレクタ２０ｃはリードデータカウンタ１９ｃから入力されている第３出力カウンタ値を選択して外部へ出力する。
≪第２の実施の形態≫
以下、本発明の第２の実施の形態について図面を参照しつつ説明する。
【００５６】
第２の実施の形態は、第１の実施の形態のシステムプロファイリング装置１にシステム性能評価用のプロファイリングデータの収集期間中に外部へ出力する各カウンタのビット桁を変更する機構を加えたものである。
＜構成＞
本実施の形態のシステム性能プロファイリング装置の構成について図６を参照しつつ説明する。図６は本実施の形態のシステム性能プロファイリング装置の構成図である。なお、第２の実施の形態において、第１の実施の形態と同じ構成要素には同じ符号を付し、その説明が適用できるため説明を省略する。
【００５７】
システム性能プロファイリング装置１ａは、ホストＩＦ１１とフィルタ設定部１２とコマンドトークン検出部１３とライトデータトークン検出部１４とリードデータトークン検出部１５とコマンドフィルタ１６とライトデータフィルタ１７とリードデータフィルタ１８とカウンタ部１９とセレクタ部２０とビット桁設定部２１を備える。
ビット桁設定部２１は、コマンドカウンタ１９ａの第１出力ビット桁をホストＩＦ１１を介して指定されたビット桁に設定する。また、ビット桁設定部２１は、ライトデータカウンタ１９ｂの第２出力ビット桁をホストＩＦ１１を介して指定されたビット桁に設定する。さらに、ビット桁設定部２１は、リードデータカウンタ１９ｃの第３出力ビット桁をホストＩＦ１１を介して指定されたビット桁に設定する。なお、ビット桁設定部２１が設定する各カウンタのビット桁は必ず同じビット桁である必要はない。
【００５８】
コマンドカウンタ１９ａは、ビット桁設定部２１により設定された第１出力ビット桁の値と第１出力ビット桁より下位の全てのビット桁の値（第１カウンタ値）をコマンドセレクタ２０ａへ出力する。
ライトデータカウンタ１９ｂは、ビット桁設定部２１により設定された第２出力ビット桁の値と第２出力ビット桁より下位の全てのビット桁の値（第２カウンタ値）をライトデータセレクタ２０ｂへ出力する。
【００５９】
リードデータカウンタ１９ｃは、ビット桁設定部２１により設定された第３出力ビット桁の値と第３出力ビット桁より下位の全てのビット桁の値（第３カウンタ値）をリードデータセレクタ２０ｃへ出力する。
≪第３の実施の形態≫
以下、本発明の第３の実施の形態について図面を参照しつつ説明する。
【００６０】
第３の実施の形態は、第２の実施の形態のシステムプロファイリング装置１ａに、システム性能評価用のプロファイリングデータの収集期間中に発生したコマンドに対するデータトークンのみ各データカウンタでカウントする機構、及び収集期間終了後にデータ転送が完了していないコマンド数を外部へ出力する機構を加えたものである。
また、システムプロファイリング装置１ａを集積したＳｏＣはパイプラインプロトコルを搭載しており、第４の実施の形態においても同じである。
＜概要＞
本実施の形態の概要について図７を参照しつつ説明する。図７は本実施の形態の概要を説明するための図である。
【００６１】
本実施の形態のシステム性能プロファイリング装置では、システム性能評価用のプロファイリングデータの収集開始前に発生したコマンドに対するデータＤＡ、ＤＢ、ＤＣを各データカウンタでカウントせず、収集開始後に発生したコマンドＣ１に対するデータＤ１から各データカウンタでカウントする。
そして、収集終了時にデータの転送が完了していないコマンドＣＡ、ＣＢの数を外部へ出力する。
＜オンチップバス上の信号＞
オンチップバス上の信号について図８を参照しつつ説明する。図８は本実施の形態及び第４の実施の形態に関連したオンチップバス上の信号を示す図である。
【００６２】
本実施の形態及び第４の実施の形態では、第１及び第２の実施の形態で利用したオンチップバス上の信号に加え、さらにオンチップバス上のリード完了信号及びライト完了信号を利用する。
＜構成＞
本実施の形態のシステム性能プロファイリング装置の構成について図９を参照しつつ説明する。図９は本実施の形態のシステム性能プロファイリング装置の構成図である。なお、第３の実施の形態において、第１及び第２の各実施の形態と同じ構成要素には同じ符号を付し、その説明が適用できるため説明を省略する。
【００６３】
システム性能プロファイリング装置１ｂは、ホストＩＦ１１とフィルタ設定部１２とコマンドトークン検出部１３とライトデータトークン検出部１４とリードデータトークン検出部１５とコマンドフィルタ１６とライトデータフィルタ１７とリードデータフィルタ１８とコマンド世代管理部３１とデータ世代管理部３２と先行コマンド世代処理部３３と残留コマンド世代処理部３４とライトマスク部３５とリードマスク部３６とカウンタ部１９とセレクタ部３７とビット桁設定部２１を備える。
【００６４】
コマンド世代管理部３１は、コマンド要求信号ｍｃｏｍｒｅｑがハイレベル、コマンド受諾許可信号ｓｃｏｍａｃｃｅｐｔａｂｌｅがハイレベル、及びリードライト信号ｍｒｘｗのハイレベルのときのマスタクロックｍｃｌｋの立ち上がりエッジでリードコマンドを検出したとしてリードコマンドイベント信号を発生し、内部に備えるリードコマンド用のカウンタでリードコマンドイベント信号の発生数をカウントする。
【００６５】
また、コマンド世代管理部３１は、コマンド要求信号ｍｃｏｍｒｅｑがハイレベル、コマンド受諾許可信号ｓｃｏｍａｃｃｅｐｔａｂｌｅがハイレベル、及びリードライト信号ｍｒｘｗのローレベルのときのマスタクロックｍｃｌｋの立ち上がりエッジでライトコマンドを検出したとしてライトコマンドイベント信号を発生し、内部に備えるライトコマンド用のカウンタでライトコマンドイベント信号の発生数をカウントする。
【００６６】
なお、コマンド世代管理部３１はプロファイリングデータの収集開始前から動作している。
データ世代管理部３２は、リード完了信号の立ち上がりエッジを内部に備えるリードデータ用のカウンタでカウントし、ライト完了信号の立ち上がりエッジを内部に備えるライトデータ用のカウンタでカウントする。なお、データ世代管理部３２はプロファイリングデータの収集開始前から動作している。
【００６７】
先行コマンド世代処理部３３は、ホストＩＦ１１を介してプロファイリングデータの収集開始信号が入力されると、当該収集開始信号が入力された時点のコマンド世代管理部３１のリードコマンド用のカウンタのカウンタ値（以下、先行リードコマンド比較値と記載する。）とライトコマンド用のカウンタのカウンタ値（以下、先行ライトコマンド比較値と記載する。）とを取り込み、内部に保持する。
【００６８】
先行コマンド世代処理部３３は、データ世代管理部３２のライトデータ用のカウンタのカウンタ値が始めて内部保持した先行ライトコマンド比較値に一致するまで（収集開始前に発生した全てのライトコマンドに対するデータ転送が完了するまで）、ライトマスク部３５でライトデータイベント信号にマスクをかけるためにローレベルの信号をライトマスク部３５へ出力し、一致後はライトマスク部３５でライトデータイベント信号にマスクをかけないようにするためにハイレベルの信号をライトマスク部３５へ出力する。
【００６９】
先行コマンド世代処理部３３は、データ世代管理部３２のリードデータ用のカウンタのカウンタ値が始めて内部保持した先行リードコマンド比較値に一致するまで（収集開始前に発生した全てのリードコマンドに対するデータ転送が完了するまで）、リードマスク部３５でリードデータイベント信号にマスクをかけるためにローレベルの信号をリードマスク部３６へ出力し、一致後はリードマスク部３６でリードデータイベント信号にマスクをかけないようにするためにハイレベルの信号をリードマスク部３６へ出力する。
【００７０】
残留コマンド世代処理部３４は、フィルタパラメータがライトトランザクション及びリードトランザクションの双方のイベントのカウントである場合、及びフィルタパラメータがリードトランザクションのイベントのカウントである場合は次の処理を行う。
残留コマンド世代処理部３４は、ホストＩＦ１１を介してプロファイリングデータの収集終了信号が入力されると、当該収集終了信号が入力された時点のコマンド世代管理部３１のリードコマンド用のカウンタのカウンタ値からデータ世代管理部３２のリードデータ用のカウンタのカウンタ値を減算する。そして、残留コマンド世代処理部３４は、減算値（以下、残留リードコマンド数と記載する。）をリードデータセレクタ３７ｃへ出力する。
【００７１】
また、残留コマンド世代処理部３４は、フィルタパラメータがライトトランザクション及びリードトランザクションの双方のイベントのカウントである場合、及びフィルタパラメータがライトトランザクションのイベントのカウントである場合は次の処理を行う。
残留コマンド世代処理部３４は、ホストＩＦ１１を介してプロファイリングデータの収集終了信号が入力されると、当該収集終了信号が入力された時点のコマンド世代管理部３１のライトコマンド用のカウンタのカウンタ値からデータ世代管理部３２のライトデータ用のカウンタのカウンタ値を減算する。そして、残留コマンド世代処理部３４は、減算値（以下、残留ライトコマンド数と記載する。）をライトデータセレクタ３７ｂへ出力する。
【００７２】
ライトマスク部３５は、先行コマンド世代処理部３３からローレベルの信号が入力されている期間はライトデータイベント信号にマスクをかけてローレベルにし、後段の回路ブロックへ出力する。また、ライトマスク部３５は、先行コマンド世代処理部３３からハイレベルの信号が入力されている期間はライトデータイベント信号をそのまま後段の回路ブロックへ出力する。
【００７３】
リードマスク部３６は、先行コマンド世代処理部３３からローレベルの信号が入力されている期間はリードデータイベント信号にマスクをかけてローレベルにし、後段の回路ブロックへ出力する。また、リードマスク部３６は、先行コマンド世代処理部３３からハイレベルの信号が入力されている期間はリードデータイベント信号をそのまま後段の回路ブロックへ出力する。
【００７４】
セレクタ部３７は、コマンドセレクタ２０ａ、ライトデータセレクタ３７ｂ及びリードデータセレクタ３７ｃを有する。
ライトデータセレクタ３７ｂは、カウンタ部１９から第１選択指令信号が入力されると、以降、ライトデータカウンタ１９ｂから入力される第２出力ビット桁の値を選択して外部へ出力する。また、ライトデータセレクタ３７ｂは、カウンタ部１９から第２選択指令信号が入力されると、ライトデータカウンタ１９ｂから入力される第２出力カウンタ値を選択して外部へ出力し、続いて、残留コマンド世代処理部３４から入力される残留ライトコマンド数を選択して外部へ出力する。
【００７５】
リードデータセレクタ３７ｃは、カウンタ部１９から第１選択指令信号が入力されると、以降、リードデータカウンタ１９ｃから入力される第３出力ビット桁の値を選択して外部へ出力する。また、リードデータセレクタ３７ｃは、カウンタ部１９から第２選択指令信号が入力されると、リードデータカウンタ１９ｃから入力される第３出力カウンタ値を選択して外部へ出力し、続いて、残留コマンド世代処理部３４から入力される残留リードコマンド数を選択して外部へ出力する。
＜動作＞
図９を参照しつつ説明したシステム性能プロファイリング装置の動作の概要について説明する。
【００７６】
システム性能評価用のプロファイリングデータの収集開始前からコマンド世代管理部３１及びデータ世代管理部３２は動作している。
収集開始信号が入力されることにより、カウンタ部１９は動作を開始し、カウンタ部１９はセレクタ部３７へ第１選択指令信号を出力する。セレクタ部３７に第１選択指令信号が入力されると、コマンドセレクタ２０ａ、ライトデータセレクタ３７ａ及びリードデータセレクタ３７ｃは、夫々、コマンドカウンタ１９ａの第１出力ビット桁の値、ライトデータカウンタ１９ｂの第２出力ビット桁の値及びリードデータカウンタ１９ｃの第３出力ビット桁の値を選択して外部へ出力する。
【００７７】
先行コマンド世代処理部３３は収集開始前に発生した全てのライトコマンドに対するデータ転送が完了するまでローレベルの信号をライトマスク部３５へ出力し、ライトマスク部３５はライトイベント信号にマスクをかける。その後、先行コマンド世代処理部３３は収集開始前に発生した全てのライトコマンドに対するデータ転送が完了するとハイレベルの信号をライトマスク部３５へ出力し、ライトマスク部３５はライトイベント信号をそのまま後段の回路ブロックへ出力する。
【００７８】
また、先行コマンド世代処理部３３は収集開始前に発生した全てのリードコマンドに対するデータ転送が完了するまでローレベルの信号をリードマスク部３６へ出力し、リードマスク部３６はライトイベント信号にマスクをかける。その後、先行コマンド世代処理部３３は収集開始前に発生した全てのリードコマンドに対するデータ転送が完了するとハイレベルの信号をリードマスク部３６へ出力し、リードマスク部３６はライトイベント信号をそのまま後段の回路ブロックへ出力する。
【００７９】
残留コマンド世代処理部３４は、収集終了信号が入力されることにより、残留ライトコマンド数と残留リードコマンド数を算出する。また、カウンタ部１９は、収集終了信号が入力されることにより、カウント動作を停止し、カウンタ部１９はセレクタ部３７へ第２選択指令信号を出力する。
セレクタ部３７に第２選択指令信号が入力されると、コマンドセレクタ２０ａはコマンドカウンタ１９ａの第１出力カウンタ値を選択して外部へ出力する。ライトデータセレクタ３７ｂはライトデータカウンタ１９ｂの第２出力カウンタ値を選択して外部へ出力し、続いて残留ライトコマンド数を選択して外部へ出力する。リードデータセレクタ３７ｃはリードデータカウンタ１９ｃの第３出力カウンタ値を選択して外部へ出力し、続いて残留リードコマンド数を選択して出力する。
≪第４の実施の形態≫
以下、本発明の第４の実施の形態について図面を参照しつつ説明する。
【００８０】
第３の実施の形態ではシステム性能評価用のプロファイリングデータの収集終了時にデータ転送が完了していないコマンドの数を外部に出力するのに対して、本実施の形態では収集終了時にデータ転送が完了していないコマンドがあればそのコマンドに対するデータ応答が完了するまでデータトークン成立の検出及びそれに基づくデータイベント信号のカウント動作を継続する。
＜概要＞
本実施の形態の概要について図１０を参照しつつ説明する。図１０は本実施の形態の概要を説明するための図である。
【００８１】
本実施の形態のシステム性能プロファイリング装置では、システム性能評価用のプロファイリングデータの収集開始前に発生したコマンドに対するデータｄＡ、ｄＢ、ｄＣを各データカウンタでカウントせず、収集開始後に発生したコマンドｃ１に対するデータｄ１から各データカウンタでカウントする。
そして、収集開始後に発生したコマンドのうち収集終了時にデータ転送が完了していないコマンドｃ１０、ｃ１１に対するデータｄ１０、ｄ１１が検出された場合に各データカウンタはカウンタ動作を停止する。
＜構成＞
本実施の形態のシステム性能プロファイリング装置の構成について図１１を参照しつつ説明する。図１１は本実施の形態のシステム性能プロファイリング装置の構成図である。なお、第４の実施の形態において、第１から第３の各実施の形態と同じ構成要素には同じ符号を付し、その説明が適用できるため説明を省略する。
【００８２】
システム性能プロファイリング装置１ｃは、ホストＩＦ１１とフィルタ設定部１２とコマンドトークン検出部１３とライトデータトークン検出部１４とリードデータトークン検出部１５とコマンドフィルタ１６とライトデータフィルタ１７とリードデータフィルタ１８とコマンド世代管理部３１とデータ世代管理部３２と先行コマンド世代処理部３３と残留コマンド世代処理部４１とライトマスク部３５とリードマスク部３６とカウンタ部４２とセレクタ部２０とビット桁設定部２１を備える。
【００８３】
残留コマンド世代処理部４１は、フィルタパラメータがライトトランザクション及びリードトランザクションの双方のイベントのカウントである場合、及びフィルタパラメータがリードトランザクションのイベントのカウントである場合は次の処理を行う。
残留コマンド世代処理部４１は、ホストＩＦ１１を介してプロファイリングデータの収集終了信号が入力されると、当該収集終了信号が入力された時点のコマンド世代管理部３１のリードコマンド用のカウンタのカウンタ値（以下、残留リードコマンド比較値と記載する。）を取り込み、内部に保持する。そして、残留コマンド世代処理部４１は、データ世代管理部３２のリードデータ用のカウンタのカウンタ値が始めて内部保持した残留リードコマンド比較値に一致したとき（収集終了前に発生した全てのリードコマンドに対するデータ転送が完了したとき）、カウンタ部４２にリードデータカウンタ停止信号を出力する。また、残留コマンド世代処理部４１は、ホストＩＦ１１を介して収集終了信号が入力されると、カウンタ部４２にライトデータカウンタ停止信号を出力する。
【００８４】
残留コマンド世代処理部４１は、フィルタパラメータがライトトランザクション及びリードトランザクションの双方のイベントのカウントである場合、及びフィルタパラメータがライトトランザクションのイベントのカウントである場合は次の処理を行う。
残留コマンド世代処理部４１は、ホストＩＦ１１を介してプロファイリングデータの収集終了信号が入力されると、当該収集終了信号が入力された時点のコマンド世代管理部３１のライトコマンド用のカウンタのカウンタ値（以下、残留ライトコマンド比較値と記載する。）を取り込み、内部に保持する。そして、残留コマンド世代処理部４１は、データ世代管理部３２のライトデータ用のカウンタのカウンタ値が始めて内部保持した残留ライトコマンド比較値に一致したとき（収集終了前に発生した全てのライトコマンドに対するデータ転送が完了したとき）、カウンタ部４２にライトデータカウンタ停止信号を出力する。また、残留コマンド世代処理部４１は、ホストＩＦ１１を介して収集終了信号が入力されると、カウンタ部４２にリードデータカウンタ停止信号を出力する。
【００８５】
カウンタ部４２は、コマンドカウンタ１９ａ、ライトデータカウンタ４２ｂ及びリードデータカウンタ４２ｃを有する。但し、ライトデータカウンタ４２ｂ及びリードカウンタ４２ｃは、夫々、カウント動作停止タイミングを除いてライトデータカウンタ１９ｂ及びリードデータカウンタ１９ｃと同じである。
ライトデータカウンタ４２ｂは残留コマンド世代処理部４１からライトデータカウンタ停止信号が入力されるとカウント動作を停止する。リードデータカウンタ４２ｃは残留コマンド世代処理部４１からリードデータカウンタ停止信号が入力されるとカウント動作を停止する。
【００８６】
カウンタ部４２は、ホストＩＦ１１から収集開始信号が入力されると、セレクタ部２０へ第１選択指令信号を出力する。カウンタ部４２は、ホストＩＦ１１から収集終了信号が入力され、残留コマンド世代処理部４１からライトデータカウンタ停止信号及びリードデータカウンタ停止信号が入力されるとセレクタ部２０へ第２選択指令信号を出力する。
＜動作＞
図１１を参照しつつ説明したシステム性能プロファイリング装置の動作の概要について説明する。
【００８７】
システム性能評価用のプロファイリングデータの収集開始前からコマンド世代管理部３１及びデータ世代管理部３２は動作している。
収集開始信号が入力されることにより、カウンタ部４２は動作を開始し、カウンタ部４２はセレクタ部２０へ第１選択指令信号を出力する。セレクタ部２０に第１選択指令信号が入力されると、コマンドセレクタ２０ａ、ライトデータセレクタ２０ａ及びリードデータセレクタ２０ｃは、夫々、コマンドカウンタ１９ａの第１出力ビット桁の値、ライトデータカウンタ４２ｂの第２出力ビット桁の値及びリードデータカウンタ４２ｃの第３出力ビット桁の値を選択して外部へ出力する。
【００８８】
先行コマンド世代処理部３３は収集開始前に発生した全てのライトコマンドに対するデータ転送が完了するまでローレベルの信号をライトマスク部３５へ出力し、ライトマスク部３５はライトイベント信号にマスクをかける。その後、先行コマンド世代処理部３３は収集開始前に発生した全てのライトコマンドに対するデータ転送が完了するとハイレベルの信号をライトマスク部３５へ出力し、ライトマスク部３５はライトイベント信号をそのまま後段の回路ブロックへ出力する。
【００８９】
また、先行コマンド世代処理部３３は収集開始前に発生した全てのリードコマンドに対するデータ転送が完了するまでローレベルの信号をリードマスク部３６へ出力し、リードマスク部３６はライトイベント信号にマスクをかける。その後、先行コマンド世代処理部３３は収集開始前に発生した全てのリードコマンドに対するデータ転送が完了するとハイレベルの信号をリードマスク部３６へ出力し、リードマスク部３６はライトイベント信号をそのまま後段の回路ブロックへ出力する。
【００９０】
カウンタ部４２は、収集終了信号が入力されると、コマンドカウンタ１９ａはカウント動作を停止する。
残留コマンド世代処理部４１は、収集終了信号が入力される前に発生した全てのライトコマンドに対するデータ転送が完了するとカウンタ部４２へライトデータカウント停止信号を出力し、ライトデータカウンタ４２ｂはカウント動作を停止する。
【００９１】
また、残留コマンド世代処理部４１は、収集終了信号が入力される前に発生した全てのリードコマンドに対するデータ転送が完了するとカウンタ部４２へリードデータカウント停止信号を出力し、リードデータカウンタ４２ｃはカウント動作を停止する。
カウンタ部４２は収集終了信号、ライトデータカウント停止信号及びリードデータカウント停止信号の全てが入力された後、セレクタ部２０へ第２選択指令信号を出力する。
【００９２】
セレクタ部２０に第２選択指令信号が入力されると、コマンドセレクタ２０ａはコマンドカウンタ１９ａの第１出力カウンタ値を選択して外部へ出力する。ライトデータセレクタ２０ｂはライトデータカウンタ４２ｂの第２出力カウンタ値を選択して外部へ出力する。リードデータセレクタ２０ｃはリードデータカウンタ４２ｃの第３出力カウンタ値を選択して外部へ出力する。
≪補足≫
（１）各実施の形態では、バストランザクションのうちライトトランザクション及びリードトランザクションを例に挙げて説明したが、これに限らず、他のトランザクションにも本発明を適用することができる。
（２）各実施の形態では、セレクタ部はカウンタ部から第２選択指令信号が入力されると、各セレクタは自動的に第１出力カウンタ値、第２出力カウンタ値及び第３カウンタ値を選択して外部へ出力する場合を例に挙げて説明したが、これに限らず、作業者が利用する外部装置からの指示信号に基づいて各セレクタは第１出力カウンタ値、第２出力カウンタ値及び第３カウンタ値を選択して外部へ出力するようにしてもよい。
（３）第３の実施の形態では、ライトデータセレクタ３７ｂは第２出力カウンタ値を外部へ出力してから残留リードコマンド数を外部へ出力する場合を例に挙げて説明したが、これに限らず、その逆であっても良い。また、リーダデータセレクタ３７ｃにおいても同じである。
（４）各実施の形態では、コマンドカウンタは第１出力ビット桁より下位の全てのビット桁の値をコマンドセレクタへ出力する場合を説明したが、これに限らず、第１出力ビット桁より下位の全てのビット桁を含むようにしてコマンドセレクタへ出力するようにしてもよい。また、ライトデータカウンタ及びリードデータカウンタにおいても同じである。
（５）第３の実施の形態では、残留ライトコマンド数及び残留リードコマンド数を夫々ライトデータセレクタ３７ｂ及びリードデータセレクタ３７ｃから出力する場合を説明したが、これに限らず、残留コマンド世代処理部３４が残留ライトコマンド数及び残留リードコマンド数をコマンドセレクタ２０ａへ出力するようにし、コマンドセレクタ２０ａが収集終了後に、第１出力カウンタ値を出力した後、或いは、第１出力カウンタ値を出力する前に、残留ライトコマンド数及び残留リードコマンド数を外部に出力するようにしてもよい。
【産業上の利用可能性】
【００９３】
本発明は、デジタルＡＶ機器向けシステムＬＳＩなどの開発時及び商品レベルでのシステム性能評価に利用することができる。
【図面の簡単な説明】
【００９４】
【図１】オンチップバス上の第１及び第２の実施の形態に関連する信号を示す図。
【図２】トークンの成立条件を示す図。
【図３】第１の実施の形態のシステム性能プロファイリング装置の構成図。
【図４】図３のフィルタ設定部が出力する各信号を示す図。
【図５】図３の各フィルタを論理回路で表した図。
【図６】第２の実施の形態のシステム性能プロファイリング装置の構成図。
【図７】第３の実施の形態の概要を説明するための図。
【図８】オンチップバス上の第３及び第４の実施の形態で関連する信号を示す図。
【図９】第３の実施の形態のシステム性能プロファイリング装置の構成図。
【図１０】第４の実施の形態の概要を説明するための図。
【図１１】第４の実施の形態のシステム性能プロファイリング装置の構成図。
【符号の説明】
【００９５】
１  システム性能プロファイリング装置
１２  フィルタ設定部
１３  コマンドトークン検出部
１４  ライトデータトークン検出部
１５  リードデータトークン検出部
１６  コマンドフィルタ
１７  ライトデータフィルタ
１８  リードデータフィルタ
１９  カウンタ部
１９ａ  コマンドカウンタ
１９ｂ  ライトデータカウンタ
１９ｃ  リードデータカウンタ
２０  セレクタ部
２０ａ  コマンドセレクタ
２０ｂ  ライトデータセレクタ
２０ｃ  リードデータセレクタ
【図１】
0004931804.tif 000002
【図２】
0004931804.tif 000003
【図３】
0004931804.tif 000004
【図４】
0004931804.tif 000005
【図５】
0004931804.tif 000006
【図６】
0004931804.tif 000007
【図７】
0004931804.tif 000008
【図８】
0004931804.tif 000009
【図９】
0004931804.tif 000010
【図１０】
0004931804.tif 000011
【図１１】
0004931804.tif 000012