(57)【特許請求の範囲】
【請求項１】
第１の機能モジュールと、第２の機能モジュールと、前記第１の機能モジュールと前記第２の機能モジュール間のアクセスを中継すると共に、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御し、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方を停止しているとき、前記第２の機能モジュールによる前記第１の機能モジュールに対するアクセスを可能にするための制御を行う制御回路と、を備え、
前記制御回路は、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方が停止されているときに、前記第２の機能モジュールから前記第１の機能モジュールへ送信されたアクセス要求信号がライトアクセスである場合には、前記第１の機能モジュールに代わって、前記第２の機能モジュールにアクセス応答信号を送信し、前記アクセス要求信号がリードアクセスである場合には、前記アクセス応答信号の送信を停止する代理応答生成部を含み、
前記代理応答生成部は、前記第１の機能モジュールがアクセス応答信号送信可能状態に遷移した後に、前記第２の機能モジュールから前記第１の機能モジュールへのアクセス要求を再送信させる半導体集積回路。
【請求項２】
前記制御回路は、レジスタを備え、前記第２の機能モジュールから前記第１の機能モジュールへ送信されるアクセス要求信号に含まれるアドレス、アクセス属性、ライトデータ及びリードデータのうち少なくとも一つと、前記レジスタに保持されている値とを比較した結果に基づいて、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を決定する請求項１記載の半導体集積回路。
【請求項３】
前記第２の機能モジュールは、前記第１の機能モジュールへ送信する前記アクセス要求信号に自身を識別させるためのマスタＩＤを付加し、
前記制御回路は、レジスタを備え、前記マスタＩＤと前記レジスタに保持されている値とを比較した結果に基づいて、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を決定する請求項１記載の半導体集積回路。
【請求項４】
前記第２の機能モジュールは、複数のプロセスを実行するプロセッサであって、前記第１の機能モジュールへ送信する前記アクセス要求信号に前記プロセスを識別させるためのプロセスＩＤを付加し、
前記制御回路は、レジスタを備え、前記プロセスＩＤと前記レジスタに保持されている値とを比較した結果に基づいて、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を決定する請求項１記載の半導体集積回路。
【請求項５】
前記第１の機能モジュールは、前記第１の機能モジュールの処理状態を前記制御回路に通知する機能を有し、
前記制御回路は、レジスタを備え、前記第１の機能モジュールの処理状態と前記レジスタに保持されている値とを比較した結果に基づいて、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方を開始又は停止する請求項１記載の半導体集積回路。
【請求項６】
前記制御回路は、初期化を指示するリセット信号と、初期化時での前記第１機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を指定するモード信号とを取込み、前記リセット信号がアサートされているときの前記モード信号の値に基づいて、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御する請求項１乃至５の何れか１項記載の半導体集積回路。
【請求項７】
前記制御回路は、複数の前記第２の機能モジュールが前記第１の機能モジュールを使用しているか否かを示す値、又は、前記第２の機能モジュールによって実行される複数のプロセスが前記第１の機能モジュールを使用しているか否かを示す値を保持するレジスタを備え、
前記レジスタの保持する値が、複数の前記第２の機能モジュール又は複数の前記プロセスにおいて前記第１の機能モジュールが使用されていないことを示す場合には、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方を停止し、
前記レジスタの保持する値が、少なくとも一つの前記第２の機能モジュール又は前記プロセスにおいて前記第１の機能モジュールが使用されていることを示す場合には、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方を開始する請求項１記載の半導体集積回路。
【請求項８】
複数の機能モジュールと、マスタモジュールと、前記複数の機能モジュールと前記マスタモジュール間のアクセスを中継すると共に、前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御し、前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方を停止しているとき、前記マスタモジュールによる前記複数の機能モジュールに対するアクセスを可能にするための制御を行う制御回路と、を備え、
前記制御回路は、前記機能モジュールへの電力供給とクロック供給の少なくとも一方が停止されているときに、前記マスタモジュールから前記機能モジュールへ送信されたアクセス要求信号がライトアクセスである場合には、前記機能モジュールに代わって、前記マスタモジュールにアクセス応答信号を送信し、前記アクセス要求信号がリードアクセスである場合には、前記アクセス応答信号の送信を停止する代理応答生成部を含み、
前記代理応答生成部は、前記機能モジュールがアクセス応答信号送信可能状態に遷移した後に、前記マスタモジュールから前記機能モジュールへのアクセス要求を再送信させる半導体集積回路。
【請求項９】
前記制御回路は、初期化を指示するリセット信号と、初期化時での前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を指定する一組のモード信号とを取込み、前記リセット信号がアサートされているときの前記モード信号の値に基づいて、前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御する請求項８記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサ等に使用される半導体集積回路に関し、例えば動作時での消費電力が小さい半導体集積回路に適用して有効な技術に関する。
【背景技術】
【０００２】
半導体集積回路の微細化に伴い、半導体集積回路のゲート密度や動作速度は向上しているが、その一方で、半導体集積回路の非動作時でのリーク電力が急速に増大している。半導体集積回路の動作時での消費電力を低下させるために、半導体集積回路へのクロック供給を停止する制御が行われることがある。しかし、リーク電力は、クロック供給の有無とは無関係に発生するので、リーク電力を低下させるには、半導体集積回路への電力供給を停止する必要がある。
【０００３】
特に、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）のような大規模な半導体集積回路では、使用期間を通してＳｏＣに含まれる全ての機能モジュールを動作させる必要はなく、ある動作に不要な機能モジュールは停止させても構わない。例えば、携帯電話用ＳｏＣにおいて、通信機能を実現する機能モジュールは、通話時のみ動作させ、非通話時は停止させることができる。この場合には、動作させる必要のない機能モジュールへの電力供給を停止することによって、リーク電力を低下させることができる。このため、ＳｏＣでは、機能モジュール毎に電力供給を開始又は停止する技術が普及しつつある。
【０００４】
ところが、ＳｏＣでは、同時に複数の処理を行うマルチタスク処理が一般的となっており、例えばＳｏＣによって機能を実現する携帯電話機がテレビ電話機能を実現するときには、通信処理、動画像圧縮伸張処理、音声圧縮伸張処理等を含む多くの処理が同時に実行されることになる。このような状況では、ＳｏＣ内の機能モジュールが、その搭載数を低減するために複数の処理によって利用されることがあり、機能モジュール毎に電力供給を開始又は停止することが困難となる。
【０００５】
例えば、機能モジュールの一つであるＤＭＡコントローラが、通信処理及び動画像圧縮伸張処理で利用される場合には、一方の処理でＤＭＡコントローラへの電力供給を停止すると、他方の処理でＤＭＡコントローラを利用できなくなってしまい、テレビ電話機能を実現できなくなってしまう。このため、ＳｏＣを制御するソフトウェアには、２つの処理を監視して、いずれの処理も実行されていないときに限りＤＭＡコントローラを停止する複雑なソフトウェア処理が必要となる。しかしながら、ＳｏＣやＳｏＣが搭載される各種装置の高機能化や複雑化に伴い、ＳｏＣを制御するソフトウェアの開発コストが高騰しており、この傾向は、今後も続く見込みである。従って、ＳｏＣには、ＳｏＣを制御するために必要なソフトウェア処理を極力単純化して、ソフトウェアの開発コストを抑えることが求められており、上記した複雑なソフトウェア処理を行うと、開発コストが上昇してしまう。
【０００６】
特許文献１には、ソフトウェアによる制御を複雑化させることなく、各周辺回路モジュールへのクロック供給を自律分散的に制御することにより、消費電力の低減を図る技術が開示されている。
【０００７】
また、ＳｏＣの機能モジュール間のデータ転送には、スプリット方式が広く用いられている。このスプリット方式では、アクセス要求を受信した機能モジュールが、アクセス要求を発生させた機能モジュールに対して、明示的にアクセス応答を送信しなければならない。このため、消費電力を低減するために、機能モジュールへの電力供給を停止した場合には、電力供給を停止された機能モジュールからアクセス応答が送信されず、ＳｏＣのデータ転送が破綻してしまう恐れがある。
【０００８】
さらに、大規模なＳｏＣを開発する場合には、多くの機能モジュールは、既存の開発品を流用したものや、外部から購入したものが導入される。この場合には、不具合が発生する確率を低減するために、導入した機能モジュールには変更を加えないことが望ましい。
【０００９】
【特許文献１】特開２００４−１９９１１５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
特許文献１によれば、機能モジュールに対するアクセスを検出してソフトウェア制御を介在させることなく、機能モジュールへのクロック供給を動的に開始又は停止できるから、機能モジュールが動作しないときの消費電力を低減することができる。しかしながら、特許文献１の技術では、機能モジュールへの電力供給の開始又は停止を行わないので、リーク電力を低減することができない。さらに、マルチタスク処理時に電力供給を停止するときに必要な考慮が全くなされていない。
【００１１】
本発明の目的は、必要な動作を阻害することなく、動作時の消費電力だけでなく非動作時のリーク電力も比較的簡単に低減できる半導体集積回路を提供することにある。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１４】
〔１〕本発明に係る半導体集積回路（１１）は、第１の機能モジュール（１０７）と、第２の機能モジュール（１０１）と、前記第１の機能モジュールと前記第２の機能モジュール間のアクセスを中継すると共に、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御する制御回路（１０４）と、を備える。前記制御回路は、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方を停止しているとき、前記第２の機能モジュールによる前記第１の機能モジュールに対するアクセスを可能にするための制御を行う。
【００１５】
上記より、第１の機能モジュールが停止していても、第２の機能モジュールは、第１の機能モジュールにアクセスすることが保証されるから、必要な動作を阻害することなく、動作時の消費電力だけでなく非動作時のリーク電力も低減できる。
【００１６】
本発明の具体的な一つの形態として、前記制御回路は、レジスタ（図５参照）を備える。前記制御回路は、前記第２の機能モジュールから前記第１の機能モジュールへ送信されるアクセス要求信号に含まれるアドレス、アクセス属性、ライトデータ及びリードデータのうち少なくとも一つと、前記レジスタに保持されている値とを比較する。前記制御回路は、この比較結果に基づいて、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始（図６、図８参照）又は停止（図７、図９参照）を決定する。上記より、第１の機能モジュールへのアクセスを監視して、その監視結果に応じて第１の機能モジュールへの電力供給とクロック供給の制御を行うから、第１の機能モジュールが変更困難な既存の開発品や外部からの導入品であっても、制御回路のレジスタ設定を変更するだけで第１の機能モジュールのリーク電流を低減できる。従って、電力供給やクロック供給の制御を複雑なソフトウェア処理で行う必要がなく、ソフトウェアの開発コストを抑えることができる。
【００１７】
本発明の具体的な一つの形態として、前記第２の機能モジュール（１０１Ａ，１０１Ｂ）は、前記第１の機能モジュール（１０７）へ送信する前記アクセス要求信号に自身を識別させるためのマスタＩＤを付加する。前記制御回路（１０４Ａ）は、レジスタを備える。前記制御回路は、前記マスタＩＤと前記レジスタに保持されている値とを比較した結果に基づいて、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始（図２８、図３０参照）又は停止（図２９、図３１参照）を決定する。上記より、第２の機能モジュールが複数であっても、特定の第２の機能モジュールからのアクセス要求信号を、電力供給とクロック供給の制御の契機とすることができる。
【００１８】
本発明の具体的な一つの形態として、前記第２の機能モジュールは、複数のプロセスを実行するプロセッサであって、前記第１の機能モジュールへ送信する前記アクセス要求信号に前記プロセスを識別させるためのプロセスＩＤを付加する。前記制御回路は、レジスタを備える。前記制御回路は、前記プロセスＩＤと前記レジスタに保持されている値とを比較した結果に基づいて、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始（図２８、図３０参照）又は停止（図２９、図３１参照）を決定する。上記より、第２の機能モジュールが複数であっても、特定の第２の機能モジュールで実行される特定のプロセスによるアクセス要求信号を、電力供給とクロック供給の制御の契機とすることができる。従って、ソフトウェアの不具合や、コンピュータウィルス等によるプロセスによって、第１の機能モジュールへの電力供給やクロック供給が不所望に開始又は停止されることがない。
【００１９】
本発明の具体的な一つの形態として、前記第１の機能モジュールは、前記第１の機能モジュールの処理状態を前記制御回路に通知する機能を有する。前記制御回路は、レジスタ（図２０参照）を備える。前記制御回路は、前記第１の機能モジュールの処理状態と前記レジスタに保持されている値とを比較した結果に基づいて、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方を開始（図２１、図２２参照）又は停止（図２１〜図２３参照）する。上記より、第１の機能モジュールが自律的に出力する状態信号に基づいて電力供給やクロック供給の制御を行うから、これらの制御にソフトウェアが介在することを要しない。従って、制御回路のレジスタ設定を行うだけでよく、ソフトウェア開発コストを削減できる。
【００２０】
本発明の具体的な一つの形態として、前記制御回路は、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方が開始された後に、前記第１の機能モジュールへの情報転送を開始する。上記より、第１の機能モジュールへの電力供給やクロック供給が停止されていたときに、第１の機能モジュールへ送信されたアクセス要求信号を、第１の機能モジュールが動作したときに再送信できる。従って、第１の機能モジュールにアクセス要求信号を確実に受信させることができ、半導体集積回路の内部の情報転送を破綻させることがない。
【００２１】
本発明の具体的な一つの形態として、前記制御回路は、代理応答生成部（３０４）を備える。代理応答生成部は、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方が停止されているときに、前記第２の機能モジュールから前記第１の機能モジュールへアクセス要求信号が送信された場合には、前記第１の機能モジュールに代わって、前記第２の機能モジュールにアクセス応答信号を送信する。上記より、第１の機能モジュールが動作していない場合であっても、代理応答生成部により、第２の機能モジュールにアクセス応答信号を送信できる。従って、第２の機能モジュールは、第１の機能モジュールへの電力供給やクロック供給が開始されるまでアクセス応答信号を待つ必要がなく、第２の機能モジュールの処理が滞ることがない。
【００２２】
本発明の具体的な一つの形態として、前記制御回路は、代理応答生成部（３０４Ａ）を備える。前記代理応答生成部は、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方が停止されているときに、前記第２の機能モジュールから前記第１の機能モジュールへ送信されたアクセス要求信号がライトアクセスである場合には、前記第１の機能モジュールに代わって、前記第２の機能モジュールにアクセス応答信号を送信する。前記代理応答生成部は、前記アクセス要求信号がリードアクセスである場合には、前記アクセス応答信号の送信を停止する。上記より、第１の機能モジュールが動作していない場合において、ライトアクセスに対しては第２の機能モジュールにアクセス応答信号を送信するから、第２の機能モジュールの処理が滞ることがない。さらに、リードアクセスに対しては代理応答生成部が第２の機能モジュールにアクセス応答信号を送信せず、その後、制御回路が第１の機能モジュールを動作させるから、第１の機能モジュールは、正確なリードデータを付加したアクセス応答信号を第２の機能モジュールに送信することができる。
【００２３】
本発明の具体的な一つの形態として、前記制御回路は、初期化を指示するリセット信号（１４）と、初期化時での前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を指定するモード信号（１３）とを取込む。前記制御回路は、前記リセット信号がアサートされているときの前記モード信号の値（図２参照）に基づいて、前記第１の機能モジュールへの電力供給（図１０、図１１参照）とクロック供給（図１２、図１３参照）の少なくとも一方を制御する。上記より、例えばリセット信号入力端子とモード信号入力端子を制御回路に設けるだけで、初期化時における第１の機能モジュールの電力供給状態及びクロック供給状態を決定できるから、低コスト化を図ることができる。
【００２４】
本発明の具体的な一つの形態として、前記制御回路は、複数の前記第２の機能モジュールが前記第１の機能モジュールを使用しているか否かを示す値、又は、前記第２の機能モジュールによって実行される複数のプロセスが前記第１の機能モジュールを使用しているか否かを示す値を保持するレジスタ（図３３、図４１参照）を備える。前記制御回路は、前記レジスタの保持する値が、複数の前記第２の機能モジュール又は複数の前記プロセスにおいて前記第１の機能モジュールが使用されていないことを示す場合には、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方を停止する（図３５、図３７、図４３、図４５参照）。前記制御回路は、前記レジスタの保持する値が、少なくとも一つの前記第２の機能モジュール又は前記プロセスにおいて前記第１の機能モジュールが使用されていることを示す場合には、前記第１の機能モジュールへの電力供給とクロック供給の少なくとも一方を開始する（図３４、図３６、図４２、図４４参照）。上記より、複数の第２の機能モジュール又はプロセスが１つの第１の機能モジュールを制御する場合であっても、第１の機能モジュールが使用されていないときには、第１の機能モジュールへの電力供給やクロック供給を停止できる。従って、第１の機能モジュールへの電力供給やクロック供給は、必要最小限の期間だけ行われることになり、消費電力を低減できる。
【００２５】
〔２〕本発明に係る半導体集積回路（１１Ｂ）は、複数の機能モジュール（１０７Ａ，１０７Ｂ）と、マスタモジュール（１０１）と、前記複数の機能モジュールと前記マスタモジュール間のアクセスを中継すると共に、前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御する制御回路（１０４Ｃ）と、を備える。前記制御回路は、前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方を停止しているとき、前記マスタモジュールによる前記複数の機能モジュールに対するアクセスを可能にするための制御を行う。
【００２６】
上記より、複数の機能モジュールが停止していても、マスタモジュールは、複数の機能モジュールにアクセスすることが保証されるから、必要な動作を阻害することなく、動作時の消費電力だけでなく非動作時のリーク電力も低減できる。
【００２７】
本発明の具体的な一つの形態として、前記制御回路は、初期化を指示するリセット信号と、初期化時での前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を指定する一組のモード信号とを取込む。前記制御回路は、前記リセット信号がアサートされているときの前記モード信号の値（図５５参照）に基づいて、前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御する。上記より、例えばリセット信号入力端子と一組のモード信号入力端子を制御回路に設けるだけで、初期化時における複数の機能モジュールの電力供給状態及びクロック供給状態を決定できるから、低コスト化を図ることができる。
【発明の効果】
【００２８】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２９】
即ち、必要な動作を阻害することなく、動作時の消費電力だけでなく非動作時のリーク電力も比較的簡単に低減できる。
【発明を実施するための最良の形態】
【００３０】
《実施形態１》
図１には本発明の実施形態１に係る半導体集積回路が例示される。半導体集積回路１１は、特に制限されないが、単結晶シリコン等の１個の半導体基板に、相補型ＭＯＳトランジスタやバイポーラトランジスタ等を形成する半導体集積回路技術によって形成されている。
【００３１】
半導体集積回路１１は、ＣＰＵ（中央処理装置）１０１と、メモリ制御部１０２と、ルータ１０３と、電力・クロック制御ブリッジ１０４と、電力供給部１０５と、クロック供給部１０６と、ＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）モジュールと称される機能モジュール（以下、ＩＰと記す）１０７とを備えている。さらに、半導体集積回路１１は、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）１０８と、割込みコントローラ１０９等の各機能モジュールを備えている。また、半導体集積回路１１には、メモリ１２と、モード信号生成部１３と、リセット信号生成部１４と、電源１５と、クロック信号生成部１６等が接続される。
【００３２】
ＣＰＵ１０１は、ルータ１０３及びメモリ制御部１０２を介してメモリ１２にアクセスし、メモリ１２に保持されているプログラムを実行することによって、半導体集積回路１１内外の制御を行う。半導体集積回路１１内部のアクセスは、スプリット方式で行われており、アクセスを要求する機能モジュールがアクセス要求信号を送信し、アクセス要求信号を受信した機能モジュールが、アクセスを要求した機能モジュールにアクセス応答信号を送信することにより、データ転送が可能となる。
【００３３】
メモリ制御部１０２は、ルータ１０３を介してＣＰＵ１０１、電力・クロック制御ブリッジ１０４、ＩＰ１０７及びＤＭＡＣ１０８からのアクセス要求信号を受信し、このアクセス要求信号に基づいて、メモリ１２に読出し処理又は書込み処理を行う。また、メモリ制御部１０２は、このアクセス要求信号に応じたアクセス応答信号を生成し、このアクセス応答信号をルータ１０３を介してＣＰＵ１０１、電力・クロック制御ブリッジ１０４、ＩＰ１０７及びＤＭＡＣ１０８に送信する。ルータ１０３は、中継回路であって、ＣＰＵ１０１、メモリ制御部１０２、電力・クロック制御ブリッジ１０４及びＤＭＡＣ１０８が送受信するアクセス要求信号及びアクセス応答信号を中継する。
【００３４】
電力・クロック制御ブリッジ１０４は、ＩＰ１０７とルータ１０３の間のアクセス要求信号及びアクセス応答信号の中継を行うブリッジ回路であると共に、ＩＰ１０７への電力供給とクロック供給を制御する制御回路でもある。電力供給部１０５は、電源１５から電力供給を受け、さらに、電力・クロック制御ブリッジ１０４からの指令に基づいて、ＩＰ１０７への電力供給を開始する。また、電力供給部１０５は、電力・クロック制御ブリッジ１０４からの指令とは無関係に、ＩＰ１０７以外の半導体集積回路１１に含まれる図示を省略する各機能モジュールに電力を供給する機能も有する。
【００３５】
次に、電力・クロック制御ブリッジ１０４と電力供給部１０５の間で信号線を介して行われる通信について説明する。尚、本明細書中では、説明の便宜上、信号を活性状態に遷移させることを“アサート”、信号が活性状態であることを“アサート状態”といい、さらに、信号を不活性状態に遷移させることを“ディアサート”、信号が不活性状態であることを“ディアサート状態”という。例えば、機能モジュールＡが機能モジュールＢに電力供給を要求する信号（以下、電力供給要求信号とも記す）がアサート状態であれば、機能モジュールＢは、機能モジュールＡが電力供給を要求していると認識し、一方、ディアサート状態であれば、機能モジュールＡが電力供給を要求していないと認識する。機能モジュールＡは、電力供給を開始するときに電力供給要求信号をアサートし、電力供給を停止するときに電力供給要求信号をディアサートする。
【００３６】
電力・クロック制御ブリッジ１０４は、ＩＰ１０７への電力供給を行うときには電力供給部１０５に対する電力供給要求信号をアサート状態に保持し、ＩＰ１０７への電力供給を停止するときには電力供給要求信号をディアサート状態に保持する。
【００３７】
電力供給部１０５は、電力供給要求信号がアサート状態になったことを検知すると、ＩＰ１０７への電力供給を開始し、ＩＰ１０７に安定した電力が供給されるようになると、電力・クロック制御ブリッジ１０４に対する電力供給応答信号をアサートする。一方、電力供給部１０５は、電力供給要求信号がディアサート状態になったことを検知すると、ＩＰ１０７への電力供給を停止し、電力・クロック制御ブリッジ１０４に対する電力供給応答信号をディアサートする。
【００３８】
クロック供給部１０６は、クロック信号の供給を受け、さらに、電力・クロック制御ブリッジ１０４からの指令に基づいて、ＩＰ１０７へのクロック供給を開始する。また、クロック供給部１０６は、電力・クロック制御ブリッジ１０４からの指令とは無関係に、ＩＰ１０７以外の半導体集積回路１１に含まれる各機能モジュールにクロックを供給する機能も有する。
【００３９】
次に、電力・クロック制御ブリッジ１０４とクロック供給部１０６の間で行われる通信について説明する。電力・クロック制御ブリッジ１０４は、ＩＰ１０７へのクロック供給を行うときにはクロック供給部１０６に対するクロック供給要求信号をアサート状態に保持し、ＩＰ１０７へのクロック供給を停止するときにはクロック供給要求信号をディアサート状態に保持する。
【００４０】
クロック供給部１０６は、クロック供給要求信号がアサート状態になったことを検知すると、ＩＰ１０７へのクロック供給を開始し、ＩＰ１０７に安定したクロックが供給されるようになると、電力・クロック制御ブリッジ１０４に対するクロック供給応答信号をアサートする。一方、クロック供給部１０６は、クロック供給要求信号がディアサート状態になったことを検知すると、ＩＰ１０７へのクロック供給を停止し、電力・クロック制御ブリッジ１０４に対するクロック供給応答信号をディアサートする。
【００４１】
ＩＰ１０７は、論理回路であって、電力供給及びクロック供給が開始されることにより動作する。ＩＰ１０７は、電力・クロック制御ブリッジ１０４からアクセス要求信号を受信して、このアクセス要求信号に応じた処理を実行し、電力・クロック制御ブリッジ１０４を介してＣＰＵ１０１やＤＭＡＣ１０８にアクセス要求信号に応じたアクセス応答信号を送信する。また、ＩＰ１０７は、自らがアクセス要求信号元となり、電力・クロック制御ブリッジ１０４にアクセス要求信号を送信することによって、メモリ１２等にアクセスする。さらに、ＩＰ１０７は、ＩＰ１０７内部の状態を信号線によって電力・クロック制御ブリッジ１０４に通知する機能を有する。
【００４２】
ＤＭＡＣ１０８は、電力・クロック制御ブリッジ１０４からＤＭＡ転送開始信号を取込み、この信号の変化を契機としてメモリ１２から読込んだデータをＩＰ１０７に送信するＤＭＡ転送を行う。割込みコントローラ１０９は、電力・クロック制御ブリッジ１０４からの割込み信号をＣＰＵ１０１に中継する。
【００４３】
次に、半導体集積回路１１の外部に接続された各種デバイスについて説明する。メモリ１２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等のメモリである。モード信号生成部１３は、モード信号を生成して電力・クロック制御ブリッジ１０４に供給する回路である。モード信号は、初期化完了時点におけるＩＰ１０７の電力供給状態及びクロック供給状態を指定する信号である。リセット信号生成部１４は、リセット信号を生成して電力・クロック制御ブリッジ１０４に供給する回路である。リセット信号は、半導体集積回路１１内部の初期化を指令する信号である。リセット信号生成部１４は、半導体集積回路１１の使用を開始するときにリセット信号を一定期間アサートする。電源１５は、電力供給部１０５に電力を供給する装置であって、この電力は電源線やグランド線等を含む電力線によって供給される。クロック信号生成部１６は、水晶振動子等を用いた発振回路を含み、クロック信号を生成してクロック供給部１０６に供給する回路である。
【００４４】
次に、半導体集積回路１１の初期化時におけるＩＰ１０７の電力供給状態及びクロック供給状態の決定について説明する。半導体集積回路１１の使用開始時には、リセット信号生成部１４によってリセット信号が一定期間アサートされる。リセット信号による初期化時にＩＰ１０７への電力供給やクロック供給が開始されるか否かは、モード信号の値に基づいて、電力・クロック制御ブリッジ１０４が決定する。電力・クロック制御ブリッジ１０４は、リセット信号がアサートされているときには、モード信号の値に基づいて電力供給要求信号とクロック供給要求信号の状態を決定する。
【００４５】
図２には、リセット信号がアサート時でのモード信号、電力供給要求信号及びクロック供給要求信号の関係が例示される。リセット信号アサート時にモード信号が“００”であれば、電力・クロック制御ブリッジ１０４は、電力供給要求信号とクロック供給信号を両方ともディアサート状態とする。これにより、ＩＰ１０７への電力供給及びクロック供給が停止される。モード信号が“０１”であれば、電力・クロック制御ブリッジ１０４は、電力供給要求信号をアサート状態に、クロック供給要求信号をディアサート状態とする。これにより、ＩＰ１０７への電力供給が開始され、クロック供給が停止される。モード信号が“１０”であれば、電力・クロック制御ブリッジ１０４は、電力供給要求信号をディアサート状態に、クロック供給要求信号をアサート状態とする。これにより、ＩＰ１０７への電力供給が停止され、クロック供給が開始される。モード信号が“１１”であれば、電力・クロック制御ブリッジ１０４は、電力供給要求信号とクロック供給要求信号を両方ともアサート状態とする。これにより、ＩＰ１０７への電力供給及びクロック供給が開始される。一方、リセット信号のディアサート時には、電力・クロック制御ブリッジ１０４はモード信号を無視して、後述するＩＰ１０７が出力する状態信号に基づいて電力供給要求信号及びクロック供給要求信号の状態を決定する（図２０〜図２３参照）。
【００４６】
従って、半導体集積回路１１に図示を省略するリセット信号入力端子及びモード信号入力端子を設けることによって、初期化時におけるＩＰ１０７の電力供給状態及びクロック供給状態を決定できる。
【００４７】
次に、初期化完了後のＩＰ１０７への電力供給とクロック供給の制御について説明する。初期化完了後のＩＰ１０７への電力供給とクロック供給の制御は、ルータ１０３からＩＰ１０７へのアクセス要求信号を、電力・クロック制御ブリッジ１０４が監視した結果に基づいて行われる。
【００４８】
図３には、電力・クロック制御ブリッジ１０４の構成が例示される。電力・クロック制御ブリッジ１０４は、バスインタフェース３０１（以下、バスＩＦ３０１と記す）と、電力供給要求信号生成部３０２と、クロック供給要求信号生成部３０３と、代理応答生成部３０４と、供給制御部３０５とを備えている。バスＩＦ３０１は、ルータ１０３、ＩＰ１０７、代理応答生成部３０４及び供給制御部３０５の間でアクセスを中継する中継回路である。
【００４９】
図４には、バスＩＦ３０１が中継するアクセスの流れが例示される。バスＩＦ３０１が中継するアクセスは、図示のように、ターゲットアクセスとイニシエータアクセスに大別できる。ターゲットアクセスは、ルータ１０３からアクセス要求信号が送信され、このアクセス要求信号に応じたアクセス応答がルータ１０３に返される一連のアクセスである。イニシエータアクセスは、ＩＰ１０７からアクセス要求信号が送信され、このアクセス要求信号に応じたアクセス応答がＩＰ１０７に返される一連のアクセスである。
【００５０】
まず、ターゲットアクセスの処理について説明する。ルータ１０３からアクセス要求信号を受信したバスＩＦ３０１は、このアクセス要求信号に含まれるアドレスに基づいて、アクセス要求信号の転送先を判断し、アクセス要求信号をＩＰ１０７、供給制御部３０５のいずれかに送信する。転送先がＩＰ１０７と判断されたアクセス要求信号は、代理応答生成部３０４にも送信される。そして、バスＩＦ３０１は、アクセス要求信号に応じたアクセス応答信号をＩＰ１０７、供給制御部３０５及び代理応答生成部３０４のいずれかから受信し、このアクセス応答信号をルータ１０３に送信する。また、バスＩＦ３０１は、後述する代理応答生成部３０４からのリトライ信号に基づいて、ＩＰ１０７にアクセス要求信号を再送信する機能を有する。再送信されたアクセス要求信号は、代理応答生成部３０４には送信されず、ＩＰ１０７にのみ送信される。
【００５１】
次に、イニシエータアクセスの処理について説明する。バスＩＦ３０１は、ＩＰ１０７から受信したアクセス要求信号をルータ１０３に送信し、ルータ１０３から供給されるアクセス要求信号に応じたアクセス応答信号をＩＰ１０７に送信する。
【００５２】
次に、供給制御部３０５について説明する。供給制御部３０５は、ルータ１０３からＩＰ１０７へのアクセス要求信号の特徴を検出し、この検出結果に基づいて、バスＩＦ３０１、電力供給要求信号生成部３０２、クロック供給信号生成部３０３及び代理応答生成部３０４に制御信号を出力する。アクセス要求信号には、アドレス、ライトデータ、アクセス属性等が含まれる。アクセス属性は、アクセスがリード（リードアクセスとも記す）であるかライト（ライトアクセスとも記す）であるかを示す情報である。供給制御部３０５は、ルータ１０３からＩＰ１０７へのアクセス要求信号の特徴を保持するレジスタ群を有する。このレジスタ群には、ルータ１０３を介してＣＰＵ１０１等から値を書込んだり、読出したりできる。また、供給制御部３０５は、バスＩＦ３０１からＩＰ１０７へのアクセス要求信号を取込む。
【００５３】
供給制御部３０５は、図５に示すように各レジスタを有する。まず、電力供給開始の契機となるアクセス要求信号の特徴を保存するためのレジスタについて説明する。電力供給開始アドレスレジスタ（ＰＳＳＡＲ）は、電力供給開始信号をアサートする契機となるアドレスを設定するためのレジスタである。電力供給開始アドレスイネーブルレジスタ（ＰＳＳＡＥＲ）は、電力供給開始アドレスレジスタの値を参照するか否かを設定するためのレジスタである。電力供給開始ライトデータレジスタ（ＰＳＳＷＤＲ）は、電力供給開始信号をアサートする契機となるライトデータを設定するためのレジスタである。電力供給開始ライトデータイネーブルレジスタ（ＰＳＳＷＤＥＲ）は、電力供給開始ライトデータレジスタの値を参照するか否かを設定するためのレジスタである。電力供給開始アクセス属性レジスタ（ＰＳＳＡＡＲ）は、電力供給開始信号をアサートする契機となるアクセス属性を設定するためのレジスタである。電力供給開始アクセス属性イネーブルレジスタ（ＰＳＳＡＡＥＲ）は、電力供給開始アクセス属性レジスタの値を参照するか否かを設定するためのレジスタである。そして、電力供給開始イネーブルレジスタ（ＰＳＳＥＲ）は、電力供給開始信号をアサートするか否かを設定するためのレジスタである。
【００５４】
次に、電力供給停止の契機となるアクセス要求信号の特徴を保存するためのレジスタについて説明する。電力供給停止アドレスレジスタ（ＰＳＩＡＲ）は、電力供給停止信号をアサートする契機となるアドレスを設定するためのレジスタである。電力供給停止アドレスイネーブルレジスタ（ＰＳＩＡＥＲ）は、電力供給停止アドレスレジスタの値を参照するか否かを設定するためのレジスタである。電力供給停止ライトデータレジスタ（ＰＳＩＷＤＲ）は、電力供給停止信号をアサートする契機となるライトデータを設定するためのレジスタである。電力供給停止ライトデータイネーブルレジスタ（ＰＳＩＷＤＥＲ）は、電力供給停止ライトデータレジスタの値を参照するか否かを設定するためのレジスタである。電力供給停止アクセス属性レジスタ（ＰＳＩＡＡＲ）は、電力供給停止信号をアサートする契機となるアクセス属性を設定するためのレジスタである。電力供給停止アクセス属性イネーブルレジスタ（ＰＳＩＡＡＥＲ）は、電力供給停止アクセス属性レジスタの値を参照するか否かを設定するためのレジスタである。電力供給停止リードデータレジスタ（ＰＳＩＲＤＲ）は、電力供給停止信号をアサートする契機となるリードデータを設定するためのレジスタである。電力供給停止リードデータイネーブルレジスタ（ＰＳＩＲＤＥＲ）は、電力供給停止リードデータレジスタの値を参照するか否かを設定するためのレジスタである。そして、電力供給停止イネーブルレジスタ（ＰＳＩＥＲ）は、電力供給停止信号をアサートするか否かを設定するためのレジスタである。
【００５５】
次に、クロック供給開始の契機となるアクセス要求信号の特徴を保存するためのレジスタについて説明する。クロック供給開始アドレスレジスタ（ＣＳＳＡＲ）は、クロック供給開始信号をアサートする契機となるアドレスを設定するためのレジスタである。クロック供給開始アドレスイネーブルレジスタ（ＣＳＳＡＥＲ）は、クロック供給開始アドレスレジスタの値を参照するか否かを設定するためのレジスタである。クロック供給開始ライトデータレジスタ（ＣＳＳＷＤＲ）は、クロック供給開始信号をアサートする契機となるライトデータを設定するためのレジスタである。クロック供給開始ライトデータイネーブルレジスタ（ＣＳＳＷＤＥＲ）は、クロック供給開始ライトデータレジスタの値を参照するか否かを設定するためのレジスタである。クロック供給開始アクセス属性レジスタ（ＣＳＳＡＡＲ）は、クロック供給開始信号をアサートする契機となるアクセス属性を設定するためのレジスタである。クロック供給開始アクセス属性イネーブルレジスタ（ＣＳＳＡＡＥＲ）は、クロック供給開始アクセス属性レジスタの値を参照するか否かを設定するためのレジスタである。そして、クロック供給開始イネーブルレジスタ（ＣＳＳＥＲ）は、クロック供給開始信号をアサートするか否かを設定するためのレジスタである。
【００５６】
次に、クロック供給停止の契機となるアクセス要求信号の特徴を保存するためのレジスタについて説明する。クロック供給停止アドレスレジスタ（ＣＳＩＡＲ）は、クロック供給停止信号をアサートする契機となるアドレスを設定するためのレジスタである。クロック供給停止アドレスイネーブルレジスタ（ＣＳＩＡＥＲ）は、クロック供給停止アドレスレジスタの値を参照するか否かを設定するためのレジスタである。クロック供給停止ライトデータレジスタ（ＣＳＩＷＤＲ）は、クロック供給停止信号をアサートする契機となるライトデータを設定するためのレジスタである。クロック供給停止ライトデータイネーブルレジスタ（ＣＳＩＷＤＥＲ）は、クロック供給停止ライトデータレジスタの値を参照するか否かを設定するためのレジスタである。クロック供給停止アクセス属性レジスタ（ＣＳＩＡＡＲ）は、クロック供給停止信号をアサートする契機となるアクセス属性を設定するためのレジスタである。クロック供給停止アクセス属性イネーブルレジスタ（ＣＳＩＡＡＥＲ）は、クロック供給停止アクセス属性レジスタの値を参照するか否かを設定するためのレジスタである。クロック供給停止リードデータレジスタ（ＣＳＩＲＤＲ）は、クロック供給停止信号をアサートする契機となるリードデータを設定するためのレジスタである。クロック供給停止リードデータイネーブルレジスタ（ＣＳＩＲＤＥＲ）は、クロック供給停止リードデータレジスタの値を参照するか否かを設定するためのレジスタである。そして、クロック供給停止イネーブルレジスタ（ＣＳＩＥＲ）は、クロック供給停止信号をアサートするか否かを設定するためのレジスタである。
【００５７】
次に、供給制御部３０５による電力供給開始信号、電力供給停止信号、クロック供給開始信号、クロック供給停止信号の生成処理について説明する。まず、電力供給開始信号のアサートについて説明する。図６には電力供給開始信号生成回路が例示される。電力供給開始信号は、電力供給開始イネーブルレジスタが電力供給開始信号をアサートすることを示す値‘１’に設定されていて、さらに、以下の３条件が全て成立するときにアサートされる。
【００５８】
第１の条件は、電力供給開始アドレスイネーブルレジスタの値が、電力供給開始アドレスレジスタの設定値を参照しないことを示す値‘０’であるか、又は、電力供給開始アドレスレジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号に含まれるアドレスが一致することである。第２の条件は、電力供給開始ライトデータイネーブルレジスタの値が、電力供給開始ライトデータレジスタの設定値を参照しないことを示す値‘０’であるか、又は、電力供給開始ライトデータレジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号に含まれるライトデータが一致することである。第３の条件は、電力供給開始アクセス属性イネーブルレジスタの値が、電力供給開始アクセス属性レジスタの設定値を参照しないことを示す値‘０’であるか、又は、電力供給開始アクセス属性レジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号のアクセス属性が一致することである。
【００５９】
次に、電力供給停止信号のアサートについて説明する。図７には、電力供給停止信号生成回路が例示される。電力供給停止信号は、電力供給停止イネーブルレジスタが電力供給停止信号をアサートすることを示す値‘１’に設定されていて、さらに、以下の４条件が全て成立するときにアサートされる。
【００６０】
第１の条件は、電力供給停止アドレスイネーブルレジスタの値が、電力供給停止アドレスレジスタの設定値を参照しないことを示す値‘０’であるか、又は、電力供給停止アドレスレジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号に含まれるアドレスが一致することである。第２の条件は、電力供給停止ライトデータイネーブルレジスタの値が、電力供給停止ライトデータレジスタの設定値を参照しないことを示す値‘０’であるか、又は、電力供給停止ライトデータレジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号に含まれるライトデータが一致することである。第３の条件は、電力供給停止リードデータイネーブルレジスタの値が、電力供給停止リードデータレジスタの設定値を参照しないことを示す値‘０’であるか、又は、電力供給停止リードデータレジスタの設定値とＩＰ１０７から供給されるアクセス応答信号に含まれるリードデータが一致することである。第４の条件は、電力供給停止アクセス属性イネーブルレジスタの値が、電力供給停止アクセス属性レジスタの設定値を参照しないことを示す値‘０’であるか、又は、電力供給停止アクセス属性レジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号のアクセス属性が一致することである。
【００６１】
次に、クロック供給開始信号のアサートについて説明する。図８にはクロック供給開始信号生成回路が例示される。クロック供給開始信号は、クロック供給開始イネーブルレジスタがクロック供給開始信号をアサートすることを示す値‘１’に設定されていて、さらに、以下の３条件が全て成立するときにアサートされる。
【００６２】
第１の条件は、クロック供給開始アドレスイネーブルレジスタの値が、クロック供給開始アドレスレジスタの設定値を参照しないことを示す値‘０’であるか、又は、クロック供給開始アドレスレジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号に含まれるアドレスが一致することである。第２の条件は、クロック供給開始ライトデータイネーブルレジスタの値が、クロック供給開始ライトデータレジスタの設定値を参照しないことを示す値‘０’であるか、又は、クロック供給開始ライトデータレジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号に含まれるライトデータが一致することである。第３の条件は、クロック供給開始アクセス属性イネーブルレジスタの値が、クロック供給開始アクセス属性レジスタの設定値を参照しないことを示す値‘０’であるか、又は、クロック供給開始アクセス属性レジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号のアクセス属性が一致することである。
【００６３】
次に、クロック供給停止信号のアサートについて説明する。図９には、クロック供給停止信号生成回路が例示される。クロック供給停止信号は、クロック供給停止イネーブルレジスタがクロック供給停止信号をアサートすることを示す値‘１’に設定されていて、以下の４条件が全て成立するときにアサートされる。
【００６４】
第１の条件は、クロック供給停止アドレスイネーブルレジスタの値が、クロック供給停止アドレスレジスタの設定値を参照しないことを示す値‘０’であるか、又は、クロック供給停止アドレスレジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号に含まれるアドレスが一致することである。第２の条件は、クロック供給停止ライトデータイネーブルレジスタの値が、クロック供給停止ライトデータレジスタの設定値を参照しないことを示す値‘０’であるか、又は、クロック供給停止ライトデータレジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号に含まれるライトデータが一致することである。第３の条件は、クロック供給停止リードデータイネーブルレジスタの値が、クロック供給停止リードデータレジスタの設定値を参照しないことを示す値‘０’であるか、又は、クロック供給停止リードデータレジスタの設定値とＩＰ１０７から供給されるアクセス応答信号に含まれるリードデータが一致することである。第４の条件は、クロック供給停止アクセス属性イネーブルレジスタの値が、クロック供給停止アクセス属性レジスタの設定値を参照しないことを示す値‘０’であるか、又は、クロック供給停止アクセス属性レジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号のアクセス属性が一致することである。
【００６５】
次に、電力供給要求信号生成部３０２について説明する。図１０には、電力供給要求信号生成部３０２の状態遷移が例示される。尚、電力供給要求信号生成部３０２の状態を電力状態という。電力供給要求信号生成部３０２は、リセット信号によって初期化される。電力供給要求信号生成部３０２は、リセット信号がアサートされたときに、モード信号の値が“００”又は“１０”であれば、電力状態は“電力供給ＯＦＦ”となり、モード信号の値が“１１”又は“０１”であれば、電力状態は“電力供給ＯＮ”となる。また、電力供給要求信号生成部３０２は、リセット信号がディアサート状態であって、電力状態が“電力供給ＯＦＦ”であるときに電力供給開始信号がアサートされると、電力状態は“電力供給ＯＮ”に遷移し、電力状態が“電力供給ＯＮ”であるときに電力供給停止信号がアサートされると、電力状態は“電力供給ＯＦＦ”に遷移する。電力供給要求信号生成部３０２は、電力状態に応じて電力供給要求信号の出力値を決定し、例えば図１１に示すように、電力状態が“電力供給ＯＮ”であれば電力供給要求信号をアサート状態に保持し、電力状態が“電力供給ＯＦＦ”であれば電力供給要求信号をディアサート状態に保持する。
【００６６】
次に、クロック供給要求信号生成部３０３について説明する。図１２には、クロック供給要求信号生成部３０３の状態遷移が例示される。尚、クロック供給要求信号生成部３０３の状態をクロック状態という。クロック供給要求信号生成部３０３は、リセット信号によって初期化される。クロック供給要求信号生成部３０３は、リセット信号がアサートされたとき、モード信号の値が“００”又は“０１”であれば、クロック状態は“クロック供給ＯＦＦ”となり、モード信号の値が“１１”又は“１０”であれば、クロック状態は“クロック供給ＯＮ”となる。また、クロック供給要求信号生成部３０３は、リセット信号がディアサート状態であって、クロック状態が“クロック供給ＯＦＦ”であるときにクロック供給開始信号がアサートされると、クロック状態は“クロック供給ＯＮ”に遷移する。そして、クロック供給要求信号生成部３０３は、リセット信号がディアサート状態であって、クロック状態が“クロック供給ＯＮ”であるときにクロック供給停止信号がアサートされると、クロック状態は“クロック供給ＯＦＦ”に遷移する。クロック供給要求信号生成部３０３は、クロック状態に応じてクロック供給要求信号の出力値を決定し、例えば図１３に示すように、クロック状態が“クロック供給ＯＮ”であればクロック供給要求信号をアサート状態に保持し、クロック状態が“クロック供給ＯＦＦ”であればクロック供給要求信号をディアサート状態に保持する。
【００６７】
次に、代理応答生成部３０４について説明する。ＩＰ１０７がバスＩＦ３０１からのアクセス要求信号に応じてアクセス応答信号を送信するためには、ＩＰ１０７への電力供給及びクロック供給が開始されている必要がある。一方、アクセス要求信号を生成した機能モジュール、例えばＣＰＵ１０１は、アクセス要求信号に応じたアクセス応答信号を受信しなければ処理が完了せず、後続の処理を実行できないから、例えばハングアップ等の不具合を生じてしまう。そこで、代理応答生成部３０４は、ＩＰ１０７への電力供給及びクロック供給の制御によってハングアップが発生しないように、ＩＰ１０７に代わってアクセス応答信号（代理応答信号とも記す）をＣＰＵ１０１に送信する。
【００６８】
代理応答生成部３０４は、バスＩＦ３０１からＩＰ１０７へのアクセス要求信号を取込み、ＩＰ１０７へのアクセスを監視する。また、代理応答生成部３０４は、電力供給部１０５から電力供給応答信号を、クロック供給部１０６からクロック供給応答信号を、供給制御部３０５から電力供給開始信号及びクロック供給開始信号をそれぞれ取込み、図１４に示す規則に従って代理応答信号を生成する。以下、各規則について説明する。
【００６９】
代理応答生成部３０４は、ＩＰ１０７がアクセス応答信号を送信可能であるとき、即ち、ＩＰ１０７への電力供給及びクロック供給が開始されているときには、代理応答信号を生成しない。そして、代理応答生成部３０４は、ＩＰ１０７がアクセス応答信号を送信不能であるとき、即ち、ＩＰ１０７への電力供給とクロック供給のいずれか又は両方が停止されているときには、代理応答信号を生成する。
【００７０】
また、代理応答生成部３０４は、ＩＰ１０７がアクセス応答信号不能状態からアクセス応答信号可能状態に遷移すると判断するときには、ＩＰ１０７がアクセス応答信号可能状態に遷移した後にリトライ信号をアサートして、バスＩＦ３０１にアクセス応答信号可能状態に遷移したＩＰ１０７に対してアクセスを再送信させる。
【００７１】
即ち、代理応答生成部３０４は、ＩＰ１０７への電力供給が停止され、クロック供給が開始されているときに、電力供給開始信号がアサートされたときには、電力供給応答信号がアサートされた後にリトライ信号をアサートする。また、代理応答生成部３０４は、ＩＰ１０７への電力供給が開始され、クロック供給が停止されているときに、クロック供給開始信号がアサートされたときには、クロック供給応答信号がアサートされた後にリトライ信号をアサートする。さらに、代理応答生成部３０４は、ＩＰ１０７への電力供給及びクロック供給が停止されているときに、電力供給開始信号とクロック供給開始信号が両方アサートされたときには、電力供給応答信号とクロック供給応答信号が両方ともアサートされた後にリトライ信号をアサートする。
【００７２】
以下、電力・クロック制御ブリッジ１０４が、ＩＰ１０７への電力供給とクロック供給の少なくとも一方を制御するときの動作について説明する。ここでは、一例として、ＩＰ１０７が半導体集積回路１１に接続された表示デバイスに対して表示データを出力する表示コントローラである場合について説明する。
【００７３】
図１５には、ＩＰ１０７の制御レジスタ一覧が例示されている。ＩＰ１０７の制御レジスタには、画像アドレスレジスタ（ＩＡＲ）と、画像水平サイズレジスタ（ＩＨＳＲ）と、画像垂直サイズレジスタ（ＩＰＳＲ）と、表示制御レジスタ（ＩＣＲ）と、表示状態レジスタ（ＩＳＲ）とがある。ＩＰ１０７によって表示処理を行うときには、まず、メモリ１２に被表示データを格納しておく。そして、画像アドレスレジスタには被表示データが格納されたアドレスを設定する。また、画像水平サイズレジスタには被表示画像の水平方向のサイズを設定する。さらに、画像垂直サイズレジスタには被表示画像の垂直方向のサイズを設定する。その上で、表示制御レジスタに‘１’を設定する。表示制御レジスタに‘１’を設定されたＩＰ１０７は、電力・クロック制御ブリッジ１０４、ルータ１０３及びメモリ制御部１０２を介してメモリ１２から被表示データを読込む。そして、ＩＰ１０７は、読込まれたデータを画像水平サイズレジスタ及び画像垂直サイズレジスタによって指定されたフォーマットで、半導体集積回路１１の外部に出力する。ＩＰ１０７は一画面分の処理が完了次第、自動的に次の画面の表示処理に移行する。また、ＩＰ１０７は、表示処理を行っているときには表示状態レジスタを‘１’に設定する。ＩＰ１０７による表示処理を停止するためには、表示制御レジスタに‘０’を書込む。表示制御レジスタに‘０’を書込まれたＩＰ１０７は、１画面分の表示を完了させた後に表示処理を停止し、表示状態レジスタの値を‘０’に更新する。
【００７４】
図１６には、画像表示処理を行うときのＩＰ１０７に対するレジスタアクセスの手順が例示されている。ここでは、ＣＰＵ１０１がソフトウェアを実行することによって、ＩＰ１０７に対するレジスタアクセスを行う。
【００７５】
まず、表示制御レジスタに‘１’を設定する前に、画像アドレスレジスタ、画像水平サイズレジスタ及び画像垂直サイズレジスタの設定を行う（Ｓ１）。ステップＳ１では、これらの３つのレジスタの設定順はＩＰ１０７の動作に影響を与えないので、設定順は任意とする。次に、表示制御レジスタに‘１’を設定する（Ｓ２）。ステップＳ２において、ＩＰ１０７は表示処理を開始し、表示状態レジスタの値を‘１’に更新する。このステップＳ２の状態では、ＩＰ１０７は、表示処理を実行し続けることになる。
【００７６】
次に、表示処理を終了させるためには、表示制御レジスタに‘０’を設定する（Ｓ３）。ステップＳ３では、ＩＰ１０７は、現在処理中の画面の表示処理が完了するまで表示処理を継続し、この現在の画面の表示処理が完了したら表示処理を停止し、表示状態レジスタの値を‘０’に更新する。次に、ＩＰ１０７が表示処理を終了したか否かを確認するために表示状態レジスタ値を読込み（Ｓ４）、読込んだ値が‘０’であるか否かが判定され（Ｓ５）、‘０’が読込まれるまで繰り返し読込み処理が行われる。
【００７７】
ここで、上記したレジスタアクセスを行うソフトウェアに変更を加えずに、ＩＰ１０７への電力供給とクロック供給の少なくとも一方を制御するためには、ソフトウェアがＣＰＵ１０１によって実行される前に、供給制御部３０５の各レジスタ（図５参照）に、図１７〜図１９に示す値を設定すればよい。
【００７８】
図１７には、ＩＰ１０７への電力供給の制御を行うための各レジスタの設定値が例示されている。ここでは、ＩＰ１０７への電力供給が停止され、クロック供給が開始されているとする（図１４参照）。以下、図１７に例示された各レジスタの設定値について具体的に説明する。電力供給開始アドレスイネーブルレジスタと電力供給開始ライトデータイネーブルレジスタには、それぞれ電力供給開始アドレスレジスタと電力供給開始ライトデータレジスタの設定値を参照しないことを示す値を設定する。そして、電力供給開始アクセス属性レジスタには、ライトアクセスを示す値を設定する。
【００７９】
このため、供給制御部３０５は、ＩＰ１０７に対する全てのライトアクセスを契機として電力供給開始信号をアサートする。これにより、供給制御部３０５は、ＩＰ１０７を制御するソフトウェアが、図１６に示したステップＳ１を実行したことを検出して、ＩＰ１０７への電力供給を開始することができる。また、代理応答生成部３０４は、電力供給開始信号のアサートと同時にリトライ信号をアサートし、ＩＰ１０７への電力供給が停止されていたときにＩＰ１０７へ送信されたアクセス要求信号を、ＩＰ１０７への電力供給が開始された後にバスＩＦ３０１から再送信させる。このため、ＩＰ１０７へのアクセス要求信号は、電力供給及びクロック供給が開始されて動作状態となったＩＰ１０７へ送信されることになり、ＩＰ１０７への電力供給を停止しても、ＩＰ１０７にアクセス要求信号を確実に受信させることができる。さらに、代理応答生成部３０４は、ステップＳ１の最初のアクセス要求信号に応じて代理応答信号を送信するので、ＣＰＵ１０１は、後続のアクセス要求信号を実行することができる。
【００８０】
一般的に、電力供給を開始してからＩＰ等の機能モジュールに安定した電力が供給されて、機能モジュールが動作可能になるためには、例えばＣＰＵのクロック周期に比べて長い時間がかかる。このため、仮にアクセス応答信号の送信を機能モジュールが動作可能になった後に行うとすれば、アクセス要求信号を送信したＣＰＵは、長時間のアクセス応答信号待ちで処理が滞ってしまい、処理性能が低下してしまう。これに対して、本実施形態では、代理応答生成部３０４がＩＰ１０７への電力供給が安定するのを待つことなく、代理応答信号を送信するので、アクセス要求信号を送信したＣＰＵ１０１の処理性能は低下することがない。
【００８１】
一方、ＩＰ１０７への電力供給を停止する場合には、電力供給停止アドレスレジスタ、電力供給停止リードデータレジスタ及び電力供給停止アクセス属性レジスタには、ＩＰ１０７の表示状態レジスタのアドレスを示す“ＦＦ００１０１０”、‘０’、リードアクセスを示す値‘１’をそれぞれ設定する。そして、電力供給停止ライトデータイネーブルレジスタには、電力供給停止ライトデータレジスタの値を参照しない値‘０’を設定する。このため、供給制御部３０５は、“ＦＦ００１０１０”をリードし、その結果、表示処理を実行していないことを示す‘０’であることを検出して、電力供給停止信号をアサートする。従って、供給制御部３０５は、ＩＰ１０７を制御するソフトウェアが、図１６に示したステップＳ５の条件分岐が“Ｙｅｓ”となったときに電力供給を停止できる。
【００８２】
図１８には、ＩＰ１０７へのクロック供給の制御を行うための各レジスタの設定値が例示されている。ここでは、ＩＰ１０７への電力供給が開始され、クロック供給が停止されているとする（図１４参照）。供給制御部３０５は、各レジスタの値を図１８に示すように設定することにより、ＩＰ１０７へのレジスタライトによってＩＰ１０７へのクロック供給を開始できる。また、供給制御部３０５は、ＩＰ１０７の表示状態レジスタを示すアドレス“ＦＦ００１０１０”をリードし、その結果、表示処理を実行していないことを示す‘０’であることを検出して、クロック供給停止信号をアサートする。従って、供給制御部３０５は、ＩＰ１０７が表示処理を行っていないときにクロック供給を停止できる。
【００８３】
図１９には、ＩＰ１０７への電力供給とクロック供給の制御を行うための各レジスタの設定値が例示されている。ここでは、ＩＰ１０７への電力供給及びクロック供給が開始されている場合と、電力供給及びクロック供給が停止されている場合とがある（図１４参照）。供給制御部３０５は、各レジスタの値を図１９に示すように設定することにより、ＩＰ１０７へのレジスタライトによってＩＰ１０７への電力供給及びクロック供給を開始できる。また、供給制御部３０５は、ＩＰ１０７の表示状態レジスタを示すアドレス“ＦＦ００１０１０”をリードし、その結果、表示処理を実行していないことを示す‘０’であることを検出して、電力供給停止信号及びクロック供給停止信号をアサートする。従って、供給制御部３０５は、ＩＰ１０７が表示処理を行っていないときに電力供給及びクロック供給を停止できる。
【００８４】
次に、供給制御部３０５によるアクセス要求信号の監視結果ではなく、ＩＰ１０７が出力する状態信号に基づいて、電力供給及びクロック供給を制御する方法について説明する。
【００８５】
この方法を実行する場合には、供給制御部３０５は、図２０に示す各レジスタを有する。状態信号アサート時電力供給開始信号設定レジスタ（ＳＡＰＳＳＳＲ）には、状態信号がアサートしたときの電力供給開始信号の出力値が設定される。状態信号アサート時電力供給停止信号設定レジスタ（ＳＡＰＳＩＳＲ）には、状態信号がアサートしたときの電力供給停止信号の出力値が設定される。状態信号アサート時クロック供給開始設定レジスタ（ＳＡＣＳＳＳＲ）には、状態信号がアサートしたときのクロック供給開始信号の出力値が設定される。状態信号アサート時クロック供給停止信号設定レジスタ（ＳＡＣＳＩＳＲ）には、状態信号がアサートしたときのクロック供給停止信号の出力値が設定される。状態信号ディアサート時電力供給開始信号設定レジスタ（ＳＤＰＳＳＳＲ）には、状態信号がディアサートしたときの電力供給開始信号の出力値が設定される。状態信号ディアサート時電力供給停止信号設定レジスタ（ＳＤＰＳＩＳＲ）には、状態信号がディアサートしたときの電力供給停止信号の出力値が設定される。状態信号ディアサート時クロック供給開始設定レジスタ（ＳＤＣＳＳＳＲ）には、状態信号がディアサートしたときのクロック供給開始信号の出力値が設定される。状態信号ディアサート時クロック供給停止信号設定レジスタ（ＳＤＣＳＩＳＲ）には、状態信号がディアサートしたときのクロック供給停止信号の出力値が設定される。
【００８６】
図２１には、ＩＰ１０７の状態信号に基づいて電力供給の開始及び停止を行うための各レジスタの設定値が例示されている。供給制御部３０５は、各レジスタの値を図２１のように設定することにより、ＩＰ１０７から出力される状態信号がアサートされたときにＩＰ１０７への電力供給を開始でき、状態信号がディアサートされたときにＩＰ１０７への電力供給を停止できる。図２２には、ＩＰ１０７の状態信号に基づいてクロック供給の開始及び停止を行うための各レジスタの設定値が例示されている。供給制御部３０５は、各レジスタの値を図２２のように設定することにより、ＩＰ１０７から出力される状態信号がアサートされたときにＩＰ１０７へのクロック供給を開始でき、状態信号がディアサートされたときにＩＰ１０７へのクロック供給を停止できる。図２３には、ＩＰ１０７の状態信号に基づいて電力供給及びクロック供給の停止を行うための各レジスタの設定値が例示されている。供給制御部３０５は、各レジスタの値を図２３のように設定することにより、ＩＰ１０７から出力される状態信号がアサートされたときに、電力供給及びクロック供給を停止できる。ここで、電力供給及びクロック供給の開始については、図５に示した電力供給開始信号やクロック供給開始信号の契機とするアクセス要求信号の特徴を保存するためのレジスタを用いて行うようにしてもよい。これにより、電力供給及びクロック供給の停止のみを状態信号に基づいて行い、電力供給及びクロック供給の開始をアクセス要求信号の監視結果に基づいて行うことができる。さらに、ＩＰ１０７から出力される状態信号に限らず、適宜の割込み信号を用いて、この割込み信号の変化を検出することにより、ＩＰ１０７への電力供給及びクロック供給の制御を行うようにしてもよい。
【００８７】
このように、アクセス要求信号の監視結果ではなく、状態信号や割込み信号に基づいて電力供給及びクロック供給の制御を行う利点は、ソフトウェアを介在させることなく、ＩＰ１０７を動作又は停止できる点にある。例えば、ＩＰ１０７のように、外部からのアクセスに応答するだけでなく自律的にメモリ１２等にアクセスを行って動作する機能モジュールでは、ＩＰ１０７にアクセスするためのソフトウェアが不要となる。このため、ＩＰ１０７を動作させるために、ＣＰＵ１０１等のＩＰ制御用機能モジュールを動作させる必要がなく、半導体集積回路１１全体の消費電力を低減でき、さらに、処理性能を向上させることができる。
【００８８】
以上のように、電力供給及びクロック供給の制御は、ＩＰ１０７へのアクセス要求信号や電力・クロック制御ブリッジ１０４に供給される信号の変化を契機として行われるので、図１６に示したソフトウェア制御には修正を加える必要がない。また、供給制御部３０５の各レジスタへの設定は、半導体集積回路１１の初期化を完了した後であって、ＩＰ１０７へのアクセスを実行する前であれば、適宜行ってよく、さらに、ＩＰ１０７の表示処理を何回起動又は停止したとしても１回行うだけでよいから、ソフトウェア開発コストの増加を抑えることができる。
【００８９】
また、電力・クロック制御ブリッジ１０４は、ＩＰ１０７への電力供給とクロック供給の少なくとも一方が停止され、ＩＰ１０７がアクセス応答信号を送信できないときには、ＩＰ１０７に代わって代理応答信号を送信するので、ＣＰＵ１０１がハングアップ等の不具合を生じない。そして、電力・クロック制御ブリッジ１０４は、ＩＰ１０７とＣＰＵ１０１間のデータ転送を維持した状態で、ＩＰ１０７への電力供給とクロック供給の両方を停止することができるから、半導体集積回路１１の内部のデータ転送を破綻させることなく、動作時の消費電力だけでなく非動作時のリーク電力も低減できる。さらにまた、ＩＰ１０７への電力供給とクロック供給の制御はＩＰ１０７の外部で行われるので、ＩＰ１０７自体には電力供給とクロック供給の制御のために修正を加える必要がない。そのため、ＩＰ１０７が、修正が不可能又は困難な既存の開発品や外部からの導入品であっても、ＩＰ１０７への電力供給とクロック供給の制御を行う技術を半導体集積回路１１に搭載可能である。
【００９０】
《実施形態２》
本発明の実施形態２に係る半導体集積回路は、上記した実施形態１に係る半導体集積回路１１と比べると、代理応答生成部３０４と供給制御部３０５の機能等が異なる。以下、各実施形態２〜７では、上記した実施形態１と同一機能等を有する部分には同一符号を付し、機能等が異なる部分には符号の末尾にアルファベットを付して区別すると共に、説明が重複する部分については適宜省略した。実施形態２に係る供給制御部３０５Ａは、供給制御部３０５と比べると、電力供給開始アクセス属性レジスタ、電力供給開始アクセス属性イネーブルレジスタ、クロック供給開始アクセス属性レジスタ及びクロック供給開始アクセス属性イネーブルレジスタが除かれている点が異なる。この理由は、実施形態２に係る電力・クロック制御ブリッジ１０４は、ＩＰ１０７への全てのリードアクセスに対して、実施形態２に係る代理応答生成部３０４Ａが生成する代理応答信号ではなく、ＩＰ１０７が生成する正規のアクセス応答信号を送信するからである。
【００９１】
以下、供給制御部３０５Ａによる電力供給開始信号、クロック供給開始信号の生成処理について説明する。尚、電力供給停止信号、クロック供給停止信号の生成処理は実施形態１と同一である。まず、電力供給開始信号のアサートについて説明する。図２４には、電力供給開始信号生成回路が例示される。電力供給開始信号は、電力供給開始イネーブルレジスタが電力供給開始信号をアサートすることを示す値‘１’に設定されていて、さらに、ＩＰ１０７へのアクセスがリードアクセスであるか、又は、以下の２条件が全て成立するときにアサートされる。
【００９２】
第１の条件は、電力供給開始アドレスイネーブルレジスタの値が、電力供給開始アドレスレジスタの設定値を参照しないことを示す値‘０’であるか、又は、電力供給開始アドレスレジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号に含まれるアドレスが一致することである。第２の条件は、電力供給開始ライトデータイネーブルレジスタの値が、電力供給開始ライトデータレジスタの設定値を参照しないことを示す値‘０’であるか、又は、電力供給開始ライトデータレジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号に含まれるライトデータが一致することである。
【００９３】
次に、クロック供給開始信号のアサートについて説明する。図２５には、クロック供給開始信号生成回路が例示される。クロック供給開始信号は、クロック供給開始イネーブルレジスタがクロック供給開始信号をアサートすることを示す値‘１’に設定されていて、さらに、ＩＰ１０７へのアクセスがリードアクセスであるか、又は、以下の２条件が全て成立するときにアサートされる。
【００９４】
第１の条件は、クロック供給開始アドレスイネーブルレジスタの値が、クロック供給開始アドレスレジスタの設定値を参照しないことを示す値‘０’であるか、又は、クロック供給開始アドレスレジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号に含まれるアドレスが一致することである。第２の条件は、クロック供給開始ライトデータイネーブルレジスタの値が、クロック供給開始ライトデータレジスタの設定値を参照しないことを示す値‘０’であるか、又は、クロック供給開始ライトデータレジスタの設定値とバスＩＦ３０１から供給されるアクセス要求信号に含まれるライトデータが一致することである。
【００９５】
また、代理応答生成部３０４Ａは、バスＩＦ３０１からアクセス属性信号を取込み、バスＩＦ３０１がＩＰ１０７へ送信しているアクセス要求信号がリードアクセスであるかライトアクセスであるかを判別し、図２６の規則に従って代理応答信号を生成する。代理応答生成部３０４Ａは、アクセスがリードアクセスであれば、ＩＰ１０７への電力供給及びクロック供給の開始又は停止とは無関係に、ＩＰ１０７へのアクセス要求信号に応じた代理応答信号を生成せず、リトライ信号のアサートも行わない。そして、供給制御部３０５Ａは、代理応答生成部３０４Ａが代理応答信号の送信を停止した後に、ＩＰ１０７への電力供給及びクロック供給を開始する。一方、代理応答生成部３０４Ａは、アクセスがライトアクセスであれば、代理応答生成部３０４と同様に動作する。
【００９６】
即ち、代理応答生成部３０４Ａは、アクセス応答信号に正確なリードデータを付加できない状態にあるＩＰ１０７に対して、アクセス要求信号が送信された場合には、代理応答信号の生成やリトライ信号のアサートを行わない。従って、実施形態２に係る半導体集積回路では、全てのリードアクセスに対して、正確なリードデータが付加された正規のアクセス応答信号をＩＰ１０７から送信することができる。
【００９７】
《実施形態３》
本発明の実施形態３に係る半導体集積回路１１Ａは、半導体集積回路１１と比べると、図２７に示すように、複数のＣＰＵ１０１Ａ，１０１Ｂが配置され、ＤＭＡＣ１０８及び割込みコントローラ１０９が除かれた点が異なり、そのため、電力・クロック制御ブリッジ１０４Ａの機能等が異なる。ここでは、各ＣＰＵ１０１Ａ，１０１Ｂがそれぞれ複数のプロセスを時分割等の手法によって並列実行し、特定のＣＰＵが実行する特定のプロセスのみがＩＰ１０７への電力供給とクロック供給の制御を行う場合について説明する。
【００９８】
ＣＰＵ１０１Ａ，１０１Ｂは、ルータ１０３及びメモリ制御部１０２を介してメモリ３２にアクセスし、このメモリに格納されているプログラムを実行することによって、半導体集積回路１１Ａ内外の制御を行う。ＣＰＵ１０１Ａ，１０１Ｂは、ルータ１０３を介して電力・クロック制御ブリッジ１０４Ａ及びＩＰ１０７にアクセス要求信号を送信するときに、アクセス要求信号がＣＰＵ１０１Ａ，１０１Ｂのいずれから送信されたかを電力・クロック制御ブリッジ１０４Ａが識別できるように、それぞれのマスタＩＤをアクセス要求信号に付加する。ここでは、ＣＰＵ１０１ＡのマスタＩＤを‘０’、ＣＰＵ１０１ＢのマスタＩＤを‘１’とする。また、ＣＰＵ１０１Ａ，１０１Ｂは、アクセス要求信号を送信するときに、アクセス要求信号を送信するプロセスのプロセスＩＤを電力・クロック制御ブリッジ１０４Ａが識別できるように、プロセスＩＤをアクセス要求信号に付加する。ルータ１０３は、ＣＰＵ１０１Ａ，１０１Ｂからのアクセス要求信号を電力・クロック制御ブリッジ１０４Ａに中継するときに、ＣＰＵ１０１Ａ，１０１Ｂが出力するマスタＩＤ及びプロセスＩＤを同時に送信する。
【００９９】
次に、半導体集積回路１１Ａの初期化完了後のＩＰ１０７への電力供給とクロック供給の制御について説明する。初期化完了後のＩＰ１０７への電力供給及びクロック供給の制御は、ルータ１０３からＩＰ１０７へのアクセス要求信号を、電力・クロック制御ブリッジ１０４Ａが監視した結果に基づいて行われる。アクセス要求信号には、アドレス、ライトデータ、アクセス属性だけでなく、マスタＩＤ、プロセスＩＤが含まれる。
【０１００】
電力・クロック制御ブリッジ１０４Ａは、電力・クロック制御ブリッジ１０４と比べると、例えば、バスＩＦ３０１からＩＰ１０７へのアクセス要求信号を取込む供給制御部３０５Ｂに含まれるレジスタの種類が異なる。具体的には、実施形態３に係る供給制御部３０５Ｂは、供給制御部３０５に比べると、マスタＩＤレジスタ（ＭＩＤＲ）、マスタＩＤイネーブルレジスタ（ＭＩＤＥＲ）、プロセスＩＤレジスタ（ＰＩＤＲ）及びプロセスＩＤイネーブルレジスタ（ＰＩＤＥＲ）が含まれる点が異なる。マスタＩＤレジスタは、電力・クロック制御ブリッジ１０４Ａの電力・クロック制御を行う機能モジュールのマスタＩＤを保存するためのレジスタであり、ルータ１０３を介してＣＰＵ１０１Ａ，１０１Ｂから読み書き可能である。マスタＩＤイネーブルレジスタは、このマスタＩＤレジスタの値を参照するか否かを設定するためのレジスタである。プロセスＩＤレジスタは、電力・クロック制御ブリッジ１０４Ａの電力・クロック制御を行うソフトウェアのプロセスＩＤを保存するためのレジスタであり、ルータ１０３を介してＣＰＵ１０１Ａ，１０１Ｂから読み書き可能である。プロセスＩＤイネーブルレジスタは、このプロセスＩＤレジスタの値を参照するか否かを設定するためのレジスタである。
【０１０１】
次に、供給制御部３０５Ｂによる電力供給開始信号、電力供給停止信号、クロック供給開始信号、クロック供給停止信号の生成処理について説明する。まず、電力供給開始信号のアサートについて説明する。図２８には、電力供給開始信号生成回路が例示されるが、この回路は、図６に示す電力供給開始信号生成回路と比べると、供給制御部３０５Ｂに４つのレジスタが追加されたことにより、２条件が追加された点が異なる。即ち、電力供給開始信号は、電力供給開始イネーブルレジスタが電力供給開始信号をアサートすることを示す値‘１’に設定されていて、さらに、５条件が全て成立するときにアサートされる。第１〜３の条件は、図６において記載した条件と同一である。
【０１０２】
第４の条件（以下、追加条件１とも記す）は、マスタＩＤイネーブルレジスタの値が、マスタＩＤレジスタの設定値を参照しないことを示す値‘０’であるか、又は、マスタＩＤレジスタの値とバスＩＦ３０１から供給されるマスタＩＤの値が一致することである。第５の条件（以下、追加条件２とも記す）は、プロセスＩＤイネーブルレジスタの値が、プロセスＩＤレジスタの設定値を参照しないことを示す値‘０’であるか、又は、プロセスＩＤレジスタの値とバスＩＦ３０１から供給されるプロセスＩＤの値が一致することである。
【０１０３】
次に、電力供給停止信号のアサートについて説明する。図２９には、電力供給停止信号生成回路が例示されるが、この回路は、図７に示す電力供給停止信号生成回路と比べると、２条件が追加された点が異なる。即ち、電力供給停止信号は、電力供給停止イネーブルレジスタが電力供給停止信号をアサートすることを示す値‘１’に設定されていて、さらに、６条件が全て成立するときにアサートされる。第１〜４の条件は、図７において記載した条件と同一である。また、第５の条件は、図２８での追加条件１と同一であり、第６の条件は、追加条件２と同一である。
【０１０４】
次に、クロック供給開始信号のアサートについて説明する。図３０には、クロック供給開始信号生成回路が例示されるが、この回路は、図８に示すクロック供給開始信号生成回路と比べると、２条件が追加された点が異なる。即ち、クロック供給開始信号は、クロック供給開始イネーブルレジスタがクロック供給開始信号をアサートすることを示す値‘１’に設定されていて、さらに、５条件が全て成立するときにアサートされる。第１〜３の条件は、図８において記載した条件と同一である。また、第４の条件は、上記した追加条件１と同一であり、第５の条件は、追加条件２と同一である。
【０１０５】
次に、クロック供給停止信号のアサートについて説明する。図３１には、クロック供給停止信号生成回路が例示されるが、この回路は、図９に示すクロック供給停止信号生成回路と比べると、２条件が追加された点が異なる。即ち、クロック供給停止信号は、クロック供給停止イネーブルレジスタがクロック供給停止信号をアサートすることを示す値‘１’に設定されていて、さらに、６条件が全て成立するときにアサートされる。第１〜４の条件は、図９において記載した条件と同一である。また、第５の条件は、上記した追加条件１と同一であり、第６の条件は、追加条件２と同一である。
【０１０６】
以下、電力・クロック制御ブリッジ１０４Ａが、ＩＰ１０７への電力供給とクロック供給の少なくとも一方を制御するときの動作について説明する。ここでは、ＣＰＵ１０１Ａ上で実行されるプロセスＩＤが“８０”であるプロセスのみがＩＰ１０７による表示処理を制御し、ＣＰＵ１０１Ｂ上で実行されるプロセスや、プロセスＩＤが“８０”以外であるプロセスはＩＰ１０７による表示処理の制御を許可されていないものとする。
【０１０７】
まず、ＩＰ１０７への電力供給を制御する場合について説明する。ここでは、ＩＰ１０７への電力供給が停止され、クロック供給が開始されているとする。この場合には、マスタＩＤイネーブルレジスタ、マスタＩＤレジスタ、プロセスＩＤイネーブルレジスタ及びプロセスＩＤレジスタに、図３２に示す値を設定すればよい。また、供給制御部１０５Ｂに含まれる、マスタＩＤイネーブルレジスタ、マスタＩＤレジスタ、プロセスＩＤイネーブルレジスタ及びプロセスＩＤレジスタ以外のレジスタには、図１７に示した設定値をそれぞれ設定する。
【０１０８】
以下、図３２に例示された各レジスタの設定値について具体的に説明する。マスタＩＤイネーブルレジスタには、マスタＩＤレジスタの設定値を参照することを示す値‘１’を設定する。マスタＩＤレジスタの設定値が‘０’であるので、マスタＩＤとして‘０’を出力するＣＰＵ１０１Ａからのアクセス要求信号のみが電力供給の制御に使用されることになる。同様に、プロセスＩＤイネーブルレジスタには、プロセスＩＤレジスタの設定値を参照することを示す値‘１’を設定する。プロセスＩＤレジスタ設定値が“８０”であるので、プロセスＩＤとして“８０”を出力するプロセスによるアクセス要求信号のみが電力供給の制御に使用されることになる。従って、ＣＰＵ１０１Ａ上で実行されるプロセスＩＤが“８０”のプロセスによって送信されたアクセス要求信号に基づいて、電力供給の制御が実行される。
【０１０９】
ここで、上記処理を図１６に示したレジスタアクセスの手順に対応させて説明する。供給制御部３０５Ｂは、ＣＰＵ１０１Ａ上で実行されるプロセスＩＤが“８０”であるプロセスが、ステップＳ１を実行したことを検出して、ＩＰ１０７への電力供給を開始することができる。また、供給制御部３０５ＢがＩＰ１０７への電力供給を停止する動作は、実施形態１と略同様であって、例えば、ＣＰＵ１０１Ａ上で実行されるプロセスＩＤが“８０”であるプロセスがステップＳ５を実行し、このステップＳ５の条件分岐が“Ｙｅｓ”となったときに電力供給を停止できる。
【０１１０】
また、供給制御部３０５Ｂに含まれるレジスタに、図３２に示した値と図１８に示した値を設定してもよい。この場合には、供給制御部３０５Ｂは、ＣＰＵ１０１Ａ上で実行されるプロセスＩＤが“８０”であるプロセスによって実行されたＩＰ１０７へのレジスタライトによって、ＩＰ１０７へのクロック供給を開始できる。そして、供給制御部３０５Ｂは、ＩＰ１０７の表示状態レジスタを示すアドレス“ＦＦ００１０１０”をリードし、その結果、表示処理を実行していないことを示す‘０’であることを検出して、クロック供給停止信号をアサートする。従って、供給制御部３０５Ｂは、ＩＰ１０７が表示処理を行っていないときにクロック供給を停止できる。
【０１１１】
さらに、供給制御部３０５Ｂに含まれるレジスタ、図３２に示した値と図１９に示した値を設定してもよい。この場合には、供給制御部３０５Ｂは、ＣＰＵ１０１Ａ上で実行されるプロセスＩＤが“８０”であるプロセスによって実行されたＩＰ１０７へのレジスタライトによって、ＩＰ１０７への電力供給及びクロックの供給を開始できる。そして、供給制御部３０５Ｂは、ＩＰ１０７の表示状態レジスタを示すアドレス“ＦＦ００１０１０”をリードし、その結果、表示処理を実行していないことを示す‘０’であることを検出して、電力供給停止信号及びクロック供給停止信号をアサートする。従って、供給制御部３０５Ｂは、ＩＰ１０７が表示処理を行っていないときに電力供給及びクロック供給を停止できる。
【０１１２】
次に、ＣＰＵ１０１Ｂ上で実行されるプロセスやプロセスＩＤが“８０”以外のプロセスがＩＰ１０７にアクセス要求信号を送信したときの電力・クロック制御ブリッジ１０４Ａの動作を説明する。
【０１１３】
供給制御部３０５Ｂは、ＣＰＵ１０１Ｂ上で実行されるプロセスや、プロセスＩＤが“８０”以外のプロセス送信したアクセス要求信号に対しては、電力供給開始信号、電力供給停止信号、クロック供給開始信号、クロック供給停止信号をアサートしない。
【０１１４】
このとき、実施形態３に係る代理応答生成部は、図１４の規則に従い、ＩＰ１０７への電力供給及びクロック供給が開始されているときには、代理応答信号をバスＩＦ３０１に送信せず、ＩＰ１０７への電力供給とクロック供給のいずれか又は両方が停止されているときには、代理応答信号をバスＩＦ３０１に送信する。尚、ここでの代理応答生成部は、電力供給開始信号及びクロック供給開始信号がアサートされないので、リトライ信号をアサートしない。
【０１１５】
即ち、ＩＰ１０７への電力供給とクロック供給のいずれか又は両方が停止され、ＩＰ１０７がアクセス応答信号を送信できないときには、ＩＰ１０７に代わって、電力・クロック制御ブリッジ１０４Ａが代理応答信号を送信する。このとき、電力・クロック制御ブリッジ１０４Ａは、この代理応答信号を、アクセス要求信号を送信したＣＰＵ１０１Ａ，１０１Ｂのいずれかに正しく送信するので、ＣＰＵ１０１Ａ，１０１Ｂ等の機能モジュールの処理が滞ることがない。
【０１１６】
従って、半導体集積回路１１Ａでは、電力供給及びクロック供給の制御の対象とするアクセスを、特定のＣＰＵで実行される特定のプロセスによって実行されたものに限定できるので、ソフトウェアの不具合やコンピュータウィルス等によるプロセスによって、ＩＰ１０７への電力供給やクロック供給が不所望に開始又は停止されることがない。
【０１１７】
《実施形態４》
本発明の実施形態４に係る半導体集積回路は、実施形態３に係る半導体集積回路１１Ａに比べると、複数のＣＰＵ１０１Ａ，１０１Ｂ（以下、第１のマスタ、第２のマスタとも記す）が、ＩＰ１０７への電力供給とクロック供給の制御を行う点が異なる。また、バスＩＦ３０１からＩＰ１０７へのアクセス要求信号を取込む供給制御部３０５Ｃ以外の構成は、半導体集積回路１１Ａと同様としてもよい。このアクセス要求信号には、アドレス、ライトデータ、アクセス属性だけでなく、マスタＩＤが含まれる。
【０１１８】
供給制御部３０５Ｃは、図３３に示すように各レジスタを有する。尚、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタ、クロック供給開始イネーブルレジスタ及びクロック供給停止イネーブルレジスタは、図５において記載したレジスタと同様である。マスタＩＤレジスタＡ（ＭＩＤＲＡ）には、ＩＰ１０７への電力供給とクロック供給の制御を行う第１のマスタのマスタＩＤが保存される。マスタＩＤ電力ステータスレジスタＡ（ＭＩＤＰＳＲＡ）には、第１のマスタによって電力供給がなされているか否かを示す情報が保存される。マスタＩＤクロックステータスレジスタＡ（ＭＩＤＣＳＲＡ）には、第１のマスタによってクロック供給がなされているか否かを示す情報が保存される。マスタＩＤレジスタＢ（ＭＩＤＲＢ）には、ＩＰ１０７への電力供給とクロック供給の制御を行う第２のマスタのマスタＩＤが保存される。マスタＩＤ電力ステータスレジスタＢ（ＭＩＤＰＳＲＢ）には、第２のマスタによって電力供給がなされているか否かを示す情報が保存される。マスタＩＤクロックステータスレジスタＢ（ＭＩＤＣＳＲＢ）には、第２のマスタによってクロック供給がなされているか否かを示す情報が保存される。尚、ここでは、マスタがＩＰ１０７にライトアクセスを行ってから、ＩＰ１０７にリードアクセスを行うまでの期間を、マスタによるＩＰ１０７の使用期間といい、マスタがＩＰ１０７に電力供給及びクロック供給を開始している期間とする。
【０１１９】
供給制御部３０５Ｃは、これらの各レジスタを以下のように設定する。マスタＩＤ電力ステータスレジスタＡには、マスタＩＤレジスタＡに設定された第１のマスタがＩＰ１０７にライトアクセスを行ったときには、第１のマスタによって電力供給が開始されていることを示す値が設定される。また、マスタＩＤ電力ステータスレジスタＡには、第１のマスタがＩＰ１０７にリードアクセスを行ったときには、第１のマスタによって電力供給が停止されていることを示す値が設定される。マスタＩＤ電力ステータスレジスタＢには、マスタＩＤレジスタＢに設定された第２のマスタがＩＰ１０７にライトアクセスを行ったときには、第２のマスタによって電力供給が開始されていることを示す値が設定される。また、マスタＩＤ電力ステータスレジスタＢには、第２のマスタがＩＰ１０７にリードアクセスを行ったときには、第２のマスタによって電力供給が停止されていることを示す値が設定される。マスタＩＤクロックステータスレジスタＡには、マスタＩＤレジスタＡに設定された第１のマスタがＩＰ１０７にライトアクセスを行ったときには、第１のマスタによってクロック供給が開始されていることを示す値が設定される。また、マスタＩＤクロックステータスレジスタＡには、第１のマスタがＩＰ１０７にリードアクセスを行ったときには、第１のマスタによってクロック供給が停止されていることを示す値が設定される。マスタＩＤクロックステータスレジスタＢには、マスタＩＤレジスタＢに設定された第２のマスタがＩＰ１０７にライトアクセスを行ったときには、第２のマスタによってクロック供給が開始されていることを示す値が設定される。また、マスタＩＤクロックステータスレジスタＢには、第２のマスタがＩＰ１０７にリードアクセスを行ったときには、第２のマスタによってクロック供給が停止されていることを示す値が設定される。
【０１２０】
次に、供給制御部３０５Ｃによる電力供給開始信号、電力供給停止信号、クロック供給開始信号、クロック供給停止信号の生成処理について説明する。まず、電力供給開始信号のアサートについて説明する。図３４には、電力供給開始信号生成回路が例示される。電力供給開始信号は、電力供給開始イネーブルレジスタが電力供給開始信号をアサートすることを示す値‘１’に設定されていて、マスタＩＤレジスタＡ又はマスタＩＤレジスタＢに設定されたマスタがＩＰ１０７にライトアクセスを行ったときにアサートされる。
【０１２１】
次に、電力供給停止信号のアサートについて説明する。図３５には、電力供給停止信号生成回路が例示される。電力供給停止信号は、電力供給停止イネーブルレジスタが電力供給停止信号をアサートすることを示す値‘１’に設定されていて、さらに、以下の２条件のうちのいずれかが成立したときにアサートされる。
【０１２２】
第１の条件は、マスタＩＤ電力ステータスレジスタＢに設定されたマスタによって電力供給がなされていない旨を示す情報が格納されているときに、マスタＩＤレジスタＡに設定されたマスタがリードアクセスを行うことである。第２の条件は、マスタＩＤ電力ステータスレジスタＡに設定されたマスタによって電力供給がなされていない旨を示す情報が格納されているときに、マスタＩＤレジスタＢに設定されたマスタがリードアクセスを行うことである。
【０１２３】
次に、クロック供給開始信号のアサートについて説明する。図３６には、クロック供給開始信号生成回路が例示される。クロック供給開始信号は、クロック供給開始イネーブルレジスタがクロック供給開始信号をアサートすることを示す値‘１’に設定されていて、マスタＩＤレジスタＡ又はマスタＩＤレジスタＢに設定されたマスタがＩＰ３０７にライトアクセスを行ったときにアサートされる。
【０１２４】
次に、クロック供給停止信号のアサートについて説明する。図３７には、クロック供給停止信号生成回路が例示される。クロック供給停止信号は、クロック供給停止イネーブルレジスタがクロック供給停止信号をアサートすることを示す値‘１’に設定されていて、以下の２条件のうちのいずれかが成立したときにアサートされる。
【０１２５】
第１の条件は、マスタＩＤクロックステータスレジスタＢに設定されたマスタによってクロック供給がなされていない旨を示す情報が格納されているときに、マスタＩＤレジスタＡに設定されたマスタがリードアクセスを行うことである。第２の条件は、マスタＩＤクロックステータスレジスタＡに設定されたマスタによってクロック供給がなされていない旨を示す情報が格納されているときに、マスタＩＤレジスタＢに設定されたマスタがリードアクセスを行うことである。
【０１２６】
以下、供給制御部３０５Ｃの動作をレジスタ設定値に基づいて説明する。まず、クロック供給の制御を行わず、電力供給の制御を行う場合、即ち、供給制御部３０５Ｃが、ＩＰ１０７へのクロック供給を常に開始し、電力供給を開始又は停止する動作について説明する。まず、初期化完了直後に、ＩＰ１０７への電力供給を停止し、クロック供給を開始するために、図２に示すモード信号を“１０”とする。供給制御部３０５Ｃは、初期化時にモード信号を参照して、マスタＩＤ電力ステータスレジスタＡ及びマスタＩＤ電力ステータスレジスタＢには、電力供給を行っていない旨を示す‘０’を設定し、マスタＩＤクロックステータスレジスタＡ及びマスタＩＤクロックステータスレジスタＢには、クロック供給を行っている旨を示す‘１’を設定する。
【０１２７】
また、供給制御部３０５Ｃの各レジスタには、クロック供給の制御を行わず、電力供給の制御を行うために、図３８に示す値をそれぞれ設定する。即ち、電力供給開始イネーブルレジスタには、電力供給開始信号をアサートすることを示す値‘１’を設定する。電力供給停止イネーブルレジスタには、電力供給停止信号をアサートすることを示す値‘１’を設定する。クロック供給開始イネーブルレジスタには、クロック供給開始信号をアサートしないことを示す値を設定する。クロック供給停止イネーブルレジスタには、クロック供給停止信号をアサートしないことを示す値を設定する。マスタＩＤレジスタＡには、ＣＰＵ１０１Ａを示す値‘０’を設定する。マスタＩＤレジスタＢには、ＣＰＵ１０１Ｂを示す値‘１’を設定する。
【０１２８】
この場合には、電力供給開始信号は、ＣＰＵ１０１Ａ又はＣＰＵ１０１ＢがＩＰ１０７にライトアクセスを行ったときにアサートされる。電力供給停止信号は、ＣＰＵ１０１Ｂによって電力供給が停止され、ＣＰＵ１０１Ａがリードアクセスを行ったとき、又は、ＣＰＵ１０１Ａによって電力供給が停止され、ＣＰＵ１０１Ｂがリードアクセスを行ったときにアサートされる。また、クロック供給開始信号及びクロック供給停止信号は、クロック供給開始イネーブルレジスタ、クロック供給停止イネーブルレジスタの設定値が各信号をアサートしないようにそれぞれ設定されているので、アサートされない。
【０１２９】
次に、電力供給の制御を行わず、クロック供給の制御を行う場合、即ち、供給制御部３０５Ｃが、ＩＰ１０７への電力供給を常に開始し、クロック供給を開始又は停止する動作について説明する。まず、初期化完了直後に、ＩＰ１０７へのクロック供給を停止し、電力供給を開始するために、モード信号を“０１”とする。供給制御部３０５Ｃは、初期化時にモード信号を参照して、マスタＩＤ電力ステータスレジスタＡ及びマスタＩＤ電力ステータスレジスタＢには、電力供給を行っている旨を示す‘１’を設定し、マスタＩＤクロックステータスレジスタＡ及びマスタＩＤクロックステータスレジスタＢには、クロック供給を行っていない旨を示す‘０’を設定する。
【０１３０】
また、供給制御部３０５Ｃの各レジスタには、電力供給の制御を行わず、クロック供給の制御を行うために、図３９に示す値をそれぞれ設定する。即ち、電力供給開始イネーブルレジスタには、電力供給開始信号をアサートしないことを示す値‘０’を設定する。電力供給停止イネーブルレジスタには、電力供給停止信号をアサートしないことを示す値‘０’を設定する。クロック供給開始イネーブルレジスタには、クロック供給開始信号をアサートすることを示す値‘１’を設定する。クロック供給停止イネーブルレジスタには、クロック供給停止信号をアサートすることを示す値‘１’を設定する。マスタＩＤレジスタＡには、ＣＰＵ１０１Ａを示す値‘０’を設定する。マスタＩＤレジスタＢには、ＣＰＵ１０１Ｂを示す値‘１’を設定する。
【０１３１】
この場合には、クロック供給開始信号は、ＣＰＵ１０１Ａ又はＣＰＵ１０１ＢがＩＰ１０７にライトアクセスを行ったときにアサートされる。クロック供給停止信号は、ＣＰＵ１０１Ｂによってクロック供給が停止され、ＣＰＵ１０１Ａがリードアクセスを行ったとき、又は、ＣＰＵ１０１Ａによってクロック供給が停止され、ＣＰＵ１０１Ｂがリードアクセスを行ったときにアサートされる。また、電力供給開始信号及び電力供給停止信号は、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタの設定値が各信号をアサートしないようにそれぞれ設定されているので、アサートされない。
【０１３２】
次に、電力供給及びクロック供給の制御を行う場合、即ち、供給制御部３０５Ｃが、ＩＰ１０７への電力供給及びクロック供給を開始又は停止する動作について説明する。まず、初期化完了直後に、ＩＰ１０７への電力供給及びクロック供給を停止するために、モード信号を“００”とする。供給制御部３０５Ｃは、初期化時にモード信号を参照して、マスタＩＤ電力ステータスレジスタＡ及びマスタＩＤ電力ステータスレジスタＢには、電力供給を行っていない旨を示す‘０’を設定し、マスタＩＤクロックステータスレジスタＡ及びマスタＩＤクロックステータスレジスタＢには、クロック供給を行っていない旨を示す‘０’を設定する。
【０１３３】
また、供給制御部３０５Ｃの各レジスタには、電力供給及びクロック供給の制御を行うために、図４０に示す値を設定する。即ち、電力供給開始イネーブルレジスタには、電力供給開始信号をアサートすることを示す値‘１’を設定する。電力供給停止イネーブルレジスタには、電力供給停止信号をアサートすることを示す値‘１’を設定する。クロック供給開始イネーブルレジスタには、クロック供給開始信号をアサートすることを示す値‘１’を設定する。クロック供給停止イネーブルレジスタには、クロック供給停止信号をアサートすることを示す値‘１’を設定する。マスタＩＤレジスタＡには、ＣＰＵ１０１Ａを示す値‘０’を設定する。マスタＩＤレジスタＢには、ＣＰＵ１０１Ｂを示す値‘１’を設定する。
【０１３４】
この場合には、電力供給開始信号及びクロック供給開始信号は、ＣＰＵ１０１Ａ又はＣＰＵ１０１ＢがＩＰ１０７にライトアクセスを行ったときにアサートされる。また、電力供給停止信号は、ＣＰＵ１０１Ｂによって電力供給が停止され、ＣＰＵ１０１Ａがリードアクセスを行ったとき、又は、ＣＰＵ１０１Ａによって電力供給が停止され、ＣＰＵ１０１Ｂがリードアクセスを行ったときにアサートされる。クロック供給停止信号は、ＣＰＵ１０１Ｂによってクロック供給が停止され、ＣＰＵ１０１Ａがリードアクセスを行ったとき、又は、ＣＰＵ１０１Ａによってクロック供給が停止され、ＣＰＵ１０１Ｂがリードアクセスを行ったときにアサートされる。
【０１３５】
従って、実施形態４に係る半導体集積回路では、複数のＣＰＵ１０１Ａ，１０１Ｂが並列的にＩＰ１０７を制御するときに、ＣＰＵ１０１Ａ，１０１ＢのうちいずれかがＩＰ１０７を動作させるときにはＩＰ１０７への電力供給を開始し、ＣＰＵ１０１Ａ，１０１ＢのいずれもＩＰ１０７を動作させないときにはＩＰ１０７への電力供給を停止できる。一般的に、複数のＣＰＵが１つのＩＰを制御する場合において、あるＣＰＵから、他のＣＰＵがＩＰを使用しているか否かを判定することは困難であり、そのため、通常、ＩＰへの電力供給は常時行われる。これに対して、実施形態４に係る半導体集積回路は、複数のＣＰＵ１０１Ａ，１０１Ｂが１つのＩＰ１０７を制御する場合であっても、ＩＰ１０７への電力供給を必要最小限の期間だけ行うので、常時電力を供給する従来方式に比べて消費電力を低減できる。
【０１３６】
《実施形態５》
本発明の実施形態５に係る半導体集積回路は、実施形態４に係る半導体集積回路と比べると、ＣＰＵが複数のプロセス（以下、第１のプロセス、第２のプロセスとも記す）を実行するときに、複数のプロセスが、ＩＰ１０７への電力供給とクロック供給の制御を行う点が異なる。また、バスＩＦ３０１からＩＰ１０７へのアクセス要求信号を取込む供給制御部３０５Ｄ以外の構成は、半導体集積回路１１Ａと同様としてもよい。このアクセス要求信号には、アドレス、ライトデータ、アクセス属性だけなく、プロセスＩＤが含まれる。
【０１３７】
供給制御部３０５Ｄは、図４１に示すように各レジスタを有する。尚、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタ、クロック供給開始イネーブルレジスタ及びクロック供給停止イネーブルレジスタは、図５において記載したレジスタと同様である。プロセスＩＤレジスタＡ（ＰＩＤＲＡ）には、ＩＰ１０７への電力・クロック供給制御を行う第１のプロセスのプロセスＩＤが保存される。プロセスＩＤ電力ステータスレジスタＡ（ＰＩＤＰＳＲＡ）には、この第１のプロセスによって電力供給がなされているか否かを示す情報が保存される。プロセスＩＤクロックステータスレジスタＡ（ＰＩＤＣＳＲＡ）には、この第１のプロセスによってクロック供給がなされているか否かを示す情報が保存される。プロセスＩＤレジスタＢ（ＰＩＤＲＢ）には、ＩＰ１０７への電力・クロック供給制御を行う第２のプロセスのプロセスＩＤが保存される。プロセスＩＤ電力ステータスレジスタＢ（ＰＩＤＰＳＲＢ）には、この第２のプロセスによって電力供給がなされているか否かを示す情報が保存される。プロセスＩＤクロックステータスレジスタＢ（ＰＩＤＣＳＲＢ）には、この第２のプロセスによってクロック供給がなされているか否かを示す情報が保存される。尚、ここでは、プロセスがＩＰ１０７にライトアクセスを行ってから、ＩＰ１０７にリードアクセスを行うまでの期間を、プロセスによるＩＰ１０７の使用期間といい、プロセスがＩＰ１０７に電力供給及びクロック供給を開始している期間とする。
【０１３８】
供給制御部３０５Ｄは、これらの各レジスタを以下のように設定する。プロセスＩＤ電力ステータスレジスタＡには、プロセスＩＤレジスタＡに設定された第１のプロセスがＩＰ１０７にライトアクセスを行ったときに、第１のプロセスによって電力供給が開始されていることを示す値が設定される。また、プロセスＩＤ電力ステータスレジスタＡには、第１のプロセスがＩＰ１０７にリードアクセスを行ったときに、第１のプロセスによって電力供給が停止されていることを示す値が設定される。プロセスＩＤ電力ステータスレジスタＢには、プロセスＩＤレジスタＢに設定された第２のプロセスがＩＰ１０７にライトアクセスを行ったときに、第２のプロセスによって電力供給が開始されていることを示す値が設定される。また、プロセスＩＤ電力ステータスレジスタＢには、第２のプロセスがＩＰ１０７にリードアクセスを行ったときに、第２のプロセスによって電力供給が停止されていることを示す値が設定される。プロセスＩＤクロックステータスレジスタＡには、プロセスＩＤレジスタＡに設定された第１のプロセスがＩＰ１０７にライトアクセスを行ったときに、第１のプロセスによってクロック供給が開始されていることを示す値が設定される。また、プロセスＩＤクロックステータスレジスタＡには、第１のプロセスがＩＰ１０７にリードアクセスを行ったときに、第１のプロセスによってクロック供給が停止されていることを示す値が設定される。プロセスＩＤクロックステータスレジスタＢには、プロセスＩＤレジスタＢに設定された第２のプロセスがＩＰ１０７にライトアクセスを行ったときに、第２のプロセスによってクロック供給が開始されていることを示す値が設定される。また、プロセスＩＤクロックステータスレジスタＢには、第２のプロセスがＩＰ１０７にリードアクセスを行ったときに、第２のプロセスによってクロック供給が停止されていることを示す値が設定される。
【０１３９】
次に、供給制御部３０５Ｄによる電力供給開始信号、電力供給停止信号、クロック供給開始信号、クロック供給停止信号の生成処理について説明する。まず、電力供給開始信号のアサートについて説明する。図４２には、電力供給開始信号生成回路が例示される。この電力供給開始信号生成回路は、図３４に示す電力供給開始信号生成回路と比べると、マスタＩＤの代わりにプロセスＩＤを設定する点が異なる。そして、電力供給開始信号のアサートについては、図３４に対応する説明において、マスタＩＤレジスタＡ，ＢをプロセスＩＤレジスタに置き換えたものと同様である。
【０１４０】
次に、電力供給停止信号のアサートについて説明する。図４３には、電力供給停止信号生成回路が例示される。この電力供給停止信号生成回路は、図３５に示す電力供給停止信号生成回路と比べると、マスタＩＤの代わりにプロセスＩＤを設定する点が異なる。そして、電力供給停止信号のアサートについては、図３５に対応する説明において、マスタＩＤレジスタＡ，Ｂ及びマスタＩＤ電力ステータスレジスタＡ，Ｂを、プロセスＩＤレジスタＡ，Ｂ及びプロセスＩＤ電力ステータスレジスタＡ，Ｂに置き換えたものと同様である。
【０１４１】
次に、クロック供給開始信号のアサートについて説明する。図４４には、クロック供給開始信号生成回路が例示される。クロック供給開始信号生成回路は、図３６に示すクロック供給開始信号生成回路と比べると、マスタＩＤの代わりにプロセスＩＤを設定する点が異なる。そして、クロック供給開始信号のアサートについては、図３６に対応する説明において、マスタＩＤレジスタＡ，ＢをプロセスＩＤレジスタに置き換えたものと同様である。
【０１４２】
次に、クロック供給停止信号のアサートについて説明する。図４５には、クロック供給停止信号生成回路が例示される。クロック供給停止信号生成回路は、図３７に示すクロック供給停止信号生成回路と比べると、マスタＩＤの代わりにプロセスＩＤを設定する点が異なる。そして、クロック供給停止信号のアサートについては、図３７に対応する説明において、マスタＩＤレジスタＡ，Ｂ及びマスタＩＤクロックステータスレジスタＡ，Ｂを、プロセスＩＤレジスタＡ，Ｂ及びプロセスＩＤクロックステータスレジスタＡ，Ｂに置き換えたものと同様である。
【０１４３】
以下、供給制御部３０５Ｄの動作をレジスタ設定値に基づいて説明する。まず、クロック供給の制御を行わず、電力供給の制御を行う場合、即ち、供給制御部３０５Ｄが、ＩＰ１０７へのクロック供給を常に開始し、電力供給を開始又は停止する動作について説明する。まず、初期化完了直後に、ＩＰ１０７への電力供給を停止し、クロック供給を開始するために、モード信号を“１０”とする。供給制御部３０５Ｄは、初期化時にモード信号を参照して、プロセスＩＤ電力ステータスレジスタＡ及びプロセスＩＤ電力ステータスレジスタＢには、電力供給を行っていない旨を示す‘０’を設定する。さらに、供給制御部３０５Ｄは、プロセスＩＤクロックステータスレジスタＡ及びプロセスＩＤクロックステータスレジスタＢには、クロック供給を行っている旨を示す‘１’を設定する。
【０１４４】
また、供給制御部３０５Ｄの各レジスタには、クロック供給の制御を行わず、電力供給の制御を行うために、図４６に示す値をそれぞれ設定する。これらの各レジスタのうち、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタ、クロック供給開始イネーブルレジスタ、クロック供給停止イネーブルレジスタの設定値については、図３８に示す設定値と同様である。また、プロセスＩＤレジスタＡには、プロセスＡを示す値“８０”を設定する。プロセスＩＤレジスタＢには、プロセスＢを示す値“ＦＦ”を設定する。
【０１４５】
この場合には、電力供給開始信号は、プロセスＩＤが“８０”又は“ＦＦ”であるプロセスがＩＰ１０７にライトアクセスを行ったときにアサートされる。電力供給停止信号は、プロセスＢによって電力供給が停止され、プロセスＡがリードアクセスを行ったとき、又は、プロセスＡによって電力供給が停止され、プロセスＢがリードアクセスを行ったときにアサートされる。また、クロック供給開始信号及びクロック供給停止信号は、クロック供給開始イネーブルレジスタ、クロック供給停止イネーブルレジスタの設定値が各信号をアサートしないようにそれぞれ設定されているので、アサートされない。
【０１４６】
次に、電力供給の制御を行わず、クロック供給の制御を行う場合、即ち、供給制御部３０５Ｄが、ＩＰ１０７への電力供給を常に開始し、クロック供給を開始又は停止する動作について説明する。まず、初期化完了直後に、ＩＰ１０７へのクロック供給を停止し、電力供給を開始するために、モード信号を“０１”とする。供給制御部３０５Ｄは、初期化時にモード信号を参照して、プロセスＩＤ電力ステータスレジスタＡ及びプロセスＩＤ電力ステータスレジスタＢには、電力供給を行っている旨を示す‘１’を設定する。さらに、供給制御部３０５Ｄは、プロセスＩＤクロックステータスレジスタＡ及びプロセスＩＤクロックステータスレジスタＢには、クロック供給を行っていない旨を示す‘０’を設定する。
【０１４７】
また、供給制御部３０５Ｄの各レジスタには、電力供給の制御を行わず、クロック供給の制御を行うために、図４７に示す値をそれぞれ設定する。これらの各レジスタのうち、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタ、クロック供給開始イネーブルレジスタ、クロック供給停止イネーブルレジスタの設定値については、図３９に示す設定値と同様である。また、プロセスＩＤレジスタＡ，Ｂについては、図４６に示す値と同様である。
【０１４８】
この場合には、クロック供給開始信号は、プロセスＩＤが“８０”又は“ＦＦ”であるプロセスがＩＰ１０７にライトアクセスを行ったときにアサートされる。クロック供給停止信号は、プロセスＢによってクロック供給が停止され、プロセスＡがリードアクセスを行ったとき、又は、プロセスＡによってクロック供給が停止され、プロセスＢがリードアクセスを行ったときにアサートされる。また、電力供給開始信号及び電力供給停止信号は、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタの設定値が各信号をアサートしないようにそれぞれ設定されているので、アサートされない。
【０１４９】
次に、電力供給及びクロック供給の制御を行う場合、即ち、供給制御部３０５Ｄが、ＩＰ１０７への電力供給及びクロック供給を開始又は停止する動作について説明する。まず、初期化完了直後に、ＩＰ１０７への電力供給及びクロック供給を停止するために、モード信号を“００”とする。供給制御部３０５Ｄは、初期化時にモード信号を参照して、プロセスＩＤ電力ステータスレジスタＡ及びプロセスＩＤ電力ステータスレジスタＢには、電力供給を行っていない旨を示す‘０’を設定する。さらに、供給制御部３０５Ｄは、プロセスＩＤクロックステータスレジスタＡ及びプロセスＩＤクロックステータスレジスタＢには、クロック供給を行っていない旨を示す‘０’を設定する。
【０１５０】
また、供給制御部３０５Ｄの各レジスタには、電力供給及びクロック供給の制御を行うために、図４８に示す値を設定する。これらの各レジスタのうち、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタ、クロック供給開始イネーブルレジスタ、クロック供給停止イネーブルレジスタの設定値については、図４０に示す設定値と同様である。また、プロセスＩＤレジスタＡ，Ｂについては、図４６に示す値と同様である。
【０１５１】
この場合には、電力供給開始信号及びクロック供給開始信号は、プロセスＩＤが“８０”又は“ＦＦ”であるプロセスがＩＰ１０７にライトアクセスを行ったときにアサートされる。また、電力供給停止信号は、プロセスＢによって電力供給が停止され、プロセスＡがリードアクセスを行ったとき、又は、プロセスＡによって電力供給が停止され、プロセスＢがリードアクセスを行ったときにアサートされる。クロック供給停止信号は、プロセスＢによってクロック供給が停止され、プロセスＡがリードアクセスを行ったとき、又は、プロセスＢによってクロック供給が停止され、プロセスＡがリードアクセスを行ったときにアサートされる。
【０１５２】
従って、実施形態５に係る半導体集積回路では、複数のプロセスＡ，Ｂが並列的にＩＰ１０７を制御するときに、プロセスＡ，ＢのうちいずれかがＩＰ１０７を動作させるときにはＩＰ１０７への電力供給を開始し、プロセスＡ，ＢのいずれもＩＰ１０７を動作させないときにはＩＰ１０７への電力供給を停止できる。一般的に、複数のプロセスが１つのＩＰを制御する場合において、あるプロセスから、他のプロセスがＩＰを使用しているか否かを判定することは困難であり、そのため、通常、ＩＰへの電力供給は常時行われる。これに対して、実施形態５に係る半導体集積回路は、複数のプロセスＡ，Ｂが１つのＩＰ１０７を制御する場合であっても、ＩＰ１０７への電力供給を必要最小限の期間だけ行うので、常時電力を供給する従来方式に比べて消費電力を低減できる。
【０１５３】
《実施形態６》
本発明の実施形態６に係る半導体集積回路は、ＩＰ１０７への電力供給とクロック供給を開始したときに、単純化されたソフトウェア処理によって、ＩＰ１０７を電力供給状態とクロック供給状態にするものであって、上記した半導体集積回路１１と比べると、電力・クロック制御ブリッジ１０４Ｂの機能等が異なる。電力・クロック制御ブリッジ１０４Ｂは、電力・クロック制御ブリッジ１０４と比べると、図４９に示すようにブリッジＤＭＡＣ３０６が追加された点が異なる。
【０１５４】
図５０には、バスＩＦ３０１が中継するアクセスの流れが例示されている。このアクセスは、図４に示すアクセスと比べると、ターゲットアクセスの処理は同様であり、イニシエータアクセスの処理の処理が異なる。具体的には、バスＩＦ３０１は、ＩＰ１０７又はブリッジＤＭＡＣ３０６から受信したアクセス要求信号をルータ１０３に送信し、ルータ１０３から供給されるアクセス要求信号に応じたアクセス応答信号をＩＰ１０７とブリッジＭＡＣ３０６に送信する。
【０１５５】
ブリッジＤＭＡＣ３０６は、バスＩＦ３０１、ルータ１０３、メモリ制御部１０２を介してメモリ１２からデータを読込み、このデータをＩＰ１０７に書込むＤＭＡＣである。ブリッジＤＭＡＣ３０６は、ＤＭＡ開始信号がアサートされた後に、電力供給応答信号又はクロック供給応答信号がディアサート状態からアサート状態に遷移したことを検出して、メモリ１２からＩＰ１０７へのデータ転送を行う。
【０１５６】
以下、電力・クロック制御ブリッジ１０４Ｂが、ＩＰ１０７への電力供給とクロック供給の制御を行うときの一連の処理について説明する。まず、供給制御部３０５Ｅは、各レジスタの値を図５１に示すように設定する。この場合には、電力供給開始アドレスイネーブルレジスタ及び電力供給開始ライトデータイネーブルレジスタが有効を示す値となる。このため、供給制御部３０５Ｅは、ＩＰ１０７の表示制御レジスタを示すアドレス“ＦＦ００１００Ｃ”に‘１’を書込むライトアクセスが発生したことを契機として、電力供給開始信号とＤＭＡ開始信号をアサートする。ブリッジＤＭＡＣ３０６は、ＤＭＡ開始信号がアサートされたので、電力供給応答信号又はクロック供給応答信号がアサートされるまで待機する。そして、ブリッジＤＭＡＣ３０６は、電力供給応答信号がアサートされたことを契機として、ＤＭＡ転送を行い、メモリ１２に格納されているデータをＩＰ１０７に転送する。
【０１５７】
図５２には、メモリ１２に格納される被ＤＭＡデータが例示される。被ＤＭＡデータは、ライトデータとライトアドレスが１組となっている。ブリッジＤＭＡＣ３０６は、ＩＰ１０７にライトアクセスを実行するとき、メモリ１２から読出されたアドレスをＩＰ１０７へのアドレスとし、メモリ１２から読出されたライトデータをＩＰ１０７へのライトデータとする。
【０１５８】
また、ＩＰ１０７への電力供給の停止については、供給制御部３０５Ｅは、ＩＰ１０７の表示状態レジスタを示すアドレス“ＦＦ００１０１０”をリードし、その結果、表示処理を実行していないことを示す‘０’であることを検出し、電力供給停止信号をアサートする。従って、供給制御部３０５Ｅは、ＩＰ１０７が表示処理を行っていないときに電力供給を停止できる。
【０１５９】
さらに、ＩＰ１０７へのクロック供給の開始又は停止については、供給制御部３０５Ｅは、各レジスタの値を、上記した図５１に示す設定値に代えて、図５３に示す設定値、即ち、クロック供給の開始又は停止に関するレジスタの設定値とすればよい。この場合には、供給制御部３０５Ｅは、ＩＰ１０７の表示状態レジスタを示すアドレス“ＦＦ００１０１０”に‘１’を書込むライトアクセスが発生したことを契機として、クロック供給開始信号とＤＭＡ開始信号をアサートする。ブリッジＤＭＡＣ３０６は、ＤＭＡ開始信号がアサートされたので、電力供給応答信号又はクロック供給応答信号がアサートされるまで待機する。そして、ブリッジＤＭＡＣ３０６は、クロック供給応答信号がアサートされたことを契機として、ＤＭＡ転送を行い、メモリ１２に格納されているデータをＩＰ１０７に転送する。
【０１６０】
以上のように、電力供給及びクロック供給の制御は、開始と停止のいずれも供給制御部３０５Ｅの各レジスタではなく、ＩＰ１０７のレジスタへのアクセスを契機として行われる。また、供給制御部３０５Ｅの各レジスタへの設定は、半導体集積回路の初期化を完了した後であって、ＩＰ１０７の表示処理を実行する前であれば、適宜行ってもよく、さらに、ＩＰ１０７の表示処理を何回起動又は停止したとしても１回行うだけでよいから、ソフトウェア開発コストの増加を抑えることができる。そして、ブリッジＤＭＡＣ３０６は、ＩＰ１０７のレジスタ設定を代行するので、ＣＰＵ１０１はレジスタライトを１回行うだけでよく、消費電力を低減できる。
【０１６１】
《実施形態７》
図５４には、本発明の実施形態７に係る半導体集積回路が例示される。半導体集積回路１１Ｂは、一組のモード信号によって複数のＩＰへの電力供給及びクロック供給を制御するものであって、半導体集積回路１１Ａと比べると、１つのＣＰＵ１０１と、複数のＩＰ１０７Ａ，１０７Ｂとを配置した点が異なる。
【０１６２】
ＩＰ１０７Ａ，１０７Ｂは、論理回路であって、電力供給及びクロック供給が開始されることにより動作する。ＩＰ１０７Ａ，１０７Ｂは、電力・クロック制御ブリッジ１０４Ｃからアクセス要求信号を受信して、このアクセス要求信号に応じた処理を実行し、電力・クロック制御ブリッジ１０４Ｃを介してＣＰＵ１０１にアクセス要求信号に応じたアクセス応答信号を送信する。また、ＩＰ１０７Ａ，１０７Ｂは、自らがアクセス要求信号元となり、電力・クロック制御ブリッジ１０４Ｃにアクセス要求信号を送信することによって、メモリ１２等にアクセスする。さらに、ＩＰ１０７Ａ，１０７Ｂは、ＩＰ１０７Ａ，１０７Ｂ内部の状態を信号線によって電力・クロック制御ブリッジ１０４Ｃに通知する機能を有する。
【０１６３】
次に、半導体集積回路１１Ｂの初期化時におけるＩＰ１０７Ａ，１０７Ｂの電力供給状態及びクロック供給状態の決定について説明する。半導体集積回路１１Ｂの使用開始時には、リセット信号生成部１４によってリセット信号が一定期間アサートされる。リセットによる初期化時にＩＰＡ１０７Ａ及びＩＰＢ１０７Ｂへの電力供給やクロック供給を開始されるか否かは、モード信号の値に基づいて、電力・クロック制御ブリッジ１０４Ｃが決定する。電力・クロック制御ブリッジ１０４Ｃは、リセット信号がアサートされているときには、モード信号の値に基づいて電力供給要求信号Ａ，Ｂ、クロック供給要求信号Ａ，Ｂの出力値を決定する。
【０１６４】
図５５には、リセット信号がアサート時でのモード信号、電力供給要求信号Ａ，Ｂ及びクロック供給要求信号Ａ，Ｂの関係が例示される。リセット信号アサート時にモード信号が“００”であれば、電力・クロック制御ブリッジ１０４Ｃは、電力供給要求信号Ａ，Ｂ、クロック供給要求信号Ａ，Ｂを全てディアサート状態とする。これにより、ＩＰ１０７Ａ，１０７Ｂへの電力供給及びクロック供給が停止される。モード信号が“０１”であれば、電力・クロック制御ブリッジ１０４Ｃは、電力供給要求信号Ａ，Ｂをアサート状態、クロック供給要求信号Ａ，Ｂをディアサート状態とする。これにより、ＩＰ１０７Ａ，１０７Ｂへの電力供給が開始され、クロック供給が停止される。モード信号が“１０”であれば、電力・クロック制御ブリッジ１０４Ｃは、電力供給要求信号Ａ，Ｂをディアサート状態、クロック供給信号Ａ，Ｂをアサート状態とする。これにより、ＩＰ１０７Ａ，１０７Ｂへの電力供給が停止され、クロック供給が開始される。モード信号が“１１”であれば、電力・クロック制御ブリッジ１０４Ｃは、電力供給要求信号Ａ，Ｂ及びクロック供給信号Ａ，Ｂを全てアサート状態とする。これにより、ＩＰＡ１０７Ａ，１０７Ｂへの電力供給及びクロック供給が開始される。一方、リセット信号がディアサート状態であるときには、電力・クロック制御ブリッジ１０４Ｃは、モード信号を無視して、ＩＰ１０７Ａ，１０７Ｂが出力する状態信号に基づいて、電力供給要求信号Ａ，Ｂ、クロック供給要求信号Ａ，Ｂの値を決定する（図２０〜図２３参照）。
【０１６５】
従って、実施形態７に係る半導体集積回路１１Ｂでは、２ビットのモード信号を設定すると共に、図示を省略する一組のモード信号入力端子を設けることによって、複数のＩＰ１０７Ａ，１０７Ｂの初期化時における電力供給状態及びクロック供給状態を決定できるから、低コスト化を図ることができる。
【０１６６】
以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１６７】
例えば、実施形態６に係る半導体集積回路では、ＩＰ１０７へのデータ転送を電力・クロック制御ブリッジ１０４に含まれるブリッジＤＭＡＣ３０６で行うとしたが、これに限らず、ＤＭＡＣ１０８やＣＰＵ１０１で行ってもよい。ＤＭＡＣ１０８でデータ転送を行う場合には、ＤＭＡ開始信号をＤＭＡＣ１０８に供給すればよい。また、ＣＰＵ１０１でデータ転送を行う場合には、ＤＭＡ開始信号を割込みコントローラ１０９に接続し、割込みコントローラ１０９から割込み要求の通知を受信したＣＰＵ１０１がＩＰ１０７へのデータ転送を行うプログラムを実行できるように半導体集積回路１１を構成すればよい。
【図面の簡単な説明】
【０１６８】
【図１】本発明の実施形態１に係る半導体集積回路１１のブロック図である。
【図２】モード信号、電力供給要求信号及びクロック供給要求信号の関係を示す図である。
【図３】電力・クロック制御ブリッジ１０４の構成を示すブロック図である。
【図４】バスＩＦ３０１が中継するアクセスの流れを示す図である。
【図５】供給制御部３０５に含まれるレジスタを例示する図である。
【図６】供給制御部３０５の電力供給開始信号生成回路を例示する回路図である。
【図７】供給制御部３０５の電力供給停止信号生成回路を例示する回路図である。
【図８】供給制御部３０５のクロック供給開始信号生成回路を例示する回路図である。
【図９】供給制御部３０５のクロック供給停止信号生成回路を例示する回路図である。
【図１０】電力供給要求信号生成部３０２の状態を示す状態遷移図である。
【図１１】電力供給要求信号生成部３０２の状態と電力供給要求信号の関係を示す図である。
【図１２】クロック供給要求信号生成部３０３の状態を示す状態遷移図である。
【図１３】クロック供給要求信号生成部３０３の状態とクロック供給要求信号の関係を示す図である。
【図１４】代理応答生成部３０４の代理応答生成規則を示す図である。
【図１５】ＩＰ１０７の制御レジスタを例示する図である。
【図１６】ＩＰ１０７に対するレジスタアクセス手順を示すフローチャートである。
【図１７】クロック供給した状態で電力供給の開始及び停止を行う場合での供給制御部３０５のレジスタ設定を例示する図である。
【図１８】電力供給した状態でクロック供給の開始及び停止を行う場合での供給制御部３０５のレジスタ設定を例示する図である。
【図１９】電力供給及びクロック供給の開始及び停止を行う場合での供給制御部３０５のレジスタ設定を例示する図である。
【図２０】ＩＰ１０７が出力する状態信号に基づいて電力供給及びクロック供給を制御する場合での供給制御部３０５に含まれるレジスタを例示する図である。
【図２１】状態信号に基づいて電力供給の開始及び停止を行う場合での供給制御部３０５のレジスタ設定を例示する図である。
【図２２】状態信号に基づいてクロック供給の開始及び停止を行う場合での供給制御部３０５のレジスタ設定を例示する図である。
【図２３】状態信号に基づいて電力供給及びクロック供給の停止を行う場合での供給制御部３０５のレジスタ設定を例示する図である。
【図２４】本発明の実施形態２に係る供給制御部３０５Ａの電力供給開始信号生成回路を例示する回路図である。
【図２５】供給制御部３０５Ａのクロック供給開始信号生成回路を例示する回路図である。
【図２６】代理応答生成部３０４Ａの代理応答生成規則を示す図である。
【図２７】本発明の実施形態３に係る半導体集積回路１１Ａのブロック図である。
【図２８】供給制御部３０５Ｂの電力供給開始信号生成回路を例示する回路図である。
【図２９】供給制御部３０５Ｂの電力供給停止信号生成回路を例示する回路図である。
【図３０】供給制御部３０５Ｂのクロック供給開始信号生成回路を例示する回路図である。
【図３１】供給制御部３０５Ｂのクロック供給停止信号生成回路を例示する回路図である。
【図３２】ＩＰ１０７への電力供給が停止され、クロック供給が開始された状態において、ＩＰ１０７への電力供給を制御するときの供給制御部３０５Ｂのレジスタ設定を例示する図である。
【図３３】本発明の実施形態４に係る供給制御部３０５Ｃに含まれるレジスタを例示する図である。
【図３４】供給制御部３０５Ｃの電力供給開始信号生成回路を例示する回路図である。
【図３５】供給制御部３０５Ｃの電力供給停止信号生成回路を例示する回路図である。
【図３６】供給制御部３０５Ｃのクロック供給開始信号生成回路を例示する回路図である。
【図３７】供給制御部３０５Ｃのクロック供給停止信号生成回路を例示する回路図である。
【図３８】電力供給を行う場合での供給制御部３０５Ｃのレジスタ設定を例示する図である。
【図３９】クロック供給を行う場合での供給制御部３０５Ｃのレジスタ設定を例示する図である。
【図４０】電力供給及びクロック供給を行う場合での供給制御部３０５Ｃのレジスタ設定を例示する図である。
【図４１】本発明の実施形態５に係る供給制御部３０５Ｄに含まれるレジスタを例示する図である。
【図４２】供給制御部３０５Ｄの電力供給開始信号生成回路を例示する回路図である。
【図４３】供給制御部３０５Ｄの電力供給停止信号生成回路を例示する回路図である。
【図４４】供給制御部３０５Ｄのクロック供給開始信号生成回路を例示する回路図である。
【図４５】供給制御部３０５Ｄのクロック供給停止信号生成回路を例示する回路図である。
【図４６】電力供給を行う場合での供給制御部３０５Ｄのレジスタ設定を例示する図である。
【図４７】クロック供給を行う場合での供給制御部３０５Ｄのレジスタ設定を例示する図である。
【図４８】電力供給及びクロック供給を行う場合での供給制御部３０５Ｄのレジスタ設定を例示する図である。
【図４９】本発明の実施形態６に係る電力・クロック制御ブリッジ１０４Ｂの構成を示すブロック図である。
【図５０】バスＩＦ３０１が中継するアクセスの流れを示す図である。
【図５１】供給制御部３０５Ｅのレジスタ設定を例示する図である。
【図５２】メモリ１２に格納される被ＤＭＡデータを例示する図である。
【図５３】供給制御部３０５Ｅのレジスタ設定を例示する図である。
【図５４】本発明の実施形態７に係る半導体集積回路１１Ｂのブロック図である。
【図５５】モード信号、電力供給要求信号Ａ，Ｂ及びクロック供給要求信号Ａ，Ｂの関係を示す図である。
【符号の説明】
【０１６９】
１１，１１Ａ，１１Ｂ  半導体集積回路
１２  メモリ
１３  モード信号生成部
１４  リセット信号生成部
１５  電源
１６  クロック信号生成部
１０１，１０１Ａ，１０１Ｂ  ＣＰＵ
１０２  メモリ制御部
１０３  ルータ
１０４，１０４Ａ〜Ｃ  電力・クロック制御ブリッジ
１０５  電力供給部
１０６  クロック供給部
１０７，１０７Ａ，１０７Ｂ  ＩＰ
１０８  ＤＭＡＣ
１０９  割込みコントローラ
３０１  バスインタフェース
３０２  電力供給要求信号生成部
３０３  クロック供給要求信号生成部
３０４，３０４Ａ  代理応答生成部
３０５，３０５Ａ〜Ｅ  供給制御部
３０６  ブリッジＤＭＡＣ
【図１】
0004711410.tif 000002
【図２】
0004711410.tif 000003
【図３】
0004711410.tif 000004
【図４】
0004711410.tif 000005
【図５】
0004711410.tif 000006
【図６】
0004711410.tif 000007
【図７】
0004711410.tif 000008
【図８】
0004711410.tif 000009
【図９】
0004711410.tif 000010
【図１０】
0004711410.tif 000011
【図１１】
0004711410.tif 000012
【図１２】
0004711410.tif 000013
【図１３】
0004711410.tif 000014
【図１４】
0004711410.tif 000015
【図１５】
0004711410.tif 000016
【図１６】
0004711410.tif 000017
【図１７】
0004711410.tif 000018
【図１８】
0004711410.tif 000019
【図１９】
0004711410.tif 000020
【図２０】
0004711410.tif 000021
【図２１】
0004711410.tif 000022
【図２２】
0004711410.tif 000023
【図２３】
0004711410.tif 000024
【図２４】
0004711410.tif 000025
【図２５】
0004711410.tif 000026
【図２６】
0004711410.tif 000027
【図２７】
0004711410.tif 000028
【図２８】
0004711410.tif 000029
【図２９】
0004711410.tif 000030
【図３０】
0004711410.tif 000031
【図３１】
0004711410.tif 000032
【図３２】
0004711410.tif 000033
【図３３】
0004711410.tif 000034
【図３４】
0004711410.tif 000035
【図３５】
0004711410.tif 000036
【図３６】
0004711410.tif 000037
【図３７】
0004711410.tif 000038
【図３８】
0004711410.tif 000039
【図３９】
0004711410.tif 000040
【図４０】
0004711410.tif 000041
【図４１】
0004711410.tif 000042
【図４２】
0004711410.tif 000043
【図４３】
0004711410.tif 000044
【図４４】
0004711410.tif 000045
【図４５】
0004711410.tif 000046
【図４６】
0004711410.tif 000047
【図４７】
0004711410.tif 000048
【図４８】
0004711410.tif 000049
【図４９】
0004711410.tif 000050
【図５０】
0004711410.tif 000051
【図５１】
0004711410.tif 000052
【図５２】
0004711410.tif 000053
【図５３】
0004711410.tif 000054
【図５４】
0004711410.tif 000055
【図５５】
0004711410.tif 000056