JP2006163864A - システムlsiのデバッグ方法及び装置 - Google Patents
システムlsiのデバッグ方法及び装置 Download PDFInfo
- Publication number
- JP2006163864A JP2006163864A JP2004354926A JP2004354926A JP2006163864A JP 2006163864 A JP2006163864 A JP 2006163864A JP 2004354926 A JP2004354926 A JP 2004354926A JP 2004354926 A JP2004354926 A JP 2004354926A JP 2006163864 A JP2006163864 A JP 2006163864A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- clock
- system lsi
- debug
- debugging
- 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.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】 システムLSIの内部において、複数のプロセッサとDMA装置が協調して動作する場合のデバッグ方法について、プロセッサがデバッグモードにある際にも、その他のプロセッサ、DMA装置の動作との時間的依存関係を維持しながらデバッグを行えるようにすることを課題とする。
【解決手段】 プロセッサが通常モードにあるかデバッグモードにあるかを識別するモード峻別信号をクロック制御手段に入力し、前記プロセッサがデバッグモードである場合に、前記クロック制御手段によりシステムLSIの内部において前記デバッグモードにあるプロセッサに供給されるクロック以外の他のクロックを選択的に停止する。
【選択図】 図1
【解決手段】 プロセッサが通常モードにあるかデバッグモードにあるかを識別するモード峻別信号をクロック制御手段に入力し、前記プロセッサがデバッグモードである場合に、前記クロック制御手段によりシステムLSIの内部において前記デバッグモードにあるプロセッサに供給されるクロック以外の他のクロックを選択的に停止する。
【選択図】 図1
Description
本発明は半導体装置のデバッグ方法および装置に関し、特にプロセッサを内蔵したシステムLSIのデバッグ方法およびその装置に係る。
近年のLSIの集積度の向上により、一つのチップ内に多数のプロセッサやDMA装置を内蔵することが可能になっている。この場合、多数のプロセッサ上でそれぞれ協調して実行されるソフトウェアプログラムを、どのようにデバッグするかが問題になる。例えば、一つのプロセッサ上で実行されるプログラムの実行アドレスがブレークポイントに到達するなどにより、デバッグ時の停止条件が成立することによって該プロセッサがデバッグモードに移行し、プログラムの実行を停止したとしても、その他のプロセッサやDMA装置はそれに関わらずプログラムの実行を継続する。そのためデバッグモードにあるプロセッサがステップ実行などデバッグ動作を行ったとしても、該プロセッサと協調動作している他のプロセッサやDMA装置の動作とは乖離した状態で行われることになり、協調動作に対するデバッグが困難になる。
例えば、特許文献1に開示される手段は、この問題を解決するため、一つのプロセッサでデバッグ条件が成立すると、全てのプロセッサに等しく供給されるシステムクロックを停止し、他のプロセッサの動作も停止させることにより、その時点でのシステム全体の状態を観測することができるとしている。図6は、特許文献1に示す従来の半導体装置のブロック図である。
図6を参照して、システムクロック620に同期して動作するプロセッサ601〜603と、システムクロック620に同期して動作し、プロセッサ601〜603と相互に接続されたハードウエアモジュール610〜612と、プロセッサ601〜603からの停止信号621〜623、外部からのプロセッサ選択信号605、リスタート信号606によりシステムクロック620の停止/再開制御を行い、プロセッサ601〜603及びハードウエアモジュール610〜612へシステムクロック620を出力するクロック制御部600とで構成する。クロック制御部600は通常、外部からのシステムクロック604をスルーでシステムクロック620としてシステム全体に供給している。プロセッサ601〜603からの停止信号621〜623の内、デバッグ対象のプロセッサを示すプロセッサ選択信号605で指定されたプロセッサからの停止信号を入力するとシステムクロック620の出力を停止する。これによりプロセッサ601〜603及びハードウエアモジュール610〜612の全ての動作が同時に停止する。その後、外部よりリスタート信号606をアクティブにするとクロック制御部600はシステムクロック620の供給を始めるのでシステム動作を再開する。
また、例えば図7は特許文献2に開示される手段のブロック図である。図7を参照して、この半導体装置710は互いに協調動作するプロセッサ701、702と、プロセッサ701、702にデバッガ割り込みをアサートあるいは解除したことの通知を行う割り込み制御回路704と、外部及びプロセッサ701,702と信号のやり取りを行うコアロジック回路705と、コアロジック回路705及びプロセッサ701,702と信号のやり取りを行うメモリ703とで構成されている。プロセッサ701が処理の実行中に、デバッグするためデバッガ割り込みをアサートすると、割り込み制御回路704はデバッガ割り込みをアサートしたことをプロセッサ702に通知する。
プロセッサ702は通知を受け取ると同時に自身が実行中の処理を停止し、スリープ状
態となる。プロセッサ701はデバッグ終了後、デバッガ割り込みを解除し、処理を再開する。このとき、プロセッサ702は割り込み制御回路704よりデバッガ割り込み解除の通知を受け取り、自身の処理を再開する。
態となる。プロセッサ701はデバッグ終了後、デバッガ割り込みを解除し、処理を再開する。このとき、プロセッサ702は割り込み制御回路704よりデバッガ割り込み解除の通知を受け取り、自身の処理を再開する。
このようにして、特許文献2に開示される手段では、一つのプロセッサないし複数のプロセッサにおける複合的なデバッグ条件が成立すると、該プロセッサによりデバッグ割り込み信号がアサートされ、デバッグ割り込み信号がシステム内のコアロジックに入力され、コアロジックは他のプロセッサに対し動作実行停止を指示する。そしてデバッグ動作終了後に前記コアロジックより動作再開が指示されるまで、他のプロセッサは動作停止状態に保たれる。
特開平5−313946号公報
特開平2001−331466号公報
しかしながら、特許文献1に開示される手段では、デバッグモードでシステムクロックが停止するため、その後ステップ実行などのデバッグ動作を行おうとすれば、クロックの供給を再開させなければならず、その際他のプロセッサはデバッグ動作に関わらず動作を続行してしまう。デバッグ動作においてステップ実行を行う場合、1命令の実行に要するクロック数は通常動作時に要するクロック数よりはるかに多くなるため、他のプロセッサはこの間に多数の命令を実行してしまい、協調動作をデバッグすることが困難である。
そもそも全てのシステムが一つのLSIの中に格納されるシステムLSIにおいては、システムクロックが停止した状態においてはLSIの外から内部の状態を観測することが困難なため、ここの手法はシステムLSIには不向きである。
また特許文献2に開示される手段では、一つないし複数のプロセッサからのデバッグ割り込み信号を用いてコアロジックが他のCPUの動作を停止させるため、他のプロセッサが停止するまで若干の時間差が生じ、その間に他のプロセッサがクリティカルセクションを実行してしまう可能性がある。またこの状態でステップ実行などのデバッグ動作を行った場合、他のプロセッサは停止しているため協調動作をデバッグすることが困難である。また、DMA装置に対してはクロックは供給され続けるため、DMA装置との間の協調動作のデバッグについても適切に行うことができない。
従って本発明においては、システムLSIの内部において、複数のプロセッサとDMA装置が協調して動作する場合のデバッグ方法について、プロセッサがデバッグモードにある際にも、その他のプロセッサ、DMA装置の動作との時間的依存関係を維持しながらデバッグを行えるようにすることを課題とする。
プロセッサが通常モードにあるかデバッグモードにあるかを識別するモード峻別信号をクロック制御手段に入力し、前記プロセッサがデバッグモードである場合に、前記クロック制御手段によりシステムLSIの内部において前記デバッグモードにあるプロセッサに供給されるクロック以外の他のクロックを選択的に停止する。ステップ実行などのデバッグ動作を行う場合には、停止中のクロックに対し、そのデバッグ動作が相当する通常モードでのクロック数と同数のクロックを前記クロック制御手段により出力させることにより、デバッグ動作中のプロセッサの状態とその他のシステムの状態との時間的関係を、通常動作時における関係と一致させる。
以上説明したように、本発明によれば、システムLSIの内部において、複数のプロセッサとDMA装置が協調して動作する場合において、プロセッサがデバッグモードにある際にも、その他のプロセッサ、DMA装置の動作との時間的依存関係を維持しながらデバッグを行うことが可能になる。
以下本発明を実施するための最良の形態を、実施例により詳しく説明する。
図1は本発明の一実施例のブロック図を説明する図である。図1において、100は外部参照クロックを入力し予め定められた倍率で前記参照クロックを逓倍するとともに、システムLSI内部のクロックの位相を合わせる機能を備えるPLL回路である。
101は本発明発におけるクロック制御回路であり、後に詳細に説明する。102はシステムバスであり、103〜104のIO装置、105のメモリコントローラ、111〜114のプロセッサ、115〜116のDMA装置は全てこのシステムバス102を介し接続されている。120はシステムクロックであり、121〜124のプロセッサクロック、125〜126のIO装置クロックは前記クロック制御回路において前記システムクロック120から生成される。
図2は前記プロセッサ111〜114と前記クロック制御回路101の信号線の接続関係を説明する図である。200は1つのプロセッサであり、バスインターフェース201により前記システムバスに接続される。プロセッサ202は内部にデバッグインターフェース回路202を備える。デバッグインターフェース回路202は、デバッグインターフェース203を通じて外部のICE装置に接続される。
クロック制御回路204と各プロセッサの間は、クロック制御回路から出力されるプロセッサクロック207と、プロセッサから出力されるデバッグモード信号205とステップ動作信号206が接続されている。
図5は外部ICE装置とプロセッサとの関係を説明する図である。500はデバッグ対象となるシステムLSIであり、少なくとも1つのプロセッサを内蔵し、プリント基盤501上に実装される。プリント基盤501上にはまた、プロセッサのデバッグインターフェースと接続するためのコネクタ502が実装される。コネクタ502に接続されたケーブル503によりICE装置504が接続される。ICE装置504はまた、別の接続ケーブル505によりホストコンピュータ506と接続される。
ホストコンピュータ506においては、デバッガプログラムが実行され、またユーザインターフェースを提供する。デバッグ作業は、前記ユーザインターフェースにより、ブレークポイントやウォッチポイントの設定、プロセッサ内レジスタの表示、メモリダンプの表示、ステップ実行の指示、継続実行の指示、等々を行うことにより実行される。
ICE装置504は、前記ホストコンピュータ506上のデバッガプログラムと接続ケーブル505を介して通信することにより、システムLSI500に内蔵される前記デバッグインターフェースに指示されたデバッグ動作を行わせるよう制御する。
次に、本発明の一実施例において、どのようにデバッグ動作が実行されるかをより具体的に説明する。通常動作時においては前記プロセッサ111〜114においてはそれぞれソフトウェアプログラムを実行するとともに、必要に応じて前記DMA装置115〜116はDMA転送動作を行う。ここではこれらプロセッサ、DMA装置の動作が協調関係に
ある場合を考える。このとき例えば、実行中のソフトウェアをデバッグするため、プロセッサ1(111)においてブレークポイントが設定される。プロセッサ1(111)は、プログラムの実行アドレスが前記ブレークポイントと一致した場合、プログラムの実行を停止しデバッグモードに入る。このときプロセッサ1(111)はデバッグモード信号205をアサートする。このとき、クロック制御回路101により、プロセッサ1(111)に供給されるクロック以外のクロックは全て停止される。図3にこの場合のタイミングチャートを示す。
ある場合を考える。このとき例えば、実行中のソフトウェアをデバッグするため、プロセッサ1(111)においてブレークポイントが設定される。プロセッサ1(111)は、プログラムの実行アドレスが前記ブレークポイントと一致した場合、プログラムの実行を停止しデバッグモードに入る。このときプロセッサ1(111)はデバッグモード信号205をアサートする。このとき、クロック制御回路101により、プロセッサ1(111)に供給されるクロック以外のクロックは全て停止される。図3にこの場合のタイミングチャートを示す。
このように、プロセッサ1がデバッグモードに入ると他のプロセッサおよびDMA装置に供給されるクロックは全て停止されるので、プロセッサ1において例えばレジスタ内容表示などのプログラム停止状態でのデバッグ動作が実行される際にも、他のプロセッサ、DMA装置の動作との協調関係が保たれることになる。
次に、この状態でプロセッサ1をステップ実行させる。このときプロセッサ1の前記デバッグインターフェース回路202は、ステップ動作に必要なクロック数と等しい数だけ、前記ステップ動作信号206をアサートする。図4はこの場合のタイミングチャートである。ここではプロセッサのステップ動作は3クロックサイクル分に相当する場合であり、前記ステップ動作信号が3回アサートされている。ステップ動作信号は1回あたり1クロック周期分のみアサートされる。これにより他のプロセッサ、DMA装置は3クロックサイクル分処理を進めることになり、プロセッサ1の動作との間の協調関係を保つことができる。
図8は前記クロック制御回路の構成を詳しく説明する図である。
各プロセッサが出力するプロセッサデバッグモード信号801〜804はOR回路に入力され、デバッグイネーブル信号800が出力される。同様に、各プロセッサが出力するプロセッサステップ動作信号811〜814はOR回路に入力され、ステップイネーブル信号810が出力される。
プロセッサクロック820は、プロセッサデバッグモード信号822とデバッグイネーブル信号の反転とステップイネーブル信号のORをとったものと、システムクロック821とをANDすることにより生成される。
図8の下段はひとつのプロセッサについてのみ図示してあるが、実際はプロセッサ数と同数組必要である。またDMA装置のクロックについては図示されていないが、プロセッサクロック820を生成する回路においてプロセッサIデバッグモード信号822を削除すればよい。これについてはDMA装置の数によらず一つを備えれば良い。
このようなクロック制御回路は、従来省電力化のために備えられるクロック停止機構に上述のような回路を追加することにより、簡単に実現することができる。
以上において、本発明が特定の実施例に関して図示されかつ説明されたが、さらに他の修正および改善が可能であることは言うまでもない。
例えば、本発明の一実施例においては説明の簡単のために、各プロセッサ、DMA装置に入力されるクロックは1系統のみの場合の例を示したが、もちろんこの方法に限定するものではない。例えば前記クロック回路から出力されるクロックと、システムクロックの両方を入力する方法を適用しても良い。この場合システムクロックがデバッグモード時もシステムバスがロックしないようにバスインターフェースに供給されるよう構成することで、デバッグモードにあるプロセッサがメモリにアクセスすることを可能にできる。
また、例えば本発明の一実施例においては、デバッグ動作としてステップ実行動作のみを例にあげて説明したが、もちろんこれのみに限定するものでは無く、他のデバッグ実行動作もステップ動作を基に構成できることは明らかである。
また、例えば本発明の一実施例においては各プロセッサ、DMA装置が全て同一のシステムバスに接続される場合の例を示したが、もちろんこの方法に限定するものではなく、例えば複数レイヤのバスやクロスバスイッチ形式の接続方法においても、本発明を適用可能であることは言うまでもない。
したがって、本発明は示された特定の形式に限定されるものではなく、かつ添付の特許請求の範囲において本発明の精神および範囲から離れることのない全ての修正をカバーすることを考えていることが理解されるべきである。
100 PLL回路、
101 クロック制御回路
102 システムバス
103〜104 IO装置
105 メモリコントローラ
106 メモリ
111〜114 プロセッサ
115〜116 DMA装置
120 システムクロック
121〜124 プロセッサクロック
125〜126I O装置クロック
200 プロセッサ
201 バスインターフェース
202 デバッグインターフェース回路
203 デバッグインターフェース
204 クロック制御回路
206 デバッグモード信号
206 ステップ動作信号
207 プロセッサクロック
500 システムLSIチップ
501 プリント基盤
502 コネクタ
503 接続ケーブル503
504 ICE装置
505 接続ケーブル
506 ホストコンピュータ
600 クロック制御回路
601〜603 プロセッサ
604 システムクロック
605 プロセッサ選択信号
606 リスタート信号
610〜612 ハードウエアモジュール
620 システムクロック信号線
621〜623 停止信号線
701〜702 プロセッサ
703 メモリ
704 割り込み制御手段
705 コアロジック
710 半導体装置
800 デバッグイネーブル信号
801〜804 プロセッサ毎のデバッグモード信号
810 ステップイネーブル信号、
811〜814 プロセッサ毎のステップ動作信号
320 プロセッサクロック
321 システムクロック
322 プロセッサデバッグモード信号
323 デバッグイネーブル信号
324 ステップイネーブル信号
101 クロック制御回路
102 システムバス
103〜104 IO装置
105 メモリコントローラ
106 メモリ
111〜114 プロセッサ
115〜116 DMA装置
120 システムクロック
121〜124 プロセッサクロック
125〜126I O装置クロック
200 プロセッサ
201 バスインターフェース
202 デバッグインターフェース回路
203 デバッグインターフェース
204 クロック制御回路
206 デバッグモード信号
206 ステップ動作信号
207 プロセッサクロック
500 システムLSIチップ
501 プリント基盤
502 コネクタ
503 接続ケーブル503
504 ICE装置
505 接続ケーブル
506 ホストコンピュータ
600 クロック制御回路
601〜603 プロセッサ
604 システムクロック
605 プロセッサ選択信号
606 リスタート信号
610〜612 ハードウエアモジュール
620 システムクロック信号線
621〜623 停止信号線
701〜702 プロセッサ
703 メモリ
704 割り込み制御手段
705 コアロジック
710 半導体装置
800 デバッグイネーブル信号
801〜804 プロセッサ毎のデバッグモード信号
810 ステップイネーブル信号、
811〜814 プロセッサ毎のステップ動作信号
320 プロセッサクロック
321 システムクロック
322 プロセッサデバッグモード信号
323 デバッグイネーブル信号
324 ステップイネーブル信号
Claims (10)
- プロセッサを内蔵するシステムLSIのデバッグ方法であって、
前記プロセッサはデバッグモードを備えるとともに通常モードであるかデバッグモードであるかを示すモード峻別信号を出力し、
前記モード峻別信号を入力し、前記プロセッサがデバッグモードである場合に、システムLSIの内部において供給されるクロックを選択的に停止するクロック制御手段を備えることを特徴とするシステムLSIのデバック方法。 - 前記システムLSIは複数のプロセッサを内蔵することを特徴とする請求項1に記載のシステムLSIのデバッグ方法。
- 前記システムLSIは少なくとも1つ以上のDMA装置を内蔵することを特徴とする請求項1に記載のシステムLSIのデバッグ方法。
- 前記プロセッサのデバッグ動作に従って、前記選択的に停止されたクロックを指定サイクル数分動作させることを特徴とする請求項1〜3いずれかに記載のシステムLSIのデバッグ方法。
- 前記プロセッサおよび前記DMA装置が、省電力化のためのクロック停止機能を備えることを特徴とする請求項1〜4いずれかに記載のシステムLSIのデバッグ方法。
- プロセッサを内蔵するシステムLSIのデバッグ装置であって、
前記プロセッサはデバッグモードを備えるとともに通常モードであるかデバッグモードであるかを示すモード峻別信号を出力し、
前記モード峻別信号を入力し、前記プロセッサがデバッグモードである場合に、システムLSIの内部において供給されるクロックを選択的に停止するクロック制御手段を備えることを特徴とするシステムLSIのデバッグ装置。 - 前記システムLSIは複数のプロセッサを内蔵することを特徴とする請求項6に記載のシステムLSIのデバッグ装置。
- 前記システムLSIは少なくとも1つ以上のDMA装置を内蔵することを特徴とする請求項6に記載のシステムLSIのデバッグ装置。
- 前記プロセッサのデバッグ動作に従って、前記選択的に停止されたクロックを指定サイクル数分動作させることを特徴とする請求項6〜8いずれかに記載のシステムLSIのデバッグ装置。
- 前記プロセッサおよび前記DMA装置が、省電力化のためのクロック停止機能を備えることを特徴とする請求項6〜9いずれかに記載のシステムLSIのデバッグ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004354926A JP2006163864A (ja) | 2004-12-08 | 2004-12-08 | システムlsiのデバッグ方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004354926A JP2006163864A (ja) | 2004-12-08 | 2004-12-08 | システムlsiのデバッグ方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006163864A true JP2006163864A (ja) | 2006-06-22 |
Family
ID=36665810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004354926A Withdrawn JP2006163864A (ja) | 2004-12-08 | 2004-12-08 | システムlsiのデバッグ方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006163864A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010277142A (ja) * | 2009-05-26 | 2010-12-09 | Nec Corp | 回路検証装置、方法およびプログラム |
JP2011204853A (ja) * | 2010-03-25 | 2011-10-13 | Denso Corp | システムインパッケージ |
-
2004
- 2004-12-08 JP JP2004354926A patent/JP2006163864A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010277142A (ja) * | 2009-05-26 | 2010-12-09 | Nec Corp | 回路検証装置、方法およびプログラム |
JP2011204853A (ja) * | 2010-03-25 | 2011-10-13 | Denso Corp | システムインパッケージ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3913470B2 (ja) | システムlsi | |
US8024614B2 (en) | Debugger and debugging method for debugging a system-on-chip device including a microprocessor core | |
JP2000332205A (ja) | プロセッサ内蔵半導体集積回路装置 | |
RU2405192C2 (ru) | Способ и устройство для отладки многоядерной системы | |
KR20110121357A (ko) | 디버깅 기능을 지원하는 타겟 장치 및 그것을 포함하는 테스트 시스템 | |
JP5610566B2 (ja) | 半導体装置及びデータ処理システム | |
US20080312900A1 (en) | Simulation apparatus and simulation method | |
JP5102789B2 (ja) | 半導体装置及びデータプロセッサ | |
JP2007148754A (ja) | 半導体集積回路装置 | |
JP4393954B2 (ja) | マイクロコンピュータ | |
JP2001202155A (ja) | 低消費電力処理装置 | |
JP2007310714A (ja) | 集積回路装置、デバッグツール、デバッグシステム、マイクロコンピュータ及び電子機器 | |
US20040172233A1 (en) | Semiconductor integrated circuit device and microcomputer development assisting apparatus | |
KR101775674B1 (ko) | 데이터 프로세서 및 데이터 처리 시스템 | |
JP2004302731A (ja) | 情報処理装置および障害診断方法 | |
JP2006163864A (ja) | システムlsiのデバッグ方法及び装置 | |
JP2001209556A (ja) | 検証支援システム | |
JP2010140319A (ja) | 半導体装置 | |
JP2006146412A (ja) | マルチコアプロセッサ及びデバッグ方法 | |
JP2001084161A (ja) | データ処理装置 | |
JP2007264822A (ja) | マイクロプロセッサシステム | |
JP2005141522A (ja) | データ処理装置 | |
JP2007316986A (ja) | システムlsi | |
JP2009116445A (ja) | 複数本のシーケンスプログラムを並列して実行可能なプログラマブルコントローラ | |
JP2004280789A (ja) | 半導体集積回路装置およびマイクロコンピュータ開発支援装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080304 |