JP2009020673A - 測定装置、制御回路、プログラム及び測定方法 - Google Patents

測定装置、制御回路、プログラム及び測定方法 Download PDF

Info

Publication number
JP2009020673A
JP2009020673A JP2007182320A JP2007182320A JP2009020673A JP 2009020673 A JP2009020673 A JP 2009020673A JP 2007182320 A JP2007182320 A JP 2007182320A JP 2007182320 A JP2007182320 A JP 2007182320A JP 2009020673 A JP2009020673 A JP 2009020673A
Authority
JP
Japan
Prior art keywords
data
memory
signal
unit
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007182320A
Other languages
English (en)
Inventor
Tetsuo Ueno
哲生 上野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2007182320A priority Critical patent/JP2009020673A/ja
Publication of JP2009020673A publication Critical patent/JP2009020673A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】測定装置が多量のデータを記憶することなく、測定対象装置が備えるメモリにアクセスが集中した場合のデータを解析することができる測定装置、制御回路、プログラム及び測定方法を提供する。
【解決手段】測定対象装置が備えるメモリにアクセスする信号を測定する測定装置であって、データを記憶する第1の記憶部と、測定対象装置が備えるメモリにアクセスする信号を測定するデータ測定部と、データ測定部が測定するデータを一時的に記憶する第2の記憶部と、データ測定部が測定するデータに基づいて測定対象装置が備えるメモリのメモリ使用率を計算するメモリ使用率計算部と、メモリ使用率計算部が計算するメモリ使用率が所定の閾値を超えた場合に第2の記憶部が記憶しているデータを第1の記憶部に記録するデータ制御部とを備える。
【選択図】図1

Description

本発明は、測定装置、制御回路、プログラム及び測定方法に関し、特に、測定対象装置が備えるメモリにアクセスする信号を測定する測定装置、制御回路、プログラム及び測定方法に関する。
デジタル情報家電と呼ばれる携帯電話、デジタルTV、DVD(Digital Versatile Disk)/HDD(Hard Disk Drive)レコーダなどは、多機能化により処理量が増えるとともに処理シーケンスも複雑化して、全開発期間に占めるソフトウェア開発期間の割合が増大している。
ソフトウェア開発期間の増大はコストの増大につながるため、効率的なソフトウェア開発が求められている。ソフトウェア開発において最も時間を要するのがデバグ作業であり、ソフトウェア開発期間の短縮には、迅速なデバグが欠かせない。
ソフトウェア開発において、不具合を発見しデバグを行うために、ICE(Incircuit Emulator(登録商標))を用いて処理タスクをトレース(追跡)する手法がよく使われる。
特許文献1には、ICE(登録商標)の一形態として、システムコールの入口と出口、タスクの切り替え処理直前、割り込みの入口と出口で、CPU(Central Processing Unit:中央演算処理装置)からユーザメモリに書き込まれるデータや書き込まれるアドレスをハードウェアで検出して、トレースデータとして、トレースメモリに書き込むタスクトレース装置が記載されている。
特許第3138658号公報
デジタルTVなどのデジタル映像を扱うデジタル装置では、デジタルビデオ信号やデジタルオーディオ信号を、表示したり出力できる状態までデコードしたりするためのモジュールが、一個乃至複数個用意されている。このモジュールは、デジタル装置を制御するCPUにより、処理の開始や停止の指示はされるが、一度処理を開始すると、CPUとは独立して動作し続ける。
デコード処理では、ユーザメモリに対する相当数のメモリアクセスが生じる。また、近年のデジタルTVは多機能化しており、複数のTV向けコンテンツのデコードを同時に行うことも稀ではない。そして、メモリアクセスはコンテンツ数に応じて増大する。
更に、同時に表示するメニュー画面や、OSD(On Screen Display:オンスクリーンディスプレイ)画面や、関連情報を表示するweb画面などを、CPUがデコードと並行して作成する。
CPUによる画面作成にも、ユーザメモリに対する相当数のメモリアクセスが生じる。すなわち、ひとつのユーザメモリに対して、CPUを含む複数のバスマスタであるモジュールが、同時に、相当数のアクセスを試みることになる。
このように、複数の処理が同時に行われると、メモリアクセスが集中することによるアクセス待ちが生じ、モジュールの処理が滞ることがある。
例えば、デジタルTVにおいて、ビデオデコード処理で処理が滞ると、表示されている画像に乱れが生じる不具合が発生する。
しかし、画像が乱れる不具合は、コンテンツが元々そのようになっている可能性もあり、即座に不具合であるとは断定できない。特に、メニュー画面のように画面の一部だけが書き換わるコンテンツでは更に判りづらい。
もし、この画像の乱れが不具合だとするとデコード処理で不具合が起きている可能性が高いが、デコード処理の不具合だとすると、原因はメモリアクセスが集中していることかもしれないし、デコードされるストリームのデータ化けかもしれない。
原因が、メモリアクセスが集中していることにあるなら、メモリアクセスを調停するアービタ設定を適切にする必要がある。一方、原因が、デコードされるストリームのデータ化けにあるなら、チューナ周りを重点的に調べる必要がある。
通常は、ビデオデコード処理を担当するモジュールが、デジタルTVを制御するCPUに対して割り込みをかけると同時に、モジュールのレジスタに割り込み要因を記録し、CPUが、プログラムにより割り込みがマスクされていなければ割り込み処理により現在のタスクを止めて、割り込み要因レジスタを読み出す仕組みが用意されていて、デコーダで不具合があったと断定できる。
ここで、アービタ設定を変えて不具合を回避しようとすると、不具合が起きたときに並行して処理をしているCPUや他のモジュールの処理状態を知る必要がある。
CPUの処理フローはICE(登録商標)のようなトレース装置で収集されたトレースデータを分析すれば予測がつくが、CPUとは独立に並行して動いている他のモジュールで行われている処理の状態は不明である。
従って、基本的に全てのモジュールの動きをトレースする必要がある。ICE(登録商標)を用いて、全てのモジュールに対してトレースしたい信号を出力させてトレースデータとして記録する方法が考えられるが、通常、集積回路としてひとつのパッケージに入っているCPUや他のモジュール全てからトレース用の信号線(当然この信号線も複数となる)を出すのはあまり現実的ではない。
特許文献1のトレース装置のようにメモリバスをトレース用に用いる手法が現実的である。特にデジタル装置ではCPUや、ビデオデコード処理モジュールや音声デコードモジュールといった集積回路内に搭載されているモジュールがアクセスするメモリ領域(メモリマップ)が固定されている場合が多く、トレースされたメモリアクセスをモジュールと関連付けるのは比較的容易である。
特許文献1ではトレースデータを記録するのみであるが、ビデオデコード処理のようにほとんどの処理をハードウェアで処理している場合では、ビデオデコード処理で起こるメモリアクセスの大半は処理データの一時記憶等のアクセスであり、処理を制御する信号はとても少なく、処理を制御する信号を記録するだけではCPU以外のどのモジュールによるメモリアクセスが原因で生じた不具合かを知るには不十分である。そのため、可能な限り全てのメモリアクセスを記録するべきである。ただし、これではトレースメモリを無駄に使用してしまうことになるので、不具合原因が特定できる部分だけ記録されるようにする必要がある。
また、CPUが他のモジュールで不具合が生じたことを知る瞬間のメモリアクセス状況が、不具合を生じさせる原因となった時のメモリアクセス状況とは違う場合がしばしばある。
ビデオデコード処理を例にとると、メモリアクセスが集中したために処理がアクセス待ちになっても、デコード処理のリアルタイム性が確保されているかを調べるタイミングにならないと、ビデオデコード処理を行っているモジュールは不具合が発生したとは判定しないので、割り込みが発生するまでには、ほぼ1フレーム程度の遅延が生じることになる。なお、一般的なビデオコンテンツでは1フレームは1/60秒(16.7ms)である。
前述したビデオデコード処理では、遅延時間は1フレーム(16.7ms)であるが、同じビデオデコード処理を行う他のモジュールでは、実装や設計の違いから、割り込みが発生するまでの遅延が数フレームに亘る可能性もある。
すなわち、モジュールからの割り込みがかかった時点より十数msから数十ms程度前のメモリアクセスを記録する必要がある。
一方で、CPUへ他のモジュールからかかる割り込みは、不具合によるエラー発生時だけではなく、例えば、CPUが各モジュールの現在の状態を把握するためのものであったり、各モジュールに入力された信号に関する情報を伝えるものであったりするので、割り込みがかかったからといって、常にメモリアクセスを記録する必要はない。割り込みがエラー発生によるものであるかどうかは、割り込み要因レジスタを確認すればわかるので、レジスタの内容がエラー発生を示すものであった時のみメモリアクセスを記録すれば良い。
すなわち、CPU以外にバスマスタとなる複数のモジュールを有するデジタル情報装置における不具合時の原因追求と原因修正作業では、任意の割り込みで生じるタスク切り替えの軌跡のようなCPUの処理フローをトレースするためのデータだけではなく、CPU以外のモジュールからメモリにアクセスされるデータをも記録しておき分析できることが求められる。また、トレースメモリが無限に提供される訳ではないので、記録するデータは必要最小限の範囲に収めることも求められる。
本発明は、上記事情に鑑みてなされたものであり、その目的は、測定装置が多量のデータを記憶することなく、測定対象装置が備えるメモリにアクセスが集中した場合のデータを解析することができる測定装置、制御回路、プログラム及び測定方法を提供することにある。
(1) 本発明は、上記課題を解決するためになされたもので、本発明の一態様による測定装置は、測定対象装置が備えるメモリにアクセスする信号を測定する測定装置であって、データを記憶する第1の記憶部と、前記測定対象装置が備えるメモリにアクセスする信号を測定するデータ測定部と、前記データ測定部が測定する信号を一時的に記憶する第2の記憶部と、前記データ測定部が測定するデータに基づいて前記測定対象装置が備えるメモリのメモリ使用率を計算するメモリ使用率計算部と、前記メモリ使用率計算部が計算するメモリ使用率が所定の閾値を超えた場合に前記第2の記憶部が記憶しているデータを前記第1の記憶部に記録するデータ制御部とを備える。さらに、メモリ使用率が所定の閾値を超えたタイミングを含む任意の範囲のデータに限って、前記第1の記憶部に記録することが望ましい。
本発明では、測定対象装置が備えるメモリのメモリ使用率が所定の閾値を超えた場合にのみ、第2の記憶部が一時的に記憶しているデータを第1の記憶部にデータ制御部が記録するようにした。よって、測定装置が多量のデータを記憶することなく、測定対象装置が備えるメモリにアクセスが集中してメモリ使用率が所定の閾値を超えた場合のデータを利用者が解析することができる。
(2) また、本発明の一態様による測定装置は、前記測定対象装置が備えるメモリにアクセスする信号の前記第2の記憶部への記録の開始を指示する第1の信号とその記録の終了を指示する第2の信号の入力を受け付ける入力部を更に備え、前記データ制御部は、前記第1の信号を受け付けた時刻から前記第2の信号を受け付けた時刻までの時間に前記メモリ使用率が所定の閾値を超えた場合に、前記第2の記憶部に記録されているデータを前記第1の記憶部に記録する。
本発明では、第1の信号を入力してから第2の信号を入力するまでの時間にデータ測定部が測定したデータを、その時間中にメモリ使用率が所定の閾値を越えた場合にのみ、第2の記憶部が一時的に記憶しているデータを第1の記憶部にデータ制御部が記録するようにした。よって、第1の信号及び第2の信号を測定装置に利用者が入力することによって、利用者が希望する時間帯のデータであって、メモリ使用率が所定の閾値を超えた時間帯のデータを利用者が解析することができる。
(3) また、本発明の一態様による測定装置は、前記第1の信号は、前記メモリにアクセスするプロセッサに割り込みが発生したことを通知する割込信号であり、前記第2の信号は、前記測定対象装置で所定の理由により割り込みが発生したことを通知する通知信号である。
本発明では、測定対象装置から測定装置に割込信号が入力されてから通知信号が入力されるまでの時間にデータ測定部が測定したデータを、その時間中にメモリ使用率が所定の閾値を越えた場合にのみ、第2の記憶部が一時的に記憶しているデータを第1の記憶部にデータ制御部が記録するようにした。よって、測定対象装置が測定装置に割込信号を出力してから通知信号を出力するまでの時間帯のデータであって、メモリ使用率が所定の閾値を超えた時間帯のデータを利用者が解析することができる。
(4) また、本発明の一態様による測定装置の前記データ制御部は、前記第2の記憶部が記憶しているデータと前記メモリ使用率計算部が計算するメモリ使用率とを対応付けて前記第1の記憶部に記録する。
本発明では、メモリ使用率が所定の閾値を超えた場合に、第2の記憶部が一時的に記憶しているデータに対応付けてメモリ使用率も第1の記憶部にデータ制御部が記録するようにしたので、メモリに対してどのようなアクセスがあった場合に、メモリ使用率がどのように変化したのかについて、利用者が解析することができる。
(5) また、本発明の一態様による測定装置は、前記データ制御部が前記第2の記憶部が記憶しているデータを前記第1の記憶部に記録した場合に、前記測定対象装置の処理状態の出力を要求する出力要求信号を前記測定対象装置に出力する出力部を備え、前記データ制御部は、前記測定対象装置から出力される前記処理状態のデータを前記第1の記憶部に記録したデータに対応付けて記録する。
本発明では、第1の記憶部にデータを記録する際に、測定対象装置の処理状態も記録するようにしたので、メモリに対してどのようなデータのアクセスがあった場合に、測定対象装置がどのような処理状態にあったのかについて、利用者が解析することができる。
(6) また、本発明の一態様による制御回路は、測定対象装置が備えるメモリにアクセスする制御回路であって、前記制御回路内のプロセッサに割り込みをかける割込部と、前記割込部が割り込みをかけた場合に割り込みの発生を通知する割込信号を、前記メモリにアクセスする信号を測定する測定装置に出力する割込信号出力部とを備える。
(7) また、本発明の一態様による制御回路の前記割込信号出力部は、前記割込部による割り込みが所定の理由によって発生した場合にその理由を通知する通知信号を前記測定装置に出力する。
(8) また、本発明の一態様によるプログラムは、データを記憶する第1の記憶部と、データを一時的に記憶する第2の記憶部とを備え、測定対象装置が備えるメモリにアクセスする信号を測定する測定装置のコンピュータに、前記測定対象装置が備えるメモリにアクセスする信号を測定する第1のステップと、前記第1のステップで測定するデータを一時的に前記第2の記憶部に記録する第2のステップと、前記第1のステップで測定するデータに基づいて前記測定対象装置が備えるメモリのメモリ使用率を計算する第3のステップと、前記第3のステップで計算するメモリ使用率が所定の閾値を超えた場合に前記第2の記憶部が記憶しているデータを前記第1の記憶部に記録する第4のステップとを実行させる。
(9) また、本発明の一態様による測定方法は、データを記憶する第1の記憶部と、データを一時的に記憶する第2の記憶部とを備え、測定対象装置が備えるメモリにアクセスする信号を測定する測定装置を用いた測定方法であって、前記測定対象装置が備えるメモリにアクセスする信号を測定する第1のステップと、前記第1のステップで測定するデータを一時的に前記第2の記憶部に記録する第2のステップと、前記第1のステップで測定するデータに基づいて前記測定対象装置が備えるメモリのメモリ使用率を計算する第3のステップと、前記第3のステップで計算するメモリ使用率が所定の閾値を超えた場合に前記第2の記憶部が記憶しているデータを前記第1の記憶部に記録する第4のステップとを実行する。
本発明の測定装置、制御回路、プログラム及び測定方法によれば、測定装置が多量のデータを記憶することなく、測定対象装置が備えるメモリにアクセスが集中した場合のデータを解析することができる。
以下、図面を参照し、本発明の各実施形態について説明する。始めに、本発明の第1の実施形態について説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態による測定システムの概略構成図である。この測定システムは、測定装置1aと測定対象装置2aとを備えている。
図1に示すように、測定装置1aは、プローブ11、データ収集部12(データ測定部とも称する)、トレースメモリ13、トレースメモリ管理部14(データ制御部、入力部、出力部とも称する)、比率計測部15(メモリ使用率計算部とも称する)を備えている。測定装置1aは、集積回路21、メモリバス22、メモリ23を備える測定対象装置2aの状態をトレースする。
データ収集部12は、測定対象装置2aが備えるメモリ23に集積回路21がアクセスする信号(メモリアクセス信号)を、プローブ11を介して測定する。
トレースメモリ13は、トレースデータを記憶するメモリであり、一時記憶領域131(第2の記憶部とも称する)と永続的記憶領域132(第1の記憶部とも称する)とを備えている。一時記憶領域131と永続的記憶領域132には、トレースメモリ13の異なるメモリアドレスが割り当てられている。
一時記憶領域131は、データ収集部12がプローブ11を介して測定するトレースデータを一時的に記憶する。一時記憶領域131に新しいトレースデータが書き込まれると、一時記憶領域131が溢れないように、一時記憶領域131に記録されている古いトレースデータから順に消去される。
永続的記憶領域132は、トレースメモリ管理部14の制御に基づいて、一時記憶領域131に記録されているトレースデータを記憶する。なお、永続的記憶領域132とは、ユーザが上書きや削除をしない限り、記録されているトレースデータが変更されない記憶領域をいう。
トレースメモリ管理部14は、比率計測部15が計算するメモリ使用率が所定の閾値(例えば、90%)を超えた場合に、一時記憶領域131が記憶しているトレースデータを永続的記憶領域132に記録する。この一時記憶領域131に記録されるトレースデータは、後述するデータ収集部12内で、メモリアクセス信号とメモリアクセス信号をトレースに必要な処理または加工を施したデータの全部または一部である。
また、トレースメモリ管理部14は、測定対象装置2aが備えるメモリ23にアクセスするメモリアクセス信号から得られるトレースデータの一時記憶領域131への記録の開始を指示する開始信号(第1の信号とも称する)と、その記録の終了を指示する記録保持信号(第2の信号とも称する)の入力を受け付ける。
また、トレースメモリ管理部14は、一時記憶領域131が記憶しているトレースデータと、比率計測部15が計算するメモリ使用率とを対応付けて永続的記憶領域132に記録する。
比率計測部15は、データ収集部12で検知したメモリアクセス信号に基づいて、測定対象装置2aが備えるメモリ23のメモリ使用率を計算する。
測定対象装置2aは、デジタル情報装置であり、集積回路21によりデジタル情報装置として必要な主要機能が処理される。例えば、デジタル情報装置がデジタルTVである場合は、集積回路21では、チューナやネットワークから得られる符号化された映像信号(一般的には、MPEG2(Moving Picture Experts Group phase 2)またはH.264/AVCで符号化された映像ストリームデータを含むMPEG2−TSストリーム)をデコードし、IP(Internet Protocol)変換などの画像品質を高める各種処理を行った後にメニュー画面やOSD画面との合成を行い表示画面のデータとして出力する一方で、デジタルTV全体の各種動作制御を行う。なお、H.264/AVCは、ITU(国際電気通信連合)によって勧告された、動画データの圧縮符号化方式の標準の一つである。
また、集積回路21内で行われる処理は、メモリ23に記録され、又は、メモリ23を介して集積回路21内で行われる各種処理間でデータのやり取りが行われる。メモリ23としては、DRAMなどが用いられる。
集積回路21とメモリ23との間は、メモリバス22で接続されているため、集積回路21内で行われる処理は、メモリバス22のメモリアクセス信号を測定することで推定できる。
メモリバス22のメモリアクセス信号は、クロック、チップセレクト(CS:Chip Select)、アドレス、メモリ23に対するリードデータやメモリ23へのライトデータ、メモリ23に対し主にリードかライトかを指示するコマンドなどメモリにアクセスするために必要な信号であり、集積回路21が行う処理の内容や手順と、その処理でメモリ23のどのアドレスにアクセスされるのか、その時のコマンドがリードなのかライトなのかという情報と、実際のメモリバス22を流れるメモリアクセス信号とを比較することで、集積回路21でどのような処理が行われているかを知ることが可能となる。
集積回路21は、測定対象装置2aで必要となる処理や制御を行うので、メモリバス22のメモリアクセス信号を測定することにより測定対象装置2aの処理状態を検出することが可能となる。
従って、測定装置1aは、集積回路21とメモリ23を接続するメモリバス22にプローブ11を接続して、メモリバス22のメモリアクセス信号を入力データ信号として得ることで、測定対象装置2aの処理状態を検出することが可能となる。
プローブ11より入力されるデータ信号は、データ収集部12で、クロック、CS、アドレス、データ、コマンドが検知される。
データ収集部12で検知されたメモリアクセス信号は、データ収集部12内で、トレースに必要な処理または加工を施し、トレースデータとしてトレースメモリ13へ書込まれる。また、トレース装置の使用者の判断で、データ収集部12で検知された、クロック、CS、アドレス、データ、コマンドがそのまま書き込まれる場合もある。
トレースに必要な処理または加工とは、メモリアクセスプロトコルに沿ってデコードを行ったり、デコードの結果得られたアドレスを予め作成されているテーブルと比較するなどしてメモリアクセスにおけるアドレス(物理アドレス)とソフトウェアが理解しているアドレス(論理アドレス)との対応を行ったり、前記アドレスとコマンドとの対比から検知されたデータの持つ意味(どのモジュールからのライトか、など)を判定してトレースすべきか否かといった取捨選択をしたり、特定の意味を持つデータの個数をカウントするような量的な分析、時間変化やタイミングによる分析、出現頻度や分布を見るような統計的な分析、といったことをすることであり、トレース装置の使用目的に沿った仕組みが用意されていれば良い。
ここで、前者に関して補足すると、デジタルTVのようなデジタル家電の主要な集積回路では、集積回路内部のモジュール毎やビデオデコード処理・デコード後の後処理といった処理毎のようにある特定できる単位でメモリマップが固定的に使用されていることから、アドレスからそのデータ処理が、なぜ使用されているのか、又は、何に使用されているかがわかり、また、メモリアクセスのプロトコルからメモリコマンドの持つ意味を知ることができることから、検知されたデータの持つ意味を判定することが可能となる。
トレースメモリ管理部14では、トレースデータが書込まれたトレースメモリ13のアドレス管理や、記録されたトレースデータを保持し続けるか削除可能かなど、トレースメモリ13に対する管理が行われる。
また、トレースデータを保持し続けるか削除可能かなどの判定のために、トレースメモリ管理部14には、開始信号と記録保持信号の2つの信号が、測定装置1aの外部より入力される。
図2は、本発明の第1の実施形態による測定装置1aの比率計測部15の構成を示す概略ブロック図である。プローブ11を経てデータ収集部12で得られたバス22のメモリアクセス信号から、クロックCLKとチップセレクトCSが入力される。Mビットカウント部31では、入力されたチップセレクトCSがアクティブのときのクロック数をクロックCLKのタイミングに基づいてカウントする。同時に、Nビットカウント部33ではクロックCLKのタイミングに基づいてクロック数をカウントし、カウントが所定値に達した時点でキャリー信号を出力する。右シフト部32は、Nビットカウント部33よりキャリー信号が入力されると、Mビットカウント部31の出力を保持し、Nビットだけ右シフトする。右シフト部32の出力は、クロックが2個計数される毎に、その間にアクティブとなったチップセレクトCSのクロック数の割合、すなわち、チップセレクトCSがアクティブとなっていた時間の割合を出力する。
なお、チップセレクトCSは、メモリ23へのアクセスによりバス22が使用されているときにアクティブとなることから、右シフト部32の出力は、クロック周期の2倍に相当する時間内でのバス22の使用率(メモリ使用率とも称する)となる。なお、シフト量を、N−10ビットとすることで使用率を近似された千分率で出力することも可能であるし、N−7ビットのシフトで百分率相当とみなして出力しても構わない。このシフト量は、後述する標準使用限度の設定がし易い値とオーダーを合わせておけば良い。
右シフト部32の出力は、比較部34で、標準使用限度(所定の閾値とも称する)として設定された値と比較され、標準使用限度を超えていた場合にアクティブ状態を出力する。比較部34の出力は、フリップフロップ36の一方の入力端子に入力される。また、フリップフロップ36の他方の入力端子には、トレースメモリ管理部14に開始信号が入力されてから所定の時間(TE−TR)が経過するたびに解除信号が入力される。
フリップフロップ36の出力端子からの出力を超過使用フラグと呼ぶ。また、Nビットカウント部33の出力を契機に、超過出力使用フラグがトレースメモリ管理部14で認識されるだけの時間余裕を持って、リセット部35が比較部34をリセットする。一方でMビットカウント部31は、Nビットカウント部33の出力によって即座にリセットされる。
MやNは、メモリ23のデータ転送速度と、使用率を測定したい時間との関係で決めれば良い。例えば、メモリ23がDDR2−800(クロック周波数400MHz、転送速度800MT/s(Mega transfer per second))であった場合、N=22ビットのときに約10.5ms間隔で、N=25ビットのときに約83.9ms間隔で、使用量が測定できる。
測定対象装置2aに搭載されている集積回路21内のプロセッサの処理タイマの間隔が10msであればN=22ビットやN=21ビット(=約5.2ms間隔)を選択すれば、ほぼプロセッサで処理されているタスクと関連付けてトレースデータの解析が可能となる。
以上の説明において、比率計測部15の本質はメモリの使用時間比率を計測することである。そのため、ここで説明した構成に限定されるものではない。例えば、DDR2を対象とする場合、クロックの上り下りの両エッジでデータを転送することを踏まえて、Mビットカウント部31とNビットカウント部33をクロックCLKの両エッジでカウントするものとしても良いし、右シフト部32をMビットカウント部31の出力をNビットカウント部33のカウントされた値(キャリー信号ではない)で除算する除算器で構成しても良いし、リセット部35で生成するリセット信号はNビットカウント部33のキャリー信号に影響を受けない任意のタイミングとしても良い。
また、チップセレクトCSについても、バス使用率を測定するための信号として利用できる他の信号に置き換えても良い。例えば、DDRメモリでデータと共に流れるデータストローブ信号(クロックと同じ周期の信号)をカウンタ31の入力とクロックにすることで、バス上をデータが流れている時間だけをカウントすることが可能となる。
また、標準使用限度は、測定対象装置2aのメモリバスの最大転送量の90%や95%、99%という具合に、測定装置1aの使用者の使用状況に合わせて設定されれば良く、設定は適宜動的に設定されても、予め決められた値に固定されていても良い。なお、本実施形態では、標準使用限度が、測定対象装置2aのメモリバスの最大転送量の90%である場合について説明する。
図3(a)〜図3(h)は、本発明の第1の実施形態による測定装置1aの処理を説明するための図である。図3(a)〜図3(h)において、横軸は時間を示している。
測定装置1aのプローブ11を経てデータ収集部12で取得されたトレースデータは、一時的にトレースメモリ13に書き込まれる。このとき、トレースメモリ13内では一時的に書き込まれる領域(一時記憶領域131)がリングバッファを形成しており、リングバッファの領域分だけデータが順次書き込まれていく。この様子は、図3(a)に示すようになる。
なお、図3(a)〜図3(e)は、あるタイミングにおいてトレースメモリ13に書き込まれているトレースデータおよびトレースデータの記録種別を表している。また、トレースメモリ管理部14は、リングバッファ領域(一時記憶領域131)やトレースデータが書き込まれている領域(永続的記憶領域132)のアドレス管理だけではなく、リングバッファ内に書き込まれているトレースデータの記録種別も管理している。図3(a)におけるトレースデータの記録種別は一時記憶、すなわち、リングバッファに一時記憶されている状態であり、図3(a)〜図3(e)における白抜き部分がこの状態に相当する。
時間t=TRでトレースメモリ管理部14に開始信号が入力されると、図3(b)に示すように、TRより一定時間前のt=TS時点に相当する一時記憶されたトレースデータより新しいトレースデータ(TS≦t≦TRに一時記憶されたトレースデータ)の記録種別は、記録候補となる。また、t=TR以降に書き込まれるトレースデータは全て記録候補である。
このとき、同時に、t=TRから一定時間後を測定区間終了時間TEとして設定する。TR−TSとTE−TRは同じ時間間隔である必要はなく、測定装置1aの使用者に最適な値であれば良い。TR−TSやTE−TRは、任意に、又は、固定的に設定される。
時間t≦TEの範囲で、トレースメモリ管理部14に記録保持信号が入力されると、トレースメモリ管理部14は、t=TS以降のトレースデータの記録種別を記録保持とする。記録種別が記録保持となったトレースデータは、ユーザの意思抜きで上書きや削除されることがないデータとして扱われ、永続的記憶領域132にコピーされる。
トレースデータ管理部14は、記録種別が記録保持となった領域を永続的記憶領域132とし、前記領域に相当する分量のトレースメモリ13内の他の領域を新たにリングバッファ領域(一時記憶領域131)として割り当てるか、又は、記録種別が記録保持となったトレースデータを他の記録領域(永続的記憶領域132)にコピーするか、または、その他の方法で、明確な指示がない限り他のデータが上書きされたり削除されたりしないようにメモリ13へのアクセスを管理する。
一方、t≦TEの範囲内で記録保持信号が入力されず、t=TEとなってしまった場合、トレースメモリ管理部14は、記録種別を開始信号入力前の一時記憶の状態に戻す。図3(d)はt=TEの時の様子であり、TS≦t≦TEの範囲のトレースデータの記録種別が記録候補であるが、t=TEを超えたt>TEのときには、図3(e)に示すように、トレースデータの記録種別は初期状態に戻ることになる。
以上がトレースメモリ管理部14の基本動作であるが、トレースメモリ管理部14によるトレースデータの記録制御は、開始信号や記録保持信号だけでなく、以下に説明する比率計測部15を用いてバス22の状態をも勘案した制御としても良い。
図3(f)は、比率計測部15の右シフト部32(図2参照)から出力されるメモリ使用率の一例を示している。図3(f)では、メモリ使用率が時間の経過とともに、・・・、80、75、60、73、85、87、93、86、83、85、95、80、75、60、55、60、70、・・・と変化している。この数字は説明のために便宜的にメモリ使用率を百分率で表した数字で書いてあるにすぎず、実際に右シフト部32から出力される数値ではない。例えば、前記した80という数値はメモリ使用率が80%であることを意図しているが、Nビットカウント部33が21ビットであれば、使用率80%に相当する値は16進数表記で19999Aよりやや少ない値であり、同様に70%に相当する値は180000であり、また90%に相当する値は1CCCCDよりやや少ない値(いずれも16進数表記)である。これらの値はNを何ビットにするかで変るので、ここでは百分率で表した数字を用いて説明する。
図3(g)は、比率計測部15の比較器34(図2参照)から出力される信号の一例を示している。比較器34は、メモリ使用率が標準使用限度(ここでは、90%)を超えた場合に、パルスを出力する。
図3(h)は、比率計測部15のフリップフロップ36(図2参照)から出力される超過使用フラグの一例を示している。比較計測部15は、メモリ使用率が標準使用限度を超えた時刻から、記録保持信号TSが入力されるまでの間、超過使用フラグがアクティブであることを示す信号を出力する。
図2の比率計測部15では、データ収集部12が収集したトレースデータから、プローブ11を当てているバス22の混み具合を推測する。バス22の混み具合が、測定装置1aで、標準使用限度として、任意にまたは固定的にまたは動的に設定された閾値を超えたことをトレースメモリ管理部14に出力し、トレースメモリ管理部14では、標準使用限度を超えていた場合のみトレースメモリ13に書込まれるトレースデータを保持するなどの処理を行う。
図4は、本発明の第1の実施形態による測定装置1aの処理を示すフローチャートである。始めに、プローブ11をバス22にセットして、測定装置1aの動作を開始する(ステップS101)。
トレースメモリ管理部14は、トレースメモリ管理部14に開始信号が入力されたか否かについて判定する(ステップS102)。開始信号が入力されていない場合はステップS102で「NO」とトレースメモリ管理部14が判定し、トレースデータを記録種別が一時記憶のデータとして、トレースメモリ13のリングバッファ領域に記録する(ステップS109)。そして、トレースメモリ管理部14に開始信号が入力されるまでステップS102とステップS109の処理を繰り返す。
ステップS102で開始信号が入力された場合には、トレースメモリ管理部14はステップS102で「YES」と判定し、t≧TSに取得したトレースデータの記録種別を記録候補にして、現在の時間が測定区間終了時間TEか否かについて判定する(ステップS104)。この時点におけるトレースデータの様子は図3(b)である。
現在の時間が測定区間終了時間TEではない場合には、トレースメモリ管理部14は、ステップS104で「NO」と判定し、記録保持信号が入力されたか否かについて判定する(ステップS106)。
記録保持信号が入力されていない場合には、トレースメモリ管理部14はステップS106で「NO」と判定し、ステップS103へ戻り、トレースデータの記録種別を記録候補として順次トレースメモリ13に記録する。
測定区間終了時間TEでもなく、記録保持信号も入力されない場合には、ステップS103、ステップS104、ステップS106の処理を繰り返す。現在の時間が測定区間終了時間TEとなると、トレースメモリ管理部14は、ステップS104で「YES」と判定し、記録種別が記録候補として扱っていたトレースデータの記録種別を全て一時記憶の状態に戻し(ステップS105)、ステップS102とステップS109の処理を繰り返す。このときの様子は、図3(d)に相当し、ステップS102とステップS109の処理を繰り返している状態は、図3(e)に相当する。
また、ステップS103、ステップS104、ステップS106の処理を繰り返しているときに、記録保持信号が入力された場合は、トレースメモリ管理部14はステップS106で「YES」と判定し、比率計測部15の出力である超過使用フラグがアクティブであるか否かについて判定する(ステップS107)。
超過使用フラグがアクティブの場合には、トレースメモリ管理部14はステップS107で「YES」と判定し、t=TS以降ここまでの記録種別が記録候補となっている全てのトレースデータの記録種別を記録保持として、ユーザの意思抜きで上書きや削除されることがないデータとして扱う(ステップS108)。このときの様子は、図3(c)である。
ステップS105、ステップS108のいずれの処理であっても、測定の一連の処理が終了する最後の処理であり、ステップS108の処理が終わった後に、再びステップS102とステップS109の処理を繰り返すのは、ステップS105の処理後と同じである。
また、ステップS105、ステップS108の処理が終わった後にステップS102へ戻るのは一例であり、一度でも開始信号が入力された場合には、記録を止めることをユーザが望めば、ステップS105、ステップS108の処理を終了した後に、この処理フローを終了しても良い。
図5は、本発明の第1の実施形態による測定対象装置2a(図1)の集積回路21(制御回路とも称する)の構成を示すブロック図である。図5に示すように、測定装置に最適な測定対象装置となる集積回路21は、プロセッサ42、バスマスタとなりうる複数のモジュール411、412(割込部とも称する)、I/O回路46が、バス43を介して接続されている。
バス43は、メモリバス22を介して、集積回路21の外部に設けられるメモリ23と接続される。また、I/O回路46は、I/O端子47で、集積回路21の外部装置と接続される。
一般的に、この構成で表される集積回路21は、モジュール411及びモジュール412は、それぞれ図示しないレジスタを備えており、前記レジスタを介して制御情報の受け渡しを行い、処理したデータの受け渡しはバス43、メモリバス22を経たメモリ23を介して行うことになる。
モジュール411及びモジュール412のそれぞれとプロセッサ42との間のやり取りも同様である。また、モジュール411やモジュール412、プロセッサ42の処理途中データも必要に応じてメモリ23に一時的に記録され、必要になった場合に読み出される。
このような集積回路21の代表的なものとしてデジタルTV用チップが挙げられ、放送波から復調されたMPEG2−TS信号から分離された画像ストリーム信号をデコードして画像信号を作るモジュールや、同様にMPEG2−TS信号から分離された音声ストリーム信号をデコードしてオーディオ信号を作るモジュールなどが、集積回路21のモジュール411やモジュール412に相当する。
なお、図5では、集積回路21が2つのモジュール411、412を備えている場合を示しているが、これに限定されるものではなく、集積回路21に3つ以上のモジュールを設けるようにしても良い。
プロセッサ42は、集積回路21の全体の動作管理も行っており、I/O端子47を介して入出力された信号のプロトコル処理はI/O回路46が行うが、I/O回路46がI/O端子47を介して送受信するデータは、基本的にプロセッサ42が管理する。
I/O回路46及びI/O端子47の良く知られた例としては、JTAG(Joint Test Action Group)やI2C(Inter Integrated Circuit)などのシリアルポートやPCI(Peripheral Components Interconnect)のようなバス(パラレルポート)がある。
また、モジュール411及びモジュール412からはプロセッサ42へ割り込み信号線が接続されていて、更にそれぞれの割り込み信号線はOR回路44で論理和が取られ、割込出力端子45(割込信号出力部とも称する)によって、集積回路21の外部へ出力される。
割り込み信号線は、モジュール411やモジュール412からプロセッサ42へ、処理の状態(待機、処理中の内容など)や処理状態の変化(開始、終了、状態変更など)を通知する場合にプロセッサ42(正確にはプロセッサ42上で動作しているソフトウェア)に対して割り込みをかけるためのものである。
モジュール411の処理の途中で不具合が生じたら、モジュール411は、不具合が生じたことをプロセッサ42へ割り込みをかけることで報せ、同時に、モジュール411が備えるレジスタに割り込み要因(割り込みの理由)を書き込む。
割り込みを受けたプロセッサ42は、バス43を介してモジュール411内のレジスタを読みに行き、割り込み要因が不具合であれば、稼働中の処理を一時中断し、図示しないプロセッサ42内のキャッシュの内容をメモリ23に退避した上で、割り込み要因レジスタの内容をI/O回路46に転送し、I/O回路46にI/O端子47からレジスタ内容を出力させるように制御する。
これにより、モジュールに不具合が生じたことをI/O端子47からの出力として外部に通知することが可能となる。しかし、I/O端子47から出力されるタイミングは、プロセッサ42の応答速度に依存し、不具合が発生してからプロセッサ42がI/O回路46を制御するまでにかかる時間、すなわち、早くてもmsオーダー、遅いものでは100msオーダーで遅延が生じる。そのため、本実施形態の集積回路21は、割込出力端子45を設け、割り込みが生じた時点、すなわち、不具合が生じた直後に、集積回路21の外部に対して不具合があったことを出力する。
集積回路21のユーザは、不具合が生じた直後と、出力がやや遅れるが不具合が何であったかのいずれも知ることが可能となり、不具合原因の特定を容易にすることができる。
また、図5では割り込み信号線はOR回路44で論理和をとってから出力されているが、必ずしも論理和を取る必要はなく、集積回路21の端子数が確保できるのであれば、いくつかの割り込み信号線毎にグルーピングした複数の出力に分けても良い。
この場合は、I/O端子47の出力を測定する前に、割込出力端子45(複数となる)を測定すれば、どのグループに属するモジュールで割り込みが生じたのかまで知ることが可能となる。
以上の説明における不具合は、予め想定されている不具合である。すなわち、商品として販売等した後であっても、使い方次第で生じる不具合である。例えば、上記説明におけるモジュール411が、MPEG2ストリームをデコードする画像デコーダであれば、(A)ヘッダ情報がありえない値を示している、(B)可変長符号化されているストリームを復号できない、(C)同期がとれずにデコード処理が停止した、などの不具合が想定される。
これらの不具合は、上記の(A)及び(B)に関しては、伝送路の悪化・劣化などによるデータ化けが、上記の(C)に関しては、デコード処理がバス43やメモリバス22が混雑したことなどによって本来必要な時間までに終了できなかったことが、設計時に想定できる原因である。
そのため、予め不具合としてプロセッサへ通知する仕組みを用意している。なお、デコード処理が本来必要な時間までに終了できたかどうかは、一般的に画像フレーム単位でチェックされる。画像フレームはエンコード時に設定される1画面であり、その表示が切り替わる時間間隔は日本の放送波では1/30秒ないし1/60秒に設定される場合が多い。
当然、その時間間隔以下の時間で1フレーム分のデコードが終了している必要がある。そのために、デコーダでは1フレームをデコードし終えたタイミングで、デコードし終えなければいけない時間(結果として1フレームの表示時間と同じである)以内にデコードが終了しているかどうか調べることになる。すなわち、メモリバス22が混雑してデコード処理に遅延をきたした瞬間と、モジュール411が不具合発生と認識する瞬間にはズレが生じる。
従って、不具合が生じた瞬間の状態をトレースするためには、割込みがかかった瞬間のメモリアクセスだけを測定していては不十分であり、割り込み前の状態も測定する必要がある。状況によってはメモリバス22の混雑が割込み時にも継続している場合も考えられるため、メモリバス22の混雑による不具合であると判定するためには、割り込み後の状態も測定する必要がある。
加えて、上述したように、割込みは不具合が生じた時だけに発生するとは限らないので、図5に示すような割込出力端子45からの出力と、I/O端子47から出力される不具合要因の2つを知ることが必要となる。
また、上述したように、メモリバス22の混雑による不具合発生の場合は、不具合原因は割込みの前に発生しているため、割り込みによってI/O端子47から割込要因レジスタの内容を出力する処理が入っても、不具合発生時の集積回路21の、特にプロセッサ42の、処理状態は実動作時となんら変ることがないため、正確に、直接的に、不具合原因を追究することが可能である。
図1の測定装置1aは、開始信号が入力されるいくらか前のタイミングから、記録保持信号が入力されるタイミングまでのメモリアクセスをトレースするため、開始信号と記録保持信号を入力する必要がある。これら2つの信号は、不具合発生原因を探るという視点から考えると、不具合が生じてからできるだけ間をおかないタイミングで入力されることが望ましい。したがって、図5で示した集積回路21は、図1の測定装置1aを使用するのに好適である。
すなわち、開始信号として割込出力端子45からの出力を、記録保持信号としてI/O端子47から出力される信号を使用すれば良い。割込出力端子45から出る割り込み信号は、モジュール411(またはモジュール412)が不具合であると認識した直後にアクティブになるので、そのいくらか前のタイミングからトレースデータを記録できる測定装置1aは好適である。
前述したように、モジュール411(又はモジュール412)から割り込み信号が出力されるのは、モジュールの処理状態や処理状態の変化を通知する場合であるので、不具合が生じたとき以外にも割り込み信号は出力されていることになる。割込出力端子45の出力はプロセッサ42に集まる割り込み信号をそのまま出力、又は、論理和をとって出力しているだけなので、測定装置1aは、不具合が生じている場合にI/O端子47から出力されるレジスタ内容を確認してトレースすべき不具合時のメモリアクセスを知る。
ただし、図1の記録保持信号の入力端子は、図5のI/O端子へ接続できる形状および回路構成、プロトコル構成である必要がある。
モジュール411で不具合が生じたとき、モジュール411はプロセッサ42に対し割り込み信号を出力する。この割り込み信号は、割込出力端子45から出力され、測定装置1aの開始信号として入力される。測定装置1aは開始信号によってトレースデータの記録種別を記録候補とし、トレースを続ける。
一方、割り込みを受けたプロセッサ42は、モジュール411の割り込み要因レジスタを読みに行き、割り込み要因が不具合であった場合は、I/O回路46に対し、読み取ったレジスタの内容を出力するように制御することで、I/O端子47から不具合であることを示すレジスタ内容が出力される。
出力されたレジスタ内容は、測定装置1aに記録保持信号として入力されることで、割り込みによって記録種別を記録候補として、トレースし続けていたトレースデータを記録保持として、ユーザの意思抜きで上書きや削除されることがないデータとして扱うことで、不具合が生じたときのトレースデータを自動的に取得することが可能となる。
また、測定装置1aに設定される測定区間終了時間TEは、不具合時にI/O端子47よりレジスタ内容が出力されるのに必要な時間より後に設定される。また、割込出力端子45が複数ある場合は、測定装置1aの開始信号入力を複数持つようにしたり、もしくは、測定装置1aの開始信号入力と集積回路21の割込出力端子45との間にOR回路を挟むようにしたりすれば良い。
なお、図5におけるI/O端子47は、信号入力に対応しない出力専用の端子であっても良い。出力専用とは、物理的に出力しかできない構成というだけでなく、プロセッサ42や図示しない他のスイッチ入力により出力しかしないように制御された状態も含む。I/O回路46も、出力専用の回路構成または出力専用に制御された状態のいずれであっても良い。
また、I/O回路46では、プロセッサ42が取得したレジスタ内容をそのまま出力するのではなく、レジスタ内容が特定の不具合を示していることを示唆する他の信号に変換してから出力しても良い。例えば、測定装置1aでトレースしたいいくつかの想定され得るレジスタ内容のいずれかに合致した場合に、出力の電位や電流を反転させるという方法がある。このように1ビットの情報量しか持たない信号であっても良い。
更にこれらの端子は、1本のデータ線からなるシリアル端子であっても、複数のデータ線からなるパラレル端子であっても良い。このように、I/O端子47と記録保持信号を接続する経路が物理的に少ない本数の線で接続されることで、I/O端子47の端子数を減らすことが可能となり、測定時の取り扱いが簡素化されるとともにコストダウンにもなる。
また、比率計測部15は集積回路21からメモリ23へのメモリアクセスが集中することでメモリバス22が混雑した状態であることを推定する機能ブロックであることから、メモリ23へのアクセス集中による不具合原因の特定および不具合回避措置対応のために使用することだけに絞らないのであれば、図1の比率計測部15および図4のステップS107をなくしても良い。
上述した第1の実施形態によれば、メモリ23にメモリアクセスが集中することでメモリ使用率が所定の閾値を超えた場合に、メモリ使用率が所定の閾値を超えた時刻の前後にメモリ23にアクセスしていたデータを利用者が解析することが可能となる。これにより、デバグ作業による開発期間の遅延を防ぎ開発コストの削減が可能となる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。第2の実施形態の測定装置及び測定対象装置の構成は、第1の実施形態の測定装置1a及び測定対象装置2aの構成とほぼ同様であるため、一部を除きそれらの説明を省略する。
図1における測定対象装置2aに搭載された集積回路2が、図5に示した集積回路21であった場合に、メモリ23に対するアクセスが集中しているときに、プロセッサ42の処理状態によっては、モジュール411またはモジュール412からの不具合を通知する割り込みにすぐには対応できないことがある。
そのため、I/O端子47から得られるはずの不具合を示すレジスタ内容の信号がしばらく出力されず、測定装置1aの記録保持信号の入力が得られないままトレースデータが記録保持されないことがある。しかし、開発者にとっては、メモリ23に対するアクセス集中による不具合は生じている以上、トレースデータは記録することが望ましい。
図6は、本発明の第2の実施形態による測定装置1aの処理を示すフローチャートである。始めに、プローブ11をメモリバス22にセットして、測定装置1aの動作を開始する(ステップS201)。トレースメモリ管理部14は、比率計測部15の出力である超過使用フラグがアクティブであるか否かについて判定する(ステップS202)。
超過使用フラグがアクティブである場合には、トレースメモリ管理部14はステップS202で「YES」と判定する。そして、トレースメモリ管理部14は、その時点をt=TRと設定して、t≧TSに取得したトレースデータの記録種別を記録候補にする(ステップS203)。
そして、トレースメモリ管理部14は、現在の時間が測定区間終了時間TEか否かについて判定する(ステップS204)。
現在の時間が測定区間終了時間TEでない場合には(t<TE)、トレースメモリ管理部14はステップS204で「NO」と判定し、再びステップS203に戻る。そして、トレースデータの記録種別を記録候補として順次、トレースメモリ13に記録する。
現在の時間が測定区間終了時間TEになった場合には、トレースメモリ管理部14はステップS204で「YES」と判定し、t=TS以降ここまでの記録種別が記録候補となっている全てのトレースデータの記録種別を記録保持として、ユーザの意思抜きで上書きや削除されることがないデータとして扱う(ステップS205)。
また、超過使用フラグがアクティブではない場合は、トレースメモリ管理部14はステップS202で「NO」と判定し、後述するステップS206に進む。
トレースメモリ管理部14は、トレースメモリ管理部14に開始信号が入力されたか否かについて判定する(ステップS206)。開始信号が入力されていない場合はステップS206で「NO」とトレースメモリ管理部14が判定し、トレースデータを記録種別が一時記憶のデータとして、トレースメモリ13のリングバッファ領域に記録する(ステップS213)。そして、トレースメモリ管理部14に開始信号が入力されるまでステップS206とステップS213の処理を繰り返す。
ステップS206で開始信号が入力された場合には、トレースメモリ管理部14はステップS206で「YES」と判定し、t≧TSに取得したトレースデータの記録種別を記録候補にして、現在の時間が測定区間終了時間TEか否かについて判定する(ステップS208)。この時点におけるトレースデータの様子は図3(b)である。
現在の時間が測定区間終了時間TEではない場合には、トレースメモリ管理部14は、ステップS208で「NO」と判定し、記録保持信号が入力されたか否かについて判定する(ステップS210)。
記録保持信号が入力されていない場合には、トレースメモリ管理部14はステップS210で「NO」と判定し、ステップS207へ戻り、トレースデータの記録種別を記録候補として順次トレースメモリ13に記録する。
測定区間終了時間TEでもなく、記録保持信号も入力されない場合には、ステップS207、ステップS208、ステップS210の処理を繰り返す。これにより、現在の時間が測定区間終了時間TEとなる。これにより、トレースメモリ管理部14は、ステップS208で「YES」と判定し、記録種別が記録候補として扱っていたトレースデータの記録種別を全て一時記憶の状態に戻し(ステップS209)、ステップS206とステップS213の処理を繰り返す。このときの様子は、図3(d)に相当し、ステップS206とステップS213の処理を繰り返している状態は、図3(e)に相当する。
また、ステップS207、ステップS208、ステップS210の処理を繰り返しているときに、記録保持信号が入力された場合は、トレースメモリ管理部14はステップS210で「YES」と判定し、比率計測部15の出力である超過使用フラグがアクティブであるか否かについて判定する(ステップS211)。
超過使用フラグがアクティブの場合には、トレースメモリ管理部14はステップS211で「YES」と判定し、t=TS以降ここまでの記録種別が記録候補となっている全てのトレースデータの記録種別を記録保持として、ユーザの意思抜きで上書きや削除されることがないデータとして扱う(ステップS212)。このときの様子は、図3(c)である。
ステップS209、ステップS212のいずれの処理であっても、測定の一連の処理が終了する最後の処理であり、ステップS212の処理が終わった後に、再びステップS206とステップS213の処理を繰り返すのは、ステップS209の処理後と同じである。
また、ステップS209、ステップS212の処理が終わった後にステップS206へ戻るのは一例であり、一度でも開始信号が入力された場合には、記録を止めることをユーザが望めば、ステップS209、ステップS212の処理を終了した後に、この処理フローを終了しても良い。
上述した図6のフローチャートの処理を行うことにより、メモリバス22が混雑しているにも関らず集積回路21の都合により記録保持信号たるI/O端子47からのレジスタ内容出力が出ない場合でも、測定装置1aが集積回路21から独立してメモリバス22の混み具合を監視しているため、不具合が生じているだろうと思われる状態を逃さず、トレースメモリに効率的かつ自動的にトレースデータを記録することも可能となる。
また、開始信号である割込信号出力も同時に記録することで、メモリバス22が混雑しても不具合が生じず割込信号出力がなかった場合が明確にわかり、不具合が生じるメモリバス22の状態がより明確につかめ、不具合発見が効率的に行えるようになる。
なお、第1の実施形態の処理を示す図4のフローチャートの処理と、第2の実施形態の処理を示す図6のフローチャートの処理を、測定装置1aのユーザがハード的またはソフト的なスイッチで切り替えて選択できるようにしても良い。
また、図4のステップS107の処理を省略しても良い。これにより、不具合の原因追求時の様々な状況に応じることが可能となる。
また、以上の説明では、比率測定部15の出力によりトレースメモリ13への書込みを制御したが、トレースメモリ13への書込みは開始信号と記録保持信号によってのみ制御して、トレースデータの書込みと同時に、比率計測部15の出力をトレースデータに対応させて、トレースメモリ13へ記録しても良い。これにより、不具合の発生原因が、メモリアクセスが集中したことによるものである可能性を残しつつ未だはっきりしない場合に効果的である。
また、トレースデータの記録制御をTS、TR、TEなどの時間単位を用いて説明したが、トレースメモリ13に記録されているデータ数で制御しても同様の効果が得られる。
更に、記録種別が記録保持となったトレースデータを保存するために、トレースメモリ13とは別に用意した測定装置1aに接続されるメモリを使用しても良い。
上述した第2の実施形態によれば、超過使用フラグがアクティブな場合、つまり、メモリ使用率が所定の閾値を超えている場合に、開始信号の入力がなくてもメモリ23にアクセスしているメモリアクセス信号から得られるトレースデータをトレースメモリ13の永続的記憶領域132に記録することができる。よって、利用者や測定対象装置2aから測定装置1aに開始信号を入力する必要がないため、測定対象装置2aのメモリ23にアクセスするメモリアクセス信号の解析に要する労力を軽減することができる。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。
図7は、本発明の第3の実施形態による測定システムの概略構成図である。この測定システムは、測定装置1bと測定対象装置2bとを備えている。
第3の実施形態による測定装置1b、測定対象装置2bが、第1の実施形態による測定装置1a、測定対象装置2aと同様の部分については、同一の符号を付して、それらの説明を省略する。なお、本実施形態による測定装置1bは、図4又は図6のフローチャートの処理を実行する。
測定装置1bは、第1の実施形態による測定装置1a(図1)とほぼ同じであるが、トレースメモリ管理部14がログ要求信号を、外部装置(ここでは、測定対象装置2b)に出力する点において、第1の実施形態と異なる。
本実施形態のトレースメモリ管理部14(出力部とも称する)は、一時記憶領域131が記憶しているデータを、永続的記憶領域132に記録した場合に、測定対象装置2bのログ(処理状態とも称する)の出力を要求するログ要求信号(出力要求信号とも称する)を測定対象装置に出力する。
また、トレースメモリ管理部14は、測定対象装置2bから出力されるログのデータを、トレースメモリ13の永続的記憶領域132に記録したトレースデータに対応付けて記録する。
また、第3の実施形態では、測定装置1bに入力される開始信号として、メモリ23にアクセスする集積回路4内のプロセッサ42に割り込みが発生したことを通知する信号であって測定対象装置2bの割込出力端子45から測定装置1bに出力される割込信号を使用している。
また、測定装置1bに入力される記録保持信号として、測定対象装置2bで所定の理由により割り込みが発生したことを通知する信号であって測定対象装置2bのI/O端子47から測定装置1bに出力される通知信号を使用している。
測定対象装置2bは、第1の実施形態による測定対象装置2a(図1)と類似しているが、集積回路21の代わりに集積回路4(制御回路とも称する)を備えている点において、第1の実施形態と異なる。
測定対象装置2bは、デジタル情報装置であり、集積回路4によりデジタル情報装置として必要な主要機能が処理される。例えば、デジタル情報装置がデジタルTVである場合は、集積回路4では、チューナやネットワークから得られる符号化された映像信号(一般的には、MPEG2またはH.264/AVCで符号化された映像ストリームデータを含むMPEG2−TSストリーム)をデコードし、IP変換などの画像品質を高める各種処理を行った後にメニュー画面やOSD画面との合成を行い表示画面のデータとして出力する一方で、デジタルTV全体の各種動作制御を行う。
集積回路4は、プロセッサ42、割込出力端子45(割込信号出力部とも称する)、I/O回路46、I/O端子47を備えている。プロセッサ42は、集積回路4を制御したり、プロセッサ上で動作するソフトウェアによりプロセッサ自身に対して割り込みをかけたりする。ソフトウェアによる割込みは一般的にはOS(Operation System)によって提供される機能であり、ここでは、図7のプロセッサ42内の割込部421が割込みを発生する。
割込部421は、プロセッサ42上のソフトウェアが割り込みをかけた場合に、割り込みの発生を通知する割込信号を、割込出力端子45を介して、メモリ23にアクセスする信号を測定する測定装置1bに出力する。
また、I/O回路46は、プロセッサ42に対する割り込みが所定の理由によって発生した場合にその理由を通知する通知信号を、I/O端子47を介して、測定装置1bに出力する。
トレースメモリ管理部14へは、集積回路4の割込出力端子45から割込み信号が開始信号として、I/O端子47から割込み要因レジスタの内容を示す信号が記録保持信号として入力される。
また、図7では、トレースメモリ管理部14から、ログ要求信号が出力され集積回路4のI/O回路46に入力される。すなわち、測定装置1bは、図4又は図6のフローチャートに基づいてトレースデータを記録し終える(図4のステップS108または図6のステップS205)と、図4のステップS102または図6のステップS202へ進む前に、ログ要求信号を出力し、集積回路4で記録されている集積回路4内部で実行された処理の記録(ログ)を出力することを要求する。集積回路4は、ログ要求信号が入力されると、ログをI/O端子47から出力する。
測定装置1bは、自ら取得したトレースデータと、集積回路4より得られたログとを比較分析し、不具合原因となったメモリバス22の混雑状態とログに示された処理との関係付けを行い、集積回路4の内部処理の実行手順を変更したり、処理自体を停止したりといった、不具合を回避するための手段をとることが可能となる。
なお、ログ要求信号は、I/O端子47を通じて集積回路4に入力されても良い。この場合は、物理的なワイヤがI/O端子47と測定装置1bとの間のワイヤに収斂されコスト削減および測定時の安全性向上に寄与することが可能となる。
また、測定装置1bとは別の装置(例えばPC(Personal Computer)など)が、集積回路4より出力されるログを取得しても良い。同様に、トレースデータとログとの関係付け作業を行う装置も、測定装置1bとは別の装置で行っても良い。
更に、測定装置1bが集積回路4に内蔵されていても良い。この場合は、プローブ11は、集積回路4の内部のメモリとのインターフェース部分に直接接続されることになる。割込出力端子45は測定装置1bへの接続インターフェースとして存在するが、記録保持信号やログ要求信号は集積回路4内のバス43を経由しても良い。
測定装置1bを集積回路4に内蔵せずに、測定対象装置2bに実装しても良い。
デジタルTVのようなデジタル情報家電は複雑かつ多機能であり、仕様設計時に全ての状態を予測して設計することが困難であるため、機能の組合せやその組合せでのそれぞれの機能の状態といったことが絡み合って不具合が生じることが多く、このような不具合は製品出荷前までにすべて対策を施すということは事実上不可能である。
デジタルTVを例にとると、デジタルTVの動作に関る主たる集積回路とメインメモリとの間のメモリバスアクセスが集中したことにより生じる不具合は、音が一時的に不連続になったり、画面の一部が乱れたように見えたりと、人間が確認したらわかる現象となって現れるが、その頻度が数分から数時間に一度といったように、扱っているコンテンツやその時の他の処理状態によって影響されて一定しないことが多い。
上述した実施形態を用いることにより、本来人間が長時間ストレスに耐えながら発見し、更に多くの時間をかけて追求していた不具合原因の特定を、客観的かつ自動的に不具合現象を記録でき、効率的な不具合原因特定作業を行うことが可能となる。
上述した第1〜第3の実施形態は、例えば、バスマスタとなり得るモジュールが複数搭載された集積回路と、集積回路とメモリとの間のバスを観測する測定装置もしくはデバッガとに適用することが可能である。
また、動画コンテンツのような大容量のリアルタイム系処理を行うデジタル情報装置や、デジタル情報装置の主たる処理を行う集積回路に適用することも可能である。
なお、以上説明した実施形態において、図1の測定装置1a、測定対象装置2aや、図7の測定装置1b、測定対象装置2bの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより測定装置や測定対象装置の制御を行っても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時刻の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時刻プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も特許請求の範囲に含まれる。
本発明の第1の実施形態による測定システムの概略構成図である。 本発明の第1の実施形態による測定装置1aの比率計測部15の構成を示す概略ブロック図である。 本発明の第1の実施形態による測定装置1aの処理を説明するための図である。 本発明の第1の実施形態による測定装置1aの処理を示すフローチャートである。 本発明の第1の実施形態による測定対象装置2aの集積回路4の構成を示すブロック図である。 本発明の第2の実施形態による測定装置1bの処理を示すフローチャートである。 本発明の第3の実施形態による測定システムの概略構成図である。
符号の説明
1a、1b・・・測定装置、2a、2b・・・測定対象装置、4・・・集積回路、11・・・プローブ、12・・・データ収集部、13・・・トレースメモリ、14・・・トレースメモリ管理部、15・・・比率計測部、21・・・集積回路、22・・・メモリバス、23・・・メモリ、131・・・一時記憶領域、132・・・永続的記憶領域、31・・・Mビットカウント部、32・・・右シフト部、33・・・Nビットカウント部、34・・・比較部、35・・・リセット部、36・・・フリップフロップ、42・・・プロセッサ、43・・・バス、44・・・OR回路、45・・・割込出力端子、46・・・I/O回路、47・・・I/O端子、411、412・・・モジュール、421・・・割込部

Claims (9)

  1. 測定対象装置が備えるメモリにアクセスする信号を測定する測定装置であって、
    データを記憶する第1の記憶部と、
    前記測定対象装置が備えるメモリにアクセスする信号を測定するデータ測定部と、
    前記データ測定部が測定するデータを一時的に記憶する第2の記憶部と、
    前記データ測定部が測定するデータに基づいて前記測定対象装置が備えるメモリのメモリ使用率を計算するメモリ使用率計算部と、
    前記メモリ使用率計算部が計算するメモリ使用率が所定の閾値を超えた場合に前記第2の記憶部が記憶しているデータを前記第1の記憶部に記録するデータ制御部と、
    を備えることを特徴とする測定装置。
  2. 前記測定対象装置が備えるメモリにアクセスする信号の前記第2の記憶部への記録の開始を指示する第1の信号とその記録の終了を指示する第2の信号の入力を受け付ける入力部を更に備え、
    前記データ制御部は、前記第1の信号を受け付けた時刻から前記第2の信号を受け付けた時刻までの時間に前記メモリ使用率が所定の閾値を超えた場合に、前記第2の記憶部に記録されているデータを前記第1の記憶部に記録することを特徴とする請求項1に記載の測定装置。
  3. 前記第1の信号は、前記メモリにアクセスするプロセッサに対し割り込みが発生したことを通知する割込信号であり、
    前記第2の信号は、前記測定対象装置で所定の理由により割り込みが発生したことを通知する通知信号であることを特徴とする請求項2に記載の測定装置。
  4. 前記データ制御部は、前記第2の記憶部が記憶しているデータと前記メモリ使用率計算部が計算するメモリ使用率とを対応付けて前記第1の記憶部に記録することを特徴とする請求項1又は2に記載の測定装置。
  5. 前記データ制御部が前記第2の記憶部が記憶しているデータを前記第1の記憶部に記録した場合に、前記測定対象装置の処理状態の出力を要求する出力要求信号を前記測定対象装置に出力する出力部を備え、
    前記データ制御部は、前記測定対象装置から出力される前記処理状態のデータを前記第1の記憶部に記録したデータに対応付けて記録することを特徴とする請求項1から3までのいずれかの項に記載の測定装置。
  6. 測定対象装置が備えるメモリにアクセスする制御回路であって、
    制御回路内の動作を管理するプロセッサを備え、該プロセッサに対して割り込みをかける割込部と、
    前記割込部が割り込みをかけた場合に割り込みの発生を通知する割込信号を、前記メモリにアクセスする信号を測定する測定装置に出力する割込信号出力部と、
    を備えることを特徴とする制御回路。
  7. 前記制御回路は、外部機器と接続するためのI/O回路を備え、前記I/O回路は、前記割込部による割り込みが所定の理由によって発生した場合にその理由を通知する通知信号を前記測定装置に出力することを特徴とする請求項6に記載の制御回路。
  8. データを記憶する第1の記憶部と、
    データを一時的に記憶する第2の記憶部とを備え、
    測定対象装置が備えるメモリにアクセスする信号を測定する測定装置のコンピュータに、
    前記測定対象装置が備えるメモリにアクセスする信号を測定する第1のステップと、
    前記第1のステップで測定するデータを一時的に前記第2の記憶部に記録する第2のステップと、
    前記第1のステップで測定するデータに基づいて前記測定対象装置が備えるメモリのメモリ使用率を計算する第3のステップと、
    前記第3のステップで計算するメモリ使用率が所定の閾値を超えた場合に前記第2の記憶部が記憶しているデータを前記第1の記憶部に記録する第4のステップと、
    を実行させることを特徴とするプログラム。
  9. データを記憶する第1の記憶部と、
    データを一時的に記憶する第2の記憶部とを備え、
    測定対象装置が備えるメモリにアクセスする信号を測定する測定装置を用いた測定方法であって、
    前記測定対象装置が備えるメモリにアクセスする信号を測定する第1のステップと、
    前記第1のステップで測定するデータを一時的に前記第2の記憶部に記録する第2のステップと、
    前記第1のステップで測定するデータに基づいて前記測定対象装置が備えるメモリのメモリ使用率を計算する第3のステップと、
    前記第3のステップで計算するメモリ使用率が所定の閾値を超えた場合に前記第2の記憶部が記憶しているデータを前記第1の記憶部に記録する第4のステップと、
    を実行することを特徴とする測定方法。
JP2007182320A 2007-07-11 2007-07-11 測定装置、制御回路、プログラム及び測定方法 Pending JP2009020673A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007182320A JP2009020673A (ja) 2007-07-11 2007-07-11 測定装置、制御回路、プログラム及び測定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007182320A JP2009020673A (ja) 2007-07-11 2007-07-11 測定装置、制御回路、プログラム及び測定方法

Publications (1)

Publication Number Publication Date
JP2009020673A true JP2009020673A (ja) 2009-01-29

Family

ID=40360268

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007182320A Pending JP2009020673A (ja) 2007-07-11 2007-07-11 測定装置、制御回路、プログラム及び測定方法

Country Status (1)

Country Link
JP (1) JP2009020673A (ja)

Similar Documents

Publication Publication Date Title
US8713370B2 (en) Non-intrusive processor tracing
US7003699B2 (en) Generation of trace signals within a data processing apparatus
US8381041B2 (en) Program counter (PC) trace
US8316214B2 (en) Data access tracing with compressed address output
US8874959B2 (en) Information processing apparatus, image forming apparatus, and information processing program
US8555256B2 (en) Pass-by breakpoint setting and debugging method and device
US7480833B2 (en) Method and system for performing a hardware trace
CN109698979B (zh) 一种视频播放的方法、装置及电子设备
JPH07200348A (ja) プログラムアドレスデータを圧縮する方法および装置ならびにプログラムのデバッギング処理を速める装置
US9009368B2 (en) Interrupt latency performance counters
US20110239196A1 (en) Micro-Task Pipeline Visualization
JP6360665B2 (ja) ウォッチポイントを取り扱うためのデータ・プロセッサ・デバイスおよびその方法
JP5637145B2 (ja) バスモニタ回路及びバスモニタ方法
US6760864B2 (en) Data processing system with on-chip FIFO for storing debug information and method therefor
US10579499B2 (en) Task latency debugging in symmetric multiprocessing computer systems
US20140359374A1 (en) System and method for managing trace data in a portable computing device
TWI735457B (zh) 用於追蹤例外處理事件的設備與方法
US20180034749A1 (en) System and method for distributing and replaying trigger packets via a variable latency bus interconnect
JP2009020673A (ja) 測定装置、制御回路、プログラム及び測定方法
US20070028010A1 (en) Peripheral device utilization monitoring
US20060117226A1 (en) Data communication system and data communication method
US20090265582A1 (en) Data processing system and method of debugging
GB2391351A (en) Generation of trace signals within a data processing apparatus
US10956248B1 (en) Configurable reporting for device conditions
JP2007514214A (ja) 使用率を計測するための計測ユニットを備える集積回路