(57)【要約】通信（例えば、ＣＤＭＡ）システムにおける送信を処理するためであることを含む（ただし、前記処理することに限定されない）デジタル信号プロセッサの設計及び使用に関する技法。方法及びシステムは、前記デジタル信号プロセッサの電力遷移シーケンスと関連してデバッギングレジスタとデジタル信号プロセッサプロセスとの間においてデータを転送することを制御する。デジタル信号プロセッサにおいて、デバッギングレジスタは、前記コアプロセッサプロセス及び前記デバッギングプロセスと関連する。制御ビットは、前記デバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを制御する。前記制御ビットは、電力遷移シーケンスのイベントにおいて前記デバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送することを防止する。制御ビットは、前記デバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントにおいて前記デジタル信号プロセッサの電力遷移シーケンスも防止する。【選択図】図７
2010510582.tif 000002
【特許請求の範囲】
【請求項１】
デジタル信号プロセッサの電力遷移シーケンスと関連して複数のデバッギングレジスタと複数のデジタル信号プロセッサプロセスとの間においてデータを転送するための方法であって、
複数のデバッギングレジスタをコアプロセッサプロセス及びデバッギングプロセスと関連づけることと、
前記デジタル信号プロセッサ内において電力遷移シーケンスが生じたときに複数のデバッギングレジスタ間及び前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に前記複数のデバッギングレジスタ内の少なくとも１つのレジスタ制御ビットを設定することと、
前記複数のデバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するときに前記デジタル信号プロセッサの電力遷移シーケンスを防止するための電力遷移防止値を防止するために前記複数のデバッギングレジスタ内の関連づけられた少なくとも１つの電力制御ビットを設定すること、とを備える、方法。
【請求項２】
転送防止値は、パワーアップシーケンスが生じたときに前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止する請求項１に記載の方法。
【請求項３】
前記デジタル信号プロセッサに関してパワーダウンシーケンスが生じたときに前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための前記転送防止値に前記少なくとも１つのレジスタ制御ビットを設定することと、
前記複数のデバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するときに前記デジタル信号プロセッサの前記パワーダウンシーケンスを防止するための前記電力遷移防止値に前記少なくとも１つの電力制御ビットを設定すること、とをさらに備える請求項１に記載の方法。  
【請求項４】
前記デバッギングレジスタは、複数のデバッギングコンフィギュレーションレジスタを備え、
前記デジタル信号プロセッサに関して前記電力遷移シーケンスが生じたときに前記複数のデバッギングコンフィギュレーションレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための前記転送防止値に前記少なくとも１つのレジスタ制御ビットを設定することと、
前記複数のデバッギングコンフィギュレーションレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するときに前記デジタル信号プロセッサの前記電力遷移シーケンスを防止するための前記電力遷移防止値に前記少なくとも１つの電力制御ビットを設定すること、とをさらに備える請求項１に記載の方法。
【請求項５】
前記デバッギングプロセスが信頼されるデバッギングプロセスであることを確認するステップをさらに備える請求項１に記載の方法。
【請求項６】
前記転送防止値は、無効状態値を備え、前記無効状態値に応じて前記コアプロセッサのパワーアップシーケンスのイベントにおいて前記デバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間における読み取り／書き込み転送を無効化するステップをさらに備える請求項１に記載の方法。
【請求項７】
前記転送防止値は、無効状態値を備え、前記無効状態値に応じて前記コアプロセッサのパワーダウンシーケンスのイベントにおいて前記デバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間における読み取り／書き込み転送を無効化するステップをさらに備える請求項１に記載の方法。
【請求項８】
前記電力遷移防止値は、割り込みディスエーブル値を備え、前記割り込みディスエーブル値に応じて前記デバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間における読み取り／書き込み転送中に電力崩壊をディスエーブルにするステップをさらに備える請求項１に記載の方法。
【請求項９】
前記デジタル信号プロセッサに関してパワーアップシーケンスが生じるのに後続して前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを許可するための転送許可値に前記少なくとも１つのレジスタ制御ビットを設定することをさらに備える請求項１に記載の方法。
【請求項１０】
前記複数のデバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントに後続して前記デジタル信号プロセッサの電力遷移シーケンスを許可するための電力遷移許可値に前記少なくとも１つの電力制御ビットを設定するステップをさらに備える請求項１に記載の方法。
【請求項１１】
デジタル信号プロセッサの電力遷移シーケンスと関連して複数のデバッギングレジスタと複数のデジタル信号プロセッサプロセスとの間においてデータを転送する際に前記デジタル信号プロセッサと関連して動作するためのデジタル信号プロセッサデバッギングシステムであって、
コアプロセッサプロセス及びデバッギングプロセスと関連づけられた複数のデバッギングレジスタと、
前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを制御するために前記複数のデバッギングレジスタ内において確立された少なくとも１つのレジスタ制御ビットと、
前記デジタル信号プロセッサに関して電力遷移シーケンスが生じるイベントにおいて前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に設定することができる前記少なくとも１つのレジスタ制御ビットと、
前記複数のデバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントにおいて前記デジタル信号プロセッサの電力遷移シーケンスを防止するための電力遷移防止値を防止するために設定することがさらにできる前記少なくとも１つの電力制御ビットと、を備える、デジタル信号プロセッサデバッギングシステム。
【請求項１２】
前記デジタル信号プロセッサに関してパワーアップシーケンスが生じるイベントにおいて前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に前記少なくとも１つのレジスタ制御ビットを設定するための回路と命令とをさらに備える請求項１１に記載のデジタル信号プロセッサデバッギングシステム。
【請求項１３】
前記デジタル信号プロセッサに関してパワーダウンシーケンスが生じるイベントにおいて前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に設定するための少なくとも１つのレジスタ制御ビットと、
前記複数のデバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントにおいて前記デジタル信号プロセッサのパワーダウンシーケンスを防止するための電力遷移防止値に設定するための少なくとも１つの電力制御ビットと、を備える請求項１１に記載のデジタル信号プロセッサデバッギングシステム。
【請求項１４】
前記デバッギングレジスタは、複数のデバッギングコンフィギュレーションレジスタを備え、
前記デジタル信号プロセッサに関して電力遷移シーケンスが生じるイベントにおいて前記複数のデバッギングコンフィギュレーションレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に設定するための少なくとも１つのレジスタ制御ビットと、
前記複数のデバッギングコンフィギュレーションレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントにおいて前記デジタル信号プロセッサの電力遷移シーケンスを防止するための電力遷移防止値に設定するための少なくとも１つの電力制御ビットと、をさらに備える請求項１１に記載のデジタル信号プロセッサデバッギングシステム。
【請求項１５】
前記デバッギングプロセスが信頼されるデバッギングプロセスであることを確認する際に少なくとも１つの信頼されるデバッギング制御ビットを提供するための信頼されるデバッギングプロセスレジスタをさらに備える請求項１１に記載のデジタル信号プロセッサデバッギングシステム。
【請求項１６】
前記転送防止値は、無効状態値を備え、前記無効状態値に応じて前記コアプロセッサのパワーアップシーケンスのイベントにおいて前記デバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間における読み取り／書き込み転送を無効化するための回路と命令とをさらに備える請求項１１に記載のデジタル信号プロセッサデバッギングシステム。
【請求項１７】
前記転送防止値は、無効状態値を備え、前記無効状態値に応じて前記コアプロセッサのパワーダウンシーケンスのイベントにおいて前記デバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間における読み取り／書き込み転送を無効化するための回路と命令とをさらに備える請求項１１に記載のデジタル信号プロセッサデバッギングシステム。
【請求項１８】
前記電力遷移防止値は、割り込みディスエーブル値を備え、前記割り込みディスエーブル値に応じて前記デバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間における読み取り／書き込み転送中に電力崩壊をディスエーブルにするための回路と命令とをさらに備える請求項１１に記載のデジタル信号プロセッサデバッギングシステム。
【請求項１９】
前記デジタル信号プロセッサに関してパワーアップシーケンスが生じるのに後続して前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを許可するための転送許可値に前記少なくとも１つのレジスタ制御ビットを設定する請求項１１に記載のデジタル信号プロセッサデバッギングシステム。
【請求項２０】
前記複数のデバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントに後続して前記デジタル信号プロセッサの電力遷移シーケンスを許可するための電力遷移許可値に前記少なくとも１つの電力制御ビットを設定するための回路と命令とをさらに備える請求項１１に記載のデジタル信号プロセッサデバッギングシステム。
【請求項２１】
パーソナル電子デバイスをサポートする動作に関するデジタル信号プロセッサであって、
前記デジタル信号プロセッサの電力遷移シーケンスと関連して複数のデバッギングレジスタと複数のデジタル信号プロセッサプロセスとの間においてデータを転送するための手段を備え、
前記複数のデバッギングレジスタとコアプロセッサプロセスとデバッギングプロセスとの間においてデータを転送するのを制御するための少なくとも１つのレジスタ制御ビットを前記複数のデバッギングレジスタ内において確立するための手段と、
前記デジタル信号プロセッサに関して電力遷移シーケンスが生じるイベントにおいて前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に前記少なくとも１つのレジスタ制御ビットを設定するための手段と、
前記複数のデバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントにおいて前記デジタル信号プロセッサの電力遷移シーケンスを防止するための電力遷移防止値を防止するために前記少なくとも１つの電力制御ビットを設定するための手段と、を備える、デジタル信号プロセッサ。
【請求項２２】
前記デジタル信号プロセッサに関してパワーアップシーケンスが生じるイベントにおいて前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に前記少なくとも１つのレジスタ制御ビットを設定するための手段をさらに備える請求項２１に記載のデジタル信号プロセッサシステム。
【請求項２３】
前記デジタル信号プロセッサに関してパワーダウンシーケンスが生じるイベントにおいて前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に前記少なくとも１つのレジスタ制御ビットを設定するための手段と、
前記複数のデバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントにおいて前記デジタル信号プロセッサのパワーダウンシーケンスを防止するための電力遷移防止値に前記少なくとも１つの電力制御ビットを設定するための手段と、を備える請求項２１に記載のデジタル信号プロセッサシステム。
【請求項２４】
前記デバッギングレジスタは、複数のデバッギングコンフィギュレーションレジスタを備え、
前記デジタル信号プロセッサに関して電力遷移シーケンスが生じるイベントにおいて前記複数のデバッギングコンフィギュレーションレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に前記少なくとも１つのレジスタ制御ビットを設定するための手段と、
前記複数のデバッギングコンフィギュレーションレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントにおいて前記デジタル信号プロセッサの電力遷移シーケンスを防止するための電力遷移防止値を防止するために前記少なくとも１つの電力制御ビットを設定するための手段と、をさらに備える請求項２１に記載のデジタル信号プロセッサシステム。
【請求項２５】
前記デバッギングプロセスが信頼されるデバッギングプロセスであることを確認するための手段をさらに備える請求項２１に記載のデジタル信号プロセッサシステム。
【請求項２６】
前記転送防止値は、無効状態値を備え、前記無効状態値に応じて前記コアプロセッサのパワーアップシーケンスのイベントにおいて前記デバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間における読み取り／書き込み転送を無効化するための手段をさらに備える請求項２１に記載のデジタル信号プロセッサシステム。
【請求項２７】
前記転送防止値は、無効状態値を備え、前記無効状態値に応じて前記コアプロセッサのパワーダウンシーケンスのイベントにおいて前記デバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間における読み取り／書き込み転送を無効化するための手段をさらに備える請求項２１に記載のデジタル信号プロセッサシステム。
【請求項２８】
前記電力遷移防止値は、割り込みディスエーブル値を備え、前記割り込みディスエーブル値に応じて前記デバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間における読み取り／書き込み転送中に電力崩壊をディスエーブルにするための手段をさらに備える請求項２１に記載のデジタル信号プロセッサシステム。
【請求項２９】
前記デジタル信号プロセッサに関してパワーアップシーケンスが生じるのに後続して前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを許可するための転送許可値に前記少なくとも１つのレジスタ制御ビットを設定するための手段をさらに備える請求項２１に記載のデジタル信号プロセッサシステム。
【請求項３０】
前記複数のデバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントに後続して前記デジタル信号プロセッサの電力遷移シーケンスを許可するための電力遷移許可値に前記少なくとも１つのレジスタ制御ビットを設定するための手段をさらに備える請求項２１に記載のデジタル信号プロセッサシステム。
【請求項３１】
マルチスレッド化デジタル信号プロセッサをデバッグするために前記デジタル信号プロセッサにおいて命令を処理するために具体化されたコンピュータによって読み取り可能なプログラムコード手段を有するコンピュータによって使用可能な媒体であって、
複数のデバッギングレジスタをコアプロセッサプロセス及びデバッギングプロセスと関連づけるためのコンピュータによって読み取り可能なプログラムコード手段と、
前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを制御するための少なくとも１つのレジスタ制御ビットを前記複数のデバッギングレジスタ内において確立するためのコンピュータによって読み取り可能なプログラムコード手段と、
前記デジタル信号プロセッサに関して電力遷移シーケンスが生じるイベントにおいて前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に前記少なくとも１つのレジスタ制御ビットを設定するためのコンピュータによって読み取り可能なプログラムコード手段と、
前記複数のデバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントにおいて前記デジタル信号プロセッサの電力遷移シーケンスを防止するための電力遷移防止値を防止するために前記少なくとも１つの電力制御ビットを設定するためのコンピュータによって読み取り可能なプログラムコード手段と、を備える、コンピュータによって使用可能な媒体。
【請求項３２】
前記デジタル信号プロセッサに関してパワーダウンシーケンスが生じるイベントにおいて前記複数のデバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に前記少なくとも１つのレジスタ制御ビットを設定するためのコンピュータによって読み取り可能なプログラムコード手段と、
前記複数のデバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントにおいて前記デジタル信号プロセッサのパワーダウンシーケンスを防止するための電力遷移防止値に前記少なくとも１つの電力制御ビットを設定するためのコンピュータによって読み取り可能なプログラムコード手段と、をさらに備える請求項２８に記載のコンピュータによって使用可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される主題は、例えばデータ通信及び同様の用途において用いることができるデータ処理システム及びプロセスに関するものである。本開示は、より具体的には、デジタル信号プロセッサ電力遷移中におけるデバッギング動作を制御するための斬新な及び改良された方法及びシステムに関するものである。
【背景技術】
【０００２】
電気通信及びその他の種類の電子装置とそれをサポートする映像、複雑な音声、テレビ会議及びその他のリッチソフトウェアアプリケーションでは、信号処理を含むことがますます多くなっている。信号処理は、複雑であるが反復的なアルゴリズムにおいて高速な数学計算及びデータ生成を行うことが要求される。多くのアプリケーションは、リアルタイムでの演算が要求され、すなわち、信号は時間の連続関数であり、数値処理のためにサンプリングしてデジタル信号に変換しなければならない。プロセッサは、到着したサンプルに関する個別の演算を行うアルゴリズムを実行しなければならない。
【０００３】
デジタル信号プロセッサ（ＤＳＰ）のアーキテクチャは、該アルゴリズムを処理するように最適化される。優れた信号処理エンジンの特徴は、高速で柔軟な算術演算ユニットと、演算ユニットへの又は演算ユニットからの制限されないデータフローと、演算ユニット内における拡張された精密な動的範囲と、デュアルアドレス生成器と、効率的なプログラムシーケンシングと、プログラミングの容易さと、を含む。
【０００４】
ＤＳＰ技術の１つの有望な用途は、通信システム、例えば、衛星又は地上リンクを通じてのユーザー間における音声とデータの通信、テキストメッセージ送信、及びその他の用途をサポートする符号分割多元接続（ＣＤＭＡ）システム、を含む。多元接続通信システムにおけるＣＤＭＡ技術の使用は、“SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS”（衛星又は地上中継器を用いた拡散スペクトル多元接続通信システム）という題名を有する米国特許番号４，９０１，３０７及び“SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSET SYSTEM”（ＣＤＭＡセルラーテレハンドセットシステムにおいて波形を生成するためのシステム及び方法）という題名を有する米国特許番号５，１０３，４５９において開示されており、両特許とも、請求される主題の譲受人に譲渡されている。
【０００５】
ＣＤＭＡシステムは、典型的には、１つ以上の基準に準拠するように設計される。１つの該第１世代の基準は、“二重モード広帯域拡散スペクトルセルラーシステムに関するＴＩＡ／ＥＩＡ／ＩＳ−９５端末−基地局互換性基準”であり、以下ではＩＳ−９５基準と呼ばれる。ＩＳ−９５ＣＤＭＡシステムは、音声データ及びパケットデータを送信することができる。第１世代よりも効率的にパケットデータを送信することができるより新しい世代の基準が、“第３世代パートナーシッププロジェクト”（３ＧＰＰ）と呼ばれるコンソーシアムによって提供され、一般人が簡単に入手可能である一組の文書、例えば、文書番号３Ｇ  ＴＳ  ２５．２１１、３Ｇ  ＴＳ  ２５．２１２、３Ｇ  ＴＳ  ２５．２１３、及び３Ｇ  ＴＳ  ２５．２１４、において具体化されている。３ＧＰＰ基準は、以下ではＷ−ＣＤＭＡ基準と呼ばれる。
【０００６】
例えばＷ−ＤＣＭＡ基準を採用する複雑なＤＳＰ運用ソフトウェアは、強固な開発ツールが要求される。該開発ツールは、符号の生成、インテグレーション、試験、デバッギング、及びアプリケーション性能の評価のための開発ツールを含むことができる。ソフトウェア又は複雑なＤＳＰアプリケーション、例えば高度な電気通信アプリケーション、を開発及び運用する際には、精巧であるがその一方で非侵入型のデバッギングソフトウェアが必要である。すなわち、デバッギングソフトウェアアプリケーションは、ソフトウェアの欠陥及び運用上の問題の訂正をモニタリング、試験、及びサポートする上で十分に強固でなければならないだけでなく、デバッギング動作中にコアプロセッサソフトウェアと干渉しないように動作できなければならない。さもないと、コア処理ソフトウェア内のいずれの問題も、該デバッギングソフトウェアを使用中に検出することができず又は適切に検出することができない。
【０００７】
該デバッギング動作の一側面は、動的に行うことが可能であることに関連する。しかしながら、この能力は、デバイス、例えばデバッギング動作を実行するＤＳＰを採用するワイヤレスハンドセット、が電力を保存しなければならないということを考慮に入れなければならい。ＤＳＰは、電力を保存するために、頻繁に自動的にオフ状態になること又はアイドル動作モードに移行することができる。さらに、オフ又はアイドル状態に後続してプロセッサのブートが行われたときには、ＤＳＰにおけるさらなる動作上の変化が生じる可能性がある。特に、デバッギング動作に関連するデータを含むレジスタは、デバッギング動作中に動的に変化することがある。電力遷移が生じるイベントにおいては、データレジスタ読み取り及び／又は書き込み動作が悪影響を受けることがある。
【０００８】
従って、ＤＳＰ、例えばワイヤレスハンドセット又はポータブル電子デバイスＤＳＰ、における非侵入型ＤＳＰデバッギング及び電力保存という複雑で時々相容れない要求に対処する方法及びシステムが必要である。
【０００９】
単一の及び選択的マルチスレッドデバッギング動作に関する非侵入型デバッギングプロセスに関してマルチスレッド化ＤＳＰにおいて動作することができ、その一方で電力崩壊又はその他の電力遷移中にデバッギングコンフィギュレーションレジスタデータを保存する機能も備える方法及びシステムがさらに必要である。
【発明の概要】
【００１０】
マルチスレッド化デジタル信号プロセッサを含むデジタル信号プロセッサにおけるデジタル信号プロセッサ電力遷移中にデバッギング動作を制御するための技法が開示され、前記技法は、デジタル信号プロセッサの動作と、パソコン、パーソナルデジタルアシスタント、ワイヤレスハンドセット、及び同様の電子デバイスにおいて動作するアプリケーションを含むますます強力になるソフトウェアアプリケーションに関するデジタル信号プロセッサ命令の効率的な使用と、の両方を向上させ、さらに関連するデジタルプロセッサの速度及びサービス品質を向上させる。
【００１１】
開示される主題の一側面により、方法及びシステムは、前記デジタル信号プロセッサの電力遷移シーケンスと関連してデバッギングレジスタとデジタル信号プロセッサプロセスとの間においてデータを転送するのを制御する。コアプロセッサ内におけるコアプロセッサプロセス及びデバッギング機構内におけるデバッギングプロセスを動作させるデジタル信号プロセッサにおいて、本開示は、デバッギングレジスタを前記コアプロセッサプロセス及び前記デバッギングプロセスと関連づける。前記方法及びシステムは、前記デバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間におけるデータ転送を制御するための少なくとも１つのレジスタ制御ビットを確立することによって、電力遷移シーケンスのイベントにおいて前記デバッギングレジスタと前記コアプロセッサプロセスと前記デバッギングプロセスとの間においてデータを転送するのを防止する転送防止値に前記制御ビットを設定する。本開示は、電力遷移防止値を防止するために前記１つの制御ビットを設定することによって、前記デバッギングレジスタと前記コアプロセッサプロセス又は前記デバッギングプロセスとの間においてデータを転送するイベントにおいて前記デジタル信号プロセッサの電力遷移シーケンスを防止する。
【００１２】
開示される主題のこれらの利点とその他の利点、及び追加の斬新な特徴は、ここにおいて提供される説明から明確になるであろう。この発明の概要の意図は、請求される主題に関する包括的な説明を提供することではなく、主題の機能の一部について簡単に概説することである。ここにおいて提供されるその他のシステム、方法、特徴及び利点は、以下の図及び発明を実施するための形態を検討し次第当業者に明確になるであろう。これらのすべての追加のシステム、方法、特徴及び利点は、この説明の中に含められ、さらに添付される請求項の適用範囲内に含められることが意図される。
【図面の簡単な説明】
【００１３】
開示される主題の特徴、性質、及び利点は、以下の発明を実施するための形態を図面と併読することでより明確になるであろう。なお、図面全体において同様の参照文字は同様の要素を識別する。
【図１】本実施形態を実装することができる通信システムの単純化されたブロック図である。
【図２】本実施形態の教示を実行するためのＤＳＰアーキテクチャを示す。
【図３】開示される主題の技術的利点を提供するデジタル信号プロセッサの一実施形態のアーキテクチャブロック図を提供する。
【図４】開示される主題のデバッギング機構とコアプロセッサとの間のインタフェースを示す。
【図５】デバッギング動作モードを含むデジタル信号プロセッサの動作モードに適用可能なプロセス流れ図である。
【図６】本開示の一実施形態に適用可能なブレークポイント処理方式を示した図である。
【図７】パワーアップ遷移中における開示される主題の動作を示した図である。
【図８】パワーダウン遷移事例における開示される主題の動作を示した図である。
【発明を実施するための形態】
【００１４】
マルチスレッド化デジタル信号プロセッサにおけるデジタル信号プロセッサ電力遷移中にデバッギング動作を制御するための開示される主題は、ここにおいて提示される利益が有利であることができるあらゆる型のマルチスレッド化処理に関して用途を有する。１つの該用途は、電気通信において現れ、特に、１つ以上のデジタル信号処理回路を採用するワイヤレスハンドセットにおいて現れる。該ワイヤレスハンドセットをどのようにして用いることができるかについて説明するために、図１は、開示される割り込み処理方法及びシステムの提示される実施形態を実装することができる通信システム１０の単純化されたブロック図を提供する。送信機ユニット１２において、データは、データ源１４から、１つ以上のアナログ信号を生成するためにデータをフォーマット化、符号化、及び処理する送信（ＴＸ）データプロセッサ１６に、典型的にはブロックで送信される。次に、アナログ信号が、ベースバンド信号を変調、フィルタリング、増幅、及びアップコンバージョンして変調された信号を生成する送信機（ＴＭＴＲ）１８に提供される。変調された信号は、アンテナ２０を介して１つ以上の受信機ユニットに送信される。
【００１５】
受信機ユニット２２においては、送信された信号は、アンテナ２４によって受信されて受信機（ＲＣＶＲ）２６に提供される。受信機２６内において、受信された信号が増幅、フィルタリング、ダウンコンバージョン、復調、及びデジタル化されて同相の（Ｉ）及び（Ｑ）サンプルが生成される。これらのサンプルは、受信（ＲＸ）データプロセッサ２８によって復号及び処理されて送信されたデータが復元される。受信機ユニット２２における復号及び処理は、送信機ユニット１２において実行される符号化及び処理を補完する形で実行される。復元されたデータは、データシンク３０に提供される。
【００１６】
上述される信号処理は、音声、映像、パケットデータ、メッセージ送信、及びその他の種類の通信を一方向に送信することをサポートする。双方向通信システムは、2方向データ送信をサポートする。しかしながら、説明を単純化するため、図１には他方の方向に関する信号処理は示されていない。通信システム１０は、地上リンクを通じてのユーザー間における音声及びデータ通信をサポートする符号分割多元接続（ＣＤＭＡ）システム、時分割多元接続（ＴＤＭＡ）通信システム（例えば、ＧＳＭシステム）、周波数分割多元接続（ＦＤＭＡ）通信システム、又はその他の多元接続通信システムであることができる。１つの特定の実施形態においては、通信システム１０は、Ｗ−ＣＤＭＡ基準に準拠するＣＤＭＡシステムである。
【００１７】
図２は、図１の送信データプロセッサ１６及び受信データプロセッサ２８として働くことができるＤＳＰ４０アーキテクチャを示す。ＤＳＰ４０は、ここにおいて提示される教示及び概念を実効的に用いることができる非常に数多くの可能なデジタル信号プロセッサ実施形態のうちの１つの実施形態を表すにすぎないことを強調する。従って、ＤＳＰ４０においては、スレッドＴ０：Ｔ５（参照番号４２乃至５２）は、異なるスレッドからの命令の組を含む。回路５４は、命令アクセス機構を表し、スレッドＴ０：Ｔ５に関する命令をフェッチするために用いられる。回路５４に関する命令は、命令待ち行列５６内に入れられる。命令待ち行列５６内の命令は、プロセッサパイプライン６６内に発行する準備が整った状態である（下記参照）。命令待ち行列５６から、発行論理回路５８によって単一のスレッド、例えばスレッドＴ０、を選択することができる。選択されたスレッドのレジスタファイル６０が読まれ、読み取られたデータがＳＬＯＴ０：ＳＬＯＴ３に関する実行データ経路６２に送られる。ＳＬＯＴ０：ＳＬＯＴ３は、この例においては、本実施形態において採用されるパケットグループの結合に関するものである。
【００１８】
実行データ経路６２からの出力は、ＤＳＰ４０の動作からの結果を戻すために、同じく個々のスレッドＴ０：Ｔ５を受け入れるように構成されたレジスタファイル書き込み回路６４に向かう。従って、回路５４及びそれよりも前からレジスタファイル書き込み回路６４までのデータ経路は、処理パイプライン６６を形成する。本実施形態は、最大で６つのスレッドＴ０：Ｔ５を有する単一のプロセッサを用いてヘテロジニアスエレメントプロセッサ（ＨＥＰ）システムの混成を採用することができる。プロセッサパイプライン６６は、６つのステージを有し、これは、回路５４からレジスタ６０及び６４にデータ項目をフェッチするために必要な最低限のプロセッササイクル数と一致する。ＤＳＰ４０は、プロセッサパイプライン６６内の異なるスレッドＴ０：Ｔ５の命令を同時並行して実行する。すなわち、ＤＳＰ４０は、６つの独立したプログラムカウンタ、プロセッサパイプライン６６内のスレッドＴ０：Ｔ５の命令を区別するための内部タギング機構、及びスレッドスイッチをトリガーする機構を提供する。スレッドスイッチオーバーヘッドは、ゼロからほんの数サイクルまで変動する。
【００１９】
従ってＤＳＰ４０は、非常に様々な信号、画像、及び映像処理用途において高性能及び低電力であるように設計された汎用デジタル信号プロセッサを提供する。図３は、開示される主題の１つの表現に関する関連づけられた命令セットアーキテクチャの幾つかの側面を含むＤＳＰ４０アーキテクチャの概要を示す。ＤＳＰ４０アーキテクチャの実装は、インターリービングされたマルチスレッド化（ＩＭＴ）をサポートする。この実行モデルにおいては、ハードウェアは、パイプライン内の異なるスレッドからの命令をインターリービングすることによって複数のハードウェアスレッドＴ０：Ｔ５の同時並行実行をサポートする。この特徴は、ＤＳＰ４０がコアとメモリの高い利用を依然として維持しながら積極的なクロック周波数を含むことを許容する。ＩＭＴは、アウトオブオーダー実行、広範な転送ネットワーク、等の高コストの補償機構を必要とせずに高スループットを提供する。さらに、ＤＳＰ４０は、ＩＭＴの変形、例えば、Ｍ．アーメド、等による、“Variable Interleaved Multithreaded Processor Method and System”（可変のインターリービングされたマルチスレッド化プロセッサに関する方法及びシステム）及び“Method and System for Variable Thread Allocation and Switching in a Multithreaded Processor”（マルチスレッド化されたプロセッサにおける可変スレッド割り当て及び切り換えに関する方法及びシステム）という題名を有する、共通譲渡米国特許出願において開示される変形及び斬新な手法、を含むことができる。
【００２０】
図３は、特に、開示される主題の教示を採用することができる単一のスレッドに対して適用されるＤＳＰ４０に関するコア処理アーキテクチャ７０ブロック図を提供する。ブロック図７０は、ＡＸＩバス７４からバスインタフェース（Ｉ／Ｆ）７３を介して命令を受け取る共有命令キャッシュ７２を描き、これらの命令は、混合された１６ビットと３２ビットの命令を含む。これらの命令は、スレッドＴ０：Ｔ５のシーケンサ７６、ユーザー制御レジスタ７８、及びスーパバイザ制御レジスタ８０に届く。開示される主題のコアレベルシステムアーキテクチャは、ＪＴＡＧインタフェース８４を介してコアプロセッサ７０をインタフェースするインシリコンデバッギングシステム（ＩＳＤＢ）８２も含み、以下ではこれらの両方がさらに詳細に説明される。
【００２１】
シーケンサ７６は、ハイブリッド２方向スーパースカラー命令及び４方向ＶＬＩＷ命令をＳ−パイプユニット８６、Ｍ−パイプユニット８８、ＬＤ［Ｌｏａｄ］−パイプ９０、及びＬＤ／ＳＴ［Ｓｔｏｒｅ］−パイプユニット９２に提供し、これらの全ユニットは、汎用レジスタ９４と通信する。ＡＸＩバス７４は、バスＩ／Ｆ７３を介して、スレッドＴ０：Ｔ５への共有データキャッシュ９６ＬＤ／ＳＴ命令とも通信する。オプションのＬ２キャッシュ／ＴＣＭ９８信号は、共有データＴＣＭ１００を有するＬＤ／ＳＴ命令を含み、ＬＤ／ＳＴ命令は、さらにスレッド汎用レジスタ９４に流れる。ＡＨＢ周辺バス１０２から、ＭＳＭ専用コントローラ１０４は、Ｔ０：Ｔ５と割り込みを通信し、割り込みコントローラ命令と、デバッギング命令と、タイミング命令と、を含む。グローバル制御レジスタ１０６は、スレッドＴ０：Ｔ５と制御レジスタ命令を通信する。
【００２２】
従って、ＤＳＰ４０は、６つの仮想ＤＳＰコアを含み、各仮想ＤＳＰコアは、グローバル制御レジスタ１０６と、プライベートスーパバイザ制御レジスタ８０と、を含む。グローバル制御レジスタ１０６は、全スレッド間で共有される。各スレッドは、共通データキャッシュ及び共通命令キャッシュを共有する。ロード、ストア、及びフェッチの各動作は、共通のバスインタフェースによって対処される。高性能ＡＸＩバス７４及びそれよりも低性能のＡＨＢバス１０２は、データ及び命令トラフィックをオフコアメモリ及び周辺装置に接続するために用いられる。統合されたレベル２メモリ（キャッシュ及び／又はＴＣＭ）入力９８はオプションである。周辺装置のアクセスは、メモリによってマッピングされるロード及びストアを通じて行うことができる。ＡＨＢとＡＸＩとの間における物理アドレスパーティションは、ＭＳＭレベルで構成することができる。
【００２３】
明確なことであるが、ＤＳＰ４０に関する提示されるアーキテクチャは、経時で発展及び変化することができる。例えば、ＤＳＰ４０が用いることができる命令キャッシュ数は、６から１に、又はその他のキャッシュ数に変更することができる。ＴＣＭ１００におけるスーパースカラーディスパッチＬ１データ、及びその他のアーキテクチャ上の側面は、変更することができる。しかしながら、本主題は、非常に様々なコンフィギュレーションにおいて及びＤＳＰ４０の修正の大規模な系統に関して継続的な関連性を有することができる。
【００２４】
ＩＳＤＢ８２は、ＪＴＡＧインタフェース８４を介して、ＤＳＰ４０に関するハードウェアデバッガを提供する。ＩＳＤＢ８２は、システム又はスーパバイザ専用レジスタを共有することによってＪＴＡＧインタフェース８４を通じてソフトウェアデバッグ機能を提供し、これらのレジスタは、１つのスレッドベースのスーパバイザ制御レジスタ８０、及び全スレッド間におけるグローバル制御レジスタ１０６に分割される。システム制御レジスタは、１つのスレッドごとの割り込みと例外制御及び１つのスレッドごとのメモリ管理活動に関して用いられる。グローバルレジスタは、デバッギング動作のためにＩＳＤＢ８２と対話することを許容する。
【００２５】
ＩＳＤＢ８２は、ＤＳＰ４０が動作する間にソフトウェア開発者が自己のソフトウェアをデバッグするのを可能にする。ＩＳＤＢ８２ハードウェアは、ＩＳＤＢ８２において動作中のソフトウェアデバッガプログラムと組み合わせることで、ＤＳＰ４０オペレーティングシステムソフトウェアをデバッグするために用いることができる。ＩＳＤＢ８２は、デバッギングハードウェアスレッドを個々にサポートする。ユーザーは、スレッド実行を中断すること、スレッドレジスタを閲覧及び変更すること、命令とデータメモリ、単一ステップスレッド、を閲覧及び変更すること、スレッドに命令をスタッフィングすること、及びスレッド実行を再開することができる。信頼されるユーザーは、すべてのＩＳＤＢ８２の特徴にアクセス可能であり、信頼されないユーザーは、部分組の特徴にアクセス可能である。
【００２６】
ＩＳＤＢ８２は、プログラムカウンタ上に常駐するＩＳＤＢ８２デバッギングソフトウェアと通信するためにデバッガインタフェースカードとインタフェースすることができ、すべてＪＴＡＧインタフェース８４を通じて行うことができる。ホストデバッガソフトウェアは、ＩＳＤＢ制御レジスタを読み取る及び書き込むことによってＩＳＤＢ８２と対話することができる。通信は、例えば、読み取り／書き込みの対象となるＩＳＤＢレジスタを識別する４０ビットパケット、及び３２ビットデータペイロードを通じて行うことができる。この動作をサポートするパケットフォーマットは、各々の幅が３２ビットであることができる最大で６４の制御レジスタであることができる。
【００２７】
ＩＳＤＢ８２は、デバッギング動作中にセキュリティを制御するための信頼されるレジスタを含む。ＩＳＤＢ８２ｔｒｕｓｔｅｄがセットされた場合は、すべてのＩＳＤＢ８２レジスタがデバッガソフトウェアにとって可視であり、すべてのＩＳＤＢコマンドを使用可能である。ＩＳＤＢ８２ｔｒｕｓｔｅｄがクリアされた場合は、ＩＳＤＢ８２は、制限された一組の動作のみを許可する。
【００２８】
一定のＩＳＤＢ８２レジスタがコアソフトウェアにとって可視であるようにすることができる。これらのレジスタは、スーパバイザ（ＳＵＰＥＲＶＩＳＯＲ）モード制御レジスタ転送命令を介してアクセス可能である。コア命令は、ブレークポイント命令を含む。ＩＳＤＢｔｒｕｓｔｅｄがセットされたときには、この命令は、実行中のスレッドにデバッギング動作モードに入らせる。この移行は、スレッド制御をＩＳＤＢ８２に移行させる。ブレークポイントを実行したスレッドに加えて、その他のスレッドは、ＩＳＤＢ８２プログラミングに従って選択的にデバッグ（ＤＥＢＵＧ）モード１５０に入ることができる。ＩＳＤＢ８２が信頼されないか又はイネーブルにされない場合は、この命令はＮＯＰとして処理される。好ましいことに、ブレークポイント命令は、パケット内における唯一の命令である。
【００２９】
図４は、開示される主題のデバッギング機構とコアプロセッサとの間におけるインタフェース１１０を示し、デジタル信号プロセッサ電力遷移中におけるデバッギング動作を制御するために本主題を可能にするために適用できる。ＤＳＰ４０コアアーキテクチャ７０と関連して、ＩＳＤＢ８２は、ＩＳＤＢ  ＪＴＡＧ回路１１４からの経路ＪＴＡＧインタフェース経路１１０を介してＪＴＡＧ８４と通信する。ＩＳＤＢ  ＪＴＡＧ回路１１４は、ＪＴＡＧ８４とＩＳＤＢ８３との間におけるデータフローを処理する。ＩＳＤＢ  ＪＴＡＧ回路１１４は、ＩＳＤＢ  ＪＴＡＧＳｙｎｃ回路１１６をさらにインタフェースする。ＩＳＤＢ  ＪＴＡＧＳｙｎｃ回路１１６は、ＩＳＤＢコントローラ１１８、ＩＵ１５０及びＣＵ１２２とさらに通信する。特に、ＩＳＤＢ  ＪＴＡＧＳｙｎｃ回路１１６は、ＩＵ１５０のＩＵ  ＩＳＤＢ論理回路及びＣＵ１２２のＣＵ  ＩＳＤＢコントローラ１２６をインタフェースする。ＣＵ  ＩＳＤＢコントローラ１２６は、ＣＵ  ＩＳＤＢ論理回路１２８、及びＩＳＤＢコントローラ１１８と通信する。ＩＳＤＢコントローラ１１８からの制御出力は、ＩＳＤＢデータ出力１３０と、ＩＳＤＢリセット信号１３２と、ＩＳＤＢ割り込み１３４と、を含む。ＩＳＤＢコントローラ１１８へのさらなるインタフェースは、ＭＣＤインタフェース１３６と、ＥＴＭブレークトリガー１３８と、を含む。
【００３０】
ＩＳＤＢ８２の様々な構成要素を挙げた後は、以下では、動作について簡単に説明し、さらに、ＤＳＰ４０の動作と関連して非侵入型デバッギング動作を実行するための制御又は論理回路の構成部分について簡単に紹介する。特に、詳細には示されていないが、ＣＵ１２２は、３つの原理回路を含む。これらの回路は、（ａ）ブレークポイントを処理する及び各スレッドへのブレークトリガーを生成する、（ｂ）ミクロブレークコマンド及びミクロ再開コマンドを生成する、（ｃ）ＩＳＤＢ８２状態及びメールボックスレジスタを維持する、及び（ｄ）一定のＩＳＤＢ８２レジスタを実装するというタスクを処理することができる回路と命令とを含む。ＣＵ１２２は、以下の図６に示されるようなブレークポイント処理論理（ＢＰＬ）ブロックの３つのサブブロックと、メールボックス及び状態論理と、ミクロコマンド生成器と、を含む。ＢＰＬブロックは、すべてのブレークポイントを処理し、ＣＵ  ＩＳＤＢコントローラ１２６のミクロコマンド生成器へのマクロブレーク要求を生成する。ミクロコマンド生成器は、マクロブレーク要求を命令スタッフコマンド、命令ステップ及び再開コマンドとともに処理し、パイプライン制御のためにミクロブレーク及び再開コマンドをＣＵ１２２に発行する。
【００３１】
ＣＵ  ＩＳＤＢコントローラ１２８は、戻されたブレーク及び再開肯定応答信号に基づいてＩＳＤＢ８２の状態を維持する。ＣＵ  ＩＳＤＢコントローラ１２６のメールボックス機能は、ホストデバッグソフトウェアとＤＳＰ４０コアプロセッサとの間の通信に関して用いられるメールボックスレジスタを維持する。これらのメールボックス機能は、ＩＳＤＢ８２状態レジスタも含む。
【００３２】
図６は、ＤＳＰ４０のデバッギング動作中に生じる開示される主題の様々なブレークポイントトリガーの詳細を示す。しかしながら、特定のデバッギング動作ブレークポイントについて明確に理解する前に、開示される非侵入型デバッギング動作が協力する様々なモードについて理解することが適切である。従って、図５は、ＤＳＰ４０の様々なモード制御に関する側面に関する処理モード図１４０を示し、デバッギングプロセス中におけるＩＳＤＢ８２の動作を含む。
【００３３】
図５においては、ＤＳＰ４０は、全スレッドに対してグローバルであり個々のスレッドに対してローカルである処理モードをサポートする。各ＤＳＰ４０ハードウェアスレッドは、すべて図５において示されるように、２つの実行モード、ユーザー（ＵＳＥＲ）モード１４２とスーパバイザモード１４４、及び３つの非処理モードすなわち待機（ＷＡＩＴ）モード１４６、ＯＦＦモード１４８、及びデバッグモード１５０、を個々にサポートする。スレッドのモードは、その他のスレッドと独立しており、例えば、１つのスレッドは待機モード１４６であることができ、他のスレッドは、ユーザーモード１４２であり、以下同様である。
【００３４】
図５の１つのスレッドごとのモード状態図は、様々な命令又はイベントによってサポートされる。これらは、“例外”すなわち内部例外イベントと、“Ｉｎｔ”すなわち外部割り込みイベントと、“ＲＴＥ”すなわち例外モードからのソフトウェアリターン命令と、“ＳＳＲ”すなわちＳＳＲレジスタ命令の更新と、あらゆるモードから入力することができる“停止”すなわちソフトウェア停止命令と、同じくあらゆるモードから入力することができる“開始”すなわちソフトウェア開始命令と、“トラップ”すなわちソフトウェアトラップ命令と、“待機”すなわちソフトウェア待機命令と、“再開”すなわちソフトウェア再開命令と、“ＤＥ”すなわちデバッグイベントと、“ＤＲ”すなわちデバッグ命令と、を含む。請求される主題の異なる実装における機能は、ここにおいて提示される機能とわずかに異なることができる一方で、“開始”、“待機”、“再開”、“ＤＥ”、及び／又は“ＤＲ”の意味は、請求される主題の適用範囲と一致する最も広義の解釈を行うことができる。
【００３５】
レジスタは、ＤＳＰ４０においてユーザーモード１４２及びスーパバイザモード１４４の両方において利用可能である。ユーザーモードレジスタは、一組の汎用レジスタ及び一組の制御レジスタに分割される。汎用レジスタは、アドレス生成、スカラー及びベクトル算術を含むすべての汎用演算に関して用いられる。制御レジスタは、ハードウェアループ、プレディケート、等の特殊目的の機能をサポートする。汎用レジスタは、幅が３２ビットであり、単一レジスタとして又は２つのレジスタの整列された対としてアクセスすることができる。汎用レジスタファイルは、命令に関する全オペランドを提供し、ロード／ストアに関するアドレスと、数値命令に関するデータオペランドと、ベクトル命令に関するベクトルオペランドと、を含む。
【００３６】
デバッグモード１５０は、スレッドがＩＳＤＢ８２からのコマンドを待っている特別な状態を提供する。例えばソフトウェアブレークポイント命令の実行、ＩＳＤＢ８２からのブレークコマンド、又はハードウェアブレークポイントの発生によって、ＩＳＤＢデバッグイベントが生じるごとに、示されたスレッドは、デバッグモード１５０に入ることができる。デバッグモード１５０においては、コアは、ＪＴＡＧインタフェース８４からのコマンドを介してＩＳＤＢ８２によって制御される。ＩＳＤＢ８２が再開コマンドの実行に起因してスレッドをリリースすると、スレッドは、現在のモード設定に従って動作を再開することができる。スレッドがデバッグモード１５０にあるときには、ＩＳＤＢ８２によって制御され、その他のスレッドによって制御することはできない。デバッグモード１５０におけるスレッドをターゲットにした、実行中のスレッドからの待機命令、再開命令、開始命令、又は停止命令は、無視することができる。同様に、マスク不可割り込み（ＮＭＩ）は、デバッグモード１５０にあるスレッドは無視することができる。
【００３７】
ハードウェアリセット（ＨＡＲＤＷＡＲＥ  ＲＥＳＥＴ）モード（示されていない）及びデバッグモード１５０は、全スレッドに対してグローバルである。ハードウェアリセットピンがアサートされるごとに、あらゆるスレッドがどのような処理状態であるかにかかわらず、ＤＳＰ４０は、ハードウェアリセットモードになることができる。リセットモードにおいては、全レジスタが各々のリセット値に設定される。どのような処理も、ハードウェアリセットピンがデアサートされるまで行うことができない。リセットピンがアサートされた時点で、プロセッサは、リセットモードに移行することができ、全レジスタをリセット値にリセットすることができる。リセットピンがデアサートされた後は、スレッドＴ０にソフトリセット割り込みを与えることができる。このことは、スレッドＴ０にスーパバイザモード１４４に入らせてリセットされたベクトル位置での実行を開始させることができる。その他の全スレッドは、オフ状態であることができる。この時点においては、ソフトウェアは、各スレッドに関するモード移行を個々に自由に制御することができる。
【００３８】
次に図６において、ＢＰＬ１６０は、ハードウェアブレークポイント０／１（ＨＷＢＫＰＴ０  １６２及びＨＷＢＫＰＴ１  １６４）と、ソフトウェアブレークポイント（ＳＷＢＫＰＴ  １６６）と、ＪＴＡＧ８４ブレークポイント（ＪＴＡＧＢＫＰＴ  １６８）と、ＥＴＭ（埋め込み型トレースマクロ）ブレークポイント（ＥＴＭＢＫＰＴ１７０）と、外部ブレークポイント（ＥＸＴＢＫＰＴ１７２）と、を含む６つの異なるソースからのブレークトリガーを含むことがわかる。ブレークトリガー１６２乃至１７２及びデバッグモード状態入力１７４は、エンコードブレーク符号器１７６に行き、ＤＳＰ４０にデバッグモード１５０において動作させる。符号器１７６からの出力は、３つのブレークポイント情報ビット１７８と、ブレークポイント有効ビット１８０と、を含む。ブレークポイント情報データ１７８は、ブレークポイント情報回路１８２に入ってブレークポイント情報ＪＴＡＧインタフェースコマンド１８４を生じさせる。ブレークポイントビット１８０は、さらに、ＯＲゲート入力１８６及びリセット回路１８８入力を生成する。リセット回路１８８は、ＵＣＧ開始スレッド番号又はリセット入力１９２のいずれかを受け取り、ＯＲゲート１９６内へのリセット制御出力１９４を生成する。有効ビット１８６又はリセット出力１９４のいずれも、ＯＲゲート１９６にＢＰＬ  １６０ブレークポイント出力１９８を生成させることができる。
【００３９】
ＢＰＬ回路１６０内のブレークトリガーは、対応するＴＮＵＭマスクとともに処理され、各々のスレッドに対するマクロブレークトリガーが生成される。対応するスレッドが再開されるまでマクロブレークトリガー１９８ｂｐｌ＿ｂｒｅａｋＴｎｕｍ＿ＡＮＹ［５：０］が維持される。ＢＰＬ１６０において用いることができるパイプラインステージ数は、正確なブレークポイントであるハードウェアブレークポイントによってドライブされる。すなわち、ハードウェアブレークポイントマッチをトリガーする命令は実行してはならない。スレッドは、その命令までプログラムを実行後にデバッグモードに切り換わる。開示される実施形態は、ブレークトリガーが到着してから1サイクル後にマクロブレークトリガーを提供する。そのため、ブレーク有効入力１７６がラッチされたバージョン入力１９２と論理的にＯＲされてｂｐｌ＿ｂｒｅａｋＴｎｕｍ＿ＡＮＹ出力１９８が生成される。
【００４０】
ブレークポイントを用いることで、ＤＳＰ４０の６つのスレッドは、個々にデバッグモード１５０に入ること及びデバッグモード１５０から出ることができる。ブレークポイントトリガーは、ＩＳＤＢ８２においてサポートされる５つの異なる種類のブレークポイントに対応する５つのソースから来ることができる。スレッドは、ブレークポイントをヒットした時点で、現行モード（例えば、待機／実行（ＲＵＮ））からデバッグモード１５０に移行する。デバッグモード１５０において、スレッドは、ＩＳＤＢ８２からのコマンドを待つ。ＯＦＦモード１４８にあるスレッドはパワーダウンされ、ＩＳＤＢ８２からのコマンドを受け入れることができない。デバッグモード１５０に入るレーテンシーは、実装によって定義され、例えば、本開示においては、イベント電力崩壊に関連するとして定義される。例えば、一実装は、デバッグモード１５０に入る前に、所定の動作を完了させる、例えば未解決のロード要求を終了させる、ことを選択することができる。一実施形態においては、スレッド識別子レジスタは、８ビットの読み取り／書き込みフィールドを含み、ソフトウェアスレッド識別子を保持するために用いられる。このフィールドは、ブレークポイントとマッチさせるためにハードウェアデバッガによって用いられる。
【００４１】
ブレークポイントプロセスに入る方法は、幾つかの異なる方法が存在する。例えば、２つのハードウェアブレークポイントが存在する。レジスタが予め決められた値と等しい場合は、プログラムカウンタ（ＰＣ）が予め決められた値にマッチするときに、プロセスがデバッグモード１５０になる。ＡＳＩＤ（アドレス空間識別子）は、プロセスにおけるプロセスＩＤ又はマルチスレッド化プロセスにおける特定のスレッドと類似のタグである。このため、物理アドレス、仮想アドレス、ＡＳＩＤ、ＰＣ、又はその他の修飾子を用いて、ブレークポイントが生じることができるポイントにおける空間内のプログラムの位置のフィックスを随意に入手することができる。
【００４２】
ここで参照されるブレークポイントの使用は、Ｌ．コドレスキュ、等による、“NON-INTRUSIVE, THREAD-SELECTIVE, DEBUGGING METHOD AND SYSTEM FOR A MULTI-THREADED DIGITAL SIGNAL PROCESSOR”（マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム）という題名を有する、共通譲渡米国特許出願においてより具体的に開示されている。従って、開示される主題は、デバッグモード１５０に入らせるブレークポイントの場合にデバッグモード１５０内に移動するための経路を提供する。開示される主題は、ＤＳＰ４０内のいずれのスレッド又はスレッドの組がデバッグモード１５０になるかを制御する。ブレークポイント及び関連づけられたデバッギングアルゴリズムを用いることで、ＤＳＰ４０の非侵入型デバッギング動作が生じることができる。該動作は、様々な電力管理方式中に生じることができ、ＤＳＰ４０を用いてプログラミングすることができる。
【００４３】
従って、開示される主題の他の側面は、ＤＳＰ４０における電力崩壊中にデバッギング動作を行うことを含む。ＩＳＤＢコンフィギュレーションレジスタは、デバッガソフトウェアによって（ＪＴＡＧインタフェース８４を介して）及びスーパバイザコアソフトウェアによって（制御レジスタ転送命令を介して）読み取り可能及び書き込み可能である。カーネルソフトウェアは、この特徴を用いることで電力崩壊中にＩＳＤＢ８２コンフィギュレーションをセーブ及びリストアすることができる。該事例においては、これらの共有されるレジスタを書き込む複数のマスターが存在するため、首尾一貫した、相互に排他的な形でのみ該デバッギングレジスタに書き込むことが重要である。
【００４４】
開示される主題は、ＤＳＰ４０コアプロセッサが、ＪＴＡＧインタフェース８４がデバッギングコンフィギュレーションレジスタを読むこと／デバッギングコンフィギュレーションレジスタに書き込むことができないパワーダウン又はパワーアッププロセス中であることができるようにする。同様に、ＪＴＡＧインタフェース８４がデバッギングレジスタを修正中であるときには、ＤＳＰ４０コアプロセッサは、パワーダウンすることが許容されない。この方針は、ハードウェアとソフトウェアの組合せを通じて強制される。ＩＳＤＢコアレディレジスタビットは、コアスーパバイザソフトウェアのみによって書き込むことができる。このビットは、ＤＳＰ４０のハードウェアリセット時にクリアされる。このビットがクリアされているときには、すべてのＪＴＡＧインタフェース８４読み取り及び書き込みパケットは、無効状態を戻すことができる。このビットを用いることで、コアは、パワーアップシーケンスを完了させていてＩＳＤＢに話す準備が整っていることをホストソフトウェアに示すことができる。このことは、セーブされているすべてのＩＳＤＢ８２コンフィギュレーションをウォームブートパワーアップ（リストア）シーケンスにおいてリストアする機会をコアに与える。
【００４５】
電力崩壊を通じてのデバッギングの一例は、電力を意識する必要がある携帯電話内に存在することができる。ＤＳＰ４０は、デバッギングを実行する必要がある間にオフ又はアイドル状態になることができる。従って、開示される主題は、電力崩壊事例のみにおいて現れることができるブレークポイントを設定する能力を提供する。このことは、コアが動作中又は“オン”でないときでもデバッグする能力を提供する。
【００４６】
開示される実施形態における電力崩壊を通じてのデバッギングは、電力低下中のＤＳＰ４０と関連づけられたコンフィギュレーションに関する一組のブレークポイントを設定することを含む。ＤＳＰ４０が電力を低下させる前に、既存のデバッギングコンフィギュレーションがデバッギングコンフィギュレーションレジスタにセーブされる。これらの特定のレジスタ及びコンフィギュレーションは、“ｓｕｓｐｅｎｄ−ｔｏ−ＲＡＭ”プロセスを許容する。従って、ＤＳＰ４０の電力が戻ったときに、デバッギングコンフィギュレーションが次のデバッグ動作を許容する。
【００４７】
これらの特徴の一実施形態を例示するため、図７は、開示される主題のプロセスに関するウォームブートパワーアップシーケンス２００を示す。特に、図１は、ホストデバッガ２０２及びＤＳＰ４０において生じる動作を、すべてタイムライン２０４に従って説明する。最初に、最初の時間２０８にステップ２０６においてＤＳＰ４０をパワーダウンされた状態にすることができる。時間２０８において、外部ハードウェアリセットイベントが生じることができる。応答して、ＪＴＡＧ８４によって制御されたＩＳＤＢ８２レジスタｒｅａｄが無効状態を戻し、それによってレジスタ内容の変更を防止することができる。従って、このことは、“転送防止”値をコアプロセッサに提示する。ステップ２０８に後続して、電力崩壊割り込みがディスエーブルにされる。ＩＳＤＢ８２がデバッギング動作準備完了状態になった時点で、ステップ２１０において、ＩＳＤＢ＿ＣＯＲＥ＿ＲＥＡＤＹレジスタと同じように、ＩＳＤＢ＿ＴＲＵＳＴＥＤレジスタが“１”の値をとる。従って、これらの両レジスタ内の“１”は、デバッギング動作が生じることができることを示す。ステップ２１２において、電力崩壊割り込みがイネーブルにされ、ステップ２１４においてＪＴＡＧ  ＩＳＤＢｒｅａｄが有効値を戻すまでイネーブル状態であることができる。
【００４８】
ステップ２１４において、電力崩壊割り込みは、コアプロセッサによって捨てることができる。このことは、１の値を有する書き込みレジスタＩＳＤＢ＿ＰＲＥＶＥＮＴ＿ＰＯＷＥＲＤＯＷＮを用いてＩＳＤＢを再コンフィギュレーションする状態を反映したものである。この値は、ＤＳＰがデバッギングコンフィギュレーションであること及びデバッギングセッションが進行中であることをホストデバッガシステムに知らせる。この段階中に、ＩＳＤＢがＩＳＤＢ８２レジスタをプログラミングする。デバッギングプロセスがＩＳＤＢレジスタを変更しなくなったときには、ＩＳＤＢ＿ＰＲＥＶＥＮＴ＿ＰＯＷＥＲＤＯＷＮレジスタは、デバッギングコンフィギュレーションが安定していることを示す０の値を得る。それに従って、ステップ１１６において、電力崩壊割り込みがイネーブルにされる。
【００４９】
図８は、開示される実施形態によって提供されるウォームブートパワーダウンシーケンス２２０を示す。ウォームブートパワーダウンシーケンス２２０は、電力崩壊割り込みがイネーブルにされるポイント２２２において開始することができる（矢印２２４）。該期間中に、ＪＴＡＧ  ＩＳＤＢレジスタは、読み取りリターン有効状態を戻すことができる（矢印２２６）。ポイント２２８において、電力崩壊割り込みが生じることができ、カーネル遮断ハンドラーを動作させることができる。これに応じて、電力崩壊割り込みがディスエーブルにされる（矢印２３０）。ポイント２３２において、ＩＳＤＢ＿ＣＯＲＥ＿ＲＥＡＤＹレジスタが０を読み取り、ＪＴＡＧｒｅａｄ／ｗｒｉｔｅが無効状態を戻す。矢印２３４が網羅する期間中に、コアプロセッサは、ＩＳＤＢコンフィギュレーションの変更が進行中であるかどうかを確認し、この状態は、１の値を有するＩＳＤＢ＿ＰＲＥＶＥＮＴ＿ＰＯＷＥＲＤＯＷＮレジスタによって示される。これは、変更が進行中であることを示し、パワーダウンシーケンスの取り消しを行わせる。コンフィギュレーションが進行中でない場合は、パワーダウンシーケンス２２０は、ＩＳＤＢコンフィギュレーションレジスタの内容をメモリにセーブする。ウォームブートフラグマーカーがセットされ、引き続くウォームブート準備が行われる。次に、パワーダウンシーケンス２００が全スレッドを停止させ、ＤＳＰ４０がパワーダウンされる。
【００５０】
従って、開示される主題は、電力崩壊を含むデジタル信号プロセッサ電力遷移中にデバッギング動作を行うための方法及びシステムを提供する。ＤＳＰ４０のＩＳＤＢコンフィギュレーションは、デバッガソフトウェア及びスーパバイザコアソフトウェアの両方によって読み取り及び書き込み可能である。カーネルソフトウェアは、電力崩壊中におけるデバッギング動作の実行を用いて電力崩壊時に存在するコンフィギュレーションをセーブ及びリストアすることができる。デバッギングのこの側面は、ＩＳＤＢコンフィギュレーションを取得するための信頼できかつ一貫した方法を提供し、それにより電力崩壊中にそのコンフィギュレーションを用いることだけでなく、後続するパワーアップシーケンスにおけるコンフィギュレーションのリストアも可能にする。
【００５１】
要約すると、開示される主題は、デジタル信号プロセッサの電力遷移シーケンスと関連してデバッギングレジスタとデジタル信号プロセッサプロセスとの間においてデータを転送するための方法及びシステムを提供する。コアプロセッサ内におけるコアプロセッサプロセス及びデバッギング機構内におけるデバッギングプロセスを動作させるデジタル信号プロセッサにおいて、本開示は、デバッギングレジスタをコアプロセッサプロセス及びデバッギングプロセスと関連づける。該方法及びシステムは、デバッギングレジスタとコアプロセッサプロセスとデバッギングプロセスとの間においてデータを転送するのを制御するための少なくとも１つのレジスタ制御ビットを確立することによって、電力遷移シーケンスのイベントにおいてデバッギングレジスタとコアプロセッサプロセスとデバッギングプロセスとの間においてデータを転送するのを防止する転送防止値に制御ビットを設定する。本開示は、電力遷移防止値を防止するために１つの制御ビットを設定することによって、デバッギングレジスタとコアプロセッサプロセス又はデバッギングプロセスとの間においてデータを転送するイベントにおいてデジタル信号プロセッサの電力遷移シーケンスを防止する。
【００５２】
本開示のさらなる側面は、デジタル信号プロセッサに関してパワーアップシーケンスが生じるイベントにおいてデバッギングレジスタとコアプロセッサプロセスとデバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に少なくとも１つのレジスタ制御ビットを設定することを含む。さらに、本開示は、デジタル信号プロセッサに関してパワーダウンシーケンスが生じるイベントにおいてデバッギングレジスタとコアプロセッサプロセスとデバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に少なくとも１つのレジスタ制御ビットを設定すること、及び、デバッギングレジスタとコアプロセッサプロセス又はデバッギングプロセスとの間においてデータを転送するイベントにおいてデジタル信号プロセッサのパワーダウンシーケンスを防止するための電力遷移防止値に少なくとも１つの電力制御ビットを設定することを許容する。
【００５３】
デバッギングレジスタは、デバッギングコンフィギュレーションレジスタを備えることができ、本開示は、デジタル信号プロセッサに関して電力遷移シーケンスが生じるイベントにおいてデバッギングコンフィギュレーションレジスタとコアプロセッサプロセスとデバッギングプロセスとの間においてデータを転送するのを防止するための転送防止値に少なくとも１つのレジスタ制御ビットを設定すること、及び、デバッギングコンフィギュレーションレジスタとコアプロセッサプロセス又はデバッギングプロセスとの間においてデータを転送するイベントにおいてデジタル信号プロセッサの電力遷移シーケンスを防止するための電力遷移防止値に少なくとも１つの電力制御ビットを設定することを提供する。デバッギングプロセスは、信頼される又は信頼されないデバッギングプロセスであることができる。
【００５４】
動作上は、転送防止値は、無効状態値であることができ、この無効状態値に応じてコアプロセッサのパワーアップシーケンスのイベントにおいてデバッギングレジスタとコアプロセッサプロセス又はデバッギングプロセスとの間における読み取り／書き込み転送を無効化するステップをさらに備えることができる。転送防止値は、無効値であることもでき、この無効状態値に応じてコアプロセッサのパワーダウンシーケンスのイベントにおいてデバッギングレジスタとコアプロセッサプロセス又はデバッギングプロセスとの間における読み取り／書き込み転送を無効化するステップをさらに備えることができる。さらに、電力遷移防止値は、割り込みディスエーブル値を備え、割り込みディスエーブル値に応じてデバッギングレジスタとコアプロセッサプロセス又はデバッギングプロセスとの間における読み取り／書き込み転送中に電力崩壊をディスエーブルにするステップをさらに備える。
【００５５】
さらに、本開示は、デジタル信号プロセッサに関してパワーアップシーケンスが生じるのに後続してデバッギングレジスタとコアプロセッサプロセスとデバッギングプロセスとの間においてデータを転送することを許可するための転送許可値に少なくとも１つのレジスタ制御ビットを設定することを備える。さらに、本開示は、デバッギングレジスタとコアプロセッサプロセス又はデバッギングプロセスとの間においてデータを転送するイベントに後続してデジタル信号プロセッサの電力遷移シーケンスを許可するための電力遷移許可値に少なくとも１つの電力制御ビットを設定することを備える。
【００５６】
マルチスレッド化デジタル信号プロセッサにおける非侵入型スレッド選択式デバッギングに関してここにおいて説明される処理上の特徴及び機能は、様々な方法で実装することができる。例えば、ＤＳＰ４０が上述される動作を実行できるだけでなく、本明細書の実施形態は、ここにおいて説明される機能を果たすように設計された特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラ、デジタル信号プロセッサ、又はその他の電子回路において実装することができる。さらに、ここにおいて説明されるプロセス及び特徴は、該様々な信号及び命令処理システムによる読み取り及び実行のために磁気媒体、光学媒体、又はその他の記録媒体に格納することができる。従って、好まれる実施形態に関する上記の説明は、当業者が請求される主題を製造または使用するのを可能にすることを目的とするものである。これらの実施形態に対する様々な修正が当業者にとって容易に明確になるであろう。さらに、ここにおいて定義される一般原理は、革新的な能力を用いずにその他の実施形態にも適用可能である。以上のように、請求される主題は、ここにおいて示される実施形態に限定されることが意図されるものではなく、ここにおいて開示される原理及び斬新な特徴に一致する限りにおいて最も広範な適用範囲が認められるべきである。
【図１】
2010510582.tif 000003
【図２】
2010510582.tif 000004
【図３】
2010510582.tif 000005
【図４】
2010510582.tif 000006
【図５】
2010510582.tif 000007
【図６】
2010510582.tif 000008
【図７】
2010510582.tif 000009
【図８】
2010510582.tif 000010
【国際調査報告】
2010510582.tif 000011
2010510582.tif 000012
2010510582.tif 000013