JP2010122860A - デバッグ支援装置およびデバッグ支援方法 - Google Patents

デバッグ支援装置およびデバッグ支援方法 Download PDF

Info

Publication number
JP2010122860A
JP2010122860A JP2008295321A JP2008295321A JP2010122860A JP 2010122860 A JP2010122860 A JP 2010122860A JP 2008295321 A JP2008295321 A JP 2008295321A JP 2008295321 A JP2008295321 A JP 2008295321A JP 2010122860 A JP2010122860 A JP 2010122860A
Authority
JP
Japan
Prior art keywords
storage unit
information
instruction
debugging
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.)
Granted
Application number
JP2008295321A
Other languages
English (en)
Other versions
JP5277893B2 (ja
Inventor
Tetsuo Hiraki
哲夫 平木
Fumihiko Hayakawa
文彦 早川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008295321A priority Critical patent/JP5277893B2/ja
Publication of JP2010122860A publication Critical patent/JP2010122860A/ja
Application granted granted Critical
Publication of JP5277893B2 publication Critical patent/JP5277893B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】デバッグ作業の効率化および工数の削減を図ること。
【解決手段】デバッグ支援装置1は、履歴情報格納部5と、制御部6とを有している。デバッガ2は、デバッグ用のプログラムをCPU4に転送する。命令処理部3は、デバッガ2がCPU4に転送したデバッグ用のプログラムに基づいてCPU4が発行したデバッグ対象の命令を処理する。処理命令格納部9は、キュー構造をなしており、命令処理部3に処理させる命令を一時記憶する。履歴情報格納部5は、処理命令格納部9に記憶される命令に関する情報を格納する。制御部6は、処理命令格納部9に記憶される命令に関する情報を履歴情報格納部5に格納する。このようにして履歴情報格納部5に格納された命令処理部3の動作に関する情報は、デバッガ2によって取得される。
【選択図】図1

Description

本発明はデバッグ支援装置およびデバッグ支援方法に関し、特に、デバッグを支援するデバッグ支援装置およびデバッグ支援方法に関する。
一般的なソフトウェアを開発する場合、まず、ソフトウェアのプロトタイプを作成する。
次に、作成されたプロトタイプのソフトウェアがシステム上で正しく機能するか否かのテストデバッグを行う。そして、デバッグをクリアしたソフトウェアについてパフォーマンスが正しく発揮できるか否かのテストを行い、結果に応じてチューニング(プログラム最適化)を行う。
近年、ソフトウェアの開発に要する工数が増加している。その中でも特に、デバッグ、チューニングにかかる工数の増加が問題となっている。
また、プログラム処理の高速化を実現するために、ハードウェアの構成としてDSP(Digital Signal Processor)やコプロセッサ(co-processor)やASIC(Application Specific Integrated Circuit)等を備えるアクセラレータ(accelerator)と、CPU(Central Processing Unit)とを組み合わせたプロセッサシステムが近年使用されつつある。
プログラム開発者は、CPUのデバッグ情報のみを用いてデバッグ、チューニングを行うため、このようなプロセッサシステムではアクセラレータの動作を確認することができず、プログラムのデバッグ効率が非常に悪い。
このため、アクセラレータがコプロセッサで構成されているプロセッサシステムに対しては、コプロセッサ内のレジスタ情報をメインメモリ内に設けた領域に記録する技術が知られている(例えば、特許文献1参照)。これにより、コプロセッサの動作情報を取得し、コプロセッサのデバッグ情報として利用することができる。
特開平01−297764号公報
しかしながら、ASIC等のハードウェア・アクセラレータは、プログラムやレジスタを持たないため、このようなプロセッサシステムに特許文献1に記載した方法を直接適用することができない。従って、ASIC等のハードウェア・アクセラレータとCPUとを組み合わせたプロセッサシステム上でプログラムのデバッグを行う場合、アクセラレータのデバッグ情報を取得することが非常に困難であるという問題があった。
本発明はこのような点に鑑みてなされたものであり、デバッグ作業の効率化および工数の削減を図ることができるデバッグ支援装置およびデバッグ支援方法を提供することを目的とする。
上記目的を達成するために、デバッグを支援するデバッグ支援装置において、デバッグ対象となる専用の命令を処理する命令処理部に処理させる命令を一時記憶するキュー構造をなす一時記憶部と、前記一時記憶部に記憶される命令に関する情報を格納する履歴情報格納部と、前記一時記憶部に記憶される命令に関する情報を取得して前記履歴情報格納部に格納する制御部と、を有することを特徴とするデバッグ支援装置が提供される。
このようなデバッグ支援装置によれば、一時記憶部により、デバッグ対象となる専用の命令を処理する一時記憶部に処理させる命令が一時記憶される。また、制御部により、一時記憶部に記憶される命令に関する情報が履歴情報格納部に格納される。
開示のデバッグ支援装置によれば、命令処理部の動作に関する情報が履歴情報格納部に格納されるため、デバッガが、その情報を容易に取得することができる。従って、デバッグ作業の効率化および工数の削減を図ることができる。
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態のシステムについて説明し、その後、実施の形態をより具体的に説明する。
図1は、実施の形態のシステムの概要を示す図である。
図1に示すデバッグ対象となるシステム8は、命令処理部3と、処理命令格納部(一時記憶部)9と、CPU4とデバッグ支援装置1とを有している。
デバッグ支援装置1は、デバッガ2のデバッグを支援する装置である。このデバッグ支援装置1は、履歴情報格納部5と、制御部6とを有している。
デバッガ2は、デバッグ用となる専用のプログラムをCPU4に転送する。
命令処理部3は、デバッガ2がCPU4に転送したデバッグ用のプログラムに基づいてCPU4が発行したデバッグ対象の命令を処理する。
その際、命令処理部3が処理中の場合、処理命令格納部9にて処理命令を一時的に保管し、命令処理部3の処理が終了後、処理命令を転送する。
履歴情報格納部5は、処理命令格納部9、および命令処理部3の動作に関する情報(動作履歴情報)を格納する。この動作履歴情報としては、特に限定されないが、例えば、処理命令格納部9が命令処理部3に命令を発行した時刻に関する情報およびその命令の内容や、命令処理部3が処理に要した各命令の時刻に関する情報や、命令処理部3と図示しないメモリ間とのデータアクセスの情報等が挙げられる。
制御部6は、処理命令格納部9、および命令処理部3の動作に関する情報を履歴情報格納部5に格納する。
また、制御部6は、デバッグ情報を命令処理格納部9から取得する。
このようにして履歴情報格納部5に格納された処理命令格納部9、および命令処理部3の動作に関する情報は、デバッガ2によって取得される。
このようなデバッグ支援装置1によれば、命令処理部3の動作に関する情報を処理命令格納部9の動作情報から取得し、格納するようにした。これにより、命令処理部3がプログラムやレジスタを実装することができないような構成であっても、命令処理部3がどのような処理を行っているのかをデバッガ2が容易に把握することができる。これにより、プログラム開発者は、その処理内容に応じてプログラムのデバッグ、チューニング等を容易に行うことができる。
以下、実施の形態をより具体的に説明する。
図2は、実施の形態のシステムの構成例を示す図である。
システム(デバッグ支援装置)10は、CPU11と、アクセラレータ12と、メインメモリ(記憶部)13と、動作履歴レコーダ14とを有している。
CPU11は、システム10の全体を制御している。
CPU11とメインメモリ13、アクセラレータ12とメインメモリ13、動作履歴レコーダ14とメインメモリ13は、それぞれバス15を介して接続されている。
CPU11は、デバッガ(PC)20からデバッグまたはチューニング用の条件データを受け取ると、デバッガ20がアクセラレータ12の処理履歴を把握できる設定情報を専用線を介して動作履歴レコーダ14に設定する。
また、CPU11は、デバッガ20に対しCPU11の情報を送信する。
また、CPU11は、バス15を介してアクセラレータ12に処理させる命令(ACC命令)をアクセラレータ12に送る。
アクセラレータ12は、ACC命令メモリ(一時記憶部)121とACC処理部(命令処理部)122とを有している。
ACC命令メモリ121は、キュー構造をなしており、CPU11からバス15を介して送られてきたACC命令を順次蓄えていく。
ACC処理部122は、ACC命令メモリ121に格納されているACC命令を順次処理する。具体的には、キュー121aに格納されている命令を処理する。ACC命令メモリ121は、ACC処理部122によってACC命令が処理される度に、キュー121b〜121eに格納されているACC命令を1つずつ繰り上げる。
メインメモリ13は、動作履歴レコーダ14が取得したACC命令メモリ121の情報を保持する動作履歴テーブル(履歴情報格納部)131を有している。
動作履歴レコーダ14は、専用線を介してアクセラレータ12の動作をモニタリングすることにより取得したACC命令メモリ121の情報を動作履歴テーブル131に書き込む。
ここで、取得する情報としては、例えばACC命令がACC処理部122によって処理されるときの時刻の情報や、ACC命令メモリ121における各命令の動作履歴や、その命令を識別する情報や、キュー121a〜121eに格納される命令の量等が挙げられる。
なお、ACC命令メモリ121における各命令の動作履歴としては、例えば、キュー121a〜121eでの命令の遷移する時刻等が挙げられる。
この動作履歴レコーダ14は、レコーダ設定レジスタ(アドレス格納部)141と、レコーダコントローラ(制御部)142とを有している。
レコーダ設定レジスタ141は、取得した情報を動作履歴テーブル131に書き込む際の書き込み開始アドレスを指定する動作履歴テーブルアドレス格納部141aを有している。
レコーダ設定レジスタ141の格納部の内容は専用の信号線を介してCPU11から書き込まれる。
レコーダコントローラ142は、動作履歴テーブル131にACC命令メモリ121の情報を書き込む動作履歴テーブルライタ142aを有している。
動作履歴テーブルライタ142aは、動作履歴テーブルアドレス格納部141aを参照し、動作履歴テーブル131の書き込みアドレスを取得する。そして、取得した書き込みアドレスに、取得したACC命令メモリ121の情報を書き込む。その後は、動作履歴テーブルアドレス格納部141aから取得した書き込みアドレスを順次オフセットさせ、そのオフセットしたアドレスに、順次データを書き込んでいく。このオフセットの情報は、例えばレコーダ設定レジスタ141に設定される。
デバッガ20は、モニタ21を有している。デバッガ20は、動作履歴テーブル131から取得した情報を編集した画面をモニタ21に表示させる。
以上のような構成によって、本実施の形態の処理機能を実現することができる。
次に、システム10の処理を説明する。
図3は、システムの処理を示すシーケンス図である。
なお、図3では、説明を分かりやすくするために、動作履歴テーブル131のブロックをメインメモリ13とは別個に設けている。また、以下に示すステップ番号は、処理の対応関係を示すものである。
まず、デバッガ20が、CPU11にデバッグ/チューニング用のプログラムを実装する。これによりCPU11は、プログラムの実行を開始する(ステップS1)。
CPU11は、動作履歴レコーダ14にレコーダ設定レジスタ141に条件情報の設定を行う(ステップS2)。
レコーダ設定レジスタ141の設定を受けた動作履歴レコーダ14は、メインメモリ13内に動作履歴テーブル131の領域を設定する(ステップS3)。
CPU11は、ACC命令#1、ACC命令#2、ACC命令#3をアクセラレータ12に出力する。
本実施の形態では、まず、ACC命令#1が、ACC命令メモリ121のキュー121aに格納される(ステップS4)。このとき、動作履歴レコーダ14が、ACC命令#1のACC処理部122による処理が行われるタイミングおよびACC命令#1を識別する情報を取得する(ステップS5)。
なお、ACC処理部122が、他のACC命令の処理を行っているときに、ACC命令#1が発行されると、待ち合わせを行う(ステップS5a)。
動作履歴レコーダ14は、取得した情報を動作履歴テーブル131に格納する(ステップS6)。
また、ACC処理部122が、ACC命令#1の処理を行う。具体的には、ACC処理部122は、キュー121aに格納されているACC命令#1を取得する(ステップS7)。
ACC処理部122は、メインメモリ13を使用してACC命令#1の処理を行う(ステップS8)。
そして、ACC処理部122は、処理が完了すると、処理完了通知をキュー121aに送る(ステップS9)。
また、CPU11は、ACC命令#1が実行される前に、ACC命令#2をアクセラレータ12に送る。アクセラレータ12は、このACC命令#2を、キュー121bに格納する(ステップS10)。そして、キュー121aに格納されていたACC命令#1がACC処理部122に送られると、キュー121bに格納されていたACC命令#2を、キュー121aに移動する(ステップS11)。
動作履歴レコーダ14は、キュー121aを参照し、ACC命令#2のACC処理部122による処理が行われるタイミングおよびACC命令#2を識別する情報を取得する(ステップS12)。動作履歴レコーダ14は、取得した情報を動作履歴テーブル131に格納する(ステップS13)。
キュー121aは、ステップS9においてACC処理部122から処理完了通知を受け取ると、ACC処理部122は、キュー121aに格納されているACC命令#2を取得する(ステップS14)。
ACC処理部122は、メインメモリ13を使用してACC命令#2の処理を行う(ステップS15)。
そして、ACC処理部122は、処理が完了すると、処理完了通知をキュー121aに送る(ステップS16)。
また、CPU11は、ACC命令#2が実行される前に、ACC命令#3をアクセラレータ12に送る。アクセラレータ12は、このACC命令#3を、キュー121cに格納する(ステップS17)。そして、キュー121bに格納されていたACC命令#2がキュー121aに送られると、キュー121cに格納されていたACC命令#3を、キュー121bに移動する(ステップS18)。そして、キュー121bに格納されていたACC命令#2がACC処理部122に送られると、キュー121bに格納されていたACC命令#3を、キュー121aに移動する(ステップS19)。
動作履歴レコーダ14は、キュー121aを参照し、ACC命令#3のACC処理部122による処理が行われるタイミングおよびACC命令#3を識別する情報を取得する(ステップS20)。動作履歴レコーダ14は、取得した情報を動作履歴テーブル131に格納する(ステップS21)。
キュー121aは、ステップS16においてACC処理部122から処理完了通知を受け取ると、ACC処理部122は、キュー121aに格納されているACC命令#3を取得する(ステップS22)。
ACC処理部122は、メインメモリ13を使用してACC命令#3の処理を行う(ステップS23)。
そして、ACC処理部122は、処理が完了すると、処理完了通知をキュー121aに送る(ステップS24)。
その後、デバッガ20は、デバッグ開始時に、動作履歴テーブル131に格納されている情報を取得する(ステップS25)。
以上でシステム10の処理の説明を終了する。
以上述べたように、本実施の形態のシステム10によれば、システム10の動作中に、CPU11からレコーダ設定レジスタ141に動作履歴テーブル131への書き込み開始アドレスを設定した。そして、ACC命令メモリ121の情報をデバッグ・チューニング情報として動作履歴テーブル131内に格納するようにした。これにより、各命令のACC処理部122での処理開始/終了時刻や、各命令のACC処理部122での処理時間を容易に把握することができる。従って、プログラム開発者は、この情報を用いて容易にプログラムのデバッグ・チューニングを行うことができる。
次に、プログラム開発者が、ステップS25にて取得した情報を用いてチューニングを行う例を説明する。
図4は、デバッガが取得した情報をモニタに表示する一例を示す図である。
図4中、命令A、B、Cは、それぞれCPU11がアクセラレータ12に実行させる命令であり、処理Dは、命令Aの処理結果に基づいてCPU11が実行する処理であり、処理Eは、命令Bの処理結果に基づいてCPU11が実行する処理であり、処理Fは、命令Cの処理結果に基づいてCPU11が実行する処理である。
図4(a)は、デバッガ20が、動作履歴テーブル131に格納されている情報を編集し、処理を時系列に沿って並べた画面を示している。
この画面には、CPU11が処理Dの処理を終了した後、処理Eの処理を開始する前に、処理Eの処理を待機していることが示されている。その理由として、アクセラレータ12が、命令Bの処理を終了していないことが示されている。さらに、アクセラレータ12が、命令Cの処理に要する時間が、命令Bの処理に要する時間よりも短いことが示されている。
このように、動作履歴レコーダ14および動作履歴テーブル131を設けることにより、アクセラレータ12の内部でどのような処理が行われているのかを容易に把握することができる。
従って、プログラム開発者は、図4(a)に示す情報に基づいて、全体の処理時間が短縮するようにプログラムのスケジューリングを容易に行うことができる。図4(a)に示す例では、命令Bを命令Cの後にアクセラレータ12に読み込ませるようにCPU11のアクセラレータ12に対する命令発行の順序を入れ替えればよいことが容易に把握できる。これにより、図4(b)に示すように、処理時間の短縮を図ることができる。
このように、動作履歴テーブル131に格納されている情報を活用することにより、チューニングの効率を向上させることができる。
なお、本実施の形態では、ACC命令メモリ121がアクセラレータ12の内部に設けられているものとして説明したが、ACC命令メモリ121はアクセラレータ12の外部に設けられていてもよい。
また、本実施の形態では、動作履歴テーブル131を、メインメモリ13の内部に設けたが、動作履歴テーブル131を、メインメモリ13の外部に設けるようにしてもよい。
さらに、本実施の形態では、CPU11が、レコーダ設定レジスタ141を設定したが、デバッガ20(外部)から直接、レコーダ設定レジスタ141を設定するようにしてもよい。
<第2の実施の形態>
次に、第2の実施の形態のシステムについて説明する。
以下、第2の実施の形態のシステムについて、前述した第1の実施の形態のシステム10との相違点を中心に説明し、同様の事項については、その説明を省略する。
図5は、第2の実施の形態のシステムを示すブロック図である。
図5に示す第2の実施の形態のシステム10aは、レコーダ設定レジスタ141およびレコーダコントローラ142の構成が第1の実施の形態のシステム10と異なっている。
レコーダ設定レジスタ141は、動作履歴テーブル131に記録の開始条件(記録開始条件)および記録の終了条件(記録終了条件)を設定する条件格納部141bをさらに有している。この記録開始条件および記録終了条件としては特に限定されないが、例えば、アクセラレータ12に発行される命令の内部に埋め込まれたトリガとなる情報を受け取ったときを条件としてもよい。また、ACC命令メモリ121内のトラフィック状態を条件としてもよい。すなわち、例えば、キュー121a〜121eに一定以上命令が蓄えられたら記録を開始し、キュー121a〜121eに蓄えられた命令が一定以下になったら記録を終了するようにしてもよい。
また、記録を開始するカウント数および記録を終了するカウント数、並びに、カウンタとして採用する情報を条件格納部141bに予め設定しておき、カウンタとして採用する情報が、このカウント数に一致したことを条件としてもよい。すなわち、カウンタとして採用する情報が、このカウント数に一致したときに記録を開始、終了するようにしてもよい。なお、カウントとして採用する情報としては、例えばクロックやACC処理部122での命令処理数等が挙げられる。
レコーダコントローラ142は、記録開始条件および記録終了条件を判定する条件判定部142bをさらに有している。
条件判定部142bは、ACC命令メモリ121の情報を記録する際、条件格納部141bを参照する。そして、記録開始条件に一致すればACC命令メモリ121の情報の記録を開始する。また、記録終了条件に一致すればACC命令メモリ121の情報の記録を終了する。
次に、システム10aの処理を説明する。
図6は、第2の実施の形態のシステムの処理を示すフローチャートである。
まず、CPU11がプログラムの実行を開始し(ステップS31)、動作履歴テーブルアドレス格納部141aに格納するアドレス情報や、条件格納部141bに格納する記録開始条件および記録終了条件の情報を転送する(ステップS32)。
動作履歴レコーダ14は、CPUから、アドレス情報を動作履歴テーブルアドレス格納部141aに、記録開始条件および記録終了条件を条件格納部141bに設定される(ステップS33)。
その後、条件判定部142bは、条件格納部141bに格納されている記録開始条件に一致するか否かを判断する(ステップS34)。
具体的には、記録開始条件として「アクセラレータ12に発行される命令の内部に埋め込まれたトリガとなる情報を受け取ったとき」が設定されている場合、この情報を受け取ったか否かを判断する。また、記録開始条件として「ACC命令メモリ121内のトラフィック状態」が設定されている場合、例えば、キュー121cに命令が蓄えられているか否かを判断する。
記録開始条件に一致していない場合(ステップS34のNo)、ステップS34に移行し、ステップS34の処理を再度行う。
一方、記録開始条件に一致する場合(ステップS34のYes)、ACC命令メモリ121から取得した情報の記録を開始する。すなわち、ACC命令メモリ121から取得した情報を動作履歴テーブル131に格納する(ステップS35)。動作履歴テーブル131は、格納された情報を保持する。
その後、条件判定部142bは、ACC命令メモリ121から取得した情報が、条件格納部141bに格納された記録終了条件に一致するか否かを判断する(ステップS36)。
記録終了条件に一致していない場合(ステップS36のNo)、ステップS35に移行し、ステップS35の処理を再度行う。
一方、記録終了条件に一致する場合(ステップS36のYes)、記録を終了する。
デバッガ20は、ブレークポイントにてCPU11の処理を一時停止する(ステップS37)。そして、動作履歴テーブル131に格納されている情報を参照する(ステップS38)。
次に、デバッガ20は、デバッグが終了したか否かを判断する(ステップS39)。
デバッグが終了していない場合(ステップS39のNo)、ステップS32に移行し、ステップS32以降の処理を引き続き行う。
一方、デバッグが終了した場合(ステップS39のYes)、処理を終了する。
なお、ステップS34にて記録を開始した後に、ステップS36の判断処理を行うまでの時間は、特に限定されないが、例えば、CPU11のクロック数をカウントし、予め指定されたサイクル数の経過後に、ステップS36の判断処理を行うようにしてもよい。また、CPU11が発行する命令の数に応じてステップS36の判断処理を行うようにしてもよい。また、アクセラレータ12のメインメモリ13へのアクセス数に応じてステップS36の判断処理を行うようにしてもよい。
この第2の実施の形態のシステム10aによれば、第1の実施の形態のシステム10と同様の効果が得られる。
そして、第2の実施の形態のシステム10aによれば、アクセラレータ12の動作情報を適切なタイミングで動作履歴テーブル131に格納することができる。従って、デバッガ20が、この動作履歴テーブル131に格納された情報を参照することで、デバッグ効率をさらに、向上させることができる。また、動作履歴テーブル131に格納する情報量を減らすことができるため、動作履歴テーブル131の容量を削減することができる。
なお、本実施の形態では、条件判定部142bは、条件格納部141bに格納された情報に基づいて動作を開始または終了するようにした。しかし、これに限定されず、CPU11から動作履歴レコーダ14に直接発行される開始コマンドおよび終了コマンドに基づいて動作を開始または終了するようにしてもよい。
<第3の実施の形態>
次に、第3の実施の形態のシステムについて説明する。
以下、第3の実施の形態のシステムについて、前述した第1の実施の形態のシステム10との相違点を中心に説明し、同様の事項については、その説明を省略する。
図7は、第3の実施の形態のシステムを示すブロック図である。
図7に示す第3の実施の形態のシステム10bは、レコーダ設定レジスタ141およびレコーダコントローラ142の構成が第1の実施の形態のシステム10と異なっている。
レコーダ設定レジスタ141は、動作履歴テーブル131に格納する情報の種別を指定する情報を格納する記録情報種別格納部(選別条件格納部)141cをさらに有している。
この格納する情報の種別を指定する情報としては、例えば、ACCメモリの情報を指定する情報や、アクセラレータ12とメインメモリ13との間のアクセス情報を指定する情報等が挙げられる。
レコーダコントローラ142は、記録情報種別格納部141cに格納された情報に基づいて、動作履歴テーブルライタ142aに書き込ませる情報を選別する記録情報選別部142cをさらに有している。
次に、システム10bの処理を説明する。
図8は、第3の実施の形態のシステムの処理を示すシーケンス図である。
ステップS8a、S15a、S23a:アクセラレータ12とメインメモリ13との間のメモリアクセス情報を動作履歴レコーダ14が取得する。
ステップS8b、S15b、S23b:取得したメモリアクセス情報を履歴テーブルライタ142aが動作履歴テーブル131に格納する。このとき、記録情報選別部142cが、記録情報種別格納部141cに格納された情報により、格納するデータを選別する。
この第3の実施の形態のシステム10bによれば、第1の実施の形態のシステム10と同様の効果が得られる。
そして、第3の実施の形態のシステム10bによれば、記録する情報の種別を設定することにより、さらに、動作履歴テーブル131に格納する情報量を減らすことができるため、動作履歴テーブル131の容量を削減することができる。
図9は、第3の実施の形態のシステムにおいてデバッガが取得した情報をモニタに表示する一例を示す図である。
図9(a)は、CPU11が、ACC処理部122による1回の処理でデータH〜Lが生成される命令Gをアクセラレータ12に発行し、生成されたデータH〜Lを利用して処理Mを実行する場合を示している。
動作履歴テーブル131に格納されている情報を参照することにより、図9(a)に示すように、ACC処理部122がデータH〜Lを生成するタイミングを容易に把握することができる。
従って、プログラム開発者は、この情報に基づいて、処理時間が短縮するようにプログラムのチューニングを容易に行うことができる。図9(a)に示す例では、ACC処理部122によるデータH生成のタイミングで、CPU11に生成されたデータHを使用する処理Nを実行させる。データI生成のタイミングで、CPU11に生成されたデータIを使用する処理Oを実行させる。データJ生成のタイミングで、CPU11に生成されたデータJを使用する処理Pを実行させる。データK生成のタイミングで、CPU11に生成されたデータKを使用する処理Qを実行させる。データL生成のタイミングで、CPU11に生成されたデータLを使用する処理Rを実行させる。これにより、図9(b)に示すように、処理時間の短縮を図ることができる。
以上、本発明のデバッグ支援装置およびデバッグ支援方法を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
また、本発明は、前述した各実施の形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
また、前述した各実施の形態では、システム10、10a、10bがアクセラレータ(ハードウェアアクセラレータ)12を備える構成とし、動作履歴レコーダ14が、アクセラレータ12の情報を取得するようにしたが、情報を取得する対象のハードウェアはこれに限定されず、例えば、コプロセッサやDSP等を備えている場合は、動作履歴レコーダ14が、これらの情報を取得するようにしてもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、システム10、10a、10bが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等が挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)等が挙げられる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
デバッグ支援プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上の第1〜第3の実施の形態に関し、更に以下の付記を開示する。
(付記1) デバッグを支援するデバッグ支援装置において、
デバッグ対象となる専用の命令を処理する命令処理部に処理させる命令を一時記憶するキュー構造をなす一時記憶部と、
前記一時記憶部に記憶される命令に関する情報を格納する履歴情報格納部と、
前記一時記憶部に記憶される命令に関する情報を取得して前記履歴情報格納部に格納する制御部と、
を有することを特徴とするデバッグ支援装置。
(付記2) 前記履歴情報格納部に情報を格納する際の書き込みアドレスを格納するアドレス格納部をさらに有し、
前記制御部は、前記アドレス格納部に格納されているアドレスに基づいて、前記一時記憶部に記憶される命令に関する情報を前記履歴情報格納部に格納することを特徴とする付記1記載のデバッグ支援装置。
(付記3) 前記制御部は、さらに、前記命令処理部が命令を処理する際に用いる記憶部との間のアクセス情報を前記履歴情報格納部に格納することを特徴とする付記1記載のデバッグ支援装置。
(付記4) 前記制御部の前記履歴情報格納部への格納を開始する条件を格納する条件格納部をさらに有し、
前記制御部は、前記条件格納部に格納された条件に基づいて前記履歴情報格納部への格納を開始することを特徴とする付記1記載のデバッグ支援装置。
(付記5) 前記条件格納部は、前記制御部の前記履歴情報格納部への格納を終了する条件を格納しており、
前記制御部は、前記条件格納部に格納された前記履歴情報格納部への格納を終了する条件に基づいて前記履歴情報格納部への格納を終了することを特徴とする付記4記載のデバッグ支援装置。
(付記6) 前記制御部の前記履歴情報格納部に格納する情報を選別する条件を格納する選別条件格納部をさらに有し、
前記制御部は、前記選別条件格納部に格納された条件に一致する情報を前記履歴情報格納部に格納することを特徴とする付記1記載のデバッグ支援装置。
(付記7) 前記一時記憶部に記憶される命令に関する情報は、前記命令処理部が前記命令を処理するときの時刻の情報であることを特徴とする付記1記載のデバッグ支援装置。
(付記8) 前記一時記憶部に記憶される命令に関する情報は、キュー内を前記命令が移動する時刻の情報であることを特徴とする付記1記載のデバッグ支援装置。
(付記9) 前記命令処理部をさらに有することを特徴とする付記1記載のデバッグ支援装置。
(付記10) 前記記憶部をさらに有することを特徴とする付記3記載のデバッグ支援装置。
(付記11) 前記履歴情報格納部は、前記記憶部の一部の領域で構成されていることを特徴とする付記2記載のデバッグ支援装置。
(付記12) デバッグを支援するデバッグ支援方法において、
デバッグ支援装置が有する、
キュー構造をなす一時記憶手段が、デバッグ対象となる専用の命令を処理する命令処理手段に処理させる命令を一時記憶し、
制御手段が、前記一時記憶手段に記憶される情報を取得して履歴情報格納手段に格納する、
ことを特徴とするデバッグ支援方法。
(付記13) デバッグを支援するデバッグ支援プログラムにおいて、
コンピュータを、
デバッグ対象となる専用の命令を処理する命令処理手段に処理させる命令を一時記憶するキュー構造をなす一時記憶部手段、
前記一時記憶手段に記憶される命令に関する情報を格納する履歴情報格納手段、
前記一時記憶手段に記憶される命令に関する情報を取得して前記履歴情報格納手段に格納する制御手段、
として機能させることを特徴とするデバッグ支援プログラム。
実施の形態のシステムの概要を示す図である。 実施の形態のシステムの構成例を示す図である。 システムの処理を示すシーケンス図である。 デバッガが取得した情報をモニタに表示する一例を示す図である。 第2の実施の形態のシステムを示すブロック図である。 第2の実施の形態のシステムの処理を示すフローチャートである。 第3の実施の形態のシステムを示すブロック図である。 第3の実施の形態のシステムの処理を示すシーケンス図である。 第3の実施の形態のシステムにおいてデバッガが取得した情報をモニタに表示する一例を示す図である。
符号の説明
1 デバッグ支援装置
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 (6)

  1. デバッグを支援するデバッグ支援装置において、
    デバッグ対象となる専用の命令を処理する命令処理部に処理させる命令を一時記憶するキュー構造をなす一時記憶部と、
    前記一時記憶部に記憶される命令に関する情報を格納する履歴情報格納部と、
    前記一時記憶部に記憶される命令に関する情報を取得して前記履歴情報格納部に格納する制御部と、
    を有することを特徴とするデバッグ支援装置。
  2. 前記履歴情報格納部に情報を格納する際の書き込みアドレスを格納するアドレス格納部をさらに有し、
    前記制御部は、前記アドレス格納部に格納されているアドレスに基づいて、前記一時記憶部に記憶される命令に関する情報を前記履歴情報格納部に格納することを特徴とする請求項1記載のデバッグ支援装置。
  3. 前記制御部は、さらに、前記命令処理部が命令を処理する際に用いる記憶部との間のアクセス情報を前記履歴情報格納部に格納することを特徴とする請求項1記載のデバッグ支援装置。
  4. 前記制御部の前記履歴情報格納部への格納を開始する条件を格納する条件格納部をさらに有し、
    前記制御部は、前記条件格納部に格納された条件に基づいて前記履歴情報格納部への格納を開始することを特徴とする請求項1記載のデバッグ支援装置。
  5. 前記制御部の前記履歴情報格納部に格納する情報を選別する条件を格納する選別条件格納部をさらに有し、
    前記制御部は、前記選別条件格納部に格納された条件に一致する情報を前記履歴情報格納部に格納することを特徴とする請求項1記載のデバッグ支援装置。
  6. デバッグを支援するデバッグ支援方法において、
    デバッグ支援装置が有する、
    キュー構造をなす一時記憶手段が、デバッグ対象となる専用の命令を処理する命令処理手段に処理させる命令を一時記憶し、
    制御手段が、前記一時記憶手段に記憶される情報を取得して履歴情報格納手段に格納する、
    ことを特徴とするデバッグ支援方法。
JP2008295321A 2008-11-19 2008-11-19 デバッグ支援装置およびデバッグ支援方法 Expired - Fee Related JP5277893B2 (ja)

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 true JP2010122860A (ja) 2010-06-03
JP5277893B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013174960A (ja) * 2012-02-23 2013-09-05 Fujitsu Semiconductor Ltd Lsiモデルの記述ファイル、シミュレーションシステム、デバッグ方法

Citations (4)

* Cited by examiner, † Cited by third party
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 マイクロプロセッサシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
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 マイクロプロセッサシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013174960A (ja) * 2012-02-23 2013-09-05 Fujitsu Semiconductor Ltd Lsiモデルの記述ファイル、シミュレーションシステム、デバッグ方法

Also Published As

Publication number Publication date
JP5277893B2 (ja) 2013-08-28

Similar Documents

Publication Publication Date Title
EP3577564A2 (en) Efficient retrieval of memory values during trace replay
JP2007172363A (ja) I2cバスのデータ伝送装置、及びその方法、並びにi2cバスのデータ伝送プログラム
JP5277893B2 (ja) デバッグ支援装置およびデバッグ支援方法
JP2008203922A (ja) 組立指示表示装置、組立指示表示システム、方法およびプログラム
JP2006277280A (ja) コンピュータシステム、その日付時刻変更方法及び日付変更方法
JP2000215068A (ja) マルチタスクスケジュ―リング装置
JP2005165825A (ja) トレース情報記録装置
JP2005011451A (ja) 試験装置、及びプログラム
JP2006227668A (ja) メモリモデルとプログラムと論理回路検証方法
JPH0877143A (ja) ベクトルデータ処理装置
JP2008198001A (ja) 修正パッチ選択支援システム及び支援方法
JP2004252824A (ja) 回路検証方法、回路シミュレータ、回路検証プログラム
JP2006107004A (ja) トレース制御回路、マイクロプロセッサ及びトレース制御方法
JP2006039843A (ja) Ramテスト回路、情報処理装置、及びramテスト方法
JP2012174092A (ja) 試験プログラムおよび試験方法
JPH10307931A (ja) アニメーション作成装置、アニメーション再生装置及びプログラム記録媒体
JP2004259154A (ja) ソフトウェア・コンポーネントの呼出関係トレース方法及びシステム
JP3110391B2 (ja) プログラム再実行方法
JP2023150107A (ja) インサーキットエミュレータ装置
JP2004013506A (ja) プロセッサのダウンロード装置及びその制御方法
JP2001256273A (ja) 論理シミュレーション波形データ削減方法
JPS59112342A (ja) マイクロプログラム制御装置
JP2010061473A (ja) キャッシュ論理検証装置、キャッシュ論理検証方法およびキャッシュ論理検証プログラム
JPH11149489A (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