(57)【要約】      （修正有）【課題】オンチップデバッグ機能を有するマイクロコンピュータにおいて、消費電力の増大を防止すること。【解決手段】オンチップデバッグ機能を有するマイクロコンピュータであって、ＣＰＵの状態がブレークモードであるか否かを示すブレークモード信号１１４を出力するＣＰＵ２０と、第１のデバッグモジュール３０と、第１のデバッグモジュールとは異なるクロックラインでクロックが供給される第２のデバッグモジュール４０と、クロック供給制御回路５０と、を含む。クロック供給制御回路５０は、前記ブレークモード信号１１４がＣＰＵがブレーク状態であることを示している場合には第２のデバッグモジュールへのクロックの供給を停止するよう制御する。【選択図】図１
2007193570.tif 000002
【特許請求の範囲】
【請求項１】
オンチップデバッグ機能を有するマイクロコンピュータであって、
ＣＰＵの状態がブレークモードであるか否かを示すブレークモード信号を出力するＣＰＵと、
オンチップデバッグを行うためのデバッグ回路を含む第１のデバッグモジュールと、
第１のデバッグモジュールとは異なるクロックラインでクロックが供給され、オンチップデバッグを行うためのデバッグ回路を含む第２のデバッグモジュールと、
第１のデバッグモジュールに供給するクロックは非ブレーク時においてもクロックの供給を停止しないように制御し、第２のデバッグモジュールに供給するクロックは非ブレーク時にクロックの供給を停止するようにクロックの供給を制御するクロック供給制御回路と、を含み、
前記クロック供給制御回路は、
前記ブレークモード信号がＣＰＵがブレーク状態であることを示している場合には第２のデバッグモジュールへのクロックの供給を停止するよう制御することを特徴とするマイクロコンピュータ。
【請求項２】
請求項１において、
前記第１のデバッグモジュールは、
オンチップデバッグを行うためのデバッグ回路として強制ブレーク入力信号を受け取り強制ブレーク入力信号に基づき強制ブレークの発生を検出してブレーク発生信号を出力する強制ブレーク検出回路を含むことを特徴とするマイクロコンピュータ。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記第２のデバッグモジュールは、
オンチップデバッグを行うためのデバッグ回路としてブレークポイント検出回路を含み、
前記ブレークポイント検出回路は、
ブレークポイント値を設定するためのブレークポイントレジスタと、
ＣＰＵから受け取ったプログラムカウンタ値とブレークポイントレジスタに格納されたブレークポイント値を比較して、一致した場合にはブレーク発生信号を組み合わせ回路のみを介して出力するブレーク信号出力回路とを含むことを特徴とするマイクロコンピュータ。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記第２のデバッグモジュールは、
オンチップデバッグを行うためのデバッグ回路としてステップ実行回路を含み、
前記ステップ実行回路は、
ステップ実行イネーブルビットレジスタをふくみ、
ステップ実行イネーブルビットレジスタの値の値がイネーブルである場合にブレーク発生信号を組み合わせ回路のみを介して出力することを特徴とするマイクロコンピュータ。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記ＣＰＵは、
第１のブレークモードレジスタと、少なくとも１クロック遅れてその値をコピーした値を保持する第２のブレークモードレジスタを含み、第１のブレークモードレジスタの値と第２のブレークモードレジスタの値と第１のモジュール及び第２のモジュールの少なくとも一方から出力されたブレーク発生信号に基づき、生成される最終的なブレーク入力信号に基づきブレークモードへ移行することを特徴とするマイクロコンピュータ。
【請求項６】
請求項１乃至５のいずれかに記載のマイクロコンピュータと、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ及び電子機器に関する。
【背景技術】
【０００２】
近年、ゲーム装置、カーナビゲーションシステム、プリンタ、携帯情報端末などの電子機器に組み込まれ、高度な情報処理を実現できるマイクロコンピュータに対する需要が高まっている。このような組み込み型のマイクロコンピュータは、通常、ターゲットシステムと呼ばれるユーザボードに実装される。そして、このターゲットシステムを動作させるソフトウェアの開発を支援するためにＩＣＥ（In-Circuit Emulator）と呼ばれるソフトウェア開発支援ツールが広く使用されている。
【０００３】
さて、このようなＩＣＥとしては、従来はＣＰＵ置き換え型と呼ばれるＩＣＥが主流を占めていたが、最近では、ＩＣＥと同じ機能を実現するためのデバッグ用のピンと機能を量産チップ上に実装するタイプのＩＣＥが知られている。このようなオンデバッグ機能実装型ＩＣＥにおいては、通常ユーザーモード又はｒｕｎ中とデバッグモードを有している。そしてユーザーモード又はｒｕｎ中において、ユーザープログラムが実行され、デバッグモードにおいてはデバッグ用プログラムが実行される。
【特許文献１】特開２００４−２８７７６０号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このようなオンチップデバッグ機能を持つマイクロコンピュータでは、オンチップデバッグ機能モジュールはＣＰＵと一体となっており、ＣＰＵ同様常にクロックが入力されていた。
【０００５】
そのためオンチップデバッグ機能モジュールにおいても常に電流が流れ電力を消費していた。オンチップデバッグ機能は今後機能がより豊富になり、それに伴い消費電力も増大するという問題点があった。
【０００６】
本発明は以上のような問題点に鑑みてなされたものであり、オンチップデバッグ機能を有するマイクロコンピュータにおいて、消費電力の増大を防止することを目的とする。
【課題を解決するための手段】
【０００７】
（１）本発明は、
オンチップデバッグ機能を有するマイクロコンピュータであって、
ＣＰＵの状態がブレークモードであるか否かを示すブレークモード信号を出力するＣＰＵと、
オンチップデバッグを行うためのデバッグ回路を含む第１のデバッグモジュールと、
第１のデバッグモジュールとは異なるクロックラインでクロックが供給され、オンチップデバッグを行うためのデバッグ回路を含む第２のデバッグモジュールと、
第１のデバッグモジュールに供給するクロックは非ブレーク時においてもクロックの供給を停止しないように制御し、第２のデバッグモジュールに供給するクロックは非ブレーク時にクロックの供給を停止するようにクロックの供給を制御するクロック供給制御回路と、を含み、
前記クロック供給制御回路は、
前記ブレークモード信号がＣＰＵがブレーク状態であることを示している場合には第２のデバッグモジュールへのクロックの供給を停止するよう制御することを特徴とする。
【０００８】
ブレークモードとはＣＰＵの状態がブレーク中である場合であり、ユーザーモードやｒｕｎ中以外の状態を意味し、ブレーク時の状態を例えばデバッグモードやテストモードという名称で呼ばれる場合にはかかる場合も含む。
【０００９】
非ブレーク時とはユーザーモードやｒｕｎ中である場合である。
【００１０】
本発明によればデバッグモジュールを非ブレーク時にクロックを止めない第１のデバッグモジュールと、非ブレーク時にはクロックを止める第２のデバッグモジュールに分けて、第１のデバッグモジュールと第２のデバッグモジュールに異なるクロックラインでクロックの供給する。このため、オンチップデバッグ機能を有するマイクロコンピュータにおいて非ブレーク時にデバッグモジュール全体にクロックの供給を行う場合に比べ、消費電力の増大を防止し低パワー化することができる。
【００１１】
（２）本発明のマイクロコンピュータは、
前記第１のデバッグモジュールは、
オンチップデバッグを行うためのデバッグ回路として強制ブレーク入力信号を受け取り強制ブレーク入力信号に基づき強制ブレークの発生を検出してブレーク発生信号を出力する強制ブレーク検出回路を含むことを特徴とする。
【００１２】
強制ブレークの入力は非ブレーク時（ユーザーモード又はｒｕｎ中時）に行われる。本発明によれば、強制ブレーク検出回路を第１のモジュールにおくので、非ブレーク時（ユーザーモード又はｒｕｎ中時）にもクロックを供給することができ、非ブレーク時（ユーザーモード又はｒｕｎ中時）に発生する強制ブレークを検出することができる。
【００１３】
（３）本発明のマイクロコンピュータは、
前記第２のデバッグモジュールは、
オンチップデバッグを行うためのデバッグ回路としてブレークポイント検出回路を含み、
前記ブレークポイント検出回路は、
ブレークポイント値を設定するためのブレークポイントレジスタと、
ＣＰＵから受け取ったプログラムカウンタ値とブレークポイントレジスタに格納されたブレークポイント値を比較して、一致した場合にはブレーク発生信号を組み合わせ回路のみを介して出力するブレーク信号出力回路とを含むことを特徴とする。
【００１４】
組み合わせ回路とは順序回路（フィリップフロップを含む回路）に対する概念であり、フィリップフロップを含まないでアンド回路やＯＲ回路だけで構成される回路である。
【００１５】
ブレークポイントレジスタへのブレークポイントの設定は、ブレーク時（ブレークモード、デバッグモード、テストモード等）に行われる。ブレークポイントレジスタは同期入力のフィリップフロップを含んで構成されるので、値設定時にはクロックが供給されていることが必要である。
【００１６】
ブレークポイントレジスタの値とプログラムカウンタ値との比較及びブレーク検出信号の出力は、非ブレーク時（ユーザーモード又はｒｕｎ中）で行われるが、本発明ではブレーク信号出力回路は、フィリップフロップのライトなしで動作するランダムロジック（アンド、ＯＲで構成されているフィリップフロップを含まない回路、組み合わせ回路（フィリップフロップを含まない回路）、順序回路（フィリップフロップを含む回路）でない）で構成することにより、クロック停止時にも動作させることができる。
【００１７】
従ってブレークポイント検出回路を第２のデバッグモジュールに設けることで、より低パワーなマイクロコンピュータを実現することができる。
【００１８】
（４）本発明のマイクロコンピュータは、
前記第２のデバッグモジュールは、
オンチップデバッグを行うためのデバッグ回路としてステップ実行回路を含み、
前記ステップ実行回路は、
ステップ実行イネーブルビットレジスタをふくみ、
ステップ実行イネーブルビットレジスタの値の値がイネーブルである場合にブレーク発生信号を組み合わせ回路のみを介して出力することを特徴とする。
【００１９】
組み合わせ回路とは順序回路（フィリップフロップを含む回路）に対する概念であり、フィリップフロップを含まないでアンド回路やＯＲ回路だけで構成される回路である。
【００２０】
ステップ実行イネーブルビットレジスタの設定は、ブレーク時（デバッグモード、ブレークモード、テストモード等）に行われる。ステップ実行イネーブルビットレジスタは同期入力のフィリップフロップを含んで構成されるので、値設定時にはクロックが供給されていることが必要である。
【００２１】
ステップ実行イネーブルレジスタの値の値がイネーブルである場合にブレーク発生信号を出力する処理は、非ブレーク時（ユーザーモード又はｒｕｎ中）で行われるが、本発明では出力回路をフィリップフロップを含まない組み合わせ回路のみで構成することにより、クロック停止時にも動作させることができる。
【００２２】
従ってステップ実行回路を第２のデバッグモジュールに設けることで、より低パワーなマイクロコンピュータを実現することができる。
【００２３】
（５）本発明のマイクロコンピュータは、
前記ＣＰＵは、
第１のブレークモードレジスタと、少なくとも１クロック遅れてその値をコピーした値を保持する第２のブレークモードレジスタを含み、第１のブレークモードレジスタの値と第２のブレークモードレジスタの値と第１のモジュール及び第２のモジュールの少なくとも一方から出力されたブレーク発生信号に基づき、生成される最終的なブレーク入力信号に基づきブレークモードへ移行することを特徴とする。
【００２４】
（６）本発明は、
上記のいずれかに記載のマイクロコンピュータと、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器である。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００２６】
１．マイクロコンピュータ
以下、本発明の好適な実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００２７】
図１は、本実施の形態のマイクロコンピュータの構成について説明するための機能ブロック図である。
【００２８】
本実施の形態のマイクロコンピュータ１０は、オンチップデバッグ機能を有するマイクロコンピュータであって、ＣＰＵ２０の状態がブレークモードであるか否かを示すブレークモード信号を出力するＣＰＵ２０と、第１のクロックライン１５０でクロックが供給され、オンチップデバッグを行うためのデバッグ回路を含む第１のデバッグモジュール３０と、第１のデバッグモジュール３０とは異なるクロックラインでクロックが供給され、オンチップデバッグを行うためのデバッグ回路を含む第２のデバッグモジュール４０と、第１のデバッグモジュール３０に供給するクロックはユーザーモード又はｒｕｎ中においてもクロックの供給を停止しないように制御し、第２のデバッグモジュール４０に供給するクロックについてはユーザーモード又はｒｕｎ中においてはクロックの供給を停止するようにクロックの供給を制御するクロック供給制御回路５０と、を含む。
【００２９】
マイクロコンピュータ１０のオンチップデバッグモジュール３０、４０はデバッグモード時に外部のデバッグツール１３０とデバッグ情報の送受を行い、デバッグ用プログラムを実行して種々のデバッグ処理を行う。
【００３０】
また、マイクロコンピュータ１０はデバッグ用端子としてＳＩＯ（ＩＮ）１３２、ＳＩＯ（ｏｕｔ）１３４、強制ブレーク１３６等の端子を有しており、強制ブレーク１３６はユーザーモード又はｒｕｎ中時には強制ブレークの入力信号を受け付け、ＳＩＯ（ＩＮ）１３２、ＳＩＯ（ｏｕｔ）１３４はデバッグモード時には調歩同期式のＳＩＯで外部のデバッグツール１３０とデバッグ情報の送受信を行う。
【００３１】
デバッグツール１３０は、パーソナルコンピュータ等により実現されるホストシステム６６に接続される。ホストシステム６６が、ユーザの操作により、プログラムロード、ステップ実行などのデバッグコマンドを発行すると、このデバッグコマンドをプリミティブコマンドに変換（分解）し、ＳＩＯ（ＩＮ）１３２、を介しマイクロコンピュータに送信する。そしてマイクロコンピュータは、実行結果をＳＩＯ（ｏｕｔ）１３４を介し、デバッグツール１３０に返信することで、デバッグ処理を行う。
【００３２】
ここでＣＰＵ２０は、種々の命令の実行処理を行うものであり、内部レジスタを含む。内部レジスタは、汎用レジスタであるＲ０〜Ｒ１５や、特殊レジスタであるＳＰ（スタックポインタレジスタ）、ＡＨＲ（積和結果データの上位レジスタ）、ＡＬＲ（積和結果データの下位レジスタ）などを含む。
【００３３】
なおＣＰＵ２０は、ユーザーモードとデバッグモードを有しており、ブレークモード設定回路１１０を含む。ブレークモード設定回路１１０はブレークモード設定フィリップフロップ１１２を含み、第２のモジュールが検出した強制ブレーク（ブレーク発生信号６２）や第２のモジュールが検出したブレークポイントやステップ実行の各ステップにおけるブレーク発生（ブレーク信号７２、８２）に基づきブレークモードを設定する。
【００３４】
発振クロック１５０に接続された第１のクロックラインは発振クロックをクロック供給制御回路５０を介さずにＣＰＵ２０及び第１のデバッグモジュール３０に供給する。また発振クロック１５０に接続された第２のクロックラインは発振クロックをクロック供給制御回路５０を介して第２のデバッグモジュール４０に供給する。
【００３５】
ここでクロック供給制御回路５０は、ブレークモード信号１１４に基づき、ＣＰＵ２０がブレークモード状態である場合には第２のデバッグモジュール４０へのクロックの供給を停止するよう制御する。
【００３６】
クロック供給制御回路５０は、例えばアンド回路５２とラッチ用フィリップフロップ５６を含んで構成することができる。ラッチ用フィリップフロップ５６は、ブレークモード信号１１４をＤ入力とし、発振クロック１５０をクロック入力とするＤフィリップフロップでもよい。アンド回路５２はラッチ用フィリップフロップの出力と発振クロック１１０を入力とするアンド回路であり、その出力クロック１６０は第２のデバッグモジュールに供給される。
【００３７】
本実施の形態によれば、ＣＰＵ２０及び第１のデバッグモジュール３０と、第２のデバッグモジュール４０は、クロックラインが分かれており、ＣＰＵ２０及び第１のデバッグモジュール３０には、ブレーク時（デバッグモード）及び非ブレーク時（ユーザーモード又はｒｕｎ中）のいずれにおいてもクロックが供給され、第２のデバッグモジュールには、ブレーク時（デバッグモード）にはクロックを供給するが、非ブレーク時（ユーザーモード又はｒｕｎ中）にはクロックの供給を停止する。
【００３８】
従って非ブレーク時（ユーザーモード又はｒｕｎ中）に第１のデバッグモジュール３０と第２のデバッグモジュールの両方にクロックを供給する場合に比べ消費電力を節約することができる。
【００３９】
第２のデバッグモジュール４０は、例えばオンチップデバッグを行うためのＳＩＯ９０を含むようにしてもよい。ＳＩＯ９０は、マイクロコンピュータ１０の外部に設けられたデバッグツール１３０との間で送受信するデバッグ用のデータの制御を行うものである。
【００４０】
ＳＩＯ９０は、送受信バッファ、シフトレジスタ、送受信切替部、クロック制御部及び制御レジスタ等を含む。
【００４１】
ここで送受信バッファは、送信データ、受信データを一時的に蓄えるためのものであり、送信バッファ、受信バッファを有するようにしてもよい。またシフトレジスタは、送信バッファからの送信データをパラレルデータからシリアルデータに変換し送受信切替部に出力したり、送受信切替部からの受信データをシリアルデータからパラレルデータに変換し受信バッファに出力したりするものである。なおデータの送信と受信とを切り替えるための送受信切替部を設け、半２重のデータ送受信を行うようにしてもよい。
【００４２】
ＳＩＯ９０はオンチップデバッグを行う際に動作する回路であり、ブレーク時（デバッグモード）のみ動作するので、非ブレーク時（ユーザーモード又はｒｕｎ中）にはクロックを供給しなくても良い。従ってＳＩＯ９０を第２のデバッグモジュールに設けることで、より低パワーなマイクロコンピュータを実現することができる。
【００４３】
第２のデバッグモジュール４０は、例えばオンチップデバッグを行うためのブレークポイント検出回路７０を含むようにしてもよい。
【００４４】
ブレークポイント検出回路７０は、ブレークポイント値が設定されたブレークポイントレジスタと、ＣＰＵ２０から受け取ったプログラムカウンタ値１２２とブレークポイントレジスタに格納されたブレークポイント値を比較して、一致した場合にはブレーク発生信号７２をフィリップフロップの含まれていない組み合わせ回路のみを介して出力するブレーク信号出力回路を含む。
【００４５】
ブレークポイント検出回路７０は、例えばブレークイネーブルビット及びブレークポイントアドレスレジスタと、比較回路で構成することができる。ＣＰＵからのプログラムカウンタ１２２を受け取り、ブレークイネーブルである場合にブレークポイントアドレスレジスタに設定された値と受け取ったプログラムカウンタ値とを比較回路で比較してブレーク発生を検出しブレーク発生信号７２をＣＰＵにむけ出力するようにしてもよい。
【００４６】
デバッグツール１３０からブレークポイント設定コマンドが発行されると、モニタ部がブレークポイント設定コマンドに対応したコマンドを実行することでブレークイネーブルビット及びブレークポイントアドレスレジスタのセットが行われる。
【００４７】
ブレークポイントの設定（ブレークイネーブルビット及びブレークポイントアドレスレジスタの設定）は、ブレーク時（デバッグモード）においてデバッグツール１３０からのコマンドによって行われる。ブレークイネーブルビット及びブレークポイントアドレスレジスタは同期入力のフィリップフロップを含んで構成されるので、値設定時にはクロックが供給されていることが必要である。
【００４８】
ここでブレークポイントレジスタの値とＣＰＵ２０のプログラムカウンタ値との比較及びブレーク検出信号の出力は、非ブレーク時（ユーザーモード又はｒｕｎ中）で行われる。しかし本実施所形態ではブレークポイントレジスタの値とＣＰＵ２０のプログラムカウンタ値との比較及びブレーク検出信号の出力にかかる回路をフィリップフロップの含まれていない組み合わせ回路で構成することにより、クロック停止時にも動作させることができる。
【００４９】
従ってブレークポイント検出回路７０を第２のデバッグモジュールに設けることで、より低パワーなマイクロコンピュータを実現することができる。
【００５０】
第２のデバッグモジュール４０は、例えばオンチップデバッグを行うためのステップ実行回路８０を含むようにしてもよい。
【００５１】
ステップ実行回路８０は、ステップ実行イネーブルレジスタをふくみ、ステップ実行イネーブルレジスタの値がイネーブルである場合にブレーク発生信号をフィリップフロップを含まない組み合わせ回路のみ（クロックなし、フィリップフロップなし、順序回路を含まず）を介して出力する。
【００５２】
ステップ実行回路８０は、例えばステップ実行イネーブルビットレジスタを含み、ステップ実行イネーブルビットレジスタがオン状態の時に１ステップ実行する毎にブレークしてデバッグモードに移行するための処理を行う回路である。
【００５３】
デバッグツール１３０からステップ実行コマンドが発行されると、ミニモニタ部がステップ実行イネーブルビットへイネーブルビットをセットし、ＧＯコマンドを実行することで、ステップ実行コマンドが実現されるようになる。
【００５４】
ステップ実行イネーブルビットの設定（ステップ実行イネーブルビットレジスタの設定）は、ブレーク時（デバッグモード、ブレークモード、テストモード等）においてデバッグツール１３０からのコマンドによって行われる。ステップ実行イネーブルビットは同期入力のフィリップフロップを含んで構成されるので、値設定時にはクロックが供給されていることが必要である。
【００５５】
ここでステップ実行イネーブルレジスタの値の値がイネーブルである場合にブレーク発生信号を出力する処理は、フィリップフロップを含まない組み合わせ回路のみ（クロックなし、フィリップフロップなし、順序回路を含まず）で構成することにより、クロック停止時にも動作させることができる。
【００５６】
従ってステップ実行回路８０を第２のデバッグモジュールに設けることで、より低パワーなマイクロコンピュータを実現することができる。
【００５７】
第２のデバッグモジュール４０は、例えばオンチップデバッグを行うためのモニタ部１００を含むようにしてもよい。モニタ部１００は、デバッグモードにおいて、ＳＩＯ９０を介してデバッグツール１３０との間でデバッグコマンドやデータの送受信を行い、デバッグツールからの受信したデバッグコマンドを実行する。
【００５８】
モニタ部１００は、モニタＲＯＭやモニタＲＡＭ等を含む。
【００５９】
ここで、モニタＲＯＭには、モニタプログラムが格納される。本実施形態では、このモニタプログラムは、ＧＯ、リード、ライトなどのシンプルでプリミティブなコマンドの処理のみを行うようになっている。このため、モニタＲＯＭのメモリ容量を例えば２５６バイト程度に抑えることができ、オンチップデバッグ機能を持たせながらマイクロコンピュータ２０を小規模化できるようになる。
【００６０】
モニタＲＡＭには、デバッグモードへの移行時に（ユーザプログラムのブレーク発生時に）、ＣＰＵ２０の内部レジスタの内容が退避される。これにより、デバッグモードの終了後にユーザプログラムの実行を適正に再スタートできるようになる。また内部レジスタの内容のリード等を、モニタプログラムが持つプリミティブなリードコマンド等で実現できるようになる。
【００６１】
モニタプログラムにより動作するＣＰＵ２０がブレークポイント制御回路７０のブレークイネーブルビット及びブレークポイントアドレスレジスタや、ステップ実行回路８０のステップ実行イネーブルビットレジスタの各ビットにデータを書き込んだり、各ビットのデータをリードすることで、各種のデバッグ処理が実現される。
【００６２】
第１のデバッグモジュール３０は、強制ブレーク検出回路６０を含むように構成してもよい。強制ブレーク検出回路６０は、外部のデバッグツール１３０から強制ブレーク入力信号１３６を受け取り、強制ブレーク入力信号１３６に基づき強制ブレークの発生を検出してブレーク発生信号６２を出力する。
【００６３】
強制ブレークの入力は非ブレーク時（ユーザーモード又はｒｕｎ中時）に行われるが、本実施の形態によれば、強制ブレーク検出回路６０を第１のモジュールにおくことで、非ブレーク時（ユーザーモード又はｒｕｎ中時）にもクロックを供給することができる。
【００６４】
図２は本実施の形態のクロック供給にかかるタイミングチャート図である。
【００６５】
発振クロック１５０は、ＣＰＵ及び第１のデバッグモジュールに供給されるクロックであると共に、クロック供給制御回路の入力となるクロックである。
【００６６】
ブレークモード信号１１４はＣＰＵのブレークモードレジスタに設定される値であり、非ブレーク時（ユーザーモード又はｒｕｎ中）ではＬレベルとなり、ブレーク時（デバッグモード、ブレークモード、テストモード等）にはＨレベルとなる。
【００６７】
第２のクロックラインで供給されるクロック１６０は、クロック供給制御回路の出力となるクロックであり、２１０に示すようにブレーク時（ブレークモード信号がＨレベルの時）にクロックが供給され、非ブレーク時（ユーザーモード又はｒｕｎ中時）にはクロックが供給されない。
【００６８】
図３は、本実施の形態のマイクロコンピュータのブレーク発生の検出にかかる構成について説明するため図である。図１と同じ構成要素については同じ番号を付しており、説明を省略する。
【００６９】
第２のデバッグモジュール４０のブレークポイント設定フィリップフロップ７４と比較回路７６は、ブレークポイント検出回路（図１の７０参照）として機能する。ブレークポイント設定フィリップフロップ７４は同期入力を持つフィリップフロップであり、クロック入力は第２のクロックラインに接続される。従って非デバッグ時（ユーザーモード又はｒｕｎ中）にはクロックが供給されない。
【００７０】
ブレークポイントの値はブレーク時（デバッグモード、ブレークモード、テストモード等）にデバッグツールからのコマンドに基づき設定される。比較回路７６の入力は、ブレークポイント設定フィリップフロップ７４の出力と、ＣＰＵのプログラムカウンタ出力に接続される。
【００７１】
第２のデバッグモジュール４０のステップ実行イネーブルビットフィリップフロップ８４は、ステップ実行回路（図１の８０参照）として機能する。ステップ実行イネーブルビットフィリップフロップ８４は同期入力を持つフィリップフロップであり、クロック入力は第２のクロックラインに接続される。従って非ブレーク時（ユーザーモード又はｒｕｎ中）にはクロックが供給されない。ステップ実行イネーブルビットの値はブレーク時（デバッグモード又はブレーク）にデバッグツールからのコマンドに基づき設定される。
【００７２】
比較回路７６の出力７２及びステップ実行イネーブルビットフィリップフロップ８４の出力８２は第１のＯＲ回路１７０の入力に接続される。
【００７３】
第１のデバッグモジュール３０の強制ブレーク要因フィリップフロップ６４は、強制ブレーク検出回路（図１の６０）として機能する。強制ブレーク要因フィリップフロップ８４は同期入力を持つフィリップフロップであり、クロック入力は第１のクロックラインに接続される。従って非デバッグ時（ユーザーモード又はｒｕｎ中）にはクロックが供給されない。
【００７４】
強制ブレーク要因フィリップフロップの値は非ブレーク時（ユーザーモード又はｒｕｎ中）にデバッグツールから強制ブレークの入力により設定される。
【００７５】
第１のＯＲ回路１７０の出力１７２及び強制ブレーク要因フィリップフロップ６２の出力８２は第２のＯＲ回路１８０の入力に接続される。そして第２のＯＲ回路１８０の出力がブレーク入力１８２としてＣＰＵに入力され、ブレークモードフィリップフロップ１１２がブレーク状態にセットされる。
【００７６】
図４は、ＣＰＵのブレークモード設定回路の構成の一例を示す図である。
【００７７】
ＣＰＵ２０のブレークモード設定回路（図１の１１０）は、第１のブレークモード設定フィリップフロップ１１２、第２のブレークモード設定フィリップフロップ１１４、アンド回路１１８を含む。第１のブレークモード設定フィリップフロップ１１２、第２のブレークモード設定フィリップフロップ１１４は同期入力のフィリップフロップでクロック入力は第１のクロックライン１５０に接続される。
【００７８】
第１のブレークモード設定フィリップフロップの値が第２のブレークモード設定フィリップフロップ１１４にコピーされる（第１のブレークモード設定フィリップフロップの出力値が第２のブレークモード設定フィリップフロップ１１４のＤ入力に接続される。
【００７９】
また第１のブレークモード設定フィリップフロップの出力値１１３の反転値、第２のブレークモード設定フィリップフロップ１１４の出力値１１５の反転値、ブレーク入力１８２がアンド回路１１８の入力となり、アンド回路１８２の出力が最終的なブレーク入力１１９となり第１のブレークモード設定フィリップフロップ１１４Ｄ入力に接続される。
【００８０】
図５は、図４のブレークモード設定回路のタイミングチャート図である。
【００８１】
図４に示すように第１のブレークモード設定フィリップフロップの値が第２のブレークモード設定フィリップフロップ１１４を儲け、第１のブレークモード設定フィリップフロップの値を第２のブレークモード設定フィリップフロップ１１４にコピーして、これらの値に基づき最終的なブレーク入力１１９を求める構成とすることにより、２２０に示すようにブレークモードの終了時に1命令分の命令を実行が可能なユーザーモードが発生し、ステップ実行を可能にすることができる。
【００８２】
図６は、デバッグ機能をＪＴＡＧＩ／Ｆで実装する場合の構成について説明するための図である。図１及び図３と同じ構成要素については同じ番号を付しており、説明を省略する。
【００８３】
第１のデバッグモジュール３０はＪＴＡＧ  ＴＡＰコントローラ３２０とデバッグコマンドデコーダを含む。
【００８４】
ＪＴＡＧ  ＴＡＰコントローラ３２０は、ＪＴＡＧに対応してTAP(Test Access Port)と呼ばれる5本の端子（TDI、TDO、TCK、TMS、TRS）からなるインターフェイスを持ち、テストデータの入出力や制御を行う回路である。
【００８５】
ＪＴＡＧとは、ICチップの検査方式の一つであるバウンダリスキャンテスト(BST：Boundary Scan Test：境界走査試験)の標準方式であり、チップ内部にプローブテストと同様の挙動を行なう「バウンダリスキャンボード」(あるいは「JTAGボード」)と呼ばれる端子およびレジスタを構成し、外部からテストコードを入力、それに対するICの挙動を調査するテストが広く行われている。
【００８６】
第１のデバッグモジュール３０はデバッグコマンドデコーダ３１０を含む。デバッグコマンドデコーダ３１０は、ＪＴＡＧ  ＴＡＰコントローラ３２０が外部から受け取ったテストデータ（デバッグコマンド）をデコードする処理を行う。
【００８７】
本実施の形態ではＪＴＡＧ  ＴＡＰコントローラが外部から受け取った強制ブレークやステップイネーブルレジスタライトやブレークポイントレジスタライトのデバッグコマンドを受け取ると、デバッグコマンドデコーダ３１０がデコードして強制ブレーク信号６２、ステップイネーブルレジスタライト信号１２、ブレークポイントレジスタライト信号３１４を出力する。
【００８８】
第１のデバッグモジュール３０のＪＴＡＧ  ＴＡＰコントローラ３２０や、デバッグコマンドデコーダはブレーク時（デバッグモード、ブレークモード、テストモード等）や非ブレーク時（ユーザーモード又はｒｕｎ中）に関わらず、常にコマンド入力を受け付けるため、非ブレーク時（ユーザーモード又はｒｕｎ中）にもクロックの供給が必要である。
【００８９】
本実施の形態では、ＪＴＡＧ  ＴＡＰコントローラ３２０やデバッグコマンドデコーダは第１のデバッグモジュール３０におくことで、非ブレーク時（ユーザーモード又はｒｕｎ中）にもクロックを供給することができる。従って、デバッグ機能をＪＴＡＧＩ／Ｆで実装する場合もクロックラインを分離してマイクロコンピュータクロックの低パワー化を図ることができる。
【００９０】
第２のデバッグモジュール４０のブレークポイント設定フィリップフロップ７４と比較回路７６は、ブレークポイント検出回路（図１の７０参照）として機能する。ブレークポイント設定フィリップフロップ７４は同期入力を持つフィリップフロップであり、クロック入力は第２のクロックラインに接続される。従って非デバッグ時（ユーザーモード又はｒｕｎ中）にはクロックが供給されない。
【００９１】
ブレークポイントの値はブレーク時（デバッグモード、ブレークモード、テストモード等）にデバッグコマンドデコーダ３１０からのブレークポイントレジスタライト信号３１４によって設定される。比較回路７６の入力は、ブレークポイント設定フィリップフロップ７４の出力と、ＣＰＵのプログラムカウンタ出力に接続される。
【００９２】
第２のデバッグモジュール４０のステップ実行イネーブルビットフィリップフロップ８４は、ステップ実行回路（図１の８０参照）として機能する。ステップ実行イネーブルビットフィリップフロップ８４は同期入力を持つフィリップフロップであり、クロック入力は第２のクロックラインに接続される。従って非デバッグ時（ユーザーモード又はｒｕｎ中）にはクロックが供給されない。ステップ実行イネーブルビットの値はブレーク時（デバッグモード又はブレーク）にデバッグコマンドデコーダ３１０からのステップイネーブルレジスタライト信号によって設定される。
【００９３】
比較回路７６の出力７２及びステップ実行イネーブルビットフィリップフロップ８４の出力８２は第１のＯＲ回路１７０の入力に接続される。
【００９４】
図７は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【００９５】
本マイクロコンピュータ７００は、ＣＰＵ５１０、キャッシュメモリ５２０、ＬＣＤコントローラ５３０、リセット回路５４０、プログラマブルタイマ５５０、リアルタイムクロック（ＲＴＣ）５６０、ＤＲＡＭコントローラ兼バスＩ／Ｆ５７０、割り込みコントローラ５８０、第１のデバッグモジュール５９０、バスコントローラ６００、Ａ／Ｄ変換器６１０、Ｄ／Ａ変換器６２０、入力ポート６３０、出力ポート６４０、Ｉ／Ｏポート６５０、クロック発生装置５６０、プリスケーラ５７０及びそれらを接続する汎用バス６８０、専用バス７３０等、第１のデバッグモジュール７４０、各種ピン６９０等を含む。
【００９６】
第１のデバッグモジュール５９０、第２のデバッグモジュール７４０は、例えば図１〜図６で説明した構成を有する。
【００９７】
第１のデバッグモジュール５９０にはＣＰＵと同様に常にクロックが供給され、第２のデバッグモジュール７４０にはブレーク時（デバッグモード、ブレークモード、テストモード等）のみにクロックが供給される。
【００９８】
２．電子機器
図８に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器８００は、マイクロコンピュータ（またはＡＳＩＣ）８１０、入力部８２０、メモリ８３０、電源生成部８４０、ＬＣＤ８５０、音出力部８６０を含む。
【００９９】
ここで、入力部８２０は、種々のデータを入力するためのものである。マイクロコンピュータ８１０は、この入力部８２０により入力されたデータに基づいて種々の処理を行うことになる。メモリ８３０は、マイクロコンピュータ８１０などの作業領域となるものである。電源生成部８４０は、電子機器８００で使用される各種電源を生成するためのものである。ＬＣＤ８５０は、電子機器が表示する各種の画像（文字、アイコン、グラフィック等）を出力するためのものである。
【０１００】
音出力部８６０は、電子機器８００が出力する各種の音（音声、ゲーム音等）を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【０１０１】
図９（Ａ）に、電子機器の１つである携帯電話９５０の外観図の例を示す。この携帯電話９５０は、入力部として機能するダイヤルボタン９５２や、電話番号や名前やアイコンなどを表示するＬＣＤ９５４や、音出力部として機能し音声を出力するスピーカ９５６を備える。
【０１０２】
図９（Ｂ）に、電子機器の１つである携帯型ゲーム装置９６０の外観図の例を示す。この携帯型ゲーム装置９６０は、入力部として機能する操作ボタン９６２、十字キー９６４や、ゲーム画像を表示するＬＣＤ９６６や、音出力部として機能しゲーム音を出力するスピーカ９６８を備える。
【０１０３】
図９（Ｃ）に、電子機器の１つであるパーソナルコンピュータ９７０の外観図の例を示す。このパーソナルコンピュータ９７０は、入力部として機能するキーボード９７２や、文字、数字、グラフィックなどを表示するＬＣＤ９７４、音出力部９７６を備える。
【０１０４】
本実施の形態のマイクロコンピュータを図９（Ａ）〜図９（Ｃ）の電子機器に組みむことにより、低消費電力でコストパフォーマンスの高い電子機器を提供することができる。
【０１０５】
なお、本実施形態を利用できる電子機器としては、図９（Ａ）、（Ｂ）、（Ｃ）に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のＬＣＤを使用する種々の電子機器を考えることができる。
【０１０６】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【０１０７】
【図１】本実施の形態のマイクロコンピュータの構成について説明するための機能ブロック図。
【図２】本実施の形態のクロック供給にかかるタイミングチャート図である。
【図３】本実施の形態のマイクロコンピュータのブレーク発生の検出にかかる構成について説明するため図である。図１と同じ構成要素については同じ番号を
【図４】ＣＰＵのブレークモード設定回路の構成の一例を示す図である。
【図５】ブレークモード設定回路のタイミングチャート図である。
【図６】デバッグ機能をＪＴＡＧＩ／Ｆで実装する場合の構成について説明する図。
【図７】本実施の形態のマイクロコンピュータのハードウエアブロック図。
【図８】マイクロコンピュータを含む電子機器のブロック図の一例を示す。
【図９】図９（Ａ）（Ｂ）（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
【０１０８】
１.マイクロコンピュータ、２０  ＣＰＵ、３０  第１のデバッグモジュール、４０  第１のデバッグモジュール、５０  クロック供給制御回路、６０  強制ブレーク検出回路、６４  強制ブレーク要因フィリップフロップ、７０  ブレークポイント検出回路、７４  ブレークポイント設定フィリップフロップ、７６  比較回路  ８０  ステップ実行回路、８４  ステップ実行イネーブルビットフィリップフロップ、９０  ＳＩＯ、１００  モニタ部、１１０  ブレークモード設定回路、１１２  ブレークモード設定レジスタ、１１４  ブレークモード信号、１２０  プログラムカウンタ、１３０  デバッグツール、１３６  強制ブレーク  １５０  第１のクロックライン、１６０  第２のクロックライン、５１０  ＣＰＵ、５３０  ＬＣＤコントローラ、５４０  リセット回路、５５０  プログラマブルタイマ、５６０  リアルタイムクロック（ＲＴＣ）、５７０  ＤＲＡＭコントローラ兼バスＩ／Ｆ、５８０  割り込みコントローラ、５９０  第１のデバッグモジュール、６００  バスコントローラ、６１０  Ａ／Ｄ変換器、６２０  Ｄ／Ａ変換器、６３０  入力ポート、６４０  出力ポート、６５０  Ｉ／Ｏポート、６６０  クロック発生装置（ＰＬＬ）、６７０  プリスケーラ、６８０  汎用バス、６９０  各種ピン、７００  マイクロコンピュータ、７１０  ＲＯＭ、７２０  ＲＡＭ、７３０  ＭＭＵ、７４０  第１のデバッグモジュール、８００  電子機器、８５０  ＬＣＤ
【図１】
2007193570.tif 000003
【図２】
2007193570.tif 000004
【図３】
2007193570.tif 000005
【図４】
2007193570.tif 000006
【図５】
2007193570.tif 000007
【図６】
2007193570.tif 000008
【図７】
2007193570.tif 000009
【図８】
2007193570.tif 000010
【図９】
2007193570.tif 000011