JP5239862B2 - デバッガ及びデバッグ方法 - Google Patents

デバッガ及びデバッグ方法 Download PDF

Info

Publication number
JP5239862B2
JP5239862B2 JP2008529830A JP2008529830A JP5239862B2 JP 5239862 B2 JP5239862 B2 JP 5239862B2 JP 2008529830 A JP2008529830 A JP 2008529830A JP 2008529830 A JP2008529830 A JP 2008529830A JP 5239862 B2 JP5239862 B2 JP 5239862B2
Authority
JP
Japan
Prior art keywords
signal
break
microprocessor core
trigger
additional hardware
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.)
Active
Application number
JP2008529830A
Other languages
English (en)
Other versions
JPWO2008020513A1 (ja
Inventor
恒平 撫原
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008529830A priority Critical patent/JP5239862B2/ja
Publication of JPWO2008020513A1 publication Critical patent/JPWO2008020513A1/ja
Application granted granted Critical
Publication of JP5239862B2 publication Critical patent/JP5239862B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明はマイクロプロセッサ・コアとコプロセッサやハードウェア・アクセラレータ等の所定の機能を実現する付加ハードウェアとが混載されたSoC(System on Chip:システム・オン・チップ)デバイスをデバッグするためのデバッガ及びデバッグ方法に関する。
近年、半導体プロセス技術が進歩した結果、半導体チップ上に多数のトランジスタを集積できるようになり、システム全体を1チップ内に納める、いわゆるSoCと呼ばれるLSIデバイスが実現できるようになった。
SoCデバイスには、高い性能を実現すると共に、新しい仕様や要求に対応する柔軟性も求められる。そこで、SoCデバイスでは、汎用マイクロプロセッサ・コア(以下、単にプロセッサ・コアと称す)をベースに備え、コプロセッサやハードウェア・アクセラレータ(以下、単にアクセラレータと称す)の追加及びマルチコア化等によって高性能化を図ると共に、プロセッサ・コアに格納されたソフトウェア(ユーザ・プログラム)によりコプロセッサやアクセラレータを制御することで柔軟性を実現するアーキテクチャが一般的に採用されている。
例えば、非特許文献1(Ricardo E. Gonzalez, "Xtensa: A Configurable and Extensible Processor," IEEE MICRO Magazine, Volume 20, Issue 2, March-April 2000, pp. 60〜70.)、非特許文献2(Steve Leibson/James Kim, "Configurable Processors: A New Era in Chip Design," IEEE Computer Magazine, Volume 38, Issue 7, July 2005, pp. 51〜59.)及び特許文献1(特開2004−288203号公報)には、コプロセッサやアクセラレータを付加することでSoCデバイスとしての機能拡張を認めるプロセッサ・コアが例示されている。
このようなSoCデバイスをデバッグする場合、プロセッサ・コアを動作させるためのソフトウェア(ユーザ・プログラム)と、所定の機能を実現するコプロセッサやアクセラレータ等の付加ハードウェアとを同時にデバッグしなければならない。ソフトウェア(ユーザ・プログラム)のデバッグに用いるツールとしてはICE(In-Circuit Emulator)が知られている。また、ハードウェアのデバッグに用いるツールとしてはロジック・アナライザが知られている。
ICEは、SoCデバイスに搭載されたプロセッサ・コアをプログラミング・モデル・レベルで抽象化したデバッグ環境を提供する。具体的には、非特許文献3(山本繁寿/有末一寿、「組み込み機器とデバッグ環境」、インターフェース、2002年3月号、49〜53頁、CQ出版社)に記載されているように、プロセッサ・コアが備える内部レジスタの読み書き、システム・メモリの読み書き、実行制御(指定アドレスからの実行開始やブレーク・ポイントによる停止)等の機能を提供する。なお、ICEではハードウェアレベルの情報はユーザから隠蔽されている。
典型的なICEの構成について図1を用いて説明する。
図1はユーザ・プログラムのデバッガとして用いられる従来のICEの構成を示すブロック図である。
図1に示すように、ICE部6はプロセッサ・コア2の実行制御を実現するためにブレーク検出回路7を備えている。ブレーク検出回路7は、プロセッサ・コア2のプログラム・カウンタの値や実行している命令語等、プロセッサ・コア2の状態(以下、単にプロセッサ状態と称す)を監視する。そして、プロセッサ状態が予め設定したブレーク条件と一致したとき、すなわち、プログラム・カウンタの値が予め設定した値に到達した場合や周知のトラップ命令が実行された場合にブレーク信号を出力することで(以下、ブレーク信号を発生することを「ソフトウェア的イベント」と呼ぶ)、プロセッサ・コア2をユーザ・プログラムの実行状態から該ユーザ・プログラムのデバッグが可能な状態(デバッグ状態)に遷移させる。なお、トラップ命令は、ソフトウェア割り込み命令、デバッグ命令、ブレーク命令等と呼ばれることもある。
ICE UI(User Interface)8は、ユーザからの指示にしたがってブレーク検出回路7にブレーク信号を出力させるためのブレーク条件を設定する。また、ICE UI8は、ユーザからの指示にしたがってデバッグ状態にあるプロセッサ・コア2の内部レジスタの読み書きを実行する。このとき、ICE部6は、デバッグ状態に遷移したプロセッサ・コア2の内部レジスタあるいはシステム・メモリの読み書きを行うためのソフトウェアにしたがって処理を実行することで、ユーザによるユーザ・プログラムのデバッグを支援する。
例えば、非特許文献4("ARM1156T2F-S Technical Reference Manual, Revision: r0p0," ARM Limited, 2005, インターネット<URL: http://www.arm.com/pdfs/DDI0290C_arm1156t2fs_r0p0_trm.pdf>)の13−40頁には、組込み用のプロセッサ・コアとして知られる英国ARM社のプロセッサにおいて、「デバッグ例外(Debug exception)」と呼ばれる割り込み信号が発生すると、「モニタ・ターゲット(Monitor target)」と呼ばれるソフトウェアによる制御へ移行することでICE部としての機能を実現することが記載されている。
ロジック・アナライザは、例えば非特許文献5(荒井信隆、「ロジック・アナライザの動作原理」,トランジスタ技術、2003年7月号、128〜134頁、CQ出版社)に記載されているように、ユーザによって指定された所定の信号(観測信号)の時間変化(波形)を監視・記録する装置である。典型的なロジック・アナライザの構成について図2を用いて説明する。
図2は従来のハードウェアのデバッガとして用いられるロジック・アナライザの構成を示すブロック図である。
図2に示すように、ロジック・アナライザ部20は、トリガ検出回路12、トレース・メモリ13及びロジック・アナライザUI14を有する構成である。
トリガ検出回路12は、ユーザによって設定されたトリガ条件と所定の入力信号とを比較し、それらが一致した場合にトリガ信号を生成する(以下、このトリガ信号の発生を「ハードウェア的イベント」と呼ぶ)。
トレース・メモリ13には、付加ハードウェア3から出力される観測信号のうち、トリガ信号の発生前後の観測信号が、ほぼそのまま格納される。但し、トレース・メモリ13へ格納する観測信号に対しては、予め設定されたしきい値電圧との比較結果に応じて波形整形を実施したり、所定のサンプリング・クロックに同期化させる等の最低限の処理を実施することもある。
ロジック・アナライザUI(User Interface)14は、ユーザからの指示にしたがってトリガ検出回路12にトリガ信号を生成させるためのトリガ条件を設定する。また、ロジック・アナライザUI14はトレース・メモリ13に格納された信号を表示する。
SoCデバイス1に搭載されたプロセッサ・コア2上で動作するソフトウェア(ユーザ・プログラム)と付加ハードウェア3とを既存のICE及びロジック・アナライザを用いてデバッグする様子を図3に示す。図3ではSoCデバイス1に搭載されたプロセッサ・コア2からICE部6によりプロセッサ状態が読み出され、コプロセッサ4やアクセラレータ5等の付加ハードウェア3からロジック・アナライザ部20により観測対象の信号(観測信号)がモニタされる様子を示している。
このようなICE部6とロジック・アナライザ部20とを用いた同時デバッグでは、ICE部6及びロジック・アナライザ部20が独立した装置であるため、それらの連携が不充分であり、ICE部6とロジック・アナライザ部20の動作を統合した効率のよいデバッグが困難であるという問題がある。
ICE部6とロジック・アナライザ部20とを連携して用いる例として、例えば非特許文献6(「ロジック・アナライザとICEの連携によるデバッグ」、インターフェース、2000年10月号、108頁、CQ出版社)に記載された技術が知られている。非特許文献6には、ICEから出力された、コプロセッサをブレークさせるための信号をロジック・アナライザのトリガ信号として使用し、ICEで保存している実行履歴(非特許文献6中では「WATCHPOINTのヒストリウィンドウ」)に対応する時刻を観測信号の信号波形と共にロジック・アナライザで表示する例が記載されている。
上述したように従来のデバッガでは、ユーザ・プログラムのデバッグに用いるICEとハードウェアのデバッグに用いるロジック・アナライザとが独立した装置であり、それらの装置の連携が不充分であるため、それらの動作を統合した効率のよいデバッグが困難であるという問題がある。
また、上記非特許文献6では、ソフトウェア的イベントをロジック・アナライザのトリガ信号として用いる例が記載されているが、ハードウェア的イベントをICE部のブレーク信号として用いるための方法については何ら示していない。そのため、付加ハードウェアの内部信号や外部信号が特定の状態になったときにプロセッサ・コアをデバッグ状態に遷移させてシステム全体の動作を停止させたい場合でも、そのような処理が実行できないという問題がある。
このように、現状のICEとロジック・アナライザとは連携が不十分であるため、ハードウェアとソフトウェア(ユーザ・プログラム)とが協調して動作するSoCデバイスのデバッグが困難であるという問題があった。
そこで、本発明は、マイクロプロセッサ・コアと所定の機能を実現する付加ハードウェアとが混載されたSoCデバイスを効率よくデバッグできるデバッガ及びデバッグ方法を提供することを目的とする。
上記目的を達成するため本発明では、マイクロプロセッサ・コアの状態が予め設定されたブレーク条件と一致するとき、ソフトウェア的イベントの発生を示すブレーク要求信号を生成し、付加ハードウェアの所定の信号が予め設定されたトリガ条件と一致するとき、ハードウェア的イベントの発生を示すトリガ要求信号を生成する。そして、ブレーク要求信号が発生したとき、システム・オン・チップ・デバイスに対して所定の信号をロジック・アナライザにより観測するためのトリガ信号を出力し、マイクロプロセッサ・コア及び付加ハードウェアに対する、マイクロプロセッサ・コア及び付加ハードウェアを通常動作させるためのクロックの供給を停止する。
また、マイクロプロセッサ・コア及び付加ハードウェアに対するクロックの供給を停止しているとき、マイクロプロセッサ・コアに対するデバッグ状態への遷移指示を受け取ると、トリガ信号の出力を停止し、システム・オン・チップ・デバイスに対して、マイクロプロセッサ・コアをデバッグ状態に遷移させるためのブレーク信号を出力すると共に、マイクロプロセッサ・コア及び付加ハードウェアに対するクロックの供給を再開する。
図1はユーザ・プログラムのデバッガとして用いられる従来のICEの構成を示すブロック図である。 図2は従来のハードウェアのデバッガとして用いられるロジック・アナライザの構成を示すブロック図である。 図3は図1に示したICE部と図2に示したロジック・アナライザ部とを用いてSoCデバイスをデバッグしている様子を示すブロック図である。 図4は本発明のデバッガの一構成例を示すブロック図である。 図5Aは、本発明のデバッグ方法の第1の実施の形態の処理を示すフロー・チャートである。 図5Bは、本発明のデバッグ方法の第1の実施の形態の処理を示すタイミング・チャートである。 図6Aは本発明のデバッグ方法の第2の実施の形態の処理を示すフロー・チャートである。 図6Bは本発明のデバッグ方法の第2の実施の形態の処理を示すタイミング・チャートである。 図7Aは本発明のデバッグ方法の第3の実施の形態の処理を示すフロー・チャートである。 図7Bは本発明のデバッグ方法の第3の実施の形態の処理を示すタイミング・チャートである。 図8は図4に示したSoCデバイスの動作状態を示す状態遷移図である。
次に本発明について図面を参照して説明する。
(第1の実施の形態)
図4は本発明のデバッガの一構成例を示すブロック図である。
本発明のデバッガ121は、プロセッサ・コア102と付加ハードウェア103とが混載されたSoCデバイス101をデバッグするための装置である。付加ハードウェア103は、コプロセッサ104やアクセラレータ105等のようにプロセッサ・コア102と協調して動作するハードウェア回路の総称である。付加ハードウェア103は、プロセッサ・コア102と協調して動作すればよく、プロセッサ・コア102と同一の半導体チップに搭載されている必要はない。また、プロセッサ・コア102が同一のプリント基板に搭載された他の装置または同一のシステム内の他の装置と協調して動作するとき、それらの装置もデバッガ121によるデバッグ対象に含むことができる。
図4に示すように、本発明のデバッガ121は、ICE部106、ロジック・アナライザ部120及び実行制御回路118を備えている。
SoCデバイス101が備えるプロセッサ・コア102には、デバッガ121が備えるICE部106が接続され、付加ハードウェア103にはロジック・アナライザ部120が接続される。
ICE部106は、ブレーク検出回路107及びICE UI(ICEユーザ・インターフェース)108を備えている。また、ロジック・アナライザ部110は、トリガ検出回路112、トレース・メモリ113及びロジック・アナライザUI114を備えている。
ブレーク検出回路107は、プロセッサ・コア102のプロセッサ状態を監視し、プロセッサ状態が予め設定された条件と一致したとき、上記ソフトウェア的イベントが発生したとみなしてプロセッサ・コア102に対するデバッグ状態への遷移を要求するブレーク要求信号を生成する。ブレーク要求信号の生成条件に用いるプロセッサ状態109としては、プログラム・カウンタの値、実行対象の命令語、ロード・ストア対象のアドレス及びデータ値等がある。但し、これら以外にもユーザがプロセッサ・コア102のプログラミング・モデルとして参照する信号や内部処理のために生成する信号(ユーザに対して隠蔽される信号であってもよい)等もブレーク要求信号の生成条件に用いるプロセッサ状態としてもよい。なお、ブレーク検出回路107は任意の数のブレーク条件を監視できるものとする。ブレーク条件が複数あるとき、ブレーク検出回路107で生成するブレーク要求信号は、複数のブレーク条件を統合することで単一の信号線を用いて出力してもよく、各ブレーク条件に対応して設けた信号線を用いて複数のブレーク要求信号を出力してもよい。また、ブレーク検出回路107は、複数のブレーク条件を符号化したブレーク要求信号を出力してもよい。
ICE UI(User Interface)108は、ユーザからの指示にしたがってブレーク検出回路107にブレーク要求信号を出力させるためのブレーク条件を設定する。また、ICE
UI108は、ユーザからの指示にしたがってデバッグ状態にあるプロセッサ・コア2の内部レジスタの読み書きを実行する。
付加ハードウェア103からの観測信号はトリガ検出回路112及びトレース・メモリ113に供給される。
トリガ検出回路112は、付加ハードウェア103と接続された少なくとも1つの観測信号を監視し、観測信号が予め設定された条件と一致したとき、ハードウェア的イベントが発生したとみなして該観測信号の観測を要求するトリガ要求信号を生成する。
トレース・メモリ113には、図2に示した従来のロジック・アナライザ部120と同様に、トリガ要求信号の発生前後の観測信号が、ほぼそのまま格納される。
ロジック・アナライザUI(User Interface)114は、ユーザからの指示にしたがってトリガ検出回路112にトリガ要求信号を出力させるためのトリガ条件を設定する。また、ロジック・アナライザUI114はトレース・メモリ113に格納された信号を表示する。
なお、SoCデバイス101からトリガ検出回路112及びトレース・メモリ113には、全ての観測信号が送信される必要はなく、トリガ検出回路112だけに送信される観測信号があってもよく、トレース・メモリ113だけに送信される観測信号があってもよい。
実行制御回路118は、ソフトウェア的イベントの発生を示すブレーク要求信号及びハードウェア的イベントの発生を示すトリガ要求信号からプロセッサ・コア102をデバッグ状態に遷移させるためのブレーク信号及び観測信号をロジック・アナライザ部120により観測するためのトリガ信号を生成する。実行制御回路118は、ブレーク要求信号とトリガ要求信号の論理和結果をブレーク信号及びトリガ信号として出力する場合に最も単純な構成となる。なお、ブレーク検出回路107、トリガ検出回路112、及び実行制御回路118には、ブレーク要求信号やトリガ要求信号をブレーク条件やトリガ条件に応じてマスクする機能を備えていてもよい。
次に本実施形態のデバッグ方法について図5A、Bを用いて説明する。
図5Aは、本発明のデバッグ方法の第1の実施の形態の処理を示すフロー・チャートであり、図5Bは、本発明のデバッグ方法の第1の実施の形態の処理を示すタイミング・チャートである。なお、図5Aに示すフロー・チャートは、第1の実施の形態の実行制御回路118の処理手順を示し、図5Bは実行制御回路118の入出力信号のタイミング・チャートの例を示している。
図5Aに示すように、実行制御回路118は、トリガ検出回路112によるトリガ要求信号の発生有無を監視し(ステップ200)、トリガ要求信号が発生すると、トリガ信号及びブレーク信号を生成する(ステップ201)。
図5Bに示すように、時刻t0においてトリガ検出回路112にてトリガ要求信号が発生すると、実行制御回路118は、トレース・メモリ113にトリガ信号を送信すると同時にプロセッサ・コア102にブレーク信号を送信する。
なお、図5A、Bでは、トリガ要求信号が発生した場合に、実行制御回路118でプロセッサ・コア102の動作を停止するためのブレーク信号及び観測信号を保存するためのトリガ信号を生成する例を示しているが、実行制御回路118は、ブレーク要求信号が発生した場合も、同様にブレーク信号及びトリガ信号をそれぞれ生成する。
第1の実施の形態のデバッグ方法では、トリガ検出回路112により付加ハードウェア103の内部信号や外部信号(観測信号)を監視し、それらの観測信号が予め設定された条件と一致したときも、実行制御回路118によりブレーク信号を生成してプロセッサ・コア102に出力する。
このとき、SoCデバイス102のプロセッサ・コア102は、ブレーク信号によってユーザ・プログラムによる動作を停止してデバッグ状態に遷移するため、ユーザは、ICE部106を用いてプロセッサ・コア102に備えるプログラム・カウンタ、汎用レジスタあるいはメモリの内容を読み書きすることができる。
したがって、本実施形態によれば、ICE部106でソフトウェア的イベントが発生した場合、及びロジック・アナライザ部120でハードウェア的イベントが発生した場合のどちらでもICE部106をデバッグ状態に遷移させることが可能であり、かつロジック・アナライザ部120により観測信号を観測できる。すなわち、ハードウェア的イベントの発生時もプロセッサ・コア102をブレークすることが可能であり、ICE部106とロジック・アナライザ部120の動作を統合したデバッグが実現できる。したがって、プロセッサ・コア102と付加ハードウェア103とが混載されたSoCデバイスを効率よくデバッグできるようになる。
なお、第1の実施の形態のデバッガでは、図5Bに示したようにブレーク要求信号やトリガ要求信号の有無にかかわらず、実行制御回路118はSoCデバイス101に対して常にクロックを供給している。
(第2の実施の形態)
SoCデバイス101は、設計の容易性から原則としてクロックに同期して動作する同期回路で構成され、プロセッサ・コア102や所定の機能を実現する付加ハードウェア103等の回路ブロック毎に、またはSoCデバイス101の回路全体が共通のクロックに同期して動作する。
付加ハードウェア103をデバッグする場合、ロジック・アナライザ部120によりSoCデバイス101から出力される観測信号をクロック単位で記録して調査すると共に、イベント発生時にはSoCデバイス101の実行制御をクロック単位で(ICE部106で実施するブレーク信号による命令単位の実行制御よりも細かく)実施したい場合がある。このようなクロック単位の実行制御は、第1の実施の形態で示した実行制御回路118に、イベント発生時にクロックの供給を停止する機能を付加することで実現できる。
第2の実施の形態のデバッガは、実行制御回路118の構成及び動作が第1の実施の形態のデバッガと異なっている。その他の構成及び動作は第1の実施の形態と同様であるため、その説明は省略する。
図6Aは本発明のデバッグ方法の第2の実施の形態の処理を示すフロー・チャートであり、図6Bは本発明のデバッグ方法の第2の実施の形態の処理を示すタイミング・チャートである。なお、図6Aに示すフロー・チャートは、第2の実施の形態の実行制御回路118の処理手順を示し、図6Bは実行制御回路118の入出力信号のタイミング・チャートの例を示している。
図6Aに示すように、第2の実施の形態の実行制御回路118は、ブレーク検出回路107によるブレーク要求信号の発生有無を監視し(ステップ202)、ブレーク要求信号の発生時、トリガ信号を生成してロジック・アナライザ部120による観測信号のモニタを可能にすると共に、SoCデバイス101に対するクロックの供給を停止する。
図6Bに示すように、第2の実施の形態の実行制御回路118は、時刻t0にてブレーク検出回路107からブレーク要求信号を受け取ると、トリガ信号を出力してロジック・アナライザ部120による観測信号のモニタを可能にすると共に、SoCデバイス101に対するクロックの供給を停止する。実行制御回路118は、SoCデバイス101に対するクロックの供給を、例えばユーザからの指示にしたがって再開する。
本実施形態によれば、第1の実施の形態と同様の効果に加えて、SoCデバイス101の実行制御をクロック単位で制御できるようになるため、SoCデバイス101が備える付加ハードウェア103をより効率的にデバッグできる。
(第3の実施の形態)
第2の実施の形態のデバッガでは、SoCデバイス101に対するクロックの供給停止時、ロジック・アナライザ部120の機能は使用できるがICE部106の機能は使用できない。すなわち、SoCデバイス101から観測信号として引き出した信号はモニタできても、観測信号に含めていない信号、例えばプログラム・カウンタの値や汎用レジスタに格納された情報等のようにICE部で一般的に観測できる信号であっても観測信号に含めていなければモニタすることはできない。一般に、ICE部106の機能は、所定の割り込み信号で起動するプロセッサ・コア102に搭載されたソフトウェアによる動作によって実現される。そのため、クロックの供給停止によってプロセッサ・コア102の動作が停止すると、ICE部106の機能が利用できなくなる。
なお、SoCデバイス101へのクロックを停止していても、例えば特開2005−181061号公報に記載されているように、共通クロックと異なる書き換え用のクロックを用いて書き換え対象のレジスタの各ビットにデータを格納する回路を付加すれば、プロセッサ・コア102の内部レジスタの内容を書き換えることが可能である。しかしながら、このような回路を付加することは、SoCデバイス101の回路設計作業の増大や回路の付加に伴う動作速度の低下を招くため、安易に採用することはできない。
さらに、プロセッサ・コア102や付加ハードウェア103では、通常、多段パイプライン動作を行っているため、ある信号に依存する派生信号がパイプライン・ステージ毎に存在する。したがって、SoCデバイス101の任意の内部レジスタを書き換える場合、その内部レジスタの値から派生する信号も全て書き換える必要がある。しかしながら、ユーザの手作業により内部レジスタの値とその派生信号の全てを整合させながら書き換えることは困難である。
第3の実施の形態では、クロックの停止状態において、ユーザからの指示にしたがってブレーク信号要求が発生すると、実行制御回路118によりSoCデバイス101に対するクロックの供給を再開する。
すなわち、第3の実施の形態のデバッガは、実行制御回路118の構成及び動作が第2の実施の形態のデバッガと異なっている。その他の構成及び動作は第1及び第2の実施の形態と同様であるため、その説明は省略する。
第3の実施の形態の実行制御回路118の動作について図7A、Bを用いて説明する。
図7Aは本発明のデバッグ方法の第3の実施の形態の処理を示すフロー・チャートであり、図7Bは本発明のデバッグ方法の第3の実施の形態の処理を示すタイミング・チャートである。なお、図7Aに示すフロー・チャートは、第3の実施の形態の実行制御回路118の処理手順を示し、図7Bは実行制御回路118の入出力信号のタイミング・チャートの例を示している。
図7Aに示すように、第3の実施の形態の実行制御回路118は、第2の実施の形態と同様に、ブレーク検出回路107からのブレーク要求信号の発生有無を監視し(ステップ202)、ブレーク要求信号が発生すると、トリガ信号を生成してロジック・アナライザ部120における観測信号のモニタを可能にすると共に、SoCデバイスに対するクロック119の供給を停止する(ステップ203)。
この状態では、第2の実施の形態と同様に付加ハードウェア103から引き出されていない観測信号のモニタは不能であり、上記特開2005−181061号公報に記載されたような回路を付加しないかぎりプロセッサ・コア102の内部レジスタの書き換えは不能である。
第3の実施の形態の実行制御回路118は、クロックの供給停止状態において、ユーザからICE UI108を介してデバッグ状態への遷移指示があると(ステップ204)、トリガ信号の生成を停止し、ブレーク信号を出力すると共に(ステップ205)、SoCデバイス101に対するクロックの供給を再開する(ステップ206)。
図7Bに示しように、第3の実施の形態の実行制御回路は、時刻t0にてブレーク検出回路107からブレーク要求信号を受け取ると、トリガ信号を生成し、SoCデバイス101に対するクロックの供給を停止する。
クロック停止後、時刻t1にてユーザからICE UI108を介してデバッグ状態への遷移指示があった場合、実行制御回路118によりトリガ信号を解除し、ブレーク信号を出力した後、SoCデバイス101に対するクロックの供給を再開する。
クロックが供給されることで動作が再開すると、プロセッサ・コア102は、ブレーク信号が既に出力されているため、デバッグ状態に遷移する。この状態では、ICE部106の機能を使うことができるため、ユーザは、ICE部106の機能を利用して、プログラム・カウンタの値や内部レジスタの確認、あるいは内部レジスタの書き換え等が可能になる。
本実施形態によれば、第2の実施の形態で示した効果に加えて、SoCデバイス101に回路を追加することなく、ハードウェア的イベントの発生時であってもプログラム・カウンタや汎用レジスタの読み書き等のICE部106のデバッグ機能を利用できる。
以上、本発明のデバッガについて説明したが、図4に示したSoCデバイス101を本発明のデバッガ121を用いてデバッグする場合、SoCデバイス101は図8に示す3つの状態間を遷移する。
図8は図4に示したSoCデバイスの動作状態を示す状態遷移図である。
第1状態は、通常の処理の実行状態を示す「ユーザ・アプリケーション実行状態」である。
第2状態は、ブレーク信号が発生してユーザ・プログラムによる動作を停止し、ICE部106の機能を実現するためのソフトウェアにしたがって処理を実行している「命令レベル停止状態」(デバッグ状態)である。このとき、ICE部106の機能を用いてプログラム・カウンタの値の確認、あるいはプロセッサ・コア102内部レジスタやシステム・メモリの読み書きが可能である。
第3状態は、トリガ信号が発生したことによる「クロック停止状態」である。
上述した第1の実施の形態のデバッガは、従来のソフトウェア的イベントからブレーク信号を生成していた構成(図1)に、ハードウェア的イベントからもブレーク信号を生成できるようにした構成である。第1の実施の形態のデバッガを用いると、ハードウェア的イベントの発生に対応してSoCデバイス101が命令レベル停止状態(デバッグ状態)に遷移するため、プロセッサ・コア102に格納されたユーザ・プログラムのデバッグが可能になる。
また、第2の実施の形態のデバッガは、ハードウェア的イベントをロジック・アナライザ部120による観測信号のモニタタイミングとして用いるだけではなく、SoCデバイスに対するクロックの供給を停止することで、SoCデバイス101全体を停止状態に移行させる構成である。
また、第3の実施の形態のデバッガは、クロック停止状態から命令レベル停止状態への遷移を可能にして、クロック停止状態では困難なICE部106によるデバッグ機能を実現する構成である。
以上、第1の実施の形態から第3の実施の形態で説明したように、本発明によれば、ハードウェア的イベントかソフトウェア的イベントかに係わらず、ロジック・アナライザ部120による付加ハードウェア103の観測信号のモニタとICE部106によるプロセッサ・コア102のプロセッサ状態の確認や内部レジスタの読み書きが可能になるため、ICE部106とロジック・アナライザ部120の動作を統合したデバッグ環境を提供することが可能であり、SoCデバイス101の開発環境を大幅に改善できる。
なお、上記説明では、デバッガ121に、ブレーク検出回路107、トレース・メモリ113及びトリガ検出回路112を備える構成を示しているが、これらの回路はデバッガ121に備えている必要はなく、SoCデバイス101に備えていてもよい。
例えば、近年のSoCデバイス101は、その高速化に伴って信号周波数が高くなり、付加ハードウェア103の近くで信号を観測しなければならない場合がある。そのような場合、SoCデバイス101にトリガ検出回路112やトレース・メモリ113を備えていれば、トレース・メモリ113に対する観測信号の格納ミスやトリガ検出回路112からのトリガ信号の誤出力が防止される。
また、SoCデバイス101の機能をFPGA(Field Programmable Gate Array)等を用いてエミュレーションする場合は、該FPGAに、上記ブレーク検出回路107、トレース・メモリ113及びトリガ検出回路112だけでなく、実行制御回路118やICE UI108及びロジック・アナライザUI114の一部機能を持たせることが可能である。
また、上記説明では、実行制御回路118からSoCデバイス101にクロックを供給する例を示しているが、SoCデバイス101に対するクロックの供給/停止が制御できれば、実行制御回路118からSoCデバイス101にクロックを供給する必要はない。例えば、実行制御回路118でクロックのイネーブル信号を生成し、該イネーブル信号により、例えばSoCデバイス101の内部でクロックの生成やクロックの供給/停止を制御する構成も考えられる。
また、図5B、図6B及び図7Bに示したタイミング・チャートでは、ブレーク要求信号やトリガ要求信号がLowレベルからHighレベルに変わったときにトリガ信号やブレーク信号の生成、あるいはクロックの供給停止や再開等の事象が発生する例を示したが、これらの事象はHighレベルからLowレベルに変わったときに発生してもよい。これらトリガ信号やブレーク信号の生成、あるいはクロックの供給停止や再開等のタイミングは、ブレーク要求信号やトリガ要求信号の立ち上がりまたは立ち下がりで示すかは本質的ではなく、どのように設定してもよい。
この出願は、2006年8月14日に出願された特願2006−220958号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (2)

  1. マイクロプロセッサ・コアと所定の機能を実現する付加ハードウェアとが混載されたシステム・オン・チップ・デバイスをデバッグするためのデバッガであって、
    前記マイクロプロセッサ・コアの状態が予め設定されたブレーク条件と一致するとき、ソフトウェア的イベントの発生を示すブレーク要求信号を生成するブレーク検出回路と、
    前記付加ハードウェアの所定の信号が予め設定されたトリガ条件と一致するとき、ハードウェア的イベントの発生を示すトリガ要求信号を生成するトリガ検出回路と、
    前記ブレーク要求信号が発生したとき、前記所定の信号をロジック・アナライザにより観測するためのトリガ信号を出力すると共に、前記マイクロプロセッサ・コア及び前記付加ハードウェアに対する、前記マイクロプロセッサ・コア及び前記付加ハードウェアを通常動作させるためのクロックの供給を停止する実行制御回路と、
    を有し、
    前記実行制御回路は、
    前記マイクロプロセッサ・コア及び前記付加ハードウェアに対する前記クロックの供給を停止しているとき、
    外部から前記マイクロプロセッサ・コアに対するデバッグ状態への遷移指示を受け取ると、前記トリガ信号の出力を停止し、前記マイクロプロセッサ・コアを前記デバッグ状態に遷移させるためのブレーク信号を出力すると共に、前記マイクロプロセッサ・コア及び前記付加ハードウェアに対する前記クロックの供給を再開するデバッガ。
  2. マイクロプロセッサ・コアと所定の機能を実現する付加ハードウェアとが混載されたシステム・オン・チップ・デバイスをデバッグするためのデバッグ方法であって、
    前記マイクロプロセッサ・コアの状態が予め設定されたブレーク条件と一致するとき、ソフトウェア的イベントの発生を示すブレーク要求信号を生成し、
    前記付加ハードウェアの所定の信号が予め設定されたトリガ条件と一致するとき、ハードウェア的イベントの発生を示すトリガ要求信号を生成し、
    前記ブレーク要求信号が発生したとき、前記システム・オン・チップ・デバイスに対して前記所定の信号をロジック・アナライザにより観測するためのトリガ信号を出力し、前記マイクロプロセッサ・コア及び前記付加ハードウェアに対する、前記マイクロプロセッサ・コア及び前記付加ハードウェアを通常動作させるためのクロックの供給を停止し、
    前記マイクロプロセッサ・コア及び前記付加ハードウェアに対する前記クロックの供給を停止しているとき、
    前記マイクロプロセッサ・コアに対するデバッグ状態への遷移指示を受け取ると、前記トリガ信号の出力を停止し、前記システム・オン・チップ・デバイスに対して、前記マイクロプロセッサ・コアを前記デバッグ状態に遷移させるためのブレーク信号を出力すると共に、前記マイクロプロセッサ・コア及び前記付加ハードウェアに対する前記クロックの供給を再開するデバッグ方法。
JP2008529830A 2006-08-14 2007-07-04 デバッガ及びデバッグ方法 Active JP5239862B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008529830A JP5239862B2 (ja) 2006-08-14 2007-07-04 デバッガ及びデバッグ方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006220958 2006-08-14
JP2006220958 2006-08-14
PCT/JP2007/063370 WO2008020513A1 (fr) 2006-08-14 2007-07-04 débogueur et procédé de débogage
JP2008529830A JP5239862B2 (ja) 2006-08-14 2007-07-04 デバッガ及びデバッグ方法

Publications (2)

Publication Number Publication Date
JPWO2008020513A1 JPWO2008020513A1 (ja) 2010-01-07
JP5239862B2 true JP5239862B2 (ja) 2013-07-17

Family

ID=39082041

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008529830A Active JP5239862B2 (ja) 2006-08-14 2007-07-04 デバッガ及びデバッグ方法

Country Status (3)

Country Link
US (1) US8024614B2 (ja)
JP (1) JP5239862B2 (ja)
WO (1) WO2008020513A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312309B2 (en) * 2008-03-05 2012-11-13 Intel Corporation Technique for promoting determinism among multiple clock domains
GB2485095A (en) * 2010-02-26 2012-05-02 Hewlett Packard Development Co Restoring stability to an unstable bus
GB2493793B (en) * 2010-12-23 2020-07-08 Intel Corp Test, validation, and debug architecture
US8612650B1 (en) * 2012-03-13 2013-12-17 Western Digital Technologies, Inc. Virtual extension of buffer to reduce buffer overflow during tracing
US9632895B2 (en) 2012-06-18 2017-04-25 Intel Corporation Apparatus, system and method for a common unified debug architecture for integrated circuits and SoCs
US9043649B2 (en) * 2012-06-18 2015-05-26 Intel Corporation Method and apparatus for output of high-bandwidth debug data/traces in ICS and SoCs using embedded high speed debug
JP5818762B2 (ja) * 2012-09-14 2015-11-18 株式会社東芝 プログラマブルロジックデバイス及びその検証方法
GB2526850B (en) * 2014-06-05 2020-11-25 Advanced Risc Mach Ltd Logic analyzer
US10180890B2 (en) 2014-06-19 2019-01-15 Telefonaktiebolaget L M Ericsson (Publ) Systems and methods for monitoring hardware observation points within a system on a Chip (SoC)
JP6318976B2 (ja) 2014-08-22 2018-05-09 富士通株式会社 デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法
US20160283423A1 (en) 2015-03-25 2016-09-29 Intel Corporation System and method to enable closed chassis debug control interface using a universal serial bus (usb) type-c connector
JP6477134B2 (ja) * 2015-03-27 2019-03-06 富士通株式会社 デバッグ回路、半導体装置及びデバッグ方法
CN106776191A (zh) * 2016-11-28 2017-05-31 湖南国科微电子股份有限公司 一种soc芯片调试的实现方法及系统
US10235272B2 (en) * 2017-03-06 2019-03-19 Xilinx, Inc. Debugging system and method
US11681598B2 (en) * 2020-04-16 2023-06-20 Texas Instruments Incorporated Method and apparatus to facilitate low latency fault mitigation, QoS management and debug of a processing pipeline
WO2023224024A1 (ja) * 2022-05-17 2023-11-23 三菱電機株式会社 ロジックアナライザ回路、集積回路および集積回路システム
CN116383091B (zh) * 2023-05-29 2023-08-29 珠海妙存科技有限公司 eMMC验证平台的启动方法、启动装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03257384A (ja) * 1990-03-08 1991-11-15 Nec Corp インサーキットエミュレータ
JP2001209556A (ja) * 1999-11-18 2001-08-03 Yokogawa Electric Corp 検証支援システム
JP2004272679A (ja) * 2003-03-10 2004-09-30 Seiko Epson Corp デバッグ装置およびデバッグ方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744416A (ja) * 1993-08-02 1995-02-14 Hitachi Ltd 電流値測定機能付きエミュレータ
US6393548B1 (en) * 1997-02-14 2002-05-21 Advanced Micro Devices, Inc. Variable 16 or 32 bit PCI interface which supports steering and swapping of data
US6389557B1 (en) * 1998-09-16 2002-05-14 Advanced Micro Devices, Inc. Freezing mechanism for debugging
US6550022B1 (en) * 1999-11-02 2003-04-15 International Business Machines Corporation Hierarchical JTAG based checkstop architecture for computer systems
US6760864B2 (en) * 2001-02-21 2004-07-06 Freescale Semiconductor, Inc. Data processing system with on-chip FIFO for storing debug information and method therefor
US6754763B2 (en) * 2001-07-30 2004-06-22 Axis Systems, Inc. Multi-board connection system for use in electronic design automation
JP2003316602A (ja) * 2002-04-24 2003-11-07 Cats Kk Romエミュレータ
JP2004038387A (ja) * 2002-07-01 2004-02-05 Fujitsu Ltd 論理検証システム
US7533315B2 (en) * 2006-03-06 2009-05-12 Mediatek Inc. Integrated circuit with scan-based debugging and debugging method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03257384A (ja) * 1990-03-08 1991-11-15 Nec Corp インサーキットエミュレータ
JP2001209556A (ja) * 1999-11-18 2001-08-03 Yokogawa Electric Corp 検証支援システム
JP2004272679A (ja) * 2003-03-10 2004-09-30 Seiko Epson Corp デバッグ装置およびデバッグ方法

Also Published As

Publication number Publication date
WO2008020513A1 (fr) 2008-02-21
US8024614B2 (en) 2011-09-20
US20090249122A1 (en) 2009-10-01
JPWO2008020513A1 (ja) 2010-01-07

Similar Documents

Publication Publication Date Title
JP5239862B2 (ja) デバッガ及びデバッグ方法
TW484054B (en) Real-time processor debug system
US7636870B2 (en) Semiconductor integrated circuit device, and debugging system and method for the semiconductor integrated circuit device
US8402314B2 (en) Debug registers for halting processor cores after reset or power off
US10891207B2 (en) Processor with debug pipeline
KR20150008447A (ko) 인터럽트 상태에 기초한 구성 가능한 브레이크포인트를 갖는 디바이스
US20060161818A1 (en) On-chip hardware debug support units utilizing multiple asynchronous clocks
TW201835765A (zh) 死結偵測器、包括其之系統與其方法
KR100354932B1 (ko) 멀티플렉싱버스상에쇼사이클을제공하는방법및데이타프로세서
US8250504B2 (en) Designing method of semiconductor integrated circuit
US7269756B2 (en) Customizable event creation logic for hardware monitoring
US20060179380A1 (en) On-chip electronic hardware debug support units having execution halting capabilities
JP3260083B2 (ja) デバッグシステム及びデバッグ方法
JP2006146412A (ja) マルチコアプロセッサ及びデバッグ方法
JP2006171810A (ja) デバッグ制御システム及びその制御方法
US20080072212A1 (en) Semiconductor integrated circuit including a monitor unit
JP2005235047A (ja) 電源瞬断デバッグ装置およびその方法を実現するためのプログラムを記録した記録媒体
Fletcher et al. Using System Tracing Tools to Optimize Software Quality and Behavior
Ferreira et al. An enhanced debugger for real-time fault injection
JP2007264822A (ja) マイクロプロセッサシステム
JP2011086005A (ja) デバッグ装置と方法
JP2005250821A (ja) エミュレータ及びマイクロプロセッサ
JPH05108550A (ja) 中央処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121024

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: 20130305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130318

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5239862

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150