JP2006293725A - Lsiシステム向けデバッグ装置 - Google Patents

Lsiシステム向けデバッグ装置 Download PDF

Info

Publication number
JP2006293725A
JP2006293725A JP2005114134A JP2005114134A JP2006293725A JP 2006293725 A JP2006293725 A JP 2006293725A JP 2005114134 A JP2005114134 A JP 2005114134A JP 2005114134 A JP2005114134 A JP 2005114134A JP 2006293725 A JP2006293725 A JP 2006293725A
Authority
JP
Japan
Prior art keywords
dma
debugging device
bus access
debug target
target
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
JP2005114134A
Other languages
English (en)
Inventor
Atsushi Ito
敦 伊藤
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005114134A priority Critical patent/JP2006293725A/ja
Publication of JP2006293725A publication Critical patent/JP2006293725A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ソフトウェアの不具合に起因するDMAの誤転送が発生し、このためにハードウェアモジュールの設定が変更され、ソフトウェア開発者の意図したとおりにソフトウェア・ハードウェアが動作しない場合のデバッグにおいて、従来のデバッガでは、アクセス元となったDMAを直接突き止めることが出来ず、問題の解決には至らない。CPU以外のハードウェアによるアクセスについて、アクセス元を特定することが出来ない。
【解決手段】デバッガは、ターゲットの各DMA仕様情報と、自己の持つCPUトレース情報から、各DMAの現在の設定状況を管理する。その上で、各DMAの設定状況から、問題のアクセスを発行しうるDMAを判定する。
【選択図】図1

Description

本発明は、ソフトウェア不具合解析を目的としたデバッグ装置(デバッガ)に関するものである。
従来のデバッグ機構としては、LSIシステムのバスを観測するにあたり、LSIシステム自身にバスアドレス一致検出部を搭載することで、ロジックアナライザ等を用意せずとも、バスアクセスを観測可能とするものがあった(例えば、特許文献1参照)。
図12は、特許文献1に記載された従来のデバッグ機構を示すものである。図12において、1208は、設定アドレスレジスタ1208aに予め設定されている一致検出したいアドレス値と、アドレス/データバス1204上のアドレス値とを常に一致検出判断して、アドレス/データバス1204上のアドレス値を常にモニタするための一致検出部である。1208は監視アドレスと一致検出したいアドレスが一致すると、割り込み信号を1207経由でMPU1212へ送出し、アドレス一致検出したことをMPU1212へ通知する。信号1205はDMAコントローラ1202からの転送状態信号であり、1205と1206が共に「Hi」であるとき、割り込み信号1207がMPU1212へ入力される。
特開平2−228741号公報(第4頁、図1)
しかしながら、前記従来デバッグ機構では、例えばソフトウェアの不具合に起因するDMAの誤転送が発生し、このためにハードウェアモジュールの設定が変更され、ソフトウェア開発者の意図したとおりにソフトウェア・ハードウェアが動作しない場合のデバッグにおいては、アクセス元となったDMAを直接突き止めることが出来ず、問題の解決には至らない。
つまり、従来のデバッガでは、CPU以外のハードウェアによるアクセスについて、アクセス元を特定することが出来ないという課題を有していた。
本発明は、前記従来の課題を解決するもので、バスアクセスを発行したDMAを特定可能なデバッガを提供することを目的としている。
前記従来の課題を解決するために、本発明のデバッガは、デバッグ対象(ターゲット)の各DMA仕様情報と、各DMAの現在の設定状況を管理する。その上で、各DMAの設定状況から、問題のアクセスを発行しうるDMAを判定する。
本構成によって、従来デバッガでは不可能だった、バスアクセスを発行したDMAの特定が可能になる。
本発明のデバッガによれば、問題となるバスアクセス元がDMAであっても、このDMAの特定が可能。従来デバッガで同等の成果を挙げるには、ターゲットに精通した解析者による、各DMA仕様とCPUトレース情報の照合が必要だった。つまりデバッガの性能向上、ひいてはソフトウェア開発の効率が向上する。
以下本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図1は、本発明の実施の形態1におけるデバッガを含む、デバッグシステムの構成図である。
デバッガ101はユーザI/F104を持つ。またデバッガ101内部にはデバッガ制御用CPU103ならびに、CPUトレース情報およびターゲットの各DMA情報を蓄積するメモリ102が存在する。デバッガ101とターゲット105は、デバッガ・ターゲット間の双方向通信路ならびに、ターゲットからのトリガ信号により接続される。ターゲット105の内部は、CPU106、バス制御装置およびバス監視機構107、メモリ108、回路A109、回路B110と、各回路間を接続するバスで構成される。
バス制御措置およびバス監視機構107について、詳細を図2に記す。ターゲットCPU106が発行したバスアクセスが、期待値アクセスパターンに一致すると、トリガ信号をデバッガへ向けて発信する機能を保有する。具体的には、メモリ204および205に予め設定されたアクセスパターン(アドレスおよびデータ)とCPUの発行したアクセスを、そのパラメータごとに比較器201および202でパターンを判断し、パターン一致すればHi信号がAND回路203に入力される。AND回路203の出力がHi信号となれば、デバッガはこれを受けて、CPUが期待値アクセスパターンを発行したことを検知する。期待値パターンを保持するメモリ204および205は、ターゲットCPU106からメモリマップされた空間に存在し、ターゲットCPU106によりその値の設定が可能である。
また、バスアクセス分配装置206は、入力されたアクセスのアドレスに応じて、アクセスバスを選択し、入力アクセスを選択したバスに伝えるものである。
ここで、図1の回路A109に対して、ソフトウェア開発者の意図しないwriteアクセスが観測され、これのアクセス元を特定する場合のフローチャートを図3、図4、図5に示す。各フローチャートにおいては、ユーザI/F104を介してデバッガ101を操作するユーザ、デバッガ101自身、およびターゲット105相互の挙動が分かるよう、同一の時間軸に3者を並べて記述した。
図3においては、301に示すように、ユーザがデバッガに対して、ターゲットDMAの仕様情報を入力する。仕様情報とはレジスタ仕様のことであり、図13に示すように、転送先アドレス設定レジスタ、転送元アドレス設定レジスタ、転送サイズ設定レジスタの、各アドレスの情報である。これはターゲットの種類ごとに固有の情報であり、デバッガまたはターゲットのベンダなどにより、予め用意されているものとする。
次に、303に示すように、問題となっているバスアクセスを特定するためのパラメータとして、アクセス先アドレスと、そのデータをターゲットに設定する。設定の方法はデバッガ経由でターゲットCPUを操作しても良いし、ターゲットCPU上のソフトウェアから直接設定しても良い。ターゲットはこれを受けて、自身が持つバスアクセス監視機構に、前記アドレスとデータをセットする。
ここまでがデバッグ前の準備段階であり、次にターゲット動作ならびにデバッガの動作が開始する。この間、デバッガはターゲットCPUの過去一定期間分のトレース情報を自己の持つメモリに蓄積し続け、ターゲットのバス制御装置およびバス監視機構107は、予め設定されたバスアクセスパターンとバスアクセスとの比較、監視を続ける。
ここでターゲットのバス制御装置およびバス監視機構107が、予め設定されたアクセスパターンを検出し、トリガ信号をデバッガに出力したとして、図4に移る。
図4においては、デバッガが、自己の管理するターゲットの各DMA仕様情報と、CPUトレース情報(=CPUのアクセス履歴)全てについて、総当りでチェックを行い、ターゲットの各DMAの設定状況をデバッガ内に生成する。
具体的には、デバッガの持つ、ターゲットCPUのwriteアクセス履歴について、アクセス先がDMA制御レジスタであるか否か判定し(404)、例えばこれがDMA3の転送先アドレス設定レジスタへのwriteであると判定された場合には、DMA3の転送先アドレス情報を、writeアクセスのデータの通りに更新する。これにより、デバッガは、現在のターゲット内の各DMAについて、設定状況(=転送パラメータ、転送先アドレス、転送元アドレス、転送サイズ)を知ることが出来る。
これが終了すると、フローは図5に移る。
図5においては、ターゲット内で検出されたwriteアクセスについて、これを発行しうるDMAを、デバッガの持つ各DMAの設定状況から判断する。
具体的には、例えばターゲット内にDMAが合計20チャンネルあるとすれば、その20チャンネルの各DMAについて、転送先空間に問題となっているwriteアクセスのアドレスが含まれるかどうか(504)、含まれるのであれば、さらに、DMAの転送元空間に、問題となっているwriteアクセスのデータが含まれるかどうかをチェックする。DMAの転送先空間、転送元空間については、そのDMAの転送先アドレスおよび転送元アドレス、転送サイズの設定状況から算出が可能である。このアドレスならびにデータの2条件が一致すれば、該DMAがバスアクセス元であるとデバッガは判断する。ちなみにこの例はアドレス・データ両方が該当することがバスアクセス元特定の条件としたが、アドレスの該当のみ、またはデータの該当のみだけでバスアクセス元としての判定を行っても構わない。
また、バスアクセス元としての判定条件に該当するDMAが存在しなかった場合は、デバッガは、問題のバスアクセス元として該当するDMAは無い、との判定を行う。この結果は、従来のCPUトレース機能と組み合わせた場合に、問題となるバスアクセス発行元がCPUではなく、さらにDMAでもないという情報をユーザに提供することになり、これはこれでデバッグを進める上で有益な情報になる。
さらに、図5のフローチャート上では、バスアクセス元と判定されたDMAが1つ見つかればフロー終了としているが、507から508に制御を移すことで、全DMAについてバスアクセス元の可能性をチェックし、疑わしいDMAを全て列挙することも考えられる。
また、本実施の形態では、問題となるアクセスがwriteアクセスであると限定したが、開発者の意図しないreadアクセスにより不具合が生じた場合の、readアクセス発行元の解析においても同様で、各DMA設定情報から、転送元空間にreadアドレスが含まれるか否かで、注目するDMAがアクセス発行元であることを判断することが出来る。
なお、本実施の形態においては、上述のように、ターゲット内の全DMAの仕様情報をデバッガに入力させるに当たっては、ターゲット固有の設定ファイルをデバッガへ入力するほかに、前記設定ファイルに相当する情報がターゲット内部に情報テーブルとして用意され、デバッガ初期化の段階で、デバッガがターゲットからこの情報を読み出し、自己の持つメモリ上で管理する方式が考えられる。
(実施の形態2)
図6は、実施の形態1に比較して、バス監視機能がターゲット外部に存在する場合を想定している。実施の形態1におけるバス制御装置およびバス監視機構107は、本実施の形態においては信号観測装置602としてその機能が代替されている。信号観測装置602は、具体的には、ロジックアナライザを用いることが考えられる。このロジックアナライザは、図8に示すように、特定のバスパターンを検出すると、AND回路803より検出信号を外部に発信することが可能であり、図6においてこの信号は、トリガ信号としてデバッガ101に入力されている。図6の各構成について、図2と同様の構成のものは省略するが、図2と異なる点は、ユーザI/F機能806を保有している点である。ユーザは監視したいバスアクセスパターンを、この806経由で信号観測装置602に設定する。
ここで、図6の回路A109に対して、ソフトウェア開発者の意図しないwriteアクセスが観測されたとすると、これのアクセス元を特定する場合のフローチャートは図9、図4、図5となる。図4、図5についての説明は実施の形態1と同様であるので省略し、図3と図9の差分について説明する。図9において図3と異なるのは、信号観測装置602が監視すべきアクセスパターンを、ユーザが、図8に示すユーザI/F機能806を用いて設定する点(905)と、ターゲット動作開始・デバッガ動作開始と共に、信号観測装置602も観測開始させる点(909)である。
信号観測装置602が問題のアクセスを検出した場合、信号観測装置602からデバッガ101へトリガ信号が出力され、フローは図4へ移行する。この後の動作は実施の形態1と同様であるので省略する。
(実施の形態3)
図3、図4、図10、図11は、本発明の実施の形態3に関わるフローチャートである。システム構成図は図1の形態となる。ただし、図3ならびに図4の説明は実施の形態1において行ったものと同様であり、ここでは図10、図11についてのみ説明を行う。
ターゲット内の各DMAの設定情報を得るにあたっては、実施の形態1においては、デバッガ内部で情報処理によりこれを生成したのに対して、本実施の形態においては、従来デバッガの機能として、デバッガがターゲットCPUを制御し、ターゲット内各DMAの制御レジスタ値を読み取ることで、ターゲット内の各DMAの設定情報を得るものである。
図10および図11において、デバッガには既にターゲット内の各DMAの仕様情報(制御レジスタのアドレス情報)が入力されている。したがって、個々の制御レジスタのアドレス情報に基づいて、1002や1005、1008に示すように、デバッガがCPUを制御してDMAのレジスタ設定値を獲得する。これをターゲット内の全DMAの制御レジスタに対して行うことで、ターゲット内の全DMAの設定状況を把握することが出来る。その後の動作は実施の形態1と同様であるので省略する。
本発明にかかるデバッガは、ターゲットの各DMA仕様情報と、各DMAの現在の設定状況を管理する機構を有する。これによって、従来のデバッガでは不可能であった、CPU以外のハードウェアによるアクセスについて、アクセス元を直接特定することが可能となる。
本発明にかかるデバッガの対象は、DMAという限られた分野ではあるが、この類のソフトウェア不具合はバスアクセス元が特定できない点から、解析が非常に困難であり、デバッガ性能の向上、ひいてはデバッグ効率の大幅な改善が期待される。
実現にあたっては、現行デバッガの制御ソフトウェアの更新のみで容易に実現可能であり、今後のデバッガへの導入が予想される。
本発明の実施の形態1におけるデバッグシステム全体構成図 本発明の実施の形態1におけるターゲット内部の、バス制御装置およびバス監視機構の詳細図 本発明の実施の形態1のフローチャート(全3枚中の1枚目)を示す図 本発明の実施の形態1のフローチャート(全3枚中の2枚目)を示す図 本発明の実施の形態1のフローチャート(全3枚中の3枚目)を示す図 本発明の実施の形態2におけるデバッグシステム全体構成図 本発明の実施の形態2におけるターゲット内部の、バス制御装置の詳細図 本発明の実施の形態2における信号観測装置の詳細図 本発明の実施の形態2のフローチャートの一部を示す図 本発明の実施の形態3のフローチャートの一部を示す図 本発明の実施の形態3のフローチャートの一部を示す図 従来のデバッガの構成図 ターゲット内のDMA仕様情報設定ファイルの記述例を示す図
符号の説明
101 デバッガ
102 デバッガ内蔵メモリ
103 デバッガ制御CPU
104 デバッガのユーザI/F
105 ターゲット
106 ターゲットCPU
107 バス制御装置およびバス監視機構
108 メモリ
109 回路A
110 回路B
201 比較器
202 比較器
203 AND回路
204 メモリ
205 メモリ
206 バスアクセス分配装置
601 バス制御装置
602 信号観測装置
801 比較器
802 比較器
803 AND回路
804 メモリ
805 メモリ
806 ユーザI/F機能
1201 CPU
1202 DMAコントローラ
1203 メモリ
1204 アドレス/データバス
1205 DMA転送状態信号
1206 アドレス一致信号
1207 MPUへのアドレス一致割り込み信号
1208 アドレス一致検出部
1208a 設定アドレスレジスタ
1209 AND回路
1211 被デバッグ対象ターゲットシステム
1212 MPU
1212a デバッグモード移行レジスタ
1214 ホールドアクノリジ信号

Claims (13)

  1. ユーザI/F、CPUトレース機能ならびに、
    外部からの信号入力機構を持つデバッグ装置において、
    デバッグ対象となる半導体システムの保有する各DMAの仕様情報と、
    前記各DMAの現在の設定状況を、デバッグ装置内で管理することで、
    デバッグ対象が発行したバスアクセス元がDMAであった場合に、
    そのDMAを特定することが可能なデバッグ装置。
  2. デバッグ対象の保有する各DMA仕様情報については、
    デバッグ対象の保有する各DMAの仕様情報を、
    デバッグ装置のユーザI/Fからデバッグ装置へ入力することを特徴とした、
    請求項1に記載のデバッグ装置。
  3. デバッグ対象の各DMA仕様情報については、
    デバッグ対象内に、デバッグ対象自身が保有する各DMAの仕様情報が存在し、
    デバッグ装置が、デバッグ対象からこの情報を獲得することを特徴とした、
    請求項1に記載のデバッグ装置。
  4. デバッグ対象が保有する各DMAの設定状況は、
    デバッグ装置が持つデバッグ対象のDMA仕様情報と、
    デバッグ装置の持つCPUトレース機能から生成することを特徴とした、
    請求項1に記載のデバッグ装置。
  5. デバッグ対象が保有するDMAの現在の設定状況は、
    デバッグ対象のDMA仕様情報と、
    デバッグ装置の持つCPU制御機能から生成することを特徴とした、
    請求項1に記載のデバッグ装置。
  6. デバッグ装置への信号入力については、
    デバッグ対象が発行する信号を 用いることを特徴とした、
    請求項1に記載のデバッグ装置。
  7. デバッグ対象が発行する信号については、
    デバッグ対象自身のバスアクセス監視機構により発行される信号とする、
    請求項6に記載のデバッグ装置。
  8. デバッグ装置への信号入力については、
    信号観測装置が出力する信号を用いることを特徴とした、
    請求項1に記載のデバッグ装置。
  9. バスアクセス元を特定するにあたっては、
    デバッグ装置、デバッグ対象が保有する各DMAの設定状況と、
    トリガアクセスのアクセスパラメータを照合することで、
    注目するDMAがバスアクセス元か否かを判定することを特徴とした、
    請求項1から請求項8のいずれか1項に記載のデバッグ装置。
  10. バスアクセス元を特定するにあたっては、
    デバッグ対象の保有する各DMAの設定状況とトリガアドレスの照合の結果、
    トリガアドレスがあるDMAの転送先空間に含まれていれば、
    前記DMAがバスアクセス元であると判定する、
    請求項9に記載のデバッグ装置。
  11. バスアクセス元を特定するにあたっては、
    デバッグ対象の保有する各DMAの設定状況とトリガデータの照合の結果、
    トリガデータがあるDMAの転送元空間に存在すれば、
    前記DMAがバスアクセス元であると判定する請求項9に記載のデバッグ装置。
  12. バスアクセス元を特定するにあたっては、
    デバッグ対象の保有する各DMAの設定状況とトリガアドレスの照合の結果、
    トリガアドレスがあるDMAの転送先空間に含まれていることと、
    各DMAの設定状況とトリガデータの照合の結果、
    トリガデータが前記DMAの転送元空間に存在することの両条件が揃えば、
    前記DMAがバスアクセス元であると判定する請求項9に記載のデバッグ装置。
  13. バスアクセス元を特定するにあたっては、
    各DMAの設定状況とトリガアドレスの照合の結果、
    トリガアドレスがあるDMAの転送元空間に含まれていれば、
    前記DMAがバスアクセス元であると判定する請求項9に記載のデバッグ装置。
JP2005114134A 2005-04-12 2005-04-12 Lsiシステム向けデバッグ装置 Pending JP2006293725A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005114134A JP2006293725A (ja) 2005-04-12 2005-04-12 Lsiシステム向けデバッグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005114134A JP2006293725A (ja) 2005-04-12 2005-04-12 Lsiシステム向けデバッグ装置

Publications (1)

Publication Number Publication Date
JP2006293725A true JP2006293725A (ja) 2006-10-26

Family

ID=37414237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005114134A Pending JP2006293725A (ja) 2005-04-12 2005-04-12 Lsiシステム向けデバッグ装置

Country Status (1)

Country Link
JP (1) JP2006293725A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210127797A (ko) 2016-09-23 2021-10-22 이노비오 파마수티컬즈, 인크. 전기천공을 사용하여 지방 조직의 생체내 형질감염을 최소로 침습성으로 하기 위한 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210127797A (ko) 2016-09-23 2021-10-22 이노비오 파마수티컬즈, 인크. 전기천공을 사용하여 지방 조직의 생체내 형질감염을 최소로 침습성으로 하기 위한 방법 및 장치

Similar Documents

Publication Publication Date Title
US7069477B2 (en) Methods and arrangements to enhance a bus
US7873874B2 (en) System and method for controlling synchronous functional microprocessor redundancy during test and analysis
CN111078492A (zh) 一种SoC内部总线的状态监控系统及方法
US7519865B1 (en) Systems and methods for identifying incomplete transactions
JP2007257441A (ja) プロセッサおよびプロセッサ制御方法
US10042692B1 (en) Circuit arrangement with transaction timeout detection
KR20180110482A (ko) 메모리 테스트 시스템 및 방법
JP2006309276A (ja) デバッグ機構およびデバッグレジスタ
US20050060690A1 (en) Microprocessor system with software emulation processed by auxiliary hardware
JP2006344087A (ja) 制御装置のタスク管理装置、及び、制御装置のタスク管理方法
US20200183809A1 (en) Usage amount monitoring method and monitoring unit of electronic control unit for vehicle
JP2006293725A (ja) Lsiシステム向けデバッグ装置
KR20080022889A (ko) 임베디드 시스템에서 디버깅 파일 생성 방법 및 장치
US8468394B2 (en) Method of tracing selected activities within a data processing system by tagging selected items and tracing the tagged items
US7299386B2 (en) Apparatus and method for detecting address characteristics for use with a trigger generation unit in a target processor
JP2008134838A (ja) バスデバイス
JP2008262557A (ja) 制御装置のタスク管理装置、及び、制御装置のタスク管理方法
JP4859650B2 (ja) 解析方法及び解析装置
JP6052847B2 (ja) トランザクション処理装置及び不正トランザクション検出方法
JP4892406B2 (ja) 情報処理装置のトランザクション管理方法及び情報処理装置
JP2014232478A (ja) 動作監視装置および動作監視方法
US20080195896A1 (en) Apparratus and method for universal programmable error detection and real time error detection
US20180341312A1 (en) Control apparatus, method for controlling the same, storage medium, and computer system
JP5499682B2 (ja) 半導体集積回路、デバッグシステム、デバッグ方法、デバッグプログラム及び記録媒体
JPS6339050A (ja) アドレスバス試験回路