(57)【要約】【課題】効果的なデバッグ用ツールを提供すること。【解決手段】大規模で複雑なＳｏＣは様々な機能ブロックの相互接続を含み、それらのブロックはしばしば異なるクロック領域で動作する。ＳｏＣ内のクロックを効果的に制御することによって、本発明はＳｏＣの命令を中断させ、その後、その命令を現実のシステム環境の中で１サイクルもしくはｎサイクル歩進させるための手段を提供する。したがって本発明は、機能ブロック間の相互作用の理由と影響を調べる能力を提供するのでＳｏＣの設計者、およびそのコードがＳｏＣによって実行されるソフトウェアの設計者の両方に対して有効なデバッグ用ツールを提供する。本発明はまた、１つの機能ブロックしか有していないがブロックのクロックとは異なるクロックで動作する複雑な回路を有するＳｏＣにも応用可能である。特に、本発明はブロック・クロックの中断を可能にし、その後、ブロックとＳｏＣ回路の間の相互作用の解析を可能にするためにその命令の１サイクルもしくはｎサイクルの歩進を可能にする。【選択図】図１
2005196774.tif 000002
【特許請求の範囲】
【請求項１】
システム・オン・チップ（ＳｏＣ）をデバッグするための方法であって、ＳｏＣが少なくとも１つの機能ブロックを含むようにシステム部品を含み、前記ブロックの各々がブロック・クロックおよびクロック制御ユニットによって制御され、
ＳｏＣ上で生じる特定の事象にブレークポイントを設定する工程、
ＳｏＣ上で生じる事象をモニタする工程、
特定の事象の発生を識別する工程、
前記クロック制御ユニットの各々にデバッグ・トリガ信号を供給する工程、
各々のブロック・クロックを中断する工程、
前記システム部品のうちの１つまたは複数の状態を判定する工程、および
ＳｏＣをデバッグするために前記状態を利用する工程を含む方法。
【請求項２】
特定の事象が、機能ブロック内で生じる命令である、請求項１に記載の方法。
【請求項３】
ＳｏＣの内部状態が観察されることが可能であることをユーザに示すデバッグ準備完了信号を発生させる工程をさらに含む、請求項２に記載の方法。
【請求項４】
前記ブロックのうちの少なくとも１つが少なくとも１つのスキャン・チェーンを含み、前記判定する工程が、
前記少なくとも１つのスキャン・チェーンから選択を行い、選択されたスキャン・チェーンが少なくとも１つのレジスタ素子を含む工程、
前記選択されたスキャン・チェーン内の少なくとも１つのレジスタの各々をスキャン・モードに必要とされる内容に構成する工程、
選択されたスキャン・チェーンの制御をスキャン・クロック信号に与える工程、および
選択されたスキャン・チェーン内の前記少なくとも１つのレジスタ素子の内容を移し出す工程を含む、請求項３に記載の方法。
【請求項５】
システム環境によってトリガをかけられるデバッグ・クリア信号を識別する工程および各々のブロック・クロックの動作を復帰させる工程をさらに含む、請求項１に記載の方法。
【請求項６】
ＳｏＣの単一歩進の実行を行う工程、および
前記システム部品のうちの前記１つまたは複数の状態を再度判定する工程をさらに含む、請求項１に記載の方法。
【請求項７】
ｎが正の整数である場合にＳｏＣのｎサイクルの歩進の実行を行う工程、および
前記ｎサイクルの歩進のうちの１つまたは複数の実行の後に前記システム部品のうちの前記１つまたは複数の状態を再度判定する工程をさらに含む、請求項１に記載の方法。
【請求項８】
前記ブロックのうちの少なくとも１つが少なくとも１つのスキャン・チェーンを含み、前記判定する工程が、
前記少なくとも１つのスキャン・チェーンから選択を行い、選択されたスキャン・チェーンが少なくとも１つのレジスタ素子を含む工程、
前記選択されたスキャン・チェーン内の少なくとも１つのレジスタ素子の各々をスキャン・モードに必要とされる内容に構成する工程、
スキャン・チェーンの制御をスキャン・クロック信号に与える工程、および
選択されたスキャン・チェーン内の少なくとも１つのレジスタ素子の内容を移し出す工程を含む、請求項７に記載の方法。
【請求項９】
ＳｏＣ上で生じる追加的な特定の事象に追加的なブレークポイントを設定する工程、
追加的な特定の事象の発生を識別する工程、および
前記特定の事象および前記追加的な特定の事象に関して所定の条件が満たされる場合にのみ前記供給する工程、前記中断する工程、前記判定する工程、および前記利用する工程を実行する工程をさらに含む、請求項１に記載の方法。
【請求項１０】
ｎが正の整数である場合に１つのブロックのみのｎサイクルの歩進の実行を行う工程、および
前記ｎサイクルの歩進のうちの１つまたは複数の実行の後に前記システム部品のうちの前記１つまたは複数の状態を再度判定する工程をさらに含む、請求項１に記載の方法。
【請求項１１】
システム・オン・チップ（ＳｏＣ）をデバッグするための装置であって、ＳｏＣが少なくとも１つの機能ブロックを含むようにシステム部品を含み、前記ブロックの各々がブロック・クロックおよびクロック制御ユニットによって制御され、
ＳｏＣ上で生じる特定の事象を識別する第１の制御器、
前記クロック制御ユニットの各々にデバッグ・トリガ信号を供給する第２の制御器、
デバッグ・トリガ信号の存在を検出すると各々のブロック・クロックを中断させる第３の制御器、および
前記システム部品のうちの１つまたは複数の状態を出力する回路を含み、
ＳｏＣをデバッグするために前記状態が使用される装置。
【請求項１２】
特定の事象が、機能ブロック内で生じる命令である、請求項１１に記載の装置。
【請求項１３】
ＳｏＣの内部状態が観察されることが可能であることをユーザに示すデバッグ準備完了信号を発生させる回路をさらに含む、請求項１２に記載の装置。
【請求項１４】
前記ブロックのうちの少なくとも１つが少なくとも１つのスキャン・チェーンを含み、状態を出力する前記回路が、
前記少なくとも１つのスキャン・チェーンから選択を行い、選択されたスキャン・チェーンが少なくとも１つのレジスタ素子を含む回路、
前記選択されたスキャン・チェーン内の少なくとも１つのレジスタ素子の各々をスキャン・モードに必要とされる内容に構成する回路、
選択されたスキャン・チェーンを制御するためのスキャン・クロック信号を供給する回路、および
選択されたスキャン・チェーン内の前記少なくとも１つのレジスタ素子の内容を移し出す回路を含む、請求項１３に記載の装置。
【請求項１５】
システム環境によってトリガをかけられるデバッグ・クリア信号を識別する回路、および
各々のブロック・クロックの動作を復帰させる回路をさらに含む、請求項１１に記載の装置。
【請求項１６】
ＳｏＣの単一歩進の実行を行う回路をさらに含む、請求項１１に記載の装置。
【請求項１７】
ｎが正の整数である場合にＳｏＣのｎサイクル歩進の実行を行う回路をさらに含み、
状態を出力する前記回路が、前記ｎサイクル歩進のうちの１つまたは複数の実行の後に前記システム部品のうちの１つまたは複数の状態を再度出力する回路を含む、請求項１１に記載の装置。
【請求項１８】
前記ブロックのうちの少なくとも１つが少なくとも１つのスキャン・チェーンを含み、状態を出力する前記回路がさらに、
前記少なくとも１つのスキャン・チェーンから選択を行い、選択されたスキャン・チェーンが少なくとも１つのレジスタ素子を含む回路、
前記選択されたスキャン・チェーン内の少なくとも１つのレジスタ素子の各々をスキャン・モードに必要とされる内容に構成する回路、
選択されたスキャン・チェーンを制御するためのスキャン・クロック信号を供給する回路、および
選択されたスキャン・チェーン内の前記少なくとも１つのレジスタ素子の内容を移し出す回路を含む、請求項１７に記載の装置。
【請求項１９】
ＳｏＣ上で生じる追加的な特定の事象を識別する前記第１の制御器をさらに含み、
前記特定の事象および前記追加的な特定の事象に関して所定の条件が満たされる場合にのみ前記第２の制御器、前記第３の制御器、および状態を出力する前記回路の各々の動作が生じる、請求項１１に記載の装置。
【請求項２０】
ｎが正の整数である場合に１つのブロックのみのｎサイクル歩進の実行を行う回路をさらに含み、
状態を出力する前記回路が、前記ｎサイクル歩進のうちの１つまたは複数の実行の後に前記システム部品のうちの１つまたは複数の状態を再度出力する回路を含む、請求項１１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム・オン・チップ（ＳｏＣ）を基本とする埋め込みコアをデバッグするためのシステムと方法に関し、さらに特定すると、現実のシステム環境で単一またはＮサイクルの歩進を使用することによって複雑なＳｏＣをデバッグするためのシステムと方法に関する。
【背景技術】
【０００２】
１９９０年代以来、集積回路（ＩＣ）の設計はチップ・セットの考え方から埋め込みコアを基本とするＳｏＣの概念へと進歩してきた。ＳｏＣのＩＣは、マイクロプロセッサ、インターフェース、メモリ・アレー、およびＤＳＰ（デジタル信号プロセッサ）といった様々な再利用可能な機能ブロックを含む。そのような前もって設計された機能ブロックは、普通、「ＩＰコア」、「コア」、または「ブロック」と呼ばれ、本明細書では集合的に「機能ブロック」または単純に「ブロック」と称される。結果として得られるＳｏＣは極めて複雑になっている。さらに、これらＳｏＣの設計に使用される技術はチップ設計の複雑さに対応しきれていない。すなわち、ＳｏＣは現在、様々な製造供給元から得られる機能ブロックを単一の設計にまとめ、その後、これらのブロックの間の境界を機能的に検証することによって設計される。
【０００３】
ＳｏＣのデバッグは、設計品が製造された後は難しい作業になる可能性がある。この難しさは異なる機能ブロック間の多数のあり得る相互作用に起因する。極めて頻繁に、設計工程中に察知されずにいる問題のタイプは、異なる機能ブロック間の相互作用を含む問題である。通常、設計者は独立した環境で設計品の機能を確認するための徹底した検査を書く。機能ブロックが集積化されると、ブロックへのインターフェースをチェックするためにその後追加的な機能検査が書かれる。しかしながら、これらの検査は不完全でシステム・レベルの検査である。システム・レベルの検査の不充分性は、ブロックの設計者がそのブロックが使用されるであろうシステムについて有する限られた理解に起因する。
【０００４】
製造されたＳｏＣに伴う機能上の問題が生じると、設計者は内部レジスタ、内部メモリ、またはデバイスへのピンに現れる出力信号を観察することによって（例えばデバイスのピンの検査プロービングならびにコンピュータ操作されたデバッグ用インターフェースを使用するさらに洗練された方法といった様々な手段によって）原因を判定することを試みる。しばしば、これはブレークポイント処理のようなよく知られている先行技術のデバッグ用技術を伴う。ブレークポイント処理は、ソフトウェア設計者が効率的にコードをデバッグすることを可能にするようにマイクロプロセッサの設計で使用される構想である。設計者はマイクロプロセッサによって実行される命令上にブレークポイントを設定する。マイクロプロセッサがその命令を実行する前に命令のフローが中断され、マイクロプロセッサはデバッグ・モードに入る。
【０００５】
単一サイクルの歩進またはｎサイクルの歩進は、ソフトウェア設計者が効率的にコードをデバッグすることを可能にするためにブレークポイント処理と連動して使用されるまた別のデバッグの構想である。設計者はマイクロプロセッサによって実行される命令上にブレークポイントを設定する。上述したように、マイクロプロセッサがその命令を実行する前に命令のフローが中断され、マイクロプロセッサはデバッグ・モードに入る。一回の歩進を可能にするために、ブレークポイントは後に続く命令上に設定され、マイクロプロセッサはデバッグ・モードから解放され、再びデバッグ・モードに入る前に現在の命令を実行する。同様に、ｎサイクルの歩進についてはブレークポイントはｎ個の命令の先にある命令上に設定される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
これらの先行技術によるデバッグ技術は複雑なＳｏＣに容易に適用することが可能ではない。このジレンマは異なるクロック領域で動作する多数のブロックが存在すること、および各々のブロックが命令を中断するための独自の方法を有する可能性があることが原因である。設計工程を簡略化するために最新のＳｏＣは異なる機能ブロックのブレークポイント処理のメカニズムを別々にした。この設計手法はＳｏＣでデバッグが支障をきたすと設計者の妨げとなる。特に、設計者は各々の機能ブロックを別々に停止することを必要とし、その結果、故障のポイントまでＳｏＣ全体にわたる制御が無くなる。
【０００７】
さらに、そのような複雑なＳｏＣに関すると、ＳｏＣを１サイクルもしくはｎサイクル先に進めるための前述の技術は存在しない。やはり、このジレンマは異なるクロック領域で動作する多数のブロックが存在すること、ならびに各々のブロックが命令を１サイクルもしくはｎサイクル先に進めるための独自の方法を有する可能性があることが原因である。
【０００８】
本発明は、ＳｏＣの命令を中断させ、ＳｏＣ内のクロックの効果的な制御によってＳｏＣの命令を１サイクルもしくはｎサイクル先に進める手段を提供するための手段を提供することによって先行技術のこれらの問題を克服する。
【課題を解決するための手段】
【０００９】
大規模で複雑なＳｏＣは様々な機能ブロックの相互接続を有し、それらのブロックはしばしば異なるクロック領域で動作する。ＳｏＣ内のクロックを効果的に制御することによって、本発明はＳｏＣの命令を中断させ、その後、その命令を現実のシステム環境で１サイクルもしくはｎサイクル先に進めるための手段を提供する。したがって本発明は、機能ブロック間の相互作用の理由と影響を調べる能力を提供するのでＳｏＣの設計者、およびそのコードがＳｏＣによって実行されるソフトウェアの設計者の両方に対して有効なデバッグ用ツールを提供する。
【００１０】
本発明はまた、１つの機能ブロックしか有していないがブロックのクロックとは異なるクロックで動作する複雑な回路を有するＳｏＣにも応用可能である。本発明は、ブロックのクロックを中断させ、その後、１サイクルもしくはｎサイクルその命令を先に進めることでブロックとＳｏＣ回路の間の相互作用の解析を再び許可することを可能にする。
【００１１】
この最新の発明は「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｄｅｂｕｇｇｉｎｇ  Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐｓ」という表題の係属米国特許出願と組み合わせて役立てることで複雑なＳｏＣをデバッグするための有用な手段を提供する。本明細書に参照で組み入れるこの係属出願では、ＳｏＣに含まれるブロックの内部状態の可観察性が提供される。
本発明の様々な実施形態がここで添付の図面と関連させて詳細に説明されるであろう。
【発明を実施するための最良の形態】
【００１２】
図１はＳｏＣ１０２に関するブレークポイント処理機能のサポートのためのインターフェースを例示している。図１に示されるように、ＳｏＣ１０２は３つの機能ブロック（１０４、１０６および１０８）を含む。通常のＳｏＣでは、しばしばはるかに多くの機能ブロックがあるので、図１はＳｏＣの単純な範例となるように意図されている。各々の機能ブロックは別々のクロック領域からクロック供給（ブロック・クロック１、ブロック・クロック２、およびブロック・クロック３であり、それぞれ項目１１０、１１２および１１４）されて示されている。各々のクロック領域に関して別々のクロック制御ユニット（クロック制御部１、クロック制御部２およびクロック制御部３であり、それぞれ項目１１６、１１８および１２０）もやはり例示されている。もしも２つ以上の機能ブロックが同じクロック領域を共有する場合、クロック制御ユニットもまたこれらの機能ブロックによって共有されるであろう。これらのクロック制御ユニットは、各々の独立したクロック領域に関して標準ブロック・クロック信号（まとめて、項目１１５）を入力として受け取る。下記に図２と３でさらに例示されるであろうが、これら標準ブロック・クロック信号はそれぞれのブロック・クロック信号（１１０、１１２または１１４）を導き出すために使用される。
【００１３】
各々の機能ブロックはトリガ信号（トリガ１、トリガ２およびトリガ３であり、それぞれ項目１２２、１２４および１２６）をブレークポイント処理制御ブロック１２８へと供給する。当該技術でよく知られているように、これらのトリガ信号は、機能ブロック内で生じていてＳｏＣの命令が中断される原因となるはずの事象をモニタする。ブレークポイント処理制御ブロック１２８はデバッグ・トリガ信号１３０をデバッグ／クロックの制御ブロック１３２に設定する時を判定するためにトリガ信号を使用する。
【００１４】
ブレークポイント処理制御ブロック１２８は、ＳｏＣが既にデバッグ・モードに入った後に新たなブレークポイント事象の検出を許可する時を判定するためにクロック中断信号（クロック１中断、クロック２中断およびクロック３中断であり、それぞれ項目１３４、１３６および１３８）を使用する。デバッグ・クリア信号１４０はＳｏＣの規定の動作を再開させる前にブレークポイント処理制御ブロック内の回路をクリアする。外部デバッグ信号１４２はＳｏＣの無条件の中断を可能にする。
【００１５】
図２はＳｏＣ１０２でブレークポイント処理を実施するために本発明の一実施形態で使用される制御回路を示している。図２はＳｏＣ内の各々の独立したクロック領域のためのトリガ・ユニット（トリガ・ユニット１、トリガ・ユニット２およびトリガ・ユニット３であり、それぞれ項目２０２、２０４および２０６）を例示している。この範例では、各々の機能ブロックは独自のクロック領域を有する。各々のトリガ・ユニットはトリガ・イネーブル信号（すなわちトリガ・ユニット１についてはトリガ・イネーブル１、トリガ・ユニット２についてはトリガ・イネーブル２、トリガ・ユニット３についてはトリガ・イネーブル３であり、それぞれ項目２０８、２１０および２１２）によってイネーブルにされる。各々のトリガ・ユニットはユニットがイネーブルにされた後にトリガ信号（すなわちトリガ・ユニット１についてはトリガ１）をサンプリングし始める。いったんブレークポイントの事象が生じると、トリガは適切なトリガ・ユニット内でラッチをかけられ、対応するリクエスト・ライン（すなわちトリガ・ユニット１についてはＲＥＱ  １、トリガ・ユニット２についてはＲＥＱ  ２およびトリガ・ユニット３についてはＲＥＱ  ３であり、それぞれ項目２１４、２１６および２１８）が稼動させられる。このトリガ・ユニットは、適切なクロック中断信号が休止させられて対応するクロック領域が規定の動作に戻ったことが示されるまでリクエスト・ラインの稼動状態を維持する。クロック中断信号（すなわちトリガ・ユニット１（項目２０２）に関するとクロック１中断（項目１３４））が休止させられると、トリガ・ユニット内のラッチをクリアするためのパルスが作り出される。いったんトリガ・ユニットが稼動させられると、対応するトリガ信号（１２２、１２４および１２６）のさらなるサンプリングを阻止するために遅延停止信号（項目２２０、２２２および２２４）が作り出される。
【００１６】
すべてのトリガ・ユニットから入るリクエスト・ライン（２１４、２１６および２１８）は条件付ブレークポイント処理を可能にするためにゲート２２８によって一緒にゲート処理される。デバッグ・トリガ信号１３０は、すべてのイネーブルにされたトリガ・ユニットから入るリクエスト・ラインが稼動させられる時にのみ稼動状態である。ディスエーブルにされるトリガ・ユニットに関すると、ディスエーブルにされたトリガ・ユニットがイネーブルにされたトリガ・ユニットの動作と干渉することを防止するために対応するリクエスト・ラインは稼動状態である。もしもすべてのトリガ・ユニットがディスエーブルにされると、デバッグ・トリガ信号は稼動を阻止され、それにより、いずれのブレークポイント処理機能もディスエーブルにされる。外部デバッグ信号１４２はＳｏＣの無条件の中断を可能にする。
【００１７】
デバッグ・クリア・ユニット２３０はブレークポイント処理制御論理をクリアし、ＳｏＣを規定の動作に戻す。図２に例示されるように、デバッグ・クリア・ユニット２３０がデバッグ・クリア信号１４０に遭遇すると、デバッグ・トリガ信号１３０をクリアするためにクリア信号２３２が稼動させられる。デバッグ・トリガ信号１３０のクリアは各クロック領域が規定のクロック動作（すなわち、標準クロック１、標準クロック２および標準クロック３であり、それぞれ項目２３４、２３６および２３８）に切り換え復帰する原因となる。再びデバッグ・モードに入ることを阻止するために、前のブレークポイント処理の事象がクリアされるまでクリア信号２３２は稼動状態に保たれる。すべての遅延中断信号（２２０、２２２および２２４）が休止させられると、ブレークポイント処理事象の次のセットが認識されることを可能にするためにクリア信号２３２は休止させられる。
【００１８】
図３は本発明の実施形態によるＳｏＣ１０２のブレークポイント処理に関するタイミング動作の範例を例示している。この範例では、トリガ・ユニット１（項目２０２）およびトリガ・ユニット２（項目２０４）がイネーブルにされる。標準クロック１（項目２３４）に同期させられるトリガ１信号（項目１２２）が稼動させられると、対応するリクエスト・ライン（ＲＥＱ  １、項目２１４）が稼動させられる。ＲＥＱ  ２信号（項目２１６）が稼動させられる時にのみ、デバッグ・トリガ信号１３０が稼動状態になる。ＲＥＱ  ２信号（項目２１６）は、標準クロック２（項目２３６）に同期させられるトリガ  ２信号（項目１２４）が稼動させられると稼動状態になる。
【００１９】
デバッグ・トリガ信号１３０が稼動させられると、その後にＳｏＣ内のすべてのクロック（１１０、１１２および１１４）中断させられる。クロック中断方法は、「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｄｅｂｕｇｇｉｎｇ  Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐｓ」という表題の上記で参照した係属米国特許出願にさらに述べられている。図３に例示されるように、デバッグ・イネーブル３０２およびデバッグ準備完了信号３０４はスキャン・クロック３０６への同期の後に稼動させられる。デバッグ準備完了信号３０４が稼動状態にあると、これはＳｏＣ１０２がデバッグ・モードに入ったこと、およびデバイスの内部状態が観察可能であることをシステム環境に示す。
【００２０】
単純化するために、クロック３中断信号は図３に例示されていない。本発明のこの実施形態では、デバッグ・イネーブル信号３０２が稼動させられる時はＳｏＣ１０２内の最も遅いクロック速度によって決定される。
【００２１】
ＳｏＣ１０２が規定の動作を再開する時、デバッグ・クリア信号１４０がシステム環境（例えばユーザまたはモニタリング装置から由来する入力信号）によってトリガをかけられ、それによりクリア信号２３２が稼動させられる。クリア信号が稼動させられると同時に、デバッグ・トリガ信号１３０が休止させられる。デバッグ・トリガ信号１３０のクリアは様々なクロック領域の各々へのクロックが元通りにそれらの標準クロック（２３４および２３６）に同期させられる原因となる。様々なクロック領域の各々へのクロックが再度同期している間、およびブレークポイント制御論理の中のトリガ・ユニット（２０４、２０６および２０８）がクリアされている間、クリア信号２３２は稼動状態のままである。これは、前のブレークポイントの状態がクリアされるまで他のブレークポイントの状態が生じることを阻止する。
【００２２】
図４は、本発明の追加的な実施形態でＳｏＣ１０２の１サイクルもしくはｎサイクルの歩進をサポートするインターフェースを例示している。図４は上記で検討された図１に類似しており、したがって類似した項目番号が繰り返される。特に、この具体例では３つの機能ブロック１０４、１０６および１０８が存在する。各々の機能ブロックは別々のクロック領域からクロック供給され（ブロック・クロック１１０、１１２および１１４）、対応するクロック領域各々について別々のクロック制御ユニット（クロック制御部１１６、１１８および１２０）が存在する。図１に関して検討したように、もしも２つ以上の機能ブロックが同じクロック領域を共有する場合、クロック制御ユニットもまた付随する機能ブロックによって共有されるであろう。
【００２３】
各クロック制御ユニット（項目１１６、１１８および１２０）は、クロック制御ユニット１３２がそれに対応するクロック領域を１サイクルもしくはｎサイクル歩進させている時にシステム環境に示すために出力信号（歩進処理稼動１、歩進処理稼動２および歩進処理稼動３であり、まとめて項目４０２として示される）を作り出す。これらの出力のすべてはゲート４０４によってゲート処理され、歩進稼動信号４０８としてシステム環境へと送られる前にシンクロナイザ４０６によって同期をとられる。
【００２４】
さらに下記で図５を参照して述べられるように、デバッグ・トリガ信号１３０はＳｏＣ１０２を強制的にデバッグ・モードに入れるために使用される。標準クロック１１５およびスキャン・クロック３０６は、ＳｏＣが規定の動作をしている時およびデバッグ・モードにある時それぞれでクロック領域にクロック供給する。デバッグ・スキャン・イン４１０およびデバッグ・スキャン・アウト４１２信号は、各々のクロック領域の歩進動作を制御するであろうクロック制御ユニット内でウェイト・カウンタおよびラン・カウンタをロードするためにシステム環境によって使用される。
【００２５】
図５は１サイクルもしくはｎサイクルの歩進を実行するために本発明の追加的な実施形態で使用されるクロック制御回路５０２を示している。クロック制御回路の最上部はＳｏＣ１０２をデバッグ・モードに置くために使用される。いったんデバッグ・モードになると、歩進制御論理５０４が１サイクルもしくはｎサイクルの歩進の実行を制御する。
【００２６】
歩進制御論理５０４（各ブロック制御ユニット１１６、１１８および１２０に含まれる）は２つのカウンタ、すなわちウェイト・カウンタ５０６およびラン・カウンタ５０８で構成される。ウェイト・カウンタ５０６は歩進の実行が生じるまでの遅れを加算することで様々なクロック領域のアラインメントを可能にする。ラン・カウンタ５０８はクロック領域が歩進させられるクロック・サイクルの数を制御する。両方のカウンタはデバッグ・モードで値をロードされ、その後、ゼロへとカウントダウンし、さらなるカウントを停止する。ウェイト・カウンタとラン・カウンタのロード方法は、「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｄｅｂｕｇｇｉｎｇ  Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐｓ」という表題の上記で参照した係属米国特許出願に述べられているデバッグ・モードのスキャン・チェーンのロード方法と同じである。クロック制御ユニット１１６、１１８および１２０すべてのウェイト・カウンタおよびラン・カウンタは同時にロードされる。図５に描かれた範例はウェイト・カウンタおよびラン・カウンタのスキャン動作を制御する信号チェーン・イネーブル４（項目５１０）を示している。ウェイト・カウンタおよびラン・カウンタに関する値はデバッグ・スキャン・イン信号４１０を通じてスキャン・インされる。デバッグ・スキャン・アウト信号４１２は隣接するクロック制御ユニット（図示せず）にデバッグ・スキャン・イン信号４１０を送り込む。
【００２７】
すべてのクロック制御ユニット１１６、１１８および１２０についてウェイト・カウンタおよびラン・カウンタがロードされると、その後、ＳｏＣ１０２の歩進の実行を開始するために歩進処理トリガ信号５１２が使用される。この信号はシンクロナイザ５１４によって各クロック制御ユニットに関する標準クロックに同期させられ、結果的に得られる歩進処理イネーブル信号５１６がウェイト・カウンタおよびラン・カウンタへの標準クロック供給を可能にするために使用される。ウェイト・カウンタ５０６が非ゼロの間では、ウェイト信号５１８は稼動状態であり、それがラン・カウンタ５０８のカウントを阻止する。ウェイト・カウンタ５０６がゼロまでカウントした後、ラン・カウンタ５０８が各クロック領域で歩進実行のサイクルをカウントする。ラン・カウンタ５０８がゼロへとカウントダウンしている間、ＲＵＮ信号５２０は稼動状態であり、それが強制的に標準ブロック・クロック１１５をブロック・クロック（例えばブロック・クロック１、項目１１０）としてクロック制御ユニットからゲート処理する。ラン・カウンタ５０８がゼロまでカウントダウンし終わると、クロック制御ユニット１３２は各々のクロック領域へのクロックが中断される状態へと戻る。
【００２８】
図６は本発明のさらなる実施形態に従って１サイクルもしくはｎサイクルの歩進を制御するデバッグ制御回路６０２を例示している。図６に示されるように、項目６０４および６０６で示される２つの別個のデバッグ・イネーブル信号が存在する。（クロック制御部への）デバッグ・イネーブル信号６０４はクロック制御回路をデバッグ・モードに置く。したがって、デバッグ・イネーブル信号６０４はデバイスをデバッグ・モードに保持するためにデバッグ・モードでは常時稼動状態を保たねばならない。（スキャン・チェーンへの）デバッグ・イネーブル信号６０６は機能ブロックおよびクロック制御ユニット内でスキャン・チェーンのスキャン・モードを稼動させるために使用される。デバッグ・モードの間では、セルの内容がスキャン・インおよびスキャン・アウトされることを可能にするために初期設定はスキャン・チェーンのスキャン・モードを選択する。１サイクルもしくはｎサイクルの歩進に関すると、この信号はレジスタの規定の動作へと戻らねばならない。図６の実施形態に例示されるように、歩進処理トリガ信号５１２はＳｏＣ１０２の１サイクルおよびｎサイクルの歩進を可能にするためにデバッグ・イネーブル信号６０６をゲート処理する。
【００２９】
単純化するために図５と６から省略されているものはパワーアップ・リセット信号の存在であり、それはシンクロナイザ（それぞれ項目５１４および６０８）へと入力され、それにより、前記シンクロナイザから「０」出力信号が出る結果につながる。さらに、図５に関すると、このパワーアップ・リセット信号はラン・カウンタ５０８とウェイト・カウンタ５０６へと供給され、それによってそれらを「０」にリセットする。そのようなリセット信号の使用は先行技術でよく知られている。本発明での使用は、システムがパワーアップされる時にデバッグ論理が稼動状態にないことを確実化する。
【００３０】
図７は本発明の一実施形態によるＳｏＣ１０２のｎサイクル歩進のためのタイミング動作を例示している。ＳｏＣをデバッグ・モードに置く順序は「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｄｅｂｕｇｇｉｎｇ  Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐｓ」という表題の上記で参照した係属米国特許出願に述べられている手順と同じである。したがって、いったんデバッグ・モードになると、その開示に述べられているデバッグの手順によってＳｏＣ１０２の内部の状態がモニタされることが可能である。
【００３１】
ユーザがＳｏＣ１０２の１サイクルもしくはｎサイクルの歩進の実行をする準備を整えると、すべてのクロック制御ユニットのウェイト・カウンタおよびラン・カウンタがロードされる。チェーン選択信号７０２は４に設定され、それはこの範例では一体に連鎖となったすべてのウェイト・カウンタとラン・カウンタで構成されるスキャン・チェーンに対応する。デバッグＡＣＫ信号７０４は、「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｄｅｂｕｇｇｉｎｇ  Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐｓ」という表題の上記で参照した係属米国特許出願に述べられているように新たな状態を機能ブロック内のスキャン・チェーンにロードする時と同じ方式でスキャン・チェーンをロードするために高レベルに引き上げられる。もしもウェイト・カウンタ５０６に非ゼロの値がロードされると、対応するウェイト信号５１８は図７に例示されたウェイト２信号７０６のように高レベルへと進むであろう。ラン・カウンタ５０８を値１でロードすることは対応するクロック領域の１サイクルの歩進に相当するであろう。
【００３２】
システム環境がＳｏＣ１０２を１サイクルもしくはｎサイクル歩進させる準備を整えると、ＳＴＥＯＯＩＮＧトリガ信号５１２が稼動させられる。この信号は、各クロック制御ユニットについて独自の歩進処理イネーブル信号５１６を作り出すために各クロック領域の標準クロックに同期させられる。ウェイト２信号７０６が休止させられる前に様々なクロック領域を整列させるように、０からｍ（ｍは正の整数である）の標準クロック・サイクルの遅延が生じる。その後、対応するクロック領域の実行を歩進させるように、０からｎ（ｎは正の整数である）の標準クロック・サイクル７０８が生じる。
【００３３】
図７に示された歩進稼動信号４０８は、図４に示されたすべてのクロック制御ユニット（項目１１６、１１８および１２０）に関する様々な歩進処理稼動信号４０２の組み合わせである。歩進の実行が完了した時を判定するために、システム環境は歩進稼動信号４０８をモニタすることが可能である。この時点で、歩進制御論理をディスエーブルにするためにシステム環境はＳＴＥＰＰＩＮＧトリガ信号５１２を低レベルへと引き下げる。クロック制御ユニット内で歩進処理イネーブル信号５１６がディスエーブルにされるまでに同期の遅延がある。しかしながら、機能ブロック内のスキャン・チェーンの内部状態はデバッグ目的で迅速にスキャンされることが可能である。デバイスの内部状態はモニタされ終わる時間までに、クロック制御ユニットは次の歩進動作用に構成される準備を整えるであろう。
【００３４】
図８Ａおよび８Ｂは本発明の追加的な実施形態を各々例示しており、そこではデバッグ用コンピュータ・システム８０２が上述の様々な信号状態を入力として受け取り、ＳｏＣ１０２にやはり様々な入力を供給する。これらの信号はチェーン選択を除いて幅広いビットであり、その幅はシステム・オン・チップ内のスキャン・チェーンの数によって決まる。
【００３５】
図８Ａに例示されるように、もしもＳｏＣ１０２に適切な複数のピンが存在すれば、制御信号はシステム・オン・チップで専用のピンとして接続されることが可能である。そうではない場合、図８Ｂに例示されるように、ピン数を減らすために制御信号はＩＥＥＥ  １１４９．１  ＪＴＡＧタップ・コントローラ８０６のようなシリアル・テスト・インターフェースに接続されることが可能である。シリアル・テスト・インターフェースへの接続はよく知られている工業的実践法である。
【００３６】
本発明の追加的な実施形態では、デバッグ・システムは本出願の図３および７に描かれたタイミング図に例示されるデバッグ処理を制御するために使用される検査機器もしくはコンピュータを含む可能性がある。デバッグ・システム８０２は定期的にデバッグ準備完了信号３０４をモニタする。デバッグ準備完了信号３０４が稼動状態であると、デバッグ・システム８０２は事前に設定されたブレークポイント到達または外部デバッグ入力ピン１４２のトリガのいずれかに起因してＳｏＣ１０２がデバッグ・モードに入ったことを識別する。ＳｏＣ１０２の有効な内部状態の様子がデバッグ・システム８０２に読み取られた後、デバッグ・システムのソフトウェアがユーザにＳｏＣの次の実行状態にわたる制御を提供する。特に、デバッグ・システム８０２は信号４１０内のデバッグ・スキャンを通じてラン・カウンタ５０８とウェイト・カウンタ５０６を、所望の様式でＳｏＣ１０２を歩進および実行させるように適切な値に設定することが可能である。したがって歩進が生じると、有効な内部状態は再びデバッグ・システム８０２への入力として入手可能である。
【００３７】
デバッグ・システム内のソフトウェアはそのようにしてＳｏＣから得られる内部状態情報をユーザが効率的に処理することを可能にする。デバッグ・システムはユーザがＳｏＣのソフトウェア・モデルを同時に動作させることを可能にし、ＳｏＣの期待される動作とデバイスの実際の動作を比較することによってユーザがデバッグすることを可能にする。このソフトウェアはまたパターン検出性能も有し、それにより、視認可能なレジスタまたはこれらのレジスタのサブセットの内容が特定の状態を有する時をユーザが検出することを可能にする。デバッグ・システムは周期的間隔でＳｏＣの有効な状態を自動的にチェックし、これらのラン状態を期待される値と比較するようにプログラムされることが可能である。
【００３８】
上述の歩進はよく知られている標準的なプログラミング技術を使用して実行されることが可能である。上述の実施形態の新規性は特定のプログラミング技術にあるのではなく、上述の結果を達成するための上述の歩進の使用にある。クライアント／サーバ環境では、そのようなソフトウェア・プログラミング・コードはサーバに随伴する記憶装置で記憶される可能性がある。このソフトウェア・プログラミング・コードは、データ処理システムで使用するためにディスケット、またはハード・ドライブ、またはＣＤ＿ＲＯＭといった多様な知られている媒体のいずれでも具現化される可能性がある。コードはそのような媒体上に分配されることが可能であり、あるいは或る種のネットワーク上で或るコンピュータ・システムのメモリもしくは記憶装置から他のコンピュータ・システムへとユーザに分配され、それにより、そのような他のシステムのユーザによって使用されることが可能である。物理的媒体上でソフトウェア・プログラム・コードを具現化するため、および／またはネットワークを経由してソフトウェア・コードを分配するための技術および方法はよく知られており、ここでさらに検討されることはない。
【００３９】
本発明の以上の説明が単に範例の方式であり、添付の特許請求項に提示されるような本発明の範囲から逸脱することなく、変形例が当業者に明白であろうことは理解されるであろう。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施形態によるブレークポイント処理制御回路へのインターフェースを示すブロック図である。
【図２】本発明の実施形態によるブレークポイント処理制御論理を示すブロック図である。
【図３】本発明の実施形態によるＳｏＣのブレークポイント処理に関する範例のタイミング動作を例示する図である。
【図４】本発明の実施形態による歩進制御回路へのインターフェースを示すブロック図である。
【図５】本発明の実施形態による歩進制御論理を備えたクロック制御回路を示すブロック図である。
【図６】本発明の実施形態による１サイクルもしくはｎサイクル歩進をサポートするためのデバッグ制御回路を示すブロック図である。
【図７】本発明の実施形態によるＳｏＣの１サイクルもしくはｎサイクル歩進のための範例のタイミング動作を例示する図である。
【図８Ａ】本発明の実施形態によるデバッグ・システムへの範例のＩ／Ｏインターフェースを例示する図である。
【図８Ｂ】本発明の実施形態によるデバッグ・システムへの範例のＩ／Ｏインターフェースを例示する図である。
【図１】
2005196774.tif 000003
【図２】
2005196774.tif 000004
【図３】
2005196774.tif 000005
【図４】
2005196774.tif 000006
【図５】
2005196774.tif 000007
【図６】
2005196774.tif 000008
【図７】
2005196774.tif 000009
【図８Ａ】
2005196774.tif 000010
【図８Ｂ】
2005196774.tif 000011