(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-05
(45)【発行日】2022-09-13
(54)【発明の名称】信号収集方法及び信号収集装置
(51)【国際特許分類】
G06F 11/34 20060101AFI20220906BHJP
【FI】
G06F11/34 176
(21)【出願番号】P 2020529924
(86)(22)【出願日】2018-07-12
(86)【国際出願番号】 JP2018026379
(87)【国際公開番号】W WO2020012612
(87)【国際公開日】2020-01-16
【審査請求日】2021-06-10
(73)【特許権者】
【識別番号】514315159
【氏名又は名称】株式会社ソシオネクスト
(74)【代理人】
【識別番号】100189430
【氏名又は名称】吉川 修一
(74)【代理人】
【識別番号】100190805
【氏名又は名称】傍島 正朗
(72)【発明者】
【氏名】毛利 真崇
(72)【発明者】
【氏名】槌矢 浩則
【審査官】赤穂 州一郎
(56)【参考文献】
【文献】特開平05-061728(JP,A)
【文献】特開平07-036735(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
バスを備える電子回路デバイスにおける信号が示す内部状態を収集する信号収集方法であって、
第1期間毎に前記内部状態を取得して記憶部に格納する格納ステップと、
前記第1期間よりも大きい第2期間毎に、
前記バスで転送されるデータの量である第1データ転送量を取得する第1データ転送量取得ステップと、
事前に算出された第2データ転送量を取得し、取得した前記第2データ転送量と前記第1データ転送量取得ステップで取得された前記第1データ転送量との差分を算出する差分算出ステップと、
前記差分算出ステップで算出された前記差分が所定範囲内か否かを判定し、前記差分が前記所定範囲内でないと判定した場合に、前記格納ステップでの格納を中止させる判定ステップと
を含む信号収集方法。
【請求項2】
前記判定ステップでは、前記差分が所定範囲内でないと判定した場合に、前記差分を算出してから第3期間が経過した後に、前記格納ステップでの格納を中止させ、
前記第3期間は、可変である
請求項1記載の信号収集方法。
【請求項3】
前記記憶部は、所定量の前記内部状態を記憶する容量を有し、
前記格納ステップでは、前記記憶部が前記所定量の前記内部状態を記憶している場合に、前記記憶部に記憶された最も古い前記内部状態に、最新の前記内部状態を上書きすることで、前記内部状態を前記記憶部に格納する
請求項1又は2記載の信号収集方法。
【請求項4】
前記所定範囲は、可変である
請求項1~3のいずれか1項に記載の信号収集方法。
【請求項5】
前記第2データ転送量は、前記第1データ転送量取得ステップによって過去に取得された一つ以上の前記第1データ転送量を用いて算出される
請求項1~4のいずれか1項に記載の信号収集方法。
【請求項6】
前記第2データ転送量は、前記電子回路デバイスの外におけるシミュレーションによって算出される
請求項1~4のいずれか1項に記載の信号収集方法。
【請求項7】
前記判定ステップでは、Nを2以上の整数とした場合に、N個の前記第2期間のそれぞれについて、前記差分算出ステップで算出された前記差分が前記所定範囲内か否かを示すN個の判断情報を生成し、生成した前記N個の判断情報に基づいて、前記第1データ転送量の時間変化において周期崩れが発生したか否かを判定し、前記周期崩れが発生したと判定した場合に、前記格納ステップでの格納を中止させる
請求項1~6のいずれか1項に記載の信号収集方法。
【請求項8】
前記判定ステップでは、前記N個の判断情報のうちの一つだけが、前記差分が前記所定範囲内でないことを示す場合に、前記周期崩れが発生したと判定する
請求項7記載の信号収集方法。
【請求項9】
前記判定ステップでは、前記N個の判断情報の全てが、前記差分が所定範囲内であることを示す場合には、前記周期崩れが発生したと判定しない
請求項7記載の信号収集方法。
【請求項10】
前記判定ステップでは、Mを1以上N-1未満の整数とした場合に、前記N個の判断情報のうち1以上M個以下の判断情報が、前記差分が所定範囲内でないことを示すときに、前記周期崩れが発生したと判定する
請求項7記載の信号収集方法。
【請求項11】
前記Mは、可変である
請求項10記載の信号収集方法。
【請求項12】
前記判定ステップでは、前記N個の判断情報のそれぞれに対して対応する重み付けをした後に総和を算出し、算出した総和と閾値とを比較することで、前記周期崩れが発生したと判定する
請求項7記載の信号収集方法。
【請求項13】
前記内部状態は、前記バスで転送されるデータの量である
請求項1~12のいずれか1項に記載の信号収集方法。
【請求項14】
前記電子回路デバイスは、1チップの半導体デバイスである
請求項1~13のいずれか1項に記載の信号収集方法。
【請求項15】
バスを備える電子回路デバイスにおける信号が示す内部状態を収集する信号収集装置であって、
第1期間毎に前記内部状態を取得して記憶する細粒度データ記憶部と、
前記第1期間よりも大きい第2期間毎に前記バスで転送されるデータの量である第1データ転送量を記憶する粗粒度データ記憶部と、
事前に算出された第2データ転送量を記憶するパターン生成部と、
前記粗粒度データ記憶部から前記第1データ転送量を取得し、前記パターン生成部から前記第2データ転送量を取得し、取得した前記第1データ転送量と取得した前記第2データ転送量との差分を算出し、算出した前記差分が所定範囲内か否かを判定し、前記差分が前記所定範囲内でないと判定した場合に、前記細粒度データ記憶部への前記内部状態の格納を中止させる判定部と
を備える信号収集装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、信号収集方法及び信号収集装置に関し、特に、バスを備える電子回路デバイスにおける信号が示す内部状態を収集する信号収集方法に関する。
【背景技術】
【0002】
半導体の集積度の向上に伴い、システム全体が一つのLSI上で実現されるSoC(System On Chip)のようにLSI内の動作内容が複雑化してくると、LSIが意図した性能を発揮できない場合、もしくは意図した動作をしない場合、何をどのように調べて原因を突き止めるかが大変難しくなる。通常、動作異常がある場合を再現し、その時のLSIの各種の内部状態を分析することで原因を解析する。
【0003】
一般に、動作異常が生じていることと、システム内のバス上のデータ転送量の変化が通常と違うこととは強い相関があるので、何らかの方法でバス上の状態を監視し、その結果からLSIの内部状態を収集することで、原因の解析のための情報が得られる。
【0004】
そのために、従来、測定対象システムにおけるバス上のデータ転送量を観測する技術が提案されている(例えば、特許文献1参照)。
【0005】
特許文献1では、測定対象システムからプローブを介して取得した信号を使ってトリガを生成し、生成したトリガを用いて所望の信号をサンプリングするデジタル信号測定装置が開示されている。これにより、測定対象システムにおけるバス上の信号トラフィックに対し、長時間の観測を可能とし、かつ測定対象システムの動作に応じてリアルタイムでの観測を可能とするというものである。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1の技術では、プロービングのための専用ピンが必要となり、解析コストが高くなるという問題がある。また、特許文献1の技術では、サンプリングした情報を観測するだけなので、異常が発生したタイミング付近での詳細な情報を得るためには、広いタイミング範囲で膨大なデータを蓄積する必要があり、そのために、大きな記憶容量のメモリを必要とする。また、このようなデジタル信号測定装置を測定対象システムのチップに組み込む場合には、専用ピン及び大記憶容量のメモリをチップに組み込む必要があり、チップ面積の増大をもたらし、チップコストを高くしてしまう。
【0008】
そこで、本発明は、上記問題に鑑みてなされたものであり、従来よりも簡易な構成で実現され、かつ、測定対象システムにおいて異常が発生したタイミング付近での詳細な情報を得ることを可能にする信号収集方法及び信号収集装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明の一形態に係る信号収集方法は、バスを備える電子回路デバイスにおける信号が示す内部状態を収集する方法であって、第1期間毎に前記内部状態を取得して記憶部に格納する格納ステップと、前記第1期間よりも大きい第2期間毎に、前記バスで転送されるデータの量である第1データ転送量を取得する第1データ転送量取得ステップと、事前に算出された第2データ転送量を取得し、取得した前記第2データ転送量と前記第1データ転送量取得ステップで取得された前記第1データ転送量との差分を算出する差分算出ステップと、前記差分算出ステップで算出された前記差分が所定範囲内か否かを判定し、前記差分が前記所定範囲内でないと判定した場合に、前記格納ステップでの格納を中止させる判定ステップとを含む。
【0010】
上記目的を達成するために、本発明の一形態に係る信号収集装置は、バスを備える電子回路デバイスにおける信号が示す内部状態を収集する装置であって、第1期間毎に前記内部状態を取得して記憶する細粒度データ記憶部と、前記第1期間よりも大きい第2期間毎に前記バスで転送されるデータの量である第1データ転送量を記憶する粗粒度データ記憶部と、事前に算出された第2データ転送量を記憶するパターン生成部と、前記粗粒度データ記憶部から前記第1データ転送量を取得し、前記パターン生成部から前記第2データ転送量を取得し、取得した前記第1データ転送量と取得した前記第2データ転送量との差分を算出し、算出した前記差分が所定範囲内か否かを判定し、前記差分が前記所定範囲内でないと判定した場合に、前記細粒度データ記憶部への前記内部状態の格納を中止させる判定部とを備える。
【発明の効果】
【0011】
本発明により、従来よりも簡易な構成で実現され、かつ、測定対象システムにおいて動作異常が発生したタイミング付近での詳細な情報を得ることを可能にする信号収集方法及び信号収集装置が実現される。
【図面の簡単な説明】
【0012】
【
図1】
図1は、実施の形態に係る信号収集装置の構成を示すブロック図である。
【
図2】
図2は、
図1に示された周期性判定部の詳細な構成を示すブロック図である。
【
図3A】
図3Aは、実施の形態に係る信号収集装置の基本動作を説明するためのデータ転送量の変化例を示す図である。
【
図3B】
図3Bは、実施の形態に係る信号収集装置の周期パターン生成部の動作を説明する図である。
【
図3C】
図3Cは、実施の形態に係る信号収集装置の周期性判定部の基本動作を示す図である。
【
図3D】
図3Dは、実施の形態に係る信号収集装置の周期性判定部の詳細な動作例を示す図である。
【
図4A】
図4Aは、実施の形態に係る信号収集装置の粗粒度データ記憶部及び周期性判定部の動作を示すフローチャートである。
【
図4B】
図4Bは、実施の形態に係る信号収集装置の細粒度データ記憶部の動作を示すフローチャートである。
【
図5】
図5は、過去に取得された第1データ転送量を用いて周期パターンを生成する周期パターン生成部を備える、実施の形態の第1変形例に係る信号収集装置の構成を示すブロック図である。
【
図6】
図6は、測定対象の電子回路デバイス以外の環境で生成された周期パターンを保持する周期パターン生成部を備える、実施の形態の第2変形例に係る信号収集装置の構成を示すブロック図である。
【
図7】
図7は、実施の形態の第3変形例に係る周期性判定部の構成を示すブロック図である。
【
図8A】
図8Aは、実施の形態の第4変形例に係る周期性判定部の構成を示すブロック図である。
【
図8B】
図8Bは、実施の形態の第4変形例に係る周期性判定部の動作を示すフローチャートである。
【
図8C】
図8Cは、実施の形態の第4変形例に係る周期性判定部の動作例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、回路、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略又は簡略化する場合がある。
【0014】
図1は、実施の形態に係る信号収集装置10の構成を示すブロック図である。信号収集装置10は、バスを備える電子回路デバイス(図示せず)における信号が示す内部状態を収集(つまり、観測)する回路である。ここで、「バスを備える電子回路デバイス」とは、データ転送用のバスを備える測定対象システムであり、SoCのように1チップのLSIで実現されていてもよいし、プリント基板上の回路で実現されていてもよい。信号収集装置10は、測定対象の電子回路デバイスと電気的に接続されていればよく、具体的には、測定対象の電子回路デバイスに組み込まれて実装されてもよいし、測定対象の電子回路デバイスとは別個の回路で実現されてもよい。
【0015】
図1に示されるように、信号収集装置10は、コマンド解析部11、細粒度データ記憶部12、粗粒度データ記憶部13、周期パターン生成部14、及び、周期性判定部15で構成される。
【0016】
コマンド解析部11は、測定対象の電子回路デバイスが備えるバスを介したデータ転送に関するコマンドを収集して解析する回路であり、少なくともバスを介して転送される全てのデータ(ただし、Readのみ、Writeのみ、あるいは、Read&Writeを対象とするデータ)について、データ転送量を特定して出力する。
【0017】
より詳しくは、コマンド解析部11は、電子回路デバイスが備えるバス上の箇所でコマンドを収集して解析する。ここで、「バス上の箇所」とは、具体的には、電子回路デバイスが外部メモリとやりとりする箇所であり、例えば、電子回路デバイスが備えるメモリコントローラ内である。コマンド解析部11は、データ転送を引き起こすコマンドに含まれるデータ転送量に関するパラメータ(例えば、データ転送に用いられるデータ幅(ビット数)及びバースト長等)を抽出したり、データ転送を引き起こすコマンドの個数等を計数したりすることで、対象となるデータ転送が生じる度に、データ転送量を特定し、特定したデータ転送量を細粒度データ記憶部12、粗粒度データ記憶部13及び周期パターン生成部14に出力する。
【0018】
細粒度データ記憶部12は、第1期間(細粒度、例えば、10μsec)毎に内部状態を取得して記憶する記憶部の一例であり、例えば、制御回路及びメモリ(例として、シフトレジスタ)で構成される。「内部状態」は、測定対象の電子回路デバイスにおける一つ以上の信号の組み合わせであり、本実施の形態では、第1期間内に生じたデータ転送量(以下、「細粒度のデータ転送量」ともいう)である。
【0019】
より詳しくは、細粒度データ記憶部12は、第1期間を通知する信号(図中の細粒度データ記憶部12に入力される「集計区間」)が入力される度に、直前の第1期間においてコマンド解析部11から入力されたデータ転送量の全てを合計した値を算出して内部のメモリに保持する(シフトインする)という処理を繰り返す。つまり、第1期間毎のデータ転送量(つまり、内部状態)を記憶するという処理を繰り返す。
【0020】
なお、細粒度データ記憶部12は、所定量の内部状態を記憶する容量を有し、常に最新の所定量の内部状態を保持している。そのために、細粒度データ記憶部12は、既に所定量の内部状態を記憶している(つまり、空き容量がない)場合に、記憶している最も古い内部状態を破棄して最新の内部状態を格納する、あるいは、記憶している最も古い内部状態に最新の内部状態を上書きする。
【0021】
ここで、細粒度データ記憶部12は、周期性判定部15から出力されるデータ更新停止トリガの信号を受けた場合には、新たな内部状態を内部のメモリに格納する処理を中止する。また、細粒度データ記憶部12は、外部からの要求に従って、内部のメモリに記憶している全ての内部状態を外部に出力する。
【0022】
粗粒度データ記憶部13は、第1期間よりも大きい第2期間(粗粒度、例えば、1msec)毎にバスで転送されるデータの量である第1データ転送量(以下、「粗粒度のデータ転送量」ともいう)を記憶する回路であり、例えば、制御回路及びメモリ(例として、シフトレジスタ)で構成される。
【0023】
より詳しくは、粗粒度データ記憶部13は、第2期間を通知する信号(図中の粗粒度データ記憶部13に入力される「集計区間」)が入力される度に、直前の第2期間においてコマンド解析部11から入力されたデータ転送量の全てを合計した値を算出して内部のメモリに保持する(シフトインする)という処理を繰り返す。つまり、第2期間毎のデータ転送量(つまり、第1データ転送量)を記憶するという処理を繰り返す。
【0024】
本実施の形態では、粗粒度データ記憶部13は、N(Nは1以上の整数、好ましくは2以上の整数、例えば、7)個の第1データ転送量を記憶する容量を有し、常に最新の連続するN個の第1データ転送量を保持している。そのために、粗粒度データ記憶部13は、既にN個の第1データ転送量を記憶している(つまり、空き容量がない)場合に、記憶している最も古い第1データ転送量を破棄して最新の第1データ転送量を格納する、あるいは、記憶している最も古い第1データ転送量に最新の第1データ転送量を上書きする。
【0025】
ここで、粗粒度データ記憶部13は、周期性判定部15から出力されるデータ更新停止トリガの信号を受けた場合には、新たな第1データ転送量を内部のメモリに格納する処理を中止する。また、粗粒度データ記憶部13は、外部からの要求に従って、内部のメモリに記憶している全ての第1データ転送量を外部に出力する。
【0026】
周期パターン生成部14は、事前に算出された第2データ転送量を記憶するパターン生成部の一例であり、本実施の形態では、N個の第2データ転送量(以下、N個の第2データ転送量を「周期パターン」ともいう)を内部のレジスタ群に保持しており、周期性判定部15に出力する。「第2データ転送量」とは、第2期間において測定対象の電子回路デバイスが備えるバスで転送される、正常と考えられるデータの量(つまり、第1データ転送量の期待値)である。N個の第2データ転送量によって、第1データ転送量の時間変化における1周期あるいは1周期以上のパターンの期待値(つまり、「周期パターン」)が表現されている。
【0027】
本実施の形態では、周期パターン生成部14は、コマンド解析部11から送られてきたデータ転送量を第2期間毎に集計することで第2データ転送量を算出し、信号収集装置10が観測し始めたときに得られる第2データ転送量の時間変化における最初の一周期分(つまり、N個の第2データ転送量)を、N個の第1データ転送量の期待値として、保持する。
【0028】
周期性判定部15は、第2期間毎に、粗粒度データ記憶部13から第1データ転送量を取得し、周期パターン生成部14から第2データ転送量を取得し、取得した第1データ転送量と取得した第2データ転送量との差分を算出し、算出した差分が所定範囲(つまり、マージン)内か否かを判定し、差分が所定範囲内でないと判定した場合に、細粒度データ記憶部12への内部状態の格納を中止させる判定部の一例である。
【0029】
本実施の形態では、周期性判定部15は、粗粒度データ記憶部13に新たな第1データ転送量が格納される毎に、粗粒度データ記憶部13からN個の第1データ転送量を取得すると共に周期パターン生成部14からN個の第2データ転送量を取得し、取得したN個の第1データ転送量と取得したN個の第2データ転送量とについて対応する集計区間の値どうしの差分を算出し、算出したN個の差分が所定範囲内か否かを判定し、判定結果に基づいて(基本的には、差分が所定範囲内でないと判定した場合に)、第1データ転送量の時間変化において周期崩れが発生したと認定し、その認定から予め設定された可変の第3期間(つまり、内部のレジスタに書き込まれた値)が経過した後に、データ更新停止トリガを細粒度データ記憶部12及び粗粒度データ記憶部13に出力することで、細粒度データ記憶部12及び粗粒度データ記憶部13への新たなデータ転送量の格納を中止させる。
【0030】
なお、周期性判定部15が周期性の判定に用いる第1データ転送量及び第2データ転送量の個数は、必ずしもN個(つまり、粗粒度データ記憶部13及び周期パターン生成部14の物理的な記憶容量)に限られない。N個以下の任意の個数であってもよい。その場合には、周期性判定部15は、比較に用いるデータ転送量の個数を記憶するレジスタを有し、そのレジスタに格納された値に対応する個数の第1データ転送量及び第2データ転送量を取得して比較する。
【0031】
図2は、
図1に示された周期性判定部15の詳細な構成を示すブロック図である。周期性判定部15は、N個の比較器16a~16d、及び、トリガ生成部17を備える。
【0032】
比較器16aは、粗粒度データ記憶部13から取得したN個の第1データ転送量の1番目(
図2における「粗粒度データ 区間1」)と周期パターン生成部14から取得したN個の第2データ転送量の1番目(
図2における「周期パターン 区間1」)とを比較し、「粗粒度データ 区間1」が「周期パターン 区間1」を基準とするマージンの範囲内である場合に、「一致(例えば、1)」を示す判断情報を生成し、一方、そうでない場合に、「不一致(例えば、0)」を示す判断情報を生成し、生成した判断情報をトリガ生成部17に出力する。
【0033】
比較器16bは、粗粒度データ記憶部13から取得したN個の第1データ転送量の2番目(
図2における「粗粒度データ 区間2」)と周期パターン生成部14から取得したN個の第2データ転送量の2番目(
図2における「周期パターン 区間2」)とを比較し、「粗粒度データ 区間2」が「周期パターン 区間2」を基準とするマージンの範囲内である場合に、「一致(例えば、1)」を示す判断情報を生成し、一方、そうでない場合に、「不一致(例えば、0)」を示す判断情報を生成し、生成した判断情報をトリガ生成部17に出力する。
【0034】
同様にして、比較器16c~16dは、対応する集計区間の第1データ転送量と第2データ転送量とを比較し、比較結果を示す判断情報を生成し、生成した判断情報をトリガ生成部17に出力する。
【0035】
トリガ生成部17は、N個の比較器16a~16dから出力された判断情報に基づいて、第1データ転送量(つまり、「粗粒度データ」)の時間変化において周期崩れが発生したか否かを判定し、周期崩れが発生したと判定した場合に、データ更新停止トリガを細粒度データ記憶部12及び粗粒度データ記憶部13に出力する。
【0036】
次に、以上のように構成された本実施の形態に係る信号収集装置10の動作について、
図3A~
図3Cに示されるデータ転送量の変化例を示す図、及び、
図4A~
図4Eに示される信号収集装置10の動作(つまり、信号収集方法)を示すフローチャートを用いて説明する。
【0037】
図3Aは、実施の形態に係る信号収集装置10の基本動作を説明するためのデータ転送量の変化例を示す図である。
図3Aの(a)は、信号収集装置10によって観測される粗粒度のデータ転送量27(つまり、第1データ転送量)の時間変化例を示す図である。
図3Aの(b)は、
図3Aの(a)に示される観測と並行して信号収集装置10によって観測される細粒度のデータ転送量(つまり、内部状態)28の時間変化例を示す図である。
【0038】
本実施の形態に係る信号収集装置10によれば、同一の測定対象(つまり、電子回路デバイスのバス)におけるデータ転送量の時間変化が、粗粒度データ記憶部13によって粗粒度で(つまり、第2期間毎に)観測されるのと並行して(
図3Aの(a))、細粒度データ記憶部12によって細粒度で(つまり、第1期間(<第2期間)毎に)観測される(
図3Aの(b))。
【0039】
そして、周期性判定部15によって、粗粒度のデータ転送量27の時間変化について周期性(
図3Aの(a)におけるN個の集計区間(つまり、第2期間)20aで構成される比較期間20bでのパターン)が判定され、周期崩れ20cが発生したと判定された場合に、その判定から第3期間が経過した後に、データ更新停止トリガが発生され、これにより、細粒度データ記憶部12への細粒度のデータ転送量28の格納が中止される(
図3Aの(b))。
【0040】
その結果、粗粒度のデータ転送量27の時間変化において周期崩れが発生したタイミングの前後(あるいは、前のみ、あるいは、後のみ)における細粒度でのデータ転送量28の時間変化が観測され(
図3Aの(b)の格納データ21e)、周期崩れの原因の詳細な解析に利用される。
【0041】
一般に、バス上のデータ転送量の時間変化は、個々にはランダムに変化するように見えるが、適切な粒度(ここでは、粗粒度)の単位時間毎にデータ転送量の変化を見た場合に、SoC等の電子回路デバイスで実行されるアプリケーションが安定して動作しているときには、バス上のデータ転送量はある一定周期で遷移しており、その周期性が崩れたときに、何かしらの不具合が発生しているケースが多い。よって、本実施の形態に係る信号収集装置10は、粗粒度のデータ転送量27の時間変化において周期性が崩れたときに、そのタイミングの前後における詳細なデータ(つまり、内部状態)を観察できるようにしている。
【0042】
図4Aは、実施の形態に係る信号収集装置10の粗粒度データ記憶部13及び周期性判定部15の動作を示すフローチャートである。ここでは、信号収集装置10による信号収集方法のうち、粗粒度(つまり、一つの第2期間)で行われる処理が示されている。
【0043】
なお、信号収集装置10の観測が開始されると、測定対象の電子回路デバイスのバスにおいてデータ転送が行われる度に、コマンド解析部11により、そのデータ転送量が特定され、細粒度データ記憶部12及び粗粒度データ記憶部13に出力される。また、周期パターン生成部14は、信号収集装置10が観測し始めたときに得られるデータ転送量を用いて、N個の第1データ転送量の期待値、つまり、N個の第2データ転送量を保持する。
【0044】
まず、粗粒度データ記憶部13は、第2期間において(つまり、粗粒度で)、コマンド解析部11から送られてきたデータ転送量を集計することによって第1データ転送量を取得し、取得した第1データ転送量を内部のメモリに格納する(第1データ転送量取得ステップS10)。
【0045】
なお、粗粒度データ記憶部13は、N個の第1データ転送量を記憶する容量を有し、既にN個の第1データ転送量を記憶している(つまり、空き容量がない)場合には、記憶している最も古い第1データ転送量を破棄して最新の第1データ転送量を格納する、あるいは、記憶している最も古い第1データ転送量に最新の第1データ転送量を上書きすることで、常に最新の連続するN個の第1データ転送量を保持する。
【0046】
次に、周期性判定部15(より具体的には、周期性判定部15のN個の比較器16a~16d)は、粗粒度データ記憶部13からN個の第1データ転送量を取得し、周期パターン生成部14からN個の第2データ転送量を取得し、取得したN個の第1データ転送量と取得したN個の第2データ転送量とについて対応する集計区間の値どうしの差分を算出し(差分算出ステップS11)、算出したN個の差分のそれぞれが所定範囲内か否かを示すN個の判断情報を生成する(S12)。
【0047】
そして、周期性判定部15(より具体的には、周期性判定部15のトリガ生成部17)は、生成したN個の判断情報に基づいて、第1データ転送量の時間変化において周期崩れが発生したか否かを判定する(S13)。
【0048】
その結果、周期崩れが発生していると判定した場合には(S13でYes)、周期性判定部15(より具体的には、周期性判定部15のトリガ生成部17)は、その判定から予め設定された可変の第3期間が経過した後に、データ更新停止トリガを細粒度データ記憶部12及び粗粒度データ記憶部13に出力する(S14)。
【0049】
一方、周期崩れが発生していないと周期性判定部15が判定した場合には(S13でNo)、再び、次の第2期間において、同様の処理(S10~S14)が繰り返される。
【0050】
なお、ステップS12~S14は、差分算出ステップS11で算出された差分が所定範囲内か否かを判定し、差分が所定範囲内でないと判定した場合に、
図4Bに示される格納ステップでの格納を中止させる判定ステップに相当する。
【0051】
以上の処理により、
図3Aの(a)に示されるように、粗粒度のデータ転送量の時間変化について、N個の集計区間20aで構成される比較期間20b毎に同様のパターンが繰り返されること(周期性)が判定され、周期崩れ20cが発生したと判定された場合に、周期性判定部15から細粒度データ記憶部12及び粗粒度データ記憶部13にデータ更新停止トリガが出力される。
【0052】
図4Bは、実施の形態に係る信号収集装置10の細粒度データ記憶部12の動作を示すフローチャートである。ここでは、信号収集装置10による信号収集方法のうち、細粒度(つまり、一つの第1期間)で行われる処理(つまり、格納ステップ)が示されている。
【0053】
まず、細粒度データ記憶部12は、第1期間において(つまり、細粒度で)、コマンド解析部11から送られてきたデータ転送量を集計することによって内部状態を取得し(S20)、取得した内部状態を内部のメモリに格納する(S21)。なお、細粒度データ記憶部12は、所定量の内部状態を記憶する容量を有し、既に所定量の内部状態を記憶している(つまり、空き容量がない)場合に、記憶している最も古い内部状態を破棄して最新の内部状態を格納する、あるいは、記憶している最も古い内部状態に最新の内部状態を上書きすることで、常に最新の所定量の内部状態を保持する。
【0054】
そして、細粒度データ記憶部12は、周期性判定部15から出力されるデータ更新停止トリガの信号を受信したか否かを判定する(S22)。
【0055】
その結果、データ更新停止トリガの信号を受信したと判定した場合には(S22でYes)、細粒度データ記憶部12は、新たな内部状態を内部のメモリに格納する処理を中止する(S23)。
【0056】
一方、データ更新停止トリガの信号を受信していないと判定した場合には(S22でNo)、細粒度データ記憶部12は、再び、次の第1期間において、同様の処理(S20~S23)を繰り返す。
【0057】
これにより、
図3Aの(b)に示される細粒度のデータ転送量の時間変化のように、細粒度データ記憶部12は、内部状態の取得及び破棄を繰り返し(つまり、内部のメモリの状態は、格納データ21aから、格納データ21b、格納データ21c、格納データ21dへと変化し)、その後、粗粒度のデータ転送について周期崩れが発生してから第3期間が経過したときに発せられるデータ更新停止トリガの信号を受信し、受信したタイミングで格納処理を中止する。その結果、細粒度データ記憶部12には、粗粒度のデータ転送について周期崩れが発生してから第3期間が経過したタイミングで取得した内部状態を最後のデータとする格納データ21eが保持された状態で、格納処理が停止され、外部への読み出しが可能な状態となる。
【0058】
図3Bは、実施の形態に係る信号収集装置10の周期パターン生成部14の動作を説明する図である。周期パターン生成部14は、信号収集装置10が観測し始めると、コマンド解析部11から送られてきたデータ転送量を第2期間毎に(つまり、粗粒度で)集計することで第2データ転送量25a及び25bを算出し、順に、内部のN個のレジスタ(regA、regB、・・、regG)に保持する。その結果、周期パターン生成部14には、粗粒度のデータ転送についての周期パターン24、つまり、N個の第1データ転送量の期待値(つまり、N個の第2データ転送量)が保持される。
【0059】
なお、各集計区間(N個の第2データ転送量のそれぞれ)について、第1データ転送量との一致性を判断するのに用いられるマージン26を任意に設定することができる。この場合には、例えば、N個のレジスタ(regA、regB、・・、regG)のそれぞれには、当該集計区間での第2データ転送量の下限値と上限値とが保持される。その結果、周期性判定部15における対応する集計区間の第1データ転送量と第2データ転送量との比較においては、第1データ転送量が第2データ転送量の下限値以上で上限値以下である場合に、「一致」を示す判断情報が生成される。
【0060】
図3Cは、実施の形態に係る信号収集装置10の周期性判定部15の基本動作(つまり、
図4AのステップS11及びS12の詳細)を示す図である。
図3Cの(a)は、周期パターン生成部14から取得されたN個の第2データ転送量(つまり、周期パターン24)の例を示す。
図3Cの(b)は、粗粒度データ記憶部13に格納される粗粒度のデータ転送量(つまり、第1データ転送量)27の例を示す。
【0061】
周期性判定部15は、N個の粗粒度のデータ転送量27を単位として周期パターン24との集計区間の値どうしの差分を算出し(
図4AのS11)、算出したN個の差分のそれぞれが所定範囲内(周期パターン生成部14に設定されたマージンの範囲内)か否かを示す(範囲内である場合には、「1(一致)」を示し、範囲内でない場合には、「0(不一致)」を示す)N個の判断情報を生成する(
図4AのS12)。
【0062】
図4Cは、
図4AのステップS13(「周期崩れ」の判定)の詳細(第一の例)を示すフローチャートである。ここでは、「周期崩れ」と判定されるケースの一例が示されている。
【0063】
まず、周期性判定部15において、トリガ生成部17は、N個の第1データ転送量とN個の第2データ転送量(つまり、周期パターン)とについて対応する集計区間の値どうしのそれぞれが一致する(つまり、差分が所定範囲内)か否かを示すN個の判断情報を、N個の比較器16a~16dから、取得する(S30)。
【0064】
そして、トリガ生成部17は、取得したN個の判断情報のうちの一つだけが「0(不一致)」(つまり、差分が所定範囲内でないこと)を示すか否かを判断する(S31)。
【0065】
その結果、N個の判断情報のうちの一つだけが「0(不一致)」を示すと判断した場合にだけ(S31でYes)、トリガ生成部17は、周期崩れが発生したと判定する(S32)。
【0066】
図4Dは、
図4AのステップS13(「周期崩れ」の判定)の詳細(第二の例)を示すフローチャートである。ここでは、「周期崩れ」と判定しないケースの一例が示されている。
【0067】
まず、周期性判定部15において、トリガ生成部17は、N個の第1データ転送量とN個の第2データ転送量(つまり、周期パターン)とについて対応する集計区間の値どうしのそれぞれが一致する(つまり、差分が所定範囲内)か否かを示すN個の判断情報を、N個の比較器16a~16dから、取得する(S30)。
【0068】
そして、トリガ生成部17は、取得したN個の判断情報の全てが「1(一致)」(つまり、差分が所定範囲内である)を示すか否かを判断する(S31a)。
【0069】
その結果、N個の判断情報の全てが「1(一致)」を示すと判断した場合にだけ(S31aでYes)、トリガ生成部17は、周期崩れが発生したと判定しない(つまり、正常な周期であると判定する)(S32a)。
【0070】
図4Eは、
図4AのステップS13(「周期崩れ」の判定)の詳細(第三の例)を示すフローチャートである。ここでは、「周期崩れ」と判定されるケースの一例が示されている。
【0071】
まず、周期性判定部15において、トリガ生成部17は、N個の第1データ転送量とN個の第2データ転送量(つまり、周期パターン)とについて対応する集計区間の値どうしのそれぞれが一致する(つまり、差分が所定範囲内)か否かを示すN個の判断情報を、N個の比較器16a~16dから、取得する(S30)。
【0072】
そして、トリガ生成部17は、取得したN個の判断情報のうち1以上M(Mは1以上N-1未満の整数)個以下の判断情報が「0(不一致)」(つまり、差分が所定範囲内でないこと)を示すか否かを判断する(S31b)。
【0073】
その結果、1以上M個以下の判断情報が「0(不一致)」を示すと判断した場合にだけ(S31bでYes)、トリガ生成部17は、周期崩れが発生したと判定する(S32)。
【0074】
なお、上記
図4C~
図4Eに示されるフローチャートによる判断手法は、それらの全てが周期性判定部15に実装されていてもよいし、それらのうちの一つ又は二つが周期性判定部15に実装されていてもよい。
【0075】
また、周期性判定部15のトリガ生成部17は、取得したN個の判断情報が、上記
図4C~
図4Eに示されるフローチャートのいずれにも該当しないケースである場合には、周期崩れの判定の対象としない(つまり、判定対象外と扱う)。つまり、この場合には、トリガ生成部17は、データ更新停止トリガを出力しない。
【0076】
図3Dは、実施の形態に係る信号収集装置10の周期性判定部の詳細な動作例(つまり、上記
図4C~
図4Eに示されるフローチャートの動作例)を示す図である。
図3Dの(a)~(e)は、この順で時間(つまり、第1期間)が経過した場合における周期性判定部15による判定対象となるN(ここでは、7)個の第1データ転送量(黒枠で囲まれた箇所)の遷移を示す。横に延びるグラフは、粗粒度のデータ転送量(つまり、第1データ転送量)27の時間変化である。黒枠は、周期パターン生成部14が保持する周期パターン(つまり、N(ここでは、7)個の第2データ転送量)24である。黒枠内のN個の数値(0又は1)は、集計区間毎の判断情報を示し、N個の判断情報の横に置かれた数値は、「1(一致)」を示す判断情報の合計数を示す。
【0077】
本図に示される動作例では、周期性判定部15は、次のように動作する。
【0078】
図3Dの(a)に示されるように、最初の第1期間では、判定の対象となるN個の第1データ転送量は、周期パターン24と完全に一致している。よって、周期性判定部15のトリガ生成部17は、取得したN個の判断情報の全てが「1(一致)」を示すと判断するので、周期崩れが発生したと判定しない(つまり、正常な周期であると判定する)(
図4D参照)。
【0079】
また、
図3Dの(b)に示されるように、次の第1期間では、判定の対象となるN個の第1データ転送量のうちの一つだけが周期パターン(つまり、一つの第2データ転送量)24と一致している。なお、
図3Dの(b)に示されるように、ここでの一致の判定は、第1データ転送量が第2データ転送量を基準とするマージンの範囲内にあるために、得られている。よって、周期性判定部15のトリガ生成部17は、取得したN個の判断情報のうちのN-1個が「0(不一致)」を示すと判断するので、上記
図4C~
図4Eに示されるフローチャートのいずれにも該当しないケースであることから、周期崩れの判定の対象としない。
【0080】
また、
図3Dの(c)に示されるように、さらに次の第1期間では、判定の対象となるN個の第1データ転送量の全てが周期パターン(つまり、一つの第2データ転送量)24と一致していない。よって、周期性判定部15のトリガ生成部17は、取得したN個の判断情報の全てが「0(不一致)」を示すと判断するので、上記
図4C~
図4Eに示されるフローチャートのいずれにも該当しないケースであることから、周期崩れの判定の対象としない。
【0081】
また、
図3Dの(d)に示されるように、さらに次の第1期間では、判定の対象となるN個の第1データ転送量のうちの一つだけが周期パターン(つまり、一つの第2データ転送量)24と一致している。よって、周期性判定部15のトリガ生成部17は、取得したN個の判断情報のうちのN-1個が「0(不一致)」を示すと判断するので、上記
図4C~
図4Eに示されるフローチャートのいずれにも該当しないケースであることから、周期崩れの判定の対象としない。
【0082】
また、
図3Dの(e)に示されるように、さらに複数の第1期間が経過した後に、判定の対象となるN個の第1データ転送量のうちの一つだけが周期パターン(つまり、一つの第2データ転送量)24と不一致となっている。よって、周期性判定部15のトリガ生成部17は、取得したN個の判断情報のうちの一つだけが「0(不一致)」を示すと判断するので、周期崩れが発生したと判定する(
図4C参照)。
【0083】
以上のように、本実施の形態に係る信号収集装置10は、バスを備える電子回路デバイスにおける信号が示す内部状態を収集する装置であって、第1期間毎に内部状態を取得して記憶する細粒度データ記憶部12と、第1期間よりも大きい第2期間毎にバスで転送されるデータの量である第1データ転送量を記憶する粗粒度データ記憶部13と、事前に算出された第2データ転送量を記憶する周期パターン生成部14と、粗粒度データ記憶部13から第1データ転送量を取得し、周期パターン生成部14から第2データ転送量を取得し、取得した第1データ転送量と取得した第2データ転送量との差分を算出し、算出した差分が所定範囲内か否かを判定し、差分が所定範囲内でないと判定した場合に、細粒度データ記憶部12への内部状態の格納を中止させる周期性判定部15とを備える。
【0084】
これにより、本実施の形態に係る信号収集装置10によれば、測定対象の電子回路デバイスに対してプロービングするための専用ピンを用いることなく、電子回路デバイスに電気的に接続することで、内部状態及び第1データ転送量をサンプリングできる。また、粗粒度(つまり、第2期間毎に)でサンプリングされるデータ転送量に基づいて細粒度(つまり、第1期間毎に)での内部状態のサンプリングが停止するので、粗粒度のデータ転送量において異常が発生したタイミング付近で、細粒度で(つまり、詳細な)内部情報の時間変化が観測される。よって、従来よりも簡易な構成で実現され、かつ、測定対象システムにおいて動作異常が発生したタイミング付近での詳細な情報を得ることを可能にする信号収集装置が実現される。
【0085】
また、本実施の形態に係る信号収集方法によれば、バスを備える電子回路デバイスにおける信号が示す内部状態を信号収集装置10によって収集する方法であって、細粒度データ記憶部12が、第1期間毎に内部状態を取得して細粒度データ記憶部12に格納する格納ステップ(
図4BのS20~S23)と、周期性判定部15が、第1期間よりも大きい第2期間毎に、バスで転送されるデータの量である第1データ転送量を粗粒度データ記憶部13から取得する第1データ転送量取得ステップ(
図4AのS10)と、事前に算出された第2データ転送量を周期パターン生成部14から取得し、取得した第2データ転送量と第1データ転送量取得ステップで取得された第1データ転送量との差分を算出する差分算出ステップ(
図4AのS11)と、差分算出ステップで算出された差分が所定範囲内か否かを判定し、差分が所定範囲内でないと判定した場合に、格納ステップでの格納を中止させる判定ステップ(
図4AのS14)とを含む。
【0086】
これにより、本実施の形態に係る信号収集方法によれば、測定対象の電子回路デバイスに対してプロービングするための専用ピンを用いることなく、電子回路デバイスに電気的に接続された信号収集装置10により、内部状態及び第1データ転送量をサンプリングできる。また、粗粒度(つまり、第2期間毎に)でサンプリングされるデータ転送量に基づいて細粒度(つまり、第1期間毎に)での内部状態のサンプリングが停止するので、粗粒度のデータ転送量において異常が発生したタイミング付近で、細粒度で(つまり、詳細な)内部情報の時間変化が観測される。よって、従来よりも簡易な構成で実現され、かつ、測定対象システムにおいて動作異常が発生したタイミング付近での詳細な情報を得ることを可能にする信号収集装置による信号収集方法が実現される。
【0087】
また、周期性判定部15は、判定ステップにおいて、差分が所定範囲内でないと判定した場合に、差分を算出してから第3期間が経過した後に、格納ステップでの格納を中止させ、第3期間は、可変である。
【0088】
これにより、第1データ転送量と第2データ転送量との差分が所定範囲内ではない異常が発生したタイミングから任意の第3期間だけ経過した後に内部状態の記録が停止するので、動作異常が発生したタイミングの任意の前後における詳細な内部状態の時間変化を観測することができる。
【0089】
また、細粒度データ記憶部12は、所定量の内部状態を記憶する容量を有し、格納ステップでは、所定量の内部状態を記憶している場合に、既に記憶している最も古い内部状態に、最新の内部状態を上書きすることで、内部状態を記憶部に格納する。
【0090】
これにより、細粒度データ記憶部12には、常に所定量の最新の内部状態が格納される。
【0091】
また、周期性判定部15が判定ステップにおいて第1データ転送量と第2データ転送量との比較に用いる所定範囲(マージン)は、可変である。
【0092】
これにより、第1データ転送量と比較される期待値としての第2データ転送量にマージンが付与され、正常な範囲内で生じ得る第1データ転送量のばらつきを吸収した正常/異常の判定が可能になる。
【0093】
また、周期性判定部15は、判定ステップでは、Nを2以上の整数とした場合に、N個の第2期間のそれぞれについて、差分算出ステップで算出された差分が所定範囲内か否かを示すN個の判断情報を生成し、生成したN個の判断情報に基づいて、第1データ転送量の時間変化において周期崩れが発生したか否かを判定し、周期崩れが発生したと判定した場合に、格納ステップでの格納を中止させる。
【0094】
これにより、連続する複数の第1データ転送量の時間変化が周期性を有するか否かを判定できるので、周期的にデータ転送量が変化するバスを備える電子回路デバイスにおける動作異常を発見できる。
【0095】
また、周期性判定部15は、判定ステップでは、N個の判断情報のうちの一つだけが、差分が所定範囲内でない(つまり、不一致である)ことを示す場合に、周期崩れが発生したと判定する。
【0096】
これにより、周期性をもつ第1データ転送量の時間変化における一部だけが崩れたケースを周期崩れと判定し、内部状態の記録を停止させることができるので、的確に動作異常を発見できる。
【0097】
また、周期性判定部15は、判定ステップでは、N個の判断情報の全てが、差分が所定範囲内である(つまり、一致する)ことを示す場合には、周期崩れが発生したと判定しない。
【0098】
これにより、一周期を形成する第1データ転送量の時間変化における全ての集計区間での第1データ転送量が周期パターンと所定範囲内で一致する場合に正常と判定されるので、期待値としての周期パターンから一部でも崩れたケースを異常として検出することが可能になる。
【0099】
また、周期性判定部15は、判定ステップでは、Mを1以上N-1未満の整数とした場合に、N個の判断情報のうち1以上M個以下の判断情報が、差分が所定範囲内でない(つまり、不一致である)ことを示すときに、周期崩れが発生したと判定する。
【0100】
これにより、一周期を形成する第1データ転送量の時間変化における一部の集計区間での第1データ転送量が周期パターンと所定範囲内で一致しない場合に、周期崩れと判定されるので、一周期を形成する第1データ転送量と周期パターンとの比較における周期ずれ(つまり、比較における位相ずれ)に起因する誤った判定が回避される。
【0101】
また、上記Mは、可変である。これにより、一周期を形成する第1データ転送量と周期パターンとの比較における周期ずれ(つまり、比較における位相のずれ)に起因する誤った判定を回避するための比較のタイミングに関する調整が可能になる。
【0102】
また、細粒度データ記憶部12に格納される内部状態は、測定対象の電子回路デバイスが備えるバスで転送されるデータの量である。これにより、測定対象の電子回路デバイスにおける同一の箇所(バス)に対して、粗粒度で動作異常の発生の有無を判定するとともに、動作異常が発生した時の詳細な(細粒度での)解析を行うことができる。
【0103】
また、測定対象の電子回路デバイスは、1チップの半導体デバイスであってもよい。その場合には、SoCのように動作内容が複雑なLSIに対する動作異常の解析が可能になる。
【0104】
(第1変形例)
なお、上記実施の形態では、周期パターン生成部14は、信号収集装置10が観測し始めたときに得られる第2データ転送量の時間変化における最初の一周期分(つまり、N個の第2データ転送量)を周期パターンとして保持したが、周期パターンの生成方法は、これに限られない。例えば、周期パターン生成部14は、過去に取得された一つ以上の第1データ転送量、具体的には、正常周期と判定されたN個の第1データ転送量を用いて周期パターンを生成してもよい。
【0105】
図5は、過去に取得された第1データ転送量を用いて周期パターンを生成する周期パターン生成部14aを備える、実施の形態の第1変形例に係る信号収集装置10aの構成を示すブロック図である。
【0106】
本変形例に係る信号収集装置10aは、基本的には、上記実施の形態に係る信号収集装置10と同様の構成を備えるが、実施の形態における周期パターン生成部14に代えて、上述した周期パターン生成部14aを備える点で、実施の形態と異なる。
【0107】
周期パターン生成部14aは、周期性判定部15から、制御線18を介して、正常周期と判定される度に生成される周期パターン生成トリガを受信すると、その判定の対象となったN個の第1データ転送量を粗粒度データ記憶部13又は周期性判定部15から取得し、取得したN個の第1データ転送量と、既に保持しているN個の第2データ転送量(つまり、周期パターン)とを、任意に設定される重みを用いて対応する集計区間のデータ転送量どうしを合成し、合成後のN個のデータ転送量を、新たに、内部のレジスタ群に周期パターンとして保持し、以降、比較判定の期待値として周期性判定部15に供給する。
【0108】
例えば、取得したN個の第1データ転送量と、既に保持しているN個の第2データ転送量との合成の重み比として、1:1に設定されている場合には、周期パターン生成部14aは、取得したN個の第1データ転送量と、既に保持しているN個の第2データ転送量とを、対応する集計区間のデータ転送量ごとに平均値を算出し、算出したN個の平均値を新たな周期パターン(つまり、N個の第2データ転送量)として保持する。
【0109】
あるいは、取得したN個の第1データ転送量と、既に保持しているN個の第2データ転送量との合成の重み比として、1:0に設定されている場合には、周期パターン生成部14aは、取得したN個の第1データ転送量を新たな周期パターン(つまり、N個の第2データ転送量)として保持する。
【0110】
なお、正常周期と判定したN個の第1データ転送量の取得方法としては、粗粒度データ記憶部13又は周期性判定部15から取得する方法だけでなく、周期パターン生成部14aが粗粒度データ記憶部13と同様の処理(つまり、コマンド解析部11から送られてきたデータ転送量を第2期間毎に集計することでN個の第2データ転送量を算出して取得する方法)であってもよい。
【0111】
以上のように、本変形例に係る信号収集装置10a及び信号収集方法によれば、周期パターン生成部14aは、保持する第2データ転送量を、第1データ転送量取得ステップによって過去に取得された一つ以上の第1データ転送量を用いて生成する。
【0112】
これにより、第1データ転送量と比較される期待値としての第2データ転送量が、過去に取得された第1データ転送量で置き換えられるので、例えば、正常と判定された第1データ転送量と置き換えることで、期待値としての第2データ転送量を、電子回路デバイスの状態の変化(あるいは、時間の経過)に依存させて変化させることができる。
【0113】
(第2変形例)
また、周期パターンの生成方法は、測定対象の電子回路デバイスにおける信号を用いる方法に限られず、測定対象の電子回路デバイス以外の環境で生成される方法であってもよい。
【0114】
図6は、測定対象の電子回路デバイス以外の環境で生成された周期パターンを保持する周期パターン生成部14bを備える、実施の形態の第2変形例に係る信号収集装置10bの構成を示すブロック図である。本変形例では、信号収集装置10bは、測定対象の電子回路デバイス5に組み込まれて実装されている。また、本図には、電子回路デバイス5以外の環境として、半導体集積回路(ここでは、測定対象の電子回路デバイス)の設計の自動化を支援する回路シミュレーション等のEDA(Electronic Design Automation)ツールを実装したPC(パーソナルコンピュータ)19aも併せて図示されている。
【0115】
本変形例に係る信号収集装置10bは、基本的には、上記実施の形態に係る信号収集装置10と同様の構成を備えるが、実施の形態における周期パターン生成部14に代えて、上述した周期パターン生成部14bを備える点で、実施の形態と異なる。
【0116】
周期パターン生成部14bは、周期性判定部15から周期パターン生成トリガを受信すると、測定対象の電子回路デバイス5の外におかれたPC19aから、PC19aが備えるEDAツール(例えば、電子回路デバイス5を設計するための回路シミュレーション)で生成されたシミュレーション結果19bをダウンロードする。シミュレーション結果19bは、信号収集装置10bが観測している電子回路デバイス5のバスにおける粗粒度のデータ転送量の時間変化における周期パターン(つまり、N個の第2データ転送量)を示すデータである。周期パターン生成部14bは、PC19aからシミュレーション結果19bをダウンロードすると、ダウンロードしたシミュレーション結果19bが示す周期パターン(つまり、N個の第2データ転送量)を、内部のレジスタ群に保持し、以降、比較判定の期待値として周期性判定部15に供給する。
【0117】
以上のように、本変形例に係る信号収集装置10b及び信号収集方法によれば、周期パターン生成部14bは、第2データ転送量を、電子回路デバイスの外におけるシミュレーションの結果を用いて、生成する。
【0118】
これにより、電子回路デバイスにおいて現実に生じる第1データ転送量が、設計段階におけるシミュレーションの結果通りの値になっているか否かの検証をすることができる。
【0119】
(第3変形例)
また、上記実施の形態では、周期性判定部15は、N個の比較器16a~16dを備えたが(
図2)、この構成に限られない。
【0120】
図7は、実施の形態の第3変形例に係る周期性判定部15aの構成(ここでは、実施の形態におけるN個の比較器16a~16dに代わる箇所の構成)を示すブロック図である。
【0121】
本変形例に係る周期性判定部15aは、実施の形態におけるN個の比較器16a~16dに代えて、2個のセレクタ30a及び30bと1個の比較器16とを備える。
【0122】
セレクタ30aは、粗粒度データ記憶部13から出力されるN個の第1データ転送量から順に一つ(つまり、1番目(「粗粒度データ 区間1」)からN番目(「粗粒度データ 区間N」)まで)を選択して出力する選択回路である。
【0123】
セレクタ30bは、セレクタ30aと同期して動作し、周期パターン生成部14から出力されるN個の第2データ転送量から順に一つ(つまり、1番目(「周期パターン 区間1」)からN番目(「周期パターン 区間N」)まで)を選択して出力する選択回路である。
【0124】
比較器16は、セレクタ30aで選択された一つの第1データ転送量とセレクタ30bで選択された一つの第2データ転送量とを比較し、第1データ転送量と第2データ転送量との差分が所定範囲(マージン)内である場合に、「一致」を示す判断情報を生成し、一方、そうでない場合に、「不一致」を示す判断情報を生成してトリガ生成部17に出力するという処理を、セレクタ30a及び30bから送られてくるN組の第1データ転送量及び第2データ転送量について、繰り返す。
【0125】
以上のように、本変形例に係る周期性判定部15aによれば、2個のセレクタ30a及び30bと1個の比較器16とを用いて、N個の第1データ転送量とN個の第2データ転送量との比較が行われる。
【0126】
これにより、上記実施の形態におけるN個の比較器16a~16dに代えて、2個のセレクタ30a及び30bと1個の比較器16という簡易な回路で、周期性を判定することが可能になる。
【0127】
(第4変形例)
また、上記実施の形態では、周期性判定部15は、N個の比較器16a~16dから出力されるN個の判断情報を対等に取り扱って正常周期/周期崩れを判定したが、N個の判断情報に重み付けをしたうえで正常周期/周期崩れを判定してもよい。
【0128】
図8Aは、実施の形態の第4変形例に係る周期性判定部15bの構成(ここでは、実施の形態におけるN個の比較器16a~16dからの出力を処理する箇所の構成)を示すブロック図である。
【0129】
本変形例に係る周期性判定部15bは、実施の形態における周期性判定部15には備えられていない新たなN個の重み計算部31a~31dと、実施の形態におけるトリガ生成部17に代わるトリガ生成部17aとを備える。
【0130】
N個の重み計算部31a~31dは、それぞれ、N個の比較器16a~16dから出力されるN個の判断情報(1(一致)又は0(不一致))のそれぞれに対して対応するN個の重み(「重み1」~「重みN」)を用いて重み付けをする乗算器である。なお、N個の重み(「重み1」~「重みN」)は、測定対象の電子回路デバイスが備えるレジスタ群、あるいは、信号収集装置10又は周期性判定部15bが備えるレジスタ群に、任意の値として、外部から書き込まれ、それらのレジスタ群からN個の重み計算部31a~31dに供給される。
【0131】
トリガ生成部17aは、N個の重み計算部31a~31dから出力される重み付けされた判断情報の総和を算出し、算出した総和と予め設定された閾値とを比較し、比較結果に基づいて、正常周期/周期崩れを判定する。例えば、総和が第1閾値より小さい場合に、判定対象外と判定してデータ更新停止トリガを出力せず、総和が第1閾値以上第2閾値(>第1閾値)以下である場合に、周期崩れが発生したと判定してデータ更新停止トリガを出力し、総和が第2閾値よりも大きい場合に、正常周期と判定してデータ更新停止トリガを出力しない。
【0132】
図8Bは、実施の形態の第4変形例に係る周期性判定部15bの動作を示すフローチャートであり、
図4AのステップS13(「周期崩れ」の判定)の詳細の変形例に係るフローチャートに相当する。
【0133】
まず、周期性判定部15bにおいて、N個の重み計算部31a~31dのそれぞれは、N個の比較器16a~16dの対応するものから、判断情報(合わせてN個の判断情報)を取得する(S30a)。
【0134】
そして、N個の重み計算部31a~31dは、取得した判断情報に対して対応する重み付けをし、続いて、トリガ生成部17aは、N個の重み計算部31a~31dから出力される重み付けされた判断情報の総和を算出する(S33)。
【0135】
そして、トリガ生成部17aは、算出した総和と、予め設定された第1閾値及び第2閾値(>第1閾値)とを比較する(S34)。
【0136】
その結果、トリガ生成部17aは、総和が第1閾値より小さい場合には(S34で「総和<第1閾値」)、判定対象外と判定してデータ更新停止トリガを出力せず(S32b)、一方、総和が第1閾値以上第2閾値(>第1閾値)以下である場合には(S34で「第1閾値≦総和≦第2閾値」)、周期崩れが発生したと判定してデータ更新停止トリガを出力し(S32c)、一方、総和が第2閾値よりも大きい場合には(S34で「第2閾値<総和」)、正常周期と判定してデータ更新停止トリガを出力しない(S32d)。
【0137】
図8Cは、実施の形態の第4変形例に係る周期性判定部15bの動作例を示す図である。本図において、ヒストグラムは、比較対象のN個の粗粒度のデータ転送量(つまり、第1データ転送量)27を示す。黒枠は、周期パターン(つまり、N個の第2データ転送量)24を示す。「比較結果」は、N個の判断情報を示す。「重み」は、重み計算部31a~31dで用いられるN個の重みを示す。「点数」は、N個の重み付け後の判断情報を示す。「点数」の合計値は、重み付け後の判断情報の総和を示す。
【0138】
本図に示される動作例では、周期性判定部15bのN個の重み計算部31a~31dは、それぞれ、比較器16a~16dから、判断情報として、1、1、0、0、0、1、1を取得し、対応する重みとして、7、7、1、1、1、5、5で重み付けをすることで、重み付け後の判断情報として、7、7、0、0、0、5、5を生成する。
【0139】
トリガ生成部17aは、重み付け後の判断情報の総和(ここでは、24)を算出し、算出した総和と、予め設定された第1閾値及び第2閾値(ここでは、第2閾値としての20)とを比較する。その結果、トリガ生成部17aは、総和(ここでは、24)が第2閾値(ここでは、20)よりも大きいと判断し、判定対象のN個の第1データ転送量が正常周期と判定してデータ更新停止トリガを出力しない。
【0140】
以上のように、本変形例に係る周期性判定部15bによれば、判定ステップでは、N個の判断情報のそれぞれに対して対応する重み付けをした後に総和を算出し、算出した総和と閾値とを比較することで、周期崩れが発生したと判定する。
【0141】
これにより、周期パターンを構成する各集計区間での比較結果に対して重み付けをすることができるので、集計区間ごとに一致度の重要度が異なる場合に、それらの重要度を反映した的確な周期性の判定が可能になる。
【0142】
以上、本発明に係る信号収集方法及び信号収集装置について、実施の形態及び第1~第4変形例に基づいて説明したが、本発明は、これらの実施の形態及び変形例に限定されるものではない。本発明の主旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態及び変形例に施したものや、実施の形態又は変形例における一部の構成要素を組み合わせて構築される別の形態も、本発明の範囲内に含まれる。
【0143】
例えば、上記実施の形態に係る信号収集装置10では、周期パターン生成部14に周期パターン(複数の第2データ転送量)が保持され、周期性判定部15において周期パターンを単位として、第1データ転送量の時間変化における周期性が判定されたが、このような周期性の判定は、必ずしも必要ではない。周期パターン生成部14に一つの第2データ転送量が保持され、周期性判定部15において一つの第1データ転送量と一つの第2データ転送量とが比較され、その比較結果に基づいて、データ更新停止トリガを発生されてもよい。つまり、上記実施の形態におけるNは、1であってもよい。これにより、個々の第1データ転送量の値について、所定の範囲内の値であるか否かが判断され、異常の発生の有無が判断される。
【0144】
また、上記実施の形態では、周期性判定部15は、周期崩れが発生したと判定したときから第3期間が経過したときにデータ更新トリガを出力したが、このような第3期間による遅延は、必ずしも必要ではない。周期崩れが発生したときに即座に細粒度データ記憶部12への格納が停止された場合であっても、そのような動作異常が発生する前の段階における詳細な内部状態を観察することができる。
【0145】
また、上記実施の形態では、周期性の判定に用いられる「所定範囲」、「M」、データ転送量の個数は、可変であったが、必ずしも可変である必要はなく、固定値であってもよい。測定対象の電子回路デバイスによっては、これらのパラメータを変更する必要がないケースもあり得る。これらのパラメータを固定値とすることで、信号収集装置10の回路規模を小さくできる。
【産業上の利用可能性】
【0146】
本発明は、バスを備える電子回路デバイスにおける信号が示す内部状態を収集する信号収集装置として、特に、簡易な構成で、かつ、測定対象システムにおいて異常が発生したタイミング付近での詳細な情報を得ることを可能にする信号収集装置として、例えば、SoC等の測定対象LSIに組み込まれる信号収集回路として、又は、測定対象システムとは別個に実現される信号収集装置として、利用できる。
【符号の説明】
【0147】
5 電子回路デバイス
10、10a、10b 信号収集装置
11 コマンド解析部
12 細粒度データ記憶部
13 粗粒度データ記憶部
14、14a、14b 周期パターン生成部
15、15a、15b 周期性判定部
16、16a~16d 比較器
17、17a トリガ生成部
18 制御線
19a PC
30a、30b セレクタ
31a~31d 重み計算部