(57)【要約】【課題】集積回路内における機能ブロックをドメイン毎に電力制御を行う電力管理回路で動作するアプリケーションについて、開発工数の増大や再利用性の低下を防ぐことを目的とする。【解決手段】集積回路内における機能ブロックの利用管理を行う資源管理部と、電力制御要求を、ドメイン毎に機能ブロックの電力制御を行う電力制御機構に対して送信する電力管理部とを有する。電力制御要求では、ドメインと当該ドメインに対する電力制御内容とが指定されている。電力管理部は、電力制御機構に対し電力制御要求を送信する前に、ドメインに所属する機能ブロックの種別と電力制御内容とに応じて、資源管理部を用いて、ドメインに所属する機能ブロックの利用を禁止する利用禁止処理を行う。【選択図】図３
2010282585.tif 000002
【特許請求の範囲】
【請求項１】
集積回路内における機能ブロックの利用管理を行う資源管理部と、
少なくとも１つ以上の前記機能ブロックを所属させたドメインと当該ドメインに対する電力制御内容とを指定した電力制御要求を、前記ドメイン毎に前記機能ブロックの電力制御を行う電力制御機構に対して送信する電力管理部と、を備え、
前記電力管理部は、前記電力制御機構に対し前記電力制御要求を送信する前に、前記ドメインに所属する機能ブロックの種別と前記電力制御内容とに応じて、前記資源管理部を用いて、前記ドメインに所属する機能ブロックの利用を禁止する利用禁止処理を行うことを特徴とする電力管理回路。
【請求項２】
前記ドメインに所属する機能ブロックがバスマスタの機能を有する場合には、
前記電力管理部は、前記利用禁止処理として、前記資源管理部を用いて、新たなジョブを前記機能ブロックに割り当てることを禁止することを特徴とする請求項１に記載の電力管理回路。
【請求項３】
前記ドメインに所属する機能ブロックが、既に割り当てられたジョブの実行を要求により停止可能なバスマスタの機能を有する場合には、
前記電力管理部は、前記利用禁止処理として、前記機能ブロックに対し、既に割り当てられたジョブの実行の停止要求を送信することを特徴とする請求項２に記載の電力管理回路。
【請求項４】
前記ドメインに所属する機能ブロックが、当該機能ブロックの状態の保存を外部からの要求により実行可能なバスマスタの機能を有し、かつ、前記電力制御内容が前記ドメインに対する電源電力の供給停止となる場合には、
前記電力管理部は、前記利用禁止処理として、前記機能ブロックに対し、前記機能ブロックの状態の保存要求を送信することを特徴とする請求項３に記載の電力管理回路。
【請求項５】
前記ドメインに所属する機能ブロックが、既に割り当てられたジョブの実行を停止することができないバスマスタの機能を有する場合には、
前記電力管理部は、既に割り当てられたジョブの実行が終了するまで前記利用禁止処理の終了を待つことを特徴とする請求項２に記載の電力管理回路。
【請求項６】
前記ドメインに所属する機能ブロックがバススレーブの機能を有する場合には、
前記電力管理部は、前記利用禁止処理として、前記資源管理部を用いて、前記機能ブロックの他の機能ブロックによる新たな利用を禁止することを特徴とする請求項１〜５の何れか１項に記載の電力管理回路。
【請求項７】
前記電力管理部は、前記利用禁止処理として、前記機能ブロックの利用が既に許可された他の機能ブロックによる利用が終了するまで前記利用禁止処理の終了を待つことを特徴とする請求項６に記載の電力管理回路。
【請求項８】
前記電力制御内容がクロック信号の周波数変更又は電源電力の電圧変更となる場合には、
前記電力管理部は、前記利用禁止処理を行うとともに、前記ドメインに対する前記電力制御が終了した場合には、前記資源管理部を用いて、前記ドメインに所属する機能ブロックの利用を許可する利用許可処理を行うことを特徴とする請求項１〜７の何れか１項に記載の電力管理回路。
【請求項９】
集積回路内における少なくとも１つ以上の機能ブロックを所属させたドメインと当該ドメインに対する電力制御内容とを指定した電力制御要求を取得する工程と、
前記ドメインに所属する機能ブロックの種別と前記電力制御内容とに応じて、前記ドメインに所属する機能ブロックの利用を禁止する利用禁止処理を行う工程と、
前記利用禁止処理の実行後、前記ドメイン毎に前記機能ブロックの電力制御を行う電力制御機構に対し前記電力制御要求を送信する工程と、を備えることを特徴とする電力管理方法。
【請求項１０】
コンピュータにより実行されるプログラムであって、
集積回路内における機能ブロックの利用管理を行う資源管理部、
及び、少なくとも１つ以上の前記機能ブロックを所属させたドメインと当該ドメインに対する電力制御内容とを指定した電力制御要求を、前記ドメイン毎に前記機能ブロックの電力制御を行う電力制御機構に対して送信する電力管理部、として前記コンピュータを機能させ、
前記電力管理部は、前記電力制御機構に対し前記電力制御要求を送信する前に、前記ドメインに所属する機能ブロックの種別と前記電力制御内容とに応じて、前記資源管理部を用いて、前記ドメインに所属する機能ブロックの利用を禁止する利用禁止処理を行うことを特徴とする電力管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェアにおける機能ブロックに供給される電力を制御する電力管理回路、電力管理方法及び電力管理プログラムに関する。
【背景技術】
【０００２】
近年、微細化技術の進歩により、プロセッサコアやメモリ、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）といった複数の機能ブロックを１チップ上に搭載する集積回路が登場している。このような集積回路では、回路規模の増大により消費電力が増大するという問題がある。
【０００３】
このような集積回路における消費電力の増大を抑える方法としては、利用されていない機能ブロックに供給される電力を制限する方法が挙げられる。この方法の一例として、メモリの利用範囲を管理し、利用されていないメモリブロックの電力を落とす技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１９６５４５号公報
【特許文献２】特開平９−２１２４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、機能ブロック毎に電力供給を制御するとなると、電源系統や電源の制御回路を機能ブロック毎に分けて設けるために、チップ面積が増大してしまう。そこで、チップ面積の増大を抑えるため、機能ブロック毎に電力制御するのではなく、複数の機能ブロックをまとめた「ドメイン」という単位毎に電力制御する方法が考えられる。
【０００６】
このようにドメイン単位で電力制御が行われる場合には、電力制御中のドメイン内の機能ブロックに対して他の機能ブロックからアクセスが行われないようにするための制御プログラムがアプリケーションに組み込まれる。この場合、アプリケーションでは制御対象のドメインに所属するすべての機能ブロックに対して他のブロックからのアクセスが行われないような制御を行う必要がある。しかし、この制御操作は、対象となる機能ブロックの種類及び電力制御操作の内容によって異なるため、ドメイン内に多くの機能ブロックが存在すると複雑になる。また、この制御操作は、ドメイン内の機能ブロックの構成により異なる。そのため、機能ブロックの構成が同じでもドメインの分け方が異なったり、将来的に新たに機能ブロックの追加もしくは変更を行ったりすると、アプリケーションに組み込んだ電力制御プログラムを大幅に変更する必要があり、アプリケーションの開発工数の増大や再利用性の低下といった問題が生じる。
【課題を解決するための手段】
【０００７】
開示の装置は、集積回路内における機能ブロックの利用管理を行う資源管理部と、電力制御要求を、ドメイン毎に機能ブロックの電力制御を行う電力制御機構に対して送信する電力管理部とを有する。電力制御要求では、ドメインと当該ドメインに対する電力制御内容とが指定されている。電力管理部は、電力制御機構に対し電力制御要求を送信する前に、ドメインに所属する機能ブロックの種別と電力制御内容とに応じて、資源管理部を用いて、ドメインに所属する機能ブロックの利用を禁止する利用禁止処理を行う。
【発明の効果】
【０００８】
開示の装置によれば、利用禁止処理を行うための制御プログラムを外部のアプリケーションに組み込まずに済ますことが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る集積回路の構成の一例を示すブロック図である。
【図２】ドメイン、ドメインに対する可能な操作、及びドメインに所属する機能ブロックの関係をまとめて示す図である。
【図３】電力管理回路における電力管理部の処理を示す模式図である。
【図４】電力制御内容の制御種別と制御処理との関係を示す図である。
【図５】電力制御の実行の前後における制御処理を示すフローチャートである。
【図６】バスアクセス制御種別と電力制御内容とに対応した状態保存操作種別を示す図である。
【図７】状態保存操作種別についての特性を示す図である。
【図８】機能ブロックのバスアクセス制御種別と状態保存操作種別とに対応した動作タイプを示す図である。
【図９】動作タイプが動作ＭＡ−Ｔ１に決定された場合の制御方法を示す図である。
【図１０】動作タイプが動作ＭＡ−Ｔ２に決定された場合の制御方法を示す図である。
【図１１】動作タイプが動作ＭＢに決定された場合の制御方法を示す図である。
【図１２】動作タイプが動作Ｓ−Ｔ１に決定された場合の制御方法を示す図である。
【図１３】動作タイプが動作Ｓ−Ｔ３に決定された場合の制御方法を示す図である。
【図１４】動作タイプが動作ＭＡＳ−Ｔ１に決定された場合の制御方法を示す図である。
【図１５】動作タイプが動作ＭＡＳ−Ｔ２に決定された場合の制御方法を示す図である。
【図１６】動作タイプが動作ＭＢＳ−Ｔ１に決定された場合の制御方法を示す図である。
【図１７】動作タイプが動作ＭＢＳ−Ｔ３に決定された場合の制御方法を示す図である。
【図１８】利用許可処理及び利用禁止処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下では、実施形態の一例について図面を参照しつつ説明する。
【００１１】
［装置構成］
まず、実施形態に係る集積回路の構成について図１を参照して説明する。
図１は、実施形態に係る集積回路の構成の一例を示すブロック図である。
【００１２】
図１に示す集積回路１００は、複数の機能ブロックがバス４１、４２、４３に接続された構成を有している。バス４１、４２、４３は互いに接続されている。集積回路１００は、機能ブロックとして、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）１０、１１と、メモリ２１、２２、２３とを有している。また、集積回路１００は、機能ブロックとして、Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ（ＤＭＡＣ）３１と、アクセラレータ（ＡＣＣ）３２と、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ（ＤＳＰ）３３とを有している。
【００１３】
バス４２には、ＣＰＵ１０とメモリ２１とが接続されている。バス４３には、ＣＰＵ１１とメモリ２２とＤＳＰ３３とが接続されている。バス４２、４３はバス４１と接続されている。バス４１には、ＤＭＡＣ３１とメモリ２３とＡＣＣ３２とが接続されている。
【００１４】
集積回路１００の機能ブロックにはそれぞれ、クロックジェネレータよりクロック信号が供給され、電源回路より電源電力が供給される。図１において、一点鎖線はクロック線を示し、破線は電力線を示している。また、電力制御機構５１より延びている細実線は制御線を示している。ここで、実施形態に係る集積回路１００では、ドメイン単位で電力制御が行われる。各ドメインには、少なくとも１つ以上の機能ブロックが所属する。図１に示す例では、ドメイン０、ドメイン１、及びドメイン２の３つのドメインが集積回路１００において定義され、電力制御機構５１は、各ドメイン毎にまとめて機能ブロックの電力制御を行う。
【００１５】
ドメイン０には、ＣＰＵ１０、１１、メモリ２１、２２、ＤＭＡＣ３１、ＡＣＣ３２、及びＤＳＰ３３が所属している。また、ドメイン１には、ＣＰＵ１１、メモリ２２、及びＤＳＰ３３が所属している。ドメイン２には、ＡＣＣ３２が所属している。
【００１６】
ドメイン０に所属するすべての機能ブロックには、クロックジェネレータ５４ａよりクロック信号が供給され、電源回路５５ａより電源電力が供給される。また、ドメイン０に所属していないメモリ２３には、クロックジェネレータ５４ｂよりクロック信号が供給され、電源回路５５ｂより電源電力が供給される。クロックジェネレータ５４ａ及び電源回路５５ａは、電力制御機構５１により制御される。
【００１７】
ドメイン１に所属するすべての機能ブロックに通じるクロック線及び電力線にはスイッチ５２が設けられている。ドメイン２に所属するすべての機能ブロックに通じるクロック線及び電力線にはスイッチ５３が設けられている。スイッチ５２は、ドメイン１に所属するすべての機能ブロックに対し、クロック信号又は電源電力の供給を停止又は再開するための装置である。スイッチ５３は、ドメイン２に所属するすべての機能ブロックに対し、クロック信号又は電源電力の供給を停止又は再開するための装置である。スイッチ５２、５３のそれぞれは、電力制御機構５１により制御される。
【００１８】
図２は、ドメイン、ドメインに対する可能な操作、及びドメインに所属する機能ブロックの関係をまとめて示した図である。
【００１９】
前述したように、ドメイン０には、ＣＰＵ１０、１１、メモリ２１、２２、ＤＭＡＣ３１、ＡＣＣ３２、及びＤＳＰ３３が所属している。また、ドメイン０に所属しているこれらの機能ブロックには、クロックジェネレータ５４ａよりクロック信号が供給され、電源回路５５ａより電源電力が供給される。クロックジェネレータ５４ａ及び電源回路５５ａは、電力制御機構５１により制御される。電力制御機構５１は、クロックジェネレータ５４ａを制御することにより、ドメイン０に所属する全機能ブロックに供給されるクロック信号の周波数を変更することができる。また、電力制御機構５１は、電源回路５５ａを制御することにより、ドメイン０に所属する全機能ブロックに供給される電源電力の電圧を変更することができる。従って、ドメイン０に対する可能な操作としては、クロック信号の周波数変更又は電源電力の電圧変更（以下、「クロック信号又は電源電圧の変更」と称する）が挙げられる。
【００２０】
ドメイン１には、ＣＰＵ１１、メモリ２２、及びＤＳＰ３３が所属しており、ドメイン２にはＡＣＣ３２が所属している。ドメイン１に所属するすべての機能ブロックに通じるクロック線及び電力線には、スイッチ５２が設けられており、ドメイン２に所属するすべての機能ブロックに通じるクロック線及び電力線には、スイッチ５３が設けられている。先にも述べたように、スイッチ５２、５３のそれぞれは、電力制御機構５１により制御される。電力制御機構５１は、スイッチ５２を制御することにより、ドメイン１に所属する全機能ブロックに対しまとめて、クロック信号又は電源電力の供給を停止又は再開することができる。また、電力制御機構５１は、スイッチ５３を制御することにより、ドメイン２に所属する全機能ブロックに対しまとめて、クロック信号又は電源電力の供給を停止又は再開することができる。従って、図２に示すように、ドメイン１、２のそれぞれに対する可能な操作としては、クロック信号又は電源電力の供給停止（又は再開）が挙げられる。
【００２１】
電力制御機構５１は、電力制御内容と当該電力制御の対象となるドメイン（電力制御対象ドメイン）とを指定する電力制御要求をＣＰＵ１０から受信する。電力制御機構５１は、ＣＰＵ１０より受信した電力制御要求に基づいて、電力制御対象ドメインに所属する機能ブロックに対して前述した電力制御を行う。
【００２２】
実施形態に係る集積回路１００では、ＣＰＵ１０は、電力制御機構５１に対し電力制御要求を送信する前に、電力制御対象ドメインに所属する機能ブロックの利用を禁止する利用禁止処理を行い、当該機能ブロックを電力制御可能な状態にする。従って、ＣＰＵ１０は、電力管理回路として機能する。以下では、ＣＰＵ１０の機能について具体的に説明する。
【００２３】
ＣＰＵ１０では、アプリケーション６１、電力管理部６２、資源管理部６４、及び通信部６３が動作している。アプリケーション６１は、例えば、ＣＰＵ１０上において、アプリケーションソフトウェアなどのプログラムが実行されることにより動作するプロセスである。電力管理部６２、資源管理部６４、及び通信部６３は、例えば、ＣＰＵ１０上において、プログラムが実行されることにより動作するプロセスである。
【００２４】
図３は、ＣＰＵ１０における電力管理部６２の処理を示す模式図である。
アプリケーション６１は、必要に応じて、電力制御内容と電力制御対象ドメインとを指定する電力制御要求を電力管理部６２に送信する。
【００２５】
電力管理部６２は、電力制御対象ドメインに所属する機能ブロックの状態を管理する。電力管理部６２は、電力制御対象ドメインに所属する機能ブロックについてのジョブの割り当ての可否に関する要求や他の機能ブロックによる利用の可否に関する要求を資源管理部６４に送信する。また、電力管理部６２は、電力制御対象ドメインに所属する機能ブロックについて、他の機能ブロックによる利用状況を資源管理部６４から取得する。さらに、電力管理部６２は、電力制御対象ドメインに所属する機能ブロックに対して、既に割り当てられたジョブの実行に関する要求や機能ブロックの状態保存に関する要求を、通信部６３を介して送信する。
【００２６】
通信部６３は、電力管理部６２が機能ブロックへ要求を送信するためのインターフェースである。資源管理部６４は、集積回路１００における機能ブロックの利用管理を行う。例えば、資源管理部６４は、集積回路１００におけるすべての機能ブロックの利用状況及び利用の可否を管理する。集積回路１００において、機能ブロックはそれぞれ、他の機能ブロックを利用しようとする場合には、資源管理部６４に問い合わせを行い、許可を得たときにのみ、当該他の機能ブロックにアクセスすることができる。また、資源管理部６４は、ジョブを割り当てることが可能なＣＰＵなどの機能ブロックに対してジョブを割り当てる。
【００２７】
なお、電力管理部６２は、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）が通常有している資源管理機構、通信機構のそれぞれを、資源管理部６４、通信部６３として用いることができる。さらには、電力管理部６２、資源管理部６４、通信部６３についてはそれぞれ、ソフトウェアのプロセスとして動作するのには限られず、代わりに、ハードウェアの回路として動作するとしても良いのは言うまでもない。
【００２８】
電力管理部６２は、電力制御内容と電力制御対象ドメインとを指定した電力制御要求をアプリケーション６１より受信すると、電力制御内容に応じて、行うべき制御処理を決定する。例えば、電力制御内容がクロック信号又は電源電圧の変更や、クロック信号又は電源電力の供給停止である場合には、電力管理部６２は、電力制御要求の送信前に、電力制御対象ドメインに所属する機能ブロックの利用を禁止する利用禁止処理を行う。
【００２９】
利用禁止処理での制御は、電力制御対象ドメインに所属する機能ブロックの種別と電力制御内容とに基づいて決定される。電力管理部６２は、電力制御対象ドメインに所属する機能ブロックの種別と電力制御内容とを基に当該機能ブロックについての動作タイプを決定し、決定された動作タイプに従って当該機能ブロックの利用を禁止する利用禁止処理を行う。
【００３０】
以上に述べたことから分かるように、本実施形態に係る集積回路では、電力制御対象ドメインに所属する機能ブロックについての利用禁止処理は電力管理部６２によって行われるので、アプリケーション６１が当該利用禁止処理を自ら行わなくて済む。言い換えると、アプリケーション６１は、電力制御内容と電力制御対象ドメインとを指定した電力制御要求を電力管理部６２に送信しさえすれば、電力制御内容と電力制御対象ドメインとに応じた利用禁止処理が電力管理部６２により自動的に行われる。このようにすることで、本実施形態では、利用禁止処理を行うための制御プログラムをアプリケーション６１に組み込まずに済ますことが可能となる。
【００３１】
［制御処理］
次に、電力管理部６２による制御処理について具体的に説明する。
図４は、電力制御内容の制御種別と制御処理との関係を示す図である。
電力管理部６２は、アプリケーション６１より電力制御要求を受信すると、電力制御内容をパターン１、パターン２−１、パターン２−２のいずれかの制御種別に分類して、それぞれの制御種別に応じた制御処理を行う。パターン１に分類される電力制御内容としては、例えば、クロック信号又は電源電圧の変更が挙げられる。パターン２−１に分類される電力制御内容としては、例えば、クロック信号又は電源電力の供給停止が挙げられる。パターン２−２に分類される電力制御内容としては、例えば、クロック信号又は電源電力の供給再開が挙げられる。
【００３２】
まず、電力制御内容がパターン１に分類された場合（電力制御内容がクロック信号又は電源電圧の変更である場合）の電力管理部６２による制御処理について説明する。
【００３３】
電力管理部６２は、パターン１に分類される電力制御内容を含む電力制御要求をアプリケーション６１より受信すると、電力制御対象ドメインに所属する機能ブロックの利用を禁止する利用禁止処理を行う。パターン１に係る利用禁止処理では、電力管理部６２は、電力制御対象ドメインに所属する機能ブロックの種別と電力制御内容とを基に当該機能ブロックについての動作タイプを決定し、決定された動作タイプに従って当該機能ブロックの利用を禁止する利用禁止処理を行う。例えば、電力管理部６２は、資源管理部６４を用いて、電力制御対象ドメインに所属する機能ブロックについて、新たなジョブを割り当てることを禁止したり、他の機能ブロックによる新たな利用を禁止したりする。
【００３４】
電力管理部６２は、電力制御対象ドメインに所属する機能ブロックについての利用禁止処理を行ってから、電力制御要求を電力制御機構５１に送信する。電力制御機構５１は、電力管理部６２より送信された電力制御要求を基に、電力制御対象ドメインに所属する機能ブロックの電力制御を行う。電力制御機構５１は、電力制御対象ドメインに所属する機能ブロックの電力制御を行った後、電力制御を終了した旨を示す電力制御終了通知を電力管理部６２に送信する。これにより、電力管理部６２は、送信した電力制御要求に応じた電力制御機構５１による電力制御が終了したことを知ることができる。
【００３５】
ここで、パターン１に分類される電力制御内容としては、前述したように、クロック信号又は電源電圧の変更である場合が挙げられる。従って、電力制御対象ドメインに所属する機能ブロックは、電力制御機構５１による電力制御が行われた後で、他の機能ブロックや資源管理部６４により利用される可能性がある。そこで、電力管理部６２は、電力制御機構５１より電力制御終了通知を受信した後、電力制御対象ドメインに所属する機能ブロックの利用を許可する利用許可処理を行う。パターン１に係る利用許可処理では、電力管理部６２は、利用禁止処理の場合と同様にして電力制御対象ドメインに所属する機能ブロックについての動作タイプを決定し、決定された動作タイプに従って当該機能ブロックの利用を許可する利用許可処理を行う。例えば、電力管理部６２は、資源管理部６４を用いて、電力制御対象ドメインに所属する機能ブロックについて、新たなジョブを割り当てることを許可したり、他の機能ブロックによる新たな利用を許可したりする。これにより、電力制御機構５１による電力制御が行われた後に、電力制御対象ドメインに所属する機能ブロックを他の機能ブロックや資源管理部６４が利用することが可能となる。
【００３６】
以上に述べたことから分かるように、電力制御内容がクロック信号又は電源電圧の変更である場合には、電力制御機構５１による電力制御が行われた後、アプリケーション６１からの要求がなくとも、電力管理部６２による利用許可処理が行われることとなる。つまり、アプリケーション６１は、電力制御機構５１による電力制御の終了を認識して電力管理部６２に対して利用許可処理を行う要求を新たに送信しなくて済む。そのため、アプリケーション６１による制御を簡素化することができる。
【００３７】
次に、電力制御内容がパターン２−１に分類された場合（電力制御内容がクロック信号又は電源電力の供給停止である場合）の電力管理部６２による制御処理について説明する。
【００３８】
電力管理部６２は、パターン２−１に分類される電力制御内容を含む電力制御要求をアプリケーション６１より受信すると、パターン１に係る制御処理と同様にして、電力制御対象ドメインに所属する機能ブロックについての利用禁止処理を行う。電力管理部６２は、電力制御対象ドメインに所属する機能ブロックについての利用禁止処理を行ってから、電力制御要求を電力制御機構５１に送信する。
【００３９】
電力制御機構５１は、電力管理部６２より送信された電力制御要求を基に、電力制御対象ドメインに所属する機能ブロックの電力制御を行う。なお、パターン２−１に分類される電力制御内容としては、前述したように、クロック信号又は電源電力の供給停止が挙げられる。そのため、電力制御対象ドメインに所属する機能ブロックは、電力制御機構５１による電力制御が行われた後、クロック信号又は電源電力の供給が再開されない限り、他の機能ブロックにより利用される可能性はない。従って、パターン１に係る制御処理とは異なり、パターン２−１に係る制御処理では、電力制御機構５１による電力制御が行われた後、電力管理部６２は、電力制御対象ドメインに所属する機能ブロックについての利用許可処理を行わない。
【００４０】
次に、電力制御内容がパターン２−２に分類された場合（電力制御内容がクロック信号又は電源電力の供給再開である場合）の電力管理部６２による制御処理について説明する。パターン２−２に分類される電力制御は、電力制御対象ドメインに所属する機能ブロックに対して、パターン２−１に分類された電力制御が実施された後に行われる。従って、電力管理部６２が、パターン２−２に分類される電力制御内容を含む電力制御要求を受信した段階では、電力制御対象ドメインに所属する機能ブロックは、クロック信号又は電源電力の供給が停止した状態となっている。
【００４１】
電力管理部６２は、パターン２−２に分類される電力制御内容を含む電力制御要求をアプリケーション６１より受信すると、当該電力制御要求を電力制御機構５１に送信する。電力制御機構５１は、電力管理部６２より送信された電力制御要求を基に、電力制御対象ドメインに所属する機能ブロックの電力制御を行う。即ち、電力制御機構５１は、電力制御対象ドメインに所属する機能ブロックに対し、クロック信号又は電源電力の供給を再開する。電力制御機構５１は、電力制御対象ドメインに所属する機能ブロックの電力制御を行った後、電力制御を終了した旨を示す電力制御終了通知を電力管理部６２に送信する。
【００４２】
電力管理部６２は、電力制御機構５１より電力制御終了通知を受信した後、パターン１に係る制御処理と同様にして、電力制御対象ドメインに所属する機能ブロックについての利用許可処理を行う。
【００４３】
前述の制御処理について、図５のフローチャートを用いて説明する。図５は、電力制御対象ドメインに対する電力制御の実行の前後における制御処理の流れを示すフローチャートである。
【００４４】
まず、電力管理部６２は、ステップＳ１０１において、アプリケーション６１より電力制御要求を受信すると、続くステップＳ１０２において、電力制御内容を基に制御種別を判定する。電力管理部６２は、例えば電力制御内容がクロック信号又は電源電圧の変更である場合には、制御種別をパターン１に分類する。また、電力管理部６２は、例えば電力制御内容がクロック信号又は電源電力の供給停止である場合には、制御種別をパターン２−１に分類し、例えば電力制御内容がクロック信号又は電源電力の供給再開である場合には、制御種別をパターン２−２に分類する。
【００４５】
ステップＳ１０２において、電力管理部６２は、制御種別がパターン１に分類されると判定した場合にはステップＳ１０３へ進む。ステップＳ１０３において、電力管理部６２は、電力制御対象ドメインに所属するすべての機能ブロックについての利用禁止処理を行う。その後、ステップＳ１０４において、電力管理部６２は、電力制御要求を電力制御機構５１に送信する。電力制御機構５１は、電力管理部６２より電力制御要求を受信すると、電力制御対象ドメインに所属するすべての機能ブロックの電力制御を行い、当該電力制御を行った後、電力制御終了通知を電力管理部６２に送信する。続くステップＳ１０５において、電力管理部６２は、電力制御終了通知を受信すると、電力制御対象ドメインに所属するすべての機能ブロックについての利用許可処理を行う。この後、電力管理部６２は、本制御処理を終了する。このようにすることで、アプリケーション６１は、電力制御機構５１による電力制御の終了を認識して電力管理部６２に対して利用許可処理を行う要求を新たに送信しなくて済み、アプリケーション６１による制御を簡素化することができる。
【００４６】
ステップＳ１０２において、電力管理部６２は、制御種別がパターン２−１に分類されると判定した場合には、ステップＳ１０６へ進む。ステップＳ１０６において、電力管理部６２は、電力制御対象ドメインに所属するすべての機能ブロックについての利用禁止処理を行う。その後、ステップＳ１０７において、電力管理部６２は、電力制御要求を電力制御機構５１に送信する。電力制御機構５１は、電力管理部６２より電力制御要求を受信すると、電力制御対象ドメインに所属するすべての機能ブロックの電力制御を行う。この後、電力管理部６２は、本制御処理を終了する。
【００４７】
ステップＳ１０２において、電力管理部６２は、制御種別がパターン２−２に分類されると判定した場合には、ステップＳ１０８へ進む。ステップＳ１０８において、電力管理部６２は、電力制御要求を電力制御機構５１に送信する。電力制御機構５１は、電力管理部６２より電力制御要求を受信すると、電力制御対象ドメインに所属するすべての機能ブロックの電力制御を行い、当該電力制御を行った後、電力制御終了通知を電力管理部６２に送信する。続くステップＳ１０９において、電力管理部６２は、電力制御終了通知を受信すると、電力制御対象ドメインに所属するすべての機能ブロックについての利用許可処理を行う。この後、電力管理部６２は、本制御処理を終了する。
【００４８】
［利用禁止処理及び利用許可処理］
次に、電力制御対象ドメインに所属する各機能ブロックについての利用禁止処理及び利用許可処理について具体的に説明する。
【００４９】
ここで、あるドメインが電力制御可能であるためには、そのドメインに属するすべての機能ブロックが外部に対してバスのアクセスを行うことも、外部からのバスアクセスを受けることもなく、かつ、電力制御操作後も正しく操作前の状態を保持し続けられる必要がある。従って、制御対象のドメイン内のすべての機能ブロックに対して前記の状態になるように操作を行うことが利用禁止処理であり、これを解除する操作を行うことが利用許可処理となる。
【００５０】
本実施形態では、制御対象のドメイン内の機能ブロックに対してどのようなバスアクセスの制御が可能であるかと、制御対象のドメイン内の機能ブロックに対して要求されている電力制御操作を行った場合に、どのような操作を行えば状態を保持できるかという２つの要素の組み合わせで、制御対象のドメイン内の機能ブロックに対して行う操作を決定する。
【００５１】
このため、電力管理部６２は、利用禁止処理及び利用許可処理のどちらの場合においても、電力制御対象ドメインに所属するすべての機能ブロックについて、それぞれの機能ブロックの種別と電力制御内容とを基に動作タイプを決定する。電力管理部６２は、決定された動作タイプに応じて、資源管理部６４、場合によっては通信部６３も用いて、電力制御対象ドメインに所属するすべての機能ブロックに対して利用禁止処理又は利用許可処理を行う。
【００５２】
具体的には、電力管理部６２は、電力制御対象ドメインに所属する機能ブロックの種別として、当該機能ブロックのバスアクセス制御の種別を決定する。電力管理部６２は、バスアクセス制御種別と電力制御内容の制御種別とに基づいて、機能ブロックの状態を保存するか否かを示す操作種別である状態保存操作種別を求める。そして、電力管理部６２は、バスアクセス制御種別と状態保存操作種別とに基づいて、動作タイプを決定する。
【００５３】
まず、電力制御対象ドメインに所属する機能ブロックについての状態保存操作種別を求める方法について図６、図７を用いて説明する。図６は、機能ブロックのバスアクセス制御種別と電力制御内容とに対応した状態保存操作種別を示す図である。図７は、状態保存操作種別についての特性を示す図である。
【００５４】
電力管理部６２は、電力制御対象ドメインに所属する機能ブロックについて、バスアクセス制御の種別を判定し、判定したバスアクセス制御種別と電力制御内容とを基に、図６に示す関係を用いて状態保存操作種別を求める。
【００５５】
バスアクセス制御の種別を判定する方法について説明する。バスアクセス制御の種別としては、機能ブロックの動作の特徴から、バスマスタ１、バスマスタ２、バススレーブ、バスマスタ１＋バススレーブ、バスマスタ２＋バススレーブに分類できる。
【００５６】
バスマスタは、資源管理部６４よりジョブが割り当てられ、バス上において能動的にデータ転送を開始できる機能を有する機能ブロックである。従って、例えばＣＰＵやＤＳＰなどのプロセッサは、バスマスタの機能を有するので、バスアクセス制御の種別としてはバスマスタに分類される。一方、バススレーブは、バス上において受動的にデータを転送する機能を有する機能ブロックである。従って、例えばメモリは、バススレーブの機能を有するので、バスアクセス制御の種別としてはバススレーブに分類される。
【００５７】
ここで、バスマスタ１は、外部からの制御要求を受け付ける機能を有するバスマスタである。バスマスタ１は、例えば、資源管理部６４より既に割り当てられたジョブの実行を、電力管理部６２からの要求により中止する機能を有する。つまり、バスマスタ１は、資源管理部６４よりジョブが割り当てられた後であっても、ジョブ実行停止要求を電力管理部６２より受信するとジョブの実行を停止する。また、バスマスタ１は、例えば、外部からの要求により状態を保存する機能を有する。つまり、バスマスタ１は、例えば、電力管理部６２より状態保存要求を受信すると、レジスタなどに記憶されたデータを不揮発性のメモリなどに保存する。バスマスタ１の例としてはＣＰＵが挙げられる。
【００５８】
一方、バスマスタ２は、外部からの制御要求を受け付ける機能を有さないバスマスタである。例えば、バスマスタ２は、一旦、資源管理部６４よりジョブが割り当てられると、電力管理部６２からの要求によってはジョブの実行を止めることができない。バスマスタ２の例としてはＤＳＰが挙げられる。
【００５９】
また、バスマスタ及びバススレーブの両方の機能をもつものとして、ＤＭＡＣやＡＣＣが挙げられる。なぜなら、例えば、ＤＭＡＣは、メモリなどのバススレーブにデータ転送を行うジョブが割り当てられる点ではバスマスタとしての機能を有し、１つ以上のＣＰＵから命令やアドレスを受信する点ではバススレーブとしての機能を有するからである。バスマスタ１とバススレーブとの両方の機能をもつ機能ブロックの例としてはＡＣＣが挙げられる。バスマスタ２とバススレーブとの両方の機能をもつ機能ブロックの例としてはＤＭＡＣが挙げられる。
【００６０】
なお、前述の説明では、バスマスタ１の例としてＣＰＵを挙げ、バスマスタ２の例としてＤＳＰを挙げたが、これに限られるものではない。バスマスタ１とバスマスタ２との違いは、外部からの制御要求を受け付ける機能を有するか否かに依る。従って、例えば、ＣＰＵであっても、外部からの制御要求を受け付ける機能を有しないのであれば、バスマスタ２に分類される。また、ＤＳＰであっても、外部からの制御要求を受け付ける機能を有するのであれば、バスマスタ１に分類される。このことは、バスマスタ１、バスマスタ２のそれぞれの機能を有する機能ブロックとして例示したＡＣＣ、ＤＭＡＣについても同様に言える。
【００６１】
状態保存操作種別については、機能ブロックの特徴と電力制御内容の種別から図７に示すように３つのタイプに分類できる。
タイプ１とは、何も操作することなく状態を保持し続けることが可能であることを示している。電力制御内容が、クロック信号又は電源電圧の変更や、クロック信号の供給停止（又は再開）である場合には、機能ブロックに対して電源電力は供給される。従って、何ら特別な操作を行うことなく、機能ブロックの状態は保持される。即ち、機能ブロックのレジスタなどに記憶されたデータは保持される。このような理由から、電力制御内容が、クロック信号又は電源電圧の変更や、クロック信号の供給停止（又は再開）である場合には、バスマスタ１、バスマスタ２、バススレーブの状態保存操作種別はタイプ１であると求められる。
【００６２】
電力制御内容が電源電力の供給停止（又は再開）である場合には、バスマスタ１の状態保存操作種別はタイプ２であると求められる。
タイプ２とは、電力管理部６２が通信部６３を介して機能ブロックに対し指示を行うことにより、当該機能ブロックの状態の保存や復元が可能であることを示している。電力制御内容が電源電力の供給停止である場合には、機能ブロックに対して電源電力が供給されなくなる。しかしながら、機能ブロックがバスマスタ１となっている場合には、電力管理部６２は、当該機能ブロックのレジスタに記憶されているデータを不揮発性のメモリなどに保存する状態保存処理を行うことができ、当該機能ブロックの状態を保存することができる。また、機能ブロックに対して電源電力の供給が再開された場合には、電力管理部６２は、不揮発性のメモリなどに保存されたデータを機能ブロックのレジスタに書き込む状態復元処理を行うことで、当該機能ブロックの状態を復元することができる。このような理由から、電力制御内容が電源電力の供給停止（又は再開）である場合には、バスマスタ１の状態保存操作種別はタイプ２であると求められる。
【００６３】
電力制御内容が電源電力の供給停止（又は再開）である場合には、バスマスタ２、バススレーブの状態保存操作種別はタイプ３であると求められる。
タイプ３とは、資源管理部６４において、機能ブロックについて、新たなジョブの割り当て禁止、又は、他の機能ブロックによる新たな利用の禁止を行うことにより、状態の保存のための特別な操作が不要になることを示している。例えば、バススレーブについて、資源管理部６４において他の機能ブロックによる新たな利用が禁止され、かつ、当該バススレーブを利用中の機能ブロックによるアクセスが終了すれば、当該バススレーブの記憶しているデータは保持しなくても済むデータである。また、バスマスタ２について、資源管理部６４において新たなジョブの割り当てが禁止され、既に割り当てられたジョブの実行が終了した状態になれば、電源電力の供給が停止されてもかまわない状態となる。このような理由から、電力制御内容が電源電力の供給停止（又は再開）である場合には、バスマスタ２、バススレーブの状態保存操作種別はタイプ３であると求められる。
【００６４】
電力管理部６２は、機能ブロック種別及び電力制御内容からバスアクセス制御種別及び状態保存操作種別を求めるための図６に示したものに相当する情報を、集積回路の設計段階で与えられている。電力管理部６２は、その情報に基づいて制御対象のドメイン内の機能ブロックに対して利用禁止処理もしくは利用許可処理を行うための動作タイプを決定する。
【００６５】
図８は、機能ブロックのバスアクセス制御種別と状態保存操作種別とに対応した動作タイプを示す図である。
電力管理部６２は、バスアクセス制御種別と、前述のように求められた状態保存操作種別とを基に、図８に示す関係を用いて、電力制御対象ドメインに所属する機能ブロックの動作タイプを決定する。電力管理部６２は、例えば、バスアクセス制御種別がバスマスタ１で、状態保存操作種別がタイプ１となる場合には、動作タイプを動作ＭＡ−Ｔ１と決定する。電力管理部６２は、決定された動作タイプに従って利用禁止処理又は利用許可処理を行う。
【００６６】
以下では、各動作タイプにおける利用禁止処理又は利用許可処理の制御方法について、図９〜図１８を用いて具体的に説明する。
【００６７】
図９は、機能ブロックの動作タイプが動作ＭＡ−Ｔ１に決定された場合の制御方法を示すシーケンス図である。図９（ａ）は、動作ＭＡ−Ｔ１における利用禁止処理の制御方法を示すシーケンス図であり、図９（ｂ）は、動作ＭＡ−Ｔ１における利用許可処理の制御方法を示すシーケンス図である。図９（ａ）、（ｂ）において、機能ブロック７１は、電力制御対象ドメインに所属する本制御対象の機能ブロックを示している（以下、図１０〜図１７において同じ）。
【００６８】
機能ブロック７１の動作タイプが動作ＭＡ−Ｔ１に決定される場合とは、機能ブロック７１のバスアクセス制御種別がバスマスタ１であり、かつ、状態保存操作種別がタイプ１となるときである。即ち、電力制御内容が、クロック信号又は電源電圧の変更や、クロック信号の供給停止（又は供給再開）となるときである。
【００６９】
動作ＭＡ−Ｔ１における利用禁止処理の制御方法について、図９（ａ）を用いて説明する。
電力管理部６２は、利用禁止処理を行う場合、機能ブロック７１に対して新たなジョブを割り当てることを禁止する割当禁止要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２より当該割当禁止要求を受信すると、機能ブロック７１に対して新たなジョブを割り当てない設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。
【００７０】
ここで、機能ブロック７１のバスアクセス制御種別はバスマスタ１であるので、機能ブロック７１は、資源管理部６４により既に割り当てられているジョブの実行を外部からの制御要求により停止することが可能である。そこで、電力管理部６２は、資源管理部６４より設定変更終了通知を受けると、通信部６３を介して機能ブロック７１に対し、ジョブの実行の停止を要求するジョブ実行停止要求を送信する。機能ブロック７１は、電力管理部６２よりジョブ実行停止要求を受信すると、資源管理部６４により既に割り当てられているジョブの実行を停止するジョブ実行停止処理を行う。このように、機能ブロック７１がジョブの実行を停止することにより、機能ブロック７１から他の機能ブロックへのアクセスは遮断される。機能ブロック７１は、ジョブ実行停止処理が終了すると、通信部６３を介して電力管理部６２に対し、処理終了通知を送信する。これにより、動作ＭＡ−Ｔ１における利用禁止処理は完了する。
【００７１】
次に、動作ＭＡ−Ｔ１における利用許可処理の制御方法について、図９（ｂ）を用いて説明する。
電力管理部６２は、利用許可処理を行う場合、通信部６３を介して機能ブロック７１に対し、ジョブの実行の停止を解除するジョブ実行停止解除要求を送信する。機能ブロック７１は、電力管理部６２よりジョブ実行停止解除要求を受信すると、資源管理部６４により割り当てられるジョブの実行を可能にするジョブ実行停止解除処理を行う。これにより、機能ブロック７１は、資源管理部６４により割り当てられるジョブを実行することが可能となり、当該ジョブの実行により他の機能ブロックへアクセスを行うこととなる。機能ブロック７１は、ジョブ実行停止解除処理が終了すると、通信部６３を介して電力管理部６２に対し、処理終了通知を送信する。
【００７２】
電力管理部６２は、機能ブロック７１より処理終了通知を受信すると、機能ブロック７１に対して新たなジョブを割り当てることを許可する割当許可要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２より当該割当許可要求を受信すると、機能ブロック７１に対して新たなジョブを割り当てることを可能にする設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。これにより、動作ＭＡ−Ｔ１における利用許可処理は完了する。
【００７３】
図１０は、機能ブロックの動作タイプが動作ＭＡ−Ｔ２に決定された場合の制御方法を示すシーケンス図である。図１０（ａ）は、動作ＭＡ−Ｔ２における利用禁止処理の制御方法を示すシーケンス図であり、図１０（ｂ）は、動作ＭＡ−Ｔ２における利用許可処理の制御方法を示すシーケンス図である。
【００７４】
機能ブロック７１の動作タイプが動作ＭＡ−Ｔ２に決定される場合とは、機能ブロック７１のバスアクセス制御種別がバスマスタ１であり、かつ、状態保存操作種別がタイプ２となるときである。即ち、電力制御内容が、電源電力の供給停止（又は供給再開）となるときである。このときには、機能ブロック７１の状態の保存（又は復元）のための操作が行われる。
【００７５】
動作ＭＡ−Ｔ２における利用禁止処理の制御方法について、図１０（ａ）を用いて説明する。
電力管理部６２は、利用禁止処理を行う場合、機能ブロック７１に対して新たなジョブを割り当てることを禁止する割当禁止要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２より当該割当禁止要求を受信すると、機能ブロック７１に対して新たなジョブを割り当てない設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。
【００７６】
電力管理部６２は、資源管理部６４より設定変更終了通知を受信すると、通信部６３を介して機能ブロック７１に対し、機能ブロック７１の状態を保存する状態保存要求を送信する。機能ブロック７１は、電力管理部６２より状態保存要求を受信すると、機能ブロック７１のレジスタなどに記憶されているデータを不揮発性のメモリなどに保存する状態保存処理を行う。これにより、機能ブロック７１の状態が保存され、後に述べる動作ＭＡ−Ｔ２における利用許可処理において、機能ブロック７１の状態を復元することが可能となる。機能ブロック７１は、状態保存処理が終了すると、通信部６３を介して電力管理部６２に対し、処理終了通知を送信する。
【００７７】
電力管理部６２は、状態保存要求に対する応答としての処理終了通知を機能ブロック７１より受けると、通信部６３を介して機能ブロック７１に対し、ジョブの実行の停止を要求するジョブ実行停止要求を送信する。機能ブロック７１は、電力管理部６２よりジョブ実行停止要求を受信すると、資源管理部６４により既に割り当てられているジョブの実行を停止するジョブ実行停止処理を行う。これにより、機能ブロック７１から他の機能ブロックへのアクセスは遮断される。機能ブロック７１は、ジョブ実行停止処理が終了すると、通信部６３を介して電力管理部６２に対し、処理終了通知を送信する。これにより、動作ＭＡ−Ｔ２における利用禁止処理は完了する。
【００７８】
次に、動作ＭＡ−Ｔ２における利用許可処理の制御方法について、図１０（ｂ）を用いて説明する。
電力管理部６２は、利用許可処理を行う場合、通信部６３を介して機能ブロック７１に対し、ジョブの実行の停止を解除するジョブ実行停止解除要求を送信する。機能ブロック７１は、電力管理部６２よりジョブ実行停止解除要求を受信すると、資源管理部６４により割り当てられるジョブの実行を可能にするジョブ実行停止解除処理を行う。これにより、機能ブロック７１は、資源管理部６４により割り当てられるジョブを実行することが可能となり、当該ジョブの実行により他の機能ブロックへアクセスを行うこととなる。機能ブロック７１は、ジョブ実行停止解除処理が終了すると、通信部６３を介して電力管理部６２に対し、処理終了通知を送信する。
【００７９】
電力管理部６２は、ジョブ実行停止解除要求に対する応答としての処理終了通知を機能ブロック７１より受信すると、通信部６３を介して機能ブロック７１に対し、機能ブロック７１の状態を復元する状態復元要求を送信する。機能ブロック７１は、電力管理部６２より状態復元要求を受信すると、不揮発性のメモリなどに保存されているデータを機能ブロック７１のレジスタなどに書き込む状態復元処理を行う。これにより、動作ＭＡ−Ｔ２における利用禁止処理が行われる前の状態に機能ブロック７１の状態が復元される。機能ブロック７１は、状態復元処理が終了すると、通信部６３を介して電力管理部６２に対し、処理終了通知を送信する。
【００８０】
電力管理部６２は、状態復元要求に対する応答としての処理終了通知を機能ブロック７１より受信すると、機能ブロック７１に対して新たなジョブを割り当てることを許可する割当許可要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２より当該割当許可要求を受信すると、機能ブロック７１に対して新たなジョブを割り当てることを可能にする設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。これにより、動作ＭＡ−Ｔ２における利用許可処理は完了する。
【００８１】
図１１は、機能ブロックの動作タイプが動作ＭＢに決定された場合の制御方法を示すシーケンス図である。図１１（ａ）は、動作ＭＢにおける利用禁止処理の制御方法を示すシーケンス図であり、図１１（ｂ）は、動作ＭＢにおける利用許可処理の制御方法を示すシーケンス図である。
【００８２】
機能ブロック７１の動作タイプが動作ＭＢに決定される場合とは、機能ブロック７１のバスアクセス制御種別がバスマスタ２であり、かつ、状態保存操作種別がタイプ１又はタイプ３となるときである。即ち、電力制御内容が、クロック信号又は電源電圧の変更や、クロック信号又は電源電力の供給停止（又は供給再開）となるときである。
【００８３】
動作ＭＢにおける利用禁止処理の制御方法について、図１１（ａ）を用いて説明する。
電力管理部６２は、利用禁止処理を行う場合、機能ブロック７１に対して新たなジョブを割り当てることを禁止する割当禁止要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２より当該割当禁止要求を受信すると、機能ブロック７１に対して新たなジョブを割り当てない設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。
【００８４】
ここで、機能ブロック７１のバスアクセス制御種別はバスマスタ２であるので、機能ブロック７１は、資源管理部６４により既に割り当てられているジョブの実行を停止することはできず、他の機能ブロックへのアクセスを自身で遮断することができない。そこで、電力管理部６２は、資源管理部６４より設定変更終了通知を受信すると、機能ブロック７１に対して既に割り当てられているジョブの実行が終了するまで利用禁止処理の終了を待つ。具体的には、電力管理部６２は、機能ブロック７１による他の機能ブロックの利用状況を取得し、機能ブロック７１による他の機能ブロックの利用が終了したか否かを確認する。機能ブロック７１による他のブロックの利用が終了したことを電力管理部６２が確認したときに、動作ＭＢにおける利用禁止処理は終了する。このようにすることで、機能ブロック７１が他の機能ブロックへアクセスしている最中に、当該機能ブロック７１に対して電力制御が行われるのを防ぐことができる。
【００８５】
次に、動作ＭＢにおける利用許可処理の制御方法について、図１１（ｂ）を用いて説明する。
電力管理部６２は、利用許可処理を行う場合、機能ブロック７１に対して新たなジョブを割り当てることを許可する割当許可要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２より当該割当許可要求を受信すると、機能ブロック７１に対して新たなジョブを割り当てることを可能にする設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。これにより、動作ＭＢにおける利用許可処理は終了する。
【００８６】
図１２は、機能ブロックの動作タイプが動作Ｓ−Ｔ１に決定された場合の制御方法を示すシーケンス図である。図１２（ａ）は、動作Ｓ−Ｔ１における利用禁止処理の制御方法を示すシーケンス図であり、図１２（ｂ）は、動作Ｓ−Ｔ１における利用許可処理の制御方法を示すシーケンス図である。
【００８７】
機能ブロック７１の動作タイプが動作Ｓ−Ｔ１に決定される場合とは、機能ブロック７１のバスアクセス制御種別がバススレーブであり、かつ、状態保存操作種別がタイプ１となるときである。即ち、電力制御内容が、クロック信号又は電源電圧の変更や、クロック信号の供給停止（又は供給再開）となるときである。
【００８８】
動作Ｓ−Ｔ１における利用禁止処理の制御方法について、図１２（ａ）を用いて説明する。
電力管理部６２は、利用禁止処理を行う場合、他の機能ブロックによる機能ブロック７１の新たな利用を禁止する禁止要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２より当該禁止要求を受信すると、機能ブロック７１について他の機能ブロックによる新たな利用を禁止する設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。
【００８９】
ここで、機能ブロック７１のバスアクセス制御種別はバススレーブであるので、機能ブロック７１は、資源管理部６４により既に利用が許可された他の機能ブロックによるアクセスについては遮断することができない。従って、この場合、電力管理部６２は、資源管理部６４により既に利用が許可された他の機能ブロックによる機能ブロック７１の利用の終了を待つこととする。
【００９０】
電力管理部６２は、資源管理部６４より設定変更終了通知を受信すると、電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用が終了するまで利用禁止処理の終了を待つ。具体的には、電力管理部６２は、電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用状況を取得し、当該他の機能ブロックによる機能ブロック７１の利用が終了したか否かを確認する。電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用が終了したことを電力管理部６２が確認したときに、動作Ｓ−Ｔ１における利用禁止処理は終了する。このようにすることで、他の機能ブロックが機能ブロック７１にアクセスしている最中に、当該機能ブロック７１に対して電力制御が行われるのを防ぐことができる。
【００９１】
なお、ここで、電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用の終了確認を行い、電力制御対象ドメイン内の他の機能ブロックによる機能ブロック７１の利用の終了確認を行わない理由については次の通りである。即ち、電力制御対象ドメイン内のバスマスタ１やバスマスタ２が機能ブロック７１を利用している場合であっても、当該バスマスタ１やバスマスタ２についてもそれぞれ、動作ＭＡ−Ｔ１、ＭＢ１における利用禁止処理が行われるからである。言い換えると、電力制御要求が電力制御機構５１に送信される前に、動作ＭＡ−Ｔ１、ＭＢ１の利用禁止処理によって、電力制御対象ドメイン内のバスマスタ１やバスマスタ２による機能ブロック７１の利用は終了するからである。
【００９２】
次に、動作Ｓ−Ｔ１における利用許可処理の制御方法について、図１２（ｂ）を用いて説明する。
電力管理部６２は、利用許可処理を行う場合、他の機能ブロックによる機能ブロック７１の新たな利用を許可する許可要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２より当該許可要求を受信すると、他の機能ブロックによる機能ブロック７１の新たな利用を可能にする設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。これにより、動作Ｓ−Ｔ１における利用許可処理は終了する。
【００９３】
図１３は、機能ブロックの動作タイプが動作Ｓ−Ｔ３に決定された場合の制御方法を示すシーケンス図である。図１３（ａ）は、動作Ｓ−Ｔ３における利用禁止処理の制御方法を示すシーケンス図であり、図１３（ｂ）は、動作Ｓ−Ｔ３における利用許可処理の制御方法を示すシーケンス図である。
【００９４】
機能ブロック７１の動作タイプが動作Ｓ−Ｔ３に決定される場合とは、機能ブロック７１のバスアクセス制御種別がバススレーブであり、かつ、状態保存操作種別がタイプ３となるときである。即ち、電力制御内容が、電源電力の供給停止（又は供給再開）となるときである。
【００９５】
動作Ｓ−Ｔ３における利用禁止処理の制御方法について、図１３（ａ）を用いて説明する。
電力管理部６２は、利用禁止処理を行う場合、他の機能ブロックによる機能ブロック７１の新たな利用を禁止する禁止要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２より当該禁止要求を受信すると、機能ブロック７１について他の機能ブロックによる新たな利用を禁止する設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。
【００９６】
ここで、機能ブロック７１のバスアクセス制御種別はバススレーブであるので、機能ブロック７１の利用を資源管理部６４により既に許可された他の機能ブロックによるアクセスを当該機能ブロック７１自身は遮断することができない。従って、電力管理部６２は、資源管理部６４より設定変更終了通知を受信すると、他の機能ブロックによる機能ブロック７１の利用が終了するまで利用禁止処理の終了を待つ。具体的には、電力管理部６２は、他の機能ブロックによる機能ブロック７１の利用状況を取得し、他の機能ブロックによる機能ブロック７１の利用が終了したか否かを確認する。他の機能ブロックによる機能ブロック７１の利用が終了したことを電力管理部６２が確認したときに、動作Ｓ−Ｔ３における利用禁止処理は終了する。このようにすることで、他の機能ブロックが機能ブロック７１にアクセスしている最中に、当該機能ブロック７１に対して電力制御が行われるのを防ぐことができる。
【００９７】
なお、前述した動作Ｓ−Ｔ１における利用禁止処理では、「電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用が終了するまで利用禁止処理の終了を待つ」となっていた。それに対し、動作Ｓ−Ｔ３における利用禁止処理では、「他の機能ブロックによる機能ブロック７１の利用が終了するまで利用禁止処理の終了を待つ」となっている。この理由について以下に述べる。
【００９８】
後に詳しく述べるが、電力制御内容が電源電力の供給停止となる場合には、電力管理部６２は、電力制御対象ドメインに所属する機能ブロックすべてのバススレーブ機能についての利用禁止処理を実行した後で、バスマスタ機能の利用禁止処理を実行する。ここで、電力管理部６２は、バススレーブ機能についての利用禁止処理を実行する際に、前述したように電力制御対象ドメイン内の機能ブロックを含む他の機能ブロックによる利用が終了するまで利用禁止処理の終了を待つこととする。なぜならば、クロック信号又は電源電圧の変更や、クロック信号の供給停止の場合とは異なり、電源電力の供給停止の場合には、機能ブロック７１に記憶されているデータが消去されるためである。詳しくは、データが消去される前に、電力制御対象ドメイン内のバスマスタ１による機能ブロック７１とのアクセスを遮断せずに終了させることで、当該バスマスタ１にとって有用なデータを機能ブロック７１に残さないようにするためである。
【００９９】
次に、動作Ｓ−Ｔ３における利用許可処理の制御方法について、図１３（ｂ）を用いて説明する。
電力管理部６２は、利用許可処理を行う場合、他の機能ブロックによる機能ブロック７１の新たな利用を許可する許可要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２より当該許可要求を受信すると、他の機能ブロックによる機能ブロック７１の新たな利用を可能にする設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。これにより、動作Ｓ−Ｔ３における利用許可処理は終了する。
【０１００】
図１４は、機能ブロックの動作タイプが動作ＭＡＳ−Ｔ１に決定された場合の制御方法を示すシーケンス図である。図１４（ａ）は、動作ＭＡＳ−Ｔ１における利用禁止処理の制御方法を示すシーケンス図であり、図１４（ｂ）は、動作ＭＡＳ−Ｔ１における利用許可処理の制御方法を示すシーケンス図である。
【０１０１】
機能ブロック７１の動作タイプが動作ＭＡＳ−Ｔ１に決定される場合とは、機能ブロック７１のバスアクセス制御種別がバスマスタ１＋バススレーブであり、かつ、状態保存操作種別がタイプ１となるときである。即ち、電力制御内容が、クロック信号又は電源電圧の変更や、クロック信号の供給停止（又は供給再開）となるときである。
【０１０２】
動作ＭＡＳ−Ｔ１における利用禁止処理の制御方法について、図１４（ａ）を用いて説明する。
電力管理部６２は、利用禁止処理を行う場合、他の機能ブロックによる機能ブロック７１の新たな利用を禁止する禁止要求、及び、機能ブロック７１に対して新たなジョブを割り当てることを禁止する割当禁止要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２よりこれらの禁止要求を受信すると、機能ブロック７１について他の機能ブロックによる新たな利用を禁止する設定を行うとともに、機能ブロック７１に対して新たなジョブを割り当てない設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。
【０１０３】
ここで、機能ブロック７１はバススレーブの機能を有しているので、電力管理部６２は、資源管理部６４より設定変更終了通知を受信すると、電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用が終了するのを待つ。具体的には、電力管理部６２は、電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用状況を取得し、当該ドメイン外の他の機能ブロックによる機能ブロック７１の利用が終了したか否かを確認する。電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用が終了したことを電力管理部６２が確認すると、機能ブロック７１におけるバススレーブ機能に対する利用禁止処理は完了する。
【０１０４】
また、機能ブロック７１は、バスマスタ１の機能も有しているので、資源管理部６４により既に割り当てられているジョブの実行を外部からの制御要求により停止することが可能である。そこで、電力管理部６２は、電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用が終了したことを確認すると、通信部６３を介して機能ブロック７１に対し、ジョブ実行停止要求を送信する。機能ブロック７１は、電力管理部６２よりジョブ実行停止要求を受信すると、資源管理部６４により既に割り当てられているジョブの実行を停止するジョブ実行停止処理を行い、他の機能ブロックへのアクセスを遮断する。機能ブロック７１は、ジョブ実行停止処理が終了すると、通信部６３を介して電力管理部６２に対し、処理終了通知を送信する。これにより、機能ブロック７１におけるバスマスタ１の機能に対する利用禁止処理は完了し、動作ＭＡＳ−Ｔ１における利用禁止処理は完了する。
【０１０５】
次に、動作ＭＡＳ−Ｔ１における利用許可処理の制御方法について、図１４（ｂ）を用いて説明する。
電力管理部６２は、利用許可処理を行う場合、通信部６３を介して機能ブロック７１に対し、ジョブ実行停止解除要求を送信する。機能ブロック７１は、電力管理部６２よりジョブ実行停止解除要求を受信すると、資源管理部６４により割り当てられるジョブの実行を可能にするジョブ実行停止解除処理を行う。機能ブロック７１は、ジョブ実行停止解除処理が終了すると、通信部６３を介して電力管理部６２に対し、処理終了通知を送信する。
【０１０６】
電力管理部６２は、機能ブロック７１より処理終了通知を受信すると、機能ブロック７１に対して新たなジョブを割り当てることを許可する割当許可要求、及び、他の機能ブロックによる機能ブロック７１の新たな利用を許可する許可要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２よりこれらの許可要求を受信すると、機能ブロック７１に対して新たなジョブを割り当てることを可能にする設定を行うとともに、他の機能ブロックによる機能ブロック７１の新たな利用を可能にする設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。これにより、動作ＭＡＳ−Ｔ１における利用許可処理は完了する。
【０１０７】
図１５は、機能ブロックの動作タイプが動作ＭＡＳ−Ｔ２に決定された場合の制御方法を示すシーケンス図である。図１５（ａ）は、動作ＭＡＳ−Ｔ２における利用禁止処理の制御方法を示すシーケンス図であり、図１５（ｂ）は、動作ＭＡＳ−Ｔ２における利用許可処理の制御方法を示すシーケンス図である。
【０１０８】
機能ブロック７１の動作タイプが動作ＭＡＳ−Ｔ２に決定される場合とは、機能ブロック７１のバスアクセス制御種別がバスマスタ１＋バススレーブであり、かつ、状態保存操作種別がタイプ２となるときである。即ち、電力制御内容が、電源電力の供給停止（又は供給再開）となるときである。このときには、機能ブロック７１の状態の保存（又は復元）のための操作が行われる。
【０１０９】
動作ＭＡＳ−Ｔ２における利用禁止処理の制御方法について、図１５（ａ）を用いて説明する。
電力管理部６２は、利用禁止処理を行う場合、他の機能ブロックによる機能ブロック７１の新たな利用を禁止する禁止要求、及び、機能ブロック７１に対して新たなジョブを割り当てることを禁止する割当禁止要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２よりこれらの禁止要求を受信すると、機能ブロック７１について他の機能ブロックによる新たな利用を禁止する設定を行うとともに、機能ブロック７１に対して新たなジョブを割り当てない設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。
【０１１０】
ここで、機能ブロック７１はバススレーブの機能を有しているので、電力管理部６２は、資源管理部６４より設定変更終了通知を受信すると、他の機能ブロックによる機能ブロック７１の利用が終了するのを待つ。具体的には、電力管理部６２は、他の機能ブロックによる機能ブロック７１の利用状況を取得し、他の機能ブロックによる機能ブロック７１の利用が終了したか否かを確認する。他の機能ブロックによる機能ブロック７１の利用が終了したことを電力管理部６２が確認すると、機能ブロック７１におけるバススレーブ機能に対する利用禁止処理は完了する。
【０１１１】
また、機能ブロック７１は、バスマスタ１の機能も有している。従って、電力管理部６２は、電力制御対象ドメインに所属する機能ブロックすべてにおけるバススレーブ機能について利用禁止処理を実行した後、通信部６３を介して機能ブロック７１に対し、機能ブロック７１の状態を保存する状態保存要求を送信する。機能ブロック７１は、電力管理部６２より状態保存要求を受信すると、機能ブロック７１のレジスタなどに記憶されているデータを不揮発性のメモリなどに保存する状態保存処理を行う。これにより、機能ブロック７１の状態が保存される。機能ブロック７１は、状態保存処理が終了すると、通信部６３を介して電力管理部６２に対し、処理終了通知を送信する。
【０１１２】
電力管理部６２は、状態保存要求に対する応答としての処理終了通知を機能ブロック７１より受けると、通信部６３を介して機能ブロック７１に対し、ジョブ実行停止要求を送信する。機能ブロック７１は、電力管理部６２よりジョブ実行停止要求を受信すると、資源管理部６４により既に割り当てられているジョブの実行を停止するジョブ実行停止処理を行う。これにより、機能ブロック７１から他の機能ブロックへのアクセスは遮断される。機能ブロック７１は、ジョブ実行停止処理が終了すると、通信部６３を介して電力管理部６２に対し、処理終了通知を送信する。これにより、機能ブロック７１におけるバスマスタ１の機能に対する利用禁止処理は完了し、動作ＭＡＳ−Ｔ２における利用禁止処理は完了する。
【０１１３】
次に、動作ＭＡＳ−Ｔ２における利用許可処理の制御方法について、図１５（ｂ）を用いて説明する。
電力管理部６２は、利用許可処理を行う場合、通信部６３を介して機能ブロック７１に対し、ジョブの実行の停止を解除するジョブ実行停止解除要求を送信する。機能ブロック７１は、電力管理部６２よりジョブ実行停止解除要求を受信すると、資源管理部６４により割り当てられるジョブの実行を可能にするジョブ実行停止解除処理を行う。機能ブロック７１は、ジョブ実行停止解除処理が終了すると、通信部６３を介して電力管理部６２に対し、処理終了通知を送信する。
【０１１４】
電力管理部６２は、ジョブ実行停止解除要求に対する応答としての処理終了通知を機能ブロック７１より受信すると、通信部６３を介して機能ブロック７１に対し、機能ブロック７１の状態を復元する状態復元要求を送信する。機能ブロック７１は、電力管理部６２より状態復元要求を受信すると、不揮発性のメモリなどに保存されているデータを機能ブロック７１のレジスタなどに書き込む状態復元処理を行う。機能ブロック７１は、状態復元処理が終了すると、通信部６３を介して電力管理部６２に対し、処理終了通知を送信する。
【０１１５】
電力管理部６２は、状態復元要求に対する応答としての処理終了通知を機能ブロック７１より受信すると、機能ブロック７１に対して新たなジョブを割り当てることを許可する割当許可要求、及び、他の機能ブロックによる機能ブロック７１の新たな利用を許可する許可要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２よりこれらの許可要求を受信すると、機能ブロック７１に対する新たなジョブを割り当てることを可能にする設定を行うとともに、他の機能ブロックによる機能ブロック７１の新たな利用を可能にする設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。これにより、動作ＭＡＳ−Ｔ２における利用許可処理は完了する。
【０１１６】
図１６は、機能ブロックの動作タイプが動作ＭＢＳ−Ｔ１に決定された場合の制御方法を示すシーケンス図である。図１６（ａ）は、動作ＭＢＳ−Ｔ１における利用禁止処理の制御方法を示すシーケンス図であり、図１６（ｂ）は、動作ＭＢＳ−Ｔ１における利用許可処理の制御方法を示すシーケンス図である。
【０１１７】
機能ブロック７１の動作タイプが動作ＭＢＳ−Ｔ１に決定される場合とは、機能ブロック７１のバスアクセス制御種別がバスマスタ２＋バススレーブであり、かつ、状態保存操作種別がタイプ１となるときである。即ち、電力制御内容が、クロック信号又は電源電圧の変更や、クロック信号の供給停止（又は供給再開）となるときである。
【０１１８】
動作ＭＢＳ−Ｔ１における利用禁止処理の制御方法について、図１６（ａ）を用いて説明する。
電力管理部６２は、利用禁止処理を行う場合、他の機能ブロックによる機能ブロック７１の新たな利用を禁止する禁止要求、及び、機能ブロック７１に対して新たなジョブを割り当てることを禁止する割当禁止要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２よりこれらの禁止要求を受信すると、機能ブロック７１について他の機能ブロックによる新たな利用を禁止する設定を行うとともに、機能ブロック７１に対して新たなジョブを割り当てない設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。
【０１１９】
ここで、機能ブロック７１はバススレーブの機能を有しているので、電力管理部６２は、資源管理部６４より設定変更終了通知を受信すると、電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用が終了するのを待つ。具体的には、電力管理部６２は、電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用状況を取得し、当該ドメイン外の他の機能ブロックによる機能ブロック７１の利用が終了したか否かを確認する。電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用が終了したことを電力管理部６２が確認すると、機能ブロック７１におけるバススレーブ機能に対する利用禁止処理は完了する。
【０１２０】
また、機能ブロック７１は、バスマスタ２の機能を有している。そこで、電力管理部６２は、電力制御対象ドメイン外の他の機能ブロックによる機能ブロック７１の利用が終了したことを確認すると、さらに、機能ブロック７１に対して既に割り当てられているジョブの実行が終了するのを待つ。具体的には、電力管理部６２は、機能ブロック７１による他の機能ブロックの利用状況を取得し、機能ブロック７１による他の機能ブロックの利用が終了したか否かを確認する。機能ブロック７１による他のブロックの利用が終了したことを電力管理部６２が確認したときに、機能ブロック７１におけるバスマスタ２の機能に対する利用禁止処理は完了し、動作ＭＢＳ−Ｔ１における利用禁止処理は完了する。
【０１２１】
次に、動作ＭＢＳ−Ｔ１における利用許可処理の制御方法について、図１６（ｂ）を用いて説明する。
電力管理部６２は、利用許可処理を行う場合、機能ブロック７１に対して新たなジョブを割り当てることを許可する割当許可要求、及び、他の機能ブロックによる機能ブロック７１の新たな利用を許可する許可要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２よりこれらの許可要求を受信すると、機能ブロック７１に対する新たなジョブを割り当てることを可能にする設定を行うとともに、他の機能ブロックによる機能ブロック７１の新たな利用を可能にする設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。これにより、動作ＭＢＳ−Ｔ１における利用許可処理は完了する。
【０１２２】
図１７は、機能ブロックの動作タイプが動作ＭＢＳ−Ｔ３に決定された場合の制御方法を示すシーケンス図である。図１７（ａ）は、動作ＭＢＳ−Ｔ３における利用禁止処理の制御方法を示すシーケンス図であり、図１７（ｂ）は、動作ＭＢＳ−Ｔ３における利用許可処理の制御方法を示すシーケンス図である。
【０１２３】
機能ブロック７１の動作タイプが動作ＭＢＳ−Ｔ３に決定される場合とは、機能ブロック７１のバスアクセス制御種別がバスマスタ２＋バススレーブであり、かつ、状態保存操作種別がタイプ３となるときである。即ち、電力制御内容が、電源電力の供給停止（又は供給再開）となるときである。
【０１２４】
動作ＭＢＳ−Ｔ３における利用禁止処理の制御方法について、図１７（ａ）を用いて説明する。
電力管理部６２は、利用禁止処理を行う場合、他の機能ブロックによる機能ブロック７１の新たな利用を禁止する禁止要求、及び、機能ブロック７１に対して新たなジョブを割り当てることを禁止する割当禁止要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２よりこれらの禁止要求を受信すると、機能ブロック７１について他の機能ブロックによる新たな利用を禁止する設定を行うとともに、機能ブロック７１に対して新たなジョブを割り当てない設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。
【０１２５】
ここで、機能ブロック７１はバススレーブの機能を有しているので、電力管理部６２は、資源管理部６４より設定変更終了通知を受信すると、他の機能ブロックによる機能ブロック７１の利用が終了するのを待つ。具体的には、電力管理部６２は、他の機能ブロックによる機能ブロック７１の利用状況を取得し、他の機能ブロックによる機能ブロック７１の利用が終了したか否かを確認する。他の機能ブロックによる機能ブロック７１の利用が終了したことを電力管理部６２が確認すると、機能ブロック７１におけるバススレーブ機能に対する利用禁止処理は完了する。
【０１２６】
また、機能ブロック７１は、バスマスタ２の機能も有している。そこで、電力管理部６２は、電力制御対象ドメインに所属する機能ブロックすべてにおけるバススレーブ機能について利用禁止処理を実行した後、機能ブロック７１に対して既に割り当てられているジョブの実行が終了するのを待つ。具体的には、電力管理部６２は、機能ブロック７１による他の機能ブロックの利用状況を取得し、機能ブロック７１による他の機能ブロックの利用が終了したか否かを確認する。機能ブロック７１による他のブロックの利用が終了したことを電力管理部６２が確認したときに、機能ブロック７１におけるバスマスタ２の機能に対する利用禁止処理は完了し、動作ＭＢＳ−Ｔ３における利用禁止処理は完了する。
【０１２７】
次に、動作ＭＢＳ−Ｔ３における利用許可処理の制御方法について、図１７（ｂ）を用いて説明する。
電力管理部６２は、利用許可処理を行う場合、機能ブロック７１に対して新たなジョブを割り当てることを許可する割当許可要求、及び、他の機能ブロックによる機能ブロック７１の新たな利用を許可する許可要求を資源管理部６４に送信する。資源管理部６４は、電力管理部６２よりこれらの許可要求を受信すると、機能ブロック７１に対する新たなジョブを割り当てることを可能にする設定を行うとともに、他の機能ブロックによる機能ブロック７１の新たな利用を可能にする設定を行う。資源管理部６４は、設定を完了すると、設定変更終了通知を電力管理部６２に送信する。これにより、動作ＭＢＳ−Ｔ３における利用許可処理は完了する。
【０１２８】
次に、実施形態に係る利用許可処理及び利用禁止処理について、図１８のフローチャートを用いて説明する。図１８は、実施形態に係る利用許可処理及び利用禁止処理の流れを示すフローチャートである。以下では、電力制御内容がクロック信号又は電源電圧の変更で、電力制御対象ドメインがドメイン１である場合を一例として説明する。
【０１２９】
電力管理部６２は、図５に示したフローチャートで述べた利用許可処理又は利用禁止処理を行う場合には、まず、ステップＳ２０１において、電力制御対象ドメインに所属する機能ブロックを検出する。例えば、電力制御対象ドメインがドメイン１となる場合、検出される機能ブロックは、ＣＰＵ１１、メモリ２２、及びＤＳＰ３３となる（図２参照）。
【０１３０】
ステップＳ２０２において、電力管理部６２は、電力制御対象ドメインに所属する機能ブロックのバスアクセス制御種別と状態保存操作種別とを取得する（図６参照）。前述の例では、ＣＰＵ１１のバスアクセス制御種別はバスマスタ１となり、メモリ２２のバスアクセス制御種別はバススレーブとなり、ＤＳＰ３３のバスアクセス制御はバスマスタ２となる。また、電力制御内容はクロック信号又は電源電圧の変更となっているので、ＣＰＵ１１、メモリ２２、ＤＳＰ３３のいずれの状態保存操作種別もタイプ１となる。
【０１３１】
ステップＳ２０３において、電力管理部６２は、電力制御対象ドメインに所属する機能ブロックのバスアクセス制御種別と状態保存操作種別とを基に、当該機能ブロックの動作タイプを決定する（図８参照）。前述の例では、ＣＰＵ１１の動作タイプは動作ＭＡ−Ｔ１となり、メモリ２２の動作タイプは動作Ｓ−Ｔ１となり、ＤＳＰ３３の動作タイプは動作ＭＢとなる。
【０１３２】
ステップＳ２０４において、電力管理部６２は、ステップＳ２０３で決定された動作タイプにおける利用禁止処理又は利用許可処理を行う。前述の例において、電力管理部６２は、利用禁止処理を行う場合には、動作ＭＡ−Ｔ１、Ｓ−Ｔ１、ＭＢのそれぞれにおける利用禁止処理の制御方法に沿って、ＣＰＵ１１、メモリ２２、ＤＳＰ３３の利用禁止処理を行う。これにより、ドメイン１に所属する機能ブロックを電力制御可能な状態にすることができる。また、利用許可処理を行う場合には、電力管理部６２は、動作ＭＡ−Ｔ１、Ｓ−Ｔ１、ＭＢのそれぞれにおける利用許可処理の制御方法に沿って、ＣＰＵ１１、メモリ２２、ＤＳＰ３３の利用許可処理をそれぞれ行う。電力管理部６２は、電力制御対象ドメインに所属する機能ブロックに対し利用禁止処理又は利用許可処理を終えると本制御処理を終了する。
【０１３３】
なお、前述したように、電力制御内容が電源電力の供給停止となる場合には、電力管理部６２は、電力制御対象ドメインに所属する機能ブロックすべてにおけるバススレーブ機能の利用禁止処理を実行した後で、バスマスタ機能に対する利用禁止処理を実行する。例えば、電力制御内容が電源電力の供給停止で、電力制御対象ドメインがドメイン１となる場合には、ステップＳ２０３において、ＣＰＵ１１の動作タイプは動作ＭＡ−Ｔ２となり、メモリ２２の動作タイプは動作Ｓ−Ｔ３となり、ＤＳＰ３３の動作タイプは動作ＭＢとなる。従って、この場合、ステップＳ２０４において、電力管理部６２は、まず、動作Ｓ−Ｔ３の利用禁止処理の制御方法に沿ってメモリ２２の利用禁止処理を行う。その後、電力管理部６２は、動作ＭＡ−Ｔ２、ＭＢの利用禁止処理の制御方法に従ってＣＰＵ１１、ＤＳＰ３３の利用禁止処理をそれぞれ行う。これにより、ドメイン１内のバスマスタ１たるＣＰＵ１１にとって有用なデータをメモリ２２に残したまま、電源電力の供給が停止されることを避けることができる。
【０１３４】
なお、前述の実施形態では、機能ブロックとして、ＣＰＵ、ＤＳＰ、メモリ、ＤＭＡＣ、ＡＣＣを例として挙げたが、前述の実施形態で述べた方法を適用可能な機能ブロックとしてはこれに限られないのは言うまでもない。また、集積回路におけるドメインの分け方についても前述の実施形態で述べた分け方に限られないのは言うまでもない。
【０１３５】
さらに、実施形態は、前述した実施形態の例に限られるものではなく、特許請求の範囲及び明細書全体から読み取れる発明の要旨あるいは思想に反しない範囲で適宜変更可能である。
以上説明した実施形態に関して、更に以下の付記を開示する。
【０１３６】
（付記１）
集積回路内における機能ブロックの利用管理を行う資源管理部と、
少なくとも１つ以上の前記機能ブロックを所属させたドメインと当該ドメインに対する電力制御内容とを指定した電力制御要求を、前記ドメイン毎に前記機能ブロックの電力制御を行う電力制御機構に対して送信する電力管理部と、を備え、
前記電力管理部は、前記電力制御機構に対し前記電力制御要求を送信する前に、前記ドメインに所属する機能ブロックの種別と前記電力制御内容とに応じて、前記資源管理部を用いて、前記ドメインに所属する機能ブロックの利用を禁止する利用禁止処理を行うことを特徴とする電力管理回路。
（付記２）
前記ドメインに所属する機能ブロックがバスマスタの機能を有する場合には、
前記電力管理部は、前記利用禁止処理として、前記資源管理部を用いて、新たなジョブを前記機能ブロックに割り当てることを禁止することを特徴とする付記１に記載の電力管理回路。
（付記３）
前記ドメインに所属する機能ブロックが、既に割り当てられたジョブの実行を要求により停止可能なバスマスタの機能を有する場合には、
前記電力管理部は、前記利用禁止処理として、前記機能ブロックに対し、既に割り当てられたジョブの実行の停止要求を送信することを特徴とする付記２に記載の電力管理回路。
（付記４）
前記ドメインに所属する機能ブロックが、当該機能ブロックの状態の保存を外部からの要求により実行可能なバスマスタの機能を有し、かつ、前記電力制御内容が前記ドメインに対する電源電力の供給停止となる場合には、
前記電力管理部は、前記利用禁止処理として、前記機能ブロックに対し、前記機能ブロックの状態の保存要求を送信することを特徴とする付記３に記載の電力管理回路。
（付記５）
前記ドメインに所属する機能ブロックが、既に割り当てられたジョブの実行を停止することができないバスマスタの機能を有する場合には、
前記電力管理部は、既に割り当てられたジョブの実行が終了するまで前記利用禁止処理の終了を待つことを特徴とする付記２に記載の電力管理回路。
（付記６）
前記ドメインに所属する機能ブロックがバススレーブの機能を有する場合には、
前記電力管理部は、前記利用禁止処理として、前記資源管理部を用いて、前記機能ブロックの他の機能ブロックによる新たな利用を禁止することを特徴とする付記１〜５の何れか１項に記載の電力管理回路。
（付記７）
前記電力管理部は、前記利用禁止処理として、前記機能ブロックの利用が既に許可された他の機能ブロックによる利用が終了するまで前記利用禁止処理の終了を待つことを特徴とする付記６に記載の電力管理回路。
（付記８）
前記電力制御内容がクロック信号の周波数変更又は電源電力の電圧変更となる場合には、
前記電力管理部は、前記利用禁止処理を行うとともに、前記ドメインに対する前記電力制御が終了した場合には、前記資源管理部を用いて、前記ドメインに所属する機能ブロックの利用を許可する利用許可処理を行うことを特徴とする付記１〜７の何れか１項に記載の電力管理回路。
（付記９）
集積回路内における少なくとも１つ以上の機能ブロックを所属させたドメインと当該ドメインに対する電力制御内容とを指定した電力制御要求を取得する工程と、
前記ドメインに所属する機能ブロックの種別と前記電力制御内容とに応じて、前記ドメインに所属する機能ブロックの利用を禁止する利用禁止処理を行う工程と、
前記利用禁止処理の実行後、前記ドメイン毎に前記機能ブロックの電力制御を行う電力制御機構に対し前記電力制御要求を送信する工程と、を備えることを特徴とする電力管理方法。
（付記１０）
コンピュータにより実行されるプログラムであって、
集積回路内における機能ブロックの利用管理を行う資源管理部、
及び、少なくとも１つ以上の前記機能ブロックを所属させたドメインと当該ドメインに対する電力制御内容とを指定した電力制御要求を、前記ドメイン毎に前記機能ブロックの電力制御を行う電力制御機構に対して送信する電力管理部、として前記コンピュータを機能させ、
前記電力管理部は、前記電力制御機構に対し前記電力制御要求を送信する前に、前記ドメインに所属する機能ブロックの種別と前記電力制御内容とに応じて、前記資源管理部を用いて、前記ドメインに所属する機能ブロックの利用を禁止する利用禁止処理を行うことを特徴とする電力管理プログラム。
【符号の説明】
【０１３７】
１０、１１  ＣＰＵ
２１、２２、２３  メモリ
３１  ＤＭＡＣ
３２  ＡＣＣ
３３  ＤＳＰ
５１  電力制御機構
６１  アプリケーション
６２  電力管理部
６３  通信部
６４  資源管理部
【図１】
2010282585.tif 000003
【図２】
2010282585.tif 000004
【図３】
2010282585.tif 000005
【図４】
2010282585.tif 000006
【図５】
2010282585.tif 000007
【図６】
2010282585.tif 000008
【図７】
2010282585.tif 000009
【図８】
2010282585.tif 000010
【図９】
2010282585.tif 000011
【図１０】
2010282585.tif 000012
【図１１】
2010282585.tif 000013
【図１２】
2010282585.tif 000014
【図１３】
2010282585.tif 000015
【図１４】
2010282585.tif 000016
【図１５】
2010282585.tif 000017
【図１６】
2010282585.tif 000018
【図１７】
2010282585.tif 000019
【図１８】
2010282585.tif 000020