JP5277893B2 - デバッグ支援装置およびデバッグ支援方法 - Google Patents
デバッグ支援装置およびデバッグ支援方法 Download PDFInfo
- Publication number
- JP5277893B2 JP5277893B2 JP2008295321A JP2008295321A JP5277893B2 JP 5277893 B2 JP5277893 B2 JP 5277893B2 JP 2008295321 A JP2008295321 A JP 2008295321A JP 2008295321 A JP2008295321 A JP 2008295321A JP 5277893 B2 JP5277893 B2 JP 5277893B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- information
- storage unit
- processing
- stored
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
次に、作成されたプロトタイプのソフトウェアがシステム上で正しく機能するか否かのテストデバッグを行う。そして、デバッグをクリアしたソフトウェアについてパフォーマンスが正しく発揮できるか否かのテストを行い、結果に応じてチューニング(プログラム最適化)を行う。
また、プログラム処理の高速化を実現するために、ハードウェアの構成としてDSP(Digital Signal Processor)やコプロセッサ(co-processor)やASIC(Application Specific Integrated Circuit)等を備えるアクセラレータ(accelerator)と、CPU(Central Processing Unit)とを組み合わせたプロセッサシステムが近年使用されつつある。
まず、実施の形態のシステムについて説明し、その後、実施の形態をより具体的に説明する。
図1に示すデバッグ対象となるシステム8は、命令処理部3と、処理命令格納部(一時記憶部)9と、CPU4とデバッグ支援装置1とを有している。
デバッガ2は、デバッグ用となる専用のプログラムをCPU4に転送する。
その際、命令処理部3が処理中の場合、処理命令格納部9にて処理命令を一時的に保管し、命令処理部3の処理が終了後、処理命令を転送する。
また、制御部6は、デバッグ情報を命令処理格納部9から取得する。
このようなデバッグ支援装置1によれば、命令処理部3の動作に関する情報を処理命令格納部9の動作情報から取得し、格納するようにした。これにより、命令処理部3がプログラムやレジスタを実装することができないような構成であっても、命令処理部3がどのような処理を行っているのかをデバッガ2が容易に把握することができる。これにより、プログラム開発者は、その処理内容に応じてプログラムのデバッグ、チューニング等を容易に行うことができる。
図2は、実施の形態のシステムの構成例を示す図である。
システム(デバッグ支援装置)10は、CPU11と、アクセラレータ12と、メインメモリ(記憶部)13と、動作履歴レコーダ14とを有している。
CPU11とメインメモリ13、アクセラレータ12とメインメモリ13、動作履歴レコーダ14とメインメモリ13は、それぞれバス15を介して接続されている。
また、CPU11は、バス15を介してアクセラレータ12に処理させる命令(ACC命令)をアクセラレータ12に送る。
ACC命令メモリ121は、キュー構造をなしており、CPU11からバス15を介して送られてきたACC命令を順次蓄えていく。
動作履歴レコーダ14は、専用線を介してアクセラレータ12の動作をモニタリングすることにより取得したACC命令メモリ121の情報を動作履歴テーブル131に書き込む。
この動作履歴レコーダ14は、レコーダ設定レジスタ(アドレス格納部)141と、レコーダコントローラ(制御部)142とを有している。
レコーダコントローラ142は、動作履歴テーブル131にACC命令メモリ121の情報を書き込む動作履歴テーブルライタ142aを有している。
以上のような構成によって、本実施の形態の処理機能を実現することができる。
図3は、システムの処理を示すシーケンス図である。
なお、図3では、説明を分かりやすくするために、動作履歴テーブル131のブロックをメインメモリ13とは別個に設けている。また、以下に示すステップ番号は、処理の対応関係を示すものである。
CPU11は、動作履歴レコーダ14にレコーダ設定レジスタ141に条件情報の設定を行う(ステップS2)。
CPU11は、ACC命令#1、ACC命令#2、ACC命令#3をアクセラレータ12に出力する。
動作履歴レコーダ14は、取得した情報を動作履歴テーブル131に格納する(ステップS6)。
そして、ACC処理部122は、処理が完了すると、処理完了通知をキュー121aに送る(ステップS9)。
そして、ACC処理部122は、処理が完了すると、処理完了通知をキュー121aに送る(ステップS16)。
そして、ACC処理部122は、処理が完了すると、処理完了通知をキュー121aに送る(ステップS24)。
以上でシステム10の処理の説明を終了する。
図4は、デバッガが取得した情報をモニタに表示する一例を示す図である。
この画面には、CPU11が処理Dの処理を終了した後、処理Eの処理を開始する前に、処理Eの処理を待機していることが示されている。その理由として、アクセラレータ12が、命令Bの処理を終了していないことが示されている。さらに、アクセラレータ12が、命令Cの処理に要する時間が、命令Bの処理に要する時間よりも短いことが示されている。
なお、本実施の形態では、ACC命令メモリ121がアクセラレータ12の内部に設けられているものとして説明したが、ACC命令メモリ121はアクセラレータ12の外部に設けられていてもよい。
さらに、本実施の形態では、CPU11が、レコーダ設定レジスタ141を設定したが、デバッガ20(外部)から直接、レコーダ設定レジスタ141を設定するようにしてもよい。
次に、第2の実施の形態のシステムについて説明する。
以下、第2の実施の形態のシステムについて、前述した第1の実施の形態のシステム10との相違点を中心に説明し、同様の事項については、その説明を省略する。
図5に示す第2の実施の形態のシステム10aは、レコーダ設定レジスタ141およびレコーダコントローラ142の構成が第1の実施の形態のシステム10と異なっている。
条件判定部142bは、ACC命令メモリ121の情報を記録する際、条件格納部141bを参照する。そして、記録開始条件に一致すればACC命令メモリ121の情報の記録を開始する。また、記録終了条件に一致すればACC命令メモリ121の情報の記録を終了する。
図6は、第2の実施の形態のシステムの処理を示すフローチャートである。
まず、CPU11がプログラムの実行を開始し(ステップS31)、動作履歴テーブルアドレス格納部141aに格納するアドレス情報や、条件格納部141bに格納する記録開始条件および記録終了条件の情報を転送する(ステップS32)。
具体的には、記録開始条件として「アクセラレータ12に発行される命令の内部に埋め込まれたトリガとなる情報を受け取ったとき」が設定されている場合、この情報を受け取ったか否かを判断する。また、記録開始条件として「ACC命令メモリ121内のトラフィック状態」が設定されている場合、例えば、キュー121cに命令が蓄えられているか否かを判断する。
一方、記録開始条件に一致する場合(ステップS34のYes)、ACC命令メモリ121から取得した情報の記録を開始する。すなわち、ACC命令メモリ121から取得した情報を動作履歴テーブル131に格納する(ステップS35)。動作履歴テーブル131は、格納された情報を保持する。
一方、記録終了条件に一致する場合(ステップS36のYes)、記録を終了する。
デバッグが終了していない場合(ステップS39のNo)、ステップS32に移行し、ステップS32以降の処理を引き続き行う。
なお、ステップS34にて記録を開始した後に、ステップS36の判断処理を行うまでの時間は、特に限定されないが、例えば、CPU11のクロック数をカウントし、予め指定されたサイクル数の経過後に、ステップS36の判断処理を行うようにしてもよい。また、CPU11が発行する命令の数に応じてステップS36の判断処理を行うようにしてもよい。また、アクセラレータ12のメインメモリ13へのアクセス数に応じてステップS36の判断処理を行うようにしてもよい。
そして、第2の実施の形態のシステム10aによれば、アクセラレータ12の動作情報を適切なタイミングで動作履歴テーブル131に格納することができる。従って、デバッガ20が、この動作履歴テーブル131に格納された情報を参照することで、デバッグ効率をさらに、向上させることができる。また、動作履歴テーブル131に格納する情報量を減らすことができるため、動作履歴テーブル131の容量を削減することができる。
次に、第3の実施の形態のシステムについて説明する。
以下、第3の実施の形態のシステムについて、前述した第1の実施の形態のシステム10との相違点を中心に説明し、同様の事項については、その説明を省略する。
図7に示す第3の実施の形態のシステム10bは、レコーダ設定レジスタ141およびレコーダコントローラ142の構成が第1の実施の形態のシステム10と異なっている。
図8は、第3の実施の形態のシステムの処理を示すシーケンス図である。
ステップS8a、S15a、S23a:アクセラレータ12とメインメモリ13との間のメモリアクセス情報を動作履歴レコーダ14が取得する。
そして、第3の実施の形態のシステム10bによれば、記録する情報の種別を設定することにより、さらに、動作履歴テーブル131に格納する情報量を減らすことができるため、動作履歴テーブル131の容量を削減することができる。
図9(a)は、CPU11が、ACC処理部122による1回の処理でデータH〜Lが生成される命令Gをアクセラレータ12に発行し、生成されたデータH〜Lを利用して処理Mを実行する場合を示している。
また、前述した各実施の形態では、システム10、10a、10bがアクセラレータ(ハードウェアアクセラレータ)12を備える構成とし、動作履歴レコーダ14が、アクセラレータ12の情報を取得するようにしたが、情報を取得する対象のハードウェアはこれに限定されず、例えば、コプロセッサやDSP等を備えている場合は、動作履歴レコーダ14が、これらの情報を取得するようにしてもよい。
(付記1) デバッグを支援するデバッグ支援装置において、
デバッグ対象となる専用の命令を処理する命令処理部に処理させる命令を一時記憶するキュー構造をなす一時記憶部と、
前記一時記憶部に記憶される命令に関する情報を格納する履歴情報格納部と、
前記一時記憶部に記憶される命令に関する情報を取得して前記履歴情報格納部に格納する制御部と、
を有することを特徴とするデバッグ支援装置。
前記制御部は、前記アドレス格納部に格納されているアドレスに基づいて、前記一時記憶部に記憶される命令に関する情報を前記履歴情報格納部に格納することを特徴とする付記1記載のデバッグ支援装置。
前記制御部は、前記条件格納部に格納された条件に基づいて前記履歴情報格納部への格納を開始することを特徴とする付記1記載のデバッグ支援装置。
前記制御部は、前記条件格納部に格納された前記履歴情報格納部への格納を終了する条件に基づいて前記履歴情報格納部への格納を終了することを特徴とする付記4記載のデバッグ支援装置。
前記制御部は、前記選別条件格納部に格納された条件に一致する情報を前記履歴情報格納部に格納することを特徴とする付記1記載のデバッグ支援装置。
(付記9) 前記命令処理部をさらに有することを特徴とする付記1記載のデバッグ支援装置。
(付記11) 前記履歴情報格納部は、前記記憶部の一部の領域で構成されていることを特徴とする付記2記載のデバッグ支援装置。
デバッグ支援装置が有する、
キュー構造をなす一時記憶手段が、デバッグ対象となる専用の命令を処理する命令処理手段に処理させる命令を一時記憶し、
制御手段が、前記一時記憶手段に記憶される情報を取得して履歴情報格納手段に格納する、
ことを特徴とするデバッグ支援方法。
コンピュータを、
デバッグ対象となる専用の命令を処理する命令処理手段に処理させる命令を一時記憶するキュー構造をなす一時記憶部手段、
前記一時記憶手段に記憶される命令に関する情報を格納する履歴情報格納手段、
前記一時記憶手段に記憶される命令に関する情報を取得して前記履歴情報格納手段に格納する制御手段、
として機能させることを特徴とするデバッグ支援プログラム。
2、20 デバッガ
3 命令処理部
4、11 CPU
5 履歴情報格納部
6 制御部
8、10、10a、10b システム
9 処理命令格納部
12 アクセラレータ
13 メインメモリ
14 動作履歴レコーダ
15 バス
21 モニタ
121a〜121e キュー
121 ACC命令メモリ
122 ACC処理部
131 動作履歴テーブル
141 レコーダ設定レジスタ
141a 動作履歴テーブルアドレス格納部
141b 条件格納部
141c 記録情報種別格納部
142 レコーダコントローラ
142a 動作履歴テーブルライタ
142b 条件判定部
142c 記録情報選別部
Claims (5)
- デバッグ対象となる専用の命令を出力するプロセッサに接続されたデバッグ支援装置であって、
前記プロセッサから出力された命令を一時記憶する、キュー構造をなす一時記憶部と、前記一時記憶部に記憶された命令を処理する命令処理部とを有し、前記命令処理部による処理履歴を記録する機能を有していないハードウェアロジックと、
前記プロセッサの動作履歴を記録するメインメモリと、
デバッグ対象となる専用の命令が前記プロセッサから出力される場合に、該命令の実行状態に関する情報を格納するアドレスを格納するアドレス格納部と、
前記一時記憶部に記憶された命令の実行状態に関する情報および前記アドレス格納部に設定された前記アドレスに基づいて、前記メインメモリに、該実行状態に関する情報を書き込む制御部と、
を有することを特徴とするデバッグ支援装置。 - 前記制御部は、さらに、前記命令処理部が命令を処理する際に用いる前記メインメモリとの間のアクセス情報を前記メインメモリに格納することを特徴とする請求項1記載のデバッグ支援装置。
- 前記制御部の前記メインメモリへの格納を開始する条件を格納する条件格納部をさらに有し、
前記制御部は、前記条件格納部に格納された条件に基づいて前記メインメモリへの格納を開始することを特徴とする請求項1または2のいずれかに記載のデバッグ支援装置。 - 前記制御部の前記メインメモリに格納する情報を選別する条件を格納する選別条件格納部をさらに有し、
前記制御部は、前記選別条件格納部に格納された条件に一致する情報を前記メインメモリに格納することを特徴とする請求項1乃至3のいずれか1項に記載のデバッグ支援装置。
- デバッグを支援するデバッグ支援方法であって、
アドレス格納部が、デバッグ対象となる専用の命令がプロセッサから出力される場合に、該命令の実行状態に関する情報を格納するアドレスを格納し、
命令処理部による処理履歴を記録する機能を有していないハードウェアロジック内のキュー構造をなす一時記憶部が、前記プロセッサから出力された命令を一時記憶し、
前記ハードウェアロジック内の前記命令処理部が、前記一時記憶部に記憶された命令を処理し、
制御部が、前記一時記憶部に記憶された命令の実行状態に関する情報および前記アドレス格納部に設定された前記アドレスに基づいて、前記プロセッサの動作履歴を記録するメインメモリに、該実行状態に関する情報を書き込む、
ことを特徴とするデバッグ支援方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008295321A JP5277893B2 (ja) | 2008-11-19 | 2008-11-19 | デバッグ支援装置およびデバッグ支援方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008295321A JP5277893B2 (ja) | 2008-11-19 | 2008-11-19 | デバッグ支援装置およびデバッグ支援方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010122860A JP2010122860A (ja) | 2010-06-03 |
JP5277893B2 true JP5277893B2 (ja) | 2013-08-28 |
Family
ID=42324150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008295321A Expired - Fee Related JP5277893B2 (ja) | 2008-11-19 | 2008-11-19 | デバッグ支援装置およびデバッグ支援方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5277893B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5906800B2 (ja) * | 2012-02-23 | 2016-04-20 | 株式会社ソシオネクスト | Lsiモデルの記述ファイル、シミュレーションシステム、デバッグ方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6426945A (en) * | 1987-07-23 | 1989-01-30 | Fujitsu Ltd | Pipeline control type processor |
JPH02304634A (ja) * | 1989-05-18 | 1990-12-18 | Nec Eng Ltd | プロセッサシステム |
JPH0773076A (ja) * | 1993-09-06 | 1995-03-17 | Kyushu Nippon Denki Software Kk | トレース情報採取方式 |
JP2007304972A (ja) * | 2006-05-12 | 2007-11-22 | Matsushita Electric Ind Co Ltd | マイクロプロセッサシステム |
-
2008
- 2008-11-19 JP JP2008295321A patent/JP5277893B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010122860A (ja) | 2010-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3577564A2 (en) | Efficient retrieval of memory values during trace replay | |
JP2007172363A (ja) | I2cバスのデータ伝送装置、及びその方法、並びにi2cバスのデータ伝送プログラム | |
JP5277893B2 (ja) | デバッグ支援装置およびデバッグ支援方法 | |
US20030237023A1 (en) | Associated apparatus and method for supporting development of semiconductor device | |
JP2008203922A (ja) | 組立指示表示装置、組立指示表示システム、方法およびプログラム | |
JP2005165825A (ja) | トレース情報記録装置 | |
JP5673197B2 (ja) | 試験プログラムおよび試験方法 | |
JP2006227668A (ja) | メモリモデルとプログラムと論理回路検証方法 | |
JP2006107004A (ja) | トレース制御回路、マイクロプロセッサ及びトレース制御方法 | |
JPH0877143A (ja) | ベクトルデータ処理装置 | |
JP2006039843A (ja) | Ramテスト回路、情報処理装置、及びramテスト方法 | |
JP2004252824A (ja) | 回路検証方法、回路シミュレータ、回路検証プログラム | |
JP2023150107A (ja) | インサーキットエミュレータ装置 | |
JPS59112342A (ja) | マイクロプログラム制御装置 | |
JPH10307931A (ja) | アニメーション作成装置、アニメーション再生装置及びプログラム記録媒体 | |
JP2001202272A (ja) | デバッグの方法とこの方法を用いたデバッグ装置及びデバッグの方法を記録した記録媒体 | |
JP2004013506A (ja) | プロセッサのダウンロード装置及びその制御方法 | |
JP2004259154A (ja) | ソフトウェア・コンポーネントの呼出関係トレース方法及びシステム | |
JP2001256273A (ja) | 論理シミュレーション波形データ削減方法 | |
JPH11149489A (ja) | シミュレーション装置 | |
JPH1115704A (ja) | エミュレーション制御方法およびエミュレータ装置 | |
JPH0883200A (ja) | プログラマブルコントローラ | |
JP2010061473A (ja) | キャッシュ論理検証装置、キャッシュ論理検証方法およびキャッシュ論理検証プログラム | |
JPH0546641A (ja) | オンラインデータ引継ぎ方式 | |
JP2000222243A (ja) | デバッグ装置及びデバッグ方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110808 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121107 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121113 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130404 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130423 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130506 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |