(57)【要約】データ処理システム（１０）はデバッグユニット（１４）を含み、このデバッグユニット（１４）は、デバッグ動作のために必要に応じて複数のサブシステムのうちの全部または選択された一部の起動を制御することによって、データ処理システムの正常動作に対して過度でないデバッグ機能を提供することができる。例えば、デバッグ動作のために必要に応じて選択サブシステムを起動することによって電力を節約することができる。また、一実施態様においては、デバッグユニットは、非起動状態から全起動状態までの範囲で、起動レベルを選択サブシステムに与え、これにより、データ処理システムの更なる制御が行われる。一実施態様においては、デバッグ制御状態レジスタ（４０）が、デバッグユニットと複数のサブシステムの間の電力管理ハンドシェイキングのために設けられる。選択サブシステムがデバッグユニットに状態情報を提供することができるので、このハンドシェイキングを用いて確実にデバッグ動作が適切に進むようにすることができる。
2006516780.tif 000002
【特許請求の範囲】
【請求項１】
複数のサブシステムを有するデータ処理システムをデバッグ動作中に制御するための方法であって、
前記複数のサブシステムのうち、前記デバッグ動作中に起動されるべき選択サブシステムを選択するステップと、
前記データ処理システムの動作モードを変更することなく、前記複数のサブシステムの前記選択サブシステムの起動を制御するステップであって、その起動制御は、クロックの属性の変更および電力消費量の変更開始の少なくとも一方を含むステップと、
前記複数のサブシステムの前記選択サブシステムから起動状態情報を提供するステップと、
前記デバッグ動作を実行するステップとを備えることを特徴とする方法。
【請求項２】
前記複数のサブシステムの前記選択サブシステムの起動制御を解除するステップを更に備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記デバッグ動作を実行するために前記複数のサブシステムのいずれが前記選択サブシステムでなければならないかを決定するステップを更に備えることを特徴とする請求項１に記載の方法。
【請求項４】
複数のサブシステムと、デバッグ動作を実行するための手段とを備えたデータ処理システムであって、
前記デバッグ動作を実行するための手段は、
前記複数のサブシステムのいずれが前記デバッグ動作中に起動されるべきかを選択するための手段と、
前記デバッグ動作中に前記複数のサブシステムのそれぞれの起動を個別に制御するための手段とを備え、該データ処理システムの動作モードは起動によって不変であり、前記複数のサブシステムのそれぞれの起動を個別に制御するための手段は、前記複数のサブシステムの少なくとも一つに供給されるクロックの属性を変更するための手段、および前記複数のサブシステムの少なくとも一つの電力使用量を変更するための手段の少なくとも一方を含むことを特徴とするデータ処理システム。
【請求項５】
前記複数のサブシステムのそれぞれの起動を個別に制御するための手段は、前記複数のサブシステムの少なくとも一つに供給されるクロックの周波数を変更するための手段を含むことを特徴とする請求項４に記載のデータ処理システム。
【請求項６】
前記複数のサブシステムのそれぞれの起動を個別に制御するための手段は、前記複数のサブシステムのうちの前記デバッグ動作を実行するために必要とされるサブシステムのみを起動することを特徴とする請求項４に記載のデータ処理システム。
【請求項７】
前記起動を個別に制御するための手段は、前記複数のサブシステムのそれぞれを解除して、前記複数のサブシステムのそれぞれが前記デバッグ動作の開始前に有していた起動状態にすることを特徴とする請求項４に記載のデータ処理システム。
【請求項８】
第１サブシステムと、
第２サブシステムと、
デバッグ動作を実行するためのデバッグユニットとを備え、該デバッグ動作を実行するためのデバッグユニットは、
前記第１サブシステムに対するデバッグ動作のための電力属性およびクロック属性の少なくとも一方に対応する第１起動制御情報を記憶する第１制御レジスタフィールドと
、
前記第２サブシステムに対するデバッグ動作のための電力属性およびクロック属性の少なくとも一方に対応する第２起動制御情報を格納する第２制御レジスタフィールドと、
前記第１サブシステムに対するデバッグ動作のための第１起動状態情報を示す第１状態レジスタフィールドと、
前記第２サブシステムに対するデバッグ動作のための第２起動状態情報を示す第２状態レジスタフィールドとを備えることを特徴とするデータ処理システム。
【請求項９】
第１サブシステムと、
第２サブシステムと、
前記第１サブシステムに、デバッグ動作のための電力属性およびクロック属性の少なくとも一方に対応する第１起動制御情報を提供し、前記第２サブシステムに、デバッグ動作のための電力属性およびクロック属性の少なくとも一方に対応する第２起動制御情報を提供する回路とを備え、前記第１起動制御情報および第２起動制御情報は、前記第１サブシステムおよび前記第２サブシステムにおいて異なる応答を生成し、前記第１起動制御情報および第２起動制御情報は、当該データ処理システムに動作モードを変更することを要求しないことを特徴とするデータ処理システム。
【請求項１０】
第１サブシステムと、
第２サブシステムと、
前記第１サブシステムに、デバッグ動作のための電力属性およびクロック属性の少なくとも一方に対応する第１起動制御情報を提供し、前記第２サブシステムに、デバッグ動作のための電力属性およびクロック属性の少なくとも一方に対応する第２起動制御情報を提供する回路とを備え、前記回路は、前記第１起動制御情報を提供することに応答して第１起動状態情報を受け取り、前記第２起動制御情報を提供することに応答して第２起動状態情報を受け取り、前記第１起動状態情報は前記第１サブシステムの起動レベルを示し、前記第２起動状態情報は前記第２サブシステムの起動レベルを示すことを特徴とするデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデータ処理システムとデバッグに関し、より具体的には、デバッグの間のデータ処理システムの制御に関する。
【背景技術】
【０００２】
デバッグシステムは、システム構成部品のアクセスおよび認知を行うために、チップ上システム（システム・オン・チップ：ＳｏＣ）などの多くのデータ処理システムにおいて用いられている。従って、このデバッグシステムを用いてデータ処理システム内の欠陥を検出し、補正することができる。
【０００３】
しかしながら、現在入手可能な多くのデバッグシステムは、それがデータ処理システムのシステム状態に劇的に影響を及ぼすという点において過度であり、このことが、システムを正確にデバッグするための機能を低下させている。また、いくつかのデバッグシステムは、デバッグ動作を行うためにデータ処理システムのフルパワー起動を必要とする。しかしながら、このフルパワー起動の間、データ処理システムの一部分は、不必要に起動される可能性があるため、電力消費量を必要以上に増加させる。従って、あまり過度でなく、電力を意識したデバッグシステムに対する必要性が存在する。
【発明を実施するための最良の形態】
【０００４】
本発明は、添付図面によって例示的に示されており、添付図面によって制限されるものではない。添付図面において、同様な参照符号は同様な要素を示している。
図面内の要素は簡略化と明確化のために示されたものであって、必ずしも一定の縮尺で描かれていないことは当業者にとって明らかである。例えば、図面内の要素のいくつかの寸法は、本発明の実施態様の理解を良くするために、他の要素に比べて誇張することができる。
【０００５】
本書において使用されているように、用語「バス」は、一つまたはそれ以上のいろいろな種類の情報、例えば、データ、アドレス、制御、または状態を転送するために使用することができる複数の信号線または導体を呼ぶために使用されている。本書において述べられたような導体（または信号線）は、単一の導体、複数の導体、単方向性導体、または双方向性導体であるものとして説明することができる。しかしながら、種々の実施態様は導体の態様を変更することができる。例えば、双方向性導体よりもむしろ別々の単方向性導体を使用することができ、その逆も可能である。また、複数の導体を、多数の信号をシリアルにまたは時分割多重化方法によって転送する単一の導体で置き換えることができる。同様に、多数の信号を伝送する単一の導体を、これらの信号の一部を伝送する種々の異なる導体に分けることができる。従って、信号を転送するための多くの選択肢が存在する。
【０００６】
用語「アサート」または「設定」と、「ネゲート」（または「デアサート」もしくは「クリア」）は、信号、状態ビット、または同様な機構を、それぞれ、その論理的真状態または論理的偽状態にする場合に使用される。もし論理的真状態が論理レベル１ならば、論理的偽状態は論理レベル０である。もし論理的真状態が論理レベル０ならば、論理的偽状態は論理レベル１である。
【０００７】
図１は、本発明の一実施態様によるデータ処理システム１０を示す。データ処理システム１０は、プロセッサ１２、デバッグユニット１４、電力管理クロック制御回路１８、およびサブシステム２４〜２７を備えている。プロセッサ１２、デバッグユニット１４、電力管理クロック制御回路１８、およびサブシステム２４，２５は、バス２０を介して互い
に双方向に接続されている。また、デバッグユニット１４は、プロセッサ１２、サブシステム２４〜２７、および電力管理クロック制御回路１８との間で、デバッグ制御／状態信号２２を送受信する。電力管理クロック制御回路１８はサブシステム２４〜２７のそれぞれに、それぞれ双方向導体３０，３１，３２，３３を介して電力管理クロック／制御信号２８を供給する。プロセッサ１２はまた、導体３６を介して電力管理クロック制御回路１８と双方向に接続されている。
【０００８】
デバッグユニット１４はデータ処理システム１０をデバッグするための機能を備えている。デバッグユニット１４は、デバッグ動作のために必要に応じてサブシステム２４〜２７の全部または一部の起動レベルを制御することによって、データ処理システム１０の正常動作に対する過度でないデバッグ機能を備えることができる。従来のシステムとは異なり、本発明の実施態様は、データ処理システム１０の動作モードのいかなる変更も必要とすることなく、デバッグ中にサブシステム２４〜２７の起動レベルを制御することができる。これは、デバッグの間、より正確なデバッグを行うためには、データ処理システム１０に対する変更を最小にすることが所望されるため、望ましいことである。データ処理システムの動作モードの変更は、より不正確なデバッグ情報を生じる可能性がある。これは、データ処理システム１０は、その実際の適用においては、デバッグモードで動作しないためである。従って、より正確なデバッグ情報を得るために、データ処理システムは、デバッグの間、実際の応用において使用される動作モードとできるだけ同じモードで動作すべきである。
【０００９】
一実施態様においては、データ処理システム１０は、例えば、（無線応用におけるような）ハンドヘルド装置において使用可能な低電力ＳｏＣである。あるいは、データ処理システム１０は、図１に示されたような、多数のサブシステムを有する任意の種類のデータ処理システムであることができる。データ処理システム１０はサブシステム２４〜２７を含む。サブシステム２４，２５は、バス２０に接続可能であって、デバッグユニット１４との間でデバッグ制御状態信号を送受信することができる、複数のサブシステムのうちの二つのサブシステムである。サブシステム２６，２７は、バス２０に接続可能ではないが、それでもなおデバッグユニットとの間でデバッグ制御状態信号を送受信することができる、複数のサブシステムのうちの二つのサブシステムである。４つのサブシステムのみが示されているが、データ処理システム１０は、任意の数（１またはゼロを含む）のサブシステム２４，２５のようなサブシステムと、任意の数（１またはゼロを含む）のサブシステム２６，２７のようなサブシステムとを含むことができる。
【００１０】
一般に、サブシステム２４〜２７のそれぞれはデータ処理システム１０の一部分である。これらのサブシステム２４〜２７のそれぞれは、異なるクロックドメインとパワードメインとを有することができ、これらの範囲内において、クロックおよび電力供給の少なくともいずれか（および他の属性またはそのいずれか）を、例えば、全システム電力消費量を低減するために、別々に制御することができる。これらのサブシステムのいくつかはまた、クロックドメインまたはパワードメインを共有できることに注目すべきである。これらのサブシステムのそれぞれは、従って、データ処理システム１０のさまざまな部分、例えば、他の制御装置、周辺装置、入出力（Ｉ／Ｏ）装置、Ｉ／Ｏインターフェース、ディジタル信号プロセッサ（ＤＳＰ）などの他のプロセッサ、等を含むことができる。従って、データ処理システム１０は、種々の異なるタイプの主要装置および従属装置を含むと共に、さまざまなサブシステムにグループ化され得、それらのサブシステムまたはこれらのサブシステムの一部分は重複することができる。また、プロセッサ１２、デバッグユニット１４、および電力管理クロック制御回路１８のそれぞれは、サブシステムとみなされ得るか、またはサブシステムの一部分として含まれ得る。また、ほかの実施態様においては、データ処理システム１０を異なるように構成することができる。例えば、デバッグユニット１４はプロセッサ１２または電力管理クロック制御回路１８内に位置してもよい。電
力管理クロック制御回路１８は、プロセッサ１２内に位置してもよいし、あるいはプロセッサ１２もしくはサブシステム２４〜２７のいくつかまたはすべての間に分散していてもよい。また、デバッグユニット１４の一部または全部がデータ処理システムの外部に（例えば、チップの外に）位置してもよい。従って、明らかなように、種々の異なる方法で、データ処理システム１０を、設計し、さまざまなサブシステムに分割することができる。
【００１１】
データ処理システムの正規の動作（デバッグ以外の動作）は、この技術において一般に知られているように機能することができ、従って、図１〜３の説明をより良く理解するのに必要な程度までしか説明されないであろうことに留意されたい。また、図１に示されたブロックを種々の異なる方法で配置することができ、いくつかの部分はデータ処理システム１０の外部に位置していてもよいことにも留意されたい。また、例えばデバッグ１４および電力管理クロック制御回路１８などの、図１に示されたブロックのそれぞれを、ソフトウェア、ハードウェア、ファームウェア、またはその何らかの組み合わせで実現することができる。
【００１２】
上記のように、サブシステム２４〜２７は種々の異なる方法で制御することができる。例えば、サブシステム２４〜２７のそれぞれは、それらのクロックをゲートオフするか、またはディスエーブルにすることによって、電源電圧を下げるか取り除くことによって、またはそれらのクロックの周波数を変更することによって、別々に電力供給を停止され得る。即ち、種々の異なるサブシステム属性（例えば、クロック属性、電力属性、または電力使用量）を種々の方法で別々に制御することができる。従って、電力管理クロック制御回路１８を使って、制御信号をサブシステムのそれぞれに供給して、これらの機能または属性のいずれかを制御するか、または実際のクロック信号をこれらのサブシステムのいずれかに供給することができる。従って、電力管理クロック／制御信号２８は、サブシステム２４〜２７の（以下に述べるような）電力管理と起動制御のために必要とされる、制御信号、クロック、または何らかの別の種類の情報を含むことができる。
【００１３】
サブシステムの起動レベルは種々の異なる方法で制御することができる。一実施態様においては、各サブシステムは、二つの可能な起動レベル、即ち、起動状態と非起動状態（または非活動状態）のみを有することができる。この実施態様においては、サブシステムを起動することは、そのクロックをイネーブルにすること、クロック周波数を増大させること、または、サブシステムに電源電圧を供給することを示し得る。サブシステムを非起動状態にすることは、クロックをゲートオフするかディスエーブルすること、電源電圧を完全に取り除くこと、または、クロック周波数を減らすことを示し得る。あるいは、各サブシステムはより多くの起動レベルを有することができる。例えば、サブシステムの起動レベルの制御は、特定の電源電圧を供給すること、特定のクロック周波数を供給すること、あるいは、サブシステムを、全電力モード、減電力モード、低電力モード、または、任意の他の動作モードにすることを含むことができる。従って、デバッグユニット１４の種々の異なる実施態様は、さまざまな起動制御を行うことができる。
【００１４】
一実施態様においては、デバッグユニット１４はデバッグレジスタ１６を含む。このデバッグレジスタ１６は、図２に示すように、デバッグ制御レジスタ４０とデバッグ状態レジスタ４６とを含む。これらのレジスタは、デバッグユニット１４とサブシステム２４〜２７との間の電力管理ハンドシェイキングを行う。デバッグ制御レジスタ４０は、デバッグ動作のための選択されたサブシステム（以下、「選択サブシステム」とする）の起動を制御するために使用される。デバッグ状態レジスタ４６は、サブシステム２４〜２７の状態を示すために使用される。デバッグユニット１４は更に、該デバックユニットが選択サブシステムに関わるデバッグ動作をいつまで続ける得るのかを確かめるために、状態情報を使用することができる。また、別の実施態様においては、デバッグレジスタ１６は、必要に応じて任意の数のレジスタを含むことができ、データ処理システム１０内のどこにで
も含まれることができることに注目すべきである。
【００１５】
図２に示すように、デバッグ制御レジスタ４０は、それぞれ各サブシステム２４〜２７に対応するフィールド４２〜４５を含んでいる。従って、サブシステム２４活性フィールド４２はサブシステム２４に対応し、サブシステム２５活性フィールド４３はサブシステム２５に対応し、サブシステム２６活性フィールド４４はサブシステム２６に対応し、サブシステム２７活性フィールド４５はサブシステム２７に対応している。各起動フィールド４２〜４５は単一ビット値であることができ、ビットの一方の状態は、対応するサブシステムが起動されるべきであることを示し、ビットの他方の状態は、対応するサブシステムが、すでに起動されていなければ、起動されるべきでないことを示す（あるいは、対応するサブシステムが非起動状態にされるべきあることを示す）。あるいは、各起動フィールドは、対応するサブシステムに起動レベルを与えるｎビット値であることができる。例えば、各サブシステムに、例えば非起動状態から部分起動状態や全起動状態までの範囲で最大４つの異なる起動レベルを与える２ビット値を使用することができる。あるいは、１ビット値を使って起動レベルの所定の増減を示すことができる。また、各起動フィールドが、サブシステムの異なる属性に対応することができることに留意されたい。例えば、サブシステム２４起動フィールド４２を使用して、一つの種類のクロック属性を制御することができ、サブシステム２５起動フィールド４３を使用して、異なる種類のクロック属性、電力属性、または任意の種類のサブシステム属性を制御することができる。また、別の実施態様においては、複数のサブシステムが一つのデバッグ起動フィールドを共用することができる。
【００１６】
更に図２を参照すると、デバッグ状態レジスタ４６は、各サブシステム２４〜２７にそれぞれ対応するフィールド４７〜５０を含んでいる。従って、サブシステム２４状態フィールド４７はサブシステム２４に対応し、サブシステム２５状態フィールド４８はサブシステム２５に対応し、サブシステム２６状態フィールド４９はサブシステム２６に対応し、サブシステム２７状態フィールド５０はサブシステム２７に対応している。各状態フィールド４７〜５０は単一ビット値であることができ、ビットの一状態は、対応するサブシステムが活性状態にあることを示し、ビットの他の状態は、対応するサブシステムが非活性状態にあることを示す。あるいは、各状態フィールドは、対応するサブシステムの現在の起動レベルを示すｎビット値であることができる。また、別の実施態様においては、さまざまなサブシステムが一つのデバッグ状態フィールドを共有することができる。あるいは、いくつかのサブシステムは、それらが状態情報をデバッグユニット１４に伝達する必要がなくてよいために、デバッグ状態フィールドを全く必要としなくてもよい。
【００１７】
図３は、デバッグ動作中にデータ処理システム１０を制御する方法を示すフロー６０を含んでいる。フロー６０は開始６２で始まり、ブロック６４へ進み、デバッグ動作が開始される。フローはそれからブロック６６へ進み、デバッグユニット１４が、どのサブシステムがデバッグ動作中に使用されるべきかを決定する。一実施態様においては、デバッグユニット１４はこの情報を決定するためにルックアップテーブルを使用し、このルックアップテーブルは、デバッグ動作と、各デバッグ動作に必要な対応するサブシステムのリストを含んでいる。また、特定のデバッグ動作を実行するために、どのサブシステムを使用すべきかを決定するステップは、各サブシステムに対してどの起動レベルを必要とするかを決定するステップを含むこともできることに留意されたい。例えば、別の実施態様においては、ルックアップテーブルの中の各デバッグ動作に対して、対応するデバッグ情報のために各必要サブシステムに対する起動レベルを格納することができる。これらの起動レベル値は、従って、デバッグ制御レジスタ４０に格納されるべき値に相当することができる。従って、このようにして、さまざまなサブシステムが、実行される特定のデバッグ動作によって決まるさまざまな起動レベル（その中でさまざまな属性を制御することができる）を有することができる。あるいは、ルックアップテーブル以外のシステムか、ルック
アップテーブルに付加された他のシステムを使用して、どのサブシステムが使用されるべきかを決定することができる。例えば、インテリジェントソフトウェアによる決定または状態マシーンに基づく方法を用いることができる。
【００１８】
デバッグユニット１４は、ルックアップテーブル（または、適切な起動レベルを選択サブシステムに供給する他のシステム）からの情報を用いて、適切な値をデバッグ制御レジスタ４０に書き込む。即ち、各選択サブシステムに対して、適切な起動レベルに対応する適切な値が、対応する起動フィールドに格納される。例えば、各デバッグ動作に対して必要サブシステムを提供するルックアップテーブルを前記決定方法が使用する上記実施態様においては、必要サブシステムを起動するために必要サブシステムに対応した（デバッグ制御レジスタ４０内の）各起動フィールドに同じ所定値を書き込むことができる。あるいは、前記リストがまた各必要サブシステムに対して起動レベル値を提供するならば、これらの値はデバッグ制御レジスタ４０に書き込むことができる。（一実施態様においては、非選択サブシステムに対応するすべての残りの起動フィールドは現在のデバッグ動作に対して影響を受けないままであることに留意されたい。あるいは、その起動フィールドをクリアするか、またはその起動フィールドに所定値に書き込むことができる）。
【００１９】
フローはそれからブロック６８へ進み、選択サブシステムの起動を制御する。一実施態様においては、デバッグ制御レジスタ４０内の値が電力管理クロック制御回路１８に供給されるので、適切な制御信号またはクロック信号を適切なサブシステムに供給して、デバッグ制御レジスタ４０に従って望ましい起動レベルを達成することができる。あるいは、デバッグユニット１４は、電力管理クロック制御回路１８に値を送ることに加えて、または、その代わりに、デバッグ制御レジスタ４０の起動フィールド内に格納されている値を各対応するサブシステムに直接供給することができる。
【００２０】
一実施態様においては、デバッグユニット１４を使用して、デバッグ動作中に使用されるべきサブシステムだけを起動することができることに留意されたい。あるいは、デバッグユニット１４は、より多くのサブシステムを起動することができるか、あるいはまた、すべてのサブシステムを非起動状態にするか、すべてのサブシステムの起動レベルを変更することができる。いくつかの場合においては、デバッグ動作のために選択サブシステムに供給される起動レベルは、選択サブシステムの現在の起動レベルと同じであることができ、このことは起動レベルの変更が必要とされないことを意味することに留意されたい。これに代わって、デバッグ動作のために選択サブシステムに供給される起動レベルが現在の起動レベルよりも低い場合、いくつかの実施態様はこの状態における起動レベルを変更しないことを選択し得る。
【００２１】
上記のように、デバッグユニット１４は種々の異なる方法で実現することができ、一例においては、一部分はデータ処理システム１０の外側および内側の双方に置かれる。一例においては、ブロック６６の決定を、データ処理システム１０の外部に位置するハードウェアまたはソフトウェア（例えば、オフチップのハードウェアまたはソフトウェア）で行い、その後その結果をデータ処理システム１０内のハードウェア（例えば、デバッグ制御レジスタ４０）に書き込むことができる。この方法においては、任意のルックアップテーブルまたはソフトウェア決定方法は、データ処理システム１０の外部に格納され得る。
【００２２】
フローはそれからブロック７０に進み、選択サブシステムからの状態情報が受け取られる。デバッグユニット１４から（と電力管理クロック制御回路からまたはそのいずれかから）の起動制御情報を受け取った選択サブシステムのそれぞれは、起動状態情報を与えるデバッグ状態信号を（デバッグ制御／状態信号２２により）デバッグユニット１４に供給する。これに代わって、各選択サブシステムは、デバッグ状態信号を、デバッグユニット１４に直接供給する代わりに、あるいは、直接供給することに加えて、電源管理クロック
制御回路１８に供給することができる。必要により、電源管理クロック制御回路１８はそれからデバッグ状態情報をデバッグユニット１４に提供することができる。デバッグ状態信号は、デバッグ状態レジスタ４６の対応する状態フィールドに格納されるか、さもなければ、そのフィールド内の値として反映される状態値を与える。このようにして、デバッグユニット１４は選択サブシステムの起動レベルを認識することができる。一実施態様においては、デバッグユニット１４はデバッグ状態レジスタ４６をポーリングして、選択サブシステムの起動レベルを決定することができる。これに代わって、デバッグユニット１４は、伝達の遅延を許容するために、デバッグ状態レジスタ４６を読み取る前に所定時間だけ待機してもよい。
【００２３】
状態情報を受け取ると、フローはブロック７２へ進む。ブロック７２では、適切な起動レベルに設定された適切なサブシステムと共にデバッグ動作が実行される。一実施態様においては、状態情報は、対応するサブシステムが、現在、正しい起動レベルで動作していることを示すことに留意されたい。しかしながら、別の実施態様においては、状態情報は、対応するサブシステムが正しい起動レベルに入る過程にあることを示すことができる。この実施態様においては、確実にサブシステムが適切な起動レベルにあるようにするために、デバッグユニット１４はデバッグ動作を実行する前に所定時間待機し得る。また、デバッグユニット１４はデバッグ状態レジスタ４６内の情報を用いて、選択サブシステムのいずれかが正しい起動レベルに入るのに失敗したかを判定することができる。また、データ処理システム１０の内部または外部に位置するソフトウェアは、状態情報をデバッグ状態レジスタ４６から読み取り、その結果を予想結果と比較して、起動制御の適切な動作を決定するのを助けることができる。
【００２４】
デバッグ動作が終了した後、フローはブロック７４へ進む。ブロック７４では、デバッグユニット１４が選択サブシステムの起動制御を解除する。一実施態様においては、起動制御の解除と同時に、選択サブシステムは、デバッグ動作前の該選択サブシステムの起動レベルに戻る。例えば、特定の選択サブシステムがデバッグ動作の前に低電力モードにあったが、（例えば、電源が供給されるか、そのクロックがイネーブルにされることによって）デバッグ動作のために起動されなければならなかった場合、その特定の選択サブシステムは、デバッグユニット１４による起動制御の解除と同時に、自動的に低電力モードに戻る。一実施態様においては、デバッグユニット１４は、デバッグ制御レジスタ４０内の対応フィールドをクリアにすることによって起動制御を解除する。別の実施態様においては、デバッグユニット１４は、デバッグ制御レジスタ４０内の対応フィールドに所定値を格納させることによって起動を解除する。あるいは、起動制御の解除と同時に、選択サブシステムはデフォルトモードまたはデフォルト起動レベルに戻ることができる。フローはそれからブロック７６において終了する。
【００２５】
別の実施態様においてはブロック７０，７４は任意で行われることに留意されたい。例えば、一実施態様においては、ブロック７０は存在せず、デバッグユニット１４は選択サブシステムから状態情報に関してフィードバックを受け取らない。この実施態様においては、ブロック６８において起動を制御した後、デバッグユニット１４は、ブロック７２においてデバッグ動作を実行する前に、所定時間待機することができる。同様に、ブロック７４は、デバッグ回路１４が起動制御を積極的に解除する必要がないという点において、オプションである。例えば、デバッグ動作を終えると同時に他の方法を用いて起動制御を解除または扱うことができる。
【００２６】
制御情報および状態情報をハンドシェイキングするステップを含むフロー６０における閉ループ動作が、いかに、デバッグ動作が適切に進行し得ることを保証するかは明らかである。これは、必要サブシステムはデバッグコマンド発行前にアクティブであると知られているためである。また、データ処理システム全体に電力を供給する必要のない低電力モ
ードの間のデバッグ動作に対して必要に応じてサブシステムの一部だけを起動することによって、電力を節約することができる。また、上記のように、フロー６０はデータ処理システム１０の動作モードの変更を必要としない。即ち、サブシステム起動制御の使用を通じて、本書に述べられた実施態様は、データ処理システムの動作モードの変更を必要としないデバッグ機能を提供し、デバッグの間の電力消費量を低減するための機能を提供するので、改善されたより正確なデバッグを達成することができる。
【００２７】
前述の仕様においては、本発明を特定の実施態様に関して説明した。しかしながら、特許請求の範囲に述べたような本発明の範囲から逸脱することなく種々の変更を行うことができることは当業者にとって明らかである。例えば、ブロック図は、図示されたものとは異なるブロックを有してもよく、より多いまたは少ないブロックを有してもよく、異なるように配置されてもよい。また、フローチャートはまた、異なるように配置されるか、異なるように配置されたより多いまたは少ないステップを含んでもよく、複数のステップに分けることができるステップまたは互いに同時に実行可能なステップを有してもよい。従って、本仕様書と図面は制限的というよりも説明的なものと見なされるべきものであって、すべてのそのような変更は、本発明の範囲内に含まれるものである。
【００２８】
利点と問題に対する解決策とを特定の実施態様に関して上に説明した。しかしながら、利点と、問題に対する解決策と、すべての利点または解決策を生じさせるか一層明確にすることができるすべての要素は、いくつかのまたはすべての特許請求の範囲の重要な、必要な、または本質的な特徴または要素と解釈されるべきではない。本書で用いられたように、用語「備えた」、「からなる」、またはそのすべての変形は、非排他的包含をカバーするものではないので、多くの要素からなる、プロセス、方法、物品、または装置は、それらの要素だけを含むものではなく、明確に列挙されていないか、そのようなプロセス、方法、物品、または装置に固有の他の要素を含むことができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施態様によるデータ処理システムのブロック図。
【図２】本発明の一実施態様による図１のデータ処理システムのデバッグ制御レジスタと状態レジスタを示す図。
【図３】本発明の一実施態様による、デバッグの間図１のデータ処理システムを制御する方法のフローチャート。
【図１】
2006516780.tif 000003
【図２】
2006516780.tif 000004
【図３】
2006516780.tif 000005
【国際調査報告】
2006516780.tif 000006
2006516780.tif 000007