(57)【要約】【課題】低消費電力化と処理性能向上を両立することができる半導体集積回路を提供する。【解決手段】実施態様の半導体集積回路では、演算処理回路１０は、演算処理を行う第１プロセッサコアと、データ及びプログラムを記憶するキャッシュメモリを含む共通部とを備え、第１プロセッサコア及び共通部の少なくともいずれか一方が第１回路と第２回路に分割されている。第１クロックゲーティング回路は、第１回路へクロック信号を供給あるいは停止する。第１パワースイッチは、第１回路へ電源電圧を供給あるいは遮断する。第２クロックゲーティング回路は、第２回路へ前記クロック信号を供給あるいは停止する。第２パワースイッチは、第２回路へ前記電源電圧を供給あるいは遮断する。省電力コントローラ２０は、第１及び第２クロックゲーティング回路、及び第１及び第２パワースイッチを制御する。【選択図】図１
2018165987.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を行う第１プロセッサコアと、データ及びプログラムを記憶するキャッシュメモリを含む共通部とを備え、前記第１プロセッサコア及び前記共通部の少なくともいずれか一方が第１回路と第２回路に分割された演算処理回路と、
前記第１回路へクロック信号を供給あるいは停止する第１クロックゲーティング回路と、
前記第１回路へ電源電圧を供給あるいは遮断する第１パワースイッチと、
前記第２回路へ前記クロック信号を供給あるいは停止する第２クロックゲーティング回路と、
前記第２回路へ前記電源電圧を供給あるいは遮断する第２パワースイッチと、
前記第１及び第２クロックゲーティング回路、及び前記第１及び第２パワースイッチを制御するコントローラと、
を具備する半導体集積回路。
【請求項２】
前記共通部へ前記クロック信号を供給あるいは停止する第３クロックゲーティング回路と、前記共通部へ前記電源電圧を供給あるいは遮断する第３パワースイッチと、前記第１プロセッサコアへ前記クロック信号を供給あるいは停止する第４クロックゲーティング回路と、前記第１プロセッサコアへ前記電源電圧を供給あるいは遮断する第４パワースイッチとのうち、前記第３クロックゲーティング回路及び第３パワースイッチ、あるいは前記第４クロックゲーティング回路及び第４パワースイッチの少なくともいずれか一方をさらに備え、
前記コントローラは、前記第３クロックゲーティング回路及び第３パワースイッチ、あるいは前記第４クロックゲーティング回路及び第４パワースイッチの前記少なくともいずれか一方を制御する請求項１に記載の半導体集積回路。
【請求項３】
前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つは、前記電源電圧の供給が遮断されるときに直前の処理データを保持するデータ保持部を有する請求項１または２に記載の半導体集積回路。
【請求項４】
前記第１回路は第１の機能単位を有し、第２回路は前記第１の機能単位と異なる第２の機能単位を有する請求項１乃至３のいずれかに記載の半導体集積回路。
【請求項５】
前記第１プロセッサコアが前記第１回路及び第２回路を含む場合、前記第１の機能単位及び第２の機能単位の少なくともいずれか一方は、演算処理部、命令処理部、データ処理部、及びメモリシステムの少なくともいずれか１つを含む請求項４に記載の半導体集積回路。
【請求項６】
前記共通部が前記第１回路及び第２回路を含む場合、前記第１の機能単位及び第２の機能単位の少なくともいずれか一方は、キャッシュメモリ及び前記キャッシュメモリを制御するメモリ制御部の少なくともいずれか１つを含む請求項４に記載の半導体集積回路。
【請求項７】
前記第１回路と第２回路は、機能単位と関係がない所定の面積または形状のいずれかによって分割されている請求項１乃至３のいずれかに記載の半導体集積回路。
【請求項８】
前記コントローラは、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つを省電力状態に制御する複数の省電力モードを有し、
前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つを稼働状態に起動する要因となるウェイクアップ信号の入力頻度に応じて、前記コントローラは前記少なくともいずれか１つに対する省電力モードを、前記複数の省電力モードから選択する請求項１乃至７のいずれかに記載の半導体集積回路。
【請求項９】
前記コントローラは、前記ウェイクアップ信号と、前記ウェイクアップ信号の入力時刻とを記憶するバッファを有し、
最新に入力された前記ウェイクアップ信号の入力時刻と、ｎ（ｎは１以上の整数）個前に入力された前記ウェイクアップ信号の入力時刻との時刻差を算出し、
前記時刻差と切り替え閾値とを比較し、その比較結果に応じて、前記コントローラは前記少なくともいずれか１つに対する省電力モードを選択する請求項８に記載の半導体集積回路。
【請求項１０】
前記コントローラが制御する前記省電力状態は、第１省電力状態と、前記第１省電力状態より消費電力の削減量が大きい第２省電力状態とを有し、
前記時刻差が前記切り替え閾値より小さい場合、前記コントローラは、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つを前記第１省電力状態に遷移させ、
前記時刻差が前記切り替え閾値以上である場合、前記コントローラは、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つを前記第２省電力状態に遷移させる請求項９に記載の半導体集積回路。
【請求項１１】
前記第１省電力状態は、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つに前記クロック信号の供給を停止することを含み、
前記第２省電力状態は、前記少なくともいずれか１つに前記電源電圧の供給を遮断することを含む請求項１０に記載の半導体集積回路。
【請求項１２】
前記第１省電力状態は、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つの領域のうち、第１の割合の領域に対して前記クロック信号の供給を停止し、前記第２省電力状態は、前記少なくともいずれか１つの領域のうち、前記第１の割合より大きな第２の割合の領域に対して前記クロック信号の供給を停止することを含む請求項１０に記載の半導体集積回路。
【請求項１３】
前記第１省電力状態は、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つの領域のうち、第１の割合の領域に対して前記電源電圧の供給を遮断し、前記第２省電力状態は、前記少なくともいずれか１つの領域のうち、前記第１の割合より大きな第２の割合の領域に対して前記電源電圧の供給を遮断することを含む請求項１０に記載の半導体集積回路。
【請求項１４】
前記演算処理回路は、演算処理を行う第２プロセッサコアをさらに備え、前記第２プロセッサコアは第３回路及び第４回路に分割され、前記第１及び第２プロセッサコアは前記共通部が含む前記キャッシュメモリを共有し、
前記第３回路へ前記クロック信号を供給あるいは停止する第５クロックゲーティング回路と、
前記第３回路へ前記電源電圧を供給あるいは遮断する第５パワースイッチと、
前記第４回路へ前記クロック信号を供給あるいは停止する第６クロックゲーティング回路と、
前記第４回路へ前記電源電圧を供給あるいは遮断する第６パワースイッチとをさらに備え、
前記コントローラは、前記第５及び第６クロックゲーティング回路、及び前記第５及び第６パワースイッチを制御する請求項１乃至１３のいずれかに記載の半導体集積回路。
【請求項１５】
前記データ保持部へ電源電圧を供給あるいは遮断する第７パワースイッチをさらに備える請求項３に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、低消費電力制御が可能な半導体集積回路に関するものである。
【背景技術】
【０００２】
半導体集積回路（ＬＳＩ）の低消費電力（省電力）制御技術の代表的な手法として、制御対象の回路に対して稼働状態と待機状態を定義し、回路が処理を行っていない待機状態に関して消費電力を削減するものがある。
【０００３】
待機状態における消費電力削減の具体的な実現方法は、クロックゲーティングによるダイナミック電流の削減や、電源遮断によるリーク電流の削減が挙げられる。クロックゲーティングは、通常動作への復帰が高速なため処理性能への影響は少ない反面、電源遮断に比べて消費電力を削減する効果は劣る。電源遮断はその逆で、消費電力を削減する効果は大きいがその反面、通常動作への復帰に時間がかかるため、ソフトウエア制御や処理性能への影響が大きい。
【０００４】
低消費電力化と処理性能向上の両立を目指すためには、アプリケーションごとに制御や処理性能に関するチューニングを行うことが必要になり、それが開発コストの増大へとつながる。例えば、アプリケーション内の待機時間の長さに応じて、省電力制御を入れるか、入れないかを決定したり、省電力の手段をクロックゲーティングのみとするのか、又はクロックゲーティングと電源遮断の両方を実施するのかなどを逐一精査してソフトウエア実装を行う等の作業が必要になる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５１０９９３５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
低消費電力化と処理性能向上を両立することができる半導体集積回路を提供する。
【課題を解決するための手段】
【０００７】
一実施態様の半導体集積回路は、演算処理回路、第１及び第２クロックゲーティング回路、第１及び第２パワースイッチ、及びコントローラを備える。演算処理回路は、演算処理を行う第１プロセッサコアと、データ及びプログラムを記憶するキャッシュメモリを含む共通部とを備え、前記第１プロセッサコア及び前記共通部の少なくともいずれか一方が第１回路と第２回路に分割されている。第１クロックゲーティング回路は、前記第１回路へクロック信号を供給あるいは停止する。第１パワースイッチは、前記第１回路へ電源電圧を供給あるいは遮断する。第２クロックゲーティング回路は、前記第２回路へ前記クロック信号を供給あるいは停止する。第２パワースイッチは、前記第２回路へ前記電源電圧を供給あるいは遮断する。コントローラは、前記第１及び第２クロックゲーティング回路、及び前記第１及び第２パワースイッチを制御する。
【図面の簡単な説明】
【０００８】
【図１】実施形態の半導体集積回路の構成を示すブロック図である。
【図２】実施形態におけるＣＰＵの詳細な構成を示す図である。
【図３】実施形態におけるＣＰＵのコアの構成を示す図である。
【図４】実施形態におけるＣＰＵの共通部の構成を示す図である。
【図５】実施形態におけるＣＰＵの省電力制御単位を示す図である。
【図６】実施形態におけるサブコアの構成例を示す図である。
【図７】実施形態におけるサブ共通部の構成例を示す図である。
【図８】実施形態におけるサブコアの構成例を示す図である。
【図９】実施形態におけるサブ共通部の構成例を示す図である。
【図１０】実施形態におけるサブコアが含む機能ブロックを示す図である。
【図１１】実施形態における省電力コントローラの構成を示すブロック図である。
【図１２】実施形態における省電力制御投入器の構成を示すブロック図である。
【図１３】実施形態における省電力制御シーケンサの構成を示すブロック図である。
【図１４】実施形態における省電力モード切替器の構成を示すブロック図である。
【図１５】実施形態におけるウェイクアップ要因ヒストリバッファの構成を示すブロック図である。
【図１６】実施形態におけるモードレジスタの構成を示すブロック図である。
【図１７】実施形態における省電力モード切替判定器の構成を示すブロック図である。
【図１８】実施形態における省電力制御パターン１の制御方法を示す図である。
【図１９】実施形態における省電力制御パターン２の制御方法を示す図である。
【図２０】実施形態における省電力制御パターン３の制御方法を示す図である。
【図２１】実施形態における省電力制御パターン４の制御方法を示す図である。
【図２２】実施形態の半導体集積回路の動作を示すフロー図である。
【図２３】実施形態における省電力コントローラの動作を示すフロー図である。
【図２４】実施形態における省電力モード切替器の動作を示すフロー図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１０】
［実施形態]  
本実施形態の低消費電力制御が可能な半導体集積回路について説明する。
【００１１】
１．  半導体集積回路の構成  
図１は、実施形態の半導体集積回路の構成を示すブロック図である。半導体集積回路１は、ＣＰＵ（central processing unit）１０、省電力コントローラ２０、ＲＡＭ（random access memory）３０、周辺インターフェース（周辺ＩＦ）４０、及び割込みコントローラ５０を備える。バス６０は、ＣＰＵ１０、省電力コントローラ２０、ＲＡＭ３０、周辺インターフェース（周辺ＩＦ）４０、及び割込みコントローラ５０を接続している。省電力制御の対象はＣＰＵ１０であり、省電力コントローラ２０はＣＰＵ１０内の制御対象領域に対して省電力制御を行う。ここでは、ＣＰＵ１０を例に挙げ説明するが、３次元グラフィックスプロセッサやビデオグラフィックスプロセッサ等にも適用できる。
【００１２】
ＣＰＵ１０は、データに演算操作など何らかの処理を施す機能をもった装置であり、複数の回路を備える。ＣＰＵ１０の詳細な構成は後述する。
【００１３】
省電力コントローラ２０は、ＣＰＵ１０内の制御対象領域（電源ドメイン）を省電力状態に設定する省電力制御を行う。省電力コントローラ２０は、省電力制御を行うために、クロック制御信号ＣＣ１，ＣＣ２、制御信号ＰＣ１，ＰＣ２，ＲＣ１，ＲＣ２，ＲＣ３をＣＰＵ１０に出力する。ＲＡＭ３０は、ＣＰＵ１０が実行するプログラムやＣＰＵ１０内の制御対象領域を制御するためのファームウエア等を記憶する。さらに、ＲＡＭ３０はＣＰＵ１０の作業領域として使用される。
【００１４】
周辺インターフェース４０は、外部から入力される各種のイベントに応じて、割り込み指令を割込みコントローラ５０へ出力する。割り込みコントローラ５０は割込み指令を省電力コントローラ２０へウェイクアップ要因信号として出力する。ＣＰＵ１０もウェイクアップ要因信号またはスリープ要因信号を省電力コントローラ２０へ出力する。ウェイクアップ要因信号は、ＣＰＵ１０内の制御対象領域が動作を停止している時に動作を再開する要因となる信号である。スリープ要因信号ＳＰは、ＣＰＵ１０内の制御対象領域が動作を停止し待機状態に入ることが可能なことを示す信号である。
【００１５】
以下に、本実施形態におけるＣＰＵ１０の構成を詳細に説明する。
【００１６】
図２は、ＣＰＵ１０の詳細な構成を示す図である。ＣＰＵ１０は、プロセッサコアＰ０、プロセッサコアＰ１、及び共通部ＣＯを備える。プロセッサコア（以下、コアと記す）Ｐ０，Ｐ１の各々は、独立して演算処理回路として働く回路部分である。図３に、コアＰ０またはＰ１の構成を示す。コアＰ０は、機能単位として演算処理部Ｉ１、命令処理部Ｉ２、データ処理部Ｉ３、及びメモリシステムＩ４を有する。コアＰ１も同様に、機能単位として演算処理部Ｉ１、命令処理部Ｉ２、データ処理部Ｉ３、及びメモリシステムＩ４を有する。共通部ＣＯは、コアＰ０，Ｐ１によって共通に利用される部分である。図４に、共通部ＣＯの構成を示す。共通部ＣＯは、機能単位としてメモリシステム（キャッシュメモリを制御するメモリ制御部）Ｉ５，Ｉ６、キャッシュメモリＩ７、及びその他の回路部Ｉ８を有する。キャッシュメモリＩ７は、ＣＰＵ１０外部との間で送受信するデータ及びプログラム等を記憶する。メモリシステムＩ５，Ｉ６は、キャッシュメモリＩ７を制御するメモリ制御部等を含む。
【００１７】
次に、本実施形態のＣＰＵ１０における省電力制御可能な単位について説明する。
【００１８】
図５は、ＣＰＵ１０における省電力制御可能な単位を示す図である。例えば、コアＰ０を省電力制御単位毎に２つに分割し、サブコアＰ０−１，Ｐ０−２とする。また、コアＰ１を省電力制御単位毎に２つに分割し、サブコアＰ１−１，Ｐ１−２とする。
【００１９】
サブコアＰ０−１，Ｐ０−２，Ｐ１−１，Ｐ１−２の各々は、１つの機能単位あるいは複数の機能単位を有する。図６（ａ）、図６（ｂ）に、サブコアＰ０−１，Ｐ０−２の構成例を示す。例えば、図６（ａ）に示すように、サブコアＰ０−１は命令処理部Ｉ２、データ処理部Ｉ３、及びメモリシステムＩ４を含み、サブコアＰ０−２は演算処理部Ｉ１を含む。サブコアＰ１−１，Ｐ１−２も同様に図６（ａ）に示す構成を含む。
【００２０】
また、図６（ｂ）に示すように、サブコアＰ０−１はデータ処理部Ｉ３及びメモリシステムＩ４を含み、サブコアＰ０−２は演算処理部Ｉ１及び命令処理部Ｉ２を含む。サブコアＰ１−１，Ｐ１−２も同様に図６（ｂ）に示す構成を含む。
【００２１】
ここでは、コアＰ０，Ｐ１の各々を２つに分割する例を示したが、これに限るわけではなく、コアＰ０，Ｐ１の各々を３つ以上に分割してもよい。図６（ｃ）に、コアＰ０をサブコアＰ０−１，Ｐ０−２，Ｐ０−３に分割した例を示す。サブコアＰ０−１はデータ処理部Ｉ３及びメモリシステムＩ４を含み、サブコアＰ０−２は命令処理部Ｉ２を含み、サブコアＰ０−３は演算処理部Ｉ１を含む。サブコアＰ１−１，Ｐ１−２，Ｐ１−３も同様に図６（ｃ）に示す構成を含む。
【００２２】
また、図５に示したように、共通部ＣＯを省電力制御単位毎に２つに分割し、サブ共通部ＣＯ−１，ＣＯ−２とする。サブ共通部ＣＯ−１，ＣＯ−２の各々は、１つの機能単位あるいは複数の機能単位を有する。図７（ａ）、図７（ｂ）、図７（ｃ）に、サブ共通部ＣＯ−１，ＣＯ−２の構成例を示す。例えば、図７（ａ）に示すように、サブ共通部ＣＯ−１はメモリシステムＩ６、キャッシュメモリＩ７、及びその他の回路部Ｉ８を含み、サブ共通部ＣＯ−２はメモリシステムＩ５を含む。
【００２３】
また、図７（ｂ）に示すように、サブ共通部ＣＯ−１はキャッシュメモリＩ７を含み、サブ共通部ＣＯ−２はメモリシステムＩ５，Ｉ６、及びその他の回路部Ｉ８を含む。また、図７（ｃ）に示すように、サブ共通部ＣＯ−１はメモリシステムＩ６を含み、サブ共通部ＣＯ−２はメモリシステムＩ５、キャッシュメモリＩ７、及びその他の回路部Ｉ８を含む。ここでは、共通部ＣＯを２つに分割する例を示したが、これに限るわけではなく、３つ以上に分割してもよい。
【００２４】
また、コアＰ０，Ｐ１、共通部ＣＯの各々を機能単位に関係なく、所定の面積または形状、省電力処理時間、回路容量毎に分割し、省電力制御単位としてもよい。前記所定の面積とは、例えば半導体基板上のコアＰ０，Ｐ１、共通部ＣＯの各々が占める領域を一定面積毎に分割したものである。前記省電力処理時間とは、例えば半導体基板上のコアＰ０，Ｐ１、共通部ＣＯの各々が占める領域を、省電力制御に掛る時間が一定の領域毎に分割したものである。
【００２５】
また、コアＰ０，Ｐ１の各々を省電力制御単位としてもよい。また、共通部ＣＯを省電力制御単位としてもよい。
【００２６】
図８（ａ）、図８（ｂ）に、コアＰ０を所定の面積毎に分割した例を示す。例えば、図８（ａ）に示すように、コアＰ０が占める領域を斜めに分割し、一方をサブコアＰ０−１とし、他方をサブコアＰ０−２とする。また、図８（ｂ）に示すように、コアＰ０が占める領域を複数（ここでは３つ）に分割し、左側からサブコアＰ０−１，Ｐ０−２，Ｐ０−３としてもよい。
【００２７】
図９（ａ）、図９（ｂ）に、共通部ＣＯを所定の面積毎に分割した例を示す。例えば、図９（ａ）に示すように、共通部ＣＯが占める領域を斜めに分割し、一方をサブ共通部ＣＯ−１とし、他方をサブ共通部ＣＯ−２とする。また、図９（ｂ）に示すように、共通部ＣＯが占める領域を複数（ここでは３つ）に分割し、左側からサブ共通部ＣＯ−１，ＣＯ−２，ＣＯ−３としてもよい。
【００２８】
次に、サブコアＰ０−１，Ｐ０−２，Ｐ１−１，Ｐ１−２、サブ共通部ＣＯ−１，ＣＯ−２の各々が有する構成について説明する。サブコアＰ０−１，Ｐ０−２，Ｐ１−１，Ｐ１−２、サブ共通部ＣＯ−１，ＣＯ−２の各々は図１０に示すような構成を含む。以下に、サブコアＰ０−１を例に挙げその構成を示す。
【００２９】
図１０は、サブコアＰ０−１が含む機能ブロックを示す図である。
【００３０】
サブコアＰ０−１は、クロックゲーティング回路１１、リテンションＦＦ（flip-flop）１２，１３、組み合わせ回路１４，１５、及びリテンションＳＲＡＭ（static random access memory）１６を備える。さらに、サブコアＰ０−１の外部に、クロックゲーティング回路１７、パワースイッチ１８、パワースイッチ１８Ａ、及びアイソレーションセル１９を備える。
【００３１】
クロックゲーティング回路１７は、クロック制御信号ＣＣ１に応じて、サブコアＰ０−１に対してクロックＣＫを供給あるいは停止する。クロックゲーティング回路１１は、クロック制御信号ＣＣ２に応じて、リテンションＦＦ１２，１３、リテンションＳＲＡＭ１６に対してクロックＣＫを供給あるいは停止する。パワースイッチ１８には電源電圧ＶDDが供給されている。パワースイッチ１８は、制御信号ＰＣ１に応じて、サブコアＰ０−１に対して電源電圧ＶDDを供給あるいは遮断する。パワースイッチ１８Ａには電源電圧ＶDDAが供給されている。パワースイッチ１８Ａは、制御信号ＰＣ２に応じて、サブコアＰ０−１に対して電源電圧ＶDDAを供給あるいは遮断する。
【００３２】
リテンションＦＦ１２には、データ及び制御信号が入力される。リテンションＦＦ１２は、制御信号ＲＣ１に応じて、入力されたデータ及び制御信号を一時的に記憶する。組み合わせ回路１４，１５は、入力されたデータ等を処理する。リテンションＳＲＡＭ１６は、制御信号ＲＣ２に応じて、サブコアＰ０−１への電源電圧の供給を停止する際に、バッファなどに保持していたデータを記憶する。リテンションＦＦ１３は、組み合わせ回路１５等にて処理されたデータを一時的に記憶する。サブコアＰ０−１への電源電圧の供給を停止する際に、アイソレーションセル１９は、制御信号ＲＣ３に応じて停止前の値を保持する、すなわちサブコアＰ０−１の出力信号を０または１のどちらかの値に固定する。これにより、電源電圧の供給を停止した時も、サブコアＰ０−２またはサブ共通部ＣＯ−１，ＣＯ−２への出力信号の値が確定される。また、サブコアＰ０−１とサブコアＰ０−２との間には、アイソレーションセル１９が設けられている。サブコアＰ１−１とサブコアＰ１−２との間にはアイソレーションセル１９が設けられている。さらに、サブ共通部ＣＯ−１とサブ共通部ＣＯ−２との間には、アイソレーションセル１９が設けられている。
【００３３】
また、コアＰ０，Ｐ１、共通部ＣＯの各々を省電力制御単位とした場合は、コアＰ０，Ｐ１、共通部ＣＯの各々が図１０に示すような構成を含む。
【００３４】
以下に、本実施形態における省電力コントローラ２０の構成を詳細に説明する。
【００３５】
図１１は、実施形態の半導体集積回路１内の省電力コントローラ２０の構成を示すブロック図である。省電力コントローラ２０は、省電力制御投入器２１、省電力モード切替器２２、及び省電力制御シーケンサ２３を有する。
【００３６】
省電力制御投入器２１は、省電力モード切替器２２から出力された省電力モード信号ＬＭにより、省電力モード信号ＬＭに応じて所定の省電力モードに設定される。省電力制御投入器２１は、設定された省電力モードにおいて、割込みコントローラ５０及びＣＰＵ１０からウェイクアップ要因信号ＷＵまたはスリープ要因信号ＳＰを受け取り、これら信号に応じてＣＰＵ１０内の複数の制御対象領域に対して省電力制御の実行及び解除を指令する。省電力制御投入器２１は、省電力状態の種類及びそれへの移行タイミングを決定し、必要な制御要求信号ＬＤを省電力制御シーケンサ２３に出力する。
【００３７】
省電力制御シーケンサ２３は、制御要求信号ＬＤに応じて省電力制御の実行及び解除を行う。すなわち、省電力制御シーケンサ２３は、ＣＰＵ１０内の複数の制御対象領域に対してクロックゲーティングの実行あるいは解除、及び電源電圧の供給あるいは遮断等を制御する省電力制御信号ＬＣを出力する。省電力制御シーケンサ２３の構成については後で詳述する。
【００３８】
ＣＰＵ１０内の制御対象領域は、複数の電力状態を取ることが可能である。例えば、（１）稼働状態、（２）クロック供給が停止されたクロックゲーティング状態、（３）電源電圧の供給が遮断されたリテンション状態、（４）一切のリテンションを行わない電源完全オフ状態の４状態の電力状態の場合、省電力状態は（２）、（３）の２種類である。この（２）、（３）のどちらを使用するかを判断し、適した省電力モードの設定を指示する省電力モード信号ＬＭを出力するのが省電力モード切替器２２である。省電力モード切替器２２は、（３）リテンション状態を使用することを判断した場合、さらに、どの制御対象領域をリテンション状態にするかを判断する。省電力モード切替器２２の構成については後で詳述する。
【００３９】
以下に、本実施形態における省電力制御投入器２１の構成を詳細に説明する。
【００４０】
図１２は、実施形態における省電力コントローラ２０内の省電力制御投入器２１の構成を示すブロック図である。省電力制御投入器２１は、ステートマシン２１１及び省電力状態保持回路２１２を有する。
【００４１】
ステートマシン２１１は、省電力状態保持回路２１２との間で状態信号ＳＴを送受信する。状態信号ＳＴは、ＣＰＵ１０内の制御対象領域の現状の電力状態を示す信号である。ステートマシン２１１は、省電力状態保持回路２１２から出力された状態信号ＳＴに基づいて、ＣＰＵ１０内の制御対象領域の電力状態を認知する。さらに、ステートマシン２１１は、省電力モード切替器２２から出力された省電力モード信号ＬＭに基づいて最適な省電力モードを設定する。
【００４２】
ステートマシン２１１は、ウェイクアップ要因信号ＷＵあるいはスリープ要因信号ＳＰを受け取ると、設定された省電力モードに従って制御対象領域がどの電力状態に遷移すべきかを判断する。そして、その電力状態に遷移させるための制御要求信号ＬＤを省電力制御シーケンサ２３に出力する。
【００４３】
以下に、本実施形態における省電力制御シーケンサ２３の構成を詳細に説明する。
【００４４】
図１３は、実施形態における省電力コントローラ２０内の省電力制御シーケンサ２３の構成を示すブロック図である。省電力制御シーケンサ２３は、ステートマシン２３１、パワースイッチ制御部２３２、データ保持回路制御部２３３、クロック制御部２３４、及びアイソレーションセル制御部２３５を有する。
【００４５】
ステートマシン２３１は、制御要求信号ＬＤに基づいてパワースイッチ制御部２３２、データ保持回路制御部２３３、クロック制御部２３４、及びアイソレーションセル制御部２３５を制御する。
【００４６】
パワースイッチ制御部２３２は、ＣＰＵ１０内の複数の制御対象領域への電源電圧ＶDDの供給あるいは遮断を制御する制御信号ＰＣ１を、パワースイッチ１８に出力する。パワースイッチ１８は、組み合わせ回路１５、リテンションＦＦ１２，１３内部のデータ保持部以外の部分、あるいはリテンションＳＲＡＭ１６内部のデータ保持部以外の部分への電源電圧ＶDDの供給あるいは遮断を制御する。
【００４７】
パワースイッチ制御部２３２は、またＣＰＵ１０内の複数の制御対象領域への電源電圧ＶDDAの供給あるいは遮断を制御する制御信号ＰＣ２を、パワースイッチ１８Ａに出力する。パワースイッチ１８Ａは、パワースイッチ１８による電源電圧ＶDDの供給遮断時においても、電源をオンしておく回路への電源電圧ＶDDAの供給あるいは遮断を制御する。例えば、パワースイッチ１８Ａは、リテンションＦＦ１２，１３内部のデータ保持部、あるいはリテンションＳＲＡＭ１６内部のデータ保持部への電源電圧ＶDDAの供給あるいは遮断を制御する。このパワースイッチ１８Ａを備えることにより、リテンションＦＦ１２，１３及びリテンションＳＲＡＭ１６にデータを保持する必要がない場合に、電源電圧ＶDD及び電源電圧ＶDDAを全て遮断することにより、消費電力削減効果を高めることができる。なお、データ保持部には、電源電圧ＶDDの供給が遮断されるときに、直前の処理データが保持される。
【００４８】
データ保持回路制御部２３３は、ＣＰＵ１０内のデータ保持回路、例えばリテンションＦＦ１２，１３またはリテンションＳＲＡＭ１６のデータ保持を制御する制御信号ＲＣ１またはＲＣ２を、リテンションＦＦ１２，１３またはリテンションＳＲＡＭ１６に出力する。
【００４９】
クロック制御部２３４は、制御対象領域へのクロックＣＫの供給あるいは停止を制御する制御信号ＣＣ１，ＣＣ２を出力する。さらに、アイソレーションセル制御部２３５は、アイソレーションセル１９によるデータの出力あるいは保持を制御する制御信号ＲＣ３を出力する。
【００５０】
以下に、本実施形態における省電力モード切替器２２の構成を詳細に説明する。
【００５１】
図１４は、実施形態における省電力コントローラ２０内の省電力モード切替器２２の構成を示すブロック図である。
【００５２】
前述したように、省電力モード切替器２２は、（２）クロックゲーティング状態、または（３）リテンション状態のどちらを使用するかを判断し、適する省電力モードの設定を指示する。省電力モードの切り替えを行うのは、省電力モード切替判定器である。省電力モードの切り替えは、ハードウエア、ソフトウエアのいずれでも切り替え可能であるが、ここではハードウエアで切り替える例を示す。本実施形態では、ウェイクアップ要因信号ＷＵのヒストリと省電力モードの切り替え閾値とを比較し、その比較結果に応じて省電力モードを決定し切り替える。すなわち、省電力モード切替器２２は、複数の省電力モードを有し、前記比較結果に応じて複数の省電力モードから適した省電力モードを選択する。
【００５３】
省電力モード切替器２２は、ウェイクアップ要因ヒストリバッファ２２１、カウンタ回路２２２、モードレジスタ２２３、及び省電力モード切替判定器２２４を有する。ウェイクアップ要因ヒストリバッファ２２１は、バッファに限るわけではなく、ＦＩＦＯ（first-in first-out）であってもよい。
【００５４】
以下に、ウェイクアップ要因ヒストリバッファ２２１、カウンタ回路２２２、モードレジスタ２２３、及び省電力モード切替判定器２２４の詳細を説明する。
【００５５】
図１５は、実施形態における省電力モード切替器２２内のウェイクアップ要因ヒストリバッファ２２１の構成を示すブロック図である。
【００５６】
ウェイクアップ要因ヒストリバッファ２２１は、要因選択／ライト判定部２２１１、バッファ２２１２、及びデータ選択部２２１３を有する。
【００５７】
要因選択／ライト判定部は２２１１、複数種類のウェイクアップ要因信号ＷＵ１，ＷＵ２のうち、要因設定信号ＳＳＦにより指定された種類のウェイクアップ要因信号ＷＵを選択する。さらに、選択したウェイクアップ要因信号ＷＵと、そのウェイクアップ要因信号を受け取った時刻（タイムスタンプＳＴＳ）を、バッファ２２１２内の記憶領域ｎ（例えば、ｎは０〜７のいずれかの整数）に記憶する。すなわち、ウェイクアップ要因信号ＷＵと、その信号のタイムスタンプＳＴＳとを対応付けてバッファ２２１２に記憶する。
【００５８】
データ選択部２２１３は、選択設定信号ＳＤＳにて指定されたバッファ２２１２内の記憶領域ｎからイベント（ウェイクアップ要因信号とタイムスタンプ）を選択し出力する。例えば、データ選択部２２１３により記憶領域ｎからｎ番目に新しいイベントＥＶＮが選択され、省電力モード切替判定器２２４に出力される。また、記憶領域０から最新のイベントＥＶ０が選択され、省電力モード切替判定器２２４に出力される。
【００５９】
また、カウンタ回路２２２は、ウェイクアップ要因ヒストリバッファ２２１に時刻（タイムスタンプＳＴＳ）を出力する。
【００６０】
図１６は、実施形態における省電力モード切替器２２内のモードレジスタ２２３の構成を示すブロック図である。モードレジスタ２２３は、切替要因設定レジスタ２２３１、データ選択レジスタ２２３２、切替閾値レジスタ２２３３、及び状態遷移制御レジスタ２２３４を有する。
【００６１】
モードレジスタ２２３内のこれらレジスタは、ソフトウエアによって設定される。切替要因設定レジスタ２２３１は、どのイベントによって、すなわちどのような種類のウェイクアップ要因信号によって省電力モードの切り替えを判断するかを記憶する。さらに、そのイベント、すなわちウェイクアップ要因信号を示す要因設定信号ＳＳＦをウェイクアップ要因ヒストリバッファ２２１に出力する。
【００６２】
データ選択レジスタ２２３２は、バッファ２２１２内の何番目の記憶領域のデータで省電力モードの切り替えを判断するかを記憶する。さらに、その記憶領域を示す選択設定信号ＳＤＳをウェイクアップ要因ヒストリバッファ２２１に出力する。
【００６３】
切替閾値レジスタ２２３３は、省電力モードの切り替えを判断するための切り替え閾値を記憶する。例えば、切替要因設定レジスタ２２３１に記憶されたある種類のウェイクアップ要因信号ＷＵの入力頻度との比較を行うための閾値、具体的にはウェイクアップ要因信号ＷＵの入力間隔との比較を行うための期間を切り替え閾値として記憶し、その切り替え閾値を示す閾値信号ＳＳＴを省電力モード切替判定器２２４に出力する。
【００６４】
状態遷移制御レジスタ２２３４は、どの状態まで省電力状態の遷移を制限するかを記憶し、その状態遷移を制御する状態信号ＳＳＣを省電力モード切替判定器２２４に出力する。
【００６５】
図１７は、実施形態における省電力モード切替器２２内の省電力モード切替判定器２２４の構成を示すブロック図である。省電力モード切替判定器２２４は、タイム差計算部２２４１、比較部２２４２、制限部２２４３、及び省電力モード出力部２２４４を有する。
【００６６】
タイム差計算部２２４１は、バッファ２２１２及びデータ選択部２２１３から出力された最新のイベントＥＶ０とｎ番目に新しいイベントＥＶＮとの時刻差を計算する。比較部２２４２は、タイム差計算部２２４１により算出された時刻差と閾値信号ＳＳＴにて示された切り替え閾値とを比較し、その比較結果を省電力モード出力部２２４４に出力する。
【００６７】
省電力モード出力部２２４４は、前記比較結果と、制限部２２４３からの信号と状態遷移を制御する状態信号ＳＳＣとに基づいて、省電力モードを切り替えるか否かを判断し、省電力モードを設定するための省電力モード信号ＬＭを出力する。
【００６８】
詳述すると、省電力モード出力部２２４４は、タイム差計算部２２４１により算出された時刻差が、閾値信号ＳＳＴが示す切り替え閾値より小さいとき、選択されたウェイクアップ要因信号の入力頻度が高いと判断する。そして、高い入力頻度に適した省電力モードに切り替えるための省電力モード信号ＬＭを、省電力制御投入器２１に出力する。一方、時刻差が切り替え閾値より大きいとき、選択されたウェイクアップ要因信号の入力頻度が低いと判断する。そして、低い入力頻度に適した省電力モードに切り替えるための省電力モード信号ＬＭを、省電力制御投入器２１に出力する。
【００６９】
２．  半導体集積回路の動作  
ＣＰＵ１０に対して本実施形態による省電力制御を行う例として、４つのパターン（省電力制御パターン１〜４）を説明する。省電力制御とは、クロックゲーティング回路によるクロックゲーティングの実行、あるいはパワースイッチによる電源電圧の供給／遮断を制御することをいう。
【００７０】
図１８は、実施形態における省電力制御パターン１の制御方法を示す図である。この制御パターン１では、図２に示したコアＰ０，Ｐ１、共通部ＣＯの各々を省電力制御単位として設定する。すなわち、省電力コントローラ２０は、コアＰ０、コアＰ１、及び共通部ＣＯの各々を制御対象領域とし、これら各々に対して省電力制御を行う。
【００７１】
図１９は、実施形態における省電力制御パターン２の制御方法を示す図である。この制御パターン２は、コアＰ０，Ｐ１の省電力制御範囲を減らす例である。制御パターン２では、コアＰ０のサブコアＰ０−２は省電力制御単位として省電力制御を行い、サブコアＰ０−１は個別の省電力制御を行わず、サブコアＰ０−２とは別の省電力制御単位とする。同様に、コアＰ１のサブコアＰ１−２は省電力制御単位として省電力制御を行い、サブコアＰ１−１は個別の省電力制御を行わず、サブコアＰ１−２とは別の省電力制御単位とする。この例では、サブ共通部ＣＯ−１，ＣＯ−２、サブコアＰ０−１、サブコアＰ１−１は同一の省電力制御単位とし、これらに対して省電力制御を共通に行う。
【００７２】
このような制御パターン２では、コアＰ０内のサブコアＰ０−２あるいはコアＰ１内のサブコアＰ１−２だけを省電力制御できる、すなわちサブコアＰ０−２，Ｐ１−２だけに対してクロックゲーティングあるいは電源電圧の供給／遮断を実行できる。このため、省電力制御に必要な時間を短縮することができる。すなわち、コアＰ０あるいはコアＰ１においてクロックゲーティングあるいは電源をオン／オフする領域を削減できるので、コアＰ０あるいはコアＰ１を省電力状態から稼働状態に遷移させるのに要する時間を短縮できる。
【００７３】
図２０は、実施形態における省電力制御パターン３の制御方法を示す図である。この制御パターン３では、コアＰ０（サブコアＰ０−１、サブコアＰ０−２）は省電力制御単位として省電力制御を行い、コアＰ１は個別の省電力制御を行わず、コアＰ０とは別の省電力制御単位とする。この例では、サブ共通部ＣＯ−１，ＣＯ−２、サブコアＰ１−１、サブコアＰ１−２は同一の省電力制御単位とし、これらに対して省電力制御を共通に行う。
【００７４】
このような制御パターン３は、コアＰ０は頻繁に稼働させないが、コアＰ１は頻繁に稼働させるような場合に用いると多大な効果がある。この場合、コアＰ０だけを省電力制御できる、すなわちコアＰ０だけに対してクロックゲーティングあるいは電源電圧の供給／遮断を実行できる。このため、省電力制御に必要な時間を短縮することができる。すなわち、クロックゲーティングの解除あるいは電源電圧の供給／遮断に要する時間を短縮することができる。一方、頻繁に稼働させるコアＰ１に対しては個別の省電力制御を行わず、共通部ＣＯと同一の省電力制御を行うことにより、コアＰ１を省電力状態から稼働状態に遷移させるのに要する時間を短縮することができる。
【００７５】
図２１は、実施形態における省電力制御パターン４の制御方法を示す図である。この制御パターン４は、共用部ＣＯの省電力制御範囲を減らす例である。制御パターン４では、コアＰ０、コアＰ１の各々は省電力制御単位として省電力制御を行う。共通部ＣＯのサブ共通部ＣＯ−２も省電力制御単位として省電力制御を行う。一方、サブ共通部ＣＯ−１は省電力制御単位とせず、省電力制御を行わない。
【００７６】
このような制御パターン４は、共通部ＣＯの省電力制御に要する時間を短縮したい場合に用いる。この場合、サブ共通部ＣＯ−２を省電力制御し、サブ共通部ＣＯ−１を省電力制御しないことにより、共通部ＣＯの稼働に要する時間を短縮することができる。
【００７７】
次に、図１及び図２２を参照して半導体集積回路の動作の概要を述べる。
【００７８】
図２２は、実施形態の半導体集積回路の動作を示すフロー図である。
【００７９】
まず、ＣＰＵ１０内の制御対象領域が稼働状態にあるものとする（ステップＳ１）。その後、ＣＰＵ１０における処理が終了し、ＣＰＵ１０内の制御対象領域が待機状態となる（ステップＳ２）。ＣＰＵ１０内の制御対象領域が待機状態となると、制御対象領域が待機状態であることを省電力コントローラ２０に通知する。すなわち、ＣＰＵ１０はスリープ要因信号ＳＰを省電力コントローラ２０に通知する（ステップＳ３）。
【００８０】
次に、省電力コントローラ２０がＣＰＵ１０へ省電力制御を実施する（ステップＳ４）。すなわち、省電力コントローラ２０は、現状の省電力モードにおいて、受け取ったスリープ要因信号に応じてＣＰＵ１０内の制御対象領域に対して省電力制御を行う。これにより、ＣＰＵ１０内の制御対象領域は省電力状態となる（ステップＳ５）。
【００８１】
続いて、ＣＰＵ１０を稼働する必要がある要因が、周辺インターフェース４０に入力される（ステップＳ６）。すると、周辺インターフェース４０は、ウェイクアップ要因信号（割り込み信号）ＷＵを省電力コントローラ２０に出力する（ステップＳ７）。
【００８２】
省電力コントローラ２０は、ウェイクアップ要因信号ＷＵを受け取ると、ＣＰＵ１０内の制御対象領域の省電力状態を解除する（ステップＳ８）。これにより、ＣＰＵ１０内の制御対象領域は再び稼働状態になる（ステップＳ９）。その後、ＣＰＵ１０における処理が終了し、ステップＳ２に戻る。なおここでは、電源をオフする処理を記載していないが、必要に応じて電源をオフする処理が設けられる。
【００８３】
次に、図１１及び図２３を参照して省電力コントローラ２０の動作について説明する。
【００８４】
図２３は、実施形態における省電力コントローラ２０の動作を示すフロー図である。
【００８５】
まず、ＣＰＵ１０内の制御対象領域（サブコアＰ０−１，Ｐ０−２，Ｐ１−１，Ｐ１−２、及びサブ共通部ＣＯ−１，ＣＯ−２）に対して、省電力制御シーケンサ２３は、稼働状態を指示する省電力制御信号ＬＣを出力する（ステップＳ１１）。続いて、省電力制御投入器２１は、ＣＰＵ１０内の制御対象領域が待機状態である情報を受け取る。省電力制御投入器２１は、ＣＰＵ１０から制御対象領域が待機状態であることを示すスリープ信号を受け取る（ステップＳ１２）。
【００８６】
次に、省電力モード切替器２２は、制御対象領域に対する省電力モードの設定を行う（ステップＳ１３）。省電力モードの設定については後で詳述する。
【００８７】
続いて、省電力モード切替器２２は、ＣＰＵ１０内の制御対象領域に対して省電力制御が許可されているか否かを判断する。省電力制御が許可されている場合は、どの制御が可能かを判断する（ステップＳ１４）。省電力制御が許可されていない場合は、処理を終了する。
【００８８】
次に、省電力制御シーケンサ２３は、制御対象領域へ指定された省電力制御を実現する省電力制御信号ＬＣを出力する（ステップＳ１５）。
【００８９】
その後、省電力モード切替器２２は、制御対象領域を稼働する要因（ウェイクアップ要因信号ＷＵ）を受け取った場合（ステップＳ１６）、再度、制御対象領域に対する省電力モードの設定を行う。すなわち、省電力モード切替器２２は、ウェイクアップ要因信号ＷＵを受け取る毎に、制御対象領域に対する省電力モードの設定を行う（ステップＳ１７）。
【００９０】
次に、省電力制御シーケンサ２３は、制御対象領域へ指定された省電力制御の解除を実施する。すなわち、省電力制御シーケンサ２３は、制御対象領域に対して省電力状態から稼働状態への遷移を指示する省電力制御信号ＬＣを出力する（ステップＳ１８）。
【００９１】
続いて、ＣＰＵ１０内の制御対象領域に対して、省電力制御シーケンサ２３は、稼働状態を指示する省電力制御信号ＬＣを出力する（ステップＳ１９）。その後、ＣＰＵ１０における処理が終了したら、ステップＳ１２に戻る。
【００９２】
次に、図１４及び図２４を参照して省電力モード切替器２２の動作について説明する。
【００９３】
図２４は、実施形態における省電力モード切替器２２の動作を示すフロー図である。
【００９４】
本実施形態では、省電力モード切替器２２により、ウェイクアップ要因信号ＷＵ（もしくはスリープ要因信号ＳＰ）のヒストリに基づいて省電力モードを切り替える。すなわち、省電力モード切替器２２は、ウェイクアップ要因信号ＷＵ（もしくはスリープ要因信号ＳＰ）が入力される毎に、ウェイクアップ要因信号ＷＵ（もしくはスリープ要因信号ＳＰ）の入力頻度が切り替え閾値より大きいか小さいかによって、省電力モードを設定する。
【００９５】
まず、切り替え判定時に使用するヒストリバッファ２２１内のデータのポインタＮを、モードレジスタ２２３内のデータ選択レジスタ２２３２に設定する。さらに、省電力モードの切り替え閾値（時間）を、モードレジスタ２２３内の切替閾値レジスタ２２３３に設定する（ステップＳ２１）。
【００９６】
次に、ＣＰＵ１０内の制御対象領域に対する省電力モードの初期値を設定する（ステップＳ２２）。省電力モード切替判定器２２４は、設定された省電力モードを示す省電力モード信号ＬＭを出力する（ステップＳ２３）。
【００９７】
ヒストリバッファ２２１は、制御対象領域を稼働する要因信号（ウェイクアップ要因信号ＷＵ）を受け取った場合（ステップＳ２４）、省電力モードの切り替えの要因となる前記ウェイクアップ要因信号ＷＵとその時のタイムスタンプＳＴＳを、ヒストリバッファ２２１の最新ライン（ポインタ０）に保存する（ステップＳ２５）。なお、ヒストリバッファ２２１内の記憶領域ｎを示すポインタ０〜７は、記憶領域ｎに保存される度にインクリメントされる。
【００９８】
次に、ヒストリバッファ２２１内の記憶領域０から最新のイベントＥＶ０と、記憶領域ｎからｎ番目に新しいイベントＥＶＮが選択され、省電力モード切替判定器２２４に出力される（ステップＳ２６）。省電力モード切替判定器２２４内のタイム差計算部２２４１は、イベントＥＶ０とイベントＥＶＮとからタイムスタンプの時刻差を算出する（ステップＳ２７）。
【００９９】
続いて、比較部２２４２は、モードレジスタ２２３内の切替閾値レジスタ２２３３に記憶された切り替え閾値と前記タイムスタンプの時刻差とを比較し、比較結果を出力する。省電力モード出力部２２４４は、前記比較結果と制限部２２４３から出力される信号に基づいて省電力モードを設定する（ステップＳ２８）。そして、省電力モード出力部２２４４は、設定した省電力モード信号ＬＭを出力する（ステップＳ２９）。省電力モード信号ＬＭは、省電力モードの切り替えを指示する信号あるいは、現状の省電力モードの維持を指示する信号である。その後、ステップＳ２４に戻り、制御対象領域を稼働する要因信号（ウェイクアップ要因信号ＷＵ）を受け取るまで待機する。
【０１００】
３．  効果等  
本実施形態では、ＣＰＵ１０を構成するコア、及びコア以外のキャッシュメモリ等を含む共通部を、機能単位毎あるいは機能に関係のない面積や省電力処理時間毎に複数に分割し、分割した各々の領域（制御対象領域）あるいは制御対象領域を組み合わせた領域に対して省電力制御、すなわちクロックゲーティングあるいは電源電圧の供給／遮断を行う。これにより、ＣＰＵ１０内の制御対象領域に対して、省電力を重視した制御から処理性能を重視した制御まで幅広い制御を行うことが可能である。
【０１０１】
また、本実施形態では、省電力モード切替器２２にはカウンタ回路２２２が配置され、カウンタ回路２２２から時刻（タイムスタンプＳＴＳ）を取得することが可能である。ウェイクアップ要因信号ＷＵが入力された時に、ウェイクアップ要因信号ＷＵと共に、カウンタ回路２２２から取得したタイムスタンプＳＴＳを、ウェイクアップ要因ヒストリバッファ２２１に記録する。これによって、どのような頻度でウェイクアップ要因信号ＷＵが入力されるのか、ウェイクアップ要因信号ＷＵのヒストリが記録できる。
【０１０２】
省電力モードの切り替えは、ウェイクアップ要因信号ＷＵの入力頻度と省電力モードの切り替え閾値ＳＳＴとの比較により決定する。切り替え閾値は、どの省電力モードに切り替えるか、すなわちどの省電力モードに設定するかを判断するための判断基準となる。切り替え閾値ＳＳＴは、ソフトウエアによってモードレジスタ２２３内の切替閾値レジスタ２２３３に設定する。また、ウェイクアップ要因信号が複数ある場合は、判定要因として使用する要因信号を選択するために切替要因設定レジスタ２２３１を設置している。
【０１０３】
以下に、省電力モードの切り替え判定について述べる。
【０１０４】
“ウェイクアップ要因信号の入力頻度＞切り替え閾値”の場合は、頻繁にウェイクアップ要因信号が発生している状態である。本実施形態では、ウェイクアップ要因信号の入力頻度を求める手段として、ｎ番目に新しいウェイクアップ要因信号と最新のウェイクアップ要因信号との時刻差を算出し、この時刻差を切り替え閾値と比較することで、ウェイクアップ要因信号の入力頻度が高いか、低いかを判断している。このため、“ウェイクアップ要因信号の入力頻度＞切り替え閾値”の場合とは“ウェイクアップ要因信号の時刻差＜切り替え閾値”の場合である。この場合、（２）クロックゲーティングのように、稼働状態への復帰に時間が掛からない省電力状態（第１省電力状態）を選択する省電力モードに設定する。これにより、ＣＰＵ１０の処理性能の劣化を回避することができる。
【０１０５】
一方、“ウェイクアップ要因信号の入力頻度＜切り替え閾値”の場合は、頻繁にウェイクアップ要因信号が発生していない状態である。“ウェイクアップ要因信号の入力頻度＜切り替え閾値”の場合とは“ウェイクアップ要因信号の時刻差＞切り替え閾値”の場合である。この場合は、（３）リテンション状態のように、電源電圧の供給を遮断することで高い消費電力削減効果が得られる省電力状態（第２省電力状態）を選択するような省電力モードに設定する。言い換えると、省電力コントローラ２０は、第１省電力状態より消費電力の削減量が大きいが、その省電力状態から稼働状態への遷移時間が長い第２省電力状態に制御対象領域を遷移させる。
【０１０６】
また、第１省電力状態では、例えば、制御対象領域のうちの第１の割合（例えば、３０％）の領域に対してクロックの供給停止を行い、第２省電力状態では、制御対象領域のうちの第２の割合（例えば、７０％）の領域に対してクロックの供給停止を行うといった制御方法をとってもよい。また、第１省電力状態では、制御対象領域のうちの第１の割合（例えば、３０％）の領域に対して電源電圧の供給遮断を行い、第２省電力状態では、制御対象領域のうちの第２の割合（例えば、７０％）の領域に対して電源電圧の供給遮断を行うといった制御方法をとってもよい。さらに、第１省電力状態では、制御対象領域のうちの１００％の領域に対して電源電圧の供給遮断を行い、第２省電力状態では、制御対象領域のうちの１００％の領域に対して電源電圧の供給を遮断すると共に、データ保持部の電源遮断を行うといった制御方法をとってもよい。
【０１０７】
ここでは、第１の割合として３０％、第２の割合として７０％としたが、第２の割合が第１の割合を大きければその他の割合でもよい。また、第１省電力状態及び第２省電力状態では、クロックの供給停止と電源電圧の供給遮断を両方行って、第２省電力状態が第１省電力状態より消費電力の削減量が大きくなるように制御してもよい。
【０１０８】
また、本実施形態では、複数の省電力モードを定義可能であり、それら省電力モードの切り替えをハードウエアが自動的に行うことにより、低消費電力化の効果と処理性能向上を両立させるとともに、ソフトウエア制御が容易であり、ソフトウエアのメンテナンス性の向上も得ることができる。これにより、低消費電力化のためのソフトウエアの導入コストを低減することができる。
【０１０９】
以上述べたように実施形態によれば、低消費電力化と処理性能向上を両立することができる半導体集積回路を提供することができる。
【０１１０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１１】
１…半導体集積回路、１０…ＣＰＵ（central processing unit）、２０…省電力コントローラ、３０…ＲＡＭ（random access memory）、４０…周辺インターフェース（周辺ＩＦ）、５０…割込みコントローラ、６０…バス、ＣＯ…共通部、Ｉ１…演算処理部、Ｉ２…命令処理部、Ｉ３…データ処理部、Ｉ４…メモリシステム、Ｉ５，Ｉ６…メモリシステム、Ｉ７…キャッシュメモリ、Ｉ８…その他の回路部、Ｐ０，Ｐ１…プロセッサコア、Ｐ０−１，Ｐ０−２，Ｐ１−１，Ｐ１−２…サブコア。
【図１】
2018165987.tif 000003
【図２】
2018165987.tif 000004
【図３】
2018165987.tif 000005
【図４】
2018165987.tif 000006
【図５】
2018165987.tif 000007
【図６】
2018165987.tif 000008
【図７】
2018165987.tif 000009
【図８】
2018165987.tif 000010
【図９】
2018165987.tif 000011
【図１０】
2018165987.tif 000012
【図１１】
2018165987.tif 000013
【図１２】
2018165987.tif 000014
【図１３】
2018165987.tif 000015
【図１４】
2018165987.tif 000016
【図１５】
2018165987.tif 000017
【図１６】
2018165987.tif 000018
【図１７】
2018165987.tif 000019
【図１８】
2018165987.tif 000020
【図１９】
2018165987.tif 000021
【図２０】
2018165987.tif 000022
【図２１】
2018165987.tif 000023
【図２２】
2018165987.tif 000024
【図２３】
2018165987.tif 000025
【図２４】
2018165987.tif 000026
【手続補正書】
【提出日】平成30年7月27日(2018.7.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
演算処理を行う第１プロセッサコアと、データ及びプログラムを記憶するキャッシュメモリを含む共通部とを備え、前記第１プロセッサコア及び前記共通部のいずれか一方が第１回路と第２回路に分割された演算処理回路と、
前記第１回路へクロック信号を供給あるいは停止する第１クロックゲーティング回路と、
前記第１回路へ電源電圧を供給あるいは遮断する第１パワースイッチと、
前記第２回路へ前記クロック信号を供給あるいは停止する第２クロックゲーティング回路と、
前記第２回路へ前記電源電圧を供給あるいは遮断する第２パワースイッチと、
前記第１及び第２クロックゲーティング回路、及び前記第１及び第２パワースイッチを制御するコントローラと、
を具備し、
前記コントローラは、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つを省電力状態に制御する複数の省電力モードを有し、
前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つを稼働状態に起動する要因となるウェイクアップ信号の入力頻度に応じて、前記コントローラは前記少なくともいずれか１つに対する省電力モードを、前記複数の省電力モードから選択する半導体集積回路。
【請求項２】
前記複数の省電力モードは、第１省電力モードと第２省電力モードを含み、
前記ウェイクアップ信号の入力頻度が閾値以上であるとき、前記コントローラは、前記第２省電力モードより稼働状態への復帰時間が短い前記第１省電力モードを選択し、
前記ウェイクアップ信号の入力頻度が閾値より小さいとき、前記コントローラは、前記第１省電力モードより消費電力の削減量が大きい前記第２省電力モードを選択する請求項１に記載の半導体集積回路。
【請求項３】
前記共通部へ前記クロック信号を供給あるいは停止する第３クロックゲーティング回路と、前記共通部へ前記電源電圧を供給あるいは遮断する第３パワースイッチと、前記第１プロセッサコアへ前記クロック信号を供給あるいは停止する第４クロックゲーティング回路と、前記第１プロセッサコアへ前記電源電圧を供給あるいは遮断する第４パワースイッチとのうち、前記第３クロックゲーティング回路及び第３パワースイッチ、あるいは前記第４クロックゲーティング回路及び第４パワースイッチの少なくともいずれか一方をさらに備え、
前記コントローラは、前記第３クロックゲーティング回路及び第３パワースイッチ、あるいは前記第４クロックゲーティング回路及び第４パワースイッチの前記少なくともいずれか一方を制御する請求項１または２に記載の半導体集積回路。
【請求項４】
前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つは、前記電源電圧の供給が遮断されるときに直前の処理データを保持するデータ保持部を有する請求項１乃至３のいずれかに記載の半導体集積回路。
【請求項５】
前記第１回路は第１の機能単位を有し、第２回路は前記第１の機能単位と異なる第２の機能単位を有する請求項１乃至３のいずれかに記載の半導体集積回路。
【請求項６】
前記第１プロセッサコアが前記第１回路及び第２回路を含む場合、前記第１の機能単位及び第２の機能単位の少なくともいずれか一方は、演算処理部、命令処理部、データ処理部、及びメモリシステムの少なくともいずれか１つを含む請求項５に記載の半導体集積回路。
【請求項７】
前記共通部が前記第１回路及び第２回路を含む場合、前記第１の機能単位及び第２の機能単位の少なくともいずれか一方は、キャッシュメモリ及び前記キャッシュメモリを制御するメモリ制御部の少なくともいずれか１つを含む請求項５に記載の半導体集積回路。
【請求項８】
前記第１プロセッサコアは演算処理部、命令処理部、データ処理部、及びメモリシステムを含み、前記共通部はキャッシュメモリ、及び前記キャッシュメモリを制御するメモリ制御部を含み、
前記第１回路と前記第２回路の各々は、前記演算処理部、前記命令処理部、前記データ処理部、前記メモリシステム、前記キャッシュメモリ、及び前記メモリ制御部のいずれか１つの一部分を含む請求項１乃至４のいずれかに記載の半導体集積回路。
【請求項９】
前記コントローラは、前記ウェイクアップ信号と、前記ウェイクアップ信号の入力時刻とを記憶するバッファを有し、
最新に入力された前記ウェイクアップ信号の入力時刻と、ｎ（ｎは１以上の整数）個前に入力された前記ウェイクアップ信号の入力時刻との時刻差を算出し、
前記時刻差と切り替え閾値とを比較し、その比較結果に応じて、前記コントローラは前記少なくともいずれか１つに対する省電力モードを選択する請求項１に記載の半導体集積回路。
【請求項１０】
前記コントローラが制御する前記省電力状態は、第１省電力状態と、前記第１省電力状態より消費電力の削減量が大きい第２省電力状態とを有し、
前記時刻差が前記切り替え閾値より小さい場合、前記コントローラは、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つを前記第１省電力状態に遷移させ、
前記時刻差が前記切り替え閾値以上である場合、前記コントローラは、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つを前記第２省電力状態に遷移させる請求項９に記載の半導体集積回路。
【請求項１１】
前記第１省電力状態は、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つに前記クロック信号の供給を停止することを含み、
前記第２省電力状態は、前記少なくともいずれか１つに前記電源電圧の供給を遮断することを含む請求項１０に記載の半導体集積回路。
【請求項１２】
前記第１省電力状態は、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つの領域のうち、第１の割合の領域に対して前記クロック信号の供給を停止し、前記第２省電力状態は、前記少なくともいずれか１つの領域のうち、前記第１の割合より大きな第２の割合の領域に対して前記クロック信号の供給を停止することを含む請求項１０に記載の半導体集積回路。
【請求項１３】
前記第１省電力状態は、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つの領域のうち、第１の割合の領域に対して前記電源電圧の供給を遮断し、前記第２省電力状態は、前記少なくともいずれか１つの領域のうち、前記第１の割合より大きな第２の割合の領域に対して前記電源電圧の供給を遮断することを含む請求項１０に記載の半導体集積回路。
【請求項１４】
前記演算処理回路は、演算処理を行う第２プロセッサコアをさらに備え、前記第２プロセッサコアは第３回路及び第４回路に分割され、前記第１及び第２プロセッサコアは前記共通部が含む前記キャッシュメモリを共有し、
前記第３回路へ前記クロック信号を供給あるいは停止する第５クロックゲーティング回路と、
前記第３回路へ前記電源電圧を供給あるいは遮断する第５パワースイッチと、
前記第４回路へ前記クロック信号を供給あるいは停止する第６クロックゲーティング回路と、
前記第４回路へ前記電源電圧を供給あるいは遮断する第６パワースイッチとをさらに備え、
前記コントローラは、前記第５及び第６クロックゲーティング回路、及び前記第５及び第６パワースイッチを制御する請求項１乃至１３のいずれかに記載の半導体集積回路。
【請求項１５】
前記データ保持部へ電源電圧を供給あるいは遮断する第７パワースイッチをさらに備える請求項４に記載の半導体集積回路。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
一実施態様の半導体集積回路は、演算処理を行う第１プロセッサコアと、データ及びプログラムを記憶するキャッシュメモリを含む共通部とを備え、前記第１プロセッサコア及び前記共通部のいずれか一方が第１回路と第２回路に分割された演算処理回路と、前記第１回路へクロック信号を供給あるいは停止する第１クロックゲーティング回路と、前記第１回路へ電源電圧を供給あるいは遮断する第１パワースイッチと、前記第２回路へ前記クロック信号を供給あるいは停止する第２クロックゲーティング回路と、前記第２回路へ前記電源電圧を供給あるいは遮断する第２パワースイッチと、前記第１及び第２クロックゲーティング回路、及び前記第１及び第２パワースイッチを制御するコントローラとを具備し、前記コントローラは、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つを省電力状態に制御する複数の省電力モードを有し、前記第１回路、前記第２回路、前記第１プロセッサコア、及び前記共通部の少なくともいずれか１つを稼働状態に起動する要因となるウェイクアップ信号の入力頻度に応じて、前記コントローラは前記少なくともいずれか１つに対する省電力モードを、前記複数の省電力モードから選択する。