(57)【要約】【課題】統計処理により得られる情報の精度の向上と、メモリコストの抑制と、を両立する。【解決手段】バスモニタは、バスの転送事象を観測する観測手段と、統計処理期間毎に転送事象の統計処理を行う統計手段と、統計処理の結果を保持する保持手段と、観測した転送事象あるいは統計処理の結果に応じて、統計処理期間を変更する変更手段と、を備える。【選択図】図１
2018200570.tif 000002
【特許請求の範囲】
【請求項１】
バスの転送事象を観測する観測手段と、
統計処理期間毎に転送事象の統計処理を行う統計手段と、
統計処理の結果を保持する保持手段と、
観測した転送事象あるいは統計処理の結果に応じて、統計処理期間を変更する変更手段と、を備えるバスモニタ。
【請求項２】
前記変更手段は、外部から入力されるイベント信号に応じて統計処理期間を変更する請求項１に記載のバスモニタ。
【請求項３】
バスの転送事象は、バス転送の特定のＩＤ情報を含む請求項１または２に記載のバスモニタ。
【請求項４】
バスの転送事象は、バス転送の特定のアドレス情報を含む請求項１から３のいずれか一項に記載のバスモニタ。
【請求項５】
観測した転送事象あるいは統計処理の結果に基づいて、統計処理期間の変更の要否を判定する判定手段をさらに備え、
前記変更手段は、前記判定手段において変更が必要と判定された場合に、統計処理期間を変更する請求項１から４のいずれか一項に記載のバスモニタ。
【請求項６】
統計処理期間の変更の要否を判定する際に参照される判定情報を保持する手段をさらに備える請求項５に記載のバスモニタ。
【請求項７】
前記保持手段は、統計処理の結果と時刻情報とを対応付けて保持する請求項１から６のいずれか一項に記載のバスモニタ。
【請求項８】
統計処理期間の長さを設定するための設定レジスタと、
変更レジスタと、をさらに備え、
前記統計手段は前記設定レジスタを参照して統計処理期間を計時し、
前記変更手段は、前記変更レジスタを参照して前記設定レジスタを変更することによって統計処理期間を変更する請求項１から７のいずれか一項に記載のバスモニタ。
【請求項９】
統計処理期間の長さを設定するための第１レジスタおよび第２レジスタをさらに備え、
前記変更手段は、統計処理期間を計時するために前記統計手段が参照するレジスタを、前記第１レジスタと前記第２レジスタとの間で切り替えることによって統計処理期間を変更する請求項１から７のいずれか一項に記載のバスモニタ。
【請求項１０】
バスの転送事象を観測することと、
統計処理期間毎に転送事象の統計処理を行うことと、
統計処理の結果を保持手段に格納することと、
観測した転送事象あるいは統計処理の結果に応じて、統計処理期間を変更することと、を含むバスのモニタ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスモニタおよびバスのモニタ方法に関する。
【背景技術】
【０００２】
モニタ装置を使用して、半導体集積回路の中のＣＰＵ（中央演算装置）やシステムバスの信号を観測して必要な情報を取得し、その情報を使用して解析を行う技術が存在する。近年の半導体集積回路では集積度が向上し、ＤＭＡＣ（Direct Memory Access Controller）やＣＰＵなどのマスタモジュールが数多く半導体集積回路に搭載されるようになってきている。このようなシステムでは多数のマスタモジュールがシステムバス上に転送を発行するため、システムバス上の動作が複雑になる。
【０００３】
そこで、システムにバスモニタを搭載し、製品の開発工程においてバスモニタを用いて様々な状態解析を行うようになってきた。バスモニタは、バスの転送事象を観測する装置である。観測するバスの転送事象には、バス転送のＩＤ情報やアドレス情報、データサイズ、ライトデータやリードデータなどがある。バスの転送事象を逐次情報として格納する場合や、バスの転送事象から所定期間毎に統計処理を行い、その統計処理の結果を格納する場合がある。このようにバスモニタで取得された情報は、製品の開発過程での障害解析や性能解析に用いられる。
【０００４】
バス帯域などの性能解析に用いる場合は、バスの転送事象を統計処理した結果を取得することが一般的である。この時、統計処理期間を短くすることによって、バスの状態をより高い精度で解析することができる。特許文献１には、統計処理期間をクロック単位で指定可能とすることで、高い精度での性能解析を可能とするバスモニタ装置が開示される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２０５３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
統計処理を行う期間を短くすればするほど得られる情報の精度が高まるが、同時に情報の量も多くなる。したがって、メモリ容量が有限であることを考えると、特許文献１に記載の技術では情報の精度の向上に限りがある。
【０００７】
本発明はこうした課題に鑑みてなされたものであり、その目的は、統計処理により得られる情報の精度の向上と、メモリコストの抑制と、を両立できるバスモニタ技術の提供にある。
【課題を解決するための手段】
【０００８】
本発明のある態様はバスモニタに関する。このバスモニタは、バスの転送事象を観測する観測手段と、統計処理期間毎に転送事象の統計処理を行う統計手段と、統計処理の結果を保持する保持手段と、観測した転送事象あるいは統計処理の結果に応じて、統計処理期間を変更する変更手段と、を備える。
【発明の効果】
【０００９】
本発明によれば、統計処理により得られる情報の精度の向上と、メモリコストの抑制と、を両立できる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態に係るバスシステムの模式図。
【図２】図２（ａ）〜（ｃ）は、バス帯域の時間推移の一例を示すグラフ
【図３】図１のバスシステムにおけるバス使用期間の競合の一例を示す模式図である。
【図４】図４（ａ）、（ｂ）は、ソフトウエアにより統計処理期間を変更する第１比較例を示す模式図である。
【図５】図５（ａ）、（ｂ）は、ソフトウエアにより統計処理期間を変更する第２比較例を示す模式図である。
【図６】図６（ａ）、（ｂ）は、実施の形態に係るバスモニタにより統計処理期間を変更する例を示す模式図である。
【図７】図１のバスモニタの構成を示すブロック図である。
【図８】図７の決定部における一連の処理の流れを示すフローチャートである。
【図９】図７の判定部における一連の処理の流れを示すフローチャートである。
【図１０】図７の観測・統計部における一連の処理の流れを示すフローチャートである。
【図１１】図１のバスモニタの動作を示すタイミングチャートである。
【図１２】図１２（ａ）〜（ｃ）は、変形例に係るバスモニタの一部の構成を示すブロック図である。
【図１３】図１２（ｃ）の決定部における一連の処理の流れを示すフローチャートである。
【図１４】図１２（ｃ）の判定部における一連の処理の流れを示すフローチャートである。
【図１５】第３変形例に係るバスモニタの動作を示すタイミングチャートである。
【発明を実施するための形態】
【００１１】
以下、各図面に示される同一または同等の構成要素、部材、処理、信号には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面において説明上重要ではない部材の一部は省略して表示する。
【００１２】
（実施の形態）
図１は、実施の形態に係るバスシステム２０の模式図である。バスシステム２０ではバス型トポロジが採用される。バスシステム２０は、マスタモジュールＡ４、マスタモジュールＢ６、マスタモジュールＣ８、マスタモジュールＤ１０、スレーブモジュールＡ１２、バスモニタ１４、を備え、そのそれぞれはシステムバス２に接続される。バスモニタ１４は、システムバス２を介して転送される信号を観測（または監視）し、統計処理する。バスモニタ１４は、統計処理の結果をメモリすなわちＳＲＡＭ１６に格納する。ＳＲＡＭ１６に保持される統計処理の結果は外部装置に出力され、バスシステム２０の動作のチェックや性能の解析に利用される。
【００１３】
性能の解析を高い精度で実施するためには、必要な統計処理の結果を詳細に取得することが望ましい。統計処理の結果はメモリに蓄えられることが一般的である。短い期間毎に統計処理を行い、その結果を保持し続けるためには比較的大容量のメモリが必要となるが、メモリの容量を増やすとコストが増大する。したがって、本実施の形態に係るバスモニタ１４は、限られたメモリ容量で高精度の測定結果を得るために、統計処理を行う期間のうち所望の期間のみを短く設定して統計処理結果を取得する。
【００１４】
図２（ａ）は、バス帯域の時間推移の一例を示すグラフである。この中の符号３２で示される箇所のように、特定の短い期間においてバス帯域が大きく変動する箇所では、障害が発生しやすい。障害の原因を把握するためには、バス帯域の変動幅や推移の状況を詳細に解析できることが望ましい。従って、バス帯域の大きな変動が予想される箇所では、短い期間毎に統計処理を行い、その結果を取得することが求められる。図２（ｂ）は、固定長の期間毎にバス帯域の統計量を取得した場合の一例を示すグラフである。図２（ｃ）は、大きく変動する箇所だけ期間を短く変更して統計量を取得した場合の一例を示すグラフである。性能の解析に用いる場合は、図２（ｃ）に示されるような統計量を取得できることが望ましい。
【００１５】
本実施の形態では、図２（ｃ）に示されるような統計処理の結果（例えば、統計量）を取得するべく統計処理を行う期間の長さを変更する機能を、バスモニタ１４にハードウエアで実装する。これに対して、統計処理を行う期間の変更を外部のソフトウエアにより行うことも考えられる。この場合、ソフトウエアはハードウエアよりも容易に変更できるので汎用性が高まる。しかしながら、ソフトウエアによる実装では、例えば、ある特定のマスタモジュールのバス動作が開始されたことを通知する割り込みイベントを受けるまで待機し、該イベントを受けた後に期間を変えるため、タイムラグが発生する。また、割り込みイベントがない場合には、試行錯誤で何度も繰り返し試行することが必要となりうる。
【００１６】
以下、ソフトウエアにより実装した場合に対応する比較例１、比較例２と、ハードウエアにより実装した本実施の形態と、を比較する。
【００１７】
図３は、図１のバスシステム２０におけるバス使用期間の競合の一例を示す模式図である。符号２２で示される箇所は、定常的な転送が発行される箇所または転送量が比較的少ない箇所に相当する。このような箇所では障害は比較的起こりにくいので、統計処理のための単位期間（以下、統計処理期間と称す）を比較的長く設定すると、メモリの使用量を抑えることができる。これに対して、符号２４で示される箇所では、比較的多くのマスタモジュール間でのバス権の競合が発生する。このような箇所では障害が比較的起こりやすい。このような箇所で長い統計処理期間を用いると、障害が起きた場合に統計情報から何が起きているのかを解析することが困難となる。したがって、このような箇所では統計処理期間を比較的短く設定すると、統計情報からの詳細な障害の解析が可能となる。本実施の形態に係るバスモニタ１４は、符号２６で示される部分の統計情報を短い期間毎に取得することで詳細な解析を可能とすると共に、それ以外の部分では統計処理期間を長くすることでメモリの使用量を低減する。
【００１８】
図４（ａ）、（ｂ）は、ソフトウエアにより統計処理期間を変更する第１比較例を示す模式図である。図４（ａ）に示される各マスタモジュールの動作は図３のそれに対応する。障害が起きにくい区間１、区間２、区間３では、ソフトウエアにより統計処理期間が長く設定され、高い圧縮率で統計情報が取得される。符号２８で示される箇所において、バスモニタはマスタモジュールＤ１０のトランザクションＩＤを検出する。マスタモジュールＤ１０のトランザクションＩＤを検出したことがＣＰＵに伝達され、ソフトウエアにより区間５、区間６、区間７の統計処理期間が変更される。ここで、ソフトウエアが介在する期間が発生するため、統計処理期間が変更されるまでにタイムラグが生じる。この例では統計処理期間の変更は区間４には適用されない（または、間に合わない）。したがって、詳細に見たい箇所（この例では符号２４で示される箇所）の情報を短い期間毎に取得できない場合が生じる。図４（ｂ）はＳＲＡＭにおけるログの格納状態を示す模式図である。１区間の情報量を１６ｂｙｔｅとすると、図４（ａ）に示される８区間で取得された情報量の合計は１６×８＝１２８ｂｙｔｅである。区間５、区間６、区間７の取得ログは解像度の高い情報であるが、詳細に見たい箇所（この例では符号２４で示される箇所）に当たっていない。
【００１９】
図５（ａ）、（ｂ）は、ソフトウエアにより統計処理期間を変更する第２比較例を示す模式図である。図５（ａ）に示される各マスタモジュールの動作は図３のそれに対応する。障害が起きにくい区間１、区間２では、ソフトウエアにより統計処理期間が長く設定され、高い圧縮率で統計情報が取得される。符号３０で示される区間３〜区間１６では、マスタモジュールＤ１０が転送を発行する前に、ソフトウエアにより統計処理期間が変更される。この場合、詳細に見たい箇所（この例では符号２４で示される箇所）の情報を短い期間毎に取得できるが、そのような期間の総数が比較的多くなり、メモリコストが悪化する。図５（ｂ）はＳＲＡＭにおけるログの格納状態を示す模式図である。１区間の情報量を１６ｂｙｔｅとすると、図５（ａ）に示される１７区間で取得された情報量の合計は１６×１７＝２７２ｂｙｔｅである。区間３〜区間１６の取得ログは解像度の高い情報であり、詳細に見たい箇所（この例では符号２４で示される箇所）に当たっている。
【００２０】
図６（ａ）、（ｂ）は、本実施の形態に係るバスモニタ１４により統計処理期間を変更する例を示す模式図である。図６（ａ）に示される各マスタモジュールの動作は図３のそれに対応する。バスモニタ１４は、障害が起きにくい区間１、区間２、区間３では、統計処理期間を長く設定し、高い圧縮率で統計情報を取得する。符号２８で示される箇所において、バスモニタ１４はマスタモジュールＤ１０のトランザクションＩＤを検出し、統計処理期間の長さを変更する。ソフトウエアによる介在がないのでタイムラグは抑制され、この変更は次の区間４に反映される。このように、多くのマスタモジュール間でのバス権の競合が発生し障害が起きやすい箇所では、詳細に解析できるよう短い期間毎に情報が取得される。マスタモジュールＤ１０のトランザクションが完了した後の区間７、区間８について、バスモニタ１４は統計処理期間の長さを元に戻す。図６（ｂ）はＳＲＡＭ１６におけるログの格納状態を示す模式図である。１区間の情報量を１６ｂｙｔｅとすると、図６（ａ）に示される８区間で取得された情報量の合計は１６×８＝１２８ｂｙｔｅである。区間４、区間５、区間６の取得ログは解像度の高い情報であり、詳細に見たい箇所（この例では符号２４で示される箇所）に当たっている。
【００２１】
図７は、本実施の形態に係るバスモニタ１４の構成を示すブロック図である。バスモニタ１４は、対象となるシステムバス２の転送事象を観測し、統計処理期間毎に転送事象の統計処理を行い、その結果を保持、出力する。統計処理は、例えば、システムバス２の転送事象からデータ転送量を測定し、統計処理期間毎のデータ転送量の累積値を算出する処理を含む。この場合、統計処理期間毎の累積値が統計処理の結果として出力される。バスモニタ１４は、判定部１０１と、決定部１０２と、観測・統計部１０３と、保持部１０４と、ＳＲＡＭ１６と、を備える。観測・統計部１０３とシステムバス２とは観測バス信号データ転送インタフェースによって接続される。ＳＲＡＭ１６と外部装置１０９とはバスモニタ−外部装置間データ転送インタフェースにより接続される。
【００２２】
決定部１０２は観測・統計部１０３による統計処理で用いられる統計処理期間の長さを決定する。例えば、決定部１０２は、統計処理期間を指定する。決定部１０２は、判定部１０１における判定結果に基づいて統計処理期間の変更を行う。決定部１０２は、統計処理期間の長さを設定するための設定レジスタ１０６と、統計処理期間の長さの変更の度合いを設定するための変更レジスタ１０７と、を有する。決定部１０２は、判定部１０１における判定結果に基づいて、変更レジスタ１０７の設定値を使用して設定レジスタ１０６の設定値を変更することで、統計処理期間の長さを変更する。統計処理期間の長さの変更については後述する。
【００２３】
観測・統計部１０３は、システムバス２の転送事象を観測し、その状態の解析に必要な情報を生成する。観測・統計部１０３は、決定部１０２による指定に基づく統計処理期間毎に転送事象の統計処理を行い、その統計処理の結果および時刻情報を生成する。時刻情報は、例えば、統計処理の結果を生成した時刻またはそのタイムスタンプである。
【００２４】
保持部１０４は、判定部１０１が統計処理期間の変更の要否を判定する際に参照される判定情報を保持する。判定情報は、該判定の基となる情報である。判定情報は、例えば、バス転送のトランザクションＩＤやアドレス、あるいは取得された統計処理の結果の閾値を含む。本実施の形態では、保持部１０４は、特定のバス転送のトランザクションＩＤを検出するための基準レジスタ１０８を有する。基準レジスタ１０８は、判定情報として、特定のバス転送のトランザクションＩＤを保持する。
【００２５】
ＳＲＡＭ１６は、観測・統計部１０３によって生成された統計処理の結果と時刻情報とを対応付けて保持する。ＳＲＡＭ１６は、保持される統計処理の結果および時刻情報を外部装置１０９に転送する。
【００２６】
判定部１０１は、保持部１０４の基準レジスタ１０８によって保持される判定情報および観測・統計部１０３によって観測されたＩＤ情報に基づいて、統計処理期間の変更の要否を判定する。判定部１０１における変更の要否の判定の方法は、観測されたＩＤ情報が基準レジスタ１０８に保持されるＩＤ情報と一致する場合に変更が必要と判定する方法を含む。また、判定の方法は、検出用のレジスタを複数個用意し、観測されたＩＤ情報が指定範囲内に収まっている場合に変更が必要と判定する、といった方法を含んでもよい。
【００２７】
本実施の形態ではＩＤ情報を判定情報とする場合を説明するが、他の実施の形態では、アドレスを判定情報としてもよい。この場合、観測されたバス転送のアドレスがレジスタ等で指定されたアドレス空間に入っているか否かにより変更の要否が判定される。あるいはまた、統計処理の結果に対する閾値を判定情報としてもよい。この場合、取得された統計処理の結果とレジスタ等で指定された閾値との大小関係により変更の要否が判定される。
【００２８】
以上の構成によるバスモニタ１４の動作を説明する。
バスモニタ１４はシステムバス２の転送事象を観測し、統計処理期間毎に転送事象の統計処理を行い、その統計処理の結果を取得する。このなかで、バスモニタ１４は、統計処理期間の長さを変更する。図８は、図７の決定部１０２における一連の処理の流れを示すフローチャートである。Ｓ１１では、外部のコントローラ、例えばＣＰＵ（不図示）は決定部１０２の設定レジスタ１０６の値および変更レジスタ１０７の値を設定する。設定値はクロックサイクル数で指定される。Ｓ１２では、決定部１０２は観測・統計部１０３に対して設定値更新フラグを発行する。Ｓ１３では、決定部１０２は統計処理期間の設定値をより小さい値に変更するためのフラグであるマイナス変更フラグが立っているか否かを確認する。フラグが立っていない場合、Ｓ１４に遷移する。フラグが立っている場合、Ｓ１５に遷移する。マイナス変更フラグの論理については後述する。Ｓ１４では、決定部１０２は統計処理期間の設定値をより大きい値に変更するためのフラグであるプラス変更フラグが立っているか否かを確認する。フラグが立っていない場合、Ｓ２２に遷移する。フラグが立っている場合、Ｓ１８に遷移する。プラス変更フラグの論理については後述する。Ｓ２２では、決定部１０２は測定が終了したか否かを判定する。測定が終了していない場合は、再びＳ１３に遷移し、測定が終了した場合は、ここで動作終了となる。
【００２９】
したがって、測定中にマイナス変更フラグ、プラス変更フラグのいずれの変更フラグも立っていない場合は、Ｓ１３からＳ１４を経てＳ２２に至る遷移が繰り返される。マイナス変更フラグが立っている場合は、Ｓ１３からＳ１５に遷移する。Ｓ１５では、決定部１０２は、設定レジスタ１０６の設定値を、現在の設定値から変更レジスタ１０７の設定値を減算して得られる値に変更（または更新、再設定）する。Ｓ１６では、決定部１０２は観測・統計部１０３に対して設定値更新フラグを発行する。Ｓ１７では、決定部１０２は、判定部１０１に対して統計処理期間の設定値を小さい値に変更したことを通知するための変更通知フラグを発行する。Ｓ２１では、決定部１０２はマイナス変更フラグをクリアし、処理はＳ１３に戻る。同様に、Ｓ１４においてプラス変更フラグが立っている場合、Ｓ１４からＳ１８に遷移する。Ｓ１８では、決定部１０２は、設定レジスタ１０６の設定値を、現在の設定値に変更レジスタ１０７の設定値を加算して得られる値に変更する。Ｓ１９では、決定部１０２は、観測・統計部１０３に対して設定値更新フラグを発行する。Ｓ２０では、決定部１０２は、判定部１０１に対して統計処理期間の設定値を初期値に戻したことを通知するために、変更通知フラグをクリアする。Ｓ２１では、決定部１０２はプラス変更フラグをクリアし、処理はＳ１３に戻る。
【００３０】
本実施の形態では、それぞれが統計処理期間の長さに関する情報を保持する複数のレジスタ（例えば、設定レジスタ１０６および変更レジスタ１０７）を用意し、それらの値を演算することで変更後の統計処理期間の長さを決定するが、これに限られない。他の実施の形態では、統計処理期間の長さに関する情報を複数保持する機能を準備し、それらを切り替えて使用してもよい。
【００３１】
図９は、図７の判定部１０１における一連の処理の流れを示すフローチャートである。本実施の形態では、特定のトランザクションＩＤに係る転送が発生している際に統計処理期間を比較的短くする。Ｓ３１では、判定部１０１は一つの統計処理期間に相当する時間が経過したか否かを判定する。例えば判定部１０１は、観測・統計部１０３から統計処理期間の満了を示す到達フラグを受領すると、一つの統計処理期間が経過したと判定する。経過していない場合は、経過するまでＳ３１が繰り返される。経過したと判定された場合、Ｓ３２に遷移する。Ｓ３２では、判定部１０１が観測・統計部１０３から受領したＩＤ情報は、そのＩＤを持つトランザクションの成立タイミングを示唆するパルス制御信号が活性化されると有効となる。判定部１０１は、有効となったＩＤ情報を基準レジスタ１０８に保持されるＩＤ情報と比較することで、特定のトランザクションＩＤを持つトランザクションを検出したか否かを判定する。検出していない場合は、Ｓ３３に遷移する。検出した場合は、Ｓ３４に遷移する。Ｓ３３では、判定部１０１は、決定部１０２から受領した変更通知フラグが立っているか否かを判定する。フラグが立っていない場合は、Ｓ３７に遷移する。フラグが立っている場合は、Ｓ３６に遷移する。Ｓ３７では、判定部１０１は測定が終了したか否かを判定する。測定が終了していない場合は、再びＳ３１に遷移し、測定が終了した場合は、ここで動作終了となる。
【００３２】
したがって、測定中に特定のトランザクションＩＤを持つトランザクションを一つも検出しない場合は、Ｓ３１からＳ３２、Ｓ３３を経てＳ３７に至る遷移が繰り返される。特定のトランザクションＩＤを持つトランザクションを検出した場合は、Ｓ３２からＳ３４に遷移する。Ｓ３４では、判定部１０１は決定部１０２から受領した変更通知フラグが立っているか否かを判定する。フラグが立っていない場合は、統計処理期間の長さは設定レジスタ１０６に保持される設定値のままであるため、Ｓ３５に遷移する。Ｓ３５では、判定部１０１は、決定部１０２に対してマイナス変更フラグを発行し、処理はＳ３１に戻る。フラグが立っている場合は、既に統計処理期間が小さい値に変更されているため、何もせずにＳ３１に戻る。前の統計処理期間で検出していた特定のトランザクションＩＤを持つトランザクションを次の統計処理期間で検出しなくなった場合は、統計処理期間の長さは一度変更されており、変更通知フラグは立っているため、Ｓ３３からＳ３６に遷移する。Ｓ３６では、判定部１０１は決定部１０２に対してプラス変更フラグを発行し、処理はＳ３１に戻る。
【００３３】
図１０は、図７の観測・統計部１０３における一連の処理の流れを示すフローチャートである。Ｓ４１では、観測・統計部１０３は決定部１０２から受領した設定値更新フラグが立っているか否かを判定する。フラグが立っていない場合は、観測・統計部１０３は該フラグが立つまで待機する。フラグが立つと、Ｓ４２に遷移する。Ｓ４２では、観測・統計部１０３は、設定レジスタ１０６の設定値を観測・統計部１０３の内部信号に反映させる。内部信号は、統計処理期間のクロックサイクル数を保持する信号である。Ｓ４３では、観測・統計部１０３は設定値更新フラグをクリアする。Ｓ４４では、観測・統計部１０３はバスモニタ１４の外部から測定開始トリガを受領したか否かを判定する。受領したら、Ｓ４５に遷移し、測定が開始される。受領していない場合は、観測・統計部１０３は受領するまでＳ４４で待機する。Ｓ４６では、観測・統計部１０３は１統計処理期間に相当する時間が経過したか否かを判定する。経過していない場合は、観測・統計部１０３は経過するまでＳ４６で待機する。経過した場合は、Ｓ４７に遷移する。Ｓ４７では、観測・統計部１０３は観測された転送事象から所定の統計処理の結果および時刻情報を生成し、ＳＲＡＭ１６に出力する。Ｓ４８では、観測・統計部１０３は測定終了トリガを受領したか否かを判定する。測定終了トリガを受領した場合は、Ｓ４９に遷移し測定が終了し、そこで動作終了となる。受領していない場合は、Ｓ５０に遷移する。Ｓ５０では、観測・統計部１０３は決定部１０２から受領する設定値更新フラグが立っているか否かを判定する。フラグが立っていない場合は、Ｓ４６に遷移し、次の統計処理期間の長さは前の統計処理期間の長さと同じとなる。フラグが立っている場合は、Ｓ５１に遷移する。Ｓ５１では、観測・統計部１０３は設定レジスタ１０６の設定値を観測・統計部１０３の内部信号に反映させ、統計処理期間の長さを変更する。Ｓ５２では、観測・統計部１０３は設定値更新フラグをクリアし、処理はＳ４６へ戻る。
【００３４】
図１１は、バスモニタ１４の動作を示すタイミングチャートである。図１１に示されるタイミングチャートは、バスモニタ１４がシステムバス２のデータ転送量の累計値を統計処理の結果として取得する場合の一例を示す。また、図１１はバスモニタ１４の全ての信号やレジスタ値を示しているわけではない。図１１のタイミングチャートでは、時刻Ｔ２の前に設定される設定レジスタ１０６の初期値は１０００(サイクル)であり、変更レジスタ１０７の設定値は７５０(サイクル)である（Ｓ１１）。時刻Ｔ２で設定更新フラグの作用により、設定レジスタ１０６の設定値が観測・統計部１０３の内部信号の設定値に反映される（Ｓ４１、Ｓ４２）。時刻Ｔ７でバスモニタ１４は測定開始トリガを受領し（Ｓ４４）、時刻Ｔ８から測定が開始される（Ｓ４５）。
【００３５】
タイムスタンプカウンタは、時刻情報を保持するカウンタであり、測定開始に応じてカウントアップを開始し、測定終了まで値はリセットされない。測定サイクル数カウンタは、統計処理期間を計時するカウンタであり、統計処理期間が満了する毎にリセットされる。観測・統計部１０３は、測定サイクル数カウンタの値が内部信号設定値に達すると統計処理期間が満了したと判定し、到達フラグをアサートする（活性化させる）。データカウンタは統計処理期間におけるデータ転送量の累計値を保持する。観測・統計部１０３はシステムバス２の転送事象を観測し、有効なデータが観測されると、そのバイト数をデータカウンタの現在のカウント値に加える。このようにしてデータカウンタはデータのバイト数を累積してカウントする。データカウンタは、統計処理期間が満了する毎にリセットされる。
【００３６】
測定が開始されてからの最初の統計処理期間について、バスモニタ１４は１０００サイクル分のデータ転送量の累計値を統計処理の結果として算出する。バスモニタ１４は、時刻Ｔ１００７において有効信号をアサートする。バスモニタ１４は、時刻Ｔ１００７において、タイムスタンプカウンタの時刻情報と共にデータカウンタの値（データ転送量の累計値）をＤＡＴＡ１としてＳＲＡＭ１６に出力する（Ｓ４７）。また、最初の統計処理期間において、特定のトランザクションＩＤを持つトランザクションが検出されたため（Ｓ３２）、バスモニタ１４は設定レジスタ１０６の設定値を２５０(サイクル)に変更する（Ｓ１５）。時刻Ｔ１００７において、設定更新フラグの作用により、設定レジスタ１０６の設定値（２５０サイクル）が観測・統計部１０３の内部信号の設定値に反映される。その結果、次の（二番目の）統計処理期間は最初の統計処理期間より短くなる。
【００３７】
二番目の統計処理期間では、バスモニタ１４は２５０サイクル分のデータ転送量の累計値を統計処理の結果として算出する。時刻Ｔ１２５７において、バスモニタ１４はタイムスタンプカウンタの時刻情報と共にデータカウンタの値をＤＡＴＡ２としてＳＲＡＭ１６に出力する（Ｓ４７）。この統計処理期間においても、特定のトランザクションＩＤを持つトランザクションを検出した（Ｓ３２）が、既に設定レジスタ１０６の設定値を変更済みのため（Ｓ３４）、設定レジスタ１０６の設定値は変更されない。したがって、観測・統計部１０３の内部信号の設定値は２５０(サイクル)のままで、三番目の統計処理期間を測定する。
【００３８】
三番目の統計処理期間では、バスモニタ１４は２５０サイクル分のデータ転送量の累計値を統計処理の結果として算出する。時刻Ｔ１５０７において、バスモニタ１４はタイムスタンプカウンタの時刻情報と共にデータカウンタの値をＤＡＴＡ３としてＳＲＡＭ１６に出力する（Ｓ４７)。この統計処理期間では、特定のトランザクションＩＤを持つトランザクションが検出されなかったため（Ｓ３２）、バスモニタ１４は設定レジスタ１０６の設定値を１０００(サイクル)に変更する（Ｓ１８）。時刻Ｔ１５０７において、設定更新フラグの作用により、設定レジスタ１０６の設定値（１０００サイクル）が観測・統計部１０３の内部信号の設定値に反映される。その結果、四番目の統計処理期間の長さは最初の統計処理期間の長さと同じとなる。
【００３９】
その後、同様な処理が続く。時刻Ｔ５５０７において、バスモニタ１４は統計処理期間の満了と共に、外部から測定終了トリガを受領する。バスモニタ１４はタイムスタンプカウンタの時刻情報と共にデータカウンタの値をＤＡＴＡ６としてＳＲＡＭ１６に出力し（Ｓ４７）、測定は終了する（Ｓ４９）。
【００４０】
本実施の形態に係るバスモニタ１４によると、バスモニタ１４が観測した転送事象に応じて、統計処理期間をバスモニタ１４が自律的に変更することができる。したがって、統計処理期間を外部から再設定する場合と比べて、よりリアルタイムでピンポイントな統計処理の結果を得ることができる。バスモニタ１４では必要なときに必要な粒度で統計処理が行われるので、少ないメモリコストで効果的に統計処理の結果を取得することができる。
【００４１】
以上、実施の形態に係るバスモニタ１４の構成と動作について説明した。この実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４２】
本実施の形態では、一つの基準レジスタ１０８を設けてそこに一つのトランザクションＩＤを格納し、該一つのトランザクションＩＤを判定部１０１における判定基準として用いる場合を説明したが、これに限られない。例えば、複数の保持機能を設けて複数のトランザクションＩＤを指定してもよい。あるいはまた、トランザクションＩＤの範囲を指定し、その範囲内となるトランザクションＩＤを検出してもよい。
【００４３】
あるいはまた、特定のアドレスの検出や生成された統計処理の結果を、判定部における判定基準として用いてもよい。これらは、本実施の形態で示される統計処理期間を変更する制御と同様な制御で実現される。
【００４４】
（第１変形例）
図１２（ａ）は、第１変形例に係るバスモニタの一部の構成を示すブロック図である。第１変形例に係るバスモニタの構成のうち図１２（ａ）に示されていない構成は、図７に示されるバスモニタ１４の対応する構成に準じる。本変形例に係るバスモニタは、特定のアドレスを検出したことに応じて統計処理期間の長さを変更する。
【００４５】
保持部６０１はアドレス検出用のアドレスレジスタ６０２を有する。判定部６０３は観測・統計部６０４からアドレス情報および制御信号を受領する。判定部６０３が観測・統計部６０４から受領したアドレス情報は、そのアドレスを持つトランザクションの成立タイミングを示唆する制御信号が活性化されると有効となる。判定部６０３は、有効となったアドレス情報をアドレスレジスタ６０２に保持される特定のアドレス情報と比較することで、特定のアドレスを持つトランザクションを検出したか否かを判定する。検出したと判定された場合、実施の形態と同様の処理により統計処理期間の長さの設定値がより小さい値に変更される。判定部６０３は、観測・統計部６０４から受領した応答情報により、特定のアドレスを持つトランザクションの応答が返信されたか否かを判定する。返信されたと判定されると、統計処理期間の長さの設定値は元に戻される。
【００４６】
（第２変形例）
図１２（ｂ）は、第２変形例に係るバスモニタの一部の構成を示すブロック図である。第２変形例に係るバスモニタの構成のうち図１２（ｂ）に示されていない構成は、図７に示されるバスモニタ１４の対応する構成に準じる。本変形例に係るバスモニタは、生成された統計処理の結果に応じて統計処理期間の長さを変更する。転送事象から統計処理により生成される情報は複数存在する場合があるが、本変形例ではその中の一つの情報を統計処理期間の変更に使用する。
【００４７】
保持部６０５は、統計処理の結果の上限閾値を保持する上限閾値レジスタ６０６と、統計処理の結果の下限閾値を保持する下限閾値レジスタ６０７と、を有する。判定部６０８は観測・統計部６０９から統計処理の結果を受領する。判定部６０８は、受領した統計処理の結果を上限閾値レジスタ６０６に保持される上限閾値と比較する。統計処理の結果が上限閾値を上回ると、実施の形態と同様の処理により統計処理期間の長さの設定値がより小さい値に変更される。判定部６０８は、その後受領した統計処理の結果を下限閾値レジスタ６０７に保持される下限閾値と比較する。統計処理の結果が下限閾値を下回ると、実施の形態と同様の処理により統計処理期間の長さの設定値は元に戻される。
【００４８】
本変形例に係るバスモニタによると、バスモニタが生成する統計処理の結果に応じて、統計処理期間をバスモニタが自律的に変更することができる。したがって、統計処理期間を外部から再設定する場合と比べて、よりリアルタイムでピンポイントな統計処理の結果を得ることができる。バスモニタでは必要なときに必要な粒度で統計処理が行われるので、少ないメモリコストで効果的に統計処理の結果を取得することができる。
【００４９】
（第３変形例）
図１２（ｃ）は、第３変形例に係るバスモニタの一部の構成を示すブロック図である。第３変形例に係るバスモニタの構成のうち図１２（ｃ）に示されていない構成は、図７に示されるバスモニタ１４の対応する構成に準じる。本変形例に係るバスモニタは、統計処理期間の長さの変更の要否を判定する際に、外部から入力されるイベント信号を参照する。
【００５０】
判定部６１０は、保持部１０４の基準レジスタ１０８に保持されるＩＤ情報と、観測・統計部６１１が観測したＩＤ情報と、バスモニタの外部から受領するイベント信号が活性化されているか否かと、に基づいて、統計処理期間の変更の要否を判定する。具体的には、判定部６１０は、観測したＩＤ情報が基準レジスタ１０８に保持されるＩＤ情報と一致し、かつ、外部からのイベント信号が活性化されている場合に、変更が必要と判定する。
【００５１】
外部からのイベント信号は複数本あってもよいし、その中からレジスタで選択してもよいし、オン／オフ可能であってもよい。イベント信号は、バスモニタの外部で生成され、システムバス２の事象以外のシステム事象を示す任意の信号である。例えば、イベント信号は、映像に重畳される同期信号やデータイネーブル信号やフィールド信号を含んでもよい。あるいはまた、イベント信号は、ＤＭＡ（Direct Memory Access）等のマスタモジュールの活性化状態を示す信号を含んでもよい。
【００５２】
決定部６１２は、統計処理期間の長さのデフォルト値を設定するための設定レジスタ６１３と、統計処理期間の長さの変更値を設定するための変更レジスタ６１４と、を有する。決定部６１２は、観測・統計部６１１により参照されるレジスタ（以下、参照先と称す）を、判定部６１０における判定結果に応じて、設定レジスタ６１３と変更レジスタ６１４との間で切り替える。これにより、統計処理期間の長さが変更される。
【００５３】
以上の構成による本変形例に係るバスモニタの動作を説明する。
バスモニタはシステムバス２の転送事象を観測し、統計処理期間毎に転送事象の統計処理を行い、その統計処理の結果を取得する。このなかで、バスモニタは、統計処理期間の長さを変更する。図１３は、図１２（ｃ）の決定部６１２における一連の処理の流れを示すフローチャートである。Ｓ６１では、外部のコントローラは決定部６１２の設定レジスタ６１３の値および変更レジスタ６１４の値を設定する。合わせて決定部６１２は設定レジスタ６１３を参照先に設定する。Ｓ６５では、決定部６１２は、参照先を設定レジスタ６１３から変更レジスタ６１４に切り替える。Ｓ６８では、決定部６１２は、参照先を変更レジスタ６１４から設定レジスタ６１３に切り替える。
【００５４】
図１４は、図１２（ｃ）の判定部６１０における一連の処理の流れを示すフローチャートである。Ｓ７２では、判定部６１０は観測・統計部６１１から受信したＩＤ情報を基準レジスタ１０８に保持されるＩＤ情報と比較することで、特定のトランザクションＩＤを持つトランザクションを検出したか否かを判定する。合わせて判定部６１０は、外部からのイベント信号が活性化されているか否かを判定する。特定のトランザクションＩＤを持つトランザクションが検出されたと判定され、かつ、イベント信号が活性化されていると判定された場合、処理はＳ３４に進む。それ以外の場合は処理はＳ３３に進む。
【００５５】
したがって、イベント信号が活性化されていない場合、バスモニタは特定のトランザクションＩＤを検出しても統計処理期間を変更しない。統計処理期間の長さが変更されている状態でイベント信号の活性化が解除されると、統計処理期間の長さは元の設定値に戻される。
【００５６】
観測・統計部６１１の動作は図１０に示されるフローチャートで説明される動作に準じる。
【００５７】
図１５は、第３変形例に係るバスモニタの動作を示すタイミングチャートである。図１５に示されるタイミングチャートは、バスモニタがシステムバス２のデータ転送量の累計値を統計処理の結果として取得する場合の一例を示す。また、図１５はバスモニタの全ての信号やレジスタ値を示しているわけではない。図１５のタイミングチャートでは、時刻Ｔ２より前に設定される設定レジスタ６１３の初期値は１０００(サイクル)であり、変更レジスタ６１４の初期値は２５０(サイクル)である（Ｓ１１）。時刻Ｔ２で設定更新フラグの作用により、デフォルトの参照先である設定レジスタ６１３の設定値が観測・統計部６１１の内部信号の設定値に反映される（Ｓ４１、Ｓ４２）。時刻Ｔ７でバスモニタは測定開始トリガを受領し（Ｓ４４）、時刻Ｔ８から測定が開始される（Ｓ４５）。
【００５８】
測定が開始されてからの最初の統計処理期間について、バスモニタは１０００サイクル分のデータ転送量の累計値を統計処理の結果として算出する。バスモニタは、時刻Ｔ１００７において有効信号をアサートする。バスモニタは、時刻Ｔ１００７において、タイムスタンプカウンタの時刻情報と共にデータカウンタの値をＤＡＴＡ１としてＳＲＡＭ１６に出力する（Ｓ４７）。また、最初の統計処理期間において、特定のトランザクションＩＤを持つトランザクションが検出され、かつ外部からのイベント信号が活性化されている（Ｓ７２）。したがって、参照先がデフォルトの設定レジスタ６１３から変更レジスタ６１４に変更される（Ｓ６５）。時刻Ｔ１００７において、設定更新フラグの作用により、変更レジスタ６１４が参照され、その設定値（２５０サイクル）が観測・統計部６１１の内部信号の設定値に反映される。その結果、次の（二番目の）統計処理期間は最初の統計処理期間より短くなる。
【００５９】
二番目の統計処理期間では、バスモニタは２５０サイクル分のデータ転送量の累計値を統計処理の結果として算出する。時刻Ｔ１２５７において、バスモニタはタイムスタンプカウンタの時刻情報と共にデータカウンタの値をＤＡＴＡ２としてＳＲＡＭ１６に出力する（Ｓ４７）。この統計処理期間においても、特定のトランザクションＩＤを持つトランザクションを検出し、かつ外部からのイベント信号が活性化されている（Ｓ７２）が、既に参照先のレジスタを切り替え済みのため（Ｓ３４）、切り替えは行われない。したがって、観測・統計部６１１の内部信号の設定値は２５０(サイクル)のままで、三番目の統計処理期間を測定する。
【００６０】
三番目の統計処理期間では、バスモニタは２５０サイクル分のデータ転送量の累計値を統計処理の結果として算出する。時刻Ｔ１５０７において、バスモニタはタイムスタンプカウンタの時刻情報と共にデータカウンタの値をＤＡＴＡ３としてＳＲＡＭ１６に出力する（Ｓ４７)。この統計処理期間では、外部からのイベント信号が非活性化されたため（Ｓ７２）、参照先が変更レジスタ６１４から設定レジスタ６１３に変更される（Ｓ６８）。時刻Ｔ１５０７において、設定更新フラグの作用により、設定レジスタ６１３の設定値（１０００サイクル）が観測・統計部６１１の内部信号の設定値に反映される。その結果、四番目の統計処理期間の長さは最初の統計処理期間の長さと同じとなる。
【００６１】
その後、同様な処理が続く。時刻Ｔ５５０７において、バスモニタは統計処理期間の満了と共に、外部から測定終了トリガを受領する。バスモニタはタイムスタンプカウンタの時刻情報と共にデータカウンタの値をＤＡＴＡ６としてＳＲＡＭ１６に出力し（Ｓ４７）、測定は終了する（Ｓ４９）。
【００６２】
本変形例に係るバスモニタによると、バスモニタ１４が観測した転送事象および外部のイベント信号の状態に応じて、統計処理期間をバスモニタが自律的に変更することができる。したがって、統計処理期間を外部から再設定する場合と比べて、よりリアルタイムでピンポイントな統計処理の結果を得ることができる。バスモニタでは必要なときに必要な粒度で統計処理が行われるので、少ないメモリコストで効果的に統計処理の結果を取得することができる。
【００６３】
本変形例では、特定のトランザクションＩＤが検出され、かつ外部からのイベント信号が活性化されている場合に、統計処理期間の長さを変更する場合を説明した。他の変形例では、外部からのイベント信号だけで（すなわち、転送事象や統計処理の結果によらずに）、統計処理期間の変更の要否が判定されてもよい。
【符号の説明】
【００６４】
２  システムバス、  １４  バスモニタ、  ２０  バスシステム、  １０１  判定部、  １０２  決定部、  １０３  観測・統計部。
【図１】
2018200570.tif 000003
【図２】
2018200570.tif 000004
【図３】
2018200570.tif 000005
【図４】
2018200570.tif 000006
【図５】
2018200570.tif 000007
【図６】
2018200570.tif 000008
【図７】
2018200570.tif 000009
【図８】
2018200570.tif 000010
【図９】
2018200570.tif 000011
【図１０】
2018200570.tif 000012
【図１１】
2018200570.tif 000013
【図１２】
2018200570.tif 000014
【図１３】
2018200570.tif 000015
【図１４】
2018200570.tif 000016
【図１５】
2018200570.tif 000017