JP4711410B2 - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP4711410B2
JP4711410B2 JP2005298890A JP2005298890A JP4711410B2 JP 4711410 B2 JP4711410 B2 JP 4711410B2 JP 2005298890 A JP2005298890 A JP 2005298890A JP 2005298890 A JP2005298890 A JP 2005298890A JP 4711410 B2 JP4711410 B2 JP 4711410B2
Authority
JP
Japan
Prior art keywords
power supply
register
clock
signal
supply
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005298890A
Other languages
English (en)
Other versions
JP2007108993A (ja
Inventor
到 野々村
哲也 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2005298890A priority Critical patent/JP4711410B2/ja
Publication of JP2007108993A publication Critical patent/JP2007108993A/ja
Application granted granted Critical
Publication of JP4711410B2 publication Critical patent/JP4711410B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、マイクロプロセッサ等に使用される半導体集積回路に関し、例えば動作時での消費電力が小さい半導体集積回路に適用して有効な技術に関する。
半導体集積回路の微細化に伴い、半導体集積回路のゲート密度や動作速度は向上しているが、その一方で、半導体集積回路の非動作時でのリーク電力が急速に増大している。半導体集積回路の動作時での消費電力を低下させるために、半導体集積回路へのクロック供給を停止する制御が行われることがある。しかし、リーク電力は、クロック供給の有無とは無関係に発生するので、リーク電力を低下させるには、半導体集積回路への電力供給を停止する必要がある。
特に、SoC(System on Chip)のような大規模な半導体集積回路では、使用期間を通してSoCに含まれる全ての機能モジュールを動作させる必要はなく、ある動作に不要な機能モジュールは停止させても構わない。例えば、携帯電話用SoCにおいて、通信機能を実現する機能モジュールは、通話時のみ動作させ、非通話時は停止させることができる。この場合には、動作させる必要のない機能モジュールへの電力供給を停止することによって、リーク電力を低下させることができる。このため、SoCでは、機能モジュール毎に電力供給を開始又は停止する技術が普及しつつある。
ところが、SoCでは、同時に複数の処理を行うマルチタスク処理が一般的となっており、例えばSoCによって機能を実現する携帯電話機がテレビ電話機能を実現するときには、通信処理、動画像圧縮伸張処理、音声圧縮伸張処理等を含む多くの処理が同時に実行されることになる。このような状況では、SoC内の機能モジュールが、その搭載数を低減するために複数の処理によって利用されることがあり、機能モジュール毎に電力供給を開始又は停止することが困難となる。
例えば、機能モジュールの一つであるDMAコントローラが、通信処理及び動画像圧縮伸張処理で利用される場合には、一方の処理でDMAコントローラへの電力供給を停止すると、他方の処理でDMAコントローラを利用できなくなってしまい、テレビ電話機能を実現できなくなってしまう。このため、SoCを制御するソフトウェアには、2つの処理を監視して、いずれの処理も実行されていないときに限りDMAコントローラを停止する複雑なソフトウェア処理が必要となる。しかしながら、SoCやSoCが搭載される各種装置の高機能化や複雑化に伴い、SoCを制御するソフトウェアの開発コストが高騰しており、この傾向は、今後も続く見込みである。従って、SoCには、SoCを制御するために必要なソフトウェア処理を極力単純化して、ソフトウェアの開発コストを抑えることが求められており、上記した複雑なソフトウェア処理を行うと、開発コストが上昇してしまう。
特許文献1には、ソフトウェアによる制御を複雑化させることなく、各周辺回路モジュールへのクロック供給を自律分散的に制御することにより、消費電力の低減を図る技術が開示されている。
また、SoCの機能モジュール間のデータ転送には、スプリット方式が広く用いられている。このスプリット方式では、アクセス要求を受信した機能モジュールが、アクセス要求を発生させた機能モジュールに対して、明示的にアクセス応答を送信しなければならない。このため、消費電力を低減するために、機能モジュールへの電力供給を停止した場合には、電力供給を停止された機能モジュールからアクセス応答が送信されず、SoCのデータ転送が破綻してしまう恐れがある。
さらに、大規模なSoCを開発する場合には、多くの機能モジュールは、既存の開発品を流用したものや、外部から購入したものが導入される。この場合には、不具合が発生する確率を低減するために、導入した機能モジュールには変更を加えないことが望ましい。
特開2004−199115号公報
特許文献1によれば、機能モジュールに対するアクセスを検出してソフトウェア制御を介在させることなく、機能モジュールへのクロック供給を動的に開始又は停止できるから、機能モジュールが動作しないときの消費電力を低減することができる。しかしながら、特許文献1の技術では、機能モジュールへの電力供給の開始又は停止を行わないので、リーク電力を低減することができない。さらに、マルチタスク処理時に電力供給を停止するときに必要な考慮が全くなされていない。
本発明の目的は、必要な動作を阻害することなく、動作時の消費電力だけでなく非動作時のリーク電力も比較的簡単に低減できる半導体集積回路を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
〔1〕本発明に係る半導体集積回路(11)は、第1の機能モジュール(107)と、第2の機能モジュール(101)と、前記第1の機能モジュールと前記第2の機能モジュール間のアクセスを中継すると共に、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御する制御回路(104)と、を備える。前記制御回路は、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方を停止しているとき、前記第2の機能モジュールによる前記第1の機能モジュールに対するアクセスを可能にするための制御を行う。
上記より、第1の機能モジュールが停止していても、第2の機能モジュールは、第1の機能モジュールにアクセスすることが保証されるから、必要な動作を阻害することなく、動作時の消費電力だけでなく非動作時のリーク電力も低減できる。
本発明の具体的な一つの形態として、前記制御回路は、レジスタ(図5参照)を備える。前記制御回路は、前記第2の機能モジュールから前記第1の機能モジュールへ送信されるアクセス要求信号に含まれるアドレス、アクセス属性、ライトデータ及びリードデータのうち少なくとも一つと、前記レジスタに保持されている値とを比較する。前記制御回路は、この比較結果に基づいて、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始(図6、図8参照)又は停止(図7、図9参照)を決定する。上記より、第1の機能モジュールへのアクセスを監視して、その監視結果に応じて第1の機能モジュールへの電力供給とクロック供給の制御を行うから、第1の機能モジュールが変更困難な既存の開発品や外部からの導入品であっても、制御回路のレジスタ設定を変更するだけで第1の機能モジュールのリーク電流を低減できる。従って、電力供給やクロック供給の制御を複雑なソフトウェア処理で行う必要がなく、ソフトウェアの開発コストを抑えることができる。
本発明の具体的な一つの形態として、前記第2の機能モジュール(101A,101B)は、前記第1の機能モジュール(107)へ送信する前記アクセス要求信号に自身を識別させるためのマスタIDを付加する。前記制御回路(104A)は、レジスタを備える。前記制御回路は、前記マスタIDと前記レジスタに保持されている値とを比較した結果に基づいて、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始(図28、図30参照)又は停止(図29、図31参照)を決定する。上記より、第2の機能モジュールが複数であっても、特定の第2の機能モジュールからのアクセス要求信号を、電力供給とクロック供給の制御の契機とすることができる。
本発明の具体的な一つの形態として、前記第2の機能モジュールは、複数のプロセスを実行するプロセッサであって、前記第1の機能モジュールへ送信する前記アクセス要求信号に前記プロセスを識別させるためのプロセスIDを付加する。前記制御回路は、レジスタを備える。前記制御回路は、前記プロセスIDと前記レジスタに保持されている値とを比較した結果に基づいて、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始(図28、図30参照)又は停止(図29、図31参照)を決定する。上記より、第2の機能モジュールが複数であっても、特定の第2の機能モジュールで実行される特定のプロセスによるアクセス要求信号を、電力供給とクロック供給の制御の契機とすることができる。従って、ソフトウェアの不具合や、コンピュータウィルス等によるプロセスによって、第1の機能モジュールへの電力供給やクロック供給が不所望に開始又は停止されることがない。
本発明の具体的な一つの形態として、前記第1の機能モジュールは、前記第1の機能モジュールの処理状態を前記制御回路に通知する機能を有する。前記制御回路は、レジスタ(図20参照)を備える。前記制御回路は、前記第1の機能モジュールの処理状態と前記レジスタに保持されている値とを比較した結果に基づいて、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方を開始(図21、図22参照)又は停止(図21〜図23参照)する。上記より、第1の機能モジュールが自律的に出力する状態信号に基づいて電力供給やクロック供給の制御を行うから、これらの制御にソフトウェアが介在することを要しない。従って、制御回路のレジスタ設定を行うだけでよく、ソフトウェア開発コストを削減できる。
本発明の具体的な一つの形態として、前記制御回路は、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方が開始された後に、前記第1の機能モジュールへの情報転送を開始する。上記より、第1の機能モジュールへの電力供給やクロック供給が停止されていたときに、第1の機能モジュールへ送信されたアクセス要求信号を、第1の機能モジュールが動作したときに再送信できる。従って、第1の機能モジュールにアクセス要求信号を確実に受信させることができ、半導体集積回路の内部の情報転送を破綻させることがない。
本発明の具体的な一つの形態として、前記制御回路は、代理応答生成部(304)を備える。代理応答生成部は、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方が停止されているときに、前記第2の機能モジュールから前記第1の機能モジュールへアクセス要求信号が送信された場合には、前記第1の機能モジュールに代わって、前記第2の機能モジュールにアクセス応答信号を送信する。上記より、第1の機能モジュールが動作していない場合であっても、代理応答生成部により、第2の機能モジュールにアクセス応答信号を送信できる。従って、第2の機能モジュールは、第1の機能モジュールへの電力供給やクロック供給が開始されるまでアクセス応答信号を待つ必要がなく、第2の機能モジュールの処理が滞ることがない。
本発明の具体的な一つの形態として、前記制御回路は、代理応答生成部(304A)を備える。前記代理応答生成部は、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方が停止されているときに、前記第2の機能モジュールから前記第1の機能モジュールへ送信されたアクセス要求信号がライトアクセスである場合には、前記第1の機能モジュールに代わって、前記第2の機能モジュールにアクセス応答信号を送信する。前記代理応答生成部は、前記アクセス要求信号がリードアクセスである場合には、前記アクセス応答信号の送信を停止する。上記より、第1の機能モジュールが動作していない場合において、ライトアクセスに対しては第2の機能モジュールにアクセス応答信号を送信するから、第2の機能モジュールの処理が滞ることがない。さらに、リードアクセスに対しては代理応答生成部が第2の機能モジュールにアクセス応答信号を送信せず、その後、制御回路が第1の機能モジュールを動作させるから、第1の機能モジュールは、正確なリードデータを付加したアクセス応答信号を第2の機能モジュールに送信することができる。
本発明の具体的な一つの形態として、前記制御回路は、初期化を指示するリセット信号(14)と、初期化時での前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を指定するモード信号(13)とを取込む。前記制御回路は、前記リセット信号がアサートされているときの前記モード信号の値(図2参照)に基づいて、前記第1の機能モジュールへの電力供給(図10、図11参照)とクロック供給(図12、図13参照)の少なくとも一方を制御する。上記より、例えばリセット信号入力端子とモード信号入力端子を制御回路に設けるだけで、初期化時における第1の機能モジュールの電力供給状態及びクロック供給状態を決定できるから、低コスト化を図ることができる。
本発明の具体的な一つの形態として、前記制御回路は、複数の前記第2の機能モジュールが前記第1の機能モジュールを使用しているか否かを示す値、又は、前記第2の機能モジュールによって実行される複数のプロセスが前記第1の機能モジュールを使用しているか否かを示す値を保持するレジスタ(図33、図41参照)を備える。前記制御回路は、前記レジスタの保持する値が、複数の前記第2の機能モジュール又は複数の前記プロセスにおいて前記第1の機能モジュールが使用されていないことを示す場合には、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方を停止する(図35、図37、図43、図45参照)。前記制御回路は、前記レジスタの保持する値が、少なくとも一つの前記第2の機能モジュール又は前記プロセスにおいて前記第1の機能モジュールが使用されていることを示す場合には、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方を開始する(図34、図36、図42、図44参照)。上記より、複数の第2の機能モジュール又はプロセスが1つの第1の機能モジュールを制御する場合であっても、第1の機能モジュールが使用されていないときには、第1の機能モジュールへの電力供給やクロック供給を停止できる。従って、第1の機能モジュールへの電力供給やクロック供給は、必要最小限の期間だけ行われることになり、消費電力を低減できる。
〔2〕本発明に係る半導体集積回路(11B)は、複数の機能モジュール(107A,107B)と、マスタモジュール(101)と、前記複数の機能モジュールと前記マスタモジュール間のアクセスを中継すると共に、前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御する制御回路(104C)と、を備える。前記制御回路は、前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方を停止しているとき、前記マスタモジュールによる前記複数の機能モジュールに対するアクセスを可能にするための制御を行う。
上記より、複数の機能モジュールが停止していても、マスタモジュールは、複数の機能モジュールにアクセスすることが保証されるから、必要な動作を阻害することなく、動作時の消費電力だけでなく非動作時のリーク電力も低減できる。
本発明の具体的な一つの形態として、前記制御回路は、初期化を指示するリセット信号と、初期化時での前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を指定する一組のモード信号とを取込む。前記制御回路は、前記リセット信号がアサートされているときの前記モード信号の値(図55参照)に基づいて、前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御する。上記より、例えばリセット信号入力端子と一組のモード信号入力端子を制御回路に設けるだけで、初期化時における複数の機能モジュールの電力供給状態及びクロック供給状態を決定できるから、低コスト化を図ることができる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
即ち、必要な動作を阻害することなく、動作時の消費電力だけでなく非動作時のリーク電力も比較的簡単に低減できる。
《実施形態1》
図1には本発明の実施形態1に係る半導体集積回路が例示される。半導体集積回路11は、特に制限されないが、単結晶シリコン等の1個の半導体基板に、相補型MOSトランジスタやバイポーラトランジスタ等を形成する半導体集積回路技術によって形成されている。
半導体集積回路11は、CPU(中央処理装置)101と、メモリ制御部102と、ルータ103と、電力・クロック制御ブリッジ104と、電力供給部105と、クロック供給部106と、IP(Intellectual Property)モジュールと称される機能モジュール(以下、IPと記す)107とを備えている。さらに、半導体集積回路11は、DMAC(Direct Memory Access Controller)108と、割込みコントローラ109等の各機能モジュールを備えている。また、半導体集積回路11には、メモリ12と、モード信号生成部13と、リセット信号生成部14と、電源15と、クロック信号生成部16等が接続される。
CPU101は、ルータ103及びメモリ制御部102を介してメモリ12にアクセスし、メモリ12に保持されているプログラムを実行することによって、半導体集積回路11内外の制御を行う。半導体集積回路11内部のアクセスは、スプリット方式で行われており、アクセスを要求する機能モジュールがアクセス要求信号を送信し、アクセス要求信号を受信した機能モジュールが、アクセスを要求した機能モジュールにアクセス応答信号を送信することにより、データ転送が可能となる。
メモリ制御部102は、ルータ103を介してCPU101、電力・クロック制御ブリッジ104、IP107及びDMAC108からのアクセス要求信号を受信し、このアクセス要求信号に基づいて、メモリ12に読出し処理又は書込み処理を行う。また、メモリ制御部102は、このアクセス要求信号に応じたアクセス応答信号を生成し、このアクセス応答信号をルータ103を介してCPU101、電力・クロック制御ブリッジ104、IP107及びDMAC108に送信する。ルータ103は、中継回路であって、CPU101、メモリ制御部102、電力・クロック制御ブリッジ104及びDMAC108が送受信するアクセス要求信号及びアクセス応答信号を中継する。
電力・クロック制御ブリッジ104は、IP107とルータ103の間のアクセス要求信号及びアクセス応答信号の中継を行うブリッジ回路であると共に、IP107への電力供給とクロック供給を制御する制御回路でもある。電力供給部105は、電源15から電力供給を受け、さらに、電力・クロック制御ブリッジ104からの指令に基づいて、IP107への電力供給を開始する。また、電力供給部105は、電力・クロック制御ブリッジ104からの指令とは無関係に、IP107以外の半導体集積回路11に含まれる図示を省略する各機能モジュールに電力を供給する機能も有する。
次に、電力・クロック制御ブリッジ104と電力供給部105の間で信号線を介して行われる通信について説明する。尚、本明細書中では、説明の便宜上、信号を活性状態に遷移させることを“アサート”、信号が活性状態であることを“アサート状態”といい、さらに、信号を不活性状態に遷移させることを“ディアサート”、信号が不活性状態であることを“ディアサート状態”という。例えば、機能モジュールAが機能モジュールBに電力供給を要求する信号(以下、電力供給要求信号とも記す)がアサート状態であれば、機能モジュールBは、機能モジュールAが電力供給を要求していると認識し、一方、ディアサート状態であれば、機能モジュールAが電力供給を要求していないと認識する。機能モジュールAは、電力供給を開始するときに電力供給要求信号をアサートし、電力供給を停止するときに電力供給要求信号をディアサートする。
電力・クロック制御ブリッジ104は、IP107への電力供給を行うときには電力供給部105に対する電力供給要求信号をアサート状態に保持し、IP107への電力供給を停止するときには電力供給要求信号をディアサート状態に保持する。
電力供給部105は、電力供給要求信号がアサート状態になったことを検知すると、IP107への電力供給を開始し、IP107に安定した電力が供給されるようになると、電力・クロック制御ブリッジ104に対する電力供給応答信号をアサートする。一方、電力供給部105は、電力供給要求信号がディアサート状態になったことを検知すると、IP107への電力供給を停止し、電力・クロック制御ブリッジ104に対する電力供給応答信号をディアサートする。
クロック供給部106は、クロック信号の供給を受け、さらに、電力・クロック制御ブリッジ104からの指令に基づいて、IP107へのクロック供給を開始する。また、クロック供給部106は、電力・クロック制御ブリッジ104からの指令とは無関係に、IP107以外の半導体集積回路11に含まれる各機能モジュールにクロックを供給する機能も有する。
次に、電力・クロック制御ブリッジ104とクロック供給部106の間で行われる通信について説明する。電力・クロック制御ブリッジ104は、IP107へのクロック供給を行うときにはクロック供給部106に対するクロック供給要求信号をアサート状態に保持し、IP107へのクロック供給を停止するときにはクロック供給要求信号をディアサート状態に保持する。
クロック供給部106は、クロック供給要求信号がアサート状態になったことを検知すると、IP107へのクロック供給を開始し、IP107に安定したクロックが供給されるようになると、電力・クロック制御ブリッジ104に対するクロック供給応答信号をアサートする。一方、クロック供給部106は、クロック供給要求信号がディアサート状態になったことを検知すると、IP107へのクロック供給を停止し、電力・クロック制御ブリッジ104に対するクロック供給応答信号をディアサートする。
IP107は、論理回路であって、電力供給及びクロック供給が開始されることにより動作する。IP107は、電力・クロック制御ブリッジ104からアクセス要求信号を受信して、このアクセス要求信号に応じた処理を実行し、電力・クロック制御ブリッジ104を介してCPU101やDMAC108にアクセス要求信号に応じたアクセス応答信号を送信する。また、IP107は、自らがアクセス要求信号元となり、電力・クロック制御ブリッジ104にアクセス要求信号を送信することによって、メモリ12等にアクセスする。さらに、IP107は、IP107内部の状態を信号線によって電力・クロック制御ブリッジ104に通知する機能を有する。
DMAC108は、電力・クロック制御ブリッジ104からDMA転送開始信号を取込み、この信号の変化を契機としてメモリ12から読込んだデータをIP107に送信するDMA転送を行う。割込みコントローラ109は、電力・クロック制御ブリッジ104からの割込み信号をCPU101に中継する。
次に、半導体集積回路11の外部に接続された各種デバイスについて説明する。メモリ12は、RAM(Random Access Memory)やROM(Read Only Memory)等のメモリである。モード信号生成部13は、モード信号を生成して電力・クロック制御ブリッジ104に供給する回路である。モード信号は、初期化完了時点におけるIP107の電力供給状態及びクロック供給状態を指定する信号である。リセット信号生成部14は、リセット信号を生成して電力・クロック制御ブリッジ104に供給する回路である。リセット信号は、半導体集積回路11内部の初期化を指令する信号である。リセット信号生成部14は、半導体集積回路11の使用を開始するときにリセット信号を一定期間アサートする。電源15は、電力供給部105に電力を供給する装置であって、この電力は電源線やグランド線等を含む電力線によって供給される。クロック信号生成部16は、水晶振動子等を用いた発振回路を含み、クロック信号を生成してクロック供給部106に供給する回路である。
次に、半導体集積回路11の初期化時におけるIP107の電力供給状態及びクロック供給状態の決定について説明する。半導体集積回路11の使用開始時には、リセット信号生成部14によってリセット信号が一定期間アサートされる。リセット信号による初期化時にIP107への電力供給やクロック供給が開始されるか否かは、モード信号の値に基づいて、電力・クロック制御ブリッジ104が決定する。電力・クロック制御ブリッジ104は、リセット信号がアサートされているときには、モード信号の値に基づいて電力供給要求信号とクロック供給要求信号の状態を決定する。
図2には、リセット信号がアサート時でのモード信号、電力供給要求信号及びクロック供給要求信号の関係が例示される。リセット信号アサート時にモード信号が“00”であれば、電力・クロック制御ブリッジ104は、電力供給要求信号とクロック供給信号を両方ともディアサート状態とする。これにより、IP107への電力供給及びクロック供給が停止される。モード信号が“01”であれば、電力・クロック制御ブリッジ104は、電力供給要求信号をアサート状態に、クロック供給要求信号をディアサート状態とする。これにより、IP107への電力供給が開始され、クロック供給が停止される。モード信号が“10”であれば、電力・クロック制御ブリッジ104は、電力供給要求信号をディアサート状態に、クロック供給要求信号をアサート状態とする。これにより、IP107への電力供給が停止され、クロック供給が開始される。モード信号が“11”であれば、電力・クロック制御ブリッジ104は、電力供給要求信号とクロック供給要求信号を両方ともアサート状態とする。これにより、IP107への電力供給及びクロック供給が開始される。一方、リセット信号のディアサート時には、電力・クロック制御ブリッジ104はモード信号を無視して、後述するIP107が出力する状態信号に基づいて電力供給要求信号及びクロック供給要求信号の状態を決定する(図20〜図23参照)。
従って、半導体集積回路11に図示を省略するリセット信号入力端子及びモード信号入力端子を設けることによって、初期化時におけるIP107の電力供給状態及びクロック供給状態を決定できる。
次に、初期化完了後のIP107への電力供給とクロック供給の制御について説明する。初期化完了後のIP107への電力供給とクロック供給の制御は、ルータ103からIP107へのアクセス要求信号を、電力・クロック制御ブリッジ104が監視した結果に基づいて行われる。
図3には、電力・クロック制御ブリッジ104の構成が例示される。電力・クロック制御ブリッジ104は、バスインタフェース301(以下、バスIF301と記す)と、電力供給要求信号生成部302と、クロック供給要求信号生成部303と、代理応答生成部304と、供給制御部305とを備えている。バスIF301は、ルータ103、IP107、代理応答生成部304及び供給制御部305の間でアクセスを中継する中継回路である。
図4には、バスIF301が中継するアクセスの流れが例示される。バスIF301が中継するアクセスは、図示のように、ターゲットアクセスとイニシエータアクセスに大別できる。ターゲットアクセスは、ルータ103からアクセス要求信号が送信され、このアクセス要求信号に応じたアクセス応答がルータ103に返される一連のアクセスである。イニシエータアクセスは、IP107からアクセス要求信号が送信され、このアクセス要求信号に応じたアクセス応答がIP107に返される一連のアクセスである。
まず、ターゲットアクセスの処理について説明する。ルータ103からアクセス要求信号を受信したバスIF301は、このアクセス要求信号に含まれるアドレスに基づいて、アクセス要求信号の転送先を判断し、アクセス要求信号をIP107、供給制御部305のいずれかに送信する。転送先がIP107と判断されたアクセス要求信号は、代理応答生成部304にも送信される。そして、バスIF301は、アクセス要求信号に応じたアクセス応答信号をIP107、供給制御部305及び代理応答生成部304のいずれかから受信し、このアクセス応答信号をルータ103に送信する。また、バスIF301は、後述する代理応答生成部304からのリトライ信号に基づいて、IP107にアクセス要求信号を再送信する機能を有する。再送信されたアクセス要求信号は、代理応答生成部304には送信されず、IP107にのみ送信される。
次に、イニシエータアクセスの処理について説明する。バスIF301は、IP107から受信したアクセス要求信号をルータ103に送信し、ルータ103から供給されるアクセス要求信号に応じたアクセス応答信号をIP107に送信する。
次に、供給制御部305について説明する。供給制御部305は、ルータ103からIP107へのアクセス要求信号の特徴を検出し、この検出結果に基づいて、バスIF301、電力供給要求信号生成部302、クロック供給信号生成部303及び代理応答生成部304に制御信号を出力する。アクセス要求信号には、アドレス、ライトデータ、アクセス属性等が含まれる。アクセス属性は、アクセスがリード(リードアクセスとも記す)であるかライト(ライトアクセスとも記す)であるかを示す情報である。供給制御部305は、ルータ103からIP107へのアクセス要求信号の特徴を保持するレジスタ群を有する。このレジスタ群には、ルータ103を介してCPU101等から値を書込んだり、読出したりできる。また、供給制御部305は、バスIF301からIP107へのアクセス要求信号を取込む。
供給制御部305は、図5に示すように各レジスタを有する。まず、電力供給開始の契機となるアクセス要求信号の特徴を保存するためのレジスタについて説明する。電力供給開始アドレスレジスタ(PSSAR)は、電力供給開始信号をアサートする契機となるアドレスを設定するためのレジスタである。電力供給開始アドレスイネーブルレジスタ(PSSAER)は、電力供給開始アドレスレジスタの値を参照するか否かを設定するためのレジスタである。電力供給開始ライトデータレジスタ(PSSWDR)は、電力供給開始信号をアサートする契機となるライトデータを設定するためのレジスタである。電力供給開始ライトデータイネーブルレジスタ(PSSWDER)は、電力供給開始ライトデータレジスタの値を参照するか否かを設定するためのレジスタである。電力供給開始アクセス属性レジスタ(PSSAAR)は、電力供給開始信号をアサートする契機となるアクセス属性を設定するためのレジスタである。電力供給開始アクセス属性イネーブルレジスタ(PSSAAER)は、電力供給開始アクセス属性レジスタの値を参照するか否かを設定するためのレジスタである。そして、電力供給開始イネーブルレジスタ(PSSER)は、電力供給開始信号をアサートするか否かを設定するためのレジスタである。
次に、電力供給停止の契機となるアクセス要求信号の特徴を保存するためのレジスタについて説明する。電力供給停止アドレスレジスタ(PSIAR)は、電力供給停止信号をアサートする契機となるアドレスを設定するためのレジスタである。電力供給停止アドレスイネーブルレジスタ(PSIAER)は、電力供給停止アドレスレジスタの値を参照するか否かを設定するためのレジスタである。電力供給停止ライトデータレジスタ(PSIWDR)は、電力供給停止信号をアサートする契機となるライトデータを設定するためのレジスタである。電力供給停止ライトデータイネーブルレジスタ(PSIWDER)は、電力供給停止ライトデータレジスタの値を参照するか否かを設定するためのレジスタである。電力供給停止アクセス属性レジスタ(PSIAAR)は、電力供給停止信号をアサートする契機となるアクセス属性を設定するためのレジスタである。電力供給停止アクセス属性イネーブルレジスタ(PSIAAER)は、電力供給停止アクセス属性レジスタの値を参照するか否かを設定するためのレジスタである。電力供給停止リードデータレジスタ(PSIRDR)は、電力供給停止信号をアサートする契機となるリードデータを設定するためのレジスタである。電力供給停止リードデータイネーブルレジスタ(PSIRDER)は、電力供給停止リードデータレジスタの値を参照するか否かを設定するためのレジスタである。そして、電力供給停止イネーブルレジスタ(PSIER)は、電力供給停止信号をアサートするか否かを設定するためのレジスタである。
次に、クロック供給開始の契機となるアクセス要求信号の特徴を保存するためのレジスタについて説明する。クロック供給開始アドレスレジスタ(CSSAR)は、クロック供給開始信号をアサートする契機となるアドレスを設定するためのレジスタである。クロック供給開始アドレスイネーブルレジスタ(CSSAER)は、クロック供給開始アドレスレジスタの値を参照するか否かを設定するためのレジスタである。クロック供給開始ライトデータレジスタ(CSSWDR)は、クロック供給開始信号をアサートする契機となるライトデータを設定するためのレジスタである。クロック供給開始ライトデータイネーブルレジスタ(CSSWDER)は、クロック供給開始ライトデータレジスタの値を参照するか否かを設定するためのレジスタである。クロック供給開始アクセス属性レジスタ(CSSAAR)は、クロック供給開始信号をアサートする契機となるアクセス属性を設定するためのレジスタである。クロック供給開始アクセス属性イネーブルレジスタ(CSSAAER)は、クロック供給開始アクセス属性レジスタの値を参照するか否かを設定するためのレジスタである。そして、クロック供給開始イネーブルレジスタ(CSSER)は、クロック供給開始信号をアサートするか否かを設定するためのレジスタである。
次に、クロック供給停止の契機となるアクセス要求信号の特徴を保存するためのレジスタについて説明する。クロック供給停止アドレスレジスタ(CSIAR)は、クロック供給停止信号をアサートする契機となるアドレスを設定するためのレジスタである。クロック供給停止アドレスイネーブルレジスタ(CSIAER)は、クロック供給停止アドレスレジスタの値を参照するか否かを設定するためのレジスタである。クロック供給停止ライトデータレジスタ(CSIWDR)は、クロック供給停止信号をアサートする契機となるライトデータを設定するためのレジスタである。クロック供給停止ライトデータイネーブルレジスタ(CSIWDER)は、クロック供給停止ライトデータレジスタの値を参照するか否かを設定するためのレジスタである。クロック供給停止アクセス属性レジスタ(CSIAAR)は、クロック供給停止信号をアサートする契機となるアクセス属性を設定するためのレジスタである。クロック供給停止アクセス属性イネーブルレジスタ(CSIAAER)は、クロック供給停止アクセス属性レジスタの値を参照するか否かを設定するためのレジスタである。クロック供給停止リードデータレジスタ(CSIRDR)は、クロック供給停止信号をアサートする契機となるリードデータを設定するためのレジスタである。クロック供給停止リードデータイネーブルレジスタ(CSIRDER)は、クロック供給停止リードデータレジスタの値を参照するか否かを設定するためのレジスタである。そして、クロック供給停止イネーブルレジスタ(CSIER)は、クロック供給停止信号をアサートするか否かを設定するためのレジスタである。
次に、供給制御部305による電力供給開始信号、電力供給停止信号、クロック供給開始信号、クロック供給停止信号の生成処理について説明する。まず、電力供給開始信号のアサートについて説明する。図6には電力供給開始信号生成回路が例示される。電力供給開始信号は、電力供給開始イネーブルレジスタが電力供給開始信号をアサートすることを示す値‘1’に設定されていて、さらに、以下の3条件が全て成立するときにアサートされる。
第1の条件は、電力供給開始アドレスイネーブルレジスタの値が、電力供給開始アドレスレジスタの設定値を参照しないことを示す値‘0’であるか、又は、電力供給開始アドレスレジスタの設定値とバスIF301から供給されるアクセス要求信号に含まれるアドレスが一致することである。第2の条件は、電力供給開始ライトデータイネーブルレジスタの値が、電力供給開始ライトデータレジスタの設定値を参照しないことを示す値‘0’であるか、又は、電力供給開始ライトデータレジスタの設定値とバスIF301から供給されるアクセス要求信号に含まれるライトデータが一致することである。第3の条件は、電力供給開始アクセス属性イネーブルレジスタの値が、電力供給開始アクセス属性レジスタの設定値を参照しないことを示す値‘0’であるか、又は、電力供給開始アクセス属性レジスタの設定値とバスIF301から供給されるアクセス要求信号のアクセス属性が一致することである。
次に、電力供給停止信号のアサートについて説明する。図7には、電力供給停止信号生成回路が例示される。電力供給停止信号は、電力供給停止イネーブルレジスタが電力供給停止信号をアサートすることを示す値‘1’に設定されていて、さらに、以下の4条件が全て成立するときにアサートされる。
第1の条件は、電力供給停止アドレスイネーブルレジスタの値が、電力供給停止アドレスレジスタの設定値を参照しないことを示す値‘0’であるか、又は、電力供給停止アドレスレジスタの設定値とバスIF301から供給されるアクセス要求信号に含まれるアドレスが一致することである。第2の条件は、電力供給停止ライトデータイネーブルレジスタの値が、電力供給停止ライトデータレジスタの設定値を参照しないことを示す値‘0’であるか、又は、電力供給停止ライトデータレジスタの設定値とバスIF301から供給されるアクセス要求信号に含まれるライトデータが一致することである。第3の条件は、電力供給停止リードデータイネーブルレジスタの値が、電力供給停止リードデータレジスタの設定値を参照しないことを示す値‘0’であるか、又は、電力供給停止リードデータレジスタの設定値とIP107から供給されるアクセス応答信号に含まれるリードデータが一致することである。第4の条件は、電力供給停止アクセス属性イネーブルレジスタの値が、電力供給停止アクセス属性レジスタの設定値を参照しないことを示す値‘0’であるか、又は、電力供給停止アクセス属性レジスタの設定値とバスIF301から供給されるアクセス要求信号のアクセス属性が一致することである。
次に、クロック供給開始信号のアサートについて説明する。図8にはクロック供給開始信号生成回路が例示される。クロック供給開始信号は、クロック供給開始イネーブルレジスタがクロック供給開始信号をアサートすることを示す値‘1’に設定されていて、さらに、以下の3条件が全て成立するときにアサートされる。
第1の条件は、クロック供給開始アドレスイネーブルレジスタの値が、クロック供給開始アドレスレジスタの設定値を参照しないことを示す値‘0’であるか、又は、クロック供給開始アドレスレジスタの設定値とバスIF301から供給されるアクセス要求信号に含まれるアドレスが一致することである。第2の条件は、クロック供給開始ライトデータイネーブルレジスタの値が、クロック供給開始ライトデータレジスタの設定値を参照しないことを示す値‘0’であるか、又は、クロック供給開始ライトデータレジスタの設定値とバスIF301から供給されるアクセス要求信号に含まれるライトデータが一致することである。第3の条件は、クロック供給開始アクセス属性イネーブルレジスタの値が、クロック供給開始アクセス属性レジスタの設定値を参照しないことを示す値‘0’であるか、又は、クロック供給開始アクセス属性レジスタの設定値とバスIF301から供給されるアクセス要求信号のアクセス属性が一致することである。
次に、クロック供給停止信号のアサートについて説明する。図9には、クロック供給停止信号生成回路が例示される。クロック供給停止信号は、クロック供給停止イネーブルレジスタがクロック供給停止信号をアサートすることを示す値‘1’に設定されていて、以下の4条件が全て成立するときにアサートされる。
第1の条件は、クロック供給停止アドレスイネーブルレジスタの値が、クロック供給停止アドレスレジスタの設定値を参照しないことを示す値‘0’であるか、又は、クロック供給停止アドレスレジスタの設定値とバスIF301から供給されるアクセス要求信号に含まれるアドレスが一致することである。第2の条件は、クロック供給停止ライトデータイネーブルレジスタの値が、クロック供給停止ライトデータレジスタの設定値を参照しないことを示す値‘0’であるか、又は、クロック供給停止ライトデータレジスタの設定値とバスIF301から供給されるアクセス要求信号に含まれるライトデータが一致することである。第3の条件は、クロック供給停止リードデータイネーブルレジスタの値が、クロック供給停止リードデータレジスタの設定値を参照しないことを示す値‘0’であるか、又は、クロック供給停止リードデータレジスタの設定値とIP107から供給されるアクセス応答信号に含まれるリードデータが一致することである。第4の条件は、クロック供給停止アクセス属性イネーブルレジスタの値が、クロック供給停止アクセス属性レジスタの設定値を参照しないことを示す値‘0’であるか、又は、クロック供給停止アクセス属性レジスタの設定値とバスIF301から供給されるアクセス要求信号のアクセス属性が一致することである。
次に、電力供給要求信号生成部302について説明する。図10には、電力供給要求信号生成部302の状態遷移が例示される。尚、電力供給要求信号生成部302の状態を電力状態という。電力供給要求信号生成部302は、リセット信号によって初期化される。電力供給要求信号生成部302は、リセット信号がアサートされたときに、モード信号の値が“00”又は“10”であれば、電力状態は“電力供給OFF”となり、モード信号の値が“11”又は“01”であれば、電力状態は“電力供給ON”となる。また、電力供給要求信号生成部302は、リセット信号がディアサート状態であって、電力状態が“電力供給OFF”であるときに電力供給開始信号がアサートされると、電力状態は“電力供給ON”に遷移し、電力状態が“電力供給ON”であるときに電力供給停止信号がアサートされると、電力状態は“電力供給OFF”に遷移する。電力供給要求信号生成部302は、電力状態に応じて電力供給要求信号の出力値を決定し、例えば図11に示すように、電力状態が“電力供給ON”であれば電力供給要求信号をアサート状態に保持し、電力状態が“電力供給OFF”であれば電力供給要求信号をディアサート状態に保持する。
次に、クロック供給要求信号生成部303について説明する。図12には、クロック供給要求信号生成部303の状態遷移が例示される。尚、クロック供給要求信号生成部303の状態をクロック状態という。クロック供給要求信号生成部303は、リセット信号によって初期化される。クロック供給要求信号生成部303は、リセット信号がアサートされたとき、モード信号の値が“00”又は“01”であれば、クロック状態は“クロック供給OFF”となり、モード信号の値が“11”又は“10”であれば、クロック状態は“クロック供給ON”となる。また、クロック供給要求信号生成部303は、リセット信号がディアサート状態であって、クロック状態が“クロック供給OFF”であるときにクロック供給開始信号がアサートされると、クロック状態は“クロック供給ON”に遷移する。そして、クロック供給要求信号生成部303は、リセット信号がディアサート状態であって、クロック状態が“クロック供給ON”であるときにクロック供給停止信号がアサートされると、クロック状態は“クロック供給OFF”に遷移する。クロック供給要求信号生成部303は、クロック状態に応じてクロック供給要求信号の出力値を決定し、例えば図13に示すように、クロック状態が“クロック供給ON”であればクロック供給要求信号をアサート状態に保持し、クロック状態が“クロック供給OFF”であればクロック供給要求信号をディアサート状態に保持する。
次に、代理応答生成部304について説明する。IP107がバスIF301からのアクセス要求信号に応じてアクセス応答信号を送信するためには、IP107への電力供給及びクロック供給が開始されている必要がある。一方、アクセス要求信号を生成した機能モジュール、例えばCPU101は、アクセス要求信号に応じたアクセス応答信号を受信しなければ処理が完了せず、後続の処理を実行できないから、例えばハングアップ等の不具合を生じてしまう。そこで、代理応答生成部304は、IP107への電力供給及びクロック供給の制御によってハングアップが発生しないように、IP107に代わってアクセス応答信号(代理応答信号とも記す)をCPU101に送信する。
代理応答生成部304は、バスIF301からIP107へのアクセス要求信号を取込み、IP107へのアクセスを監視する。また、代理応答生成部304は、電力供給部105から電力供給応答信号を、クロック供給部106からクロック供給応答信号を、供給制御部305から電力供給開始信号及びクロック供給開始信号をそれぞれ取込み、図14に示す規則に従って代理応答信号を生成する。以下、各規則について説明する。
代理応答生成部304は、IP107がアクセス応答信号を送信可能であるとき、即ち、IP107への電力供給及びクロック供給が開始されているときには、代理応答信号を生成しない。そして、代理応答生成部304は、IP107がアクセス応答信号を送信不能であるとき、即ち、IP107への電力供給とクロック供給のいずれか又は両方が停止されているときには、代理応答信号を生成する。
また、代理応答生成部304は、IP107がアクセス応答信号不能状態からアクセス応答信号可能状態に遷移すると判断するときには、IP107がアクセス応答信号可能状態に遷移した後にリトライ信号をアサートして、バスIF301にアクセス応答信号可能状態に遷移したIP107に対してアクセスを再送信させる。
即ち、代理応答生成部304は、IP107への電力供給が停止され、クロック供給が開始されているときに、電力供給開始信号がアサートされたときには、電力供給応答信号がアサートされた後にリトライ信号をアサートする。また、代理応答生成部304は、IP107への電力供給が開始され、クロック供給が停止されているときに、クロック供給開始信号がアサートされたときには、クロック供給応答信号がアサートされた後にリトライ信号をアサートする。さらに、代理応答生成部304は、IP107への電力供給及びクロック供給が停止されているときに、電力供給開始信号とクロック供給開始信号が両方アサートされたときには、電力供給応答信号とクロック供給応答信号が両方ともアサートされた後にリトライ信号をアサートする。
以下、電力・クロック制御ブリッジ104が、IP107への電力供給とクロック供給の少なくとも一方を制御するときの動作について説明する。ここでは、一例として、IP107が半導体集積回路11に接続された表示デバイスに対して表示データを出力する表示コントローラである場合について説明する。
図15には、IP107の制御レジスタ一覧が例示されている。IP107の制御レジスタには、画像アドレスレジスタ(IAR)と、画像水平サイズレジスタ(IHSR)と、画像垂直サイズレジスタ(IPSR)と、表示制御レジスタ(ICR)と、表示状態レジスタ(ISR)とがある。IP107によって表示処理を行うときには、まず、メモリ12に被表示データを格納しておく。そして、画像アドレスレジスタには被表示データが格納されたアドレスを設定する。また、画像水平サイズレジスタには被表示画像の水平方向のサイズを設定する。さらに、画像垂直サイズレジスタには被表示画像の垂直方向のサイズを設定する。その上で、表示制御レジスタに‘1’を設定する。表示制御レジスタに‘1’を設定されたIP107は、電力・クロック制御ブリッジ104、ルータ103及びメモリ制御部102を介してメモリ12から被表示データを読込む。そして、IP107は、読込まれたデータを画像水平サイズレジスタ及び画像垂直サイズレジスタによって指定されたフォーマットで、半導体集積回路11の外部に出力する。IP107は一画面分の処理が完了次第、自動的に次の画面の表示処理に移行する。また、IP107は、表示処理を行っているときには表示状態レジスタを‘1’に設定する。IP107による表示処理を停止するためには、表示制御レジスタに‘0’を書込む。表示制御レジスタに‘0’を書込まれたIP107は、1画面分の表示を完了させた後に表示処理を停止し、表示状態レジスタの値を‘0’に更新する。
図16には、画像表示処理を行うときのIP107に対するレジスタアクセスの手順が例示されている。ここでは、CPU101がソフトウェアを実行することによって、IP107に対するレジスタアクセスを行う。
まず、表示制御レジスタに‘1’を設定する前に、画像アドレスレジスタ、画像水平サイズレジスタ及び画像垂直サイズレジスタの設定を行う(S1)。ステップS1では、これらの3つのレジスタの設定順はIP107の動作に影響を与えないので、設定順は任意とする。次に、表示制御レジスタに‘1’を設定する(S2)。ステップS2において、IP107は表示処理を開始し、表示状態レジスタの値を‘1’に更新する。このステップS2の状態では、IP107は、表示処理を実行し続けることになる。
次に、表示処理を終了させるためには、表示制御レジスタに‘0’を設定する(S3)。ステップS3では、IP107は、現在処理中の画面の表示処理が完了するまで表示処理を継続し、この現在の画面の表示処理が完了したら表示処理を停止し、表示状態レジスタの値を‘0’に更新する。次に、IP107が表示処理を終了したか否かを確認するために表示状態レジスタ値を読込み(S4)、読込んだ値が‘0’であるか否かが判定され(S5)、‘0’が読込まれるまで繰り返し読込み処理が行われる。
ここで、上記したレジスタアクセスを行うソフトウェアに変更を加えずに、IP107への電力供給とクロック供給の少なくとも一方を制御するためには、ソフトウェアがCPU101によって実行される前に、供給制御部305の各レジスタ(図5参照)に、図17〜図19に示す値を設定すればよい。
図17には、IP107への電力供給の制御を行うための各レジスタの設定値が例示されている。ここでは、IP107への電力供給が停止され、クロック供給が開始されているとする(図14参照)。以下、図17に例示された各レジスタの設定値について具体的に説明する。電力供給開始アドレスイネーブルレジスタと電力供給開始ライトデータイネーブルレジスタには、それぞれ電力供給開始アドレスレジスタと電力供給開始ライトデータレジスタの設定値を参照しないことを示す値を設定する。そして、電力供給開始アクセス属性レジスタには、ライトアクセスを示す値を設定する。
このため、供給制御部305は、IP107に対する全てのライトアクセスを契機として電力供給開始信号をアサートする。これにより、供給制御部305は、IP107を制御するソフトウェアが、図16に示したステップS1を実行したことを検出して、IP107への電力供給を開始することができる。また、代理応答生成部304は、電力供給開始信号のアサートと同時にリトライ信号をアサートし、IP107への電力供給が停止されていたときにIP107へ送信されたアクセス要求信号を、IP107への電力供給が開始された後にバスIF301から再送信させる。このため、IP107へのアクセス要求信号は、電力供給及びクロック供給が開始されて動作状態となったIP107へ送信されることになり、IP107への電力供給を停止しても、IP107にアクセス要求信号を確実に受信させることができる。さらに、代理応答生成部304は、ステップS1の最初のアクセス要求信号に応じて代理応答信号を送信するので、CPU101は、後続のアクセス要求信号を実行することができる。
一般的に、電力供給を開始してからIP等の機能モジュールに安定した電力が供給されて、機能モジュールが動作可能になるためには、例えばCPUのクロック周期に比べて長い時間がかかる。このため、仮にアクセス応答信号の送信を機能モジュールが動作可能になった後に行うとすれば、アクセス要求信号を送信したCPUは、長時間のアクセス応答信号待ちで処理が滞ってしまい、処理性能が低下してしまう。これに対して、本実施形態では、代理応答生成部304がIP107への電力供給が安定するのを待つことなく、代理応答信号を送信するので、アクセス要求信号を送信したCPU101の処理性能は低下することがない。
一方、IP107への電力供給を停止する場合には、電力供給停止アドレスレジスタ、電力供給停止リードデータレジスタ及び電力供給停止アクセス属性レジスタには、IP107の表示状態レジスタのアドレスを示す“FF001010”、‘0’、リードアクセスを示す値‘1’をそれぞれ設定する。そして、電力供給停止ライトデータイネーブルレジスタには、電力供給停止ライトデータレジスタの値を参照しない値‘0’を設定する。このため、供給制御部305は、“FF001010”をリードし、その結果、表示処理を実行していないことを示す‘0’であることを検出して、電力供給停止信号をアサートする。従って、供給制御部305は、IP107を制御するソフトウェアが、図16に示したステップS5の条件分岐が“Yes”となったときに電力供給を停止できる。
図18には、IP107へのクロック供給の制御を行うための各レジスタの設定値が例示されている。ここでは、IP107への電力供給が開始され、クロック供給が停止されているとする(図14参照)。供給制御部305は、各レジスタの値を図18に示すように設定することにより、IP107へのレジスタライトによってIP107へのクロック供給を開始できる。また、供給制御部305は、IP107の表示状態レジスタを示すアドレス“FF001010”をリードし、その結果、表示処理を実行していないことを示す‘0’であることを検出して、クロック供給停止信号をアサートする。従って、供給制御部305は、IP107が表示処理を行っていないときにクロック供給を停止できる。
図19には、IP107への電力供給とクロック供給の制御を行うための各レジスタの設定値が例示されている。ここでは、IP107への電力供給及びクロック供給が開始されている場合と、電力供給及びクロック供給が停止されている場合とがある(図14参照)。供給制御部305は、各レジスタの値を図19に示すように設定することにより、IP107へのレジスタライトによってIP107への電力供給及びクロック供給を開始できる。また、供給制御部305は、IP107の表示状態レジスタを示すアドレス“FF001010”をリードし、その結果、表示処理を実行していないことを示す‘0’であることを検出して、電力供給停止信号及びクロック供給停止信号をアサートする。従って、供給制御部305は、IP107が表示処理を行っていないときに電力供給及びクロック供給を停止できる。
次に、供給制御部305によるアクセス要求信号の監視結果ではなく、IP107が出力する状態信号に基づいて、電力供給及びクロック供給を制御する方法について説明する。
この方法を実行する場合には、供給制御部305は、図20に示す各レジスタを有する。状態信号アサート時電力供給開始信号設定レジスタ(SAPSSSR)には、状態信号がアサートしたときの電力供給開始信号の出力値が設定される。状態信号アサート時電力供給停止信号設定レジスタ(SAPSISR)には、状態信号がアサートしたときの電力供給停止信号の出力値が設定される。状態信号アサート時クロック供給開始設定レジスタ(SACSSSR)には、状態信号がアサートしたときのクロック供給開始信号の出力値が設定される。状態信号アサート時クロック供給停止信号設定レジスタ(SACSISR)には、状態信号がアサートしたときのクロック供給停止信号の出力値が設定される。状態信号ディアサート時電力供給開始信号設定レジスタ(SDPSSSR)には、状態信号がディアサートしたときの電力供給開始信号の出力値が設定される。状態信号ディアサート時電力供給停止信号設定レジスタ(SDPSISR)には、状態信号がディアサートしたときの電力供給停止信号の出力値が設定される。状態信号ディアサート時クロック供給開始設定レジスタ(SDCSSSR)には、状態信号がディアサートしたときのクロック供給開始信号の出力値が設定される。状態信号ディアサート時クロック供給停止信号設定レジスタ(SDCSISR)には、状態信号がディアサートしたときのクロック供給停止信号の出力値が設定される。
図21には、IP107の状態信号に基づいて電力供給の開始及び停止を行うための各レジスタの設定値が例示されている。供給制御部305は、各レジスタの値を図21のように設定することにより、IP107から出力される状態信号がアサートされたときにIP107への電力供給を開始でき、状態信号がディアサートされたときにIP107への電力供給を停止できる。図22には、IP107の状態信号に基づいてクロック供給の開始及び停止を行うための各レジスタの設定値が例示されている。供給制御部305は、各レジスタの値を図22のように設定することにより、IP107から出力される状態信号がアサートされたときにIP107へのクロック供給を開始でき、状態信号がディアサートされたときにIP107へのクロック供給を停止できる。図23には、IP107の状態信号に基づいて電力供給及びクロック供給の停止を行うための各レジスタの設定値が例示されている。供給制御部305は、各レジスタの値を図23のように設定することにより、IP107から出力される状態信号がアサートされたときに、電力供給及びクロック供給を停止できる。ここで、電力供給及びクロック供給の開始については、図5に示した電力供給開始信号やクロック供給開始信号の契機とするアクセス要求信号の特徴を保存するためのレジスタを用いて行うようにしてもよい。これにより、電力供給及びクロック供給の停止のみを状態信号に基づいて行い、電力供給及びクロック供給の開始をアクセス要求信号の監視結果に基づいて行うことができる。さらに、IP107から出力される状態信号に限らず、適宜の割込み信号を用いて、この割込み信号の変化を検出することにより、IP107への電力供給及びクロック供給の制御を行うようにしてもよい。
このように、アクセス要求信号の監視結果ではなく、状態信号や割込み信号に基づいて電力供給及びクロック供給の制御を行う利点は、ソフトウェアを介在させることなく、IP107を動作又は停止できる点にある。例えば、IP107のように、外部からのアクセスに応答するだけでなく自律的にメモリ12等にアクセスを行って動作する機能モジュールでは、IP107にアクセスするためのソフトウェアが不要となる。このため、IP107を動作させるために、CPU101等のIP制御用機能モジュールを動作させる必要がなく、半導体集積回路11全体の消費電力を低減でき、さらに、処理性能を向上させることができる。
以上のように、電力供給及びクロック供給の制御は、IP107へのアクセス要求信号や電力・クロック制御ブリッジ104に供給される信号の変化を契機として行われるので、図16に示したソフトウェア制御には修正を加える必要がない。また、供給制御部305の各レジスタへの設定は、半導体集積回路11の初期化を完了した後であって、IP107へのアクセスを実行する前であれば、適宜行ってよく、さらに、IP107の表示処理を何回起動又は停止したとしても1回行うだけでよいから、ソフトウェア開発コストの増加を抑えることができる。
また、電力・クロック制御ブリッジ104は、IP107への電力供給とクロック供給の少なくとも一方が停止され、IP107がアクセス応答信号を送信できないときには、IP107に代わって代理応答信号を送信するので、CPU101がハングアップ等の不具合を生じない。そして、電力・クロック制御ブリッジ104は、IP107とCPU101間のデータ転送を維持した状態で、IP107への電力供給とクロック供給の両方を停止することができるから、半導体集積回路11の内部のデータ転送を破綻させることなく、動作時の消費電力だけでなく非動作時のリーク電力も低減できる。さらにまた、IP107への電力供給とクロック供給の制御はIP107の外部で行われるので、IP107自体には電力供給とクロック供給の制御のために修正を加える必要がない。そのため、IP107が、修正が不可能又は困難な既存の開発品や外部からの導入品であっても、IP107への電力供給とクロック供給の制御を行う技術を半導体集積回路11に搭載可能である。
《実施形態2》
本発明の実施形態2に係る半導体集積回路は、上記した実施形態1に係る半導体集積回路11と比べると、代理応答生成部304と供給制御部305の機能等が異なる。以下、各実施形態2〜7では、上記した実施形態1と同一機能等を有する部分には同一符号を付し、機能等が異なる部分には符号の末尾にアルファベットを付して区別すると共に、説明が重複する部分については適宜省略した。実施形態2に係る供給制御部305Aは、供給制御部305と比べると、電力供給開始アクセス属性レジスタ、電力供給開始アクセス属性イネーブルレジスタ、クロック供給開始アクセス属性レジスタ及びクロック供給開始アクセス属性イネーブルレジスタが除かれている点が異なる。この理由は、実施形態2に係る電力・クロック制御ブリッジ104は、IP107への全てのリードアクセスに対して、実施形態2に係る代理応答生成部304Aが生成する代理応答信号ではなく、IP107が生成する正規のアクセス応答信号を送信するからである。
以下、供給制御部305Aによる電力供給開始信号、クロック供給開始信号の生成処理について説明する。尚、電力供給停止信号、クロック供給停止信号の生成処理は実施形態1と同一である。まず、電力供給開始信号のアサートについて説明する。図24には、電力供給開始信号生成回路が例示される。電力供給開始信号は、電力供給開始イネーブルレジスタが電力供給開始信号をアサートすることを示す値‘1’に設定されていて、さらに、IP107へのアクセスがリードアクセスであるか、又は、以下の2条件が全て成立するときにアサートされる。
第1の条件は、電力供給開始アドレスイネーブルレジスタの値が、電力供給開始アドレスレジスタの設定値を参照しないことを示す値‘0’であるか、又は、電力供給開始アドレスレジスタの設定値とバスIF301から供給されるアクセス要求信号に含まれるアドレスが一致することである。第2の条件は、電力供給開始ライトデータイネーブルレジスタの値が、電力供給開始ライトデータレジスタの設定値を参照しないことを示す値‘0’であるか、又は、電力供給開始ライトデータレジスタの設定値とバスIF301から供給されるアクセス要求信号に含まれるライトデータが一致することである。
次に、クロック供給開始信号のアサートについて説明する。図25には、クロック供給開始信号生成回路が例示される。クロック供給開始信号は、クロック供給開始イネーブルレジスタがクロック供給開始信号をアサートすることを示す値‘1’に設定されていて、さらに、IP107へのアクセスがリードアクセスであるか、又は、以下の2条件が全て成立するときにアサートされる。
第1の条件は、クロック供給開始アドレスイネーブルレジスタの値が、クロック供給開始アドレスレジスタの設定値を参照しないことを示す値‘0’であるか、又は、クロック供給開始アドレスレジスタの設定値とバスIF301から供給されるアクセス要求信号に含まれるアドレスが一致することである。第2の条件は、クロック供給開始ライトデータイネーブルレジスタの値が、クロック供給開始ライトデータレジスタの設定値を参照しないことを示す値‘0’であるか、又は、クロック供給開始ライトデータレジスタの設定値とバスIF301から供給されるアクセス要求信号に含まれるライトデータが一致することである。
また、代理応答生成部304Aは、バスIF301からアクセス属性信号を取込み、バスIF301がIP107へ送信しているアクセス要求信号がリードアクセスであるかライトアクセスであるかを判別し、図26の規則に従って代理応答信号を生成する。代理応答生成部304Aは、アクセスがリードアクセスであれば、IP107への電力供給及びクロック供給の開始又は停止とは無関係に、IP107へのアクセス要求信号に応じた代理応答信号を生成せず、リトライ信号のアサートも行わない。そして、供給制御部305Aは、代理応答生成部304Aが代理応答信号の送信を停止した後に、IP107への電力供給及びクロック供給を開始する。一方、代理応答生成部304Aは、アクセスがライトアクセスであれば、代理応答生成部304と同様に動作する。
即ち、代理応答生成部304Aは、アクセス応答信号に正確なリードデータを付加できない状態にあるIP107に対して、アクセス要求信号が送信された場合には、代理応答信号の生成やリトライ信号のアサートを行わない。従って、実施形態2に係る半導体集積回路では、全てのリードアクセスに対して、正確なリードデータが付加された正規のアクセス応答信号をIP107から送信することができる。
《実施形態3》
本発明の実施形態3に係る半導体集積回路11Aは、半導体集積回路11と比べると、図27に示すように、複数のCPU101A,101Bが配置され、DMAC108及び割込みコントローラ109が除かれた点が異なり、そのため、電力・クロック制御ブリッジ104Aの機能等が異なる。ここでは、各CPU101A,101Bがそれぞれ複数のプロセスを時分割等の手法によって並列実行し、特定のCPUが実行する特定のプロセスのみがIP107への電力供給とクロック供給の制御を行う場合について説明する。
CPU101A,101Bは、ルータ103及びメモリ制御部102を介してメモリ32にアクセスし、このメモリに格納されているプログラムを実行することによって、半導体集積回路11A内外の制御を行う。CPU101A,101Bは、ルータ103を介して電力・クロック制御ブリッジ104A及びIP107にアクセス要求信号を送信するときに、アクセス要求信号がCPU101A,101Bのいずれから送信されたかを電力・クロック制御ブリッジ104Aが識別できるように、それぞれのマスタIDをアクセス要求信号に付加する。ここでは、CPU101AのマスタIDを‘0’、CPU101BのマスタIDを‘1’とする。また、CPU101A,101Bは、アクセス要求信号を送信するときに、アクセス要求信号を送信するプロセスのプロセスIDを電力・クロック制御ブリッジ104Aが識別できるように、プロセスIDをアクセス要求信号に付加する。ルータ103は、CPU101A,101Bからのアクセス要求信号を電力・クロック制御ブリッジ104Aに中継するときに、CPU101A,101Bが出力するマスタID及びプロセスIDを同時に送信する。
次に、半導体集積回路11Aの初期化完了後のIP107への電力供給とクロック供給の制御について説明する。初期化完了後のIP107への電力供給及びクロック供給の制御は、ルータ103からIP107へのアクセス要求信号を、電力・クロック制御ブリッジ104Aが監視した結果に基づいて行われる。アクセス要求信号には、アドレス、ライトデータ、アクセス属性だけでなく、マスタID、プロセスIDが含まれる。
電力・クロック制御ブリッジ104Aは、電力・クロック制御ブリッジ104と比べると、例えば、バスIF301からIP107へのアクセス要求信号を取込む供給制御部305Bに含まれるレジスタの種類が異なる。具体的には、実施形態3に係る供給制御部305Bは、供給制御部305に比べると、マスタIDレジスタ(MIDR)、マスタIDイネーブルレジスタ(MIDER)、プロセスIDレジスタ(PIDR)及びプロセスIDイネーブルレジスタ(PIDER)が含まれる点が異なる。マスタIDレジスタは、電力・クロック制御ブリッジ104Aの電力・クロック制御を行う機能モジュールのマスタIDを保存するためのレジスタであり、ルータ103を介してCPU101A,101Bから読み書き可能である。マスタIDイネーブルレジスタは、このマスタIDレジスタの値を参照するか否かを設定するためのレジスタである。プロセスIDレジスタは、電力・クロック制御ブリッジ104Aの電力・クロック制御を行うソフトウェアのプロセスIDを保存するためのレジスタであり、ルータ103を介してCPU101A,101Bから読み書き可能である。プロセスIDイネーブルレジスタは、このプロセスIDレジスタの値を参照するか否かを設定するためのレジスタである。
次に、供給制御部305Bによる電力供給開始信号、電力供給停止信号、クロック供給開始信号、クロック供給停止信号の生成処理について説明する。まず、電力供給開始信号のアサートについて説明する。図28には、電力供給開始信号生成回路が例示されるが、この回路は、図6に示す電力供給開始信号生成回路と比べると、供給制御部305Bに4つのレジスタが追加されたことにより、2条件が追加された点が異なる。即ち、電力供給開始信号は、電力供給開始イネーブルレジスタが電力供給開始信号をアサートすることを示す値‘1’に設定されていて、さらに、5条件が全て成立するときにアサートされる。第1〜3の条件は、図6において記載した条件と同一である。
第4の条件(以下、追加条件1とも記す)は、マスタIDイネーブルレジスタの値が、マスタIDレジスタの設定値を参照しないことを示す値‘0’であるか、又は、マスタIDレジスタの値とバスIF301から供給されるマスタIDの値が一致することである。第5の条件(以下、追加条件2とも記す)は、プロセスIDイネーブルレジスタの値が、プロセスIDレジスタの設定値を参照しないことを示す値‘0’であるか、又は、プロセスIDレジスタの値とバスIF301から供給されるプロセスIDの値が一致することである。
次に、電力供給停止信号のアサートについて説明する。図29には、電力供給停止信号生成回路が例示されるが、この回路は、図7に示す電力供給停止信号生成回路と比べると、2条件が追加された点が異なる。即ち、電力供給停止信号は、電力供給停止イネーブルレジスタが電力供給停止信号をアサートすることを示す値‘1’に設定されていて、さらに、6条件が全て成立するときにアサートされる。第1〜4の条件は、図7において記載した条件と同一である。また、第5の条件は、図28での追加条件1と同一であり、第6の条件は、追加条件2と同一である。
次に、クロック供給開始信号のアサートについて説明する。図30には、クロック供給開始信号生成回路が例示されるが、この回路は、図8に示すクロック供給開始信号生成回路と比べると、2条件が追加された点が異なる。即ち、クロック供給開始信号は、クロック供給開始イネーブルレジスタがクロック供給開始信号をアサートすることを示す値‘1’に設定されていて、さらに、5条件が全て成立するときにアサートされる。第1〜3の条件は、図8において記載した条件と同一である。また、第4の条件は、上記した追加条件1と同一であり、第5の条件は、追加条件2と同一である。
次に、クロック供給停止信号のアサートについて説明する。図31には、クロック供給停止信号生成回路が例示されるが、この回路は、図9に示すクロック供給停止信号生成回路と比べると、2条件が追加された点が異なる。即ち、クロック供給停止信号は、クロック供給停止イネーブルレジスタがクロック供給停止信号をアサートすることを示す値‘1’に設定されていて、さらに、6条件が全て成立するときにアサートされる。第1〜4の条件は、図9において記載した条件と同一である。また、第5の条件は、上記した追加条件1と同一であり、第6の条件は、追加条件2と同一である。
以下、電力・クロック制御ブリッジ104Aが、IP107への電力供給とクロック供給の少なくとも一方を制御するときの動作について説明する。ここでは、CPU101A上で実行されるプロセスIDが“80”であるプロセスのみがIP107による表示処理を制御し、CPU101B上で実行されるプロセスや、プロセスIDが“80”以外であるプロセスはIP107による表示処理の制御を許可されていないものとする。
まず、IP107への電力供給を制御する場合について説明する。ここでは、IP107への電力供給が停止され、クロック供給が開始されているとする。この場合には、マスタIDイネーブルレジスタ、マスタIDレジスタ、プロセスIDイネーブルレジスタ及びプロセスIDレジスタに、図32に示す値を設定すればよい。また、供給制御部105Bに含まれる、マスタIDイネーブルレジスタ、マスタIDレジスタ、プロセスIDイネーブルレジスタ及びプロセスIDレジスタ以外のレジスタには、図17に示した設定値をそれぞれ設定する。
以下、図32に例示された各レジスタの設定値について具体的に説明する。マスタIDイネーブルレジスタには、マスタIDレジスタの設定値を参照することを示す値‘1’を設定する。マスタIDレジスタの設定値が‘0’であるので、マスタIDとして‘0’を出力するCPU101Aからのアクセス要求信号のみが電力供給の制御に使用されることになる。同様に、プロセスIDイネーブルレジスタには、プロセスIDレジスタの設定値を参照することを示す値‘1’を設定する。プロセスIDレジスタ設定値が“80”であるので、プロセスIDとして“80”を出力するプロセスによるアクセス要求信号のみが電力供給の制御に使用されることになる。従って、CPU101A上で実行されるプロセスIDが“80”のプロセスによって送信されたアクセス要求信号に基づいて、電力供給の制御が実行される。
ここで、上記処理を図16に示したレジスタアクセスの手順に対応させて説明する。供給制御部305Bは、CPU101A上で実行されるプロセスIDが“80”であるプロセスが、ステップS1を実行したことを検出して、IP107への電力供給を開始することができる。また、供給制御部305BがIP107への電力供給を停止する動作は、実施形態1と略同様であって、例えば、CPU101A上で実行されるプロセスIDが“80”であるプロセスがステップS5を実行し、このステップS5の条件分岐が“Yes”となったときに電力供給を停止できる。
また、供給制御部305Bに含まれるレジスタに、図32に示した値と図18に示した値を設定してもよい。この場合には、供給制御部305Bは、CPU101A上で実行されるプロセスIDが“80”であるプロセスによって実行されたIP107へのレジスタライトによって、IP107へのクロック供給を開始できる。そして、供給制御部305Bは、IP107の表示状態レジスタを示すアドレス“FF001010”をリードし、その結果、表示処理を実行していないことを示す‘0’であることを検出して、クロック供給停止信号をアサートする。従って、供給制御部305Bは、IP107が表示処理を行っていないときにクロック供給を停止できる。
さらに、供給制御部305Bに含まれるレジスタ、図32に示した値と図19に示した値を設定してもよい。この場合には、供給制御部305Bは、CPU101A上で実行されるプロセスIDが“80”であるプロセスによって実行されたIP107へのレジスタライトによって、IP107への電力供給及びクロックの供給を開始できる。そして、供給制御部305Bは、IP107の表示状態レジスタを示すアドレス“FF001010”をリードし、その結果、表示処理を実行していないことを示す‘0’であることを検出して、電力供給停止信号及びクロック供給停止信号をアサートする。従って、供給制御部305Bは、IP107が表示処理を行っていないときに電力供給及びクロック供給を停止できる。
次に、CPU101B上で実行されるプロセスやプロセスIDが“80”以外のプロセスがIP107にアクセス要求信号を送信したときの電力・クロック制御ブリッジ104Aの動作を説明する。
供給制御部305Bは、CPU101B上で実行されるプロセスや、プロセスIDが“80”以外のプロセス送信したアクセス要求信号に対しては、電力供給開始信号、電力供給停止信号、クロック供給開始信号、クロック供給停止信号をアサートしない。
このとき、実施形態3に係る代理応答生成部は、図14の規則に従い、IP107への電力供給及びクロック供給が開始されているときには、代理応答信号をバスIF301に送信せず、IP107への電力供給とクロック供給のいずれか又は両方が停止されているときには、代理応答信号をバスIF301に送信する。尚、ここでの代理応答生成部は、電力供給開始信号及びクロック供給開始信号がアサートされないので、リトライ信号をアサートしない。
即ち、IP107への電力供給とクロック供給のいずれか又は両方が停止され、IP107がアクセス応答信号を送信できないときには、IP107に代わって、電力・クロック制御ブリッジ104Aが代理応答信号を送信する。このとき、電力・クロック制御ブリッジ104Aは、この代理応答信号を、アクセス要求信号を送信したCPU101A,101Bのいずれかに正しく送信するので、CPU101A,101B等の機能モジュールの処理が滞ることがない。
従って、半導体集積回路11Aでは、電力供給及びクロック供給の制御の対象とするアクセスを、特定のCPUで実行される特定のプロセスによって実行されたものに限定できるので、ソフトウェアの不具合やコンピュータウィルス等によるプロセスによって、IP107への電力供給やクロック供給が不所望に開始又は停止されることがない。
《実施形態4》
本発明の実施形態4に係る半導体集積回路は、実施形態3に係る半導体集積回路11Aに比べると、複数のCPU101A,101B(以下、第1のマスタ、第2のマスタとも記す)が、IP107への電力供給とクロック供給の制御を行う点が異なる。また、バスIF301からIP107へのアクセス要求信号を取込む供給制御部305C以外の構成は、半導体集積回路11Aと同様としてもよい。このアクセス要求信号には、アドレス、ライトデータ、アクセス属性だけでなく、マスタIDが含まれる。
供給制御部305Cは、図33に示すように各レジスタを有する。尚、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタ、クロック供給開始イネーブルレジスタ及びクロック供給停止イネーブルレジスタは、図5において記載したレジスタと同様である。マスタIDレジスタA(MIDRA)には、IP107への電力供給とクロック供給の制御を行う第1のマスタのマスタIDが保存される。マスタID電力ステータスレジスタA(MIDPSRA)には、第1のマスタによって電力供給がなされているか否かを示す情報が保存される。マスタIDクロックステータスレジスタA(MIDCSRA)には、第1のマスタによってクロック供給がなされているか否かを示す情報が保存される。マスタIDレジスタB(MIDRB)には、IP107への電力供給とクロック供給の制御を行う第2のマスタのマスタIDが保存される。マスタID電力ステータスレジスタB(MIDPSRB)には、第2のマスタによって電力供給がなされているか否かを示す情報が保存される。マスタIDクロックステータスレジスタB(MIDCSRB)には、第2のマスタによってクロック供給がなされているか否かを示す情報が保存される。尚、ここでは、マスタがIP107にライトアクセスを行ってから、IP107にリードアクセスを行うまでの期間を、マスタによるIP107の使用期間といい、マスタがIP107に電力供給及びクロック供給を開始している期間とする。
供給制御部305Cは、これらの各レジスタを以下のように設定する。マスタID電力ステータスレジスタAには、マスタIDレジスタAに設定された第1のマスタがIP107にライトアクセスを行ったときには、第1のマスタによって電力供給が開始されていることを示す値が設定される。また、マスタID電力ステータスレジスタAには、第1のマスタがIP107にリードアクセスを行ったときには、第1のマスタによって電力供給が停止されていることを示す値が設定される。マスタID電力ステータスレジスタBには、マスタIDレジスタBに設定された第2のマスタがIP107にライトアクセスを行ったときには、第2のマスタによって電力供給が開始されていることを示す値が設定される。また、マスタID電力ステータスレジスタBには、第2のマスタがIP107にリードアクセスを行ったときには、第2のマスタによって電力供給が停止されていることを示す値が設定される。マスタIDクロックステータスレジスタAには、マスタIDレジスタAに設定された第1のマスタがIP107にライトアクセスを行ったときには、第1のマスタによってクロック供給が開始されていることを示す値が設定される。また、マスタIDクロックステータスレジスタAには、第1のマスタがIP107にリードアクセスを行ったときには、第1のマスタによってクロック供給が停止されていることを示す値が設定される。マスタIDクロックステータスレジスタBには、マスタIDレジスタBに設定された第2のマスタがIP107にライトアクセスを行ったときには、第2のマスタによってクロック供給が開始されていることを示す値が設定される。また、マスタIDクロックステータスレジスタBには、第2のマスタがIP107にリードアクセスを行ったときには、第2のマスタによってクロック供給が停止されていることを示す値が設定される。
次に、供給制御部305Cによる電力供給開始信号、電力供給停止信号、クロック供給開始信号、クロック供給停止信号の生成処理について説明する。まず、電力供給開始信号のアサートについて説明する。図34には、電力供給開始信号生成回路が例示される。電力供給開始信号は、電力供給開始イネーブルレジスタが電力供給開始信号をアサートすることを示す値‘1’に設定されていて、マスタIDレジスタA又はマスタIDレジスタBに設定されたマスタがIP107にライトアクセスを行ったときにアサートされる。
次に、電力供給停止信号のアサートについて説明する。図35には、電力供給停止信号生成回路が例示される。電力供給停止信号は、電力供給停止イネーブルレジスタが電力供給停止信号をアサートすることを示す値‘1’に設定されていて、さらに、以下の2条件のうちのいずれかが成立したときにアサートされる。
第1の条件は、マスタID電力ステータスレジスタBに設定されたマスタによって電力供給がなされていない旨を示す情報が格納されているときに、マスタIDレジスタAに設定されたマスタがリードアクセスを行うことである。第2の条件は、マスタID電力ステータスレジスタAに設定されたマスタによって電力供給がなされていない旨を示す情報が格納されているときに、マスタIDレジスタBに設定されたマスタがリードアクセスを行うことである。
次に、クロック供給開始信号のアサートについて説明する。図36には、クロック供給開始信号生成回路が例示される。クロック供給開始信号は、クロック供給開始イネーブルレジスタがクロック供給開始信号をアサートすることを示す値‘1’に設定されていて、マスタIDレジスタA又はマスタIDレジスタBに設定されたマスタがIP307にライトアクセスを行ったときにアサートされる。
次に、クロック供給停止信号のアサートについて説明する。図37には、クロック供給停止信号生成回路が例示される。クロック供給停止信号は、クロック供給停止イネーブルレジスタがクロック供給停止信号をアサートすることを示す値‘1’に設定されていて、以下の2条件のうちのいずれかが成立したときにアサートされる。
第1の条件は、マスタIDクロックステータスレジスタBに設定されたマスタによってクロック供給がなされていない旨を示す情報が格納されているときに、マスタIDレジスタAに設定されたマスタがリードアクセスを行うことである。第2の条件は、マスタIDクロックステータスレジスタAに設定されたマスタによってクロック供給がなされていない旨を示す情報が格納されているときに、マスタIDレジスタBに設定されたマスタがリードアクセスを行うことである。
以下、供給制御部305Cの動作をレジスタ設定値に基づいて説明する。まず、クロック供給の制御を行わず、電力供給の制御を行う場合、即ち、供給制御部305Cが、IP107へのクロック供給を常に開始し、電力供給を開始又は停止する動作について説明する。まず、初期化完了直後に、IP107への電力供給を停止し、クロック供給を開始するために、図2に示すモード信号を“10”とする。供給制御部305Cは、初期化時にモード信号を参照して、マスタID電力ステータスレジスタA及びマスタID電力ステータスレジスタBには、電力供給を行っていない旨を示す‘0’を設定し、マスタIDクロックステータスレジスタA及びマスタIDクロックステータスレジスタBには、クロック供給を行っている旨を示す‘1’を設定する。
また、供給制御部305Cの各レジスタには、クロック供給の制御を行わず、電力供給の制御を行うために、図38に示す値をそれぞれ設定する。即ち、電力供給開始イネーブルレジスタには、電力供給開始信号をアサートすることを示す値‘1’を設定する。電力供給停止イネーブルレジスタには、電力供給停止信号をアサートすることを示す値‘1’を設定する。クロック供給開始イネーブルレジスタには、クロック供給開始信号をアサートしないことを示す値を設定する。クロック供給停止イネーブルレジスタには、クロック供給停止信号をアサートしないことを示す値を設定する。マスタIDレジスタAには、CPU101Aを示す値‘0’を設定する。マスタIDレジスタBには、CPU101Bを示す値‘1’を設定する。
この場合には、電力供給開始信号は、CPU101A又はCPU101BがIP107にライトアクセスを行ったときにアサートされる。電力供給停止信号は、CPU101Bによって電力供給が停止され、CPU101Aがリードアクセスを行ったとき、又は、CPU101Aによって電力供給が停止され、CPU101Bがリードアクセスを行ったときにアサートされる。また、クロック供給開始信号及びクロック供給停止信号は、クロック供給開始イネーブルレジスタ、クロック供給停止イネーブルレジスタの設定値が各信号をアサートしないようにそれぞれ設定されているので、アサートされない。
次に、電力供給の制御を行わず、クロック供給の制御を行う場合、即ち、供給制御部305Cが、IP107への電力供給を常に開始し、クロック供給を開始又は停止する動作について説明する。まず、初期化完了直後に、IP107へのクロック供給を停止し、電力供給を開始するために、モード信号を“01”とする。供給制御部305Cは、初期化時にモード信号を参照して、マスタID電力ステータスレジスタA及びマスタID電力ステータスレジスタBには、電力供給を行っている旨を示す‘1’を設定し、マスタIDクロックステータスレジスタA及びマスタIDクロックステータスレジスタBには、クロック供給を行っていない旨を示す‘0’を設定する。
また、供給制御部305Cの各レジスタには、電力供給の制御を行わず、クロック供給の制御を行うために、図39に示す値をそれぞれ設定する。即ち、電力供給開始イネーブルレジスタには、電力供給開始信号をアサートしないことを示す値‘0’を設定する。電力供給停止イネーブルレジスタには、電力供給停止信号をアサートしないことを示す値‘0’を設定する。クロック供給開始イネーブルレジスタには、クロック供給開始信号をアサートすることを示す値‘1’を設定する。クロック供給停止イネーブルレジスタには、クロック供給停止信号をアサートすることを示す値‘1’を設定する。マスタIDレジスタAには、CPU101Aを示す値‘0’を設定する。マスタIDレジスタBには、CPU101Bを示す値‘1’を設定する。
この場合には、クロック供給開始信号は、CPU101A又はCPU101BがIP107にライトアクセスを行ったときにアサートされる。クロック供給停止信号は、CPU101Bによってクロック供給が停止され、CPU101Aがリードアクセスを行ったとき、又は、CPU101Aによってクロック供給が停止され、CPU101Bがリードアクセスを行ったときにアサートされる。また、電力供給開始信号及び電力供給停止信号は、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタの設定値が各信号をアサートしないようにそれぞれ設定されているので、アサートされない。
次に、電力供給及びクロック供給の制御を行う場合、即ち、供給制御部305Cが、IP107への電力供給及びクロック供給を開始又は停止する動作について説明する。まず、初期化完了直後に、IP107への電力供給及びクロック供給を停止するために、モード信号を“00”とする。供給制御部305Cは、初期化時にモード信号を参照して、マスタID電力ステータスレジスタA及びマスタID電力ステータスレジスタBには、電力供給を行っていない旨を示す‘0’を設定し、マスタIDクロックステータスレジスタA及びマスタIDクロックステータスレジスタBには、クロック供給を行っていない旨を示す‘0’を設定する。
また、供給制御部305Cの各レジスタには、電力供給及びクロック供給の制御を行うために、図40に示す値を設定する。即ち、電力供給開始イネーブルレジスタには、電力供給開始信号をアサートすることを示す値‘1’を設定する。電力供給停止イネーブルレジスタには、電力供給停止信号をアサートすることを示す値‘1’を設定する。クロック供給開始イネーブルレジスタには、クロック供給開始信号をアサートすることを示す値‘1’を設定する。クロック供給停止イネーブルレジスタには、クロック供給停止信号をアサートすることを示す値‘1’を設定する。マスタIDレジスタAには、CPU101Aを示す値‘0’を設定する。マスタIDレジスタBには、CPU101Bを示す値‘1’を設定する。
この場合には、電力供給開始信号及びクロック供給開始信号は、CPU101A又はCPU101BがIP107にライトアクセスを行ったときにアサートされる。また、電力供給停止信号は、CPU101Bによって電力供給が停止され、CPU101Aがリードアクセスを行ったとき、又は、CPU101Aによって電力供給が停止され、CPU101Bがリードアクセスを行ったときにアサートされる。クロック供給停止信号は、CPU101Bによってクロック供給が停止され、CPU101Aがリードアクセスを行ったとき、又は、CPU101Aによってクロック供給が停止され、CPU101Bがリードアクセスを行ったときにアサートされる。
従って、実施形態4に係る半導体集積回路では、複数のCPU101A,101Bが並列的にIP107を制御するときに、CPU101A,101BのうちいずれかがIP107を動作させるときにはIP107への電力供給を開始し、CPU101A,101BのいずれもIP107を動作させないときにはIP107への電力供給を停止できる。一般的に、複数のCPUが1つのIPを制御する場合において、あるCPUから、他のCPUがIPを使用しているか否かを判定することは困難であり、そのため、通常、IPへの電力供給は常時行われる。これに対して、実施形態4に係る半導体集積回路は、複数のCPU101A,101Bが1つのIP107を制御する場合であっても、IP107への電力供給を必要最小限の期間だけ行うので、常時電力を供給する従来方式に比べて消費電力を低減できる。
《実施形態5》
本発明の実施形態5に係る半導体集積回路は、実施形態4に係る半導体集積回路と比べると、CPUが複数のプロセス(以下、第1のプロセス、第2のプロセスとも記す)を実行するときに、複数のプロセスが、IP107への電力供給とクロック供給の制御を行う点が異なる。また、バスIF301からIP107へのアクセス要求信号を取込む供給制御部305D以外の構成は、半導体集積回路11Aと同様としてもよい。このアクセス要求信号には、アドレス、ライトデータ、アクセス属性だけなく、プロセスIDが含まれる。
供給制御部305Dは、図41に示すように各レジスタを有する。尚、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタ、クロック供給開始イネーブルレジスタ及びクロック供給停止イネーブルレジスタは、図5において記載したレジスタと同様である。プロセスIDレジスタA(PIDRA)には、IP107への電力・クロック供給制御を行う第1のプロセスのプロセスIDが保存される。プロセスID電力ステータスレジスタA(PIDPSRA)には、この第1のプロセスによって電力供給がなされているか否かを示す情報が保存される。プロセスIDクロックステータスレジスタA(PIDCSRA)には、この第1のプロセスによってクロック供給がなされているか否かを示す情報が保存される。プロセスIDレジスタB(PIDRB)には、IP107への電力・クロック供給制御を行う第2のプロセスのプロセスIDが保存される。プロセスID電力ステータスレジスタB(PIDPSRB)には、この第2のプロセスによって電力供給がなされているか否かを示す情報が保存される。プロセスIDクロックステータスレジスタB(PIDCSRB)には、この第2のプロセスによってクロック供給がなされているか否かを示す情報が保存される。尚、ここでは、プロセスがIP107にライトアクセスを行ってから、IP107にリードアクセスを行うまでの期間を、プロセスによるIP107の使用期間といい、プロセスがIP107に電力供給及びクロック供給を開始している期間とする。
供給制御部305Dは、これらの各レジスタを以下のように設定する。プロセスID電力ステータスレジスタAには、プロセスIDレジスタAに設定された第1のプロセスがIP107にライトアクセスを行ったときに、第1のプロセスによって電力供給が開始されていることを示す値が設定される。また、プロセスID電力ステータスレジスタAには、第1のプロセスがIP107にリードアクセスを行ったときに、第1のプロセスによって電力供給が停止されていることを示す値が設定される。プロセスID電力ステータスレジスタBには、プロセスIDレジスタBに設定された第2のプロセスがIP107にライトアクセスを行ったときに、第2のプロセスによって電力供給が開始されていることを示す値が設定される。また、プロセスID電力ステータスレジスタBには、第2のプロセスがIP107にリードアクセスを行ったときに、第2のプロセスによって電力供給が停止されていることを示す値が設定される。プロセスIDクロックステータスレジスタAには、プロセスIDレジスタAに設定された第1のプロセスがIP107にライトアクセスを行ったときに、第1のプロセスによってクロック供給が開始されていることを示す値が設定される。また、プロセスIDクロックステータスレジスタAには、第1のプロセスがIP107にリードアクセスを行ったときに、第1のプロセスによってクロック供給が停止されていることを示す値が設定される。プロセスIDクロックステータスレジスタBには、プロセスIDレジスタBに設定された第2のプロセスがIP107にライトアクセスを行ったときに、第2のプロセスによってクロック供給が開始されていることを示す値が設定される。また、プロセスIDクロックステータスレジスタBには、第2のプロセスがIP107にリードアクセスを行ったときに、第2のプロセスによってクロック供給が停止されていることを示す値が設定される。
次に、供給制御部305Dによる電力供給開始信号、電力供給停止信号、クロック供給開始信号、クロック供給停止信号の生成処理について説明する。まず、電力供給開始信号のアサートについて説明する。図42には、電力供給開始信号生成回路が例示される。この電力供給開始信号生成回路は、図34に示す電力供給開始信号生成回路と比べると、マスタIDの代わりにプロセスIDを設定する点が異なる。そして、電力供給開始信号のアサートについては、図34に対応する説明において、マスタIDレジスタA,BをプロセスIDレジスタに置き換えたものと同様である。
次に、電力供給停止信号のアサートについて説明する。図43には、電力供給停止信号生成回路が例示される。この電力供給停止信号生成回路は、図35に示す電力供給停止信号生成回路と比べると、マスタIDの代わりにプロセスIDを設定する点が異なる。そして、電力供給停止信号のアサートについては、図35に対応する説明において、マスタIDレジスタA,B及びマスタID電力ステータスレジスタA,Bを、プロセスIDレジスタA,B及びプロセスID電力ステータスレジスタA,Bに置き換えたものと同様である。
次に、クロック供給開始信号のアサートについて説明する。図44には、クロック供給開始信号生成回路が例示される。クロック供給開始信号生成回路は、図36に示すクロック供給開始信号生成回路と比べると、マスタIDの代わりにプロセスIDを設定する点が異なる。そして、クロック供給開始信号のアサートについては、図36に対応する説明において、マスタIDレジスタA,BをプロセスIDレジスタに置き換えたものと同様である。
次に、クロック供給停止信号のアサートについて説明する。図45には、クロック供給停止信号生成回路が例示される。クロック供給停止信号生成回路は、図37に示すクロック供給停止信号生成回路と比べると、マスタIDの代わりにプロセスIDを設定する点が異なる。そして、クロック供給停止信号のアサートについては、図37に対応する説明において、マスタIDレジスタA,B及びマスタIDクロックステータスレジスタA,Bを、プロセスIDレジスタA,B及びプロセスIDクロックステータスレジスタA,Bに置き換えたものと同様である。
以下、供給制御部305Dの動作をレジスタ設定値に基づいて説明する。まず、クロック供給の制御を行わず、電力供給の制御を行う場合、即ち、供給制御部305Dが、IP107へのクロック供給を常に開始し、電力供給を開始又は停止する動作について説明する。まず、初期化完了直後に、IP107への電力供給を停止し、クロック供給を開始するために、モード信号を“10”とする。供給制御部305Dは、初期化時にモード信号を参照して、プロセスID電力ステータスレジスタA及びプロセスID電力ステータスレジスタBには、電力供給を行っていない旨を示す‘0’を設定する。さらに、供給制御部305Dは、プロセスIDクロックステータスレジスタA及びプロセスIDクロックステータスレジスタBには、クロック供給を行っている旨を示す‘1’を設定する。
また、供給制御部305Dの各レジスタには、クロック供給の制御を行わず、電力供給の制御を行うために、図46に示す値をそれぞれ設定する。これらの各レジスタのうち、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタ、クロック供給開始イネーブルレジスタ、クロック供給停止イネーブルレジスタの設定値については、図38に示す設定値と同様である。また、プロセスIDレジスタAには、プロセスAを示す値“80”を設定する。プロセスIDレジスタBには、プロセスBを示す値“FF”を設定する。
この場合には、電力供給開始信号は、プロセスIDが“80”又は“FF”であるプロセスがIP107にライトアクセスを行ったときにアサートされる。電力供給停止信号は、プロセスBによって電力供給が停止され、プロセスAがリードアクセスを行ったとき、又は、プロセスAによって電力供給が停止され、プロセスBがリードアクセスを行ったときにアサートされる。また、クロック供給開始信号及びクロック供給停止信号は、クロック供給開始イネーブルレジスタ、クロック供給停止イネーブルレジスタの設定値が各信号をアサートしないようにそれぞれ設定されているので、アサートされない。
次に、電力供給の制御を行わず、クロック供給の制御を行う場合、即ち、供給制御部305Dが、IP107への電力供給を常に開始し、クロック供給を開始又は停止する動作について説明する。まず、初期化完了直後に、IP107へのクロック供給を停止し、電力供給を開始するために、モード信号を“01”とする。供給制御部305Dは、初期化時にモード信号を参照して、プロセスID電力ステータスレジスタA及びプロセスID電力ステータスレジスタBには、電力供給を行っている旨を示す‘1’を設定する。さらに、供給制御部305Dは、プロセスIDクロックステータスレジスタA及びプロセスIDクロックステータスレジスタBには、クロック供給を行っていない旨を示す‘0’を設定する。
また、供給制御部305Dの各レジスタには、電力供給の制御を行わず、クロック供給の制御を行うために、図47に示す値をそれぞれ設定する。これらの各レジスタのうち、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタ、クロック供給開始イネーブルレジスタ、クロック供給停止イネーブルレジスタの設定値については、図39に示す設定値と同様である。また、プロセスIDレジスタA,Bについては、図46に示す値と同様である。
この場合には、クロック供給開始信号は、プロセスIDが“80”又は“FF”であるプロセスがIP107にライトアクセスを行ったときにアサートされる。クロック供給停止信号は、プロセスBによってクロック供給が停止され、プロセスAがリードアクセスを行ったとき、又は、プロセスAによってクロック供給が停止され、プロセスBがリードアクセスを行ったときにアサートされる。また、電力供給開始信号及び電力供給停止信号は、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタの設定値が各信号をアサートしないようにそれぞれ設定されているので、アサートされない。
次に、電力供給及びクロック供給の制御を行う場合、即ち、供給制御部305Dが、IP107への電力供給及びクロック供給を開始又は停止する動作について説明する。まず、初期化完了直後に、IP107への電力供給及びクロック供給を停止するために、モード信号を“00”とする。供給制御部305Dは、初期化時にモード信号を参照して、プロセスID電力ステータスレジスタA及びプロセスID電力ステータスレジスタBには、電力供給を行っていない旨を示す‘0’を設定する。さらに、供給制御部305Dは、プロセスIDクロックステータスレジスタA及びプロセスIDクロックステータスレジスタBには、クロック供給を行っていない旨を示す‘0’を設定する。
また、供給制御部305Dの各レジスタには、電力供給及びクロック供給の制御を行うために、図48に示す値を設定する。これらの各レジスタのうち、電力供給開始イネーブルレジスタ、電力供給停止イネーブルレジスタ、クロック供給開始イネーブルレジスタ、クロック供給停止イネーブルレジスタの設定値については、図40に示す設定値と同様である。また、プロセスIDレジスタA,Bについては、図46に示す値と同様である。
この場合には、電力供給開始信号及びクロック供給開始信号は、プロセスIDが“80”又は“FF”であるプロセスがIP107にライトアクセスを行ったときにアサートされる。また、電力供給停止信号は、プロセスBによって電力供給が停止され、プロセスAがリードアクセスを行ったとき、又は、プロセスAによって電力供給が停止され、プロセスBがリードアクセスを行ったときにアサートされる。クロック供給停止信号は、プロセスBによってクロック供給が停止され、プロセスAがリードアクセスを行ったとき、又は、プロセスBによってクロック供給が停止され、プロセスAがリードアクセスを行ったときにアサートされる。
従って、実施形態5に係る半導体集積回路では、複数のプロセスA,Bが並列的にIP107を制御するときに、プロセスA,BのうちいずれかがIP107を動作させるときにはIP107への電力供給を開始し、プロセスA,BのいずれもIP107を動作させないときにはIP107への電力供給を停止できる。一般的に、複数のプロセスが1つのIPを制御する場合において、あるプロセスから、他のプロセスがIPを使用しているか否かを判定することは困難であり、そのため、通常、IPへの電力供給は常時行われる。これに対して、実施形態5に係る半導体集積回路は、複数のプロセスA,Bが1つのIP107を制御する場合であっても、IP107への電力供給を必要最小限の期間だけ行うので、常時電力を供給する従来方式に比べて消費電力を低減できる。
《実施形態6》
本発明の実施形態6に係る半導体集積回路は、IP107への電力供給とクロック供給を開始したときに、単純化されたソフトウェア処理によって、IP107を電力供給状態とクロック供給状態にするものであって、上記した半導体集積回路11と比べると、電力・クロック制御ブリッジ104Bの機能等が異なる。電力・クロック制御ブリッジ104Bは、電力・クロック制御ブリッジ104と比べると、図49に示すようにブリッジDMAC306が追加された点が異なる。
図50には、バスIF301が中継するアクセスの流れが例示されている。このアクセスは、図4に示すアクセスと比べると、ターゲットアクセスの処理は同様であり、イニシエータアクセスの処理の処理が異なる。具体的には、バスIF301は、IP107又はブリッジDMAC306から受信したアクセス要求信号をルータ103に送信し、ルータ103から供給されるアクセス要求信号に応じたアクセス応答信号をIP107とブリッジMAC306に送信する。
ブリッジDMAC306は、バスIF301、ルータ103、メモリ制御部102を介してメモリ12からデータを読込み、このデータをIP107に書込むDMACである。ブリッジDMAC306は、DMA開始信号がアサートされた後に、電力供給応答信号又はクロック供給応答信号がディアサート状態からアサート状態に遷移したことを検出して、メモリ12からIP107へのデータ転送を行う。
以下、電力・クロック制御ブリッジ104Bが、IP107への電力供給とクロック供給の制御を行うときの一連の処理について説明する。まず、供給制御部305Eは、各レジスタの値を図51に示すように設定する。この場合には、電力供給開始アドレスイネーブルレジスタ及び電力供給開始ライトデータイネーブルレジスタが有効を示す値となる。このため、供給制御部305Eは、IP107の表示制御レジスタを示すアドレス“FF00100C”に‘1’を書込むライトアクセスが発生したことを契機として、電力供給開始信号とDMA開始信号をアサートする。ブリッジDMAC306は、DMA開始信号がアサートされたので、電力供給応答信号又はクロック供給応答信号がアサートされるまで待機する。そして、ブリッジDMAC306は、電力供給応答信号がアサートされたことを契機として、DMA転送を行い、メモリ12に格納されているデータをIP107に転送する。
図52には、メモリ12に格納される被DMAデータが例示される。被DMAデータは、ライトデータとライトアドレスが1組となっている。ブリッジDMAC306は、IP107にライトアクセスを実行するとき、メモリ12から読出されたアドレスをIP107へのアドレスとし、メモリ12から読出されたライトデータをIP107へのライトデータとする。
また、IP107への電力供給の停止については、供給制御部305Eは、IP107の表示状態レジスタを示すアドレス“FF001010”をリードし、その結果、表示処理を実行していないことを示す‘0’であることを検出し、電力供給停止信号をアサートする。従って、供給制御部305Eは、IP107が表示処理を行っていないときに電力供給を停止できる。
さらに、IP107へのクロック供給の開始又は停止については、供給制御部305Eは、各レジスタの値を、上記した図51に示す設定値に代えて、図53に示す設定値、即ち、クロック供給の開始又は停止に関するレジスタの設定値とすればよい。この場合には、供給制御部305Eは、IP107の表示状態レジスタを示すアドレス“FF001010”に‘1’を書込むライトアクセスが発生したことを契機として、クロック供給開始信号とDMA開始信号をアサートする。ブリッジDMAC306は、DMA開始信号がアサートされたので、電力供給応答信号又はクロック供給応答信号がアサートされるまで待機する。そして、ブリッジDMAC306は、クロック供給応答信号がアサートされたことを契機として、DMA転送を行い、メモリ12に格納されているデータをIP107に転送する。
以上のように、電力供給及びクロック供給の制御は、開始と停止のいずれも供給制御部305Eの各レジスタではなく、IP107のレジスタへのアクセスを契機として行われる。また、供給制御部305Eの各レジスタへの設定は、半導体集積回路の初期化を完了した後であって、IP107の表示処理を実行する前であれば、適宜行ってもよく、さらに、IP107の表示処理を何回起動又は停止したとしても1回行うだけでよいから、ソフトウェア開発コストの増加を抑えることができる。そして、ブリッジDMAC306は、IP107のレジスタ設定を代行するので、CPU101はレジスタライトを1回行うだけでよく、消費電力を低減できる。
《実施形態7》
図54には、本発明の実施形態7に係る半導体集積回路が例示される。半導体集積回路11Bは、一組のモード信号によって複数のIPへの電力供給及びクロック供給を制御するものであって、半導体集積回路11Aと比べると、1つのCPU101と、複数のIP107A,107Bとを配置した点が異なる。
IP107A,107Bは、論理回路であって、電力供給及びクロック供給が開始されることにより動作する。IP107A,107Bは、電力・クロック制御ブリッジ104Cからアクセス要求信号を受信して、このアクセス要求信号に応じた処理を実行し、電力・クロック制御ブリッジ104Cを介してCPU101にアクセス要求信号に応じたアクセス応答信号を送信する。また、IP107A,107Bは、自らがアクセス要求信号元となり、電力・クロック制御ブリッジ104Cにアクセス要求信号を送信することによって、メモリ12等にアクセスする。さらに、IP107A,107Bは、IP107A,107B内部の状態を信号線によって電力・クロック制御ブリッジ104Cに通知する機能を有する。
次に、半導体集積回路11Bの初期化時におけるIP107A,107Bの電力供給状態及びクロック供給状態の決定について説明する。半導体集積回路11Bの使用開始時には、リセット信号生成部14によってリセット信号が一定期間アサートされる。リセットによる初期化時にIPA107A及びIPB107Bへの電力供給やクロック供給を開始されるか否かは、モード信号の値に基づいて、電力・クロック制御ブリッジ104Cが決定する。電力・クロック制御ブリッジ104Cは、リセット信号がアサートされているときには、モード信号の値に基づいて電力供給要求信号A,B、クロック供給要求信号A,Bの出力値を決定する。
図55には、リセット信号がアサート時でのモード信号、電力供給要求信号A,B及びクロック供給要求信号A,Bの関係が例示される。リセット信号アサート時にモード信号が“00”であれば、電力・クロック制御ブリッジ104Cは、電力供給要求信号A,B、クロック供給要求信号A,Bを全てディアサート状態とする。これにより、IP107A,107Bへの電力供給及びクロック供給が停止される。モード信号が“01”であれば、電力・クロック制御ブリッジ104Cは、電力供給要求信号A,Bをアサート状態、クロック供給要求信号A,Bをディアサート状態とする。これにより、IP107A,107Bへの電力供給が開始され、クロック供給が停止される。モード信号が“10”であれば、電力・クロック制御ブリッジ104Cは、電力供給要求信号A,Bをディアサート状態、クロック供給信号A,Bをアサート状態とする。これにより、IP107A,107Bへの電力供給が停止され、クロック供給が開始される。モード信号が“11”であれば、電力・クロック制御ブリッジ104Cは、電力供給要求信号A,B及びクロック供給信号A,Bを全てアサート状態とする。これにより、IPA107A,107Bへの電力供給及びクロック供給が開始される。一方、リセット信号がディアサート状態であるときには、電力・クロック制御ブリッジ104Cは、モード信号を無視して、IP107A,107Bが出力する状態信号に基づいて、電力供給要求信号A,B、クロック供給要求信号A,Bの値を決定する(図20〜図23参照)。
従って、実施形態7に係る半導体集積回路11Bでは、2ビットのモード信号を設定すると共に、図示を省略する一組のモード信号入力端子を設けることによって、複数のIP107A,107Bの初期化時における電力供給状態及びクロック供給状態を決定できるから、低コスト化を図ることができる。
以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、実施形態6に係る半導体集積回路では、IP107へのデータ転送を電力・クロック制御ブリッジ104に含まれるブリッジDMAC306で行うとしたが、これに限らず、DMAC108やCPU101で行ってもよい。DMAC108でデータ転送を行う場合には、DMA開始信号をDMAC108に供給すればよい。また、CPU101でデータ転送を行う場合には、DMA開始信号を割込みコントローラ109に接続し、割込みコントローラ109から割込み要求の通知を受信したCPU101がIP107へのデータ転送を行うプログラムを実行できるように半導体集積回路11を構成すればよい。
本発明の実施形態1に係る半導体集積回路11のブロック図である。 モード信号、電力供給要求信号及びクロック供給要求信号の関係を示す図である。 電力・クロック制御ブリッジ104の構成を示すブロック図である。 バスIF301が中継するアクセスの流れを示す図である。 供給制御部305に含まれるレジスタを例示する図である。 供給制御部305の電力供給開始信号生成回路を例示する回路図である。 供給制御部305の電力供給停止信号生成回路を例示する回路図である。 供給制御部305のクロック供給開始信号生成回路を例示する回路図である。 供給制御部305のクロック供給停止信号生成回路を例示する回路図である。 電力供給要求信号生成部302の状態を示す状態遷移図である。 電力供給要求信号生成部302の状態と電力供給要求信号の関係を示す図である。 クロック供給要求信号生成部303の状態を示す状態遷移図である。 クロック供給要求信号生成部303の状態とクロック供給要求信号の関係を示す図である。 代理応答生成部304の代理応答生成規則を示す図である。 IP107の制御レジスタを例示する図である。 IP107に対するレジスタアクセス手順を示すフローチャートである。 クロック供給した状態で電力供給の開始及び停止を行う場合での供給制御部305のレジスタ設定を例示する図である。 電力供給した状態でクロック供給の開始及び停止を行う場合での供給制御部305のレジスタ設定を例示する図である。 電力供給及びクロック供給の開始及び停止を行う場合での供給制御部305のレジスタ設定を例示する図である。 IP107が出力する状態信号に基づいて電力供給及びクロック供給を制御する場合での供給制御部305に含まれるレジスタを例示する図である。 状態信号に基づいて電力供給の開始及び停止を行う場合での供給制御部305のレジスタ設定を例示する図である。 状態信号に基づいてクロック供給の開始及び停止を行う場合での供給制御部305のレジスタ設定を例示する図である。 状態信号に基づいて電力供給及びクロック供給の停止を行う場合での供給制御部305のレジスタ設定を例示する図である。 本発明の実施形態2に係る供給制御部305Aの電力供給開始信号生成回路を例示する回路図である。 供給制御部305Aのクロック供給開始信号生成回路を例示する回路図である。 代理応答生成部304Aの代理応答生成規則を示す図である。 本発明の実施形態3に係る半導体集積回路11Aのブロック図である。 供給制御部305Bの電力供給開始信号生成回路を例示する回路図である。 供給制御部305Bの電力供給停止信号生成回路を例示する回路図である。 供給制御部305Bのクロック供給開始信号生成回路を例示する回路図である。 供給制御部305Bのクロック供給停止信号生成回路を例示する回路図である。 IP107への電力供給が停止され、クロック供給が開始された状態において、IP107への電力供給を制御するときの供給制御部305Bのレジスタ設定を例示する図である。 本発明の実施形態4に係る供給制御部305Cに含まれるレジスタを例示する図である。 供給制御部305Cの電力供給開始信号生成回路を例示する回路図である。 供給制御部305Cの電力供給停止信号生成回路を例示する回路図である。 供給制御部305Cのクロック供給開始信号生成回路を例示する回路図である。 供給制御部305Cのクロック供給停止信号生成回路を例示する回路図である。 電力供給を行う場合での供給制御部305Cのレジスタ設定を例示する図である。 クロック供給を行う場合での供給制御部305Cのレジスタ設定を例示する図である。 電力供給及びクロック供給を行う場合での供給制御部305Cのレジスタ設定を例示する図である。 本発明の実施形態5に係る供給制御部305Dに含まれるレジスタを例示する図である。 供給制御部305Dの電力供給開始信号生成回路を例示する回路図である。 供給制御部305Dの電力供給停止信号生成回路を例示する回路図である。 供給制御部305Dのクロック供給開始信号生成回路を例示する回路図である。 供給制御部305Dのクロック供給停止信号生成回路を例示する回路図である。 電力供給を行う場合での供給制御部305Dのレジスタ設定を例示する図である。 クロック供給を行う場合での供給制御部305Dのレジスタ設定を例示する図である。 電力供給及びクロック供給を行う場合での供給制御部305Dのレジスタ設定を例示する図である。 本発明の実施形態6に係る電力・クロック制御ブリッジ104Bの構成を示すブロック図である。 バスIF301が中継するアクセスの流れを示す図である。 供給制御部305Eのレジスタ設定を例示する図である。 メモリ12に格納される被DMAデータを例示する図である。 供給制御部305Eのレジスタ設定を例示する図である。 本発明の実施形態7に係る半導体集積回路11Bのブロック図である。 モード信号、電力供給要求信号A,B及びクロック供給要求信号A,Bの関係を示す図である。
符号の説明
11,11A,11B 半導体集積回路
12 メモリ
13 モード信号生成部
14 リセット信号生成部
15 電源
16 クロック信号生成部
101,101A,101B CPU
102 メモリ制御部
103 ルータ
104,104A〜C 電力・クロック制御ブリッジ
105 電力供給部
106 クロック供給部
107,107A,107B IP
108 DMAC
109 割込みコントローラ
301 バスインタフェース
302 電力供給要求信号生成部
303 クロック供給要求信号生成部
304,304A 代理応答生成部
305,305A〜E 供給制御部
306 ブリッジDMAC

Claims (9)

  1. 第1の機能モジュールと、第2の機能モジュールと、前記第1の機能モジュールと前記第2の機能モジュール間のアクセスを中継すると共に、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御し、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方を停止しているとき、前記第2の機能モジュールによる前記第1の機能モジュールに対するアクセスを可能にするための制御を行う制御回路と、を備え、
    前記制御回路は、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方が停止されているときに、前記第2の機能モジュールから前記第1の機能モジュールへ送信されたアクセス要求信号がライトアクセスである場合には、前記第1の機能モジュールに代わって、前記第2の機能モジュールにアクセス応答信号を送信し、前記アクセス要求信号がリードアクセスである場合には、前記アクセス応答信号の送信を停止する代理応答生成部を含み、
    前記代理応答生成部は、前記第1の機能モジュールがアクセス応答信号送信可能状態に遷移した後に、前記第2の機能モジュールから前記第1の機能モジュールへのアクセス要求を再送信させる半導体集積回路。
  2. 前記制御回路は、レジスタを備え、前記第2の機能モジュールから前記第1の機能モジュールへ送信されるアクセス要求信号に含まれるアドレス、アクセス属性、ライトデータ及びリードデータのうち少なくとも一つと、前記レジスタに保持されている値とを比較した結果に基づいて、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を決定する請求項1記載の半導体集積回路。
  3. 前記第2の機能モジュールは、前記第1の機能モジュールへ送信する前記アクセス要求信号に自身を識別させるためのマスタIDを付加し、
    前記制御回路は、レジスタを備え、前記マスタIDと前記レジスタに保持されている値とを比較した結果に基づいて、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を決定する請求項1記載の半導体集積回路。
  4. 前記第2の機能モジュールは、複数のプロセスを実行するプロセッサであって、前記第1の機能モジュールへ送信する前記アクセス要求信号に前記プロセスを識別させるためのプロセスIDを付加し、
    前記制御回路は、レジスタを備え、前記プロセスIDと前記レジスタに保持されている値とを比較した結果に基づいて、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を決定する請求項1記載の半導体集積回路。
  5. 前記第1の機能モジュールは、前記第1の機能モジュールの処理状態を前記制御回路に通知する機能を有し、
    前記制御回路は、レジスタを備え、前記第1の機能モジュールの処理状態と前記レジスタに保持されている値とを比較した結果に基づいて、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方を開始又は停止する請求項1記載の半導体集積回路。
  6. 前記制御回路は、初期化を指示するリセット信号と、初期化時での前記第1機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を指定するモード信号とを取込み、前記リセット信号がアサートされているときの前記モード信号の値に基づいて、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御する請求項1乃至5の何れか1項記載の半導体集積回路。
  7. 前記制御回路は、複数の前記第2の機能モジュールが前記第1の機能モジュールを使用しているか否かを示す値、又は、前記第2の機能モジュールによって実行される複数のプロセスが前記第1の機能モジュールを使用しているか否かを示す値を保持するレジスタを備え、
    前記レジスタの保持する値が、複数の前記第2の機能モジュール又は複数の前記プロセスにおいて前記第1の機能モジュールが使用されていないことを示す場合には、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方を停止し、
    前記レジスタの保持する値が、少なくとも一つの前記第2の機能モジュール又は前記プロセスにおいて前記第1の機能モジュールが使用されていることを示す場合には、前記第1の機能モジュールへの電力供給とクロック供給の少なくとも一方を開始する請求項1記載の半導体集積回路。
  8. 複数の機能モジュールと、マスタモジュールと、前記複数の機能モジュールと前記マスタモジュール間のアクセスを中継すると共に、前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御し、前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方を停止しているとき、前記マスタモジュールによる前記複数の機能モジュールに対するアクセスを可能にするための制御を行う制御回路と、を備え、
    前記制御回路は、前記機能モジュールへの電力供給とクロック供給の少なくとも一方が停止されているときに、前記マスタモジュールから前記機能モジュールへ送信されたアクセス要求信号がライトアクセスである場合には、前記機能モジュールに代わって、前記マスタモジュールにアクセス応答信号を送信し、前記アクセス要求信号がリードアクセスである場合には、前記アクセス応答信号の送信を停止する代理応答生成部を含み、
    前記代理応答生成部は、前記機能モジュールがアクセス応答信号送信可能状態に遷移した後に、前記マスタモジュールから前記機能モジュールへのアクセス要求を再送信させる半導体集積回路。
  9. 前記制御回路は、初期化を指示するリセット信号と、初期化時での前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方の開始又は停止を指定する一組のモード信号とを取込み、前記リセット信号がアサートされているときの前記モード信号の値に基づいて、前記複数の機能モジュールへの電力供給とクロック供給の少なくとも一方を制御する請求項記載の半導体集積回路。
JP2005298890A 2005-10-13 2005-10-13 半導体集積回路 Expired - Fee Related JP4711410B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005298890A JP4711410B2 (ja) 2005-10-13 2005-10-13 半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005298890A JP4711410B2 (ja) 2005-10-13 2005-10-13 半導体集積回路

Publications (2)

Publication Number Publication Date
JP2007108993A JP2007108993A (ja) 2007-04-26
JP4711410B2 true JP4711410B2 (ja) 2011-06-29

Family

ID=38034817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005298890A Expired - Fee Related JP4711410B2 (ja) 2005-10-13 2005-10-13 半導体集積回路

Country Status (1)

Country Link
JP (1) JP4711410B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007044803A1 (de) 2007-09-20 2009-04-09 Robert Bosch Gmbh Schaltungsanordnung zur Signalaufnahme und -erzeugung sowie Verfahren zum Betreiben dieser Schaltungsanordnung
JP5146284B2 (ja) * 2008-11-27 2013-02-20 株式会社リコー データ転送装置及びデータ転送方法
US8316255B2 (en) * 2009-09-09 2012-11-20 Ati Technologies Ulc Method and apparatus for responding to signals from a disabling device while in a disabled state
JP5610566B2 (ja) * 2010-02-22 2014-10-22 ルネサスエレクトロニクス株式会社 半導体装置及びデータ処理システム
WO2013038549A1 (ja) * 2011-09-15 2013-03-21 富士通株式会社 電源制御方法およびシステム
CN106681472B (zh) * 2016-10-20 2019-08-23 南方电网科学研究院有限责任公司 异构多核处理器功耗控制装置及其功耗控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004199115A (ja) * 2002-12-16 2004-07-15 Renesas Technology Corp 半導体集積回路

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3034362B2 (ja) * 1990-11-22 2000-04-17 株式会社日立製作所 周辺制御装置およびscsiバス制御装置
JPH09237131A (ja) * 1996-03-04 1997-09-09 Fujitsu Ltd 半導体集積回路装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004199115A (ja) * 2002-12-16 2004-07-15 Renesas Technology Corp 半導体集積回路

Also Published As

Publication number Publication date
JP2007108993A (ja) 2007-04-26

Similar Documents

Publication Publication Date Title
US7716536B2 (en) Techniques for entering a low-power link state
JP4711410B2 (ja) 半導体集積回路
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
US8339869B2 (en) Semiconductor device and data processor
JP2010140361A (ja) コンピュータシステム及び異常検出回路
TW202026895A (zh) 聚集帶內中斷
US9319313B2 (en) System and method of forwarding IPMI message packets based on logical unit number (LUN)
US20130019032A1 (en) Apparatus and method for generating interrupt signal that supports multi-processor
JP2010277160A (ja) バス制御システムおよび半導体集積回路
CN114490194B (zh) 掉电处理方法、功能节点、处理系统、设备和存储介质
JP4421390B2 (ja) 半導体集積回路
JP2010099907A (ja) 表示制御装置、表示制御システム、プログラムおよび画像印刷装置
US8171448B2 (en) Structure for a livelock resolution circuit
JP5981004B2 (ja) 半導体装置
JP2014060686A (ja) 半導体装置
JP2006268390A (ja) 直列インタフェース回路
JP6252799B2 (ja) 演算処理装置およびその制御方法
JP4257358B2 (ja) バス制御方法および装置
JP2003108513A (ja) ハードウェア・チェーン・プル
JP5805546B2 (ja) 半導体装置
TWI765282B (zh) 觸控顯示晶片及資訊處理裝置
TWI682273B (zh) 儲存裝置的電源控制方法與使用此方法的電子系統
CN113923173B (zh) 网络交换设备数据面快速启动恢复方法
US20230421432A1 (en) Communication apparatus and communication system
JP2006155488A (ja) データ処理装置およびデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080912

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101013

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101210

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110318

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees