(57)【特許請求の範囲】
【請求項１】
低電力モード状態から復帰した際のデバッグを実行可能にするデバイスであって、
命令を処理し、当該デバイスの処理機能を実行する第１の素子群と、
当該デバイスのデバッグ処理を促し、電力供給を受けている間に１つ以上の現在のデバッグ状態を記憶する第２の素子群と、
電力管理モジュール（ＰＭＭ）と
を有し、前記ＰＭＭが有するＰＭＭ論理部は、
前記第１の素子群及び前記第２の素子群から電力が除去される低電力モード状態からの当該デバイスの復帰をアクティブにする入力を受信したことに応答して、当該デバイスが移行していた低電力モードのタイプを判別し、
前記第２の素子群の前記現在のデバッグ状態が失われる第１タイプの低電力モードから当該デバイスが復帰したことに応答して、前記第２の素子群が各自の現在のデバッグ状態に再構築されるまで、前記第１の素子群のうちの１つ以上が処理を再開することを禁止し、
前記ＰＭＭ論理部は、当該デバイスが前記低電力モードに移行したことを検出し、当該デバイスが前記低電力モードに移行したことの検出に応じて、前記第１の素子群に対するリセット信号を自動的にアサートし、当該デバイスが前記第１タイプの低電力モードから復帰したことに応じて、前記リセット信号をアサートし続け、前記リセット信号のアサートがもはや不要であることを示す入力を受信し、前記リセット信号のアサートがもはや不要であることを示す入力を受信したことに応じて、前記リセット信号を自動的にネゲートし、前記第１の素子群が処理を再開できるようにする、デバイス。
【請求項２】
前記ＰＭＭは、前記第２の素子群に対する電力供給とは別個独立に、前記第１の素子群に電力を緻密に供給する電力割当手段を有し、
前記ＰＭＭ論理部は、
前記第１タイプの低電力モードからの復帰に応答して、前記第２の素子群に対する電力を速やかに供給し、
前記第２の素子群が各自の現在のデバッグ状態に再構築されたことを示す入力を受信するまで、前記第１の素子群に対する電力の供給を遅延させる、請求項１記載のデバイス。  
【請求項３】
前記ＰＭＭ論理部が、前記第２の素子群が各自の現在のデバッグ状態に再構築されるまで、前記第１の素子群の１つ以上が処理を再開することを禁止する際に、前記ＰＭＭ論理部が、前記第１の素子群の１つ以上に対するクロックサイクルの割り当てを控える、請求項１記載のデバイス。
【請求項４】
低電力モード状態から復帰した際のデバッグを実行可能にするデバイスであって、
命令を処理し、当該デバイスの処理機能を実行する第１の素子群と、
当該デバイスのデバッグ処理を促し、電力供給を受けている間に１つ以上の現在のデバッグ状態を記憶する第２の素子群と、
電力管理モジュール（ＰＭＭ）と
を有し、前記ＰＭＭが有するＰＭＭ論理部は、
前記第１の素子群及び前記第２の素子群から電力が除去される低電力モード状態からの当該デバイスの復帰をアクティブにする入力を受信したことに応答して、当該デバイスが移行していた低電力モードのタイプを判別し、
前記第２の素子群の前記現在のデバッグ状態が失われる第１タイプの低電力モードから当該デバイスが復帰したことに応答して、前記第２の素子群が各自の現在のデバッグ状態に再構築されるまで、前記第１の素子群のうちの１つ以上が処理を再開することを禁止し、
当該デバイスは、
第１の値に設定可能な第１エントリであって、低電力モードに移行して復帰する当該デバイスのデバッグが実行されるべきことを示す第１エントリと、
第２の値に設定可能な第２エントリであって、前記第１の素子群の１つ以上が処理を開始できることを前記ＰＭＭ論理部に示す第２エントリと
を有する１つ以上の制御及び状態（ＣＳ）レジスタを有する、デバイス。
【請求項５】
前記ＰＭＭ論理部が、
当該デバイスが前記低電力モードに移行することを検出し、
当該デバイスが前記低電力モードに移行したことの検出に応答して、前記第１の素子群に対するリセット信号を自動的にアサートし、
当該デバイスが前記第１タイプの低電力モードから復帰する場合に、前記リセット信号をアサートし続け、
前記リセット信号のアサートがもはや不要であることを示す入力を受信し、
前記リセット信号のアサートがもはや不要であることを示す入力を受信したことに応じて、前記リセット信号を自動的にネゲートし、前記第１の素子群が処理を再開できるようにする、請求項４記載のデバイス。
【請求項６】
前記１つ以上のＣＳレジスタが、
前記ＰＭＭ論理部により第３の値に設定可能な第３エントリであって、前記低電力モードが第１タイプの低電力モードであったことを示す第３エントリと
前記ＰＭＭ論理部により第４の値に設定可能な第４エントリであって、前記低電力モードが第２タイプの低電力モードであったことを示す第４エントリと
を有する、請求項４記載のデバイス。
【請求項７】
前記１つ以上のＣＳレジスタが前記ＰＭＭ内に設けられ、
前記第１エントリの値がデバッガからの信号の受信によりセット又はリセットされ、
前記第２エントリの値は、前記デバッガからの信号の受信によりセットされ、前記第１の素子群の処理の再開の後に前記ＰＭＭ論理部及び前記デバッガの内の一方によりリセットされる、請求項６記載のデバイス。
【請求項８】
前記１つ以上のＣＳレジスタが１つ以上の信号線を介して前記ＰＭＭに結合されており、
前記ＰＭＭはラッチを有し、前記ＰＭＭ論理部は、
当該デバイスが前記低電力モードに移行したことの検出に応じて、前記ラッチを前記ＣＳレジスタの第１エントリの現在値にラッチし、
当該デバイスが前記低電力モードから復帰したことに応じて、前記ラッチに保存されているラッチ値を検査し、
前記ラッチ値が第１の値であった場合、前記第１の素子群に対するリセット信号のネゲートを控え、前記第１の素子群が処理状態に入ることを可能にし、
前記１つ以上のＣＳレジスタの第２エントリの現在値を検出し、
前記第２エントリに関する現在値が第２の値であった場合、前記第１の素子群に対する前記リセット信号をネゲートする、請求項６記載のデバイス。
【請求項９】
低電力モード状態から復帰した際のデバッグを実行可能にするデバイスであって、
命令を処理し、当該デバイスの処理機能を実行する第１の素子群と、
当該デバイスのデバッグ処理を促し、電力供給を受けている間に１つ以上の現在のデバッグ状態を記憶する第２の素子群と、
電力管理モジュール（ＰＭＭ）と
を有し、前記ＰＭＭが有するＰＭＭ論理部は、
前記第１の素子群及び前記第２の素子群から電力が除去される低電力モード状態からの当該デバイスの復帰をアクティブにする入力を受信したことに応答して、当該デバイスが移行していた低電力モードのタイプを判別し、
前記第２の素子群の前記現在のデバッグ状態が失われる第１タイプの低電力モードから当該デバイスが復帰したことに応答して、前記第２の素子群が各自の現在のデバッグ状態に再構築されるまで、前記第１の素子群のうちの１つ以上が処理を再開することを禁止し、
当該デバイスは、
当該デバイスに供給する電力を受ける電力供給接続部と、
当該デバイスが低電力モードから復帰してデバッグを実行可能にする複数のエントリを有する１つ以上の制御及び状態（ＣＳ）レジスタと、
外部デバッガと当該デバイスとの通信を可能にする通信インタフェースと
を更に有し、前記外部デバッガは、前記第２の素子群及び１つ以上のＣＳレジスタに通信可能に結合され、前記第２の素子群とデバッグ情報を通信し、前記ＣＳレジスタの１つ以上のエントリの値を設定し、前記ＣＳレジスタの１つ以上のエントリから１つ以上の値を受信し、当該デバイスが第１タイプの低電力モードに移行する前に存在していたその時点現在のデバッグ状態に、前記第２の素子群の状態を戻す、デバイス。
【請求項１０】
低電力モード状態から復帰した際のデバッグを実行可能にするデバイスであって、
命令を処理し、当該デバイスの処理機能を実行する第１の素子群と、
当該デバイスのデバッグ処理を促し、電力供給を受けている間に１つ以上の現在のデバッグ状態を記憶する第２の素子群と、
電力管理モジュール（ＰＭＭ）と
を有し、前記ＰＭＭが有するＰＭＭ論理部は、
前記第１の素子群及び前記第２の素子群から電力が除去される低電力モード状態からの当該デバイスの復帰をアクティブにする入力を受信したことに応答して、当該デバイスが移行していた低電力モードのタイプを判別し、
前記第２の素子群の前記現在のデバッグ状態が失われる第１タイプの低電力モードから当該デバイスが復帰したことに応答して、前記第２の素子群が各自の現在のデバッグ状態に再構築されるまで、前記第１の素子群のうちの１つ以上が処理を再開することを禁止し、
前記ＰＭＭ論理部は、
当該デバイスが移行していた低電力モードが、前記第２の素子群中の１つ以上のデバッグ素子の復元を必要とし、当該デバイスのデバッグ処理のシームレスな再開を可能にし、前記低電力モードから前記デバイスが復帰した際のデバッグデータを取得する第１タイプの低電力モードであったか否かを判定し、
前記低電力モードが前記第１タイプの低電力モードであった場合、前記低電力モードが前記第１タイプの低電力モードであり、当該デバイスのリセットのネゲートのホールドにトリガを与えるように、制御及び状態（ＣＳ）レジスタの第３エントリの値を自動的に設定し、
前記リセットの前記ネゲートの前記ホールドは、前記リセットが前記ＰＭＭ論理部によりネゲートされる前に、外部デバッガが前記１つ以上のデバッグ素子を先に復元できるようにする、デバイス。
【請求項１１】
前記ＰＭＭ論理部は、当該デバイスが前記低電力モードに移行したことを検出し、当該デバイスが前記低電力モードに移行したことの検出に応じて、前記第１の素子群に対するリセット信号を自動的にアサートし、当該デバイスが前記第１タイプの低電力モードから復帰したことに応じて、前記リセット信号をアサートし続け、前記リセット信号のアサートがもはや不要であることを示す入力を受信し、前記リセット信号のアサートがもはや不要であることを示す入力を受信したことに応じて、前記リセット信号を自動的にネゲートし、前記第１の素子群が処理を再開できるようにする、請求項９に記載のデバイス。
【請求項１２】
前記ＰＭＭ論理部は、当該デバイスが前記低電力モードに移行したことを検出し、当該デバイスが前記低電力モードに移行したことの検出に応じて、前記第１の素子群に対するリセット信号を自動的にアサートし、当該デバイスが前記第１タイプの低電力モードから復帰したことに応じて、前記リセット信号をアサートし続け、前記リセット信号のアサートがもはや不要であることを示す入力を受信し、前記リセット信号のアサートがもはや不要であることを示す入力を受信したことに応じて、前記リセット信号を自動的にネゲートし、前記第１の素子群が処理を再開できるようにする、請求項１０に記載のデバイス。
【請求項１３】
第１の値に設定可能な第１エントリであって、低電力モードに移行して復帰する当該デバイスのデバッグが実行されるべきことを示す第１エントリと、
第２の値に設定可能な第２エントリであって、前記第１の素子群の１つ以上が処理を開始できることを前記ＰＭＭ論理部に示す第２エントリと
を有する１つ以上の制御及び状態（ＣＳ）レジスタを有する請求項９に記載のデバイス。
【請求項１４】
第１の値に設定可能な第１エントリであって、低電力モードに移行して復帰する当該デバイスのデバッグが実行されるべきことを示す第１エントリと、
第２の値に設定可能な第２エントリであって、前記第１の素子群の１つ以上が処理を開始できることを前記ＰＭＭ論理部に示す第２エントリと
を有する１つ以上の制御及び状態（ＣＳ）レジスタを有する請求項１０に記載のデバイス。
【請求項１５】
前記ＰＭＭ論理部は、
当該デバイスが移行していた低電力モードが、前記第２の素子群中の１つ以上のデバッグ素子の復元を必要とし、当該デバイスのデバッグ処理のシームレスな再開を可能にし、前記低電力モードから前記デバイスが復帰した際のデバッグデータを取得する第１タイプの低電力モードであったか否かを判定し、
前記低電力モードが前記第１タイプの低電力モードであった場合、前記低電力モードが前記第１タイプの低電力モードであり、当該デバイスのリセットのネゲートのホールドにトリガを与えるように、制御及び状態（ＣＳ）レジスタの第３エントリの値を自動的に設定し、
前記リセットの前記ネゲートの前記ホールドは、前記リセットが前記ＰＭＭ論理部によりネゲートされる前に、外部デバッガが前記１つ以上のデバッグ素子を先に復元できるようにする、請求項９に記載のデバイス。
【請求項１６】
当該デバイスに供給する電力を受ける電力供給接続部と、
外部デバッガと当該デバイスとの通信を可能にする通信インタフェースと
を更に有し、前記外部デバッガは、前記第２の素子群と当該デバイスが低電力モードから復帰してデバッグを実行可能にする複数のエントリを有する１つ以上のＣＳレジスタとに通信可能に結合され、前記第２の素子群とデバッグ情報を通信し、前記ＣＳレジスタの１つ以上のエントリの値を設定し、前記ＣＳレジスタの１つ以上のエントリから１つ以上の値を受信し、当該デバイスが第１タイプの低電力モードに移行する前に存在していたその時点現在のデバッグ状態に、前記第２の素子群の状態を戻す、請求項１０に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される発明は一般にデバッグするシステム及び処理に関連し、特に異なる電力モードで動作することが可能なデバイスのデバッグに関連する。特に、開示される発明は、デバイスが低電力モードに出入りする場合におけるデバイスのデバッグに関連する。
【背景技術】
【０００２】
多くの電子装置は1つ以上の条件の下で低電力モードに入るように設計されている。これらの低電力モードへの移行はデバイスのコア処理部により開始され(トリガを受け)、コア処理部は、デバイスの電力管理モジュール(PMM)が、コア処理部及び他の機能部及び/又はサブデバイスに与える電力をなくす及び/又は減らすことを引き起こす。デバイスが後に電力が供給された状態に戻る又は低電力モードから出る場合に、コア処理部及び他の機能部は、低電力モードに入る以前に存在した状態の恩恵を享受することなく、処理を再開する。
【０００３】
(デバッグプロセスを実行するマシン又はコンピュータに外部接続される)これらのデバイスにおける標準的なデバッグ処理の間に、デバイスが低電力モードに入ると、デバッグのセッションにおける不具合(クラッシュ(crush))を生じさせるおそれがある。また、デバッガが、デバッグ処理を中断し、デバイスが低電力モードから復帰したことをデバッガが検出した場合にデバイスにおけるデバッグ処理を再開できる程度にロバスト的(robust)であった場合でも(すなわち、デバイスとの接続の切断/不具合に起因してクラッシュしないほど堅牢であった場合でも)、ディレー時間の間に重要なデバッグ情報は失われ、プロセッサコアはデバイスで実行する処理を再開し、デバッガはデバイスが低電力モードから復帰したことを示す信号を受信する。更に、デバイスが低電力モードに入りその後にそこから出ることにデバッガが対処でき及び/又はデバッグできるようにする手段は存在しない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の課題は、デバイスが低電力モードに移行してそこから通常モードに復帰する場合において重要なデバッグ情報が失われてしまう問題に対処できる装置及び方法を提供することである。
【課題を解決するための手段】
【０００５】
一実施形態によるデバイスは、
低電力モード状態から復帰した際のデバッグを実行可能にするデバイスであって、
命令を処理し、当該デバイスの処理機能を実行する第1の素子群と、
当該デバイスのデバッグ処理を促し、電力供給を受けている間1つ以上の現在のデバッグ状態を記憶する第2の素子群と、
電力管理モジュール(PMM)と
を有し、前記PMMが有するPMM論理部は、
前記第1の素子群及び前記第2の素子群から電力が除去される低電力モード状態からの当該デバイスの復帰をアクティブにする入力を受信したことに応答して、当該デバイスが移行していた低電力モードのタイプを判別し、
前記第2の素子群の前記現在のデバッグ状態は失われる第1タイプの低電力モードから当該デバイスが復帰する場合、前記第2の素子群が各自の現在のデバッグ状態に再構築されるまで、前記第1の素子群の1つ以上が処理を再開することを禁止する、デバイスである。
【図面の簡単な説明】
【０００６】
【図１】低電力モードから復帰するターゲットデバイスのデバッグ処理が行われる一実施形態によるデバッグシステムを示す図。
【図２Ａ】1つ以上の実施形態における低電力モード(LPM)制御及びステータス(CS)レジスタを有するターゲットデバイスの様々な要素を示すブロック図。
【図２Ｂ】LPMCSレジスタを備え電力管理モジュール(PMM)を備えた図2Aに示す1つ以上の実施形態によるターゲットデバイスのブロック図(低電力モードからデバイスが出た場合にコア機能及びデバッグ機能の再開を制御する)。
【図２Ｃ】1つ以上の実施形態によるターゲットデバイスのCSレジスタがPMMの中に物理的に設けられている場合のブロック図。
【図３Ａ】1つ以上の実施形態に関し、低電力モードから復帰した場合にデバッグ処理を実行できるようにする複数のエントリを有するCSレジスタの具体例を示す図。
【図３Ｂ】1つ以上の実施形態に関し、低電力モードから復帰した場合にデバッグ処理を実行できるようにする複数のエントリを有するCSレジスタの具体例を示す図。
【図３Ｃ】1つ以上の実施形態に関し、低電力モードから復帰した場合にデバッグ処理を実行できるようにする複数のエントリを有するCSレジスタの具体例を示す図。
【図３Ｄ】1つ以上の実施形態に関し、低電力モードから復帰した場合にデバッグ処理を実行できるようにする複数のエントリを有するCSレジスタの具体例を示す図。
【図３Ｅ】1つ以上の実施形態に関し、CSレジスタ個々のエントリの機能を実行する個々の制御及びステータスレジスタ一式の具体例を示す図。
【図３Ｆ】1つ以上の実施形態に関し、CSレジスタ個々のエントリの機能を実行する個々の制御及びステータスレジスタ一式の具体例を示す図。
【図４】低電力モードからの復帰を含むターゲットデバイスのデバッグ処理を完了させるのに適したデバッグコードを実行するデータ処理システムのブロック図。
【図５Ａ】ターゲットデバイスが低電力モードから復帰したことに応答して、ターゲットデバイスのデバッグ処理を実行するデバッグ機能を提供するデータ処理システムのプロセッサにおいてデバッガが実行する方法を示すフローチャート。
【図５Ｂ】ターゲットデバイスが低電力モードから復帰したことに応答して、ターゲットデバイスのデバッグ処理を実行するデバッグ機能を提供するデータ処理システムのプロセッサにおいてデバッガが実行する方法を示すフローチャート。
【図６】デバイスが低電力モードからで後に、受信/検出したCSレジスタ値に基づいて、デバイス内の特定のコア素子の動作がリセットされるタイミングをターゲットデバイスのPMMが制御する本発明の一実施形態による処理を示すフローチャート。
【発明を実施するための形態】
【０００７】
開示される発明は添付図面と共に以下において説明される実施形態の説明により十分に理解されるであろう。
【０００８】
説明する実施形態は、ターゲットデバイスが低電力モードに移行しその後に低電力モードから復帰して処理を再開する場合に、ターゲットデバイスに接続されたデータ処理ステムで動作するソフトウェアデバッガが、デバッグセッションの制御状態を回復又は復元できるようにする方法及び装置を提供する。一実施形態において、デバイスは低電力モードに出入りするデバイスのデバッグ処理を実行可能にする素子を備えている。デバイスは、デバイスの処理機能を実行するコア論理部と、デバイスのデバッグ処理を促すデバッグ素子と、電力管理モジュール(PMM)とを有する。PMMは、デバイスが低電力モードから出る場合に(低電力モードではデバッグ素子の状態が失われる)、コア論理部が処理を再開することを、デバッグ素子が各自の前の状態に再構築されるまで禁止する論理部を有する。デバイスに高性能な電力割り当て機能(granular  power  assignment)が備わっていた場合、PMMはコア論理部をリセット状態に保持する或いはコア論理部に電力供給をしないようにする。デバッグ素子の再構築は接続されたデバッガにより開始され、デバイスの中で1つ以上の制御及びステータス(CS)レジスタの値を設定することができる。CSレジスタの値は、PMMがコア論理部の処理再開を何時禁止するか、及びデバイスが低電力モードから復帰した後にPMMがコア処理部の処理を何時再開できるようにするか等を決定する。
【０００９】
以下に説明される本発明の実施形態の詳細な説明において、本発明が使用される特定の実施形態は当業者が本発明を実施できる程度に十分に詳細に説明されており、他の携帯が使用されてもよいこと、及び論理、アーキテクチャ、プログラム、機構及び電子回路その他の変形例は本発明の精神又は範囲から逸脱することなくなされてよいことが、理解されるべきである。従って以下の詳細な説明は限定的な意味に解釈されてはならず、本発明の範囲は添付の特許請求の範囲及び均等物によって規定される。
【００１０】
特定の素子、装置及び/又はパラメータ名(例えば、説明される機能/論理を実行するようなもの)を扱っていることは単なる一例にすぎず、本発明を限定することは一切意図されていないことが理解されるべきである。従って限定を伴うことなく本願における素子/装置/パラメータを説明するために、本発明は様々な言葉/技術用語と共に説明されている。本願で使用されている用語はその用語が使用される範囲に関して最も広義の意味を与えるように使用される。
【００１１】
本願で使用又は参照されているように、低電力モードとは、PMMの除いてデバイスのほとんどの機能素子への電力が遮断又は除去されているデバイスの状態をいう。本実施形態において、2種類以上の低電力モードが使用可能であり、それらは本願において第1タイプの低電力モード(説明される実施形態におけるVLLSに対応する)及び第2タイプの低電力モード(説明される実施形態におけるLLSに対応する)と言及される。第1タイプの低電力モードの場合、各デバッグ素子、プロセッサコア、ハードウェアレジスタ及びPMM以外の他の素子は、電力を失い、全てのデータ及び状態情報を失う。しかしながら第2タイプの低電力モードの場合、コア及び他の素子は、各自の状態を保持し、デバイスが第2タイプの低電力モードに移行した時点での処理を再開することができる。PMMはデバイスの低電力モードに対する出入りを制御し、PMMはその機能状態を維持しながらシステムは低電力モードに出入りする。より具体的には、少なくとも代替実施形態において、PMMは、コアでない素子のような第1群の素子に電力を個々に割り当てる一方、コア論理部のような別の第2群の素子への電力供給を控えることができる。更に別の実施形態の場合、複数のPMMが1つのデバイスに設けられ、PMMの各々は1つのデバイス内の様々な素子群に対する電力供給を制御する。
【００１２】
更に、本願で説明されているように、PMMは、リセットのアサート及び以後のリセットのネゲート又はリリースにより低電力モードから復帰した後にコア論理部が処理を再開できる時を制御する。リセットはPMMからコア論理部に送信される信号を規定し、コア論理部によって受信される。(例えばコア論理部へのリセット信号線により)PMMがリセット信号をアサートすると、コアは、デバイスが低電力モードに移行する前にリセット状態に置かれ(又はリセット状態に入り)、コア論理部は、デバイスが低電力モードから出て電力がコア論理部に初めて印加された場合にリセット状態に戻るようにする。リセット信号はコア論理部が如何なる処理/実行動作(例えば、ベクトルフェッチを実行すること等)をも行うことを禁止するが、リセット信号はPMMによりアサートされている。リセット信号の解除もPMMにより制御され、これはリセットに対するネゲート、リリース、解放又は解除と言及され、コア論理部が処理を再開/開始できるようにする。
【００１３】
図面の記述において、同様な要素には先行する図面と同様な名称及び参照番号が付与されている。後の図面が異なる文脈の要素又は別の機能を有する要素を使用する場合、その要素には図番号の数字に続く参照番号が付与される。要素に付与される特定の番号は説明の便宜上のものであるに過ぎず、説明される実施形態に対する如何なる限定をも意図していない。
【００１４】
以下において更に説明されているように、本発明の機能の実現は、処理装置/構造の中でなされてもよいし、ハードウェア、ファームウェア及び他のソフトウェアの構成要素(例えば、プログラム)の組み合わせを利用してなされてもよい。提示される図面は、1つのネットワーク接続されたデータ処理システム内おける1つのプロセッサ/処理ノードを有するデータ処理アーキテクチャにおけるハードウェア素子及びソフトウェア素子双方を示している。図示の及び説明される実施形態では、システムアーキテクチャはマイクロプロセッサシステム及び/又は分散型コンピュータシステムと同程度に多数の処理ノードを有することが仮定されている。
【００１５】
図1を参照するに、ターゲットデバイスをデバッグするシステムが示されており、デバッガ(アプリケーション/ユーティリティ)は、ターゲットデバイスが低電力モードに移行することに対処(回復、復帰)し、デバイスが低電力モードから出た場合にターゲットデバイスのデバッグセッションを継続できるようにする。図示されているように、システム100は概してデバッグコネクタインタフェース/手段/ポート120を介してターゲットデバイス130に結合されたデータ処理システム105を有し、ターゲットデバイス130との間でデバッグセッション情報の変換(解釈、翻訳)できるようにし且つそれを通信できるようにする。一次素子(primary  component)の各々は複数のサブコンポーネントにより構成され、それらの一部が図示されている。
【００１６】
図1及び図2A-2Bを参照するに、ターゲットデバイス130は複数の素子を有し、複数の素子は、ターゲットデバイスの処理を行う第1群の素子と、ターゲットデバイスの動作中にデバッグを支援し及び/又はデバッグデータを記録する第2群の素子とを含む。具体的には、ターゲットデバイス130は、処理デバイス及び関連する周辺素子を含み、コア及び周辺素子135として示されているものや、ターゲットデバイス130の基本的な機能を制御及び/又は提供するものである。本説明において、これらの素子は、ターゲットデバイス130における処理を実行するコア論理部と言及される。ターゲットデバイス130は複数のデバッグ素子140も含み、ターゲットデバイスがデバッグセッション/処理中に取り出すためにバッグデータ及び/又は状態情報がデバッグ素子に保存されている。図1のターゲットデバイス130には電力管理モジュール(PMM)155も示されており、PMMはターゲットデバイス130内の複数の素子に対する電力の割り当てを制御する。ターゲットデバイス130は通信インタフェース145を更に有し、これはJTAG、cJTAG又はSWDインタフェースの内の何れかとして実現されてよい。通信インタフェース145は、ターゲットデバイスが、図示されているようにデバッグコネクタインタフェース/手段120を介して外部装置(例えば、データ処理システム105)又は処理モジュール(例えば、デバッガ)と信号を通信できるようにする。説明される実施形態によれば、ターゲットデバイス130は1つ以上の制御及びステータス(CS)レジスタ150を有し、これはターゲットデバイス130に内蔵された又は組み込まれているハードウェアレジスタである。
【００１７】
図3Aに示されているようにCSレジスタ150は複数のレジスタエントリを有し、対応するエントリ値が保存される。説明される実施形態において、エントリの各々は1ビットエントリとして提示され、可能なエントリの値は1(論理ハイ)及び0(論理ロー)である。他の実施形態ではCSレジスタ150の各エントリが1ビットより多いビット数を有しバイナリ1又は0より大きなエントリ値に関連づけられてよいことが、理解されるべきである。特に、図3E及び3Fを参照しながら後述するように、代替実施形態においてCSレジスタ150が複数の独立したレジスタを有してもよく、本願における「エントリ」は1つ以上のビットとすることができる固有の値を保持する個別のレジスタであってもよい。図示の例においては4つの別個のレジスタ(又はレジスタエントリ)しか示されていないが。しかしながら、CSレジスタ150及び/又は複数の独立したレジスタは、現在の又は別のセッションの間に使用可能な追加的なエントリを含んでもよいことが、理解されるであろう。図1及び図2A-2Bに示す例の場合、CSレジスタ150の各エントリ(代替実施形態においては個別CSレジスタの各々)は、PMM155内のPMM論理部に信号線で接続されている。最初の2つの信号線は、CSレジスタ150の第1エントリ及び第2エントリに保存される値を示す情報を提供する。デバッグ処理の間及び低電力モードから復帰した場合、これらの信号線の双方又は一方がデバッガ(DPS105内)から通信インタフェース145により受信される入力によって(論理ハイで)アサートされる。エントリの値が1に設定されている場合、信号線のアサートが行われる(デフォルト設定はゼロ(0))。CSレジスタがPMM155内に設けられている代替実施形態の場合、図2Cに示されるように、信号線は通信インタフェース145及びPMM155の間で値を通信するのに使用され、CSレジスタ150及びPMM155の間でエントリ値がやりとりされるのではないことが、理解されるであろう。
【００１８】
図3Aに示されているように、CSレジスタ150の第1エントリ(値)は、ターゲットデバイスが第1タイプの低電力モード(すなわち、VLLS)を出ることに応答して、デバッグセッションが継続/再開されるべきか否かを示す。第2エントリ(値)は、ターゲットデバイスが低電力モードから復帰した後にPMMが第1の素子群(コア及び周辺素子135)のリセットをネゲート又はリリースする(又は第1の素子群に電力を供給する)トリガを何時受けるかを示す。説明される形態において、第1及び第2エントリ双方の値はデバッガにより(デバッガからの信号の受信により)設定され、何れのエントリもデバッガによってリセットすることができる。CSレジスタがPMMの外部にある実施形態の場合、それらの値はデバイスが次に低電力モードに移行する時に自動的にリセットされる。しかしながらCSレジスタがPMM155の一部分である場合(PMM内に組み込まれている場合)、第2エントリは、第1の素子群の処理が再開された後、デバッガ又はPMM論理部からの信号の受信によりリセットされる。第3の信号線は、PMM155によりセットされ、PMM155によりセット論理部からの指示を与え、その指示は、(低電力モードに移行する)電力関連処理(電力イベント)が、デバッグ素子の状態及び/又はデータを削除/リセットしたタイプのものであったか否かを示す。この値は、デバイスが低電力モードに移行した直後の時点からのデバッグが再開可能になる前に、デバッガが何らかの情報をデバッグ素子にダウンロードしなければならないかを示す。従って第3エントリ(値)は、低電力モードの種類を示し、ターゲットデバイスが低電力モードから復帰した後電力が第1の素子群に供給される前に第2エントリの値が低電力モードから出る際に設定されるような低電力モードであるか否かを決定する。第4エントリ(値)は、第2タイプの低電力モードである低電力モードにデバイスが移行する時を示すように与えられる。本願において説明されているように、第2タイプの低電力モード(LLS)は、状態が様々な論理部及びコア素子部の中で保持されるモードであり、デバイスが第2タイプの低電力モードから出る際にデバッグ素子の再構築(リコンフィギュレーション)は不要である(この点、第1タイプの低電力モードとは異なる)。
【００１９】
図1を参照するに、設けられているインタフェース手段は通信コンバータモジュール/ポートを有し、全体的にデバッグ通信インタフェース120又は単にデバッグインタフェース120として言及される。デバッグインタフェース120は、DPS105(デバッガ)及びターゲットデバイス130の間において入出力(I/O)コネクタ123及びシリアルケーブル125を介して結合されている。様々な実施形態において、多種多様なデバッグインタフェース120の内の任意のものが使用されてよい。しかしながら後述する図4に示すような一実施形態において、デバッグインタフェース120は、デバッグインタフェース120内の標準的なプロトコル変換論理/ユーティリティに加えて、LPMユーティリティに関連する機能を含む。
【００２０】
データ処理デバイス105はそれに関連するディスプレイデバイス110を有するように描かれている。ディスプレイ110にはデバッググラフィカルユーザインタフェース(GUI)115の一例が提示され、これはDPS105において動作するデバッガにより生成される。概して、DPS105は、プロセッサ、メモリ及びプロセッサ上で動作するデバッガコアを有し、DPS105は、ターゲットデバイスに転送する特定のテスト条件を生成するデバッガを提供する。図1に示すデータ処理デバイス例105の機能素子については図4を参照しながら更に後述する。
【００２１】
ターゲットデバイス130に関する更なる構成及び機能が図2A及び2Bに示されており、それらは低電力モードに移行る電力状態及び低電力モードから出る電力状態をそれぞれ示す。図2Aにおいて、デバイス130は回路基板又はモジュール200上の1つのデバイスとして示されている。デバイス130に加えて、回路基板200は1つ以上の第2のデバイス220及び通信ポート225を含み、その通信ポートによりデバイス130は回路基板200外部の素子と接続する。第2のデバイス220は1つ以上のオンボード相互接続部227を介してデバイス130と通信する。回路基板200上のデバイスの各々は電力供給部/ソース210から電力を受ける。図示されているように、電力供給部/ソース210は、回路基板上に設けられていてもよいし、或いは回路基板外部の外部電力供給/ソース210’とすることもできる。
【００２２】
概して、説明される実施形態において、ターゲットデバイス130は、機能的ハードウェア及びソフトウェア/論理部の中で、デバイスの低電力モードからの復帰におけるデバッグを可能にするように特化して構築されている。ターゲットデバイス130は、命令を実行しかつデバイスの機能的な処理を実行する第1群の素子と、低電力モードからデバイスが復帰した際のデバッグを可能にする複数のエントリを有する1つ以上の制御及びステータス(CS)レジスタと、デバイスと外部デバッガとの通信を可能にしかつCSレジスタに結合され、外部デバッガがCSレジスタの1つ以上のエントリを設定できるようにする通信インタフェースと、論理部を有する電力管理モジュール(PMM)とを有し、該論理部は、低電力モードから復帰した際に第1の素子群が処理を再開することをPMMが禁止できるようにし、その後に、1つ以上のCSレジスタがそれらの以前の状態に再設定されると第1の素子群が処理を再開できるようにする。CSレジスタがPMMの外部にある一形態の場合、デバイスは、PMMとCSレジスタの各エントリとの間を結合する複数の信号線を含む。コア論理部が処理を完了することを禁止する手段が、コア論理部をリセット状態に保持することを行う場合、PMMは、第1群の素子の1つ以上に結合され指示されているリセット信号を使用する。PMMはデバイスに電力を供給する際の電力を受信する電力供給接続部も有する。
【００２３】
図2Bは、一実施形態によるPMM155内のラッチ270及びPMM論理部275を示す。図示されているように、ラッチ270はVLLS  EHRE制御レジスタ(すなわちCSレジスタの第1エントリ)352に結合されかつそこからのラッチ値を受信する。EHREレジスタ/エントリ/ビット352の値は、PMMがデバイスは低電力モードに入りつつあることを検出したことに応答してラッチされる。図2Cに示すような代替実施形態の場合、1つ以上のCSレジスタ150がPMM155内に設けられており、EHRE値をラッチする必要はない。なぜなら、その値は常に電力が供給されるPMM内で保持されているからである。この代替実施形態の場合、PMMがコア論理部にリセットをアサートする毎にEHREレジスタ/エントリ/ビットの値をリセットできるようにしてもよい。しかしながら、デバッガは後に低電力モードから出ることに関する状態を監視し続ける場合が多いので、低電力モード状態からのデバイスの復帰状態をデバッガがもはやデバッグする必要がなくなるまで、EHREビットはセットされたままである。PMM内にCSレジスタがあるという主要な相違点を除いて、図2Cに示す素子は図2A及び2Bと同様であるので、図2Cに関して更には説明しない。しかしながら、この実施形態の場合、別個のラッチは一切必要ないことが理解されるであろう。なぜなら、それらのレジスタ又はエントリは低電力モードの最中に各自の状態/せっていを保持しているからであり、CSレジスタは(デバイスが完全に電源遮断されない限り)常に電力が供給されているPMMドメインに設けられているからである。EHRE及びEHRP設定入力(260、262)はデバイスのデバッグインタフェース145から各自のレジスタエントリ又はレジスタへ直接的に受信され、VLLS(及びLLS)の値はPMM155内のレジスタエントリ/レジスタ各々から直接的に読み取られる。
【００２４】
PMM論理部275は、デバイスの1つ以上の素子に対する電力を供給及び停止することを制御する制御論理部である。具体的には、説明される実施形態において、PMM論理部275は強化された追加的な機能を提供する。一実施形態において、PMM論理部275は次のような処理を実行する：デバイスが低電力モードへ移行したのを検出したことに応答して、CSレジスタの第1エントリの現在値をPMMの第1ラッチ270(図2B)に自動的にラッチすること；低電力モードから処理モードへデバイスが復帰し始めたことを示す入力を受信したことに応答して、第1ラッチ内に保存されたラッチ値を検査すること；第1の値であるラッチ値に応答して、第1群の素子に対するリセット信号のネゲート又はリリースを控えること(ネゲートをネゲートする又はリリースをリリースする)。リセット信号のネゲート又はリリースは、第1群の素子が処理状態に入ることを可能にするために必要とされる。PMM論理部は更に次の機能も実行する：PMM及びCSレジスタの第2エントリの間で指示された第2信号を通じてCSレジスタの第2エントリの現在の値を検出すること、及びリリース値である第2エントリに関連づけられている現在値に応答して、指示されているリセット信号をネゲート又はリリースする。
【００２５】
目下の実施形態の場合、デバイス130は少なくとも2つの異なるパワードメインを有し、第1ドメイン132は常に電力の供給を受け、第2ドメイン134ではオン状態において電力が供給され低電力モードに移行すると選択的に電力が落とされる。図2Aにおいて付している影は、第1ドメイン132(影が付いた部分)及び第2ドメイン(影が付いていない部分)を区別するように示されているが、図2Bにおいて付している影は低電力モードから出た後にデバイスのどの部分(対応する素子)がパワーオンであり完全に機能しているかを示し、PMM155のラッチ270はPMM論理部275のリセット応答の留保をトリガするラッチ値を含む。具体的には、図2Bは、PMMが、デバイスの他の素子(デバッグ素子を含む)へ電力を供給することとは別個独立して、コア論理部に電力を選択的に供給できる形態を示す。図示されているように、デバイスの他のセクタ各々には影が付されており、デバッグ素子が設けられているデバイスのこれらの領域にPMMが電力を供給している様子を示す。この装置構成の場合、PMMがコア論理部のリセットをネゲートできるようにするHERP値又はPMMがコア論理部に動作電力を供給できるようにするHERP値をPMMが受信するまで、PMMはコア論理部を除く他の全ての素子に対する電力を回復させることができる。この特定の実施形態は1つ以上のデバッグ素子がコア論理部内に設けられているデバイスに使用されるものではなく、それらの素子は低電力モードイベントの後にデバッガにより更新/アップデート/再構築/リコンフィギュレーションされるように電力供給を受ける(コア論理部に電力が供給される)ことが理解されるであろう。PMM論理部はデバイスの中で常時電力供給を受ける部分又は領域内に実現される。デバイスが低電力モードに移行した場合、PMM論理部はCSレジスタ又は第1制御レジスタ、VLLSエグジットホールドリセットイネーブルレジスタ(VLLS  Exit  Hold  Reset  Enable  register)内に設定されている値をラッチする。後にデバイスが起動すると或いは低電力モードから出た場合において、VLLSエグジットホールドリセットイネーブルが低電力モードへの移行に設定されていた場合、PMM論理部がリセットを解除する信号をデバッガから受信するまで、PMM論理部はコア(処理素子)をリセット状態に保持し続ける。コア素子のリセットを可能にするこのデバッガが調整する遅延時間は、デバッガが、リセット状態に保持されていないデバッグ素子を再構築する時間を与える。
【００２６】
一実施形態によるPMM論理部は以下の機能を更に実行する：低電力モードへの移行要求を受信することに応答して且つ第1群の素子への電力を遮断する前に、CSレジスタの第1エントリの現在値をラッチ(保持)すること；ラッチされた値が第2の値であった場合に、低電力モードから復帰する際にリセット信号線におけるリセット信号をネゲート又はリリースすること；及び第1群の素子へ電力を供給すること。また、PMM論理部は、第2CSエントリの現在値がホールド値であったことに応答して、現在値がリリース値に変わるまで、リセット信号のネゲート又はリリースを遅延させる機能も実行する。
【００２７】
本願において説明しているように、デバイスは、第1群の素子の内の1つ以上による処理の最中に、デバイスの状態情報及びデバッグデータを記録する1つ以上のデバッグ素子を含む。CSレジスタの第2エントリは、低電力モードからデバイスが復帰した後ホールド値を含み、デバイスは外部のデバッガから情報を受信し、1つ以上のデバッグ状態を、デバイスが低電力モードへ移行する前に存在していた所望の状態に戻す。そしてPMM論理部は以下の機能を実行する：デバイスが移行していた低電力モードが、デバッグをシームレスに(途切れない)回復して低電力状態からの復帰に追従できるように、1つ以上のデバッグ状態の復元を要する第1タイプの低電力状態であることを確認すること；及び低電力モードが第1タイプの低電力モードであったことに応答して、CSレジスタの第3の値を自動的に設定し、低電力モードは第1タイプの低電力モードでありデバイスのリセットプロセスの留保又はホールド(hold  on)をトリガすること。リセットプロセスのホールドは、リセット信号がPMM155によりネゲート/リリースされる前に、外部デバッガが1つ以上のデバッグ状態を所望の状態に先に復元できるようにする。
【００２８】
一実施形態において、PMMは電力割当手段を更に有し、デバイスの様々な素子に対する電力の繊細な又は緻密な割り当て(granular  assignment)を可能にする。低電力モードからの復帰に続いて、第2の素子群及びCSレジスタに電力を供給するのとは別に、電力は第1の素子群に与えられる。
【００２９】
説明される実施形態は、デバイスが低電力モードに移行した場合、デバイスとの通信が途絶えた場合又は低電力モードへの移行がデバッガに通知された場合、及びデバイスのデバッグ素子が電力を失って各自の状態を喪失した場合、ソフトウェアデバッガがデバッグセッションの制御状態を適切に回復及び復帰できるようにする。一実施形態において、PMM論理部と制御及びステータスレジスタとは、コア論理部の外部に設けられ、低電力モードからの移行を認識し、そのような低電力モードからの移行をデバッガに通知し、及びコアを休止状態に置くことを、デバッガが再接続されコアが処理(例えば、ベクトルフェッチ処理)を継続することを明示的にリリースするまで行う。一実施形態において、第2タイプの低電力モードが規定され、コアは自身の状態を失わず、その第2タイプの低電力モードから復帰した後に(第2の低電力モードに移行したことで処理が中断していた時点の状態から)処理をシームレスに(途切れることなく)継続/再開することができる。ＰＭＭ論理部は、2つの(又はそれ以上の)タイプの低電力モードを識別し、制御及びステータスレジスタに適切なビットを設定する。
【００３０】
ハンドシェーク手段はデバッガがアクセス可能な制御及びステータス(CS)レジスタを有する。一実施形態において、CSレジスタは、JTAG、2ピンcJTAG、2ピンシリアルワイヤデバッグ又は他の任意のコネクタ及びプロトコル(例えば、Aurola(登録商標)又はDigRF(登録商標))等の内の1つ以上を介してアクセスすることができる。デバッガがデバッグセッションを開始すると、デバッガは低電力モードハンドシェーク手段(CSレジスタに対するエントリを介するPMM)を構築し、低電力モードから出た後及びリセットのリリースがデバッガにより促されるまでコア(第1の素子群)をリセット状態に保持する。
【００３１】
ステータスビットは、デバイスが何れかの低電力モードを丁度出たことをデバッガが検出できるようにする。別の制御信号は、デバッグ素子を再構築することが完了した場合に、デバッガがコアのリセットをリリースしデバッグセッションを継続することを可能にする。
【００３２】
図3A-3Dを具体的に参照するに、CSレジスタ150の3つの具体例が示されている。図3Aに示されているように、CSレジスタ150はいくつものエントリを有し、説明の便宜上それらはシングルビットエントリであるとする。エントリの各々は、デバイスの低電力モードに対する出入りに関する特定の変数を追跡するように設定される。第1エントリ352は、エグジットホールドリセットイネーブル(EHRE)の値を保持し、本願においてはEHREエントリ又はEHREビットと同義的に使用されてよい。第2エントリ355は、ホールドリセットリリース(HERR)の値を保持し、HERRエントリ又はEHRRビットのように同義的に使用されてよい。EHREエントリ/ビット及びEHRRエントリ/ビットの各々は、セットされていない場合はヌル又はゼロ(0)の値を有し、セットされている場合は論理1の値を有する。CSレジスタの第1及び第2エントリの双方は、DPS105上で動作するデバッガ430が送信した信号を受信したことで設定される。
【００３３】
CSレジスタ150の第3エントリは、デバイスが移行していた低電力モードのタイプを示す値を保持する(デバイスはその低電力モードから出る)。一実施形態では、2つの異なるエントリ356及び358が設けられ、複数の異なるタイプの低電力モードを追跡できるようにしている。しかしながら、説明の簡明化のため、第1タイプの1つの低電力モードが検出されたか否かを追跡するための1つのVLLSエントリ/ビット356が参照される。例えば、第1タイプの低電力モードは非常に低い電力のモードであり、デバイス内の様々な機能素子(特にデバッグ素子)の状態及びデータはデバイスが低電力モードから復帰しても復元されない程度に低いレベルに電力が排除される。VLLSエントリ/ビットは、デバイスが低電力モードに移行する及び低電力モードから復帰する際に適切に復元するために、デバッガがデバッグ素子のデータ及び状態の復元を実行しなければならない場合を(デバッガに)単に示す。VLLSエントリ/ビットはデフォルト値としてヌル又はゼロの値(0)を有し、VLLSエントリ/ビットは、デバイスが第1タイプの低電力モードから出る/復帰する場合にPMM論理部により論理高(1)に設定される。
【００３４】
一実施形態において、CSレジスタ150の第4エントリは第2タイプの低電力モードの値を保持するために使用され、これはLLSモードと言及されてもよい。対応するLLSエントリ/ビット/レジスタ358は、デバッガがデバイスのデバッグ素子の状態を復元する必要がない場合をデバッガに通知する。LLSモードはデバイスがデバッガとの通信を失う低電力モードであるが、デバイスがLLSモードであった場合、デバッグ素子は各自の状態を保持又は維持し、デバイスがLLSモードから復帰する場合にデバッガがデバッグ素子を再構築する必要がないようにする。デバイスがLLSモードから復帰する場合にPMM論理部155はLLSビット/エントリ358を設定し、LLSビット/エントリ358の値はデバッガに通知され、低電力モードから復帰した場合にデバッガがデバッグの再構築を必要とせず、(そのような処理が中断された場合)単にデバッグ処理を再開する状態として(値ゼロ(0)に対して)値1のLLSビットが設定される。CSレジスタ150はデバッガの他の機能に使用されてもよい追加的なエントリを含んでもよく、これらのエントリは説明される実施形態においては考察対象外(Don’t  cares：DC)である。
【００３５】
一実施形態において、1つのCSレジスタの個々のエントリを設定する代わりに、CSレジスタのエントリとして説明される機能は、別個の個々のレジスタにより実現されてもよい。図1、2A、2B、3A-3DにおいてCSレジスタとして示されている構造は、個々のレジスタとして設計されている。図3E及び3Fは代替例を示す。一実施形態において、個々のレジスタの各々は、通信インタフェース145に対する個々の信号接続部を有する。図3Aに示されているように、第1制御レジスタ352はシングルビットレジスタであり、VLLSエグジットホールドリセット値を保持する。本願で説明されているように、第1制御レジスタ353内のビットの値はデバイスにおける電力管理システム(すなわち、PMM)がVLLSモードから出る際にリセットを保持できるようにする。第2制御レジスタ354は、VLLSエグジットホールドリセットリリース値を保持するシングルビットレジスタである。第2制御レジスタ354の値を設定する機能は、デバッガがリセットをリリースする準備が整った場合に(例えば、全てのデバッグが再構築された場合)、デバッガが流出(leakage)低電力モードから出る際にリセットをリリースできるようにする。最後に、2ビットのステータスレジスタ356はVLLS及びLLSモード状態を示す設定可能な値を保持し、それぞれデバイスがベリーローリーケージストップ(very  low  leakage  stop:  VLLS)又はローリーケージストップ(low  leakage  stop:  LLS)モードの内の何れかにあったことを示す。上述したように、シングルビットによる実現手段はVLSIモードのみを追跡できるようにしており、説明される形態において使用されている。
【００３６】
図3Bを参照するに、CSレジスタ150の第1エントリ352、第2エントリ354及び第3エントリ356の設定値の具体例が示されており、デバイスが低電力モードに最初に入る以前の状態である。図示されているように、第1エントリ352は論理ハイ(すなわち、1)である第1の値を有し、デバイスが低電力モードに移行する場合に、デバッグセッションの復元を可能にするためにデバッガが第1のエントリ値を有することを示す。上述したように、デバッガは、インタフェース手段を介して信号を送信し、その信号はデバイスの通信インタフェースで受信され、第1エントリの値を設定する。図3Cは第1タイプの低電力モードに移行して復帰した後のエントリの状態を示す。低電力モードの間は、CSレジスタ150が存在するデバイス130の部分に電力が供給されないことに起因して、CSレジスタ値は全てゼロになる。低電力モードから復帰/脱出した場合、PMM論理部275はCSレジスタ150の第3エントリ356を、第1タイプの低電力モードを示すように論理ハイ(1)に設定する。図3Dは、デバッガ430からの送信信号をデバイスの通信インタフェースが受信した後のCSレジスタ150のエントリ値を示し、送信信号はCSレジスタの第2エントリを論理ハイ(1)に設定する第2(リリース)信号を含む。上述したように、この送信信号はデバッグ素子の所望の状態及びデータの復元が完了した後にインタフェース手段を介して与えられる。第1エントリ352は論理ハイ(1)又はヌル値(0)であり、デバッガ430がCSレジスタ150の第1エントリの値を設定するために次の第1信号を送信したか否かを示す。
【００３７】
図4は1つ以上の実施形態に使用可能なデータ処理システム(DPS)の一例を示すブロック図であり、本願において説明されている1つ以上の方法を行うソフトウェアモジュールが備わっている。DPS105は、サーバ、パーソナルコンピュータ、携帯端末、及び/又は概してデータ処理デバイスと考えられるその他のタイプの電子装置(デバッガアプリケーション/ユーティリティを実行することが可能な電子装置)でもよい。図示されているように、DPS105はシステム相互接続手段/バス412を介してシステムメモリ410に接続された1つ以上のプロセッサ(又は中央処理装置(CPU))405を有する。システムバス412には1つ以上の入力/出力(I/O)コントローラ/インタフェース415も接続されており、入力デバイスに対する接続及び制御を行い、図示の例ではポインティングデバイス(又はマウス)416及びキーボード417が示されている。I/Oコントローラ/インタフェース115は、出力装置(図示の例ではディスプレイ(モニタ)110)に対する接続及び制御を司る。また、マルチメディアドライブ119(例えば、コンパクトディスクリード/ライト(CDRW)又はディジタルビデオディスク(DVD)ドライブ)及びUSB(ユニバーサルシリアルバス)ポート120が各自のI/Oコントローラ/インタフェース115に結合可能である。マルチメディアドライブ119又はUSBポート121又はその他のシリアルポートは、1つ以上の読み取り可能なストレージ媒体120(例えば、光ディスク又はサムドライブ(thumb  drive))の挿入/接続を可能にし、その媒体にはデータ及び/又はプログラム命令/コードが保存(又は内蔵)されており、及び/又はその媒体からデータ及び/又はプログラム命令/コードが抽出される。DPS100は対応するストレージアダプタ(図示せず)を介して結合された不揮発性システムストレージ150も有する。システムストレージ150は、1つ以上のターゲット装置のデバッグ処理を実行するのに特有のデータを含むデータ及び/又はプログラム命令/コードを保存する。
【００３８】
外部ネットワーク素子との通信を可能にするため、DPS105は1つ以上のネットワークインタフェースデバイスを更に有し、そのネットワークインタフェースデバイスにより、DPS105は例えば外部ストレージ455又はサーバ460のようなネットワークアクセス可能な1つ以上のデバイスに接続することが可能である。これらのデバイスへのアクセスは1つ以上のネットワーク445により可能になる。ネットワークインタフェース440は有線及び/又は無線の接続を介するネットワークのアクセスポイント445への接続を行う。ネットワーク445は、インターネット又は広域ネットワーク(WAN)のような外部ネットワークや、イーサーネット(登録商標)(ローカルエリアネットワーク(LAN)）又は仮想プライベートネットワーク(VPN)のような内部ネットワークでもよい。ネットワーク445がLANのような内部ネットワークであった場合、外部ネットワーク(例えば、インターネット)への接続は1つ以上のサーバ(460)により確立される。一実施形態において、サーバ460はDPS105における実行に使用するデータ及び/又はプログラム命令/コードを提供してもよい。1つ以上の実施形態において、外部ストレージ455へのアクセスはストレージアダプタ(図示せず)を通じて行われてもよく、ストレージアダプタは外部ストレージ455への通信又は(データ伝送)リンク(例えば、ファイバチャネルリンク)を維持してもよい。外部ストレージは、本願において説明される様々な方法の処理の最中に保存及び/又はアクセスされるデータを含む1つ以上のストレージリポジトリを含んでもよい。データは、DPS105によりアクセス可能であり、ダウンロード可能であり、ローカルストレージ450に保存可能であり又はシステムメモリ410内に保存可能であり、ローカルな処理に使用されてもよい。
【００３９】
一実施形態において、DPS405は、1つ以上のUSBコネクタ421を介してデバッグ通信インタフェース(又はデバッグインタフェース)120、イーサーネット(登録商標)アダプタ(具体的には図示していないが、NID440内に含まれるように仮定されている)又はネットワーク445に接続されてもよい。ネットワークアダプタを介して又はネットワークを介してデバッグインタフェース120及びDPS105の間を接続する可能な代替的な接続方法は、デバッグインタフェース120に至るケーブル接続を示す破線の接続線として示されている。デバッグインタフェース120は、デバッガ430が、接続されたターゲットデバイスにおける1つ以上のデバッグセッションに接続し、その実行を促す又は制御することを可能にする。デバッグインタフェース120はパケットコンバータモジュール/ユーティリティを含み、DPS105から受信したパケットをデバイス130が理解できるプロトコル(信号)に変換できるようにする。後述するように、デバッグインタフェース120は本願で説明される方法を使用するためにLPMユーティリティ435及びLPMユーティリティ435の機能素子を含むこともできる。デバッグインタフェース120とDPS105との接続は、デバッグインタフェース120がローカルに接続されている場合、標準的なUSB又はシリアルポートを介して行うことができることは理解されるであろう。或いは、別の実施形態において、デバッガ430で動作しているDPS105がデバッグインタフェース120と物理的には同じ場所にない場合(すなわち、地理的に隔たっていた場合)、DPS105及びデバッグインタフェース120はネットワークインタフェースを通じて通信可能に接続可能である。
【００４０】
当業者は、図4に示されているハードウェア素子及び基本構成要素が変更されてもよいことを認めるであろう。DPS105内に示されている要素は、網羅的に示されているわけではなく、むしろ本発明を実現する際に使用される素子を特に強調して示しているに過ぎない。例えば、データ処理システム/デバイスの様々な形態は他のデバイス/要素を含むように使用されてもよく、説明したハードウェアに追加的に又は代替的に使用されてもよい。説明された実施形態は、目下説明している実施形態及び/又は発明一般に対する構造的な又は他の限定を意図するものではない。図4に示されているデータ処理システムは、本願において説明されるデバッグの特徴を使用することが可能な任意の処理装置であってよい。
【００４１】
DPS105に関する上記のハードウェア素子に加えて、本発明の様々な特徴は、1つ以上の実行可能なプログラムコード又はソフトウェアモジュール(又はファームウェア)及び1つ以上の不揮発性ストレージ(例えば、ローカルシステムストレージ450又は外部ストレージ455)からシステムメモリにロードされたデータを通じて達成され/サポートされる。説明された実施形態による1つ以上の方法を実行する間、1つ以上のプログラムコード又はソフトウェアモジュールがCPU405により実行され、或いは代替例ではDPSに関連する他の何らかの命令実行手段により実行される。従って例えばシステムメモリ410の中にオペレーティングシステム(OS)425を含む多数のソフトウェア/ファームウェア/論理装置が示されている(OSは、例えば、マイクロソフトウィンドウズ(マイクロソフト社の登録商標)、GNU/Linux(フリーソフトウェア財団及び/又はリナックスマーク機関の登録商標)、又はアドバンストインタラクティブエグゼキューティブ(AIX)(インターナショナルビジネスマシーンズの登録商標))。1つ以上のアプリケーション427はシステムメモリ410内にも示されており、これらのアプリケーションはデバッグプロセスにおいて使用されてもよいし、或いはデバッグプロセスとは別個に使用されてもよい。
【００４２】
システムメモリ410内にはデバッガモジュール(又はデバッガ)430も含まれており、複数の機能モジュール及び/又はデータを有し、デバッグシミュレーションエンジン432、デバッグ入力データ/コード434、及び低電力モードデバッグ(LPM)ユーティリティ435を含む。デバッガ430はユーザインタフェース115も有する。LPMユーティリティ435は、CSレジスタ及び特定のPMM論理部と共に設計されたデバイスのデバッグをサポートするために既存のデバッガに対する増設拡張要素として提供され、特定のPMM論理部は低電力モードから復帰したターゲットデバイスのデバッグをサポートする。一実施例において、LPMユーティリティ435又はLPMユーティリティ435の特定の機能要素がデバッグインタフェース120により/そこに設けられてもよい。この実施形態に関し、CSレジスタ150によりインタフェースを使用してデバイスが低電力モードに移行して復帰したのを検出したことに応じる特定の実施形態は、デバッガにより達成されるように説明されているが、代替的にデバッグインタフェース120におけるLPMユーティリティ435により達成されてもよい。
【００４３】
一実施形態において、LPMユーティリティ435に関連する或る特徴及び/又はLPMユーティリティ435自体はソフトウェア配備サーバ(例えば、サーバ460)を通じて利用可能であり、DPS105はネットワークインタフェース440を用いてネットワーク445を介してソフトウェア配備サーバ460と通信する。そして、LPMユーティリティ435はソフトウェア配備サーバ460を介してネットワーク内に/ネットワーク上に/ネットワークを介して配備されてもよい。この形態の場合、ソフトウェア配備サーバ460は一実施形態におけるLPMユーティリティ435の実行に関連する或る機能を実行することができる。或いはソフトウェア配備サーバ460は、LPMユーティリティ435の様々な特徴を実行するのに必要な実行可能コードをDPS105がダウンロードできるように構築される。
【００４４】
デバッグ430の最中に、LPMユーティリティ435の機能は、デバッガ430が単独のまとまった素子として機能するように、他のデバッグ処理とシームレスに/滞りなく/一体的な方法で行われ、その方法はLPMユーティリティ435のLPMデバッグ機能を提供/サポートする。簡明化のため、LPMユーティリティ435により提供/サポートされる特徴及び/又は機能は、デバッガ430により実行される機能及び/又はデバッガ403の特徴として単に言及される場合がある。
【００４５】
説明される実施形態において、CPU405は、OS425と共に又はOS425に関連してデバッガ403(及び/又はLPMユーティリティ435)の機能を実行し、デバッガ330は、(LPMユーティリティ435の)特定のコードセグメントがCPU405により実行された場合に、DPS105が或る機能を実行できるようにする。デバッガ430により使用されるプログラムコード/命令又は処理論理部の内、本発明に特に関連するコード/論理手段は、プロセッサ/CPU405により実行された場合に、DPS105及び/又はデバッガ430が次の機能を実行できるようにする；(a)デバイスとの接続を介して、CSレジスタの第1エントリを設定する第1のCSレジスタコマンドを送信すること；(b)デバイスにおいて生じる処理に関する状態情報及びデバッグデータを、デバイスに設けられている1つ以上のデバッグ素子から周期的に受信すること；(c)受信したデバッグデータ及び状態情報をストレージに保存すること；(d)コネクタにより、デバイスが低電力モードに移行したことを示す状態を検出すること；(e)デバイスが低電力モードに移行したのを検出したことに応答して、(e1)デバッグコマンドをデバイスに送信することを中断、中止又は停止し、(e2)デバイスがもはや低電力モードではないことを示す信号の受信を監視(待機)すること(その信号は、デバイスとの更なる通信が可能になったことを示すコネクタにより検出された状態変化(情報)を含む)；(f)CSレジスタの第3エントリの値をCSレジスタから受信すること(その値は、低電力モード(LPM)が、デバイス内の1つ以上のデバッグ素子のリセットを必要とする第1タイプの低電力モードであったか否かを示す)；(g)LPMが第1タイプではなかったことに応答して、デバイスのデバッグ処理を再開すること；(h)LPMが第1タイプのLPMであったことに応答して、1つ以上のデバッグ素子に関連して保存されているデバッグデータ及び状態情報を取得及び転送し、デバイスが低電力モードに移行する直前のLPM状態にデバッグ素子を戻すこと；(i)デバイスの各デバッグ素子を元のLPM状態に戻すのに必要な情報送信の完了に応答して、(i1)デバイスとの接続を通じて、CSレジスタの第2エントリに設定する第2CSレジスタコマンドを送信し、(i2)デバイスのデバッグ処理を復旧し、(i3)低電力モードからデバイスが出たことに関するデバッグ情報を取得すること。
【００４６】
図示の実施形態において、第1エントリはエグジットホールドリセットイネーブル(EHRE)ビットであり、第1CSレジスタコマンドはEHREビットを論理1の値に設定する信号である。また、第2エントリはエグジットホールドリセットリリース(HERR)ビットであり、第2CSレジスタコマンドはEHRRビットを論理1の値に設定する信号である。従って、EHRRビットを設定すると、PMMが、デバイスの処理を再開するためにデバイスの1つ以上のコア素子に対するリセット信号をアサートすることを引き起こす。更に、図示の形態の場合、第3エントリは、LPMが第1タイプのLPMである場合にデバイスのPMMにより論理1の値に設定されるLPMステータスビットである。CSレジスタの各エントリは、エントリが設定されない場合には論理ゼロ(0)の値を有する。
【００４７】
一実施形態において、デバッガは出力デバイスを介して出力機能を実行し、デバッガインタフェースは、デバイスが低電力モードから出た場合に取得したデバッグ情報を含むデバイスのデバッグ出力を提供する。更に、デバッガは、デバッグ出力の中でどのデバッグ情報が、低電力モードをデバイスが出た際に取得されたデバッグ情報に対応するかを識別する。
【００４８】
一実施形態において、デバイスが低電力モードに移行したことを検出する処理は、デバッガが、進行中のデバッグセッションの間にデバイスとの通信の欠落を検出することを含む。そして、デバイスに対して発行された通信要求がアクティブな応答として受信されたことを検出するためにデバイスに対する接続部を周期的にポーリングすることで、デバッガは、デバイスがもはや低電力モードではないことを示す信号の受信を監視する機能を実行する。
【００４９】
上述したように、デバッガ430が図1のシステム100の中に設けられている図4のDPS105内で動作するように、デバッガ430の機能及び/又は追加機能及び上記機能が発揮される。DPS105におけるデバッガ403により実行される他の機能/処理は、以下において説明する図5のフローチャートを参照しながら説明される。これらの内の追加的な機能は、デバッグアプリケーションを介して、デバイスをデバッグするコンピュータ実現方法に関連し、そのデバイスは電力管理モジュール(PMM)、1つ以上のデバッグ素子及び1つ以上の制御及び状態(CS)レジスタを有し、それらはデバッグアプリケーションに通信可能にアクセス可能である。一実施形態に示されているように、本方法は、デバイスに対する接続を通じて、1つ以上のCSレジスタの第1エントリを第1の値に設定する第1コマンドを送信することを含む。第1の値は、デバイスで実行されるデバッグセッションが、第1タイプの低電力モードからデバイスが出るのをデバッグすることを含むべきであることを示す。第1エントリの値を第1の値に設定することは、デバイスの1つ以上のコア論理部が、第1タイプの低電力モードからデバイスが出た後に処理を再開することをPMMが禁止することを引き起こす。本方法は、デバイスが第1タイプの低電力モードから出たことを示す情報を受信したことに応答して、1つ以上のデバッグ素子を、デバイスが第1タイプの低電力モードに移行する前に存在していた各自のデバッグ状態に再構築するために、デバイスに情報を送信することも含む。そして、第1タイプの低電力モードからデバイスが出た後に、1つ以上のデバッグ素子の再構築が完了したことに応答して、本方法は、そのデバイスに関するデバッグセッションを再開すること、及び第2コマンドをデバイスに送信することを含み、第2コマンドは1つ以上のCSレジスタの第2エントリを第2の値に設定するものである。第2の値はデバッグ素子の再構築が完了したことをPMMに通知し、PMMは、1つ以上のコア論理部が処理を再開できるようにすることで、CSレジスタの第2エントリにおける第2の値の検出に応答する。
【００５０】
一実施形態による方法は、次のような処理も含む：デバイスの1つ以上のデバッグ素子及び1つ以上のCSレジスタからデバッグセッションデータ及びデータ情報を周期的に受信すること；デバイスが低電力モードに移行したことを示す情報を受信したことに応答して、デバッグコマンドをデバイスに送信することを中断すること；及びデバイスが第2タイプの低電力モードから出たことを示す情報を受信したことに応答して、1つ以上のデバッグ素子の再構築を開始することなく、デバイスのデバッグセッションを再開すること。
【００５１】
更に別の実施形態における方法は、次の処理を含む：進行中のデバッグセッションの最中にデバイスとの通信の欠落を検出すること；通信の欠落が続いている間デバッグセッションを中断すること；デバイスとの通信が再確立された場合、デバイスから次の情報を受信すること；受信した次の情報から、通信の欠落はデバイスが低電力モードに移行したことに起因していたことを判別すること。本方法は更に次の処理を含んでもよい：低電力モードが第1タイプの低電力モードであるか否かを判定すること；低電力モードが第1タイプの低電力モードであったことに応答して、第2コマンドをデバイスに送信し始めること。また、デバイスが低電力モードから出た後にデバッガアプリケーションがデバッグセッションデータ及び状態お重法を受信したことに応答して、本方法は、受信したデータ及び状態情報を、低電力モードから出たことに関連付けるようにタグ付する処理を含んでもよい。デバッガアプリケーションは、デバイスが低電力モードを出たことにどのデバッグデータが対応しているかを判別することができる。説明される実施形態によれば、第1エントリはエグジットホールドリセットイネーブル(EHRE)ビットであり、第1コマンドはEHREビットを論理1の値に設定する信号であり、第2エントリはエグジットホールドリセットリリース(EHRR)ビットであり、第2コマンドはEHRRビットを論理1の値に設定する信号であり、本方法は、PMMが以下の処理の1つ以上を実行するようにEHRRビットトリガを設定する：(a)  低電力モードから出た際に、PMMが、1つ以上のコア論理部に対する電力供給をEHRRビットが論理1の値に設定されるまで差し控える場合に、1つ以上のコア論理部に電力を供給し、コア論理部がデバイスの処理を再開できるようにすること、及び(b)デバイスが低電力モードから出た際に、PMMが1つ以上のコア論理部に対するリセット信号をアサートし、HERRビットが論理1の値に設定されるまでリセット信号をアサートし続ける場合に、リセット信号のアサートをネゲートし、1つ以上のコア論理部がデバイスの処理を再開できるようにすること。
【００５２】
DPS105の機能要素を実現することに関し、一実施形態によるデータ処理システムは、プロセッサと、プロセッサに結合されたメモリと、制御及び状態(CS)レジスタ及び電力管理モジュール(PMM)を含むデバイスに対する接続を可能にするインタフェース手段とを有する。DPS105は更にデバッガアプリケーションを有し、デバッガプリケーションは、プロセッサにおいて動作しかつ低電力モードデバッグ(LPM)ユーティリティを有する。LPMユーティリティはプロセッサにおいてCSレジスタの第1エントリを第1の値に設定する第1信号をインタフェース手段を介して送信する機能を実行し、第1信号は、デバッグセッションが再開されデバイスが低電力モードから復帰したことを確認するまで、デバイスの1つ以上の処理リソースに対するリセット信号をネゲート又はリリースすることを控えるように、デバイスのPMMに対してトリガを与える。ユーティリティは更に次の機能も有する：デバイスが低電力モードに移行したことを示す状態の検出に応じて、デバイスのデバッグを中断すること；デバイスが低電力モードから復帰することを監視すること；デバイスが低電力モードから復帰したことの検出に応答して、インタフェース手段を介して、CSレジスタの第3エントリの値を受信すること；第3エントリがVLLS状態からの復帰を示す第1の値を有していたことに応答して(低電力モードのイベントの最中にデバッグ素子に関する状態は失われていることを示す)、インタフェース手段を通じてデバイスの1つ以上のデバッグ素子に情報を転送し、1つ以上のデバッグ素子を、デバイスが低電力モードに移行する前に存在していた所望の状態に戻るようにすること；1つ以上のデバッグ素子への情報の転送が完了したことに応答して、インタフェース手段を介して第2信号を送信し、CSレジスタの第2エントリの第2の値をリリース値に設定し、そのリリース値がPMMにより検出されるようにし、PMMはリセット信号をアサートし、デバイスの1つ以上の処理リソースが処理を再開できるようにすること。
【００５３】
第3エントリがLLS状態からの復帰を示す第2の値を有していたことに応答して、デバッグアプリケーションは次の機能を提供する：デバッグ情報を非常に低い低電力モードに関連付けて登録することなくデバッグセッションを再開すること；及び第2の値をリリース値に設定するために第2信号を送信すること。更に、代替実施形態において、LLS状態からの復帰を示すように、CSの第4エントリが提供されてもよい。そして、デバッグアプリケーションは、CSレジスタの第4エントリから、デバイスがLLS状態から復帰したことを示す第1の値を受信したことに応答して、1つ以上のデバッグ素子を再構築することなく、デバッグセッションの再開を行う機能を提供する。
【００５４】
一実施形態において、CSレジスタの第3エントリがPMMにより設定され、第1エントリはデバイスが低電力モードから復帰した後にヌルの値を有し、デバッガが第1信号を送信する場合に限って第1の値に設定され、第2エントリはデバイスが低電力モードから復帰した後にヌルの値を有し、ホールド値が第2エントリ内にあった場合、リセット信号のネゲート又はリリースを控える。
【００５５】
データ処理システムは更に出力デバイスを有し、LPMユーティリティは更に次の機能を有する：出力デバイスを介して出力を行うデバッガインタフェースは、デバイスが低電力モードから出る際に取得したデバッグ情報を示すデバイスに関するデバッグ出力を提供すること；及びデバッグ出力の中でどのデバッグ情報が、デバイスが低電力モードから出る際に取得したデバッグ情報に対応しているかを判別すること。
【００５６】
図5及び6は上記の実施形態の手順を実行するための様々な方法手順を示すフローチャートである。図5に示されている方法はシステム/デバイスを参照しながら説明されかつ図1-4に示される要素に関連付けられているが、これは説明の簡明化のためであるに過ぎず、様々な方法を実行する際に代替的なシステム、装置構成及び素子が使用されてもよいことが理解されるべきである。デバッガに関する特定の方法部分(図5)は、DPS105(図4)内のプロセッサ405上で動作するLPMユーティリティ435に関連するコアが実行し、DPS100において特定の処理デバッガ430を制御することで実現され、図5の方法はデバッガ430、LPMユーティリティ435及び/又はDPS105の内の1つ以上の観点から説明される。また、デバイスの低電力モード動作に関する特定の方法部分(図6)は、DPS105(図4)内のプロセッサ405又はデバイス130のPMM155内の論理部で動作するLPMユーティリティ435/デバッガ430に関するコードを実行し、CSレジスタエントリのセット及びリセットを制御することで実現され、図6に示す方法の右側は主にPMM155の観点から説明されるが、特定の機能がデバッガ430により及び特にDSP105において動作するLPMユーティリティ435により実行され/トリガを与えてよいことが理解されるであろう。
【００５７】
図5を参照するに、制御及び状態(CS)レジスタを備えたデバイスをデバッグするためのコンピュータにより行われる方法のフローチャートが示されており、CSレジスタは電力管理モジュール(PMM)に通信可能に結合されている。本方法はデバッガプロセス/セッションがデータ処理システムにおいて起動/開始され且つユーザにより設定された場合に始まる(ブロック502)。デバッガはEHREセット命令をターゲットデバイスに送信/発行し、EHREセット命令はDSP及びターゲットデバイス間で確立されるインタフェース手段を通じて送信される(ブロック504)。EHREセット命令の送信は、EHREレジスタ352のビット(又はCSレジスタ150の第1エントリ)を論理ハイ(1)に設定する結果となる。デバッガはデバイスにおける1つ以上のデバッグ素子を構築する(すなわち、状態を設定する)。デバッガ430は特定のターゲットデバイスのデバッグコードの開始をアクティブにする(ブロック506)。
【００５８】
設定されたEHREビットにより、デバッガはデバイスでバッグセッションに関するプログラムコードを実行し続ける(ブロック508)。デバッガはデバイスのデバッグ素子からデバッグデータを受信し続け、そのデバッグデータをプログラムされているように出力する(ブロック510)。一実施形態において、(CSレジスタ150の第3エントリから)VLLSビット値もデバッグデータと共に受信される。一実施形態においてLLSビット値はデバッグデータと共に受信されてもよい。これら様々なデバッグデータの受信は、周期的であってもよいし、予め設定されたスケジュール(予定)に従って行われてもよいし、デバッガに関するデバッグデータを生成するデバイスにおいて或る条件が満たされた場合に行われてもよい。デバイスが低電力モードに移行した場合、及びデバイスとの通信が途絶えた場合、判定ブロック512において、通信が遮断されたか否かの検査が行われる(あるいは、インタフェース手段において検出されたデバイスとの接続の不具合の有無が検査されてもよい)。そのような接続の不具合/遮断が検出された場合、デバッガは、ローカルなデバッグコアによるデバイスの目下進行中のデバッグ処理を中断し、デバッガが不具合を起こしてしまうことを回避する  (ブロック514)。一実施形態において、デバッガは、検出された通信/接続の不具合を示す情報をデバッグ出力において出力する(ブロック516)。そしてデバッガはデバイスインタフェースの周期的なポーリングを起動し、デバイスの再接続状態を検査する(ブロック518)。判定ブロック520において、デバッガはデバイスとの通信が再確立されたか否かを判定し、通信が良好に再確立された場合(デバイスがオンラインに戻ったこと又は手電力モードから復帰したことを示していた場合)、デバッガはVLLSステータスレジスタ356に問い合わせを行い、デバイスが第1タイプの低電力モードから丁度復帰したところであるか否かを判定する。
【００５９】
代替実施形態において、VLLSビットの値は、デバッガに対するデバイスハンドシェークの手順において、デバッガに自動的に通知され、デバイスがオンライン状態に戻ったことを通知してもよい。別の代替実施形態において、デバッガはVLLSビットの値を含むステータス情報を周期的に受信し、デバッガがそれに応答してもよい。例えば、あるタイプのデバイスは、デバッガ及びデバイス間の通信可能な状態を失うことなく、低電力モードに移行してもよい。その場合、デバッガは通信の遮断が生じたことの通知を検出又は受信することはなく、従ってデバッガはブロック514-522に示されるステップを実行しなくてよい。しかしながらVLLSビット/エントリの現在状態の最新情報(アップデート)を周期的に受信することで、それでも、デバッガはデバイスが低電力モードから復帰した直後の低電力モードイベントの発生に応答することができる。フローチャートを参照するに、(一連のブロック514-522を介して又は代替実施形態の周期的な通知方法を介して)CSレジスタ150から受信したVLLSビットの値を利用して、デバッガはVLLSビットが、デバイスは第1タイプの低電力モードから復帰したことを示す第1の値(例えば、論理ハイ(1))に等しいか否かを判定する(ブロック524)。VLLSビット値が第1の値であった場合(及びヌル値でなかった場合)、デバイスにおけるデバッグ素子の状態を、デバイスが低電力モードに移行する前に存在していた状態に復元するトリガを与える(ブロック526)。そしてデバッガはデバイスに対するデバッグプログラムコードの実行/発行を再開する(ブロック528)。
【００６０】
デバッガがデバイスにおけるデバイス素子を再設定するプロセスを完了すると、デバッガはEHRRレジスタ値を論理ハイ(1)に設定する信号を送信する(ブロック530)。そしてデバッガは低電力モードから出た際にコアの状態値を取得及び登録し(PMMによるリセットの後)(ブロック532)、デバッガは、低電力状態へ/低電力状態からのデバイスの出入りに関連するように設定/指定された出力とともに、低電力モードに移行すること及びそこから復帰することをカバーするデバッグ状態の出力を生成する(ブロック534)。
【００６１】
説明される実施形態において、デバッガは、デバイスが周期的に(又は他の方法で)低電力モードに出入りするか否かによらない制御された方法でソフトウェアバッグセッションを継続することが可能であり、低電力モードでは電力を節約するためにデバイスのほとんどの部分に対する電力が遮断される。電力が失われる結果、デバッガ及びデバイス間の通信は失われ、デバイスのデバッグコンフィギュレーションも失われる。
【００６２】
一実施形態によれば、デバッガは次の処理を実行する：(a)インタフェース手段を介して送信され且つ第1エントリ値に設定する第1信号を生成すること、及び(b)インタフェース手段を介して送信され且つターゲットデバイスの低電力モードからの復帰の検出後に第2エントリ値に設定する第2信号を生成すること。本願において更に説明されているように、デバッガによる第1エントリ値の設定は第1信号線上でPMMに対して第1の高い値をアサートし、PMM論理部は、第1信号線上でアサートされた値をラッチ(保持)することで、ターゲットデバイスが低電力モードに移行したことの検出に応答する。更に、デバッガによる第2エントリ値の設定は第2信号線上でPMMに対して第2の高い値をアサートし、PMM論理部は、第1の素子群に対してリセットコマンドをアサートすることで、第2の信号線における第2の高い値のネゲート又はリリースの検出に応答する。
【００６３】
デバッガは、ターゲットデバイスとの通信の遮断を検出したことに応答して、ターゲットデバイスが低電力モードに移行したことを検出する。デバイスが低電力モードに移行した場合、デバイスの1つ以上のデバッグ素子は電力の供給を失い、従ってそのデバッグデータ及びデバッグ状態を失い、デバッグデータ及びデバッグ状態は、デバイスが処理を再開する場合に同じデバッグセッションを継続するのに必要である。本願において説明されているようなデバッグリカバリ方法の実行は、外部のデバッグリクエスト入力もCPUの他の論理部も当てにしていない。説明されているように、デバッガはデバイスの処理コア(又はCPU)に対するリセット及び/又はクロックを選択的に制御し、デバッガがデバイスに再接続され且つデバッグリソースを以前の状態(低電力モードに移行する前の状態)に構築し終えるまでベクトルフェッチを延期する。
【００６４】
図6はデバッグシステムのデバイス側で行われる処理を示す。図6のプロセスは開始ブロック602から始まり、ブロック604に進み、デバイスが低電力モードに移行したことをPMMが検出する。PMM論理部はEHREレジスタの現在値をラッチし、その値がEHRE信号線上でアサートされる(ブロック606)。PMMはデバイスの残りの素子に対する電力を排除する(ブロック608)。その後、PMMは、低電力モードからのデバイスの復帰を促すトリガ示す入力が受信されたか否かを判定する(ブロック610)。入力が受信されなかった場合、PMMはデバイスを低電力モードに維持する(ブロック612)。低電力モードからの復帰を示す信号/入力が検出された場合、PMM論理部は、VLLSステータスレジスタ値を論理ハイ(1)に設定することをVLLS信号線上でアサートする(ブロック614)。PMM論理部はラッチ270内の値を検査し(ブロック616)、その値が第1の値(1)であるか否かを判定し、第1の値は、リリース信号がデバッガから受信されるまで、PMMがコアのリセットを維持すべきことを示す(ブロック618)。ラッチの値が第1の値であった場合、PMM論理部はデバイス内の第2の素子群(すなわち、コア処理部以外)に対する電力を復旧させる(ブロック620)。コア素子部が内蔵された又は取り付けられたデバッグ素子である第1実施形態の場合、PMM論理部は、コア素子部に対する電力を回復させ、デバッグ素子を各自の所望の状態に復元/再構築できるようにするが、PMMはコア論理部自体をリセット状態に維持又は保持する。あるいは、別の実施形態において、PMMは(リセット/給電の最中及び/又は以後に)コア論理部が何らかのクロックを受信することを禁止し、デバッガにより明示的にリリースされるまでコアが処理を再開することを禁止する。この代替的な実施形態は、PMMからトリガを受信した場合にコア論理部に対するクロックサイクルの供給を制御することができるデバイスの中間素子によって達成できる。コア素子部が全てのデバッグ素子から個別に給電される別の実施形態の場合、PMMは単にコア論理部からの給電を一緒に停止し、コア素子が給電されて処理を再開/開始することを禁止する。実施形態によらず、PMMがコアをオンにホールドすること(代替実施形態においては電力をコアに給電すること)をリリース又はネゲートすることを示す特定の値(論理1)に、デバッガがEHRRビットの値を設定したことをPMMが検出するまで、PMMはコアがコアの処理を開始することを効率的に禁止する。
【００６５】
コアのリセットのネゲート又はリリースに関し、(デバッガがセットコマンドをEHRRエントリ/ビット/レジスタに送信することで)PMM論理部はEHRR信号線をポーリングする(ブロック622)。EHRR値がHERRレジスタにおいて論理ハイに設定された場合、EHRR値がPMMに対するEHRR信号線上でアサートされ(すなわち送信され)(ブロック624)、PMM論理部は処理を再開するコア素子に対するリセットのアサートをネゲート又はリリースする(ブロック626)。
【００６６】
上記のフローチャートに関する1つ以上の方法は、コンピュータで読み取ることが可能なコードを含むコンピュータ読み取り可能な媒体により実現されてもよく、コンピュータ読み取り可能なコードがコンピュータ装置において(処理装置により)実行される場合、一連のステップが実行される。一実施形態において、方法の或るステップは、本発明の精神及び範囲から逸脱することなく、組み合わせて実行されもよいし、同時に又は別の順序で実行されてもよいし、場合によっては省略されてもよい。すなわち特定の順序で方法プロセスが説明及び図示されたが、特定の順序の処理を行っていることは本発明に対する如何なる限定をも意味するものではない。本発明の精神及び範囲から逸脱することなく、一連のプロセスに関して変形が施されてもよい。従って特定の順序が使用されていることは限定的に解釈されてはならず、本発明の範囲は特許請求の範囲及び均等物に及んでいる。
【００６７】
説明された実施形態に関し、上記の方法は、低電力モード状態から復帰したデバイスのデバッグを可能にするデバイスにおいて実行される。デバイスは、命令を処理し及びデバイスの処理機能を実行する第1の素子群と、デバイスのデバッグ処理を支援し、電力供給を受けている間は1つ以上の現在のデバッグ状態を維持(保持)する第2の素子群と、PMM論理部を有する電力管理モジュール(PMM)とを有し、PMM論理部は以下の機能を実行する：第1の素子群及び第2の素子群から電力を除去していた低電力モードからのデバイスの復帰をアクティブにする入力を受信したことに応答して、デバイスが移行していた低電力モードのタイプを判別すること；及び第2の素子群の現在のデバッグ状態が失われている第1タイプの低電力モードからデバイスが復帰したことに応答して、第2の素子群が各自のその時点現在のデバッグ状態に再設定されるまで、第1の素子群の1つ以上が処理を再開することを禁止すること。
【００６８】
デバイスのPMM論理部は以下の機能を更に実行する：デバイスが低電力モードに移行したことを検出すること；デバイスが低電力モードに移行したことの検出に応答して、第1の素子群に対してリセット信号を自動的にアサートすること；デバイスが第1タイプの低電力モードから復帰することに応答して、リセット信号をアサートし続けること；リセット信号のアサートはもはや不要であることを示す入力を受信すること；リセット信号のアサートはもはや不要であることを示す入力の受信に応答して、第1の素子群が処理を再開できるようにリセット信号を自動的にネゲートすること。
【００６９】
一実施形態において、PMMは、第2の素子群に対する電力を供給することとは別個独立に、第1の素子群に電力を繊細に供給する電力割り当て手段を有し、PMM論理部は更に次の機能を実行する：第1タイプの低電力モードからの復帰に応答して、第2の素子群に電力を速やかに供給すること；第2の素子群が各自のその時点現在のデバッグ状態に再構築されたことを示す入力を受信するまで、第1の素子群に対する電力の供給を遅らせる(遅延させる)こと。
【００７０】
一実施形態において、1つ以上のCSレジスタは1つ以上の信号線を介してPMMに結合され、PMMはラッチを有する。デバイスが低電力モードへ移行したことをPMMが検出したことに応答して、PMM論理部は、ラッチにおいて、CSレジスタの第1エントリの現在値をラッチする。デバイスが低電力モードから復帰したことに応答して、論理部は次の機能を実行する：ラッチに保存されているラッチの値を検査すること；及びラッチの値が第1の値であったことに応答して、第1の素子群に対するリセット信号のネゲートを控えること。リセット信号のネゲートは、第1の素子群が処理状態に入れるようにするために必要である。PMM論理部は、1つ以上のCSレジスタの第2エントリの現在値を検査し、第2エントリに関連する現在値が第2の値であったことに応答して、PMM論理部は第1の素子群に対するリセット信号をネゲートする。
【００７１】
一実施形態において、デバイスは外部デバッガとデバイスとの通信を可能にする通信インタフェースを有する。外部デバッガは第2の素子群及び1つ以上のCSレジスタに通信可能に結合され、外部デバッガが次の処理を実行できるようにする：デバッグ情報を第2の素子群との間で通信すること；CSレジスタの1つ以上のエントリの値を設定すること；CSレジスタの1つ以上のエントリから1つ以上の値を受信すること；デバイスが第1のタイプの低電力モードに移行する前に存在していたその時点現在のデバッグ状態に、第2の素子群の状態を戻すこと。
【００７２】
更に別の実施形態の場合、PMM論理部は次の機能を更に実行する：デバイスが移行していた低電力モードが第1タイプの低電力モードであるか否かを判定すること(第1タイプならば、第2の素子群の内の1つ以上のデバッグ素子を復元し、デバイスにおけるデバッグ処理のシームレスな(途切れない)再開を可能にし、デバイスが低電力モードから出ることをカバーする(出ることに対処する)デバッグデータを取得することを要する)；低電力モードが第1タイプの低電力モードであったことに応答して、CSレジスタの第3エントリの値を自動的に設定し、低電力モードが第1タイプの低電力モードでありデバイスのリセットのネゲートのホールドにトリガを与えることを示すこと。リセットのネゲートを控えることは、リセット信号がPMM論理部によりネゲートされる前に、外部デバッガが1つ以上のデバッグ素子を先に復元できるようにする。
【００７３】
当業者に理解されるように、本発明は方法、システム、コンピュータプログラム及び/又はコンピュータプログラム関連製品として実現されてもよい。従って本発明は完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)又はソフトウェア及びハードウェアの形態を組み合わせている実施形態により実現されもよく、ハードウェアは「回路」、「モジュール」、「論理部」又は「システム」のように言及されている全てを一般的に示す。更に本発明は、コンピュータが利用可能なプログラムコードが媒体内又は媒体上に組み込まれているコンピュータが利用可能な媒体におけるコンピュータプログラムプロダクトの形態であってもよい。
【００７４】
更に理解されるように、本発明の実施形態におけるプロセスは、ソフトウェア、ファームウェア、マイクロコード又はハードウェアの任意の組み合わせを使用して実現されてもよい。本発明をソフトウェアで実現する予備的な段階として、プログラムコード(ソフトウェア又はファームウェア)は、固定(ハード)ドライブ、ディスケット、磁気ディスク、光ディスク、磁気テープ、半導体メモリ(RAM、ROM、PROM等)等のような1つ以上のマシン読み取り可能なストレージ媒体に保存され、本発明による製品とするのが一般的である。プログラムコードを含む製品は、ストレージデバイス中のコードを直接的に実行することにより、ストレージデバイス中のコードをハードディスクやRAM等の他のストレージデバイスにコピーすることにより、又はディジタル及びアナログ通信リンクのような伝送形式の媒体を利用して遠隔的な実行に備えてコードを送信することにより、使用される。媒体は、電子的な、磁気的な、光学的な、電磁的な、赤外線による、半導体システム(装置又はデバイス)による、又は伝搬形式の媒体としてよい。更に、媒体は、実行システム、装置又はデバイスにより又はそれに関連して使用するプログラムを収容、保存、通信、伝搬又は転送する任意の装置としてよい。本発明による方法は、説明された実施形態によるコードを含む1つ以上のマシン読み取り可能なストレージデバイスと、包含されているコードを実行する適切な処理ハードウェアとを組み合わせることで実現されてもよい。本発明を使用する装置は、本発明によりコード化されたプログラムに対する(サーバを介する)ネットワークアクセス手段を有する又は含むストレージシステム及び処理装置の1つ以上とすることができる。本願においては一般にコンピュータ、コンピュータシステム又はデータ処理システムという用語は、記憶媒体中の命令/コードを実行するプロセッサ(又は処理装置)を有する任意の装置を包含するように広範に規定することができる。
【００７５】
従って重要なことは、本発明について説明された形態はインストールされた(又は実行される)ソフトウェアとともに完全に機能的なコンピュータ(サーバ)システムに関連して説明されているが、本発明の説明されたソフトウェアの形態は様々な形態のプログラム製品として分配されてもよいこと、及び本発明の説明された形態はその配布を実際に行うのに使用される特定の媒体の形式によらず等しく実行可能であることを当業者は認めるということである。一例として、媒体の形式の排他的でないリストは、フロッピディスク、サムドライブ、ハードディスクドライブ、CDROM、DVD等のような記録可能な形式の(有体の)媒体や、ディジタル及びアナログ通信リンクのような伝送形式の媒体を含む。
【００７６】
本発明は実施形態を参照しながら説明されてきたが、本発明の範囲から逸脱することなく、様々な変更がなされもよいし、本発明の構成要素が均等物と置換されてもよいこと等が、当業者に理解されるであろう。更に、本発明の本質的な範囲から逸脱することなく、本発明の教示内容に関する多くの変形例が特定のシステム、装置又は素子に適用されてもよい。従って本発明は本発明を使用するように開示されている特定の実施形態に限定されるものではなく、本発明は添付の特許請求の範囲に該当する全ての実施形態を包含している。なお、第1、第2等の用語の使用は、何らかの特定の順序や重要性を示すものではなく、むしろ第1、第2等の用語は或る要素と他の要素とを区別するために使用されているに過ぎない。
【符号の説明】
【００７７】
100  システム
105  データ処理システム
110  ディスプレイデバイス
115  グラフィカルユーザインタフェース
120  データ通信インタフェース
123  コネクタ
125  シリアルケーブル
130  ターゲットデバイス
132  第1ドメイン
134  第2ドメイン
135  コア及び周辺処理部
140  デバッグ素子部
145  JTAG/cJTAG/SWDインタフェース
150  制御及び状態レジスタ
155  電力管理モジュール
【図１】
0005762924.tif 000002
【図２Ａ】
0005762924.tif 000003
【図２Ｂ】
0005762924.tif 000004
【図２Ｃ】
0005762924.tif 000005
【図３Ａ】
0005762924.tif 000006
【図３Ｂ】
0005762924.tif 000007
【図３Ｃ】
0005762924.tif 000008
【図３Ｄ】
0005762924.tif 000009
【図３Ｅ】
0005762924.tif 000010
【図３Ｆ】
0005762924.tif 000011
【図４】
0005762924.tif 000012
【図５Ａ】
0005762924.tif 000013
【図５Ｂ】
0005762924.tif 000014
【図６】
0005762924.tif 000015