(57)【要約】【課題】  システムＬＳＩの内部において、複数のプロセッサとＤＭＡ装置が協調して動作する場合のデバッグ方法について、プロセッサがデバッグモードにある際にも、その他のプロセッサ、ＤＭＡ装置の動作との時間的依存関係を維持しながらデバッグを行えるようにすることを課題とする。【解決手段】  プロセッサが通常モードにあるかデバッグモードにあるかを識別するモード峻別信号をクロック制御手段に入力し、前記プロセッサがデバッグモードである場合に、前記クロック制御手段によりシステムＬＳＩの内部において前記デバッグモードにあるプロセッサに供給されるクロック以外の他のクロックを選択的に停止する。【選択図】        図１
2006163864.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを内蔵するシステムＬＳＩのデバッグ方法であって、
前記プロセッサはデバッグモードを備えるとともに通常モードであるかデバッグモードであるかを示すモード峻別信号を出力し、
前記モード峻別信号を入力し、前記プロセッサがデバッグモードである場合に、システムＬＳＩの内部において供給されるクロックを選択的に停止するクロック制御手段を備えることを特徴とするシステムＬＳＩのデバック方法。
【請求項２】
前記システムＬＳＩは複数のプロセッサを内蔵することを特徴とする請求項１に記載のシステムＬＳＩのデバッグ方法。
【請求項３】
前記システムＬＳＩは少なくとも１つ以上のＤＭＡ装置を内蔵することを特徴とする請求項１に記載のシステムＬＳＩのデバッグ方法。
【請求項４】
前記プロセッサのデバッグ動作に従って、前記選択的に停止されたクロックを指定サイクル数分動作させることを特徴とする請求項１〜３いずれかに記載のシステムＬＳＩのデバッグ方法。
【請求項５】
前記プロセッサおよび前記ＤＭＡ装置が、省電力化のためのクロック停止機能を備えることを特徴とする請求項１〜４いずれかに記載のシステムＬＳＩのデバッグ方法。
【請求項６】
プロセッサを内蔵するシステムＬＳＩのデバッグ装置であって、
前記プロセッサはデバッグモードを備えるとともに通常モードであるかデバッグモードであるかを示すモード峻別信号を出力し、
前記モード峻別信号を入力し、前記プロセッサがデバッグモードである場合に、システムＬＳＩの内部において供給されるクロックを選択的に停止するクロック制御手段を備えることを特徴とするシステムＬＳＩのデバッグ装置。
【請求項７】
前記システムＬＳＩは複数のプロセッサを内蔵することを特徴とする請求項６に記載のシステムＬＳＩのデバッグ装置。
【請求項８】
前記システムＬＳＩは少なくとも１つ以上のＤＭＡ装置を内蔵することを特徴とする請求項６に記載のシステムＬＳＩのデバッグ装置。
【請求項９】
前記プロセッサのデバッグ動作に従って、前記選択的に停止されたクロックを指定サイクル数分動作させることを特徴とする請求項６〜８いずれかに記載のシステムＬＳＩのデバッグ装置。
【請求項１０】
前記プロセッサおよび前記ＤＭＡ装置が、省電力化のためのクロック停止機能を備えることを特徴とする請求項６〜９いずれかに記載のシステムＬＳＩのデバッグ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置のデバッグ方法および装置に関し、特にプロセッサを内蔵したシステムＬＳＩのデバッグ方法およびその装置に係る。
【背景技術】
【０００２】
近年のＬＳＩの集積度の向上により、一つのチップ内に多数のプロセッサやＤＭＡ装置を内蔵することが可能になっている。この場合、多数のプロセッサ上でそれぞれ協調して実行されるソフトウェアプログラムを、どのようにデバッグするかが問題になる。例えば、一つのプロセッサ上で実行されるプログラムの実行アドレスがブレークポイントに到達するなどにより、デバッグ時の停止条件が成立することによって該プロセッサがデバッグモードに移行し、プログラムの実行を停止したとしても、その他のプロセッサやＤＭＡ装置はそれに関わらずプログラムの実行を継続する。そのためデバッグモードにあるプロセッサがステップ実行などデバッグ動作を行ったとしても、該プロセッサと協調動作している他のプロセッサやＤＭＡ装置の動作とは乖離した状態で行われることになり、協調動作に対するデバッグが困難になる。
【０００３】
例えば、特許文献１に開示される手段は、この問題を解決するため、一つのプロセッサでデバッグ条件が成立すると、全てのプロセッサに等しく供給されるシステムクロックを停止し、他のプロセッサの動作も停止させることにより、その時点でのシステム全体の状態を観測することができるとしている。図６は、特許文献１に示す従来の半導体装置のブロック図である。
【０００４】
図６を参照して、システムクロック６２０に同期して動作するプロセッサ６０１〜６０３と、システムクロック６２０に同期して動作し、プロセッサ６０１〜６０３と相互に接続されたハードウエアモジュール６１０〜６１２と、プロセッサ６０１〜６０３からの停止信号６２１〜６２３、外部からのプロセッサ選択信号６０５、リスタート信号６０６によりシステムクロック６２０の停止／再開制御を行い、プロセッサ６０１〜６０３及びハードウエアモジュール６１０〜６１２へシステムクロック６２０を出力するクロック制御部６００とで構成する。クロック制御部６００は通常、外部からのシステムクロック６０４をスルーでシステムクロック６２０としてシステム全体に供給している。プロセッサ６０１〜６０３からの停止信号６２１〜６２３の内、デバッグ対象のプロセッサを示すプロセッサ選択信号６０５で指定されたプロセッサからの停止信号を入力するとシステムクロック６２０の出力を停止する。これによりプロセッサ６０１〜６０３及びハードウエアモジュール６１０〜６１２の全ての動作が同時に停止する。その後、外部よりリスタート信号６０６をアクティブにするとクロック制御部６００はシステムクロック６２０の供給を始めるのでシステム動作を再開する。
【０００５】
また、例えば図７は特許文献２に開示される手段のブロック図である。図７を参照して、この半導体装置７１０は互いに協調動作するプロセッサ７０１、７０２と、プロセッサ７０１、７０２にデバッガ割り込みをアサートあるいは解除したことの通知を行う割り込み制御回路７０４と、外部及びプロセッサ７０１，７０２と信号のやり取りを行うコアロジック回路７０５と、コアロジック回路７０５及びプロセッサ７０１，７０２と信号のやり取りを行うメモリ７０３とで構成されている。プロセッサ７０１が処理の実行中に、デバッグするためデバッガ割り込みをアサートすると、割り込み制御回路７０４はデバッガ割り込みをアサートしたことをプロセッサ７０２に通知する。
【０００６】
プロセッサ７０２は通知を受け取ると同時に自身が実行中の処理を停止し、スリープ状
態となる。プロセッサ７０１はデバッグ終了後、デバッガ割り込みを解除し、処理を再開する。このとき、プロセッサ７０２は割り込み制御回路７０４よりデバッガ割り込み解除の通知を受け取り、自身の処理を再開する。
【０００７】
このようにして、特許文献２に開示される手段では、一つのプロセッサないし複数のプロセッサにおける複合的なデバッグ条件が成立すると、該プロセッサによりデバッグ割り込み信号がアサートされ、デバッグ割り込み信号がシステム内のコアロジックに入力され、コアロジックは他のプロセッサに対し動作実行停止を指示する。そしてデバッグ動作終了後に前記コアロジックより動作再開が指示されるまで、他のプロセッサは動作停止状態に保たれる。
【特許文献１】特開平５−３１３９４６号公報
【特許文献２】特開平２００１−３３１４６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に開示される手段では、デバッグモードでシステムクロックが停止するため、その後ステップ実行などのデバッグ動作を行おうとすれば、クロックの供給を再開させなければならず、その際他のプロセッサはデバッグ動作に関わらず動作を続行してしまう。デバッグ動作においてステップ実行を行う場合、１命令の実行に要するクロック数は通常動作時に要するクロック数よりはるかに多くなるため、他のプロセッサはこの間に多数の命令を実行してしまい、協調動作をデバッグすることが困難である。
【０００９】
そもそも全てのシステムが一つのＬＳＩの中に格納されるシステムＬＳＩにおいては、システムクロックが停止した状態においてはＬＳＩの外から内部の状態を観測することが困難なため、ここの手法はシステムＬＳＩには不向きである。
【００１０】
また特許文献２に開示される手段では、一つないし複数のプロセッサからのデバッグ割り込み信号を用いてコアロジックが他のＣＰＵの動作を停止させるため、他のプロセッサが停止するまで若干の時間差が生じ、その間に他のプロセッサがクリティカルセクションを実行してしまう可能性がある。またこの状態でステップ実行などのデバッグ動作を行った場合、他のプロセッサは停止しているため協調動作をデバッグすることが困難である。また、ＤＭＡ装置に対してはクロックは供給され続けるため、ＤＭＡ装置との間の協調動作のデバッグについても適切に行うことができない。
【００１１】
従って本発明においては、システムＬＳＩの内部において、複数のプロセッサとＤＭＡ装置が協調して動作する場合のデバッグ方法について、プロセッサがデバッグモードにある際にも、その他のプロセッサ、ＤＭＡ装置の動作との時間的依存関係を維持しながらデバッグを行えるようにすることを課題とする。
【課題を解決するための手段】
【００１２】
プロセッサが通常モードにあるかデバッグモードにあるかを識別するモード峻別信号をクロック制御手段に入力し、前記プロセッサがデバッグモードである場合に、前記クロック制御手段によりシステムＬＳＩの内部において前記デバッグモードにあるプロセッサに供給されるクロック以外の他のクロックを選択的に停止する。ステップ実行などのデバッグ動作を行う場合には、停止中のクロックに対し、そのデバッグ動作が相当する通常モードでのクロック数と同数のクロックを前記クロック制御手段により出力させることにより、デバッグ動作中のプロセッサの状態とその他のシステムの状態との時間的関係を、通常動作時における関係と一致させる。
【発明の効果】
【００１３】
以上説明したように、本発明によれば、システムＬＳＩの内部において、複数のプロセッサとＤＭＡ装置が協調して動作する場合において、プロセッサがデバッグモードにある際にも、その他のプロセッサ、ＤＭＡ装置の動作との時間的依存関係を維持しながらデバッグを行うことが可能になる。
【発明を実施するための最良の形態】
【００１４】
以下本発明を実施するための最良の形態を、実施例により詳しく説明する。
【実施例１】
【００１５】
図１は本発明の一実施例のブロック図を説明する図である。図１において、１００は外部参照クロックを入力し予め定められた倍率で前記参照クロックを逓倍するとともに、システムＬＳＩ内部のクロックの位相を合わせる機能を備えるＰＬＬ回路である。
【００１６】
１０１は本発明発におけるクロック制御回路であり、後に詳細に説明する。１０２はシステムバスであり、１０３〜１０４のＩＯ装置、１０５のメモリコントローラ、１１１〜１１４のプロセッサ、１１５〜１１６のＤＭＡ装置は全てこのシステムバス１０２を介し接続されている。１２０はシステムクロックであり、１２１〜１２４のプロセッサクロック、１２５〜１２６のＩＯ装置クロックは前記クロック制御回路において前記システムクロック１２０から生成される。
【００１７】
図２は前記プロセッサ１１１〜１１４と前記クロック制御回路１０１の信号線の接続関係を説明する図である。２００は１つのプロセッサであり、バスインターフェース２０１により前記システムバスに接続される。プロセッサ２０２は内部にデバッグインターフェース回路２０２を備える。デバッグインターフェース回路２０２は、デバッグインターフェース２０３を通じて外部のＩＣＥ装置に接続される。
【００１８】
クロック制御回路２０４と各プロセッサの間は、クロック制御回路から出力されるプロセッサクロック２０７と、プロセッサから出力されるデバッグモード信号２０５とステップ動作信号２０６が接続されている。
【００１９】
図５は外部ＩＣＥ装置とプロセッサとの関係を説明する図である。５００はデバッグ対象となるシステムＬＳＩであり、少なくとも１つのプロセッサを内蔵し、プリント基盤５０１上に実装される。プリント基盤５０１上にはまた、プロセッサのデバッグインターフェースと接続するためのコネクタ５０２が実装される。コネクタ５０２に接続されたケーブル５０３によりＩＣＥ装置５０４が接続される。ＩＣＥ装置５０４はまた、別の接続ケーブル５０５によりホストコンピュータ５０６と接続される。
【００２０】
ホストコンピュータ５０６においては、デバッガプログラムが実行され、またユーザインターフェースを提供する。デバッグ作業は、前記ユーザインターフェースにより、ブレークポイントやウォッチポイントの設定、プロセッサ内レジスタの表示、メモリダンプの表示、ステップ実行の指示、継続実行の指示、等々を行うことにより実行される。
【００２１】
ＩＣＥ装置５０４は、前記ホストコンピュータ５０６上のデバッガプログラムと接続ケーブル５０５を介して通信することにより、システムＬＳＩ５００に内蔵される前記デバッグインターフェースに指示されたデバッグ動作を行わせるよう制御する。
【００２２】
次に、本発明の一実施例において、どのようにデバッグ動作が実行されるかをより具体的に説明する。通常動作時においては前記プロセッサ１１１〜１１４においてはそれぞれソフトウェアプログラムを実行するとともに、必要に応じて前記ＤＭＡ装置１１５〜１１６はＤＭＡ転送動作を行う。ここではこれらプロセッサ、ＤＭＡ装置の動作が協調関係に
ある場合を考える。このとき例えば、実行中のソフトウェアをデバッグするため、プロセッサ１（１１１）においてブレークポイントが設定される。プロセッサ１（１１１）は、プログラムの実行アドレスが前記ブレークポイントと一致した場合、プログラムの実行を停止しデバッグモードに入る。このときプロセッサ１（１１１）はデバッグモード信号２０５をアサートする。このとき、クロック制御回路１０１により、プロセッサ１（１１１）に供給されるクロック以外のクロックは全て停止される。図３にこの場合のタイミングチャートを示す。
【００２３】
このように、プロセッサ１がデバッグモードに入ると他のプロセッサおよびＤＭＡ装置に供給されるクロックは全て停止されるので、プロセッサ１において例えばレジスタ内容表示などのプログラム停止状態でのデバッグ動作が実行される際にも、他のプロセッサ、ＤＭＡ装置の動作との協調関係が保たれることになる。
【００２４】
次に、この状態でプロセッサ１をステップ実行させる。このときプロセッサ１の前記デバッグインターフェース回路２０２は、ステップ動作に必要なクロック数と等しい数だけ、前記ステップ動作信号２０６をアサートする。図４はこの場合のタイミングチャートである。ここではプロセッサのステップ動作は３クロックサイクル分に相当する場合であり、前記ステップ動作信号が３回アサートされている。ステップ動作信号は１回あたり１クロック周期分のみアサートされる。これにより他のプロセッサ、ＤＭＡ装置は３クロックサイクル分処理を進めることになり、プロセッサ１の動作との間の協調関係を保つことができる。
【００２５】
図８は前記クロック制御回路の構成を詳しく説明する図である。
【００２６】
各プロセッサが出力するプロセッサデバッグモード信号８０１〜８０４はＯＲ回路に入力され、デバッグイネーブル信号８００が出力される。同様に、各プロセッサが出力するプロセッサステップ動作信号８１１〜８１４はＯＲ回路に入力され、ステップイネーブル信号８１０が出力される。
【００２７】
プロセッサクロック８２０は、プロセッサデバッグモード信号８２２とデバッグイネーブル信号の反転とステップイネーブル信号のＯＲをとったものと、システムクロック８２１とをＡＮＤすることにより生成される。
【００２８】
図８の下段はひとつのプロセッサについてのみ図示してあるが、実際はプロセッサ数と同数組必要である。またＤＭＡ装置のクロックについては図示されていないが、プロセッサクロック８２０を生成する回路においてプロセッサＩデバッグモード信号８２２を削除すればよい。これについてはＤＭＡ装置の数によらず一つを備えれば良い。
【００２９】
このようなクロック制御回路は、従来省電力化のために備えられるクロック停止機構に上述のような回路を追加することにより、簡単に実現することができる。
【００３０】
以上において、本発明が特定の実施例に関して図示されかつ説明されたが、さらに他の修正および改善が可能であることは言うまでもない。
【００３１】
例えば、本発明の一実施例においては説明の簡単のために、各プロセッサ、ＤＭＡ装置に入力されるクロックは１系統のみの場合の例を示したが、もちろんこの方法に限定するものではない。例えば前記クロック回路から出力されるクロックと、システムクロックの両方を入力する方法を適用しても良い。この場合システムクロックがデバッグモード時もシステムバスがロックしないようにバスインターフェースに供給されるよう構成することで、デバッグモードにあるプロセッサがメモリにアクセスすることを可能にできる。
【００３２】
また、例えば本発明の一実施例においては、デバッグ動作としてステップ実行動作のみを例にあげて説明したが、もちろんこれのみに限定するものでは無く、他のデバッグ実行動作もステップ動作を基に構成できることは明らかである。
【００３３】
また、例えば本発明の一実施例においては各プロセッサ、ＤＭＡ装置が全て同一のシステムバスに接続される場合の例を示したが、もちろんこの方法に限定するものではなく、例えば複数レイヤのバスやクロスバスイッチ形式の接続方法においても、本発明を適用可能であることは言うまでもない。
【００３４】
したがって、本発明は示された特定の形式に限定されるものではなく、かつ添付の特許請求の範囲において本発明の精神および範囲から離れることのない全ての修正をカバーすることを考えていることが理解されるべきである。
【図面の簡単な説明】
【００３５】
【図１】本発明における一実施例を説明する図である。
【図２】本発明の一実施例における１つのプロセッサとクロック制御回路との信号接続関係を説明する図である。
【図３】本発明の一実施例におけるデバッグモード時の各プロセッサおよびＤＭＡ装置のクロック動作を説明するタイミングチャートを示す図である。
【図４】本発明の一実施例におけるステップ実行時の各プロセッサおよびＤＭＡ装置のクロック動作を説明するタイミングチャートを示す図である。
【図５】ＩＣＥ装置を使用したシステムＬＳＩのデバッグ環境を説明する図である。
【図６】従来例における一実施例を説明する図である。
【図７】別の従来例における一実施例を説明する図である。
【図８】本発明の一実施例における、プロセッサクロックの生成手段を説明する図である。
【符号の説明】
【００３６】
１００    ＰＬＬ回路、
１０１    クロック制御回路
１０２    システムバス
１０３〜１０４    ＩＯ装置
１０５    メモリコントローラ
１０６    メモリ
１１１〜１１４    プロセッサ
１１５〜１１６    ＤＭＡ装置
１２０    システムクロック
１２１〜１２４    プロセッサクロック
１２５〜１２６Ｉ    Ｏ装置クロック
２００    プロセッサ
２０１    バスインターフェース
２０２    デバッグインターフェース回路
２０３    デバッグインターフェース
２０４    クロック制御回路
２０６    デバッグモード信号
２０６    ステップ動作信号
２０７    プロセッサクロック
５００    システムＬＳＩチップ
５０１    プリント基盤
５０２    コネクタ
５０３    接続ケーブル５０３
５０４    ＩＣＥ装置
５０５    接続ケーブル
５０６    ホストコンピュータ
６００    クロック制御回路
６０１〜６０３    プロセッサ
６０４    システムクロック
６０５    プロセッサ選択信号
６０６    リスタート信号
６１０〜６１２    ハードウエアモジュール
６２０    システムクロック信号線
６２１〜６２３    停止信号線
７０１〜７０２    プロセッサ
７０３    メモリ
７０４    割り込み制御手段
７０５    コアロジック
７１０    半導体装置
８００    デバッグイネーブル信号
８０１〜８０４    プロセッサ毎のデバッグモード信号
８１０    ステップイネーブル信号、
８１１〜８１４    プロセッサ毎のステップ動作信号
３２０    プロセッサクロック
３２１    システムクロック
３２２    プロセッサデバッグモード信号
３２３    デバッグイネーブル信号
３２４    ステップイネーブル信号
【図１】
2006163864.tif 000003
【図２】
2006163864.tif 000004
【図３】
2006163864.tif 000005
【図４】
2006163864.tif 000006
【図５】
2006163864.tif 000007
【図６】
2006163864.tif 000008
【図７】
2006163864.tif 000009
【図８】
2006163864.tif 000010