(57)【要約】【課題】  連続する同種のサイクル回数を示すカウント値のオーバフローを少ビットのカウンタで防ぐ。【解決手段】  比較部12は前トレースデータ格納部11に格納しているトレースデータと今回のトレースデータを比較し比較の結果が一致ならカウントアップ信号を送出し、比較の結果が不一致なら今回のトレースデータを送出するとともに前トレースデータ格納部に格納しているトレースデータを入れ換え、またカウント部13へEND信号を送出する。カウント部13は、カウントアップ信号を受けるとカウントアップするが、その結果、カウント値がフルカウント値となったときはその値を送出する。データ合成部14は、カウント/データ切替ビットを付加してメモリコントローラ15へ送出する。【選択図】        図１
2007086930.tif 000002
【特許請求の範囲】
【請求項１】
前回トレース時のトレースデータを格納する前トレースデータ格納部と、
トレースデータを取得して前トレースデータ格納部に格納しているトレースデータと、今回のトレースで得たトレースデータとを比較し、比較の結果が一致ならカウントアップ信号を送出し、比較の結果が不一致なら今回のトレースデータを送出するとともに前記前トレースデータ格納部に格納しているトレースデータを今回のトレースデータと入れ換え、また前記カウント部へEND信号を送出する比較部と、
前記END信号を受けるとカウント値を送出し、その後にカウント値がクリアされてカウントアップし、また前記カウントアップ信号を受けるとカウントアップするがカウントアップの結果によりカウント値がフルの値となったときはフルカウント値を送出するカウント部と、
前記比較部からのトレースデータ、または前記カウント部からのカウント値に送出するデータがトレースデータであるかカウント値であるかを示すカウント/データ切替ビットを付加して送出するデータ合成部と、
前記データ合成部によって合成されたトレースデータおよびカウント/データ切替ビット、またはカウント値およびカウント/データ切替ビットをメモリに書き込むメモリコントローラを有することを特徴とするバスモニタ。
【請求項２】
請求項１記載のバスモニタを用いたバスモニタ方法であって、
監視対象バス上にトレースすべき情報が生起すると、この情報を構成する各信号をトレース・入力保持する段階と、
今回の入力トレースデータを前記前トレースデータ格納部に格納している前トレースデータと比較する段階と、
比較の結果、トレースデータに差異がある場合は、今回入力したトレースデータにカウンタ／データ切替ビット（“0”）を付加してメモリに書き込む段階と、
今回入力したトレースデータを前トレースデータと入れ換えて前記前トレースデータ格納部に格納する段階と、
カウント値にカウンタ／データ切替ビット（“1”）を付加してメモリに書き込む段階と、
前記カウント部をクリアした後にカウントアップする段階と、
前記比較の結果、トレースデータに差異がない場合は前記カウント部がカウントアップする段階と、
該カウントアップの結果により前記カウント部がフルカウント値となった場合にはフルカウント値をメモリに書き込む段階とを有することを特徴とするバスモニタ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスモニタ、特にメモリの効率化を図ったバスモニタに関する。
【背景技術】
【０００２】
バスモニタはバスの解析に用いられ、バスに発生する全てのサイクルについてバスに生起する情報をトレースする必要がある。その為、バス上の情報を格納する為のメモリを備えている。
【０００３】
バスに生起する情報をメモリに格納するに際して、メモリ容量を削減するため、従来、バスに同種のサイクルが連続して発生した場合を考慮して、同種のサイクルが連続して何回発生したかをカウントする為のカウンタを備え、連続した同種のサイクルについてはバスの状態と回数をメモリに格納することによりメモリを有効利用するようにしている(例えば、特許文献１参照)。
【０００４】
【特許文献２】特開平０２−００２４３６号公報（第３頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したバスモニタ装置では、バスに同種のサイクルが連続して発生した場合に、同種のサイクルが連続して何回発生したかをカウントする為のカウンタを必要とするが、サイクルのカウントを行うカウンタのビットが有限であるので、カウンタがオーバフローを起こす可能性があるという問題点がある。
【０００６】
そこで、本発明の目的は、連続する同種のサイクル回数を示すカウンタ値のオーバフローを防ぎ、性能向上を図ったバスモニタおよびバスモニタ方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のバスモニタは、前回トレース時のトレースデータを格納する前トレースデータ格納部（図１の11）と、トレースデータを取得して前トレースデータ格納部に格納しているトレースデータと今回のトレースで得たトレースデータとを比較し比較の結果が一致ならカウントアップ信号を送出し、比較の結果が不一致なら今回のトレースデータを送出するとともに前トレースデータ格納部に格納しているトレースデータを今回のトレースデータと入れ換え、また前記カウント部へEND信号を送出する比較部（図１の12）と、END信号を受けるとカウント値を送出し、その後にカウント値がクリアされてカウントアップし、またカウントアップ信号を受けるとカウントアップするが、カウントアップの結果によりカウント値がフルの値となったときはフルカウント値を送出するカウント部（図１の13）と、比較部からのトレースデータまたはカウント部からのカウント値に送出するデータがトレースデータであるかカウント値であるかを示すカウント/データ切替ビットを付加して送出するデータ合成部（図１の14）と、データ合成部によって合成されたトレースデータおよびカウント/データ切替ビットまたはカウント値およびカウント/データ切替ビットをメモリに書き込むメモリコントローラ（図１の15）を有することを特徴とする。
【０００８】
本発明のバスモニタ方法は、上記のバスモニタを用いたバスモニタ方法であって、監視対象バス上にトレースすべき情報が生起すると、この情報を構成する各信号をトレース・入力保持する段階と、今回の入力トレースデータを前トレースデータ格納部に格納している前トレースデータと比較する段階と、比較の結果、トレースデータに差異がある場合は、今回入力したトレースデータにカウンタ／データ切替ビット（“0”）を付加してメモリに書き込む段階と、今回入力したトレースデータを前トレースデータと入れ換えて前トレースデータ格納部に格納する段階と、カウント値にカウンタ／データ切替ビット（“1”）を付加してメモリに書き込む段階と、カウント部をクリアした後にカウントアップする段階と、比較の結果、トレースデータに差異がない場合はカウント部がカウントアップする段階と、該カウントアップの結果によりカウント部がフルカウント値となった場合にはフルカウント値をメモリに書き込む段階とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、カウンタ／データ切替ビットをデータに付加してメモリに書き込むこととしたため、カウンタがオーバフローした場合にフルカウント値に続けてカウント値を格納しても、トレースデータと混同することを防ぐことが可能となり、その結果として、カウンタのビット数の増加を抑止することができるという効果を得ることができる。
【発明を実施するための最良の形態】
【００１０】
［構成の説明］
図１は本発明のバスモニタを使用したバスモニタシステムのブロック図を示す。図１において、コントローラ１とメモリ２から成るバスモニタのコントローラ１は、監視対象バス３上に生起する情報を監視・トレースし、それをメモリ２に格納していく。この情報は、以下、「トレースデータ」と記す。
【００１１】
コントローラ１は、前トレースデータ格納部11，比較部12，カウント部13，データ合成部14およびメモリコントローラ15から構成されている。前トレースデータ格納部11は、前回トレース時のトレースデータを格納する。比較部12は、トレースデータを取得して前トレースデータ格納部11に格納しているトレースデータと、今回のトレースで得たトレースデータとを比較する。
【００１２】
比較の結果が一致なら、比較対照となる同種のバスサイクルが連続して発生したことになるから、カウント部13へカウントアップ信号を送出する。一方、比較の結果が不一致なら、今回のトレースデータは新規なトレースデータであるから、比較部12は、今回のトレースデータをデータ合成部14へ送出するとともに、比較部12は、前トレースデータ格納部11に格納しているトレースデータを今回のトレースデータと入れ換える。また、カウント部13へEND信号を送出する。
【００１３】
カウント部13は、比較部12からEND信号を受けると、カウント値をデータ合成部14へ送出し、かつクリアされ、その後にカウントアップする。なお、カウント値が０である本バスモニタの立上り時には、カウント部13はカウントアップするのみである。
【００１４】
カウント部13は、比較部12からカウントアップ信号を受けるとカウントアップするのみである。しかし、カウントアップの結果によりカウント値がフルの値となったときは、フルのカウント値をデータ合成部14へ送出する。
【００１５】
データ合成部14は、比較部12からのトレースデータ、またはカウント部13からのカウント値にカウント/データ切替ビットを付加してメモリコントローラ15へ送出する。カウント/データ切替ビットとは、メモリコントローラ15へ送出するデータがトレースデータであるか、カウント値であるかを示すビットである。
【００１６】
メモリコントローラ15は、データ合成部14によって合成されたトレースデータおよびカウント/データ切替ビット、またはデータ合成部14によって合成されたカウント値およびカウント/データ切替ビットをメモリ２に書き込む。
【００１７】
図２は、メモリ２に書き込まれるデータのイメージである。このデータは、トレースデータや同種のサイクルが連続して発生した場合にその回数を示すカウント値が書き込まれるトレースデータ／カウント部21と、書き込まれたデータがトレースデータかカウントデータかを示すカウント／データ切替ビット22から構成されている。図３は、トレースデータ／カウント部21とカウント／データ切替ビット22について具体的な数値を示したものである。
【００１８】
カウンタ／データ切替ビット22により、同一のメモリエリアにトレースデータとカウント値を書き込むことが可能となり、メモリの効率化が図れる。カウンタ／データ切替ビット22が“0”の時はトレースデータを、“1”の時はカウント値を示す。図２においては、トレースデータＡのバスサイクルがカウント値ａ回連続して発生し、その次にトレースデータＢのバスサイクルがカウント値（フル値＋ｂ）回連続して発生し、その次にトレースデータＣのバスサイクルが続いていることを示している。
【００１９】
トレースデータＢについてのように、カウンタ／データ切替ビット22として“1”を付加することにより、メモリ２に対してカウント値を連続して書き込んでも、トレースデータと混同されることなく、カウント部13のオーバフローを防ぐことが可能となる。
［動作の説明］
以上のように構成された本実施の形態の動作について、図４に示すフローチャートを参照しながら説明する。
【００２０】
監視対象バス３上にトレースすべき情報が生起すると、比較部12はこの情報を構成する各信号をトレース・入力保持する（図４のステップＳ１）。そして、前トレースデータ格納部11に格納している前トレースデータと比較する(ステップＳ２)。その結果、トレースデータに差異がある場合は、今回入力したトレースデータにカウンタ／データ切替ビット22（“0”）を付加してメモリ２に書き込む（ステップＳ３）。また、今回入力したトレースデータを前トレースデータ格納部11に前トレースデータと入れ換えて格納する（ステップＳ４）。
【００２１】
更に、カウント値が０である本バスモニタの立上り時を除いて（ステップＳ５）、カウント値にカウンタ／データ切替ビット22（“1”）を付加してメモリ２に書き込み（ステップＳ６）、カウント部13をクリアし（ステップＳ７）た後に、カウントアップする（ステップＳ８）。なお、本バスモニタの立上り時にはカウントアップする（ステップＳ８）のみである。
【００２２】
一方、ステップＳ２における比較の結果、トレースデータに差異がない場合は、カウント部13はカウントアップする（ステップＳ９）のみであって、トレースデータのメモリ２への書込みは行わない。この時のカウントアップの結果により、カウント部13がフルカウント値となった場合には（ステップＳ１０）、フルカウント値をメモリ２に書き込む（ステップＳ１１）。これは、カウント部13がフルカウント値となっている状態において、続いて同じトレースデータが入力してカウントアップする（ステップＳ９）とカウント値は１になってしまうからである。
【実施例１】
【００２３】
図５は、図１のコントローラ１の具体例を示す。ここでは、カウント部13は８ビット構成、トレースデータは16ビット構成としている。先ず、16ビットのバスのトレースデータ20が比較部12に入力される。比較部12では入力されたトレースデータ30と先のトレースデータを比較する。
【００２４】
トレースデータに差異（変化）がある場合は、比較部12は、この16ビットのトレースデータ30とトレースデータ書込み信号31をデータ合成部14に送信する。データ合成部14では、比較部12からのトレースデータ書込み信号31を受けるとトレースデータを示すフラグを１ビット付加して、メモリコントローラ15に17ビットデータ36を送出する。メモリコントローラ15は、受け取った17ビットデータ36をメモリ２に書き込む。
【００２５】
比較部12からカウント部13にEND信号33が送信される。これを受けたカウント部13は、８ビットのカウントデータ34とカウント書込み信号35をデータ合成部14に送り、カウンタをクリアした後でカウントアップする。
【００２６】
データ合成部14はカウント部13からのカウント書込み信号35を受けると、カウントデータを示すフラグを１ビット付加して、メモリコントローラ15に17ビットデータ36を送出する。この17ビットデータのイメージは、図４に示すように上位８ビットが常に“1”となる。メモリコントローラ15は、受け取った17ビットデータをメモリ２に書き込む。
【００２７】
トレースデータに差異（変化）が無い場合は、比較部12はカウント部13にカウントアップ信号32を送出する。カウントアップ信号32を受信したカウント部13は８ビットのカウンタのカウントアップを行う。
【００２８】
トレースデータに差異（変化）が無い状態が256回以上続いた場合、カウンタ部13はカウント値が最大値となった時点で、８ビットのカウントデータ34とカウント書込み信号35をデータ合成部14に送り、データ合成部14とメモリコントローラ15を介して17ビットデータ36をメモリ２に書き込む。
【００２９】
図３は、図２に示したデータイメージに具体的な数値を示した図であった。再び図３を参照すると、トレースデータＢのカウント値は、カウント／データ切替ビット22が“1”で表され、16ビットのオール“1”とｂとで示されている。
【図面の簡単な説明】
【００３０】
【図１】本発明のバスモニタを使用したバスモニタシステムのブロック図
【図２】メモリ２に書き込まれるデータのイメージを示す図
【図３】図２に示したデータイメージに具体的な数値を示した図
【図４】本発明の動作を示すフローチャート
【図５】図１におけるコントローラ１の具体例を示すブロック図
【符号の説明】
【００３１】
１      コントローラ
２      メモリ
３      監視対象バス
11      前とレースデータ格納部
12      比較部
13      カウント部
14      データ合成部
15      メモリコントローラ
21      トレースデータ／カウント部
22      カウント／データ切替部
【図１】
2007086930.tif 000003
【図２】
2007086930.tif 000004
【図３】
2007086930.tif 000005
【図４】
2007086930.tif 000006
【図５】
2007086930.tif 000007