(57)【特許請求の範囲】
【請求項１】
複数の動作モードでの動作が可能な半導体装置であって、
通常モード、ＣＧモード、ＤＣＧモード、および電源遮断モードのいずれかで動作する複数の回路ブロックと、
前記通常モードは、クロックが供給され、第１の電源電圧が供給される動作モードであり、前記ＣＧモードは、クロックの供給が停止され、第１の電源電圧が供給される動作モードであり、前記ＤＣＧモードは、クロックの供給が停止され、前記第１の電源電圧よりも低い第２の電源電圧が供給される動作モードであり、前記電源遮断モードは、クロックおよび電源電圧の供給が停止した動作モードであり、
外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況に基づいて、前記複数の回路ブロックの動作モードの切替えを制御する管理部とを備え、
前記半導体装置は、
前記複数の回路ブロックの要素として、命令キューを備えたＣＰＵと、コプロセッサとを備え、
前記命令キュー内に前記コプロセッサを使用する命令が存在しない場合に、前記管理部は、前記命令キュー内のすべての命令の実行に要する時間だけ、前記コプロセッサの動作モードをＤＣＧモードに設定する、半導体装置。
【請求項２】
複数の動作モードでの動作が可能な半導体装置であって、
通常モード、ＣＧモード、ＤＣＧモード、および電源遮断モードのいずれかで動作する複数の回路ブロックと、
前記通常モードは、クロックが供給され、第１の電源電圧が供給される動作モードであり、前記ＣＧモードは、クロックの供給が停止され、第１の電源電圧が供給される動作モードであり、前記ＤＣＧモードは、クロックの供給が停止され、前記第１の電源電圧よりも低い第２の電源電圧が供給される動作モードであり、前記電源遮断モードは、クロックおよび電源電圧の供給が停止した動作モードであり、
外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況に基づいて、前記複数の回路ブロックの動作モードの切替えを制御する管理部とを備え、
前記半導体装置は、  前記複数の回路ブロックの要素として、命令キューを備えたＣＰＵと、コプロセッサとを備え、
前記ＣＰＵが命令をフェッチしたときに、フェッチした命令が前記コプロセッサを使用する命令でなく、前記コプロセッサの現在の動作モードがＤＣＧモードでなく、前記命令キュー内に前記コプロセッサを使用する命令が存在しない場合に、前記管理部は、前記コプロセッサの動作モードをＤＣＧモードに設定し、
前記ＣＰＵが命令をフェッチしたときに、フェッチした命令が前記コプロセッサを使用する命令であり、前記コプロセッサの現在の動作モードがＤＣＧモードの場合に、前記管理部は、前記コプロセッサの動作モードを通常モードに設定する、半導体装置。
【請求項３】
複数の動作モードでの動作が可能な半導体装置であって、
通常モード、ＣＧモード、ＤＣＧモード、および電源遮断モードのいずれかで動作する複数の回路ブロックと、
前記通常モードは、クロックが供給され、第１の電源電圧が供給される動作モードであり、前記ＣＧモードは、クロックの供給が停止され、第１の電源電圧が供給される動作モードであり、前記ＤＣＧモードは、クロックの供給が停止され、前記第１の電源電圧よりも低い第２の電源電圧が供給される動作モードであり、前記電源遮断モードは、クロックおよび電源電圧の供給が停止した動作モードであり、
外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況に基づいて、前記複数の回路ブロックの動作モードの切替えを制御する管理部とを備え、
前記半導体装置は、
前記複数の回路ブロックの要素として、命令キューを備えたＣＰＵと、ＭＡＣ（multiply and accumulate）命令を実行する第１のコプロセッサと、浮動小数点命令を実行する
第２のコプロセッサとを備え、
前記ＣＰＵが命令をフェッチしたときに、フェッチした命令が前記第１のコプロセッサを使用する命令でなく、前記第１のコプロセッサの現在の動作モードがＤＣＧモードでなく、前記命令キュー内に前記第１のコプロセッサを使用する命令が存在しない場合に、前記管理部は、前記第１のコプロセッサの動作モードをＤＣＧモードに設定し、
前記ＣＰＵが命令をフェッチしたときに、フェッチした命令が前記第２のコプロセッサを使用する命令でなく、前記第２のコプロセッサの現在の動作モードがＤＣＧモードでなく、前記命令キュー内に前記第２のコプロセッサを使用する命令が存在しない場合に、前記管理部は、前記第２のコプロセッサの動作モードをＤＣＧモードに設定し、
前記ＣＰＵが命令をフェッチしたときに、フェッチした命令が前記第１のコプロセッサを使用する命令であり、前記第１のコプロセッサの現在の動作モードがＤＣＧモードの場合に、前記管理部は、前記第１のコプロセッサの動作モードを通常モードに設定し、
前記ＣＰＵが命令をフェッチしたときに、フェッチした命令が前記第２のコプロセッサを使用する命令であり、前記第２のコプロセッサの現在の動作モードがＤＣＧモードの場合に、前記管理部は、前記第２のコプロセッサの動作モードを通常モードに設定する、半導体装置。
【請求項４】
複数の動作モードでの動作が可能な半導体装置であって、
通常モード、ＣＧモード、ＤＣＧモード、および電源遮断モードのいずれかで動作する複数の回路ブロックと、
前記通常モードは、クロックが供給され、第１の電源電圧が供給される動作モードであり、前記ＣＧモードは、クロックの供給が停止され、第１の電源電圧が供給される動作モードであり、前記ＤＣＧモードは、クロックの供給が停止され、前記第１の電源電圧よりも低い第２の電源電圧が供給される動作モードであり、前記電源遮断モードは、クロックおよび電源電圧の供給が停止した動作モードであり、
外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況に基づいて、前記複数の回路ブロックの動作モードの切替えを制御する管理部とを備え、
前記半導体装置は、
前記複数の回路ブロックの要素として、外部インタフェース回路を備え、
前記管理部は、前記外部インタフェース回路の動作が継続して停止する停止時間をカウントするタイマを含み、
前記管理部は、前記外部インタフェース回路の動作モードが通常モード時に、前記外部インタフェース回路の停止時間が第１の時間を経過したときに、前記外部インタフェース回路の動作モードをＤＣＧモードに設定する、半導体装置。
【請求項５】
複数の動作モードでの動作が可能な半導体装置であって、
通常モード、ＣＧモード、ＤＣＧモード、および電源遮断モードのいずれかで動作する複数の回路ブロックと、
前記通常モードは、クロックが供給され、第１の電源電圧が供給される動作モードであり、前記ＣＧモードは、クロックの供給が停止され、第１の電源電圧が供給される動作モードであり、前記ＤＣＧモードは、クロックの供給が停止され、前記第１の電源電圧よりも低い第２の電源電圧が供給される動作モードであり、前記電源遮断モードは、クロックおよび電源電圧の供給が停止した動作モードであり、
外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況に基づいて、前記複数の回路ブロックの動作モードの切替えを制御する管理部とを備え、
前記半導体装置は、
前記複数の回路ブロックの要素として、外部インタフェース回路を備え、
前記管理部は、外部インタフェース回路の動作が継続して停止する停止時間をカウントするタイマを含み、
前記管理部は、前記外部インタフェース回路の動作モードがＤＣＧモード時に、前記外部インタフェース回路の停止時間が第２の時間を経過したときに、前記外部インタフェース回路の動作モードを電源遮断モードに設定する、半導体装置。
【請求項６】
前記管理部は、前記回路ブロックごとの動作モードを表わすモードフラグを記憶するレジスタを含む、請求項１〜５のいずれか１項に記載の半導体装置。
【請求項７】
前記半導体装置は、
前記複数の回路ブロックの要素としてタッチパネルコントローラを含み、
前記管理部は、前記外部からの割込みとして前記タッチパネルコントローラへ入力がなされたときに、前記タッチパネルコントローラの動作モードをＤＣＧモードに設定する、請求項１〜５のいずれか１項に記載の半導体装置。
【請求項８】
前記半導体装置は、
前記複数の回路ブロックの要素として、さらにキーボードコントローラおよびマウスコントローラのいずれか一つを備え、
前記管理部は、前記タッチパネルコントローラの動作モードをＤＣＧモードに設定するとともに、前記キーボードコントローラまたは前記マウスコントローラの動作モードを電源遮断モードに設定する、請求項７記載の半導体装置。
【請求項９】
前記ユーザプログラムは、モード設定コマンドを含み、前記モード設定コマンドは、動作モードの設定対象の回路ブロックと、動作モードとを指定し、
前記管理部は、前記ユーザプログラムに含まれるモード設定コマンドに基づいて、前記回路ブロックの動作モードを設定する、請求項１〜５のいずれか１項に記載の半導体装置。
【請求項１０】
前記半導体装置は、
前記複数の回路ブロックの要素として、ＣＰＵと、複数の外部インタフェース回路と、前記ＣＰＵを介さずに、データの直接転送を制御するＤＭＡコントローラを備え、
前記管理部は、前記ＤＭＡコントローラによる直接転送の転送元または転送先でない外部インタフェース回路の動作モードをＤＣＧモードに設定する、請求項１〜５のいずれか１項に記載の半導体装置。
【請求項１１】
前記レジスタは、さらに、前記回路ブロックごとに、前記ハードウエア資源の利用状況に基づく動作モードの切替えを許可するか否かを定める許可フラグを記憶し、
前記許可フラグが許可を表わすときに、前記ハードウエア資源の利用状況に基づく前記回路ブロックの動作モードの切替えが可能となる、請求項６記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に動作モードの切替えが可能な半導体装置に関する。
【背景技術】
【０００２】
動作モードに応じて、電源電圧やクロックの供給を制御する装置が知られている。
たとえば、特許文献１（特開昭６３−０６５７１４号公報）には、スタンバイモードで、クロックを停止し、通常動作時よりも低い電圧を供給する点が記載されている。
【０００３】
特許文献２（特開２００４−１９２２９６号公報）には、動作モードに応じて、電源電圧とクロックの周波数を設定する点が記載されている。
【０００４】
特許文献３（特開２００６−３１８３８０号公報）には、各回路ユニットの動作状態に応じて、電源電圧とクロックの周波数を設定する点が記載されている。
【０００５】
特許文献４（特開２０１０−０４４６２４号公報）には、クロックに同期して動作する同期回路を備えたモジュールに入力されるクロックの速度を予測し、予測に基づき、モジュールに供給する供給電圧を、所定の動作電圧、もしくは同期回路においてデータが保持される最低電圧のいずれかに切替えることが記載されている。
【０００６】
特許文献５（特開２００８−２９４２０８号公報）には、背景技術の説明において、スタンバイモード時には通常動作モード時よりも低い電圧の供給をうける点が記載されている。
【０００７】
特許文献６（特開平０６−３０９２８０号公報）には、キーボードへの入力が一定時間ない場合には、マイクロプロセッサを低消費電力状態に移行させる点が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開昭６３−０６５７１４号公報
【特許文献２】特開２００４−１９２２９６号公報
【特許文献３】特開２００６−３１８３８０号公報
【特許文献４】特開２０１０−０４４６２４号公報
【特許文献５】特開２００８−２９４２０８号公報
【特許文献６】特開平０６−３０９２８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１〜特許文献５には、ヒューマンインタフェースやセンサなどの外部からの割込みによって、動作モードを切替えることが記載されていない。
【００１０】
一方、特許文献６には、キーボードからの入力が一定期間ないことに応じて、低消費電力状態に移行させることが記載されているものの、その他の要因によって動作モードを切替えることが記載されていない。
【００１１】
それゆえに、本発明の目的は、外部からの割込みを含む複数の要因に応じて、複数の動作モード間の切替えが可能な半導体装置を提供することである。
【課題を解決するための手段】
【００１２】
本発明の一実施形態の半導体装置は、複数の動作モードでの動作が可能な半導体装置であって、通常モード、ＣＧモード、ＤＣＧモード、および電源遮断モードのいずれかで動作する複数の回路ブロックと、通常モードは、クロックが供給され、第１の電源電圧が供給される動作モードであり、ＣＧモードは、クロックの供給が停止され、第１の電源電圧が供給される動作モードであり、ＤＣＧモードは、クロックの供給が停止され、第１の電源電圧よりも低い第２の電源電圧が供給される動作モードであり、電源遮断モードは、クロックおよび電源電圧の供給が停止した動作モードであり、管理部は、外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況に基づいて、複数の回路ブロックの動作モードの切替えを制御する。
【発明の効果】
【００１３】
本発明の一実施形態の半導体装置によれば、外部からの割込みを含む複数の要因に応じて、複数の動作モード間の切替えが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態における動作モードおよび動作モードの遷移の例を表わす図である。
【図２】本発明の実施形態のマイクロコンピュータ（半導体装置）の構成を表わす図である。
【図３】図２におけるＩＰ＃１とブリッジ回路１２との間のデータ転送に着目した詳細な回路の構成を表わす図である。
【図４】モードフラグの例を表わす図である。
【図５】レジスタ９５に記憶されているＩＰ＃１〜ＩＰ＃４のモードフラグの例を表わす図である。
【図６】第１の実施形態におけるモード設定手順を表わすフローチャートである。
【図７】ＩＰ＃１が通常モードのときの、ＩＰ＃１への電源電圧およびクロックの供給を説明するための図である。
【図８】ＩＰ＃１がＣＧモードのときの、ＩＰ＃１への電源電圧およびクロックの供給を説明するための図である。
【図９】ＩＰ＃１がＤＣＧモードのときの、ＩＰ＃１への電源電圧およびクロックの供給を説明するための図である。
【図１０】ＩＰ＃１が電源遮断モードのときの、ＩＰ＃１への電源電圧およびクロックの供給を説明するための図である。
【図１１】（ａ）は、通常モードからＣＧモードへの移行時の信号および電圧の変化を表わす図である。（ｂ）は、通常モードからＤＣＧモードへの移行時の信号および電圧の変化を表わす図である。（ｃ）は、通常モードから電源遮断モードへの移行時の信号および電圧の変化を表わす図である。
【図１２】（ａ）は、ＣＧモードから通常モードへの移行時の信号および電圧の変化を表わす図である。（ｂ）は、ＤＣＧモードから通常モードへの移行時の信号および電圧の変化を表わす図である。（ｃ）は、電源遮断モードから通常モードへの移行時の信号および電圧の変化を表わす図である。
【図１３】第２の実施形態におけるモード設定手順を表わすフローチャートである。
【図１４】第３の実施形態におけるＣｏ−Ｐｒｏ＃１とＣｏ−Ｐｒｏ＃１の周辺回路の間のデータ転送に着目したより詳細な回路の構成を表わす図である。
【図１５】レジスタ９６に記憶されているＣｏ−Ｐｒｏ＃１およびＣｏ−Ｐｒｏ＃２のモードフラグの例を表わす図である。
【図１６】第３の実施形態におけるモード設定手順を表わすフローチャートである。
【図１７】第４の実施形態におけるモード設定手順を表わすフローチャートである。
【図１８】第５の実施形態のＰＭＵの構成を表わす図である。
【図１９】ＩＰ＃１〜ＩＰ＃４について、モードフラグ、第１の制限時間、第２の制限時間の例を表わす図である。
【図２０】第５の実施形態におけるモード設定手順を表わすフローチャートである。
【図２１】ＩＰ＃１〜ＩＰ＃４について、モードフラグ、第１の制限時間、第２の制限時間、許可フラグの例を表わす図である。
【図２２】ＩＰ＃１〜ＩＰ＃４について、モードフラグ、第１の制限時間、第２の制限時間、優先度フラグの例を表わす図である。
【図２３】優先度フラグの例を表わす図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について図面を参照して説明する。
［第１の実施形態］
（動作モードについて）
図１は、本発明の実施形態における動作モードおよび動作モードの遷移の例を表わす図である。この動作モードは、半導体装置の各機能ブロック（ＣＰＵなど）ごとに設定することができる。
【００１６】
通常モードは、通常の動作に必要な電源電圧が供給され、クロックが供給されるモードである。
【００１７】
電源遮断モードは、電源電圧およびクロックの供給が停止されたモードである。電力削減のためには、電源遮断モードが有利である。しかし、一度電源を遮断してしまうと、電源復帰後に電源が安定するまでの復帰時間(数ミリ秒レベル)を要するという問題がある。また、電源遮断時に、データが全て失われてしまうため、復帰後にレジスタやＲＡＭへ必要なデータを書き戻すためのシーケンスが必要となるという問題がある。
【００１８】
ＣＧ（クロックゲーティング）モードは、通常の動作に必要な電源電圧が供給されるが、クロックの供給が停止されたモードである。ＣＧモードでは、定格電圧が供給され続けるため、リーク電力の削減効果は少ないという問題がある。また、定格電圧によるストレスも継続し、信頼性が低下するという問題がある。しかし、ＤＣＧモードや電源遮断モードのように、通常モードに復帰するために電源安定のための復帰時間がかかるというような問題は生じない。
【００１９】
ＤＣＧ（ディープクロックゲーティング）モードでは、クロックの供給が停止される。このモードでは、通常動作に必要な電源電圧をデータリテンション可能な大きさまで降圧した電圧が供給される。これによって、リーク電力削減が可能となるので、ＣＧモードよりも電力消費を少なくすることができる。これによって、充電式バッテリや電池で動作するノート型パーソナルコンピュータや、モバイルコンピュータ、ＰＤＡ（Personal Digital Assistant）のような携帯用電子機器に使用した場合の稼働時間を増大させることができる。また、電源遮断モードのように電源電圧の供給をしないため、復帰時の電源安定待ち時間も短くすることができる。また、ＣＧモードのように定格電圧がかけられている場合に比べてストレスも軽減される。
【００２０】
動作モードの切替えは、ユーザプログラム要因、外部要因、またはハードウエア要因によって行われる。
【００２１】
ユーザプログラム要因による切替えでは、ユーザプログラムに含まれるモード設定コマンドによって動作モードが切替えられる。
【００２２】
外部要因による切替えでは、外部インタフェース回路に外部からの割込みが入力されたことによって動作モードが切替えられる。
【００２３】
ハードウエア要因による切替えでは、ハードウエア資源の利用状況に基づいて、マイクロプロセッサが自律的に動作モードを切替える。
【００２４】
電源Ｏｆｆ状態から外部要因(パワーオンリセット)によって通常モードへ移行する。
通常モードとＣＧモード間の遷移は、外部要因、ユーザプログラム要因、またはハードウエア要因によって行われる。通常モードとＤＣＧモード間の遷移は、外部要因、ユーザプログラム要因、またはハードウエア要因によって行われる。通常モードと電源遮断モード間の遷移は、外部要因、ユーザプログラム要因、またはハードウエア要因によって行われる。
【００２５】
ＣＧモードと電源遮断モード間の遷移は、外部要因、ユーザプログラム要因、またはハードウエア要因によって行われる。ＤＣＧモードと電源遮断モード間の遷移は、外部要因、ユーザプログラム要因、またはハードウエア要因によって行われる。
【００２６】
通常モードからＣＧモードおよびＤＣＧモード、電源遮断モードへはレイテンシオーバーヘッドなしで遷移可能である。一方、ＤＣＧモードおよび電源遮断モードから通常モードへは電圧が安定するまでの間、クロックの復帰を遅らせなければならない。
【００２７】
（マイクロコンピュータ）
図２は、本発明の実施形態のマイクロコンピュータ（半導体装置）の構成を表わす図である。
【００２８】
内部バス９９には、回路ブロックとして、命令キューを有するＣＰＵ(Central Processing Unit)３、キャッシュ４、メモリ管理ユニット(ＭＭＵ)２、割り込みコントローラ（ＩＮＴＣ）６、クロック信号を供給するクロックパルス発生器（ＣＰＧ）１３が接続される。クロックパルス発生器（ＣＰＧ）１３は、半導体装置１の基準クロック信号となり、クロック信号はクロック信号配線（図示せず）を通じて、各回路ブロックに供給される。
【００２９】
内部バス９９には、さらに、回路ブロックとして、ＲＯＭ（Read Only Memory）７、ＲＡＭ（Random Access Memory）８、ハードウェアの異常を検出するためのウォッチドッグタイマ(ＷＤＴ)１１、およびＤＭＡコントローラ(ＤＭＡＣ)５、コプロセッサ（Ｃｏ−Ｐｒｏ＃１）９、コプロセッサ（Ｃｏ−Ｐｒｏ＃２）１０とが接続される。
【００３０】
Ｃｏ−Ｐｒｏ＃１は、ＭＡＣ（multiply and accumulate）命令を実行する。
Ｃｏ−Ｐｒｏ＃２は、浮動小数点命令を実行する。
【００３１】
ＤＭＡＣ５は、ＣＰＵ３を介さずに、データの直接転送を制御する。
外部バス９８には、回路ブロックとして、ＩＰ＃１〜ＩＰ＃４と、ＩＰ＃１〜ＩＰ＃４の周辺回路２０〜２３、電源制御ユニット（ＰＭＵ）１４、リセット回路（Ｒｅｓｅｔ）１５が接続される。
【００３２】
ＩＰ＃１〜ＩＰ＃４は、それぞれ外部との信号の授受のための外部インタフェース回路である。ＩＰ＃１〜ＩＰ＃４は、たとえば、タッチパネルコントローラ、キーボードコントローラ、ディスプレイコントローラ、データ通信コントローラ、グラフィクスコントローラである。
【００３３】
内部バス９９と外部バス９８の間は、データインタフェースのためのブリッジ回路（Ｂｒｉｄｇｅ）１２で接続されている。
【００３４】
図３は、図２におけるＩＰ＃１とブリッジ回路１２との間のデータ転送に着目した詳細な回路の構成を表わす図である。他のＩＰについてもこれと同様である。
【００３５】
図３に示すように、ＩＰ＃１（１６）は、電源制御回路３３と、ロジック領域３４と、メモリ領域３５とを備える。
【００３６】
ＩＰ＃１周辺回路２０は、制御回路３１と、論理積回路３２と、論理積回路ＡＮＤと、イネーブル付きレベルシフタＥＬＳと、ラッチ回路Ｌａｔｃｈとを備える。
【００３７】
ブリッジ回路１２は、ロジック領域３６を備える。
ＰＭＵ１４は、ＩＰ＃１〜ＩＰ＃４のモードフラグを記憶するためのレジスタ９５を備える。
【００３８】
図４は、モードフラグの例を表わす図である。
図４に示すように、モードフラグは２ビットで表わされる。通常モードでは、ＣＧモード、ＤＣＧモード、電源遮断モードにおいて、モードフラグは、それぞれ“００”、“０１”、“１０”、“１１”となる。
【００３９】
図５は、レジスタ９５に記憶されているＩＰ＃１〜ＩＰ＃４のモードフラグの例を表わす図である。
【００４０】
ＩＰ＃１のモードフラグは“００”（通常モード）、ＩＰ＃２のモードフラグは“１１”（電源遮断モード）、ＩＰ＃３のモードフラグは“１１”（電源遮断モード）、ＩＰ＃４のモードフラグは“１０”（ＤＣＧモード）である。
【００４１】
ＰＭＵ１４は、ＩＰ＃１のモードフラグに基づいて、ウエイト信号Ｗａｉｔおよびモード信号Ｍｏｄｅを制御回路３１へ出力する。制御回路３１は、ＣＰＵ３からの指示信号と、ＰＭＵ１４からのウエイト信号Ｗａｉｔおよびモード信号Ｍｏｄｅに従って、イネーブル信号Ｅｎａｂｌｅを出力する。
【００４２】
論理積回路３２は、基準クロックＲｅｆＣｌｋとＥｎａｂｌｅ信号の論理積を内部クロックＣＬＫ１として、電源制御回路３３、ロジック領域３４およびメモリ領域３５に出力する。
【００４３】
電源制御回路３３は、たとえば、ＰＭＯＳスイッチ、ダイオードまたはレギュレータを含み、通常電圧（定格電圧）、降圧電圧を供給するか、あるいは電源電圧の供給を遮断するかの切替えが可能である。
【００４４】
以下、第１の実施形態では、外部要因によるモードの移行制御について説明する。
（動作手順）
図６は、第１の実施形態におけるモード設定手順を表わすフローチャートである。
【００４５】
図６を参照して、ＩＰ＃１〜ＩＰ＃４のいずれに外部入力があると、外部入力のあったＩＰは、ＩＮＴＣ６に割込要求を送る（ステップ１０１）。
【００４６】
ＩＮＴＣ６は、割込要求を受け付けて、ＣＰＵ３に外部入力のあったＩＰと割込要因を通知する（ステップＳ１０２）。
【００４７】
ＣＰＵ３は、ＲＡＭ８内に記憶されている割込みハンドラを参照して、通知されたＩＰの通知された割込要因に対する処理を調べる（ステップＳ１０３）。
【００４８】
通知されたＩＰの通知された割込要因に対する処理が通常モードへの移行の場合には（ステップＳ１０４でＹＥＳ）、ＣＰＵ３は、レジスタ９５内の外部入力のあったＩＰのモードフラグを通常モードに設定する（ステップＳ１０５）。
【００４９】
ＰＭＵ１４は、通知されたＩＰの電源制御回路３３を制御して、通知されたＩＰのロジック領域３４およびメモリ領域３５に通常電圧を供給させる（ステップＳ１０６）。
【００５０】
ＰＭＵ１４は、通知されたＩＰ周辺回路を制御して、通知されたＩＰへのクロックの供給を再開させる（ステップＳ１０７）。
【００５１】
通知されたＩＰの通知された割込要因に対する処理がＣＧモードへの移行の場合には（ステップＳ１０８でＹＥＳ）、ＣＰＵ３は、レジスタ９５内の外部入力のあったＩＰのモードフラグをＣＧモードに設定する（ステップＳ１０９）。
【００５２】
ＰＭＵ１４は、通知されたＩＰ周辺回路を制御して、通知されたＩＰへのクロックの供給を停止させる（ステップＳ１１０）。
【００５３】
ＰＭＵ１４は、通知されたＩＰの電源制御回路３３を制御して、通知されたＩＰのロジック領域３４およびメモリ領域３５に通常電圧を供給させる（ステップＳ１１１）。
【００５４】
通知されたＩＰの通知された割込要因に対する処理がＤＣＧモードへの移行の場合には（ステップＳ１１２でＹＥＳ）、ＣＰＵ３は、レジスタ９５内の外部入力のあったＩＰのモードフラグをＤＣＧモードに設定する（ステップＳ１１３）。
【００５５】
ＰＭＵ１４は、通知されたＩＰ周辺回路を制御して、通知されたＩＰへのクロックの供給を停止させる（ステップＳ１１４）。
【００５６】
ＰＭＵ１４は、通知されたＩＰの電源制御回路３３を制御して、通知されたＩＰのロジック領域３４およびメモリ領域３５に通常電圧よりも低い降圧電圧を供給させる（ステップＳ１１５）。
【００５７】
通知されたＩＰの通知された割込要因に対する処理が電源遮断モードへの移行の場合には（ステップＳ１１６でＹＥＳ）、ＣＰＵ３は、レジスタ９５内の外部入力のあったＩＰのモードフラグを電源遮断モードに設定する（ステップＳ１１７）。
【００５８】
ＰＭＵ１４は、通知されたＩＰ周辺回路を制御して、通知されたＩＰへのクロックの供給を停止させる（ステップＳ１１８）。
【００５９】
ＰＭＵ１４は、通知されたＩＰの電源制御回路３３を制御して、通知されたＩＰのロジック領域３４およびメモリ領域３５への電源電圧の供給を停止させる（ステップＳ１１９）。
【００６０】
（通常モード）
図７は、ＩＰ＃１が通常モードのときの、ＩＰ＃１への電源電圧およびクロックの供給を説明するための図である。
【００６１】
通常モードでは、ＰＭＵ１４は、“００”のモード信号Ｍｏｄｅを制御回路３１へ出力する。制御回路３１は、“００”のモード信号Ｍｏｄｅを受けると、ハイレベルのイネーブル信号Ｅｎａｂｌｅを出力する。その結果、論理積回路３２は、基準クロックＲｅｆＣｌｋと同じ位相および周期の内部クロックＣＬＫ１をＩＰ＃１へ供給する。
【００６２】
また、ＰＭＵ１４は、“００”のモード信号Ｍｏｄｅを電源制御回路３３へ出力する。電源制御回路３３は、“００”のモード信号Ｍｏｄｅを受けると、通常電圧ＶＮ１をロジック領域３４に供給し、通常電圧ＶＮ２をメモリ領域３５に供給する。たとえば、通常電圧ＶＮ１、ＶＮ２として、それぞれ１．０Ｖ、０．９Ｖとすることができる。
【００６３】
（ＣＧモード）
図８は、ＩＰ＃１がＣＧモードのときの、ＩＰ＃１への電源電圧およびクロックの供給を説明するための図である。
【００６４】
ＣＧモードでは、ＰＭＵ１４は、“０１”のモード信号Ｍｏｄｅを制御回路３１へ出力する。制御回路３１は、“０１”のモード信号Ｍｏｄｅを受けると、ロウレベルのイネーブル信号Ｅｎａｂｌｅを出力する。その結果、論理積回路３２は、内部クロックＣＬＫ１のＩＰ＃１への供給を停止する。
【００６５】
また、ＰＭＵ１４は、“０１”のモード信号Ｍｏｄｅを電源制御回路３３へ出力する。電源制御回路３３は、“０１”のモード信号Ｍｏｄｅを受けると、通常電圧ＶＮ１をロジック領域３４に供給し、通常電圧ＶＮ２をメモリ領域３５に供給する。
【００６６】
（ＤＣＧモード）
図９は、ＩＰ＃１がＤＣＧモードのときの、ＩＰ＃１への電源電圧およびクロックの供給を説明するための図である。
【００６７】
ＤＣＧモードでは、ＰＭＵ１４は、“１０”のモード信号Ｍｏｄｅを制御回路３１へ出力する。制御回路３１は、“１０”のモード信号Ｍｏｄｅを受けると、ロウレベルのイネーブル信号Ｅｎａｂｌｅを出力する。その結果、論理積回路３２は、内部クロックＣＬＫ１のＩＰ＃１への供給を停止する。
【００６８】
また、ＰＭＵ１４は、“１０”のモード信号Ｍｏｄｅを電源制御回路３３へ出力する。電源制御回路３３は、“１０”のモード信号Ｍｏｄｅを受けると、降圧電圧ａ×ＶＮ１をロジック領域３４に供給し、降圧電圧ｂ×ＶＮ２をメモリ領域３５に供給する。ただし、ａは０＜ａ＜１、ｂは０＜ｂ＜１を満たす数である。たとえば、ａ、ｂとして、０．６、０．５とすることができる。降圧電圧ａ×ＶＮ１は、ロジック領域でデータリテンション可能な最低限の電圧であり、降圧電圧ｂ×ＶＮ２は、メモリ領域でデータリテンション可能な最低限の電圧である。
【００６９】
（電源遮断モード）
図１０は、ＩＰ＃１が電源遮断モードのときの、ＩＰ＃１への電源電圧およびクロックの供給を説明するための図である。
【００７０】
電源遮断モードでは、ＰＭＵ１４は、“１１”のモード信号Ｍｏｄｅを制御回路３１へ出力する。制御回路３１は、“１１”のモード信号Ｍｏｄｅを受けると、ロウレベルのイネーブル信号Ｅｎａｂｌｅを出力する。その結果、論理積回路３２は、内部クロックＣＬＫ１のＩＰ＃１への供給を停止する。
【００７１】
また、ＰＭＵ１４は、“１１”のモード信号Ｍｏｄｅを電源制御回路３３へ出力する。電源制御回路３３は、“１１”のモード信号Ｍｏｄｅを受けると、ロジック領域３４およびメモリ領域３５への電源電圧の供給を停止する。
【００７２】
（モード移行時の制御）
図１１は、通常モードから各モードへの移行時の信号および電圧の変化を表わす図である。
【００７３】
図１１（ａ）は、通常モードからＣＧモードへの移行時の信号および電圧の変化を表わす図である。
【００７４】
図１１（ａ）に示すように、通常モードでは、内部クロックＣＬＫ１が供給され、ロジック領域３４への電圧Ｖｘの大きさが通常電圧ＶＮ１であり、メモリ領域３５への電圧Ｖｙの大きさが通常電圧ＶＮ２である。
【００７５】
ＣＧモードへ移行すると、イネーブル信号Ｅｎａｂｌｅがロウレベルとなるため、内部クロックＣＬＫ１の供給が停止する。
【００７６】
図１１（ｂ）は、通常モードからＤＣＧモードへの移行時の信号および電圧の変化を表わす図である。
【００７７】
図１１（ｂ）に示すように、通常モードでは、内部クロックＣＬＫ１が供給され、ロジック領域３４への電圧Ｖｘの大きさが通常電圧ＶＮ１であり、メモリ領域３５への電圧Ｖｙの大きさが通常電圧ＶＮ２である。
【００７８】
ＣＧモードへ移行すると、イネーブル信号Ｅｎａｂｌｅがロウレベルとなるため、内部クロックＣＬＫ１の供給が停止する。また、ロジック領域３４への電圧Ｖｘの大きさが降圧電圧ａ×ＶＮ１であり、メモリ領域３５への電圧Ｖｙの大きさが降圧電圧ｂ×ＶＮ２となる。
【００７９】
図１１（ｃ）は、通常モードから電源遮断モードへの移行時の信号および電圧の変化を表わす図である。
【００８０】
図１１（ｃ）に示すように、通常モードでは、内部クロックＣＬＫ１が供給され、ロジック領域３４への電圧Ｖｘの大きさが通常電圧ＶＮ１であり、メモリ領域３５への電圧Ｖｙの大きさが通常電圧ＶＮ２である。
【００８１】
電源遮断モードへ移行すると、イネーブル信号Ｅｎａｂｌｅがロウレベルとなるため、内部クロックＣＬＫ１の供給が停止する。また、ロジック領域３４へおよびメモリ領域３５への電圧の供給は停止する。
【００８２】
図１２は、各モードから通常モードへの移行時の信号および電圧の変化を表わす図である。
【００８３】
図１２（ａ）は、ＣＧモードから通常モードへの移行時の信号および電圧の変化を表わす図である。
【００８４】
図１２（ａ）に示すように、ＣＧモードでは、イネーブル信号Ｅｎａｂｌｅがロウレベルであるため、内部クロックＣＬＫ１の供給が停止している。
【００８５】
通常モードへ移行すると、イネーブル信号Ｅｎａｂｌｅがハイレベルであるため、内部クロックＣＬＫ１の供給が再開する。
【００８６】
図１２（ｂ）は、ＤＣＧモードから通常モードへの移行時の信号および電圧の変化を表わす図である。
【００８７】
図１２（ｂ）に示すように、ＤＣＧモードでは、イネーブル信号Ｅｎａｂｌｅがロウレベルであるため、内部クロックＣＬＫ１の供給が停止し、ロジック領域３４への電圧Ｖｘの大きさが降圧電圧ａ×ＶＮ１であり、メモリ領域３５への電圧Ｖｙの大きさが降圧電圧ｂ×ＶＮ２である。
【００８８】
通常モードへ移行すると、ＰＭＵ１４は、ウエイト信号Ｗａｉｔを一定期間（図１２（ｂ）では３クロック分）だけハイレベルに設定する。
【００８９】
この一定期間において、ロジック領域３４への電圧Ｖｘの大きさが降圧電圧ａ×ＶＮ１から通常電圧ＶＮ１へ遷移し、メモリ領域３５への電圧Ｖｙの大きさが降圧電圧ｂ×ＶＮ２から通常電圧ＶＮ２へ遷移する。
【００９０】
一定期間終了後に、ウエイト信号Ｗａｉｔがロウレベルとなるため、イネーブル信号Ｅｎａｂｌｅがハイレベルとなり、内部クロックＣＬＫ１の供給が再開する。
【００９１】
図１２（ｃ）は、電源遮断モードから通常モードへの移行時の信号および電圧の変化を表わす図である。
【００９２】
図１２（ｃ）に示すように、電源遮断モードでは、イネーブル信号Ｅｎａｂｌｅがロウレベルであるため、内部クロックＣＬＫ１の供給が停止し、ロジック領域３４およびメモリ領域３５へ電圧が供給されていない。
【００９３】
通常モードへ移行すると、ＰＭＵ１４は、ウエイト信号Ｗａｉｔを一定期間（図１２（ｃ）では３クロック分）だけハイレベルに設定する。
【００９４】
この一定期間において、ロジック領域３４への電圧Ｖｘの大きさが０Ｖから通常電圧ＶＮ１へ遷移し、メモリ領域３５への電圧Ｖｙの大きさが０Ｖから通常電圧ＶＮ２へ遷移する。
【００９５】
一定期間終了後に、ウエイト信号Ｗａｉｔがロウレベルとなるため、イネーブル信号Ｅｎａｂｌｅがハイレベルとなり、内部クロックＣＬＫ１の供給が再開する。
【００９６】
以上のように、本実施の形態によれば、外部要因に従って、４つの動作モードのうちのいずれかに切替えることができる。
【００９７】
[第１の実施形態の変形例]
本変形例では、外部入力のあったＩＰとともに、外部入力のあったＩＰ以外の動作モードも切替える。
【００９８】
ここでは、ＩＰ＃１としてマウスコントローラ、ＩＰ＃２としてキーボードコントローラ、ＩＰ＃３としてタッチパネルコントローラ、ＩＰ＃４として音声入力・認識コントローラとする。
【００９９】
ＩＰ＃３（タッチパネルコントローラ）への入力があると、タッチパネル入力の動作レートは速くても数回/秒であり、入力間に電源遮断するには復帰にかかるオーバーヘッドが大きすぎるため、ＰＭＵ１４は、ＩＰ＃３（タッチパネルコントローラ）をＤＣＧモードへ移行させる。この際、ＰＭＵ１４は、タッチパネルコントローラと併用して使用されないことが予想されるＩＰ＃１（マウスコントローラ）、ＩＰ＃２（キーボードコントローラ）を電源遮断モードへ移行させる。一方、タッチパネルと併用可能なＩＰ＃４をＤＣＧモードへ移行させる。
【０１００】
［第２の実施形態］
第２の実施形態では、ユーザプログラムによるモードの移行制御について説明する。第２の実施形態では、ユーザプログラムに含まれるモード設定コマンドに従って、モードを切替える。モード設定コマンドは、動作モードの設定対象の回路ブロック（ＩＰ＃１〜ＩＰ＃４およびその他の回路）と、設定するモードとを指定する。
【０１０１】
マイクロコンピュータを使用するユーザプログラムは、マイクロコンピュータに実装されているＩＰを認識している。また、これらのＩＰに供給される電源を遮断したり、電圧低減するためのレジスタ設定はマニュアルによって公開されているものとする。したがって、プログラマは、ユーザプログラムにおいて一定サイクル使用しないＩＰに対して、リテンション電圧まで低減することができる。ＤＣＧモードに設定される停止時間(数秒〜数１０秒)は停止サイクルとクロック周期から算出可能である。たとえば、周波数が１０ＭＨｚ (周期は１００ｎｓ）でＩＰ＃１の処理に少なくとも１千万サイクルを要し、ＩＰ＃２、ＩＰ＃３、ＩＰ＃４を使用しないことが明らかであるならば、プログラマはＩＰ＃２、ＩＰ＃３、ＩＰ＃４をモード設定コマンドによって、１千万サイクルの間ＤＣＧモードへ移行させることができる。
【０１０２】
（動作手順）
図１３は、第２の実施形態におけるモード設定手順を表わすフローチャートである。
【０１０３】
図１３を参照して、ＣＰＵ３は、ＲＯＭ７に記憶されたユーザプログラムを読出す（ステップ２０１）。
【０１０４】
ＣＰＵ３は、ユーザプログラム中に設定対象のＩＰと動作モードを指定したモード設定コマンドがあり（ステップＳ２０２でＹＥＳ）、モード設定コマンドの設定対象のＩＰの指定動作モードがレジスタ９５内の設定対象のＩＰのモードフラグで指定される現在の動作モードとが相違する場合には（ステップＳ２０３でＹＥＳ）、レジスタ９５内の設定対象のＩＰのモードフラグをモード設定コマンドの指定動作モードに設定する（ステップＳ２０４）。
【０１０５】
ＰＭＵ１４は、設定対象のＩＰの電源制御回路３３を制御して、設定対象のＩＰのロジック領域３４およびメモリ領域３５に通常電圧を供給させる（ステップＳ２０６）。
【０１０６】
モードフラグに設定された動作モードが通常モードの場合には（ステップＳ２０５でＹＥＳ）、ＰＭＵ１４は、設定対象のＩＰの周辺回路を制御して、設定対象のＩＰへのクロックの供給を再開させる（ステップＳ２０７）。
【０１０７】
モードフラグに設定された動作モードがＣＧモードの場合には（ステップＳ２０８でＹＥＳ）、ＰＭＵ１４は、設定対象のＩＰの周辺回路を制御して、設定対象のＩＰへのクロックの供給を停止させる（ステップＳ２０９）。
【０１０８】
ＰＭＵ１４は、設定対象のＩＰの電源制御回路３３を制御して、設定対象のＩＰのロジック領域３４およびメモリ領域３５に通常電圧を供給させる（ステップＳ２１０）。
【０１０９】
モードフラグに設定された動作モードがＤＣＧモードの場合には（ステップＳ２１１でＹＥＳ）、ＰＭＵ１４は、設定対象のＩＰの周辺回路を制御して、設定対象のＩＰへのクロックの供給を停止させる（ステップＳ２１２）。
【０１１０】
ＰＭＵ１４は、設定対象のＩＰの電源制御回路３３を制御して、設定対象のＩＰのロジック領域３４およびメモリ領域３５に通常電圧よりも低い降圧電圧を供給させる（ステップＳ２１３）。
【０１１１】
モードフラグに設定されたモードが電源遮断モードの場合には（ステップＳ２１４でＹＥＳ）、ＰＭＵ１４は、設定対象のＩＰの周辺回路を制御して、設定対象のＩＰへのクロックの供給を停止させる（ステップＳ２１５）。
【０１１２】
ＰＭＵ１４は、設定対象のＩＰの電源制御回路３３を制御して、設定対象のＩＰのロジック領域３４およびメモリ領域３５への電源電圧の供給を停止させる（ステップＳ２１６）。
【０１１３】
以上のように、本実施の形態によれば、ユーザプログラムに含まれるモード設定コマンドによって、回路ブロックの動作モードを設定することができる。
【０１１４】
［第３の実施形態］
第３の実施形態では、第１のハードウエア要因によるモードの移行制御について説明する。
【０１１５】
図１４は、第３の実施形態におけるＣｏ−Ｐｒｏ＃１とＣｏ−Ｐｒｏ＃１の周辺回路の間のデータ転送に着目したより詳細な回路の構成を表わす図である。Ｃｏ−Ｐｒｏ＃２とＣｏ−Ｐｒｏ＃２の周辺回路も同様である。
【０１１６】
図１４に示すように、Ｃｏ−Ｐｒｏ＃１は、電源制御回路１３３と、ロジック領域１３４と、メモリ領域１３５とを備える。
【０１１７】
Ｃｏ−Ｐｒｏ＃１の周辺回路は、制御回路１３１と、論理積回路１３２とを備える。
ＰＭＵ１４は、ウエイト信号Ｗａｉｔおよびモード信号Ｍｏｄｅを制御回路１３１へ出力する。制御回路１３１は、ＣＰＵ３からの指示信号と、ＰＭＵ１４からのウエイト信号Ｗａｉｔおよびモード信号Ｍｏｄｅに従って、イネーブル信号Ｅｎａｂｌｅを出力する。
【０１１８】
論理積回路１３１は、基準クロックＲｅｆＣｌｋとＥｎａｂｌｅ信号の論理積を内部クロックＣＬＫ１として、電源制御回路１３３、ロジック領域１３４およびメモリ領域１３５に出力する。
【０１１９】
図１５は、レジスタ９６に記憶されているＣｏ−Ｐｒｏ＃１およびＣｏ−Ｐｒｏ＃２のモードフラグの例を表わす図である。
【０１２０】
図１５の例では、Ｃｏ−Ｐｒｏ＃１のモードフラグは“００”（通常モード）、Ｃｏ−Ｐｒｏ＃２のモードフラグは“０１”（ＣＧモード）である。
【０１２１】
（動作手順）
図１６は、第３の実施形態におけるモード設定手順を表わすフローチャートである。
【０１２２】
図１６を参照して、ＣＰＵ３は、命令キューから命令をフェッチする（ステッＳ４０１）。
【０１２３】
ＣＰＵ３は、フェッチした命令がＣｏ−Ｐｒｏ＃１を使用する命令であり（ステップＳ３０２でＹＥＳ）、Ｃｏ−Ｐｒｏ＃１のモードフラグが通常モードでない場合（ステップＳ３０３でＹＥＳ）、Ｃｏ−Ｐｒｏ＃１のモードフラグを通常モードに設定する（ステップＳ３０４）。
【０１２４】
ＰＭＵ１４は、Ｃｏ−Ｐｒｏ＃１の電源制御回路１３３を制御して、Ｃｏ−Ｐｒｏ＃１のロジック領域１３４およびメモリ領域１３５に通常電圧を供給させる（ステップＳ３０５）。
【０１２５】
ＰＭＵ１４は、Ｃｏ−Ｐｒｏ＃１の周辺回路を制御して、Ｃｏ−Ｐｒｏ＃１のへのクロックの供給を再開させる（ステップＳ３０６）。
【０１２６】
ＣＰＵ３は、フェッチした命令がＣｏ−Ｐｒｏ＃２を使用する命令であり（ステップＳ３０７でＹＥＳ）、Ｃｏ−Ｐｒｏ＃２のモードフラグが通常モードでない場合（ステップＳ３０８でＹＥＳ）、Ｃｏ−Ｐｒｏ＃２のモードフラグを通常モードに設定する（ステップＳ３０９）。
【０１２７】
ＰＭＵ１４は、Ｃｏ−Ｐｒｏ＃２の電源制御回路１３３を制御して、Ｃｏ−Ｐｒｏ＃２のロジック領域１３４およびメモリ領域１３５に通常電圧を供給させる（ステップＳ３１０）。
【０１２８】
ＰＭＵ１４は、Ｃｏ−Ｐｒｏ＃２の周辺回路を制御して、Ｃｏ−Ｐｒｏ＃２のへのクロックの供給を再開させる（ステップＳ３１１）。
【０１２９】
ＣＰＵ３は、フェッチした命令がＣｏ−Ｐｒｏ＃１を使用する命令でなく（ステップＳ３０２でＮＯ）、Ｃｏ−Ｐｒｏ＃２を使用する命令でもない場合に（ステップＳ３０７でＮＯ）おいて、Ｃｏ−Ｐｒｏ＃１のモードフラグがＤＣＧモードに設定されておらず（ステップＳ３１２でＮＯ）、命令キューにＣｏ−Ｐｒｏ＃１を使用する命令が存在しない場合には（ステップＳ３１３でＹＥＳ）、Ｃｏ−Ｐｒｏ＃１のモードフラグをＤＣＧモードに設定する（ステップＳ３１４）。
【０１３０】
ＰＭＵ１４は、ＣＯ−Ｐｒｏ＃１へのクロックの供給を停止させる（ステップＳ３１５）。
【０１３１】
ＰＭＵ１４は、Ｃｏ−Ｐｒｏ＃１の電源制御回路１３３を制御して、Ｃｏ−Ｐｒｏ＃１のロジック領域１３４およびメモリ領域１３５に通常電圧よりも低い降圧電圧を供給させる（ステップＳ３１６）。
【０１３２】
ＣＰＵ３は、フェッチした命令がＣｏ−Ｐｒｏ＃１を使用する命令でなく（ステップＳ３０２でＮＯ）、Ｃｏ−Ｐｒｏ＃２を使用する命令でもない場合に（ステップＳ３０７でＮＯ）おいて、Ｃｏ−Ｐｒｏ＃２のモードフラグがＤＣＧモードに設定されておらず（ステップＳ３１７でＮＯ）、命令キューにＣｏ−Ｐｒｏ＃２を使用する命令が存在しない場合には（ステップＳ３１８でＹＥＳ）、Ｃｏ−Ｐｒｏ＃２のモードフラグをＤＣＧモードに設定する（ステップＳ３１９）。
【０１３３】
ＰＭＵ１４は、Ｃｏ−Ｐｒｏ＃２へのクロックの供給を停止させる（ステップＳ３２０）。
【０１３４】
ＰＭＵ１４は、Ｃｏ−Ｐｒｏ＃２の電源制御回路１３３を制御して、Ｃｏ−Ｐｒｏ＃２のロジック領域１３４およびメモリ領域１３５に通常電圧よりも低い降圧電圧を供給させる（ステップＳ３２１）。
【０１３５】
以上のように、本実施の形態によれば、ハードウエア資源であるＣｏ−Ｐｒｏ＃１およびＣｏ−Ｐｒｏ＃２の利用状況に基づいて、Ｃｏ−Ｐｒｏ＃１およびＣｏ−Ｐｒｏ＃２の動作モードを設定することができる。
【０１３６】
[第３の実施形態の変形例]
命令キューが１２８段あると仮定する。命令フェッチ時に命令キュー（１２８段フル）にＭＡＣ命令や浮動小数点命令がなければ、少なくとも１２８命令の実行期間はＣｏ−Ｐｒｏ＃１およびＣｏ−Ｐｒｏ＃２は動作させる必要はない。ここで、たとえば、周波数を１０ＭＨｚ(周期１００ｎｓ)で、平均命令実行時間が１０サイクルだとすると、１００ｎｓ×１０サイクル×１２３命令＝１２３μｓの間はＣｏ−Ｐｒｏ＃１およびＣｏ−Ｐｒｏ＃２を使用する必要はない。そこで、ＰＭＵ１４は、命令キュー内のすべての命令の実行に要する時間（すなわち、１２３μｓ）だけ、Ｃｏ−Ｐｒｏ＃１およびＣｏ−Ｐｒｏ＃２の動作モードをＤＣＧモードに設定する。
【０１３７】
また、命令フェッチ時に命令キュー(１２８段フル)にＭＡＣ命令と浮動小数点命令の一方のみが存在する場合では、Ｃｏ−Ｐｒｏ＃１およびＣｏ−Ｐｒｏ＃２のうち、存在しない命令を実行するコプロセッサのみをＤＣＧモードへ移行させることとしてもよい。
【０１３８】
［第４の実施形態］
第４の実施形態では、第２のハードウエア要因によるモードの移行制御について説明する。
【０１３９】
一例として、データ転送要求により、外部バスに接続されているＩＰ＃１のデータを内部バス経由でＲＡＭ８へ転送する場合を想定する。この場合、ＤＭＡＣ５が内部バス９９、ブリッジ回路１２および外部バス９８を経由してＩＰ＃１へアクセスする。この間、ＩＰ＃２〜ＩＰ＃４へのアクセスは不可となる。したがって、データ転送に要する時間が数秒におよぶ場合(転送データ量と周波数から算出可能)、ＩＰ＃２〜ＩＰ＃４をＤＣＧモードへ移行させることで電力消費を低減できる。
【０１４０】
したがって、ＰＭＵ１４は、ＤＭＡＣ５による直接転送の転送元または転送先でないＩＰ＃１〜ＩＰ＃４（外部インタフェース回路）の動作モードをＤＣＧモードに設定する。
【０１４１】
（動作）
図１７は、第４の実施形態におけるモード設定手順を表わすフローチャートである。
【０１４２】
図１７を参照して、ＣＰＵ３は、命令キューから命令をフェッチする（ステッＳ４０１）。
【０１４３】
ＣＰＵ３は、フェッチした命令がＤＭＡ転送命令の場合には（ステップＳ４０２でＹＥＳ）、転送に要する時間を見積もる。ＣＰＵ３は、転送に要する時間が所定時間ＴＨを越える場合には（ステップＳ４０３でＹＥＳ）、ＤＭＡ転送命令の対象以外のＩＰのモードフラグがＤＣＧモードでない場合には（ステップＳ４０４でＮＯ）、ＤＭＡ転送命令の対象以外のＩＰのモードフラグをＤＣＧモードに設定する（ステップＳ４０５）。
【０１４４】
ＰＭＵ１４は、モードフラグがＤＣＧモードへ設定されたＩＰへのクロックの供給を停止させる（ステップＳ４０６）。
【０１４５】
ＰＭＵ１４は、モードフラグがＤＣＧモードへ設定されたＩＰの電源制御回路３３を制御して、モードフラグがＤＣＧモードへ設定されたＩＰのロジック領域３４およびメモリ領域３５に通常電圧よりも低い降圧電圧を供給させる（ステップＳ４０７）。
【０１４６】
以上のように、本実施の形態によれば、ＤＭＡ転送時におけるハードウエア資源であるＩＰ＃１〜ＩＰ＃４の利用状況に基づいて、ＩＰ＃１〜ＩＰ＃４の動作モードを設定することができる。
【０１４７】
［第５の実施形態］
第５の実施形態では、第３のハードウエア要因によるモードの移行制御について説明する。
【０１４８】
図１８は、第５の実施形態のＰＭＵの構成を表わす図である。
このＰＭＵ１１４は、タイマ８１と、制御回路８２と、レジスタ８３とを備える。
【０１４９】
レジスタ８３は、ＩＰ＃１〜ＩＰ＃４について、モードフラグに加えて、第１の制限時間、および第２の制限時間を記憶する。
【０１５０】
図１９は、ＩＰ＃１〜ＩＰ＃４について、モードフラグ、第１の制限時間、第２の制限時間の例を表わす図である。
【０１５１】
レジスタ８３には、ＩＰ＃ｉについて（ｉ＝１〜４）、モードフラグｍｏｄｅ（＃ｉ）、第１の制限時間ＴＨ１（＃ｉ）、第２の制限時間ＴＨ２（＃ｉ）が設定される。
【０１５２】
タイマ８１は、ＩＰ＃１〜ＩＰ＃４の動作が継続して停止する停止時間をカウントする。
【０１５３】
制御回路８２は、ＩＰ＃ｉの動作モードが通常モード時に、停止時間が第１の制限時間ＴＨ１（＃ｉ）を経過したときに、ＩＰ＃ｉの動作モードをＤＣＧモードに設定する。制御回路８２は、ＩＰ＃ｉの動作モードがＤＣＧモード時に、停止時間が第２の制限時間ＴＨ２（＃ｉ）を経過したときに、ＩＰ＃ｉの動作モードを電源遮断モードに設定する。
【０１５４】
（動作）
図２０は、第５の実施形態におけるモード設定手順を表わすフローチャートである。ＩＰごとに以下の処理を行なわれる。
【０１５５】
図２０を参照して、ＩＰ＃ｉのモードフラグに設定された現在のモードが通常モードの場合には（ステップＳ５０１でＹＥＳ）、タイマによるカウント値（つまりＩＰ＃ｉの停止時間）がＴＨ１（＃ｉ）を超えた場合には（ステップＳ５０２でＹＥＳ）、ＩＰ＃ｉのモードフラグをＤＣＧモードに設定する（ステップ５０４）。
【０１５６】
ＰＭＵ１４は、ＩＰ＃ｉへのクロックの供給を停止させる（ステップＳ５０４）。
ＰＭＵ１４は、ＩＰ＃ｉの電源制御回路３３を制御して、ＩＰ＃ｉのロジック領域３４およびメモリ領域３５に通常電圧よりも低い降圧電圧を供給させる（ステップＳ５０５）。
【０１５７】
ＩＰ＃ｉのモードフラグに設定された現在のモードがＤＣＧモードの場合には（ステップＳ５０６でＹＥＳ）、タイマによるカウント値（つまりＩＰ＃ｉの停止時間）がＴＨ２（＃ｉ）を超えた場合には（ステップＳ５０７でＹＥＳ）、ＩＰ＃ｉのモードフラグを電源遮断モードに設定する（ステップ５０８）。
【０１５８】
ＰＭＵ１４は、ＩＰ＃ｉの電源制御回路３３を制御して、ＩＰ＃ｉのロジック領域３４およびメモリ領域３５への電源電圧の供給を停止させる（ステップＳ５０９）。
【０１５９】
以上のように、本実施の形態によれば、ハードウエア資源であるＩＰ＃１〜ＩＰ＃４の利用状況に基づいて、ＩＰ＃１〜ＩＰ＃４の動作モードを設定することができる。
【０１６０】
［第６の実施形態］
第６の実施形態では、ＰＭＵ１１４内のレジスタ８３は、ＩＰ＃１〜ＩＰ＃４について、モードフラグ、第１の制限時間、第２の制限時間に加えて、第３〜第５の実施形態で説明したハードウエア資源の利用状況に基づく動作モードの切替えを許可するか否かを定める許可フラグを記憶する。
【０１６１】
ハードウエア資源の利用状況に基づく動作モードの切替は、ユーザの意図に関係なく行われるので、ユーザの意図に反して行われる場合がある。これを避けるために、許可フラグをレジスタで設定することによって、ハードウエア資源の利用状況に基づく動作モードの切替を許可するか否かを設定することができるようにする。
【０１６２】
図２１は、ＩＰ＃１〜ＩＰ＃４について、モードフラグ、第１の制限時間、第２の制限時間、許可フラグの例を表わす図である。
【０１６３】
レジスタには、ＩＰ＃ｉについて、モードフラグｍｏｄｅ（＃ｉ）、第１の制限時間ＴＨ１（＃ｉ）、第２の制限時間ＴＨ２（＃ｉ）、許可フラグＰＭ（ｉ）が設定される。
【０１６４】
許可フラグが許可を表わすときに、第３〜第５の実施形態で説明したハードウエア資源の利用状況に基づく動作モードの切り替えが可能となる。ＰＭ１１４は、許可フラグが許可を表わさないときには、ハードウエア資源の利用状況に基づいて動作モードを切替えない。
【０１６５】
以上のように、本実施の形態によれば、ハードウエア資源の利用状況に基づいて、動作モードの切替えを許可するかをレジスタで設定することができる。
【０１６６】
［第６の実施形態の変形例］
第６の実施形態の変形例では、ＰＭＵ１１４内のレジスタ８３は、ＩＰ＃１〜ＩＰ＃４について、モードフラグ、第１の制限時間、第２の制限時間に加えて、優先度フラグを記憶する。
【０１６７】
図２２は、ＩＰ＃１〜ＩＰ＃４について、モードフラグ、第１の制限時間、第２の制限時間、優先度フラグの例を表わす図である。
【０１６８】
レジスタには、ＩＰ＃ｉについて、モードフラグｍｏｄｅ（＃ｉ）、第１の制限時間ＴＨ１（＃ｉ）、第２の制限時間ＴＨ２（＃ｉ）、優先度フラグＰＲ（＃ｉ）が設定される。
【０１６９】
優先度フラグは、外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況により動作モードの切替えが競合したときに、いずれの要因を優先するかを定める。
【０１７０】
図２３は、優先度フラグの例を表わす図である。
優先度フラグが“０００”のときには、最も優先する切替要因がユーザプログラム、次に優先する切替要因がハードウエア資源の利用状況、最も優先しない切替要因が外部からの割込みであることを表わす。
【０１７１】
優先度フラグが“００１”のときには、最も優先する切替要因がユーザプログラム、次に優先する切替要因が外部からの割込み、最も優先しない切替要因がハードウエア資源の利用状況であることを表わす。
【０１７２】
優先度フラグが“０１０”のときには、最も優先する切替要因がハードウエア資源の利用状況、次に優先する切替要因がユーザプログラム、最も優先しない切替要因が外部からの割込みであることを表わす。
【０１７３】
優先度フラグが“０１１”のときには、最も優先する切替要因がハードウエア資源の利用状況、次に優先する切替要因が外部からの割込み、最も優先しない切替要因がユーザプログラムであることを表わす。
【０１７４】
優先度フラグが“１００”のときには、最も優先する切替要因が外部からの割込み、次に優先する切替要因がハードウエア資源の利用状況、最も優先しない切替要因がユーザプログラムであることを表わす。
【０１７５】
優先度フラグが“１０１”のときには、最も優先する切替要因が外部からの割込み、次に優先する切替要因がユーザプログラム、最も優先しない切替要因がハードウエア資源の利用状況であることを表わす。
【０１７６】
以上のように、本実施の形態によれば、ハードウエア要因（ハードウエア資源の利用状況）、ユーザプログラム要因、外部要因（外部からの割込み）による動作モードの切替えの優先順序をレジスタによって設定することができる。
【０１７７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１７８】
１  半導体装置、２  ＭＭＵ、３  ＣＰＵ、４  キャッシュ、５  ＤＭＡＣ、６  ＩＮＴＣ、７  ＲＯＭ、８  ＲＡＭ、９  Ｃｏ−Ｐｒｏ＃１、１０  Ｃｏ−Ｐｒｏ＃２、１１  ＷＤＴ、１２  Ｂｒｉｄｇｅ、１３  ＣＰＧ、１４，１１４  ＰＭＵ、１５  Ｒｅｓｅｔ、１６  ＩＰ＃１、１７  ＩＰ＃２、１８  ＩＰ＃３、１９  ＩＰ＃４、２０  ＩＰ＃１周辺回路、２１  ＩＰ＃２周辺回路、２２  ＩＰ＃３周辺回路、２３  ＩＰ＃４周辺回路、３１，８２，１３１  制御回路、３２，ＡＮＤ  論理積回路、ＥＬＳ  イネーブル付きレベルシフタ、Ｌａｔｃｈ  ラッチ回路、３３，１３３  電源制御回路、３４，３６１  ロジック領域、３５，１３５  メモリ領域、８１  タイマ、８３，９５  レジスタ、９８  内部バス、９９  外部バス。
【図１】
0005833434.tif 000002
【図２】
0005833434.tif 000003
【図３】
0005833434.tif 000004
【図４】
0005833434.tif 000005
【図５】
0005833434.tif 000006
【図６】
0005833434.tif 000007
【図７】
0005833434.tif 000008
【図８】
0005833434.tif 000009
【図９】
0005833434.tif 000010
【図１０】
0005833434.tif 000011
【図１１】
0005833434.tif 000012
【図１２】
0005833434.tif 000013
【図１３】
0005833434.tif 000014
【図１４】
0005833434.tif 000015
【図１５】
0005833434.tif 000016
【図１６】
0005833434.tif 000017
【図１７】
0005833434.tif 000018
【図１８】
0005833434.tif 000019
【図１９】
0005833434.tif 000020
【図２０】
0005833434.tif 000021
【図２１】
0005833434.tif 000022
【図２２】
0005833434.tif 000023
【図２３】
0005833434.tif 000024