特許第5833434号(P5833434)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ルネサスエレクトロニクス株式会社の特許一覧
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5833434
(24)【登録日】2015年11月6日
(45)【発行日】2015年12月16日
(54)【発明の名称】半導体装置
(51)【国際特許分類】
   G06F 1/32 20060101AFI20151126BHJP
   G06F 1/04 20060101ALI20151126BHJP
【FI】
   G06F1/32 Z
   G06F1/32 B
   G06F1/04 576
【請求項の数】11
【全頁数】25
(21)【出願番号】特願2011-288849(P2011-288849)
(22)【出願日】2011年12月28日
(65)【公開番号】特開2013-137689(P2013-137689A)
(43)【公開日】2013年7月11日
【審査請求日】2014年8月13日
(73)【特許権者】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】栗本 昌憲
(72)【発明者】
【氏名】石見 幸一
【審査官】 田川 泰宏
(56)【参考文献】
【文献】 特開2006−048652(JP,A)
【文献】 特開平06−175754(JP,A)
【文献】 特開2002−333977(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/32
G06F 1/04
(57)【特許請求の範囲】
【請求項1】
複数の動作モードでの動作が可能な半導体装置であって、
通常モード、CGモード、DCGモード、および電源遮断モードのいずれかで動作する複数の回路ブロックと、
前記通常モードは、クロックが供給され、第1の電源電圧が供給される動作モードであり、前記CGモードは、クロックの供給が停止され、第1の電源電圧が供給される動作モードであり、前記DCGモードは、クロックの供給が停止され、前記第1の電源電圧よりも低い第2の電源電圧が供給される動作モードであり、前記電源遮断モードは、クロックおよび電源電圧の供給が停止した動作モードであり、
外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況に基づいて、前記複数の回路ブロックの動作モードの切替えを制御する管理部とを備え、
前記半導体装置は、
前記複数の回路ブロックの要素として、命令キューを備えたCPUと、コプロセッサとを備え、
前記命令キュー内に前記コプロセッサを使用する命令が存在しない場合に、前記管理部は、前記命令キュー内のすべての命令の実行に要する時間だけ、前記コプロセッサの動作モードをDCGモードに設定する半導体装置。
【請求項2】
複数の動作モードでの動作が可能な半導体装置であって、
通常モード、CGモード、DCGモード、および電源遮断モードのいずれかで動作する複数の回路ブロックと、
前記通常モードは、クロックが供給され、第1の電源電圧が供給される動作モードであり、前記CGモードは、クロックの供給が停止され、第1の電源電圧が供給される動作モードであり、前記DCGモードは、クロックの供給が停止され、前記第1の電源電圧よりも低い第2の電源電圧が供給される動作モードであり、前記電源遮断モードは、クロックおよび電源電圧の供給が停止した動作モードであり、
外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況に基づいて、前記複数の回路ブロックの動作モードの切替えを制御する管理部とを備え、
前記半導体装置は、 前記複数の回路ブロックの要素として、命令キューを備えたCPUと、コプロセッサとを備え、
前記CPUが命令をフェッチしたときに、フェッチした命令が前記コプロセッサを使用する命令でなく、前記コプロセッサの現在の動作モードがDCGモードでなく、前記命令キュー内に前記コプロセッサを使用する命令が存在しない場合に、前記管理部は、前記コプロセッサの動作モードをDCGモードに設定し、
前記CPUが命令をフェッチしたときに、フェッチした命令が前記コプロセッサを使用する命令であり、前記コプロセッサの現在の動作モードがDCGモードの場合に、前記管理部は、前記コプロセッサの動作モードを通常モードに設定する半導体装置。
【請求項3】
複数の動作モードでの動作が可能な半導体装置であって、
通常モード、CGモード、DCGモード、および電源遮断モードのいずれかで動作する複数の回路ブロックと、
前記通常モードは、クロックが供給され、第1の電源電圧が供給される動作モードであり、前記CGモードは、クロックの供給が停止され、第1の電源電圧が供給される動作モードであり、前記DCGモードは、クロックの供給が停止され、前記第1の電源電圧よりも低い第2の電源電圧が供給される動作モードであり、前記電源遮断モードは、クロックおよび電源電圧の供給が停止した動作モードであり、
外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況に基づいて、前記複数の回路ブロックの動作モードの切替えを制御する管理部とを備え、
前記半導体装置は、
前記複数の回路ブロックの要素として、命令キューを備えたCPUと、MAC(multiply and accumulate)命令を実行する第1のコプロセッサと、浮動小数点命令を実行する
第2のコプロセッサとを備え、
前記CPUが命令をフェッチしたときに、フェッチした命令が前記第1のコプロセッサを使用する命令でなく、前記第1のコプロセッサの現在の動作モードがDCGモードでなく、前記命令キュー内に前記第1のコプロセッサを使用する命令が存在しない場合に、前記管理部は、前記第1のコプロセッサの動作モードをDCGモードに設定し、
前記CPUが命令をフェッチしたときに、フェッチした命令が前記第2のコプロセッサを使用する命令でなく、前記第2のコプロセッサの現在の動作モードがDCGモードでなく、前記命令キュー内に前記第2のコプロセッサを使用する命令が存在しない場合に、前記管理部は、前記第2のコプロセッサの動作モードをDCGモードに設定し、
前記CPUが命令をフェッチしたときに、フェッチした命令が前記第1のコプロセッサを使用する命令であり、前記第1のコプロセッサの現在の動作モードがDCGモードの場合に、前記管理部は、前記第1のコプロセッサの動作モードを通常モードに設定し、
前記CPUが命令をフェッチしたときに、フェッチした命令が前記第2のコプロセッサを使用する命令であり、前記第2のコプロセッサの現在の動作モードがDCGモードの場合に、前記管理部は、前記第2のコプロセッサの動作モードを通常モードに設定する半導体装置。
【請求項4】
複数の動作モードでの動作が可能な半導体装置であって、
通常モード、CGモード、DCGモード、および電源遮断モードのいずれかで動作する複数の回路ブロックと、
前記通常モードは、クロックが供給され、第1の電源電圧が供給される動作モードであり、前記CGモードは、クロックの供給が停止され、第1の電源電圧が供給される動作モードであり、前記DCGモードは、クロックの供給が停止され、前記第1の電源電圧よりも低い第2の電源電圧が供給される動作モードであり、前記電源遮断モードは、クロックおよび電源電圧の供給が停止した動作モードであり、
外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況に基づいて、前記複数の回路ブロックの動作モードの切替えを制御する管理部とを備え、
前記半導体装置は、
前記複数の回路ブロックの要素として、外部インタフェース回路を備え、
前記管理部は、前記外部インタフェース回路の動作が継続して停止する停止時間をカウントするタイマを含み、
前記管理部は、前記外部インタフェース回路の動作モードが通常モード時に、前記外部インタフェース回路の停止時間が第1の時間を経過したときに、前記外部インタフェース回路の動作モードをDCGモードに設定する半導体装置。
【請求項5】
複数の動作モードでの動作が可能な半導体装置であって、
通常モード、CGモード、DCGモード、および電源遮断モードのいずれかで動作する複数の回路ブロックと、
前記通常モードは、クロックが供給され、第1の電源電圧が供給される動作モードであり、前記CGモードは、クロックの供給が停止され、第1の電源電圧が供給される動作モードであり、前記DCGモードは、クロックの供給が停止され、前記第1の電源電圧よりも低い第2の電源電圧が供給される動作モードであり、前記電源遮断モードは、クロックおよび電源電圧の供給が停止した動作モードであり、
外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況に基づいて、前記複数の回路ブロックの動作モードの切替えを制御する管理部とを備え、
前記半導体装置は、
前記複数の回路ブロックの要素として、外部インタフェース回路を備え、
前記管理部は、外部インタフェース回路の動作が継続して停止する停止時間をカウントするタイマを含み、
前記管理部は、前記外部インタフェース回路の動作モードがDCGモード時に、前記外部インタフェース回路の停止時間が第2の時間を経過したときに、前記外部インタフェース回路の動作モードを電源遮断モードに設定する半導体装置。
【請求項6】
前記管理部は、前記回路ブロックごとの動作モードを表わすモードフラグを記憶するレジスタを含む、請求項1〜5のいずれか1項に記載の半導体装置。
【請求項7】
前記半導体装置は、
前記複数の回路ブロックの要素としてタッチパネルコントローラを含み、
前記管理部は、前記外部からの割込みとして前記タッチパネルコントローラへ入力がなされたときに、前記タッチパネルコントローラの動作モードをDCGモードに設定する、請求項1〜5のいずれか1項に記載の半導体装置。
【請求項8】
前記半導体装置は、
前記複数の回路ブロックの要素として、さらにキーボードコントローラおよびマウスコントローラのいずれか一つを備え、
前記管理部は、前記タッチパネルコントローラの動作モードをDCGモードに設定するとともに、前記キーボードコントローラまたは前記マウスコントローラの動作モードを電源遮断モードに設定する、請求項記載の半導体装置。
【請求項9】
前記ユーザプログラムは、モード設定コマンドを含み、前記モード設定コマンドは、動作モードの設定対象の回路ブロックと、動作モードとを指定し、
前記管理部は、前記ユーザプログラムに含まれるモード設定コマンドに基づいて、前記回路ブロックの動作モードを設定する、請求項1〜5のいずれか1項に記載の半導体装置。
【請求項10】
前記半導体装置は、
前記複数の回路ブロックの要素として、CPUと、複数の外部インタフェース回路と、前記CPUを介さずに、データの直接転送を制御するDMAコントローラを備え、
前記管理部は、前記DMAコントローラによる直接転送の転送元または転送先でない外部インタフェース回路の動作モードをDCGモードに設定する、請求項1〜5のいずれか1項に記載の半導体装置。
【請求項11】
前記レジスタは、さらに、前記回路ブロックごとに、前記ハードウエア資源の利用状況に基づく動作モードの切替えを許可するか否かを定める許可フラグを記憶し、
前記許可フラグが許可を表わすときに、前記ハードウエア資源の利用状況に基づく前記回路ブロックの動作モードの切替えが可能となる、請求項記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置に関し、特に動作モードの切替えが可能な半導体装置に関する。
【背景技術】
【0002】
動作モードに応じて、電源電圧やクロックの供給を制御する装置が知られている。
たとえば、特許文献1(特開昭63−065714号公報)には、スタンバイモードで、クロックを停止し、通常動作時よりも低い電圧を供給する点が記載されている。
【0003】
特許文献2(特開2004−192296号公報)には、動作モードに応じて、電源電圧とクロックの周波数を設定する点が記載されている。
【0004】
特許文献3(特開2006−318380号公報)には、各回路ユニットの動作状態に応じて、電源電圧とクロックの周波数を設定する点が記載されている。
【0005】
特許文献4(特開2010−044624号公報)には、クロックに同期して動作する同期回路を備えたモジュールに入力されるクロックの速度を予測し、予測に基づき、モジュールに供給する供給電圧を、所定の動作電圧、もしくは同期回路においてデータが保持される最低電圧のいずれかに切替えることが記載されている。
【0006】
特許文献5(特開2008−294208号公報)には、背景技術の説明において、スタンバイモード時には通常動作モード時よりも低い電圧の供給をうける点が記載されている。
【0007】
特許文献6(特開平06−309280号公報)には、キーボードへの入力が一定時間ない場合には、マイクロプロセッサを低消費電力状態に移行させる点が記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開昭63−065714号公報
【特許文献2】特開2004−192296号公報
【特許文献3】特開2006−318380号公報
【特許文献4】特開2010−044624号公報
【特許文献5】特開2008−294208号公報
【特許文献6】特開平06−309280号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、特許文献1〜特許文献5には、ヒューマンインタフェースやセンサなどの外部からの割込みによって、動作モードを切替えることが記載されていない。
【0010】
一方、特許文献6には、キーボードからの入力が一定期間ないことに応じて、低消費電力状態に移行させることが記載されているものの、その他の要因によって動作モードを切替えることが記載されていない。
【0011】
それゆえに、本発明の目的は、外部からの割込みを含む複数の要因に応じて、複数の動作モード間の切替えが可能な半導体装置を提供することである。
【課題を解決するための手段】
【0012】
本発明の一実施形態の半導体装置は、複数の動作モードでの動作が可能な半導体装置であって、通常モード、CGモード、DCGモード、および電源遮断モードのいずれかで動作する複数の回路ブロックと、通常モードは、クロックが供給され、第1の電源電圧が供給される動作モードであり、CGモードは、クロックの供給が停止され、第1の電源電圧が供給される動作モードであり、DCGモードは、クロックの供給が停止され、第1の電源電圧よりも低い第2の電源電圧が供給される動作モードであり、電源遮断モードは、クロックおよび電源電圧の供給が停止した動作モードであり、管理部は、外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況に基づいて、複数の回路ブロックの動作モードの切替えを制御する。
【発明の効果】
【0013】
本発明の一実施形態の半導体装置によれば、外部からの割込みを含む複数の要因に応じて、複数の動作モード間の切替えが可能となる。
【図面の簡単な説明】
【0014】
図1】本発明の実施形態における動作モードおよび動作モードの遷移の例を表わす図である。
図2】本発明の実施形態のマイクロコンピュータ(半導体装置)の構成を表わす図である。
図3図2におけるIP#1とブリッジ回路12との間のデータ転送に着目した詳細な回路の構成を表わす図である。
図4】モードフラグの例を表わす図である。
図5】レジスタ95に記憶されているIP#1〜IP#4のモードフラグの例を表わす図である。
図6】第1の実施形態におけるモード設定手順を表わすフローチャートである。
図7】IP#1が通常モードのときの、IP#1への電源電圧およびクロックの供給を説明するための図である。
図8】IP#1がCGモードのときの、IP#1への電源電圧およびクロックの供給を説明するための図である。
図9】IP#1がDCGモードのときの、IP#1への電源電圧およびクロックの供給を説明するための図である。
図10】IP#1が電源遮断モードのときの、IP#1への電源電圧およびクロックの供給を説明するための図である。
図11】(a)は、通常モードからCGモードへの移行時の信号および電圧の変化を表わす図である。(b)は、通常モードからDCGモードへの移行時の信号および電圧の変化を表わす図である。(c)は、通常モードから電源遮断モードへの移行時の信号および電圧の変化を表わす図である。
図12】(a)は、CGモードから通常モードへの移行時の信号および電圧の変化を表わす図である。(b)は、DCGモードから通常モードへの移行時の信号および電圧の変化を表わす図である。(c)は、電源遮断モードから通常モードへの移行時の信号および電圧の変化を表わす図である。
図13】第2の実施形態におけるモード設定手順を表わすフローチャートである。
図14】第3の実施形態におけるCo−Pro#1とCo−Pro#1の周辺回路の間のデータ転送に着目したより詳細な回路の構成を表わす図である。
図15】レジスタ96に記憶されているCo−Pro#1およびCo−Pro#2のモードフラグの例を表わす図である。
図16】第3の実施形態におけるモード設定手順を表わすフローチャートである。
図17】第4の実施形態におけるモード設定手順を表わすフローチャートである。
図18】第5の実施形態のPMUの構成を表わす図である。
図19】IP#1〜IP#4について、モードフラグ、第1の制限時間、第2の制限時間の例を表わす図である。
図20】第5の実施形態におけるモード設定手順を表わすフローチャートである。
図21】IP#1〜IP#4について、モードフラグ、第1の制限時間、第2の制限時間、許可フラグの例を表わす図である。
図22】IP#1〜IP#4について、モードフラグ、第1の制限時間、第2の制限時間、優先度フラグの例を表わす図である。
図23】優先度フラグの例を表わす図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について図面を参照して説明する。
[第1の実施形態]
(動作モードについて)
図1は、本発明の実施形態における動作モードおよび動作モードの遷移の例を表わす図である。この動作モードは、半導体装置の各機能ブロック(CPUなど)ごとに設定することができる。
【0016】
通常モードは、通常の動作に必要な電源電圧が供給され、クロックが供給されるモードである。
【0017】
電源遮断モードは、電源電圧およびクロックの供給が停止されたモードである。電力削減のためには、電源遮断モードが有利である。しかし、一度電源を遮断してしまうと、電源復帰後に電源が安定するまでの復帰時間(数ミリ秒レベル)を要するという問題がある。また、電源遮断時に、データが全て失われてしまうため、復帰後にレジスタやRAMへ必要なデータを書き戻すためのシーケンスが必要となるという問題がある。
【0018】
CG(クロックゲーティング)モードは、通常の動作に必要な電源電圧が供給されるが、クロックの供給が停止されたモードである。CGモードでは、定格電圧が供給され続けるため、リーク電力の削減効果は少ないという問題がある。また、定格電圧によるストレスも継続し、信頼性が低下するという問題がある。しかし、DCGモードや電源遮断モードのように、通常モードに復帰するために電源安定のための復帰時間がかかるというような問題は生じない。
【0019】
DCG(ディープクロックゲーティング)モードでは、クロックの供給が停止される。このモードでは、通常動作に必要な電源電圧をデータリテンション可能な大きさまで降圧した電圧が供給される。これによって、リーク電力削減が可能となるので、CGモードよりも電力消費を少なくすることができる。これによって、充電式バッテリや電池で動作するノート型パーソナルコンピュータや、モバイルコンピュータ、PDA(Personal Digital Assistant)のような携帯用電子機器に使用した場合の稼働時間を増大させることができる。また、電源遮断モードのように電源電圧の供給をしないため、復帰時の電源安定待ち時間も短くすることができる。また、CGモードのように定格電圧がかけられている場合に比べてストレスも軽減される。
【0020】
動作モードの切替えは、ユーザプログラム要因、外部要因、またはハードウエア要因によって行われる。
【0021】
ユーザプログラム要因による切替えでは、ユーザプログラムに含まれるモード設定コマンドによって動作モードが切替えられる。
【0022】
外部要因による切替えでは、外部インタフェース回路に外部からの割込みが入力されたことによって動作モードが切替えられる。
【0023】
ハードウエア要因による切替えでは、ハードウエア資源の利用状況に基づいて、マイクロプロセッサが自律的に動作モードを切替える。
【0024】
電源Off状態から外部要因(パワーオンリセット)によって通常モードへ移行する。
通常モードとCGモード間の遷移は、外部要因、ユーザプログラム要因、またはハードウエア要因によって行われる。通常モードとDCGモード間の遷移は、外部要因、ユーザプログラム要因、またはハードウエア要因によって行われる。通常モードと電源遮断モード間の遷移は、外部要因、ユーザプログラム要因、またはハードウエア要因によって行われる。
【0025】
CGモードと電源遮断モード間の遷移は、外部要因、ユーザプログラム要因、またはハードウエア要因によって行われる。DCGモードと電源遮断モード間の遷移は、外部要因、ユーザプログラム要因、またはハードウエア要因によって行われる。
【0026】
通常モードからCGモードおよびDCGモード、電源遮断モードへはレイテンシオーバーヘッドなしで遷移可能である。一方、DCGモードおよび電源遮断モードから通常モードへは電圧が安定するまでの間、クロックの復帰を遅らせなければならない。
【0027】
(マイクロコンピュータ)
図2は、本発明の実施形態のマイクロコンピュータ(半導体装置)の構成を表わす図である。
【0028】
内部バス99には、回路ブロックとして、命令キューを有するCPU(Central Processing Unit)3、キャッシュ4、メモリ管理ユニット(MMU)2、割り込みコントローラ(INTC)6、クロック信号を供給するクロックパルス発生器(CPG)13が接続される。クロックパルス発生器(CPG)13は、半導体装置1の基準クロック信号となり、クロック信号はクロック信号配線(図示せず)を通じて、各回路ブロックに供給される。
【0029】
内部バス99には、さらに、回路ブロックとして、ROM(Read Only Memory)7、RAM(Random Access Memory)8、ハードウェアの異常を検出するためのウォッチドッグタイマ(WDT)11、およびDMAコントローラ(DMAC)5、コプロセッサ(Co−Pro#1)9、コプロセッサ(Co−Pro#2)10とが接続される。
【0030】
Co−Pro#1は、MAC(multiply and accumulate)命令を実行する。
Co−Pro#2は、浮動小数点命令を実行する。
【0031】
DMAC5は、CPU3を介さずに、データの直接転送を制御する。
外部バス98には、回路ブロックとして、IP#1〜IP#4と、IP#1〜IP#4の周辺回路20〜23、電源制御ユニット(PMU)14、リセット回路(Reset)15が接続される。
【0032】
IP#1〜IP#4は、それぞれ外部との信号の授受のための外部インタフェース回路である。IP#1〜IP#4は、たとえば、タッチパネルコントローラ、キーボードコントローラ、ディスプレイコントローラ、データ通信コントローラ、グラフィクスコントローラである。
【0033】
内部バス99と外部バス98の間は、データインタフェースのためのブリッジ回路(Bridge)12で接続されている。
【0034】
図3は、図2におけるIP#1とブリッジ回路12との間のデータ転送に着目した詳細な回路の構成を表わす図である。他のIPについてもこれと同様である。
【0035】
図3に示すように、IP#1(16)は、電源制御回路33と、ロジック領域34と、メモリ領域35とを備える。
【0036】
IP#1周辺回路20は、制御回路31と、論理積回路32と、論理積回路ANDと、イネーブル付きレベルシフタELSと、ラッチ回路Latchとを備える。
【0037】
ブリッジ回路12は、ロジック領域36を備える。
PMU14は、IP#1〜IP#4のモードフラグを記憶するためのレジスタ95を備える。
【0038】
図4は、モードフラグの例を表わす図である。
図4に示すように、モードフラグは2ビットで表わされる。通常モードでは、CGモード、DCGモード、電源遮断モードにおいて、モードフラグは、それぞれ“00”、“01”、“10”、“11”となる。
【0039】
図5は、レジスタ95に記憶されているIP#1〜IP#4のモードフラグの例を表わす図である。
【0040】
IP#1のモードフラグは“00”(通常モード)、IP#2のモードフラグは“11”(電源遮断モード)、IP#3のモードフラグは“11”(電源遮断モード)、IP#4のモードフラグは“10”(DCGモード)である。
【0041】
PMU14は、IP#1のモードフラグに基づいて、ウエイト信号Waitおよびモード信号Modeを制御回路31へ出力する。制御回路31は、CPU3からの指示信号と、PMU14からのウエイト信号Waitおよびモード信号Modeに従って、イネーブル信号Enableを出力する。
【0042】
論理積回路32は、基準クロックRefClkとEnable信号の論理積を内部クロックCLK1として、電源制御回路33、ロジック領域34およびメモリ領域35に出力する。
【0043】
電源制御回路33は、たとえば、PMOSスイッチ、ダイオードまたはレギュレータを含み、通常電圧(定格電圧)、降圧電圧を供給するか、あるいは電源電圧の供給を遮断するかの切替えが可能である。
【0044】
以下、第1の実施形態では、外部要因によるモードの移行制御について説明する。
(動作手順)
図6は、第1の実施形態におけるモード設定手順を表わすフローチャートである。
【0045】
図6を参照して、IP#1〜IP#4のいずれに外部入力があると、外部入力のあったIPは、INTC6に割込要求を送る(ステップ101)。
【0046】
INTC6は、割込要求を受け付けて、CPU3に外部入力のあったIPと割込要因を通知する(ステップS102)。
【0047】
CPU3は、RAM8内に記憶されている割込みハンドラを参照して、通知されたIPの通知された割込要因に対する処理を調べる(ステップS103)。
【0048】
通知されたIPの通知された割込要因に対する処理が通常モードへの移行の場合には(ステップS104でYES)、CPU3は、レジスタ95内の外部入力のあったIPのモードフラグを通常モードに設定する(ステップS105)。
【0049】
PMU14は、通知されたIPの電源制御回路33を制御して、通知されたIPのロジック領域34およびメモリ領域35に通常電圧を供給させる(ステップS106)。
【0050】
PMU14は、通知されたIP周辺回路を制御して、通知されたIPへのクロックの供給を再開させる(ステップS107)。
【0051】
通知されたIPの通知された割込要因に対する処理がCGモードへの移行の場合には(ステップS108でYES)、CPU3は、レジスタ95内の外部入力のあったIPのモードフラグをCGモードに設定する(ステップS109)。
【0052】
PMU14は、通知されたIP周辺回路を制御して、通知されたIPへのクロックの供給を停止させる(ステップS110)。
【0053】
PMU14は、通知されたIPの電源制御回路33を制御して、通知されたIPのロジック領域34およびメモリ領域35に通常電圧を供給させる(ステップS111)。
【0054】
通知されたIPの通知された割込要因に対する処理がDCGモードへの移行の場合には(ステップS112でYES)、CPU3は、レジスタ95内の外部入力のあったIPのモードフラグをDCGモードに設定する(ステップS113)。
【0055】
PMU14は、通知されたIP周辺回路を制御して、通知されたIPへのクロックの供給を停止させる(ステップS114)。
【0056】
PMU14は、通知されたIPの電源制御回路33を制御して、通知されたIPのロジック領域34およびメモリ領域35に通常電圧よりも低い降圧電圧を供給させる(ステップS115)。
【0057】
通知されたIPの通知された割込要因に対する処理が電源遮断モードへの移行の場合には(ステップS116でYES)、CPU3は、レジスタ95内の外部入力のあったIPのモードフラグを電源遮断モードに設定する(ステップS117)。
【0058】
PMU14は、通知されたIP周辺回路を制御して、通知されたIPへのクロックの供給を停止させる(ステップS118)。
【0059】
PMU14は、通知されたIPの電源制御回路33を制御して、通知されたIPのロジック領域34およびメモリ領域35への電源電圧の供給を停止させる(ステップS119)。
【0060】
(通常モード)
図7は、IP#1が通常モードのときの、IP#1への電源電圧およびクロックの供給を説明するための図である。
【0061】
通常モードでは、PMU14は、“00”のモード信号Modeを制御回路31へ出力する。制御回路31は、“00”のモード信号Modeを受けると、ハイレベルのイネーブル信号Enableを出力する。その結果、論理積回路32は、基準クロックRefClkと同じ位相および周期の内部クロックCLK1をIP#1へ供給する。
【0062】
また、PMU14は、“00”のモード信号Modeを電源制御回路33へ出力する。電源制御回路33は、“00”のモード信号Modeを受けると、通常電圧VN1をロジック領域34に供給し、通常電圧VN2をメモリ領域35に供給する。たとえば、通常電圧VN1、VN2として、それぞれ1.0V、0.9Vとすることができる。
【0063】
(CGモード)
図8は、IP#1がCGモードのときの、IP#1への電源電圧およびクロックの供給を説明するための図である。
【0064】
CGモードでは、PMU14は、“01”のモード信号Modeを制御回路31へ出力する。制御回路31は、“01”のモード信号Modeを受けると、ロウレベルのイネーブル信号Enableを出力する。その結果、論理積回路32は、内部クロックCLK1のIP#1への供給を停止する。
【0065】
また、PMU14は、“01”のモード信号Modeを電源制御回路33へ出力する。電源制御回路33は、“01”のモード信号Modeを受けると、通常電圧VN1をロジック領域34に供給し、通常電圧VN2をメモリ領域35に供給する。
【0066】
(DCGモード)
図9は、IP#1がDCGモードのときの、IP#1への電源電圧およびクロックの供給を説明するための図である。
【0067】
DCGモードでは、PMU14は、“10”のモード信号Modeを制御回路31へ出力する。制御回路31は、“10”のモード信号Modeを受けると、ロウレベルのイネーブル信号Enableを出力する。その結果、論理積回路32は、内部クロックCLK1のIP#1への供給を停止する。
【0068】
また、PMU14は、“10”のモード信号Modeを電源制御回路33へ出力する。電源制御回路33は、“10”のモード信号Modeを受けると、降圧電圧a×VN1をロジック領域34に供給し、降圧電圧b×VN2をメモリ領域35に供給する。ただし、aは0<a<1、bは0<b<1を満たす数である。たとえば、a、bとして、0.6、0.5とすることができる。降圧電圧a×VN1は、ロジック領域でデータリテンション可能な最低限の電圧であり、降圧電圧b×VN2は、メモリ領域でデータリテンション可能な最低限の電圧である。
【0069】
(電源遮断モード)
図10は、IP#1が電源遮断モードのときの、IP#1への電源電圧およびクロックの供給を説明するための図である。
【0070】
電源遮断モードでは、PMU14は、“11”のモード信号Modeを制御回路31へ出力する。制御回路31は、“11”のモード信号Modeを受けると、ロウレベルのイネーブル信号Enableを出力する。その結果、論理積回路32は、内部クロックCLK1のIP#1への供給を停止する。
【0071】
また、PMU14は、“11”のモード信号Modeを電源制御回路33へ出力する。電源制御回路33は、“11”のモード信号Modeを受けると、ロジック領域34およびメモリ領域35への電源電圧の供給を停止する。
【0072】
(モード移行時の制御)
図11は、通常モードから各モードへの移行時の信号および電圧の変化を表わす図である。
【0073】
図11(a)は、通常モードからCGモードへの移行時の信号および電圧の変化を表わす図である。
【0074】
図11(a)に示すように、通常モードでは、内部クロックCLK1が供給され、ロジック領域34への電圧Vxの大きさが通常電圧VN1であり、メモリ領域35への電圧Vyの大きさが通常電圧VN2である。
【0075】
CGモードへ移行すると、イネーブル信号Enableがロウレベルとなるため、内部クロックCLK1の供給が停止する。
【0076】
図11(b)は、通常モードからDCGモードへの移行時の信号および電圧の変化を表わす図である。
【0077】
図11(b)に示すように、通常モードでは、内部クロックCLK1が供給され、ロジック領域34への電圧Vxの大きさが通常電圧VN1であり、メモリ領域35への電圧Vyの大きさが通常電圧VN2である。
【0078】
CGモードへ移行すると、イネーブル信号Enableがロウレベルとなるため、内部クロックCLK1の供給が停止する。また、ロジック領域34への電圧Vxの大きさが降圧電圧a×VN1であり、メモリ領域35への電圧Vyの大きさが降圧電圧b×VN2となる。
【0079】
図11(c)は、通常モードから電源遮断モードへの移行時の信号および電圧の変化を表わす図である。
【0080】
図11(c)に示すように、通常モードでは、内部クロックCLK1が供給され、ロジック領域34への電圧Vxの大きさが通常電圧VN1であり、メモリ領域35への電圧Vyの大きさが通常電圧VN2である。
【0081】
電源遮断モードへ移行すると、イネーブル信号Enableがロウレベルとなるため、内部クロックCLK1の供給が停止する。また、ロジック領域34へおよびメモリ領域35への電圧の供給は停止する。
【0082】
図12は、各モードから通常モードへの移行時の信号および電圧の変化を表わす図である。
【0083】
図12(a)は、CGモードから通常モードへの移行時の信号および電圧の変化を表わす図である。
【0084】
図12(a)に示すように、CGモードでは、イネーブル信号Enableがロウレベルであるため、内部クロックCLK1の供給が停止している。
【0085】
通常モードへ移行すると、イネーブル信号Enableがハイレベルであるため、内部クロックCLK1の供給が再開する。
【0086】
図12(b)は、DCGモードから通常モードへの移行時の信号および電圧の変化を表わす図である。
【0087】
図12(b)に示すように、DCGモードでは、イネーブル信号Enableがロウレベルであるため、内部クロックCLK1の供給が停止し、ロジック領域34への電圧Vxの大きさが降圧電圧a×VN1であり、メモリ領域35への電圧Vyの大きさが降圧電圧b×VN2である。
【0088】
通常モードへ移行すると、PMU14は、ウエイト信号Waitを一定期間(図12(b)では3クロック分)だけハイレベルに設定する。
【0089】
この一定期間において、ロジック領域34への電圧Vxの大きさが降圧電圧a×VN1から通常電圧VN1へ遷移し、メモリ領域35への電圧Vyの大きさが降圧電圧b×VN2から通常電圧VN2へ遷移する。
【0090】
一定期間終了後に、ウエイト信号Waitがロウレベルとなるため、イネーブル信号Enableがハイレベルとなり、内部クロックCLK1の供給が再開する。
【0091】
図12(c)は、電源遮断モードから通常モードへの移行時の信号および電圧の変化を表わす図である。
【0092】
図12(c)に示すように、電源遮断モードでは、イネーブル信号Enableがロウレベルであるため、内部クロックCLK1の供給が停止し、ロジック領域34およびメモリ領域35へ電圧が供給されていない。
【0093】
通常モードへ移行すると、PMU14は、ウエイト信号Waitを一定期間(図12(c)では3クロック分)だけハイレベルに設定する。
【0094】
この一定期間において、ロジック領域34への電圧Vxの大きさが0Vから通常電圧VN1へ遷移し、メモリ領域35への電圧Vyの大きさが0Vから通常電圧VN2へ遷移する。
【0095】
一定期間終了後に、ウエイト信号Waitがロウレベルとなるため、イネーブル信号Enableがハイレベルとなり、内部クロックCLK1の供給が再開する。
【0096】
以上のように、本実施の形態によれば、外部要因に従って、4つの動作モードのうちのいずれかに切替えることができる。
【0097】
[第1の実施形態の変形例]
本変形例では、外部入力のあったIPとともに、外部入力のあったIP以外の動作モードも切替える。
【0098】
ここでは、IP#1としてマウスコントローラ、IP#2としてキーボードコントローラ、IP#3としてタッチパネルコントローラ、IP#4として音声入力・認識コントローラとする。
【0099】
IP#3(タッチパネルコントローラ)への入力があると、タッチパネル入力の動作レートは速くても数回/秒であり、入力間に電源遮断するには復帰にかかるオーバーヘッドが大きすぎるため、PMU14は、IP#3(タッチパネルコントローラ)をDCGモードへ移行させる。この際、PMU14は、タッチパネルコントローラと併用して使用されないことが予想されるIP#1(マウスコントローラ)、IP#2(キーボードコントローラ)を電源遮断モードへ移行させる。一方、タッチパネルと併用可能なIP#4をDCGモードへ移行させる。
【0100】
[第2の実施形態]
第2の実施形態では、ユーザプログラムによるモードの移行制御について説明する。第2の実施形態では、ユーザプログラムに含まれるモード設定コマンドに従って、モードを切替える。モード設定コマンドは、動作モードの設定対象の回路ブロック(IP#1〜IP#4およびその他の回路)と、設定するモードとを指定する。
【0101】
マイクロコンピュータを使用するユーザプログラムは、マイクロコンピュータに実装されているIPを認識している。また、これらのIPに供給される電源を遮断したり、電圧低減するためのレジスタ設定はマニュアルによって公開されているものとする。したがって、プログラマは、ユーザプログラムにおいて一定サイクル使用しないIPに対して、リテンション電圧まで低減することができる。DCGモードに設定される停止時間(数秒〜数10秒)は停止サイクルとクロック周期から算出可能である。たとえば、周波数が10MHz (周期は100ns)でIP#1の処理に少なくとも1千万サイクルを要し、IP#2、IP#3、IP#4を使用しないことが明らかであるならば、プログラマはIP#2、IP#3、IP#4をモード設定コマンドによって、1千万サイクルの間DCGモードへ移行させることができる。
【0102】
(動作手順)
図13は、第2の実施形態におけるモード設定手順を表わすフローチャートである。
【0103】
図13を参照して、CPU3は、ROM7に記憶されたユーザプログラムを読出す(ステップ201)。
【0104】
CPU3は、ユーザプログラム中に設定対象のIPと動作モードを指定したモード設定コマンドがあり(ステップS202でYES)、モード設定コマンドの設定対象のIPの指定動作モードがレジスタ95内の設定対象のIPのモードフラグで指定される現在の動作モードとが相違する場合には(ステップS203でYES)、レジスタ95内の設定対象のIPのモードフラグをモード設定コマンドの指定動作モードに設定する(ステップS204)。
【0105】
PMU14は、設定対象のIPの電源制御回路33を制御して、設定対象のIPのロジック領域34およびメモリ領域35に通常電圧を供給させる(ステップS206)。
【0106】
モードフラグに設定された動作モードが通常モードの場合には(ステップS205でYES)、PMU14は、設定対象のIPの周辺回路を制御して、設定対象のIPへのクロックの供給を再開させる(ステップS207)。
【0107】
モードフラグに設定された動作モードがCGモードの場合には(ステップS208でYES)、PMU14は、設定対象のIPの周辺回路を制御して、設定対象のIPへのクロックの供給を停止させる(ステップS209)。
【0108】
PMU14は、設定対象のIPの電源制御回路33を制御して、設定対象のIPのロジック領域34およびメモリ領域35に通常電圧を供給させる(ステップS210)。
【0109】
モードフラグに設定された動作モードがDCGモードの場合には(ステップS211でYES)、PMU14は、設定対象のIPの周辺回路を制御して、設定対象のIPへのクロックの供給を停止させる(ステップS212)。
【0110】
PMU14は、設定対象のIPの電源制御回路33を制御して、設定対象のIPのロジック領域34およびメモリ領域35に通常電圧よりも低い降圧電圧を供給させる(ステップS213)。
【0111】
モードフラグに設定されたモードが電源遮断モードの場合には(ステップS214でYES)、PMU14は、設定対象のIPの周辺回路を制御して、設定対象のIPへのクロックの供給を停止させる(ステップS215)。
【0112】
PMU14は、設定対象のIPの電源制御回路33を制御して、設定対象のIPのロジック領域34およびメモリ領域35への電源電圧の供給を停止させる(ステップS216)。
【0113】
以上のように、本実施の形態によれば、ユーザプログラムに含まれるモード設定コマンドによって、回路ブロックの動作モードを設定することができる。
【0114】
[第3の実施形態]
第3の実施形態では、第1のハードウエア要因によるモードの移行制御について説明する。
【0115】
図14は、第3の実施形態におけるCo−Pro#1とCo−Pro#1の周辺回路の間のデータ転送に着目したより詳細な回路の構成を表わす図である。Co−Pro#2とCo−Pro#2の周辺回路も同様である。
【0116】
図14に示すように、Co−Pro#1は、電源制御回路133と、ロジック領域134と、メモリ領域135とを備える。
【0117】
Co−Pro#1の周辺回路は、制御回路131と、論理積回路132とを備える。
PMU14は、ウエイト信号Waitおよびモード信号Modeを制御回路131へ出力する。制御回路131は、CPU3からの指示信号と、PMU14からのウエイト信号Waitおよびモード信号Modeに従って、イネーブル信号Enableを出力する。
【0118】
論理積回路131は、基準クロックRefClkとEnable信号の論理積を内部クロックCLK1として、電源制御回路133、ロジック領域134およびメモリ領域135に出力する。
【0119】
図15は、レジスタ96に記憶されているCo−Pro#1およびCo−Pro#2のモードフラグの例を表わす図である。
【0120】
図15の例では、Co−Pro#1のモードフラグは“00”(通常モード)、Co−Pro#2のモードフラグは“01”(CGモード)である。
【0121】
(動作手順)
図16は、第3の実施形態におけるモード設定手順を表わすフローチャートである。
【0122】
図16を参照して、CPU3は、命令キューから命令をフェッチする(ステッS401)。
【0123】
CPU3は、フェッチした命令がCo−Pro#1を使用する命令であり(ステップS302でYES)、Co−Pro#1のモードフラグが通常モードでない場合(ステップS303でYES)、Co−Pro#1のモードフラグを通常モードに設定する(ステップS304)。
【0124】
PMU14は、Co−Pro#1の電源制御回路133を制御して、Co−Pro#1のロジック領域134およびメモリ領域135に通常電圧を供給させる(ステップS305)。
【0125】
PMU14は、Co−Pro#1の周辺回路を制御して、Co−Pro#1のへのクロックの供給を再開させる(ステップS306)。
【0126】
CPU3は、フェッチした命令がCo−Pro#2を使用する命令であり(ステップS307でYES)、Co−Pro#2のモードフラグが通常モードでない場合(ステップS308でYES)、Co−Pro#2のモードフラグを通常モードに設定する(ステップS309)。
【0127】
PMU14は、Co−Pro#2の電源制御回路133を制御して、Co−Pro#2のロジック領域134およびメモリ領域135に通常電圧を供給させる(ステップS310)。
【0128】
PMU14は、Co−Pro#2の周辺回路を制御して、Co−Pro#2のへのクロックの供給を再開させる(ステップS311)。
【0129】
CPU3は、フェッチした命令がCo−Pro#1を使用する命令でなく(ステップS302でNO)、Co−Pro#2を使用する命令でもない場合に(ステップS307でNO)おいて、Co−Pro#1のモードフラグがDCGモードに設定されておらず(ステップS312でNO)、命令キューにCo−Pro#1を使用する命令が存在しない場合には(ステップS313でYES)、Co−Pro#1のモードフラグをDCGモードに設定する(ステップS314)。
【0130】
PMU14は、CO−Pro#1へのクロックの供給を停止させる(ステップS315)。
【0131】
PMU14は、Co−Pro#1の電源制御回路133を制御して、Co−Pro#1のロジック領域134およびメモリ領域135に通常電圧よりも低い降圧電圧を供給させる(ステップS316)。
【0132】
CPU3は、フェッチした命令がCo−Pro#1を使用する命令でなく(ステップS302でNO)、Co−Pro#2を使用する命令でもない場合に(ステップS307でNO)おいて、Co−Pro#2のモードフラグがDCGモードに設定されておらず(ステップS317でNO)、命令キューにCo−Pro#2を使用する命令が存在しない場合には(ステップS318でYES)、Co−Pro#2のモードフラグをDCGモードに設定する(ステップS319)。
【0133】
PMU14は、Co−Pro#2へのクロックの供給を停止させる(ステップS320)。
【0134】
PMU14は、Co−Pro#2の電源制御回路133を制御して、Co−Pro#2のロジック領域134およびメモリ領域135に通常電圧よりも低い降圧電圧を供給させる(ステップS321)。
【0135】
以上のように、本実施の形態によれば、ハードウエア資源であるCo−Pro#1およびCo−Pro#2の利用状況に基づいて、Co−Pro#1およびCo−Pro#2の動作モードを設定することができる。
【0136】
[第3の実施形態の変形例]
命令キューが128段あると仮定する。命令フェッチ時に命令キュー(128段フル)にMAC命令や浮動小数点命令がなければ、少なくとも128命令の実行期間はCo−Pro#1およびCo−Pro#2は動作させる必要はない。ここで、たとえば、周波数を10MHz(周期100ns)で、平均命令実行時間が10サイクルだとすると、100ns×10サイクル×123命令=123μsの間はCo−Pro#1およびCo−Pro#2を使用する必要はない。そこで、PMU14は、命令キュー内のすべての命令の実行に要する時間(すなわち、123μs)だけ、Co−Pro#1およびCo−Pro#2の動作モードをDCGモードに設定する。
【0137】
また、命令フェッチ時に命令キュー(128段フル)にMAC命令と浮動小数点命令の一方のみが存在する場合では、Co−Pro#1およびCo−Pro#2のうち、存在しない命令を実行するコプロセッサのみをDCGモードへ移行させることとしてもよい。
【0138】
[第4の実施形態]
第4の実施形態では、第2のハードウエア要因によるモードの移行制御について説明する。
【0139】
一例として、データ転送要求により、外部バスに接続されているIP#1のデータを内部バス経由でRAM8へ転送する場合を想定する。この場合、DMAC5が内部バス99、ブリッジ回路12および外部バス98を経由してIP#1へアクセスする。この間、IP#2〜IP#4へのアクセスは不可となる。したがって、データ転送に要する時間が数秒におよぶ場合(転送データ量と周波数から算出可能)、IP#2〜IP#4をDCGモードへ移行させることで電力消費を低減できる。
【0140】
したがって、PMU14は、DMAC5による直接転送の転送元または転送先でないIP#1〜IP#4(外部インタフェース回路)の動作モードをDCGモードに設定する。
【0141】
(動作)
図17は、第4の実施形態におけるモード設定手順を表わすフローチャートである。
【0142】
図17を参照して、CPU3は、命令キューから命令をフェッチする(ステッS401)。
【0143】
CPU3は、フェッチした命令がDMA転送命令の場合には(ステップS402でYES)、転送に要する時間を見積もる。CPU3は、転送に要する時間が所定時間THを越える場合には(ステップS403でYES)、DMA転送命令の対象以外のIPのモードフラグがDCGモードでない場合には(ステップS404でNO)、DMA転送命令の対象以外のIPのモードフラグをDCGモードに設定する(ステップS405)。
【0144】
PMU14は、モードフラグがDCGモードへ設定されたIPへのクロックの供給を停止させる(ステップS406)。
【0145】
PMU14は、モードフラグがDCGモードへ設定されたIPの電源制御回路33を制御して、モードフラグがDCGモードへ設定されたIPのロジック領域34およびメモリ領域35に通常電圧よりも低い降圧電圧を供給させる(ステップS407)。
【0146】
以上のように、本実施の形態によれば、DMA転送時におけるハードウエア資源であるIP#1〜IP#4の利用状況に基づいて、IP#1〜IP#4の動作モードを設定することができる。
【0147】
[第5の実施形態]
第5の実施形態では、第3のハードウエア要因によるモードの移行制御について説明する。
【0148】
図18は、第5の実施形態のPMUの構成を表わす図である。
このPMU114は、タイマ81と、制御回路82と、レジスタ83とを備える。
【0149】
レジスタ83は、IP#1〜IP#4について、モードフラグに加えて、第1の制限時間、および第2の制限時間を記憶する。
【0150】
図19は、IP#1〜IP#4について、モードフラグ、第1の制限時間、第2の制限時間の例を表わす図である。
【0151】
レジスタ83には、IP#iについて(i=1〜4)、モードフラグmode(#i)、第1の制限時間TH1(#i)、第2の制限時間TH2(#i)が設定される。
【0152】
タイマ81は、IP#1〜IP#4の動作が継続して停止する停止時間をカウントする。
【0153】
制御回路82は、IP#iの動作モードが通常モード時に、停止時間が第1の制限時間TH1(#i)を経過したときに、IP#iの動作モードをDCGモードに設定する。制御回路82は、IP#iの動作モードがDCGモード時に、停止時間が第2の制限時間TH2(#i)を経過したときに、IP#iの動作モードを電源遮断モードに設定する。
【0154】
(動作)
図20は、第5の実施形態におけるモード設定手順を表わすフローチャートである。IPごとに以下の処理を行なわれる。
【0155】
図20を参照して、IP#iのモードフラグに設定された現在のモードが通常モードの場合には(ステップS501でYES)、タイマによるカウント値(つまりIP#iの停止時間)がTH1(#i)を超えた場合には(ステップS502でYES)、IP#iのモードフラグをDCGモードに設定する(ステップ504)。
【0156】
PMU14は、IP#iへのクロックの供給を停止させる(ステップS504)。
PMU14は、IP#iの電源制御回路33を制御して、IP#iのロジック領域34およびメモリ領域35に通常電圧よりも低い降圧電圧を供給させる(ステップS505)。
【0157】
IP#iのモードフラグに設定された現在のモードがDCGモードの場合には(ステップS506でYES)、タイマによるカウント値(つまりIP#iの停止時間)がTH2(#i)を超えた場合には(ステップS507でYES)、IP#iのモードフラグを電源遮断モードに設定する(ステップ508)。
【0158】
PMU14は、IP#iの電源制御回路33を制御して、IP#iのロジック領域34およびメモリ領域35への電源電圧の供給を停止させる(ステップS509)。
【0159】
以上のように、本実施の形態によれば、ハードウエア資源であるIP#1〜IP#4の利用状況に基づいて、IP#1〜IP#4の動作モードを設定することができる。
【0160】
[第6の実施形態]
第6の実施形態では、PMU114内のレジスタ83は、IP#1〜IP#4について、モードフラグ、第1の制限時間、第2の制限時間に加えて、第3〜第5の実施形態で説明したハードウエア資源の利用状況に基づく動作モードの切替えを許可するか否かを定める許可フラグを記憶する。
【0161】
ハードウエア資源の利用状況に基づく動作モードの切替は、ユーザの意図に関係なく行われるので、ユーザの意図に反して行われる場合がある。これを避けるために、許可フラグをレジスタで設定することによって、ハードウエア資源の利用状況に基づく動作モードの切替を許可するか否かを設定することができるようにする。
【0162】
図21は、IP#1〜IP#4について、モードフラグ、第1の制限時間、第2の制限時間、許可フラグの例を表わす図である。
【0163】
レジスタには、IP#iについて、モードフラグmode(#i)、第1の制限時間TH1(#i)、第2の制限時間TH2(#i)、許可フラグPM(i)が設定される。
【0164】
許可フラグが許可を表わすときに、第3〜第5の実施形態で説明したハードウエア資源の利用状況に基づく動作モードの切り替えが可能となる。PM114は、許可フラグが許可を表わさないときには、ハードウエア資源の利用状況に基づいて動作モードを切替えない。
【0165】
以上のように、本実施の形態によれば、ハードウエア資源の利用状況に基づいて、動作モードの切替えを許可するかをレジスタで設定することができる。
【0166】
[第6の実施形態の変形例]
第6の実施形態の変形例では、PMU114内のレジスタ83は、IP#1〜IP#4について、モードフラグ、第1の制限時間、第2の制限時間に加えて、優先度フラグを記憶する。
【0167】
図22は、IP#1〜IP#4について、モードフラグ、第1の制限時間、第2の制限時間、優先度フラグの例を表わす図である。
【0168】
レジスタには、IP#iについて、モードフラグmode(#i)、第1の制限時間TH1(#i)、第2の制限時間TH2(#i)、優先度フラグPR(#i)が設定される。
【0169】
優先度フラグは、外部からの割込み、ユーザプログラム、およびハードウエア資源の利用状況により動作モードの切替えが競合したときに、いずれの要因を優先するかを定める。
【0170】
図23は、優先度フラグの例を表わす図である。
優先度フラグが“000”のときには、最も優先する切替要因がユーザプログラム、次に優先する切替要因がハードウエア資源の利用状況、最も優先しない切替要因が外部からの割込みであることを表わす。
【0171】
優先度フラグが“001”のときには、最も優先する切替要因がユーザプログラム、次に優先する切替要因が外部からの割込み、最も優先しない切替要因がハードウエア資源の利用状況であることを表わす。
【0172】
優先度フラグが“010”のときには、最も優先する切替要因がハードウエア資源の利用状況、次に優先する切替要因がユーザプログラム、最も優先しない切替要因が外部からの割込みであることを表わす。
【0173】
優先度フラグが“011”のときには、最も優先する切替要因がハードウエア資源の利用状況、次に優先する切替要因が外部からの割込み、最も優先しない切替要因がユーザプログラムであることを表わす。
【0174】
優先度フラグが“100”のときには、最も優先する切替要因が外部からの割込み、次に優先する切替要因がハードウエア資源の利用状況、最も優先しない切替要因がユーザプログラムであることを表わす。
【0175】
優先度フラグが“101”のときには、最も優先する切替要因が外部からの割込み、次に優先する切替要因がユーザプログラム、最も優先しない切替要因がハードウエア資源の利用状況であることを表わす。
【0176】
以上のように、本実施の形態によれば、ハードウエア要因(ハードウエア資源の利用状況)、ユーザプログラム要因、外部要因(外部からの割込み)による動作モードの切替えの優先順序をレジスタによって設定することができる。
【0177】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0178】
1 半導体装置、2 MMU、3 CPU、4 キャッシュ、5 DMAC、6 INTC、7 ROM、8 RAM、9 Co−Pro#1、10 Co−Pro#2、11 WDT、12 Bridge、13 CPG、14,114 PMU、15 Reset、16 IP#1、17 IP#2、18 IP#3、19 IP#4、20 IP#1周辺回路、21 IP#2周辺回路、22 IP#3周辺回路、23 IP#4周辺回路、31,82,131 制御回路、32,AND 論理積回路、ELS イネーブル付きレベルシフタ、Latch ラッチ回路、33,133 電源制御回路、34,361 ロジック領域、35,135 メモリ領域、81 タイマ、83,95 レジスタ、98 内部バス、99 外部バス。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23