(57)【要約】【課題】回路システムの動作状況に応じてメモリの一部への動作電源の供給を停止する場合に、消費電力が一層低減される回路システムの実現。【解決手段】複数のメモリブロック11A-11Dと、動作電源および基板電源を複数のメモリブロックへ供給する電源回路22,23と、電源回路から各メモリブロックへの動作電源の供給を制御するメモリ動作電源スイッチ12A-12Dと、電源回路およびメモリ動作電源スイッチを制御する制御回路24と、を有し、制御回路は、メモリ動作電源スイッチの供給／遮断状態に応じて、動作電源の電圧および基板電源の電圧を変化させる。【選択図】図１
2014052801.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリブロックと、
動作電源および基板電源を前記複数のメモリブロックへ供給する電源回路と、
前記電源回路から前記複数のメモリブロックのそれぞれへ前記動作電源を供給するか否かを個別に制御する複数のメモリ動作電源スイッチと、
前記電源回路および前記複数のメモリ動作電源スイッチを制御する制御回路と、を備え、
前記制御回路は、前記複数のメモリ動作電源スイッチの供給／遮断状態に応じて、前記電源回路が供給する前記動作電源の電圧および前記基板電源の電圧を変化させることを特徴とする回路システム。
【請求項２】
前記複数のメモリブロックは、共通のデータバスに接続されていることを特徴とする請求項１記載の回路システム。
【請求項３】
前記回路システム内の各部が同期して動作するクロックを供給するクロック回路を備えることを特徴とする請求項２記載の回路システム。
【請求項４】
前記共通のデータバスを介して前記複数のメモリブロックに接続される少なくとも１つの論理回路ブロックと、
前記電源回路から前記少なくとも１つの論理回路ブロックへ前記動作電源を供給するか否かを個別に制御する複数の論理動作電源スイッチと、を備え、
前記電源回路は、前記少なくとも１つの論理回路ブロックに前記基板電源を供給し、
前記制御回路は、前記複数のメモリ動作電源スイッチおよび前記少なくとも１つの論理動作電源スイッチの供給/遮断の状態に応じて、前記動作電源の電圧および前記基板電源の電圧を変化させることを特徴とする請求項３記載の回路システム。
【請求項５】
前記共通のデータバスを介して前記複数のメモリブロックに接続される少なくとも１つの論理回路ブロックと、
前記クロック回路から前記少なくとも１つの論理回路ブロックのそれぞれへ前記クロックを供給するか否かを個別に制御する少なくとも１つのクロックスイッチと、を備え、
前記制御回路は、前記クロック回路および前記少なくとも１つのクロックスイッチを制御し、
前記制御回路は、前記複数のメモリ動作電源スイッチおよび前記少なくとも１つのクロックスイッチの供給/遮断の状態に応じて、前記動作電源の電圧および前記基板電源の電圧を変化させることを特徴とする請求項３記載の回路システム。
【請求項６】
前記回路システムの温度を検出する温度センサを備え、
前記制御回路は、前記複数のメモリ動作電源スイッチの供給／遮断状態および前記温度センサの検出した温度に応じて、前記電源回路が供給する前記動作電源の電圧および前記基板電源の電圧を変化させることを特徴とする請求項１から３のいずれか１項記載の回路システム。
【請求項７】
前記回路システムの温度を検出する温度センサを備え、
前記制御回路は、前記複数のメモリ動作電源スイッチおよび前記少なくとも１つのクロックスイッチの供給／遮断状態、および前記温度センサの検出した温度に応じて、前記電源回路が供給する前記動作電源の電圧および前記基板電源の電圧を変化させることを特徴とする請求項４または５記載の回路システム。
【請求項８】
前記制御回路は、前記複数のメモリ動作電源スイッチの供給／遮断状態および前記クロック回路の供給するクロックの周波数に応じて、前記電源回路が供給する前記動作電源の電圧および前記基板電源の電圧を変化させることを特徴とする請求項３記載の回路システム。
【請求項９】
前記制御回路は、前記複数のメモリ動作電源スイッチおよび前記少なくとも１つのクロックスイッチの供給／遮断状態、前記温度センサの検出した温度および前記クロック回路の供給するクロックの周波数に応じて、前記電源回路が供給する前記動作電源の電圧および前記基板電源の電圧を変化させることを特徴とする請求項７記載の回路システム。
【請求項１０】
請求項１から９のいずれか１項に記載の回路システムを含む半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路システムおよび半導体装置に関する。
【背景技術】
【０００２】
プロセッサ等の論理（ロジック）回路およびメモリを含む回路システムおよびそれを搭載した半導体装置（半導体回路：ＬＳＩ）の消費電力の低減が望まれており、各種の消費電力低減方法が提案されている。１つの方法は、動作しない部分への動作電源の供給を停止することであり、例えば、プロセッサ等の論理回路が動作しない場合には、動作電源の供給を停止する。メモリについては、動作しない場合にはデータの入出力が停止されるが、記憶したデータを保持する場合と保持しない場合があり得る。記憶したデータを保持しない場合には、動作電源の供給を停止して消費電力を低減する。記憶したデータを保持する場合については、後述する基板バイアス電圧Ｖｂｂを印加するなどの方法を行う。
【０００３】
上記のように動作しない部分への動作電源の供給を停止するだけでなく、動作状態の回路システムで、要求される性能（動作速度）を実現しながら、消費電力を低減する各種の方法が提案されている。なお、回路システムの負荷状態に応じて、動作速度（クロック周波数）および動作電源電圧を動的に変更して消費電力を低減する方法も提案されている。説明する実施形態は、動作速度が一定の場合であるが、動作速度を動的に変更する場合にも適用可能である。
【０００４】
半導体装置（半導体回路）の消費電力と性能（動作速度）は、動作電源の電圧（以下動作電圧）Ｖｄｄおよびトランジスタ閾値電圧Ｖｔｈの両方に依存している。例えば、動作電圧Ｖｄｄを下げると、Ｖｄｄの二乗に比例してスイッチング電力を下げることが可能であるが、Ｖｄｄの低下は性能の劣化をもたらす。Ｖｄｄ低下時に性能を維持するためには、基板電源の電圧（以下基板電圧）Ｖｂｂを制御してＶｔｈを下げる方法があるが、Ｖｔｈを下げるとトランジスタのサブスレッショルドリーク電流が増加してしまう。このように、半導体回路の消費電力と性能の関係はトレードオフの関係にあり、その範囲である決められた処理を実現する際に、消費電力を如何にして低減するかが課題である。これまで、半導体回路の動作状態に応じて、ＶｄｄおよびＶｂｂを制御して、半導体回路の消費電力を低減する方法が各種提案されている。
【０００５】
例えば、半導体回路は、処理を実行するアクティブ（動作）状態と、処理を実行しないスタンバイ状態（スリープ状態）を取り得る。スタンバイ状態になる際には、動作周波数（クロック周波数）を下げて、Ｖｂｂを印加し、Ｖｄｄを低減することにより、スタンバイ状態のリーク電力を低減する方法がある。半導体回路の消費電力は、主としてスイッチング電力とリーク電力からなる。アクティブ状態では、要求される処理を実行する動作周波数で動作するためスイッチング電力が支配的であるが、ほとんど処理を実行しないスタンバイ状態では、リーク電力が支配的となる。そのため、スタンバイ状態では、回路スピードを犠牲にしても、リーク電力を低減するのが有利である。そこで、この方法では、動作周波数を落として、回路スピードが遅くなっても誤動作しないようにしつつ、深いＶｂｂを印加し、Ｖｄｄを低減することでリーク電力を低減している。
【０００６】
また、別の方法では、論理（ロジック）回路とＳＲＡＭが混載されている半導体回路（ＬＳＩ）において、スタンバイ状態では論理回路の電源を遮断し、ＳＲＡＭはリーク低減の為にＶｂｂの印加を行う方法が知られている。さらに、ＳＲＡＭを複数のブロックに分割して、スタンバイ状態でデータを保持しない領域は電源遮断する方法も提案されている。この方法も、スタンバイ状態のリーク電力を低減する手法であり、動作不要な回路は電源遮断によりリーク電力を削減し、スタンバイ状態でデータ保持を行うＳＲＡＭについても、Ｖｂｂを印加することにより、リークを低減している。
【０００７】
以上のように、使用しないメモリブロックおよびプロセッサ等の論理回路については電源供給を停止することにより、リーク電力の低減が図られてきた。また、プロセッサ等の論理回路に関しては、使用しない時には電源供給を停止し、動作時には、必要な処理速度に応じて動作周波数を設定し、温度も考慮して動作電圧および基板電圧を設定することが提案されている。さらに、スタンバイ状態でもデータを保持するメモリに関しては、Ｖｂｂの制御によりリーク電力の低減が図られてきた。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２０１０−５１９６１２号公報
【特許文献２】特開２００３−１３２６８３号公報
【特許文献３】特開２０００−１４９５６１号公報
【特許文献４】特開平９−２１２４１６号公報
【特許文献５】特開平４−３２９６６３号公報
【特許文献６】特許第４８３５８５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記のように、半導体装置（半導体回路）の消費電力は、主としてスイッチング電力およびリーク電力からなり、要求される性能を実現した上で消費電力を低減することが求められている。これまで、スタンバイ状態になるメモリに関しては、記憶したデータを保持しないのであれば動作電源の供給を停止し、記憶したデータを保持するのであれば、基板電源電圧Ｖｂｂを制御してリーク電力の低減を図ってきた。言い換えれば、スタンバイ状態になるメモリのリーク電力の低減について、各種の方法が提案されている。しかし、メモリの一部がスタンバイ状態になるが、メモリの残りの部分はアクティブ状態である場合の、アクティブ状態の部分の消費電力を低減することについては、何ら注目されていなかった。
【００１０】
実施形態によれば、回路システムの動作状況に応じてメモリの一部への動作電源の供給を停止する場合に、消費電力が一層低減される回路システムおよびそれを搭載した半導体装置（半導体回路）が実現される。
【課題を解決するための手段】
【００１１】
実施形態によれば、回路システムは、複数のメモリブロックと、電源回路と、複数のメモリ動作電源スイッチと、制御回路と、を有する。電源回路は、動作電源および基板電源を複数のメモリブロックへ供給する。複数のメモリ動作電源スイッチは、複数のメモリブロックに対応して設けられ、電源回路から複数のメモリブロックのそれぞれへ動作電源を供給するか否かを個別に制御する。制御回路は、電源回路および複数のメモリ動作電源スイッチを制御する。制御回路は、複数のメモリ動作電源スイッチの供給／遮断状態に応じて、電源回路が供給する動作電源の電圧および基板電源の電圧を変化させる。
【発明の効果】
【００１２】
実施形態の回路システムでは、複数のメモリブロックのそれぞれへ動作電源を供給するか否かが個別に制御されるが、その制御により複数のメモリブロックの動作状態が変更されることになる。言い換えれば、動作状態のメモリブロックの個数が変更されることになり、それに応じてリーク電力を生じるメモリ量も変化するので、動作電源の電圧および基板電源の電圧の望ましい値も変化することになる。実施形態の回路システムでは、複数のメモリ動作電源スイッチの供給／遮断状態に応じて、動作電源の電圧および基板電源の電圧を変化され、一層の消費電力の低減を実現する。
【図面の簡単な説明】
【００１３】
【図１】図１は、第１実施形態の回路システムの全体構成を示すブロック図である。
【図２】図２は、図１に示す回路システムを搭載した半導体装置（ＬＳＩ）の概略構成を示すブロック図である。
【図３】図３は、メモリブロックの使用個数を４個→２個→１個と変化させた場合の消費電力の変化を示す図である。
【図４】図４は、第１実施形態において、モードを切り替える際の処理を示すフローチャートである。
【図５】図５は、第２実施形態の回路システムの全体構成を示すブロック図である。
【図６】図６は、図５に示す回路システムを搭載した半導体装置（ＬＳＩ）の概略構成を示すブロック図である。
【図７】図７は、第２実施形態において、モードを切り替える際の処理を示すフローチャートである。
【図８】図８は、第３実施形態の回路システムの全体構成を示すブロック図である。
【図９】図９は、第３実施形態において、モードを切り替える際の処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
図１は、第１実施形態の回路システムの全体構成を示すブロック図である。
第１実施形態の回路システムは、複数のメモリブロック１１Ａ−１１Ｄと、電源スイッチユニット１２と、論理回路（プロセッサ）２１と、動作電源供給回路２２と、基板電源供給回路２３と、制御回路２４と、クロック回路２５と、温度センサ２６と、を有する。
【００１５】
動作電源供給回路２２は、メモリブロック１１Ａ−１１Ｄに供給する電圧ＶｄｄＭのメモリ動作電源、およびプロセッサ２１に供給する電圧ＶｄｄＰの論理動作電源を出力する。メモリ動作電源および論理動作電源は、動作電源供給回路２２で生成しても、他の部分から供給されてもよい。ＶｄｄＭのメモリ動作電源は、メモリブロック１１Ａ−１１Ｄの高電位側電源として供給され、ＶｄｄＰの論理動作電源は、プロセッサ２１の高電位側電源として供給される。なお、メモリブロック１１Ａ−１１Ｄおよびプロセッサ２１の低電位側電源ＶＳＳは、共通であり、図１では図示を省略している。動作電源供給回路２２は、後述するように、制御回路２４の制御により、出力するメモリ動作電源および論理動作電源の電圧を変化させる。
【００１６】
基板電源供給回路２３は、メモリブロック１１Ａ−１１Ｄに供給する電圧ＶｂｎＭおよびＶｂｐＭのメモリ基板電源、およびプロセッサ２１に供給する電圧ＶｂｎＰおよびＶｂｐＰの論理基板電源を出力する。メモリ基板電源および論理基板電源は、基板電源供給回路２３で生成しても、他の部分から供給されてもよい。ＶｂｎＭのメモリ基板電源は、メモリブロック１１Ａ−１１ＤのＮＭＯＳトランジスタのバックゲート（ウエル）に印加され、ＶｂｐＭのメモリ基板電源は、メモリブロック１１Ａ−１１ＤのＰＭＯＳトランジスタのバックゲート（ウエル）に印加される。同様に、ＶｂｎＰの論理基板電源は、プロセッサ２１のＮＭＯＳトランジスタのバックゲート（ウエル）に印加され、ＶｂｐＰの論理基板電源は、プロセッサ２１のＰＭＯＳトランジスタのバックゲート（ウエル）に印加される。基板電源供給回路２３は、後述するように、制御回路２４の制御により、出力するメモリ基板電源および論理基板電源の電圧を変化させる。
【００１７】
電源スイッチユニット１２は、メモリブロック１１Ａ−１１Ｄに対応して設けられた複数の電源スイッチ１２Ａ−１２Ｄを有する。ＶｄｄＭのメモリ動作電源は、電源スイッチ１２Ａ−１２Ｄを介して対応するメモリブロック１１Ａ−１１Ｄへ供給される。電源スイッチ１２Ａ−１２Ｄは、制御回路２４により、対応するメモリブロックにメモリ動作電源を供給する供給状態、またはメモリ動作電源を供給しない遮断状態に制御される。
【００１８】
論理回路（プロセッサ）２１は、動作電源供給回路２２から電圧ＶｄｄＰの論理動作電源を、基板電源供給回路２３から電圧ＶｂｎＰおよびＶｂｐＰの論理基板電源を常時供給される。論理回路（プロセッサ）２１は、メモリブロック１１Ａ−１１Ｄにロードされたプログラムにしたがって、メモリブロック１１Ａ−１１Ｄおよび図示していない入出力ポート等にアクセスしてデータ処理を実行し、回路システムの機能を実現する。プロセッサ２１は、プログラムのコンパイルにより得られるメモリマップにより、処理実行時に使用するメモリブロック１１Ａ−１１Ｄに関する情報を得ることが可能で、使用しないメモリブロックへの電源供給を停止するように、制御回路２４に指示する。また、プロセッサ２１は、プログラムのコンパイル結果や事前のプログラム実行時の動作解析結果より算出した負荷量に関する情報を有しており、算出した負荷量を処理可能な動作速度を設定可能である。ただし、以下の説明では、説明を簡単にするため、動作速度は一定であるとして説明を行う。
【００１９】
クロック回路２５は、プロセッサ２１にクロックＣＫを供給する。なお、メモリブロック１１Ａ−１１Ｄおよび他の部分がクロックＣＫに同期して動作する場合には、それらの部分にもクロックＣＫを供給する。上記のように、負荷量に応じて動作速度を変更する場合には、クロック回路２５の出力するクロックＣＫの周波数を変更するが、ここではクロックＣＫの周波数は一定であるとして説明を行う。
【００２０】
メモリブロック１１Ａ−１１Ｄは、それぞれ独立しており、対応する電源スイッチ１２Ａ−１２Ｄをオン・オフ制御することにより、個別に動作電源を供給した動作状態または動作電源を遮断した非動作状態に設定することが可能である。また、メモリブロック１１Ａ−１１Ｄは、基板電源供給回路２３から電圧ＶｂｎＭおよびＶｂｐＭのメモリ基板電源が共通に供給される。メモリブロック１１Ａ−１１Ｄは、プロセッサ２１と共通のバス（アドレスバスおよびデータバス）２９で接続されている。したがって、プロセッサ２１がメモリブロック１１Ａ−１１Ｄにアクセスする場合に、アクセスできるのは１個のメモリブロックである。
【００２１】
制御回路２４は、プロセッサ２１からの指示および温度センサ２６の検出した温度にしたがって、動作電源供給回路２２、基板電源供給回路２３および電源スイッチ１２内の電源スイッチ１２Ａ−１２Ｄを制御する。実際には、制御回路２４は、プロセッサ２１の一部として形成することが望ましい。
【００２２】
半導体装置（半導体回路）の消費電力、特にリーク電力は温度によって大きく変化する。そのため、温度が違えば、消費電力におけるスイッチング電力とリーク電力の割合が変化する。したがって、動作電源が供給されているメモリブロック数が同じでも、温度に応じて最適な動作電源電圧Ｖｄｄ、基板電源電圧Ｖｂｂが変化する場合がある。通常、温度が高いとリーク電力が大きくなってくるため、温度が高い際にはＶｂｂを深く印加するのが有利である。第１実施形態では、温度センサ２６により温度を検出し、温度によって、適切なＶｄｄ、Ｖｂｂを設定することによって、消費電力を低減する。
【００２３】
図１に示す回路システムは、全体が１個の半導体装置（半導体回路）に搭載されても、複数の半導体装置を組み合わせて実現してもよい。複数の半導体装置で形成する場合、例えば、メモリブロック１１Ａ−１１Ｄを異なるメモリデバイスで形成し、動作電源供給回路２２から伸びる動作電源線２７Ａとメモリデバイスの動作電源端子と間に電源スイッチ１２Ａ−１２Ｄを設ける。さらに、プロセッサ２１および制御回路２４は、１個のプロセッサデバイスで実現し、動作電源供給回路２２および基板電源供給回路２３は１つの回路で実現する。
【００２４】
図２は、図１に示す回路システムを搭載した半導体装置（ＬＳＩ）１０の概略構成を示すブロック図である。図２のＬＳＩ１０の構成は、図１と同じであるが、メモリブロック１１Ａ−１１Ｄがメモリユニット１１として、動作電源供給回路２２、基板電源供給回路２３および制御回路２４が電力制御ユニット（ＰＭＵ）３０にまとめられていることが、異なる。図２に示すように、ＬＳＩ１０の外部から、Vdd_i, Vbn_i, Vbp_i, Vssが供給される。動作電源供給回路２２は、動作状態に応じてVdd_i からVdd_0, Vdd_1を生成し、Vdd_0をプロセッサ２１に、Vdd_1をメモリユニット１１に、Vssをプロセッサ２１およびメモリユニット１１に供給する。基板電源供給回路２３は、動作状態に応じてVbn_i, Vbp_i からVbn_0, Vbn_1, Vbp_0, Vbp_1を生成する。基板電源供給回路２３は、Vbn_0およびVbp_0をプロセッサ２１に、Vbn_1およびVbp_1をメモリユニット１１に、供給する。後述するように、Vdd_0, Vdd_1, Vbn_0, Vbn_1, Vbp_0, Vbp_1は、複数の異なる電圧に変化される。
【００２５】
図１および図２に示すように、第１実施形態では、メモリユニット１１と論理回路（プロセッサ）２１の電源供給系は独立した別系統としているため、メモリユニット１１に対する電力最適化と、プロセッサ２１に対する電力最適化は独立して考慮できる。第１実施形態では、プロセッサ２１は１個であり、プロセッサ２１に対する電力最適化は、公知の方法により最適化が図られるものとする。したがって、第１実施形態でのメモリユニット１１における電力最適化について以下に説明する。
【００２６】
メモリの消費電力は、リード・ライト（Ｒｅａｄ／Ｗｒｉｔｅ）アクセス時に消費されるスイッチング電力と、動作電源が供給されているときに常時消費されるリーク電力からなる。リーク電力は、動作電源が供給されているメモリの面積に比例するため、動作電源の供給されているメモリブロック数が大きいほど、リーク電力は増加する。一方、スイッチング電力は、動作周波数を固定として考えると、Ｒｅａｄ／Ｗｒｉｔｅのアクセス量に比例する。
【００２７】
ここで、動作周波数を一定とする３つの動作電源の電圧Ｖｄｄと基板電源の電圧Ｖｂｂの組み合わせV0(Vdd0,Vbb0)、V1(Vdd1,Vbb1)、V2(Vdd2,Vbb2)を考える。上記のように、基板電圧は、ＮＭＯＳトランジスタの基板電圧ＶｂｎとＰＭＯＳトランジスタの基板電圧Ｖｂｐからなるが、ここでは、説明を簡単にするため、ＶｂｎとＶｂｐを合わせて基板電源の電圧Ｖｂｂとして説明する。また、ＮＭＯＳトランジスタおよびＰＭＯＳトランジスタを、それぞれNMOSおよびPMOSで表す場合がある。
【００２８】
電源電圧の関係はVdd0が最も低く、Vdd1、Vdd2と高くなっており、基板電圧はVbb0が最も浅く、Vbb1、Vbb2と逆バイアス側(NMOSをマイナス方向、PMOSをプラス方向)に深く印加される値となっている。これは、V2側では、Vbbを深く印加してリーク電力を低減している分、Vbb印加で回路スピードが落ちるので電源電圧を上げることにより、動作周波数を一定に保つような値となっている。これらの3つVdd, Vbbの組み合わせでは、V0が最もリーク電力が大きく、スイッチング電力が小さく、V2が最もリーク電力が小さく、スイッチング電力が大きくなる設定である。先に述べたように、メモリのリーク電力は、電源供給されているメモリの面積に比例するので、メモリへのＲｅａｄ／Ｗｒｉｔｅアクセス量が変わらないとすると、電源供給されるメモリブロックが増えるほどリーク電力の割合が大きくなる。トータル電力のうち、リーク電力が支配的な場合は、リーク電力を減らすのが有効であるため、V2の電圧設定にするのが有利である。逆に、電源供給されるメモリブロックが少なく、リーク電力が小さい場合、すなわち、スイッチング電力が支配的な場合には、スイッチング電力を減らすのが有効であるため、V0の電圧設定にするのが有利である。
【００２９】
ここで、ある動作速度（クロック周波数）F0での動作を実現する動作電源電圧/基板電源電圧の組み合わせとして、3つの動作モードMode0-Mode2を定義する。Mode0-Mode2の動作電源電圧/基板電源電圧の組み合わせは、例えば、上記のV0(Vdd0,Vbb0)、V1(Vdd1,Vbb1)、V2(Vdd2,Vbb2)の組合せである。電源電圧はMode0が最も低く、Mode1、Mode2と高くなっており、基板電圧はMode0が最も浅く、Mode1、Mode2と逆バイアス側(NMOSをマイナス方向、PMOSをプラス方向)に深く印加される値となっている。よって、Mode0が最もリーク電力が大きく、スイッチング電力が小さい、Mode2が最もリーク電力が小さく、スイッチング電力が大きくなる設定である。
【００３０】
表１は、各モードでの動作電源電圧(Vdd)、基板電源電圧(Vbn, Vbp)、リーク電力(P_leak)およびスイッチング電力(P_switch)の一例である。なお、ここでは温度Tは固定(T0)、動作周波数Fも固定(F0)としている。また、表１において、リーク電力P_leakは、メモリブロック1個当たりのリーク電力であり、P_switchは平均的なメモリアクセス時のスイッチング電力である。
【００３１】
【表１】
2014052801.tif 000003
【００３２】
ここでメモリブロックへの動作電源供給を１個〜４個と変えた場合(Mem1-Mem4)の各モード(Mode0-Mode3)の電力を計算すると表２ようになる。ここで、動作電源供給を遮断した際のメモリブロックの電力はゼロとしている。また、動作電源供給するメモリブロックの個数を変えても、メモリに対するアクセス数は変わらず、スイッチング電力は固定としている。
【００３３】
【表２】
2014052801.tif 000004
【００３４】
表２から分かるように、メモリブロックへの電源供給を１個〜４個に変えた場合、電力最小となるモードは異なる。１個のみの場合はMode0、2〜3個の場合はMode1、4個の場合はMode2が電力最小となる。
【００３５】
図３は、メモリブロックの使用個数を４個→２個→１個と変化させた場合の消費電力の変化を示す図である。初期状態では、４個のメモリブロックを使用し、その際に電力最適なMode2で始まる。図３の（Ａ）は、モードをそのままMode2に固定している場合、（Ｂ）はモードを電力最小になるように制御した場合を示す。図３の（Ｂ）では、２個のメモリブロックを使用する場合、および１個のメモリブロックを使用の場合に、図３の（Ａ）に比べて消費電力が削減されていることが分かる。
【００３６】
図４は、第１実施形態において、モードを切り替える際の処理を示すフローチャートである。メモリブロックの使用個数を４個から２個へ切り替える場合を例として説明する。
【００３７】
ステップＳ１１では、遷移後の動作状態（使用メモリブロック数Ｍ、動作周波数Ｆ)を取得する。動作周波数は固定（Ｆ０）、使用メモリブロック数Ｍ＝２である。
【００３８】
ステップＳ１２では、温度センサ２６から温度Ｔを取得する。ここでは温度も固定でＴ０であるとする。
【００３９】
ステップＳ１３では、これらの値から動作モードMode0-Mode2および決定したモードの動作電源電圧／基板電源電圧(Vdd, Vbn, Vbp)を決定する。Ｍ＝２の場合は、前述したとおり、Mode1が電力最小であるので、Vdd_1、Vbn_1、Vbp_1が選択される。
【００４０】
ステップＳ１４では、電源スイッチ１２内の電源スイッチ１２Ａ−１２Ｄに対する指示が行われ、使用する２個のメモリブロック以外の動作電源の供給が遮断される。
【００４１】
ステップＳ１５では、選択された動作電源電圧、基板電源電圧への設定が行われ、ＰＭＵ３０で電圧調整が行われ、Vdd, Vbn, Vbpが変更される。
【００４２】
ここでは、温度、動作周波数は固定として説明したが、これらが可変の場合も基本的に同じ手順（フロー）で行う。例えば、動作周波数は２段階(F0,F1)に設定可能であり、温度区分は２段階（T0,T1： 温度Tc以下であればT0、Tcより高ければT1)で区別するとする。その場合、表３のように、各動作周波数、温度区分の組み合わせに対して、使用するメモリブロック数Ｍに対応する最適な電圧モードの表を作っておけばよい。
【００４３】
【表３】
2014052801.tif 000005
【００４４】
なお、第１実施形態では、説明を簡単にするため、動作周波数、温度区分の組み合わせのすべてに対して、３つの電圧モードで割り当てを行っている。しかし、動作周波数によって要求される回路スピードが変わり、また温度変化によっても回路スピードは変わるため、その条件を満足する動作電源電圧、基板電源電圧の条件は変化する。よって、動作周波数、温度区分条件によって、それぞれの電圧モードを個別に持つことが望ましい。
【００４５】
以上説明したように、使用するメモリブロック数によってメモリ容量が変化し、それに応じてリーク電力が変化し、使用状態にあるメモリにおけるスイッチング電力とリーク電力の割合も変化する。そのため、消費電力を最小化する動作電源電圧および基板電源電圧の組合せも変化するので、使用するメモリブロック数によって動作電源電圧および基板電源電圧を適切に制御することにより、動作状態に応じたメモリにおける消費電力を低減できる。
【００４６】
なお、第１実施形態は、メモリブロック（メモリユニット）における消費電力に比べて、論理回路（プロセッサ）における消費電力の影響が小さい場合に特に有効である。例えば、論理回路（プロセッサ）の電源系がメモリブロックの電源系と分離されている場合で、論理回路（プロセッサ）の消費電力がメモリブロックの消費電力と比較して小さい場合などに、顕著な効果が得られる。
【００４７】
図５は、第２実施形態の回路システムの全体構成を示すブロック図である。
第２実施形態の回路システムは、２個の論理回路（プロセッサ）２１Ａおよび２１Ｂと、論理回路（プロセッサ）２１Ａおよび２１Ｂに対応して２個の電源スイッチ１２Ｅおよび１２Ｆと、を有することが、第１実施形態の回路システムと異なる。言い換えれば、第２実施形態の回路システムは、第２実施形態の回路システムにおいて、マルチプロセッサ構成とし、各プロセッサに対する動作電源の供給制御を可能にしたものである。プロセッサ２１Ａおよび２１Ｂは、高負荷状態の時には、両方に動作電源が供給されて動作状態となり、高い処理能力で処理を実行するが、低負荷状態の時には、一方にのみ動作電源が供給されて動作状態となり、比較的に低い処理能力で処理を実行する。また、両方のプロセッサへの動作電源の供給を停止して、メモリブロックの一部または全部で記憶したデータを保持するような状態を取り得るようにしてもよい。
【００４８】
図６は、図５に示す回路システムを搭載した半導体装置（ＬＳＩ）１０の概略構成を示すブロック図である。図６は、図２に対応する図であり、説明は省略する。
【００４９】
第２実施形態の回路システムでは、プロセッサ２１Ａおよび２１Ｂへの動作電源および基板電源の供給系は、メモリブロック１１Ａ−１１Ｄの動作電源および基板電源の供給系と同じものを使用する。動作電源供給回路２２は、電圧Ｖｄｄの動作電源のみを出力し、電圧Ｖｄｄの動作電源は、電源スイッチ１２Ａ−１２Ｄを介してメモリブロック１１Ａ−１１Ｄに、電源スイッチ１２Ｅおよび１２Ｆを介してプロセッサ２１Ａおよび２１Ｂに供給される。基板電源供給回路２３は、電圧Ｖｂｎ、Ｖｂｐの基板電源のみを出力し、電圧Ｖｂｎ、Ｖｂｐの基板電源は、メモリブロック１１Ａ−１１Ｄおよびプロセッサ２１Ａおよび２１Ｂに共通に供給される。
【００５０】
第２実施形態の回路システムでは、電源スイッチ１２Ａ−１２Ｆの供給/遮断の状態に応じて、供給する動作電源の電圧Ｖｄｄおよび基板電源の電圧Ｖｂｎ、Ｖｂｐを消費電力を最小化するように変更する。
【００５１】
第１実施形態では、論理回路（プロセッサ）２１などのメモリ以外の要素については消費電力を最適化する上で考慮せず、メモリブロック１１Ａ−１１Ｄを含むメモリユニット１１における消費電力の最適化を行った。これに対して、第２実施形態の回路システムは、メモリブロック１１Ａ−１１Ｄと２個のプロセッサ２１Ａおよび２１Ｂの両方の消費電力の最適化を行う。なお、第２実施形態の回路システムの基本的な制御は、第１実施形態と同じである。
【００５２】
プロセッサ２１Ａおよび２１Ｂの消費電力も、その回路構成や動作状態によって、スイッチング電力とリーク電力の割合が変化する。そのため、メモリブロックとプロセッサへの動作電源および基板電源が共通の場合、プロセッサ２１Ａおよび２１Ｂの両方に動作電源を供給するか一方にのみ動作電源を供給するかで、回路システム全体におけるリーク電力とスイッチング電力の比に影響する。そのため、メモリと同じ電源系に接続され、動作電源の供給状態が制御できる複数のプロセッサを有する場合、プロセッサに対する電源供給／遮断の状態によっても、最適なVdd, Vbbの値が異なるので、第２実施形態ではプロセッサを含めて最適化を行う。
【００５３】
例えば、プロセッサ２１Ａの消費電力が、すべてのメモリブロック１１Ａ−１１Ｄへ電源供給がされている場合のメモリの消費電力と比べても支配的で、しかもプロセッサ２１Ａにおける消費電力として、スイッチング電力が支配的であるとする。この場合、プロセッサ２１Ａに動作電源が供給されているアクティブの場合は、スイッチング電力を減らすように前述の電圧設定V0が有利である。プロセッサ２１Ａへの動作電源が遮断されていて、メモリ電力が支配的な場合は、リーク電力を減らす電圧設定V2が有利である。このように、メモリブロック、論理回路（プロセッサ）への電源スイッチの状態に応じて、適切なVdd、Vbbを設定することにより、電力を低減することが可能となる。
【００５４】
第２実施形態でも、動作電源電圧および基板電源電圧の組み合わせとして、３つの動作モードMode0-Mode3を定義する。表４は、各モードでの動作電源電圧(Vdd)、基板電源電圧(Vbn, Vbp)、メモリブロックのリーク電力およびスイッチング電力、およびプロセッサのリーク電力およびスイッチング電力の一例である。なお、ここでは温度Tは固定(T0)、動作周波数Fも固定(F0)としている。表４において、リーク電力P_leak_mは、メモリブロック１個当たりのリーク電力であり、P_switch_mは平均的なメモリアクセス時のスイッチング電力である。P_leak_lは、論理回路（プロセッサ）１個当たりのリーク電力であり、P_switch_lは平均的な動作での論理回路（プロセッサ）１個当たりのスイッチング電力である。
【００５５】
【表４】
2014052801.tif 000006
【００５６】
ここで、動作電源の供給を行う論理回路（プロセッサ）の個数Ｌを１個〜２個、動作電源の供給を行うメモリブロックの個数Ｍを１個〜４個と変えた場合の電力を計算すると表５のようになる。ここで、動作電源の供給を遮断したプロセッサ、メモリブロックの消費電力はゼロとしている。また、動作電源を供給するメモリブロックの個数を変えても、メモリに対するアクセス数は変わらず、スイッチング電力は固定としている。プロセッサに関しては、動作時はリーク電力、スイッチング電力とも同じ電力を消費するとしている。
【００５７】
【表５】
2014052801.tif 000007
【００５８】
表５から分かるように、動作電源の供給を行う論理回路（プロセッサ）およびメモリブロックの個数を変えた場合、電力最小となるモードは異なる。（Ｌ，Ｍ）＝（１，１）、（２，１）の場合はMode0、（Ｌ，Ｍ）＝（１，４）の場合はMode2、それ以外ではMode1が電力最小となる。なお、論理回路（プロセッサ）が二つとも停止している場合（Ｌ＝０）で、メモリブロックへの電源供給が必要な場合については、メモリへのアクセスは発生せず、データ保持だけがされている状態として、メモリのスイッチング電力はゼロと考える。そのため、リーク電力が小さいMode2が有利であるため、Ｌ＝０の場合は全てMode2とする。表にすると適切な動作モードは表６のようになる。
【００５９】
【表６】
2014052801.tif 000008
【００６０】
図７は、第２実施形態において、モードを切り替える際の処理を示すフローチャートである。基本的な処理は、第１実施形態と同じであり、ステップＳ２１で、遷移後の動作状態取得時に、使用する論理回路（プロセッサ）数Ｌを取得する点、および電源スイッチ制御時に、プロセッサの電源スイッチへの指示を行う点が追加されていることが異なる。
【００６１】
図８は、第３実施形態の回路システムの全体構成を示すブロック図である。
第３実施形態の回路システムは、第２実施形態の回路システムと類似の構成を有するが、電源スイッチ１２Ｅおよび１２Ｆを設けずに、ゲーティッドクロックバッファ１３Ａおよび１３Ｂを設けたことが異なる。ゲーティッドクロックバッファ１３Ａおよび１３Ｂは、論理回路（プロセッサ）２１Ａおよび２１Ｂに対応して設けられ、クロック回路２５からプロセッサ２１Ａおよび２１ＢへのクロックＣＫの供給／遮断を制御する。
【００６２】
第２実施形態では、論理回路（プロセッサ）２１Ａおよび２１Ｂの非動作時に、動作電源の供給を遮断しているが、ゲーティッドクロックバッファ１３Ａおよび１３Ｂを用いてクロックの供給を遮断しても、同様にプロセッサの動作を停止することができる。この場合、論理回路（プロセッサ）のスイッチング電力のみが削減され、リーク電力は消費することになる。
【００６３】
論理回路（プロセッサ）２１Ａおよび２１Ｂの消費電力として、スイッチング電力が支配的でリーク電力の割合が小さい場合、プロセッサへのクロック供給を遮断すると、支配的なスイッチング電力は削減される。そのため、プロセッサの消費電力に関しては、クロック供給の遮断でも、動作電源の遮断と同様の電力削減効果が得られる。したがって、プロセッサ２１Ａおよび２１Ｂへのクロックの供給／遮断状態によっても、第２実施形態と同様に、最適なVdd,Vbbの値が異なることになる。そこで、メモリブロック１１Ａ−１１Ｄへの電源スイッチの状態に加えて、論理回路（プロセッサ）２１Ａおよび２１Ｂへのクロック供給／遮断の状態に応じて、適切なVdd、Vbbを設定することにより、消費電力を低減することが可能となる。基本的な制御は、第２実施形態の場合と同じである。
【００６４】
第３実施形態で、論理回路（プロセッサ）２１Ａおよび２１Ｂに対して、非動作時に動作電源の供給遮断の代わりに、クロックの供給遮断を行った場合、消費電力は表７のようになる。
【００６５】
【表７】
2014052801.tif 000009
【００６６】
表７に示すように、クロックを供給する論理回路（プロセッサ）２１Ａおよび２１Ｂの個数、動作電源を供給するメモリブロックの個数を変えた場合、消費電力が最小となるモードは異なる。（Ｌ，Ｍ）＝（２，１）の場合はMode0、（Ｌ，Ｍ）＝（１，３）、（１，４）の場合はMode2、それ以外ではMode1が消費電力最小となる。
【００６７】
図９は、第３実施形態において、論理回路（プロセッサ）２１Ａおよび２１Ｂの非動作時に動作電源の供給遮断の代わりに、クロックの供給遮断を用いた場合の、モードを切り替える際の処理を示すフローチャートである。第２実施形態で、論理回路（プロセッサ）の電源スイッチへの指示を行う代わりに、ゲーティッドクロックバッファにクロック供給／遮断の指示が行われる点が異なる。
【００６８】
なお、前述のように、プロセッサ２１は、プログラムのコンパイル結果や事前のプログラム実行時の動作解析結果より算出した負荷量に関する情報を有しており、算出した負荷量を処理可能な動作速度を設定可能であり、それに応じてクロック回路２５はクロックの周波数を変更する。半導体装置（半導体回路）のスイッチング電力は、単位時間あたりの回路のスイッチング回数に比例するため、回路に供給されるクロックの周波数（動作周波数）に大きく依存する。クロック周波数が倍であれば、スイッチング電力もほぼ倍である。よって、クロック周波数によって、スイッチング電力とリーク電力の割合が変化するため、回路システムに供給されるクロックの周波数も考慮して、適切なＶｄｄおよびＶｂｂを設定することが望ましい。これにより、消費電力は一層低減される。通常、クロック周波数が高くなると、スイッチング電力の割合が増えるため、スイッチング電力を減らす方向の電圧設定（V0側の設定）にするのが有効である。
【００６９】
第１から第３実施形態で説明したように、使用する（動作電源を供給する）メモリブロック数および論理回路（プロセッサ）数によって、動作電源電圧および基板電源電圧を適切に制御する。これにより、回路システム（ＬＳＩ）のアクティブ状態の部分の消費電力を適切に低減することが可能である。
【００７０】
以上、第１から第３実施形態を説明したが、各種の変形例が可能であるのはいうまでもない。例えば、各実施形態において、回路システムの全部を１個の半導体装置（ＬＳＩ）に搭載するか、複数の半導体装置に分けて搭載するかは、応用する構成に応じて適宜設定することが望ましく、各種の組合せが可能である。また、半導体装置に搭載するだけでなく、一部をディスクリート回路で形成することも可能であり、例えば電力制御ユニット（ＰＭＵ）をＬＳＩの外部に設けるなどの変形例が可能である。
【００７１】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００７２】
１０    半導体装置（ＬＳＩ）
１１    メモリユニット
１１Ａ−１１Ｄ    メモリブロック
１２    電源スイッチユニット
１２Ａ−１２Ｆ    電源スイッチ
１３Ａ、１３Ｂ    ゲーティッドクロックバッファ
２１、２１Ａ、２１Ｂ    論理回路（プロセッサ）
２２    動作電源供給回路
２３    基板電源供給回路
２４    制御回路
２５    クロック回路
２６    温度センサ
【図１】
2014052801.tif 000010
【図２】
2014052801.tif 000011
【図３】
2014052801.tif 000012
【図４】
2014052801.tif 000013
【図５】
2014052801.tif 000014
【図６】
2014052801.tif 000015
【図７】
2014052801.tif 000016
【図８】
2014052801.tif 000017
【図９】
2014052801.tif 000018