(57)【要約】【課題】低消費電力モードを再現しつつ、バックグラウンド・デバッグ処理を実行すること。【解決手段】本発明の一態様は、クロックに基づいて動作する機能ブロックと、イネーブル信号に基づいて、前記クロックの供給を制御するクロック供給制御部と、デバッグコマンドと、前記機能ブロックが当該デバッグコマンドを処理するのに必要なクロック数とを対応付けたコマンドテーブルを格納した記憶部と、入力されたデバッグコマンドに基づいて、デバッグ処理を実行するデバッグ・システム部とを備え、前記デバッグ・システム部は、前記コマンドテーブルを参照し、前記入力されたデバッグコマンドに対応するクロック数に応じて前記イネーブル信号を出力するデータ処理システムである。【選択図】図１
2010067038.tif 000002
【特許請求の範囲】
【請求項１】
クロックに基づいて動作する機能ブロックと、
イネーブル信号に基づいて、前記クロックの供給を制御するクロック供給制御部と、
デバッグコマンドと、前記機能ブロックが当該デバッグコマンドを処理するのに必要なクロック数とを対応付けたコマンドテーブルを格納した記憶部と、
入力されたデバッグコマンドに基づいて、デバッグ処理を実行するデバッグ・システム部とを備え、
前記デバッグ・システム部は、前記コマンドテーブルを参照し、前記入力されたデバッグコマンドに対応するクロック数に応じて前記イネーブル信号を出力するデータ処理システム。
【請求項２】
前記デバッグ・システム部は、
前記クロック供給制御回路から供給されるクロック数をカウントするクロックカウンタと、
前記クロックカウンタの値と前記クロック数とを比較する比較器とを更に備え、前記比較器の出力に応じて前記イネーブル信号を出力する請求項１に記載のデータ処理システム。
【請求項３】
前記デバッグ・システム部は、前記入力されたデバッグコマンドをデコードするデコード部を更に備え、前記クロック数は、前記デコード部によるデコード結果と、前記コマンドテーブルとに基づいて決定される請求項１または２に記載のデータ処理システム。
【請求項４】
前記機能ブロックは、ＣＰＵと周辺機能部とを含み、
前記コマンドテーブルは、前記デバッグコマンドと、前記ＣＰＵと周辺機能部とがそれぞれ前記デバッグコマンドの処理に要するクロック数とを対応付けたものであり、
前記デバッグ・システム部は、前記コマンドテーブルを参照し、入力されたデバッグコマンドに対応するクロック数に応じて、ＣＰＵイネーブル信号と周辺機能部イネーブル信号とを出力し、
前記クロック供給制御回路は、前記ＣＰＵイネーブル信号と周辺機能部イネーブル信号に応じて、前記ＣＰＵと周辺機能部へのクロック供給を制御する請求項１または２に記載のデータ処理システム。
【請求項５】
クロックに基づいて動作する機能ブロックを有する装置のデバッグ方法であって、
前記クロック信号を停止し、
デバッグコマンドと、前記機能ブロックが当該デバッグコマンドを処理するのに必要なクロック数とを対応付けたコマンドテーブルを参照し、入力されたデバッグコマンドに対応するクロック数に応じて、前記クロック信号を供給し、
前記入力されたデバッグコマンドに基づいてデバッグ処理を実行するデバッグ方法。
【請求項６】
前記機能ブロックは、ＣＰＵと周辺機能部とを含み、
前記コマンドテーブルは、前記デバッグコマンドと、前記ＣＰＵと周辺機能部とがそれぞれ前記デバッグコマンドの処理に要するクロック数とを対応付けたものであり、
前記コマンドテーブルを参照し、入力されたデバッグコマンドに対応するクロック数に応じて、前記ＣＰＵと周辺機能部へそれぞれクロックを供給する請求項５に記載のデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システム及びこれを用いたデバッグ方法に関し、バックグラウンド・デバッグ処理機能を備えたデータ処理システム及びこれを用いたデバッグ方法に関する。
【背景技術】
【０００２】
携帯電話に代表されるバッテリー駆動の携帯機器では、近年さらなる低消費電力化が要請されている。そのため、このような携帯機器では、本体のスイッチがオンの状態であっても、ほとんどの時間は、低消費電力モードとなっている。この場合、クロックは停止しており、マイコン内のプログラムも停止した状態である。他方、このような停止状態において、プログラムをデバッグするには、デバッグ対象となるＣＰＵ、メモリ、レジスタ、周辺機器等の機能ブロックに対し、クロックを供給する必要がある。
【０００３】
図４は、特許文献１の図２である。このデータ処理システムは、クロック装置１９、ＣＰＵ１２、外部発振器要素３０を備える。外部発振器要素３０は、水晶振動子即ち共振器３２、帰還抵抗３４、２つの負荷コンデンサ３６、３８を備える。クロック装置１９は、インバータ４２、ＮＡＮＤゲート６６、６２、クロック制御４６を備える。
【０００４】
ＮＡＮＤゲート６６の２つの入力端子はＳＴＯＰ信号６８及びインバータ４２にそれぞれ接続され、出力端子はＮＡＮＤゲート６２の一方の入力端子に接続されている。ＮＡＮＤゲート６２の他方の入力端子は発振器要素３０とクロック制御４６とに接続され、出力端子は発振器要素３０に接続されている。インバータ４２には、バックグラウンド・デバッグ・システム１４からイネーブル信号ＥＮ＿ＢＤＭ４４が入力される。クロック制御４６は、ＢＤＳ１４にバックグラウンド・デバッグ・クロック５４を供給する。
【０００５】
ＣＰＵ１２は、コマンドアドレス７０を介してアドレス生成装置７４に接続されたバックグラウンド・デバッグ・システム１４を備える。アドレス生成装置７４は、ＣＰＵアドレス７２を受信し、アドレスバス２２を介してシステムアドレスを送信する。また、バックグラウンド・デバッグ・システム１４は、バックグラウンド通信インターフェイス５２、データバス２４及び制御信号２６に双方向で接続される。
【０００６】
ここで、クロックを停止するためのＳＴＯＰ信号６８がＨｉｇｈの場合を考える。バックグラウンド・デバッグ・システム１４が動作しない場合、すなわち、バックグラウンド・デバッグ・モードがオフの場合、イネーブル信号ＥＮ＿ＢＤＭ４４はＬｏｗとなり、インバータ４２の出力信号４０はＨｉｇｈとなる。そのため、ＮＡＮＤゲート６６の出力信号すなわちＮＡＮＤゲート６２の一方の入力信号６４はＬｏｗとなる。この場合、ＮＡＮＤゲート６２の他方の入力信号と、ＮＡＮＤゲート６２の出力信号との論理が一致する。従って、発振器要素３０は発振せず、クロックは停止する。
【０００７】
一方、バックグラウンド・デバッグ・モードがオンの場合、イネーブル信号ＥＮ＿ＢＤＭ４４はＨｉｇｈとなり、インバータ４２の出力信号４０はＬｏｗとなる。そのため、ＮＡＮＤゲート６６の出力信号すなわちＮＡＮＤゲート６２の一方の入力信号６４はＨｉｇｈとなる。この場合、ＮＡＮＤゲート６２の他方の入力信号と、ＮＡＮＤゲート６２の出力信号との論理が反転する。従って、発振器要素３０は発振し、クロックが動作する。つまり、バックグラウンド・デバッグ・モードがオンの場合、クロックを動作させることができる。
【特許文献１】特表２００５−５０８５３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載の構成では、バックグラウンド・デバッグ・モードがオンの場合、常時クロックが作動する。そのため、低消費電力モードでのデバッグでありながら、通常動作時と同様にクロックが供給されてしまい、低消費電力モードを再現することができなかった。
【課題を解決するための手段】
【０００９】
本発明の一態様は、
クロックに基づいて動作する機能ブロックと、
イネーブル信号に基づいて、前記クロックの供給を制御するクロック供給制御部と、
デバッグコマンドと、前記機能ブロックが当該デバッグコマンドを処理するのに必要なクロック数とを対応付けたコマンドテーブルを格納した記憶部と、
入力されたデバッグコマンドに基づいて、デバッグ処理を実行するデバッグ・システム部とを備え、
前記デバッグ・システム部は、前記コマンドテーブルを参照し、前記入力されたデバッグコマンドに対応するクロック数に応じて前記イネーブル信号を出力するデータ処理システムである。
【００１０】
本発明の他の一態様は、
クロックに基づいて動作する機能ブロックを有する装置のデバッグ方法であって、
前記クロック信号を停止し、
デバッグコマンドと、前記機能ブロックが当該デバッグコマンドを処理するのに必要なクロック数とを対応付けたコマンドテーブルを参照し、入力されたデバッグコマンドに対応するクロック数に応じて、前記クロック信号を供給し、
前記入力されたデバッグコマンドに基づいてデバッグ処理を実行するデバッグ方法である。
【発明の効果】
【００１１】
本発明によれば、低消費電力モードを再現しつつ、バックグラウンド・デバッグ処理を実行することができる。
【発明を実施するための最良の形態】
【００１２】
実施の形態１
以下、図面を参照して本発明の実施形態について説明する。図１は、実施の形態１に係るデータ処理システムのブロック図である。図１に示すように、実施の形態１に係るデータ処理システムは、バックグラウンド・デバッグ・システム（Background Debug System）１１０、クロック供給制御回路１２０、クロックユニット（Clock Unit）１３０、ＣＰＵ（Central Processing Unit）１４０、メモリ（Memory）１５０、周辺ユニット（Peripheral Unit）１６０を備えている。
【００１３】
バックグラウンド・デバッグ・システム１１０は、コマンドデコーダ（Command Decoder）１１１、記憶部１１２、比較器１１４ａ、１１４ｂ、クロックカウンタ（Clock Counter）１１３を備えている。また、クロック供給制御回路１２０は、インバータ１２１ａ、１２１ｂ、ＮＡＮＤゲート１２２ａ、１２２ｂ、ＡＮＤゲート１２３ａ、１２３ｂを備えている。さらに、周辺ユニット１６０は、フリップフロップ１６１ａ、１６１ｂ、タイマなどの周辺装置１６２、ＩＯポート１６３を備えている。
【００１４】
コマンドデコーダ１１１は外部のホスト開発システム（Host Development System）１７０及び記憶部１１２に接続されている。そして、コマンドデコーダ１１１はホスト開発システム１７０から入力されたコマンドをデコードし、デコードしたコマンド情報を記憶部１１２に出力する。
【００１５】
記憶部１１２はコマンドデコーダ１１１及び比較器１１４ａ、１１４ｂに接続されている。記憶部１１２にはコマンドテーブル（Command Table）１１２ａが格納されている。コマンドテーブル１１２ａには、コマンド毎に、バックグラウンド・デバッグ処理の対象である機能ブロック及び当該機能ブロックに供給するクロック数が書き込まれている。このクロック数は、各コマンドのバックグラウンド・デバッグ処理に応じて、機能ブロック毎に予め定められている。
【００１６】
図１の例では、ＣＰＵ１４０とタイマなどの周辺装置１６２とに対してそれぞれクロック数が定められている。具体的には、ＣＯＭＭＡＮＤ１でのバックグラウンド・デバッグ処理の場合、ＣＰＵ１４０に供給されるクロック数はＣＰＵ＿ＣＬＫ１であり、タイマなどの周辺装置１６２に供給されるクロック数はＰＥＲＩ＿ＣＬＫ１である。また、ＣＯＭＭＡＮＤ２及びＣＯＭＭＡＮＤ３の場合ＣＰＵ１４０に供給されるクロック数はそれぞれＣＰＵ＿ＣＬＫ２及びＣＰＵ＿ＣＬＫ３であり、タイマなどの周辺装置１６２に供給されるクロック数はそれぞれＰＥＲＩ＿ＣＬＫ２及びＰＥＲＩ＿ＣＬＫ３である。
【００１７】
そして、記憶部１１２は、選択されたコマンドについてのＣＰＵ１４０への供給クロック数ＣＰＵ＿ＣＬＫを値Ｂとして、比較器１１４ａに対し出力する。また、記憶部１１２は、選択されたコマンドについてのタイマなどの周辺装置１６２への供給クロック数ＰＥＲＩ＿ＣＬＫを値Ｃとして、比較器１１４ｂに対し出力する。
【００１８】
クロックカウンタ１１３は比較器１１４ａ、１１４ｂに接続されている。また、クロックカウンタ１１３は、クロックユニット１３０から入力されるクロックに基づいて、クロックをカウントする。そして、クロックカウンタ１１３は、クロックのカウント値Ａを比較器１１４ａ及び１１４ｂに出力する。
【００１９】
比較器１１４ａ及び１１４ｂでは、一方の入力端子がクロックカウンタ１１３に接続され、他方の入力端子が記憶部１１２に接続されている。比較器１１４ａはクロックカウンタ１１３から入力されたカウント値Ａと、記憶部１１２から入力されたＣＰＵ１４０への供給クロック数ＣＰＵ＿ＣＬＫの値Ｂとを比較する。そして、ＣＰＵ１４０についてのバックグラウンド・デバッグ・モードのオンオフを制御するイネーブル信号ＥＮ＿ＢＤＭ＿ＣＰＵをクロック供給制御回路１２０へ出力する。
【００２０】
ここで、Ａ＜Ｂの場合、イネーブル信号ＥＮ＿ＢＤＭ＿ＣＰＵ＝１すなわちＨｉｇｈとなる。一方、Ａ≧Ｂの場合、イネーブル信号ＥＮ＿ＢＤＭ＿ＣＰＵ＝０すなわちＬｏｗとなる。つまり、予め定められたクロック数ＣＰＵ＿ＣＬＫの間だけイネーブル信号ＥＮ＿ＢＤＭ＿ＣＰＵ＝１を出力する。
【００２１】
比較器１１４ｂはクロックカウンタ１１３から入力されたカウント値Ａと、記憶部１１２から入力されたタイマなどの周辺装置１６２への供給クロック数ＰＥＲＩ＿ＣＬＫの値Ｃとを比較する。そして、タイマなどの周辺装置１６２についてのバックグラウンド・デバッグ・モードのオンオフを制御するイネーブル信号ＥＮ＿ＢＤＭ＿ＰＥＲＩをクロック供給制御回路１２０へ出力する。
【００２２】
ここで、Ａ＜Ｃの場合、イネーブル信号ＥＮ＿ＢＤＭ＿ＰＥＲＩ＝１すなわちＨｉｇｈとなる。一方、Ａ≧Ｃの場合、イネーブル信号ＥＮ＿ＢＤＭ＿ＰＥＲＩ＝０すなわちＬｏｗとなる。つまり、予め定められたクロック数ＰＥＲＩ＿ＣＬＫの間だけイネーブル信号ＥＮ＿ＢＤＭ＿ＰＥＲＩ＝１を出力する。
【００２３】
クロック供給制御回路１２０は、インバータ１２１ａ、１２１ｂ、ＮＡＮＤゲート１２２ａ、１２２ｂ、ＡＮＤゲート１２３ａ、１２３ｂを備えている。
インバータ１２１ａの入力端子は比較器１１４ａに接続され、出力端子はＮＡＮＤゲート１２２ａの一方の入力端子に接続されている。そして、比較器１１４ａから入力されたイネーブル信号ＥＮ＿ＢＤＭ＿ＣＰＵを反転してＮＡＮＤゲート１２２ａへ出力する。
同様に、インバータ１２１ｂの入力端子は比較器１１４ｂに接続され、出力端子はＮＡＮＤゲート１２２ｂの一方の入力端子に接続されている。そして、比較器１１４ｂから入力されたイネーブル信号ＥＮ＿ＢＤＭ＿ＰＥＲＩを反転してＮＡＮＤゲート１２２ｂへ出力する。
【００２４】
ＮＡＮＤゲート１２２ａの他方の入力端子にはＳＴＯＰ信号が入力される。ＳＴＯＰ信号は、クロックを停止し、低消費電力モードにするための信号である。そして、ＮＡＮＤゲート１２２ａの出力端子はクロックユニット１３０及びＡＮＤゲート１２３ａの一方の入力端子に接続されている。
同様に、ＮＡＮＤゲート１２２ｂの他方の入力端子にはＳＴＯＰ信号が入力される。そして、ＮＡＮＤゲート１２２ｂの出力端子はクロックユニット１３０及びＡＮＤゲート１２３ｂの一方の入力端子に接続されている。
【００２５】
ＡＮＤゲート１２３ａの他方の入力端子はクロックユニット１３０に接続されている。そして、ＡＮＤゲート１２３ａの出力端子はＣＰＵ１４０、メモリ１５０及びフリップフロップ１６１ａ、１６１ｂ及びＩＯポート１６３に接続されている。
同様に、ＡＮＤゲート１２３ｂの他方の入力端子はクロックユニット１３０に接続されている。そして、ＡＮＤゲート１２３ｂの出力端子はタイマなどの周辺装置１６２に接続されている。
【００２６】
クロックユニット１３０はクロックを生成し、出力している。ここで、クロックユニット１３０は、ＮＡＮＤゲート１２２ａ、１２２ｂのいずれかの出力信号が１の場合、動作する。一方、すべてのＮＡＮＤゲート１２２ａ、１２２ｂの出力信号が０の場合、停止する。
【００２７】
ＣＰＵ１４０は、メモリ１５０に格納されたプログラムを実行し、周辺ユニット１６０とデータの送受信を行う。
周辺ユニット１６０は、フリップフロップ１６１ａ、１６１ｂ、タイマなどの周辺装置１６２、ＩＯポート１６３を備えている。当然のことながら、周辺ユニット１６０の構成要素はこれらに限られるものではない。また、フリップフロップも、通常、より多く備えられているが、簡略化のため、図１では２つのみ描かれている。
【００２８】
また、図１における太線はデータの流れを示している。ＣＰＵ１４０はメモリ１５０及び周辺ユニット１６０との間で、クロックに応じたデータの入出力を行う。ここで、ＣＰＵ１４０から出力されたデータはフリップフロップ１６１ａ、１６１ｂに一度蓄積される。そして、タイマなどの周辺装置１６２にクロックが供給されることにより、タイマなどの周辺装置１６２にデータが入力される。
【００２９】
本実施の形態では、ＡＮＤゲート１２３ａから出力されるクロックすなわちＣＰＵ１４０に供給されるクロックは、周辺ユニット１６０のうちフリップフロップ１６１ａ、１６１ｂ及びＩＯポート１６３にも供給される。一方、ＡＮＤゲート１２３ｂから出力されるクロックは周辺ユニット１６０のうちタイマなどの周辺装置１６２に供給される。これにより、例えば、タイマなどの周辺装置１６２を動作させずに、バックグラウンド・デバッグ処理を実行することができる。すなわち、タイマなどの周辺装置１６２が動作しない低消費電力モードを再現することができる。
【００３０】
次に、図２に示すフローチャートを用いて、低消費電力モードにおけるバックグラウンド・デバッグ処理のフローについて説明する。
【００３１】
まず、図２においてＳで示したスタートの状態から開始し、図１に示すＳＴＯＰ信号が１すなわちＳＴＯＰ＝１であるか否か判断する（ＳＴ１）。ＳＴＯＰ信号は図１に示すように、ＮＡＮＤゲート１２２ａ及び１２２ｂに入力される。ここで、ＳＴＯＰ＝０である場合（ＳＴ１ＮＯ）、低消費電力モードなく通常動作モードであるため本発明とは直接的には関係ない。この場合、バックグラウンド・デバッグ・モードがオンすなわち図２におけるＢＤＭ＝１であるか否か判定する。そして、ＹＥＳであれば、バックグラウンド・デバッグ処理を実行した後、スタートの状態に戻る。一方、ＮＯであれば、スタートの状態に戻る。
【００３２】
ＳＴＯＰ＝１である場合すなわち低消費電力モードである場合（ＳＴ１ＹＥＳ）、バックグラウンド・デバッグ・モードがオンすなわち図２におけるＢＤＭ＝１であるか否か判定する（ＳＴ２）。ここで、ＢＤＭ＝０である場合（ＳＴ２ＮＯ）、バックグラウンド・デバッグ・モードがオフすなわちバックグラウンド・デバッグ処理を実行しない状態であるため本発明とは直接的には関係ない。その場合、図１におけるＥＮ＿ＢＤＭ＿ＣＰＵ及びＥＮ＿ＢＤＭ＿ＰＥＲＩがいずれも０となり、低消費電力モード（ＳＴＯＰ＝１）のままスタートの状態に戻る。
【００３３】
一方、ホスト開発システム１７０からバックグラウンド・デバッグ用のコマンドが入力されると、ＢＤＭ＝１となる（ＳＴ２ＹＥＳ）。これ以降の処理が、低消費電力モードにおけるバックグラウンド・デバッグ処理であり、本発明に直接的に関連する処理である。入力されたコマンドに応じて、ＣＰＵ＿ＣＬＫ、ＰＥＲＩ＿ＣＬＫがコマンドテーブル１１２ａから選択される。これにより、図１におけるイネーブル信号ＥＮ＿ＢＤＭ＿ＣＰＵ及びＥＮ＿ＢＤＭ＿ＰＥＲＩが１となる。そして、イネーブル信号ＥＮ＿ＢＤＭ＿ｘが１となった機能ブロックに対するクロックの停止を解除し、バックグラウンド・デバッグ処理を開始する（ＳＴ３）。そして、クロックカウンタ１１３が動作し、カウント値Ａを比較器１１４ａ、１１４ｂに出力する（ＳＴ４）。比較器１１４ａは、コマンドテーブル１１２ａから選択されたＣＰＵ１４０への供給クロック数ＣＰＵ＿ＣＬＫｘ（ここで、ｘは１、２、３・・・に対応する）の値Ｂとカウント値Ａとを比較する（ＳＴ５）。
【００３４】
Ａ＜Ｂの間は（ＳＴ５ＮＯ）、バックグラウンド・デバッグ処理を実行する（ＳＴ６）。この場合の回路動作について図１を用いて説明する。イネーブル信号ＥＮ＿ＢＤＭ＿ＣＰＵ＝１となった場合、ＮＡＮＤゲート１２２ａには、ＳＴＯＰ＝１と、イネーブル信号ＥＮ＿ＢＤＭ＿ＣＰＵ＝１がインバータ１２１ａにより反転された０とが入力される。そのため、ＮＡＮＤゲート１２２ａは１（Ｈｉｇｈ）を出力し、この信号がＡＮＤゲート１２３ａの一方の入力端子に入力される。そのため、ＡＮＤゲート１２３ａは、他方の入力端子に入力されるクロックユニット１３０からのクロックに応じたクロックを出力する。このクロックが、図１に示した例では、ＣＰＵ１４０、メモリ１５０、フリップフロップ１６１ａ、１６１ｂ及びＩＯポート１６３に供給される。
【００３５】
他方、比較器１１４ｂは、コマンドテーブル１１２ａから選択されたタイマなどの周辺装置１６２への供給クロック数ＰＥＲＩ＿ＣＬＫｘ（ここで、ｘは１、２、３・・・に対応する）の値Ｃとカウント値Ａとを比較する（ＳＴ７）。
【００３６】
Ａ＜Ｃの間は（ＳＴ７ＮＯ）、周辺マクロを実行し、タイマなどの周辺装置１６２に対するバックグラウンド・デバッグ処理を実行する（ＳＴ８）。その後、ステップＳＴ５に戻る。この場合の回路動作について図１を用いて説明する。イネーブル信号ＥＮ＿ＢＤＭ＿ＰＥＲＩ＝１となった場合、ＮＡＮＤゲート１２２ｂには、ＳＴＯＰ＝１と、イネーブル信号ＥＮ＿ＢＤＭ＿ＰＥＲＩ＝１がインバータ１２１ｂにより反転された０とが入力される。そのため、ＮＡＮＤゲート１２２ｂは１（Ｈｉｇｈ）を出力し、この信号がＡＮＤゲート１２３ｂの一方の入力端子に入力される。そのため、ＡＮＤゲート１２３ｂは、他方の入力端子に入力されるクロックユニット１３０からのクロックに応じたクロックを出力する。このクロックが、図１に示した例では、タイマなどの周辺装置１６２に供給される。
【００３７】
Ａ≧Ｃとなると（ＳＴ７ＹＥＳ）、イネーブル信号ＥＮ＿ＢＤＭ＿ＰＥＲＩ＝０とし、タイマなどの周辺装置１６２に対するクロック供給を停止してバックグラウンド・デバッグ処理を終了する（ＳＴ９）。その後、ステップＳＴ５に戻る。この場合の回路動作について図１を用いて説明する。イネーブル信号ＥＮ＿ＢＤＭ＿ＰＥＲＩ＝０となった場合、ＮＡＮＤゲート１２２ｂには、ＳＴＯＰ＝１と、イネーブル信号ＥＮ＿ＢＤＭ＿ＰＥＲＩ＝０がインバータ１２１ｂにより反転された１とが入力される。そのため、ＮＡＮＤゲート１２２ｂは０（Ｌｏｗ）を出力し、この信号がＡＮＤゲート１２３ｂの一方の入力端子に入力される。そのため、ＡＮＤゲート１２３ｂは、他方の入力端子に入力されるクロックユニット１３０からのクロックによらず０を出力する。そのため、クロックが停止する。
【００３８】
Ａ≧Ｂとなると（ＳＴ５ＹＥＳ）、イネーブル信号ＥＮ＿ＢＤＭ＿ＣＰＵ＝０とし、ＣＰＵ１４０に対するクロック供給を停止してバックグラウンド・デバッグ処理を終了する（ＳＴ１０）。この場合の回路動作について図１を用いて説明する。イネーブル信号ＥＮ＿ＢＤＭ＿ＣＰＵ＝０となった場合、ＮＡＮＤゲート１２２ａには、ＳＴＯＰ＝１と、イネーブル信号ＥＮ＿ＢＤＭ＿ＣＰＵ＝０がインバータ１２１ａにより反転された１とが入力される。そのため、ＮＡＮＤゲート１２２ａは０（Ｌｏｗ）を出力し、この信号がＡＮＤゲート１２３ａの一方の入力端子に入力される。そのため、ＡＮＤゲート１２３ａは、他方の入力端子に入力されるクロックユニット１３０からのクロックによらず０を出力する。そのため、クロックが停止する。
【００３９】
最後に、バックグラウンド・デバッグ実行結果をホスト開発システム１７０へ送信する（ＳＴ１１）。そして、スタートの状態へ戻る。
【００４０】
次に、図３に示すフローチャートを用いて図１のコマンドテーブル１１２ａに格納されるクロック数ＣＰＵ＿ＣＬＫ及びＰＥＲＩ＿ＣＬＫの決定方法について説明する。コマンド毎に処理が異なるためあくまで一例である。まず、ＣＰＵ１４０がコマンドを解析するために要するクロック数（ＳＴ２１）、ＣＰＵ１４０がコマンド処理を実行するために要するクロック数（ＳＴ２２）、周辺装置との入出力のために要するクロック数（ＳＴ２３）及びメモリ１５０へのリード・ライトに要するクロック数（ＳＴ２４）を加算することによりクロック数ＣＰＵ＿ＣＬＫを決定することができる。一方、ＰＥＲＩ＿ＣＬＫについては、ＣＰＵ１４０が周辺装置と入出力を行う間のみ動作すればよい。そのため、タイマなどの周辺装置１６２の動作に要するクロック数（ＳＴ２５）からＰＥＲＩ＿ＣＬＫを決定することができる。
【００４１】
上記実施の形態では、２つの機能ブロックに異なるクロック数を供給する例を示したが、より多くの機能ブロックに対し異なるクロック数を供給することもできる。その場合、その数に応じて、比較器１１４、インバータ１２１、ＮＡＮＤゲート１２２及びＡＮＤゲート１２３の数を増やせばよい。
また、クロックユニット１３０も１つに限られるものではなく、例えば、機能ブロック毎にクロックユニットを備えていてもよい。
【００４２】
以上説明した通り、本発明に係るデータ処理システムでは、バックグラウンド・デバッグ処理に必要なクロック数だけを、バックグラウンド・デバッグ処理となる機能ブロックに対し供給する。そのため、低消費電力モードをより忠実に再現することができる。また、例えばタイマなどの周辺装置を動作させずに、バックグラウンド・デバッグ処理を実行することができる。すなわち、タイマなどの周辺装置が動作しない低消費電力モードでの動作をより忠実に再現することができる。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施の形態に係るデータ処理システムのブロック図である。
【図２】本発明の実施の形態に係るデータ処理方法のフローチャートである。
【図３】本発明の実施の形態に係るクロック数の決定方法を示すフローチャートである。
【図４】特許文献１の図２である。
【符号の説明】
【００４４】
１１０  バックグラウンド・デバッグ・システム
１１１  コマンドデコーダ
１１２  記憶部
１１２ａ  コマンドテーブル
１１３  クロックカウンタ
１１４ａ、１１４ｂ  比較器
１２０  クロック供給制御回路
１２１ａ、１２１ｂ  インバータ
１２２ａ、１２２ｂ  ＮＡＮＤゲート
１２３ａ、１２３ｂ  ＡＮＤゲート
１３０  クロックユニット
１４０  ＣＰＵ
１５０  メモリ
１６０  周辺ユニット
１６１ａ、１６１ｂ  フリップフロップ
１６２  タイマなどの周辺装置
１６３  ＩＯポート
【図１】
2010067038.tif 000003
【図２】
2010067038.tif 000004
【図３】
2010067038.tif 000005
【図４】
2010067038.tif 000006
【手続補正書】
【提出日】平成21年4月28日(2009.4.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のクロックで動作するＣＰＵと、
第２のクロックで動作する周辺機能部と、
ＣＰＵイネーブル信号に応じて前記第１のクロックの出力・停止を行い、周辺機能部イネーブル信号に応じて前記第２のクロックの出力・停止を行うクロック供給部と、
前記ＣＰＵに対してデバッグを実行させるためのデバッグコマンドと、当該デバッグコマンドを前記ＣＰＵが処理するのに必要なクロック数Ｂ（ただし、Ｂは整数）及びＣＰＵが前記デバッグコマンドを処理する間に前記周辺機能部が動作するのに必要なクロック数Ｃ（ただし、ＣはＣ＜Ｂである整数）とを対応付けたコマンドテーブルが格納された記憶部と、
入力されたデバッグコマンドに基づいて、デバッグ処理を実行するデバッグ・システム部とを備え、
前記デバッグ・システム部は、前記クロック供給部がクロックを停止している状態で前記デバッグコマンドを受信した場合、前記コマンドテーブル上の受信したデバッグコマンドに対応するクロック数ＢとＣとを参照し、前記クロック供給部に対して、前記ＣＰＵイネーブル信号と周辺機能イネーブル信号とを出力し、前記クロック供給部が出力した前記第１のクロックが前記クロック数Ｂに達したら前記ＣＰＵイネーブル信号の出力を停止し、前記クロック供給部が出力した前記第２のクロックが前記クロック数Ｃに達したら前記周辺機能部イネーブル信号の出力を停止するデータ処理システム。
【請求項２】
前記デバッグ・システム部は、
前記クロック供給部から出力されるクロック数をカウントするクロックカウンタと、
前記クロックカウンタの値と前記クロック数ＢとＣとを比較する比較器とを更に備え、
前記クロックカウンタの値が前記クロック数Ｂに到達したら前記ＣＰＵイネーブル信号の出力を停止し、前記クロックカウンタの値が前記クロック数Ｃに到達したら前記周辺機能部イネーブル信号の出力を停止する請求項１に記載のデータ処理システム。
【請求項３】
前記クロック数Ｃは、前記ＣＰＵが前記デバッグコマンドを実行中に、前記周辺機能部とのデータの入出力に要するクロック数を含み、
前記クロック数Ｂは、前記ＣＰＵが前記デバッグコマンドの解析に要するクロック数と実行に要するクロック数と前記クロック数Ｃとを含む請求項１または２に記載のデータ処理システム。
【請求項４】
前記周辺機能部は、タイマである請求項１乃至３のいずれか１つに記載のデータ処理システム。
【請求項５】
第１のクロックで動作するＣＰＵと、第２のクロックで動作する周辺機能部とを有する装置のデバッグ方法であって、
前記第１及び第２のクロックを停止し、
デバッグコマンドを用いて前記ＣＰＵに対してデバッグを実行させる場合、前記デバッグコマンドを前記ＣＰＵが処理するのに必要なクロック数Ｂ（ただし、Ｂは整数）及び前記ＣＰＵが前記デバッグコマンドを処理する間に前記周辺機能部が動作するのに必要なクロック数Ｃ（ただし、ＣはＣ＜Ｂである整数）とを対応付けたコマンドテーブルを参照し、前記クロック数Ｂに相当するクロックを前記第１クロックとして前記ＣＰＵに供給し、前記クロック数Ｃに相当するクロックを前記第２クロックとして前記周辺機能部に供給して前記デバッグコマンドを実行するデバッグ方法。
【請求項６】
前記クロック数Ｃは、前記ＣＰＵが前記デバッグコマンドを実行中に、前記周辺機能部とのデータの入出力に要するクロック数を含み、
前記クロック数Ｂは、前記ＣＰＵが前記デバッグコマンドの、解析に要するクロック数と実行に要するクロック数及び前記クロック数Ｃとを含む請求項５に記載のデバッグ方法。
【手続補正書】
【提出日】平成21年7月28日(2009.7.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のクロックで動作するＣＰＵと、
前記第１のクロックから分岐された第２のクロックで動作する周辺機能部と、
ＣＰＵイネーブル信号に応じて前記第１のクロックの出力・停止を行い、周辺機能部イネーブル信号に応じて前記第２のクロックの出力・停止を行うクロック供給部と、
前記ＣＰＵに対してデバッグを実行させるためのデバッグコマンドと、当該デバッグコマンドを前記ＣＰＵが処理するのに必要なクロック数Ｂ（ただし、Ｂは整数）及びＣＰＵが前記デバッグコマンドを処理する間に前記周辺機能部が動作するのに必要なクロック数Ｃ（ただし、ＣはＣ＜Ｂである整数）とを対応付けたコマンドテーブルが格納された記憶部と、
入力されたデバッグコマンドに基づいて、デバッグ処理を実行するデバッグ・システム部とを備え、
前記デバッグ・システム部は、前記クロック供給部がクロックを停止している状態で前記デバッグコマンドを受信した場合、前記コマンドテーブル上の受信したデバッグコマンドに対応するクロック数ＢとＣとを参照し、前記クロック供給部に対して、前記ＣＰＵイネーブル信号と周辺機能イネーブル信号とを出力し、前記クロック供給部が出力した前記第１のクロックが前記クロック数Ｂに達したら前記ＣＰＵイネーブル信号の出力を停止し、前記クロック供給部が出力した前記第２のクロックが前記クロック数Ｃに達したら前記周辺機能部イネーブル信号の出力を停止するデータ処理システム。
【請求項２】
前記デバッグ・システム部は、
前記クロック供給部から出力されるクロック数をカウントするクロックカウンタと、
前記クロックカウンタの値と前記クロック数ＢとＣとを比較する比較器とを更に備え、
前記クロックカウンタの値が前記クロック数Ｂに到達したら前記ＣＰＵイネーブル信号の出力を停止し、前記クロックカウンタの値が前記クロック数Ｃに到達したら前記周辺機能部イネーブル信号の出力を停止する請求項１に記載のデータ処理システム。
【請求項３】
前記クロック数Ｃは、前記ＣＰＵが前記デバッグコマンドを実行中に、前記周辺機能部とのデータの入出力に要するクロック数を含み、
前記クロック数Ｂは、前記ＣＰＵが前記デバッグコマンドの解析に要するクロック数と実行に要するクロック数と前記クロック数Ｃとを含む請求項１または２に記載のデータ処理システム。
【請求項４】
前記周辺機能部は、タイマである請求項１乃至３のいずれか１つに記載のデータ処理システム。
【請求項５】
第１のクロックで動作するＣＰＵと、前記第１のクロックから分岐された第２のクロックで動作する周辺機能部とを有する装置のデバッグ方法であって、
前記第１及び第２のクロックを停止し、
デバッグコマンドを用いて前記ＣＰＵに対してデバッグを実行させる場合、前記デバッグコマンドを前記ＣＰＵが処理するのに必要なクロック数Ｂ（ただし、Ｂは整数）及び前記ＣＰＵが前記デバッグコマンドを処理する間に前記周辺機能部が動作するのに必要なクロック数Ｃ（ただし、ＣはＣ＜Ｂである整数）とを対応付けたコマンドテーブルを参照し、前記ＣＰＵに対して前記クロック数Ｂの前記第１クロックを、前記周辺機能部に対して前記クロック数Ｃの前記第２クロックを同時に供給して前記デバッグコマンドを実行するデバッグ方法。
【請求項６】
前記クロック数Ｃは、前記ＣＰＵが前記デバッグコマンドを実行中に、前記周辺機能部とのデータの入出力に要するクロック数を含み、
前記クロック数Ｂは、前記ＣＰＵが前記デバッグコマンドの、解析に要するクロック数と実行に要するクロック数及び前記クロック数Ｃとを含む請求項５に記載のデバッグ方法。