(57)【要約】【課題】負荷の状態や温度変化に応じて、システムの動作時のリーク電力を低減することが困難であった。【解決手段】半導体チップ１１内にメインＣＰＵ１２に比べて処理能力が低く、消費電力効率が高いサブＣＰＵ１３を設け、このサブＣＰＵ１３により、システムの動作時の電力を制御する。【選択図】    図１
2004280378.tif 000002
【特許請求の範囲】
【請求項１】
半導体チップと、
前記半導体チップに実装され、処理を実行する第１のＣＰＵと、
前記半導体チップに実装され、前記第１のＣＰＵよりピーク性能が低く、電力効率が高い第２のＣＰＵとを具備し、
前記第２のＣＰＵは、負荷を監視し、前記負荷が大きい場合前記第１のＣＰＵにより処理を実行させ、前記負荷が小さい場合、前記第１のＣＰＵに代わり前記処理を実行することを特徴とする半導体装置。
【請求項２】
前記第１、第２のＣＰＵは、複数の動作モードを有することを特徴とする請求項１記載の半導体装置。
【請求項３】
前記第１のＣＰＵと第２のＣＰＵは、リソースを共有することを特徴とする請求項１記載の半導体装置。
【請求項４】
前記第１、第２のＣＰＵは、命令互換のＣＰＵであることを特徴とする請求項１記載の半導体装置。
【請求項５】
前記第２のＣＰＵは、前記第１のＣＰＵの命令セットをエミュレートする機能を有することを特徴とする請求項１記載の半導体装置。
【請求項６】
前記第１のＣＰＵは、複数のＣＰＵからなることを特徴とする請求項１記載の半導体装置。
【請求項７】
前記第２のＣＰＵは、アプリケーション処理の実行時間を検出することにより負荷を監視することを特徴とする請求項１記載の半導体装置。
【請求項８】
前記第２のＣＰＵは、アプリケーション処理の待ち時間を検出することにより負荷を監視することを特徴とする請求項１記載の半導体装置。
【請求項９】
半導体チップと、
前記半導体チップに実装され、処理を実行する第１のＣＰＵと、
前記半導体チップに実装され、前記第１のＣＰＵよりピーク性能が低く、電力効率が高い第２のＣＰＵと、
前記半導体チップの温度を検出する検出部とを具備し、
前記第２のＣＰＵは、前記検出部により検出された温度に応じて負荷の判定基準を変化させ、この判定基準に基づき前記負荷が大きい場合前記第１のＣＰＵにより処理を実行させ、前記負荷が小さい場合、前記第１のＣＰＵに代わり前記処理を実行することを特徴とする半導体装置。
【請求項１０】
前記検出部は、
リーク電流源と、
直流電流源又は交流電流源と、
前記リーク電流源の出力と前記直流電流源又は交流電流源の出力とを比較し、温度情報を出力する比較器と
を具備することを特徴とする請求項９記載の半導体装置。
【請求項１１】
前記リーク電流源は、直並列接続された複数のトランジスタを含み、制御信号により、これらトランジスタの導通を制御することにより、リーク電流量を制御し、前記直流電流源は、直並列接続された複数のトランジスタを含み、制御信号により、これらトランジスタの導通を制御することにより、直流電流量を制御することを特徴とする請求項１０記載の半導体装置。
【請求項１２】
前記リーク電流源は、直並列接続された複数のトランジスタを含み、これらトランジスタは測定時以外、制御信号によりオフされ、前記直流電流源は、直並列接続された複数のトランジスタを含み、これらトランジスタは測定時以外、制御信号によりオフされることを特徴とする請求項１０記載の半導体装置。
【請求項１３】
前記検出部は、リーク電流源及び交流電流源を含み、
前記交流電流源は、
システムクロック信号を受ける論理回路と、
前記論理回路に直列接続されたフィルタ回路と、
前記フィルタ回路の出力信号及び前記リーク電流源の出力信号が供給される比較器とを有し、
前記フィルタ回路及び比較器は温度情報をデジタル値として出力するＡＤ変換回路を構成することを特徴とする請求項９記載の半導体装置。
【請求項１４】
前記検出部は、
論理回路と、
前記論理回路に直列接続されたリーク電流源とを有し、
前記論理回路はパルス信号のデューティ比を変えることが可能な可変パルス発生器を有し、この可変パルス発生器の出力信号に応じて温度情報を出力することを具備することを特徴とする請求項９記載の半導体装置。
【請求項１５】
前記可変パルス発生器は、
前記第２のＣＰＵから供給される参照値を保持するレジスタと、
クロック信号をカウントするカウンタと、
前記レジスタからの前記参照値と前記カウンタからのカウント値を比較し、前記パルス信号を出力する比較器と
を具備することを特徴とする請求項１４記載の半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）と称する例えばプロセッサを含む比較的規模の大きな半導体集積回路の低電力化に関する。
【０００２】
【従来の技術】
半導体集積回路（以下、ＬＳＩと略称する）の低電力化は、それを用いた製品の低電力化を実現するために重要である。今後一層微細化が進み、ＬＳＩの集積度が向上した場合、単位面積当たりの発熱量が増加することが予想される。このため、回路の信頼性の観点からも、ＬＳＩの低電力化の要求が一層高まることが予想される。
【０００３】
ＣＭＯＳ型ＬＳＩの消費電力は、ダイナミック成分とリーク成分に分類される。現在の加工技術において、微細化に伴うリークは少なく、ダイナミック電力が大半である。しかし、今後一層微細加工技術が進むに従いリーク電力が急増することが予想されている。また、ＣＭＯＳ型トランジスタの各種加工パラメータの最適化において、動作速度とリーク電力は一般的に正相関を有している。すなわち、動作速度を向上させることでリーク電力が増大する。さらに、リーク電力は温度依存性を有しており、温度の上昇に伴ってリークが増大することが知られている。
【０００４】
低電力を実現する手法として、システムの時空間的な処理負荷の変動に応じて処理性能を制御することにより低電力化を実現する、所謂「システム低電力化」の手法が有効である。この方法の基本的なアイデアは、低負荷の場合、システムを部分的に低処理能力、低消費電力なモードで動作させることにより、不要な電力消費を抑制することである。
【０００５】
システム低電力の主なアプローチは、次に示す２つに大別される。
【０００６】
（１）低負荷時に低速（低電力）モードへ遷移。例：ＣｒｕｓｏｅＴＭプロセッサ
（２）無負荷（アイドル時）に停止モードへ遷移。例：ＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）
このような、システム低電力化を実現するためには、システム負荷を監視し、動作モードを選択して動作を指示するという処理を行なう電力制御（以下、ＰＭと略称する）が必要である。
【０００７】
ＬＳＩの集積度向上に伴い、システム低電力化が単一のＬＳＩ内で適用可能となってきた。つまり、従来は、パーソナルコンピュータのように多くの部品から構成されるシステムをその構成部品のひとつであるＣＰＵチップで制御するようなシステム低電力化が一般的であった。しかし、近時、制御する側、及びされる側とも単一のＬＳＩ内に集積可能となってきている。
【０００８】
尚、システム低電力化に関連する技術としては、次のようなものがある。
【０００９】
熱効率の異なるＲＩＳＣ型プロセッサからなるメインＣＰＵと、ＣＩＳＣ型プロセッサからなるサブＣＰＵをオン／オフ制御することにより低電力を図る技術（例えば、特許文献１参照）。
【００１０】
負荷に応じてＣＰＵの動作モードを変更することにより、消費電力を最適化する技術（例えば、特許文献２参照）。
【００１１】
さらに、処理（タスク）を並列化できるマルチプロセッサにおいて、各プロセッサに最適な動作モード（電源電圧、クロック信号の周波数）を設定することにより、消費電力を最適化する技術（例えば、非特許文献１参照）。
【００１２】
また、処理性能の異なる２つのプロセッサを用意し、要求性能に応じて２つのプロセッサを切り替える手法（例えば、非特許文献２参照）。
【００１３】
【特許文献１】
特開平７−３２５７８８号公報
【００１４】
【特許文献２】
特開２００２−４１１６０号公報
【００１５】
【非特許文献１】
“Ｅｎｅｒｇｙ−Ａｗａｒｅ  Ｒｕｎｔｉｍｅ  Ｓｃｈｅｄｕｌｉｎｇ  ｆｏｒ  Ｅｍｂｅｄｄｅｄ  Ｍｕｌｔｉｐｒｏｃｅｓｓｏｒ  ＳＯＣｓ”  ＩＥＥＥ  Ｄｅｓｉｇｎ  ＆  Ｔｅｓｔ  ｏｆ  Ｃｏｍｐｕｔｅｒｓ，  ２００１
【００１６】
【非特許文献２】
“兎・亀プロセッサの切替えによる低消費エネルギー化の提案”  ＴＥＣＨＮＩＣＡＬ  ＲＥＰＯＲＴ  ＯＦ  ＩＥＩＣＥ．  ＶＬＤ２００２−１６１，  ＩＣＤ２００２−２２６（２００３−０３），  ｐ．  ３７−４２
【００１７】
【発明が解決しようとする課題】
ところで、従来のシステム低電力化手法は、１つのＣＰＵで動作するソフトウェアの処理により、ＰＭ処理を行なうことが一般的であった。この理由は、ＰＭ処理が複雑な判定処理を必要とするため、ソフトウェアで実現するほうが容易且つ現実的だからである。また、ＣＰＵの処理負荷を把握するため、同じＣＰＵを活用することが自然だからである。
【００１８】
ＣＰＵは回路規模が大きいため、それ自体消費電力が大きい。また、高速で動作する必要があるため、リーク電力が大きくなるという傾向がある。今後微細加工が進むと、この傾向は一層顕著になることが予想されている。この結果、ソフトウェア処理でＰＭを行なう場合、ＣＰＵがアプリケーション処理に直接関与しないＰＭで消費される電力が大きくなる。
【００１９】
一方、アプリケーションの要求から、ＣＰＵのピーク性能の向上の要求がさらに高まっている。ＣＰＵのピーク性能を高めるため、例えばキャッシュメモリを搭載すると言うように、ハードウェアリソースを追加する手法が多く用いられている。しかし、これもリーク電力を増大させる要因となり問題を悪化させている。
【００２０】
このように、従来は、処理能力が高く消費電力効率が低いＣＰＵにより、ＰＭを行なっているため、システムの動作時のリーク電力を低減することが困難であった。
【００２１】
また、複数のＣＰＵを備えたシステムにおいて、ＣＰＵを切替える場合、負荷の状態を正確に検出することが重要である。しかし、従来、負荷の状態が十分に監視されていなかった。さらに、半導体チップの温度変化に対応したリーク電流も十分に考慮されていなかった。そこで、負荷の状態や温度変化に応じて、システムの消費電力効率を十分に向上することが要望されている。
【００２２】
本発明は、上記課題を解決するためになされたものであり、その目的とするところは、負荷の状態や温度変化に応じて、システム動作時のリーク電力を低減することが可能な半導体装置を提供しようとするものである。
【００２３】
【課題を解決するための手段】
本発明の半導体装置は、上記課題を解決するため、半導体チップと、前記半導体チップに実装され、処理を実行する第１のＣＰＵと、前記半導体チップに実装され、前記第１のＣＰＵよりピーク性能が低く、電力効率が高い第２のＣＰＵとを具備し、前記第２のＣＰＵは、負荷を監視し、前記負荷が大きい場合前記第１のＣＰＵにより処理を実行させ、前記負荷が小さい場合、前記第１のＣＰＵに代わり前記処理を実行する。
【００２４】
さらに、本発明の半導体装置は、半導体チップと、前記半導体チップに実装され、処理を実行する第１のＣＰＵと、前記半導体チップに実装され、前記第１のＣＰＵよりピーク性能が低く、電力効率が高い第２のＣＰＵと、前記半導体チップの温度を検出する検出部とを具備し、前記第２のＣＰＵは、前記検出部により検出された温度に応じて負荷の判定基準を変化させ、この判定基準に基づき前記負荷が大きい場合前記第１のＣＰＵにより処理を実行させ、前記負荷が小さい場合、前記第１のＣＰＵに代わり前記処理を実行する。
【００２５】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。
【００２６】
（第１の実施形態）
図１は、本発明の第１の実施形態に係り、非対称なマルチＣＰＵを利用したＳｏＣの一例を示している。
【００２７】
図１において、半導体チップ１１内には、メインＣＰＵ１２、サブＣＰＵ１３、入出力制御部（Ｉ／Ｏ）１４、タイマ１５、割込みコントローラ１６、図示せぬメモリ等が設けられている。これらメインＣＰＵ１２、サブＣＰＵ１３、入出力制御部（Ｉ／Ｏ）１４、タイマ１５、割込みコントローラ１６は、システムバス１７により接続されている。メインＣＰＵ１２はスリープモードと、ランモード、及びピーク性能で動作するスプリントモードを有し、サブＣＰＵ１３及び入出力制御部１４は、スリープモードとランモードを有している。ランモードは、スプリントモードに比べて低速動作である。タイマ１５、及び割込みコントローラ１６はランモードを有している。
【００２８】
サブＣＰＵ１３は、ＰＭユニットを構成し、且つ、低負荷時において、サブＣＰＵ１３は、メインＣＰＵ１２のアプリケーション処理を実行可能とされている。サブＣＰＵ１３は、メインＣＰＵ１２に比べてコンパクトな構成とされている。すなわち、メインＣＰＵ１２は、例えばキャッシュメモリ、多段のパイプラインを有し、さらに、分岐予測機能を有している。これに対して、サブＣＰＵ１３は、例えばキャッシュメモリ及び分岐予測機能を持たず、パイプラインの段数もメインＣＰＵ１２に比べて小さく設計されている。このため、サブＣＰＵ１３は、メインＣＰＵ１２に比べて消費電力効率が高く設計されている。つまり、メインＣＰＵ１２は、ピーク性能が高く、消費電力効率が低く、サブＣＰＵ１３は、ピーク性能がメインＣＰＵ１２に比べて低く、消費電力効率が高く設計されている。
【００２９】
図２は、メインＣＰＵ１２とサブＣＰＵ１３の性能と消費電力の関係を各動作モードに対応して示している。
【００３０】
メインＣＰＵ１２は、例えばスプリントモードにおいて、クロック周波数が最大周波数Ｆｍａｘとされ、ボディ電圧Ｖｂｂが印加される。また、ランモードにおいて、クロック周波数が最大周波数の１／２とされ、ボディ電圧Ｖｂｂは印加されない。さらに、スリープモードにおいて、クロック周波数が停止され、ボディ電圧Ｖｂｂも印加されない。
【００３１】
また、メインＣＰＵ１２の消費電力は、スプリントモードにおいて、リーク電力が例えば１００ｍＷ、ダイナミック電力が１００ｍＷ、総電力が２００ｍＷであり、ランモードにおいて、リーク電力が例えば２０ｍＷ、ダイナミック電力が５０ｍＷ、総電力が７０ｍＷであり、スリープモードにおいて、リーク電力が例えば１０ｍＷ、ダイナミック電力が０ｍＷ、総電力が１０ｍＷである。
【００３２】
サブＣＰＵ１３は、例えばランモードにおいて、クロック周波数が最大周波数の１／４とされ、スリープモードにおいて、クロック周波数が停止される。サブＣＰＵ１３は、ボディ電圧Ｖｂｂは印加されない。
【００３３】
また、サブＣＰＵ１３の消費電力は、ランモードにおいて、リーク電力が例えば４ｍＷ、ダイナミック電力が１０ｍＷ、総電力が１４ｍＷであり、スリープモードにおいて、リーク電力が例えば１ｍＷ、ダイナミック電力が０ｍＷ、総電力が１ｍＷである。
【００３４】
図３（Ａ）〜（Ｄ）は、サブＣＰＵにより、ＰＭを実現するための例を示している。図３（Ａ）〜（Ｄ）において、リソースとしては、上記キャッシュメモリ、分岐予測、命令メモリ等が含まれる。
【００３５】
図３（Ａ）は、基本構成を示すものであり、図１において説明したように、システムのリソースを変える構成を示している。すなわち、サブＣＰＵ１３に接続されるリソース２１は、メインＣＰＵ１２に接続されるリソース２２に比べて小規模、且つ低リークな構成とされている。
【００３６】
図３（Ｂ）は、メインＣＰＵ１２とサブＣＰＵ１３とにコンパチブルな命令セットを使用する場合を示している。この場合、命令メモリなどのリソース２３を最適化することにより、メインＣＰＵ１２とサブＣＰＵ１３はリソース２３を共有することができる。このような構成とすることにより、メインＣＰＵ１２とサブＣＰＵ１３のオーバーヘッドを軽減することが可能である。
【００３７】
図３（Ｃ）は、メインＣＰＵが使用する命令セットを実行できるエミュレーション機能を有するサブＣＰＵ１３を使用する場合を示している。このような構成とすることにより、サブＣＰＵ１３は、メインＣＰＵ１２が使用するプログラムを共有することが可能となり、図３（Ｂ）の構成と同様に、リソース２３を共有することができる。
【００３８】
図３（Ｄ）は、図３（Ｂ）を変形したものであり、メインＣＰＵ１２が複数設けられている場合を示している。このように、複数のメインＣＰＵ１２を設けることにより、ピーク性能を向上することが可能である。
【００３９】
図４は、図１、図３（Ａ）乃至（Ｄ）に示す第１の実施形態の基本構成における動作の一例を示している。前述したように、メインＣＰＵ１２は、スリープモードとスプリントモードを有し、サブＣＰＵ１３は、負荷の状態を監視し、負荷の大きさに応じてメインＣＰＵとサブＣＰＵの動作モードを切り替え制御する。
【００４０】
図４において、例えばメインＣＰＵ（Ｍ−ＣＰＵ）１２により、例えばマルチメディア処理等のアプリケーション（ＡＰＰ）が処理開始される（Ｓ１）。先ず、負荷が最も重い最悪の条件でも処理が可能となるように、メインＣＰＵ１２はスプリントモードにより処理される（Ｓ２）。次いで、例えばメインＣＰＵ１２のアプリケーション処理が中断される（Ｓ３）。すると、サブＣＰＵ１３により、アプリケーション処理が終了したかどうかが判断される（Ｓ４）。この結果、アプリケーション処理が終了した場合、メインＣＰＵ１２の動作が終了される。
【００４１】
一方、処理が終了していない場合、サブＣＰＵ（Ｓ−ＣＰＵ）１３により、電力制御処理（ＰＭ）が開始される（Ｓ５）。すなわち、サブＣＰＵ１３により、負荷が監視される（Ｓ６）。この状態において、負荷が大きい場合、前述したと同様に、メインＣＰＵ１２によりアプリケーション処理が再開され（Ｓ８）、この後、メインＣＰＵ１２によりアプリケーション処理がスプリントモードで実行され（Ｓ９）、次いで、処理が中断される（Ｓ１０）。
【００４２】
また、負荷が中程度と判断された場合、メインＣＰＵ１２によりアプリケーション処理が再開され（Ｓ１１）、この後、メインＣＰＵ１２によりアプリケーション処理がランモードで実行され（Ｓ１２）、次いで、処理が中断される（Ｓ１３）。
【００４３】
さらに、負荷が小さいと判断された場合、サブＣＰＵ１３によりアプリケーション処理が再開され（Ｓ１４）、この後、メインＣＰＵ１３によりアプリケーション処理がランモードで実行され（Ｓ１５）、次いで、処理が中断される（Ｓ１６）。
【００４４】
また、負荷が極めて小さいと判断された場合、サブＣＰＵ１３が一定期間スリープモード（休止）とされる（Ｓ１７）。
【００４５】
上記各処理の中断、及びスリープモードの後、サブＣＰＵ１３により、再度、アプリケーション処理が終了したかどうかが判断され（Ｓ４）、この結果に応じて上記動作が繰り返される。
【００４６】
上記負荷監視には、例えば２つの方法が考えられる。第１の方法は、アプリケーション処理の実行時間を負荷の指標とする方法であり、第２の方法は、アプリケーション処理の待ち時間を負荷の指標とする方法である。
【００４７】
第１の方法において、アプリケーションプログラムの構成としては、アプリケーションプログラムの主要処理の例えば先頭の１箇所にＰＭ起動関数（ＰＭ処理を起動するための関数）をコールする命令を設定する。図４に示すアプリケーション処理開始時（Ｓ１）において、図１に示すタイマ１５を起動する。アプリケーション処理中にＰＭ起動関数がコールされると、図４に示すステップＳ３，Ｓ１０，Ｓ１３，Ｓ１６において、アプリケーション処理が中断され、サブＣＰＵ１３によるＰＭ処理に移行する。すなわち、ステップＳ６の負荷監視動作において、サブＣＰＵ１３は、タイマ１５の値を読み込み、前回のＰＭ処理で読み取った値との差を計算する。ステップＳ６において計算したタイマの時間差は、同一の処理手順に要したアプリケーション処理の実行時間に相当する。したがって、この値が大きい場合、アプリケーション処理の負荷が大きいこととなる。
【００４８】
一方、第２の方法において、アプリケーションプログラムの構成としては、アプリケーションプログラムとＰＭ処理との両方からアクセス可能なグローバル変数を設定し、図１に示すＩ／Ｏ１４からのデータ入力を待つ場合、グローバル変数をインクリメントするようにプログラミングする。図４に示すアプリケーション処理開始時（Ｓ１）において、一定時間間隔毎に割り込みが係るように、タイマ１５と割り込みコントローラ１６を設定する。アプリケーション処理中に割り込みが発生すると、図４に示すステップＳ３，Ｓ１０，Ｓ１３，Ｓ１６のように、アプリケーション処理が中断され、サブＣＰＵ１３によるＰＭ処理に移行する。すなわち、ステップＳ６の負荷監視動作において、サブＣＰＵ１３は、グローバル変数を読み出す。このグローバル変数は、特定の期間内にアプリケーション処理がデータの入力待ちになっていた無駄時間を計測している。このため、読み出したグローバル変数の値が大きい場合、アプリケーションプログラムは待機時間が長かったこととなるため、相対的に負荷が小さいこととなる。
【００４９】
上記第１の実施形態によれば、半導体チップ１１内にメインＣＰＵ１２に比べてピーク性能が低く、電力効率が高いサブＣＰＵ１３を組み込み、このサブＣＰＵ１３により負荷の状態を監視し、低負荷時はメインＣＰＵ１２に代えてサブＣＰＵ１３によりアプリケーション処理を実行している。このため、高性能な機能が必要な場合以外は、消費電力効率が高いサブＣＰＵ１３により処理されているため、システムの動作時における消費電力を大幅に低減することが可能である。
【００５０】
図５は、１つのＣＰＵによりＰＭ処理を行う従来の半導体装置のフローチャートを示している。図５に示す従来の半導体装置の場合、負荷の大、小、極小に応じて、１つのＣＰＵがスプリントモード（Ｓ８−Ｓ１０）、ランモード（Ｓ２１−２３）、休止モード（Ｓ１７）に設定される。
【００５１】
図６は、従来と第１の実施形態のＣＰＵの動作の一例を示しており、横軸は時間軸を示し、動作モードが時間的に遷移する状況を模式的に示している。図６（Ａ）に示す従来の場合、１つのＣＰＵが負荷の状態に応じてスプリントモード（Ｓｐ）、ランモード（Ｒ）、休止モード（Ｓｌ）に設定される。これに対して、図６（Ｂ）に示す第１の実施形態の場合、メインＣＰＵとサブＣＰＵの２つのＣＰＵが負荷の状態に応じてスプリントモード（Ｓｐ）、ランモード（Ｒ）、休止モード（Ｓｌ）に切り替わっていることが分かる。
【００５２】
図６（Ａ）に示す従来の制御動作は、図７のメインＣＰＵ１２で示された曲線のスプリントモード、ランモード、スリープモードに対応する点を結んだ折れ線状の制御になる。これに対して、図６（Ｂ）に示す第１の実施形態の場合、メインＣＰＵ１２のスプリントモード、ランモード、及びサブＣＰＵ１３のランモード、スリープモードに対応する点を結んだ折れ線状の制御になる。このため、平均的な負荷が小さく、低い相対性能で、処理可能な期間が長いアプリケーションでは、消費電力を抑制することができる。
【００５３】
図８は、従来と第１の実施形態の平均消費電力を示している。このように、各ビジーの比率において、本実施形態の平均消費電力が従来のそれより低いことが分かる。このため、第１の実施形態によれば、平均消費電力を従来に比べて１／３乃至２／３に低減することができる。
【００５４】
尚、第１の実施形態の場合、コンピュータのアーキテクチャによりメインＣＰＵ１２とサブＣＰＵ１３の性能を変えた。しかし、この手法に替え、半導体製造上のライブラリを変えることも可能である。例えばサブＣＰＵ１３を構成する加算器やラッチ回路をメインＣＰＵ１２のそれらに比べて低速、低消費電力動作にチューニングするなどの手法を適用することも可能である。すなわち、メインＣＰＵ１２を高速ライブラリで構成し、サブＣＰＵ１３をメインＣＰＵ１２に比べて、低速、且つ低リークライブラリで構成するようにすることも可能である。
【００５５】
（第２の実施形態）
図９は、本発明の第２の実施形態を示している。図９において、図１と同一部分には同一符号を付し、異なる部分についてのみ説明する。
【００５６】
前述したように、半導体素子のリーク電流は温度上昇に従って増加する。また、温度を一定とした場合、ゲート長が微細な半導体素子程リーク電流が大きい。このため、半導体装置の消費電力を管理する上で半導体チップの温度を考慮することで、より最適化することができる。そこで、第２の実施形態は、半導体チップ１１内に温度検出部３１を配置し、この温度検出部３１の出力信号に応じて半導体装置の消費電力を管理する。
【００５７】
消費電力の管理において、物理的なケルビン温度はそれ程重要ではなく、リーク電流対動作電流の比（以下、リーク比と称す）が重要である。このため、温度検出部３１はケルビン温度を測定するのではなく、リーク比を測定することにより、相対的に温度を検出している。
【００５８】
図１０は、温度検出部３１の一例を示している。この温度検出部３１は、リーク電流源３２、トランジスタの直流電流又は動作電流源３３、及び比較器３４を有している。比較器３４は、リーク電流源３２からのリーク電流とトランジスタの直流電流又は動作電流源３３からの電流を比較し、リーク比を測定する。この測定されたリーク比としての温度は、サブＣＰＵ１３に供給される。サブＣＰＵ１３はこの測定された温度に応じて動作モードを切り替えるアルゴリズムを適応する。
【００５９】
図１１は、温度検出部３１の他の例を示している。この温度検出部３１は、例えば直列接続された論理回路３５とリーク電流源３６とから構成されており、論理回路３５の動作に応じたリーク比を測定する。この測定されたリーク比はサブＣＰＵ１３に供給される。サブＣＰＵ１３はこの測定されたリーク比に応じて動作モードを切り替えるアルゴリズムを適応する。
【００６０】
図１２は、温度とリーク電流の関係を示している。温度検出部３１は、温度が例えばほぼ５０℃において、リーク電流とＤＣ電流（オン電流）又はＡＣ電流が等しくなるように設計する。
【００６１】
図１３（Ａ）（Ｂ）は、リーク電流源３２の一例を示し、図１３（Ｃ）（Ｄ）は直流電流源の一例を示している。図１３（Ａ）は、常時オフ状態とされたＰチャネルＭＯＳトランジスタ３２Ａにより構成されている。図１３（Ｂ）は、ＰチャネルＭＯＳトランジスタ３２Ｂにより構成されている。このトランジスタ３２Ｂのゲートには電源Ｖｄｄが供給され、ソースには制御信号が供給される。この制御信号は、測定時に電源電圧Ｖｄｄとされ、休止時は接地電位とされる。図１３（Ｃ）は、ゲートが接地され、常時オン状態とされたＰチャネルＭＯＳトランジスタ３３Ａにより構成されている。図１３（Ｄ）は、ＰチャネルＭＯＳトランジスタ３３Ｂにより構成されている。このトランジスタ３３Ｂのソースには制御信号が供給され、ゲートは接地されている。この制御信号は測定時に電源電圧Ｖｄｄとされ、休止時は接地電位とされる。リーク電流源を構成するトランジスタ３２Ａ、３２Ｂのチャネル幅とＤＣ電流源を構成するトランジスタ３３Ａ、３３Ｂのチャネル幅は、デバイスの特性によって決まり、現在最先端とされるゲート長０．０９〜０．１８μｍでは、一般にＤＣ電流の方がリーク電流よりはるかに多いため、前者の方が大きくされている。また、図１３（Ｂ）（Ｄ）に示す回路構成の場合、休止時はトランジスタがオフとされるため、不要な電流をカットすることができる。
【００６２】
図１４は、ＡＣ（交流）電流源３３の一例を示している。このＡＣ電流源３３は、例えば直列接続されたインバータ回路３３Ｃ、抵抗３３Ｄ、キャパシタ３３Ｅにより構成されている。インバータ回路３３Ｃの入力端には例えばシステムクロック信号ＣＬＫが供給される。インバータ回路３３Ｃの出力信号は、抵抗３３Ｄ及びキャパシタ３３Ｅからなるフィルタ回路を介して比較器３４に供給される。比較器３４はリーク電流源３２の出力信号とフィルタ回路の出力信号を比較する。これらフィルタ回路及び比較器３４は温度情報をデジタル信号として出力する１ビットのＡＤ変換回路を構成している。
【００６３】
図１５は、リーク電流源３２、ＤＣ電流源３３、又は動作電流源の他の例を示している。図１５（Ａ）は、複数のＰチャネルＭＯＳトランジスタを直並列接続し、これらトランジスタを制御信号により導通制御することにより、出力電流を制御している。図１５（Ｂ）は、並列接続された複数のＰチャネルＭＯＳトランジスタを制御信号により導通制御することにより、電流能力を制御できる。
【００６４】
このような構成とすることにより、電流源の能力を可変とする。このため、温度（リーク比）の変化点の設定を変えることが可能となる。また、デバイス特性の異なる製造技術を用いた場合も同一の回路を使用することができる。
【００６５】
図１６は、温度検出部３１の具体的な回路の一例を示すものであり、図１０と同一部分には同一符号を付している。この回路は、全てＮチャネルＭＯＳトランジスタにより構成されている。ＤＣ電流源３３は直列接続された複数のトランジスタ３３Ｃ、３３Ｄ、３３Ｅ、及びこれらトランジスタに並列接続されたトランジスタ３３Ｆにより構成されている。トランジスタ３３Ｃ、３３Ｄ、３３Ｅのゲートにはトランジスタを常時オンさせるためのハイレベル信号（Ｖｄｄ）が供給され、トランジスタ３３Ｃ、３３Ｆのドレインにイネーブル信号ＥＮが供給される。このイネーブル信号ＥＮは温度測定時にハイレベル（Ｖｄｄ）とされる。また、直流電流を増加させる場合、トランジスタ３３Ｆがオンとされる。また、リーク電流源３２はトランジスタ３２Ｃにより構成され、比較器３４は直列接続されたインバータ回路ＩＶ１、ＩＶ２により構成されている。
【００６６】
上記構成において、温度が高い場合、リーク電流源３２に流れる電流が多くなり、比較器３４の入力端がローレベルとなる。このため、比較器３４の出力信号はローレベルとなる。一方、温度が低い場合、リーク電流が減少するため、比較器３４の入力端はハイレベルに充電される。このため、比較器３４の出力信号はハイレベルとなる。
【００６７】
図１７は、図１１に示す論理回路とリーク電流源を用いた温度検出部３１の例を示している。この温度検出部３１において、論理回路３５は、可変パルス発生器４１Ａ、ＰチャネルＭＯＳトランジスタ４１Ｂ、比較器４１Ｃ、ドライバ４１Ｄにより構成されている。リーク電流源３６はチャネル幅の大きなＮチャネルＭＯＳトランジスタ４１Ｅにより構成されている。可変パルス発生器４１Ａは、ＰチャネルＭＯＳトランジスタ４１Ｂのゲートに接続されている。ＰチャネルＭＯＳトランジスタ４１ＢとＮチャネルＭＯＳトランジスタ４１Ｅとの接続ノードには比較器４１Ｃの一方入力端が接続されている。この比較器４１Ｃの他方入力端は比較器４１Ｃの出力端に接続されている。この出力端にはドライバ４１Ｄが接続されている。このドライバ４１Ｄの出力端にはカウンタ４２が接続されている。このカウンタ４２はドライバ４１Ｄから出力されるパルス信号をカウントする。
【００６８】
図１８は、前記可変パルス発生器４１Ａの一例を示している。この可変パルス発生器４１Ａは、参照レジスタ５１、カウンタ５２、比較器５３により構成されている。参照レジスタ５１は、例えばサブＣＰＵ１３から供給されるパルスデューティを示す参照値を保持する。カウンタ５２は、イネーブル信号ＥＮに応じてクロック信号ＣＬＫをカウントする。このカウンタは、オール“１”となった場合、“０”にリセットされる。比較器５３は、カウンタ５２のカウント値が参照レジスタ５１に保持されている参照値より大きい場合、データ“１”を出力し、小さい場合データ“０”を出力する。すなわち、この可変パルス発生器４１Ａは周波数の低いパルス信号を出力する。
【００６９】
図１９は、図１７、１８の動作を示している。図１９（Ａ）は温度が高い場合、すなわちリーク電流が多い場合を示し、図１９（Ｂ）は温度が低い場合、すなわちリーク電流が少ない場合を示している。
【００７０】
図１７において、可変パルス発生器４１Ａからは、参照値に応じたデューティのパルス信号ＮＡが出力される。ＰチャネルＭＯＳトランジスタ４１Ｂはこのパルス信号ＮＡのローレベルの期間に接続ノードＮＢを充電する。温度が高い場合、リーク電流源３６を流れる電流が多い。このため、接続ノードＮＢの充電電荷は、図１９（Ａ）に示すように、速く放電される。したがって、出力ノードＮＣからは、ハイレベルの周期が短いパルス信号が出力される。
【００７１】
一方、温度が低い場合、リーク電流源３６を流れる電流が少なくなる。このため、接続ノードＮＢの電荷が保持され、接続ノードＮＢはハイレベルを維持する。したがって、出力ノードＮＣからハイレベルの周期が長いパルス信号が出力される。
【００７２】
上記出力ノードＮＣから出力されるパルス信号を例えばカウンタ４２によりカウントすることにより、温度を検出することができる。このカウンタ４２のカウント値は、前記サブＣＰＵ１３に供給される。
【００７３】
図２０は、第２の実施形態の動作を示すものであり、上記温度検出部３１の出力信号を用いた動作の一例を示している。図２０において、図４と同一部分には同一符号を付している。
【００７４】
図２０において、サブＣＰＵ１３は、メインＣＰＵ１２の処理が中断されると、温度検出部３１の出力信号に応じて半導体チップの温度を監視する（Ｓ３１）。さらに、サブＣＰＵ１３は負荷の大小を監視する（Ｓ３２）。この後、温度が基準値より高く、負荷が基準値より小さいかどうかが判別される（Ｓ３３）。すなわち、高温ではリーク電流が大きいメインＣＰＵ１２を起動するペナルティが大きい。このため、負荷が小さい場合、メインＣＰＵ１２の起動を最小にするきめ細かいＰＭ処理によって、こうした複合条件下での消費電力を一層抑制することが期待できる。したがって、温度が高く負荷が小さい場合は、電力制御（ＰＭ）の起動間隔が短縮され、負荷の判定基準値が増加される（Ｓ３５）。
【００７５】
また、前記ステップＳ３３の条件を満たさない場合、温度が基準値より低く、負荷が基準値より大きいかどうか判定される（Ｓ３４）。すなわち、低温ではリーク電流が大きいメインＣＰＵ１２を起動するペナルティが相対的に小さく、負荷が大きい場合は、サブＣＰＵ１３の電力制御（ＰＭ）を起動するオーバーヘッドが相対的に大きくなる。このため、こうした複合条件下では、サブＣＰＵ１３の起動を抑制したＰＭ処理によって消費電力を一層抑制することができる。したがって、ＰＭの起動間隔が増加され、負荷の判定基準値が減少される（Ｓ３６）。
【００７６】
前記ステップＳ３４の条件を満たさない場合、ＰＭの起動間隔、及び負荷の判定基準値は変更されない。このようにして、ＰＭの起動間隔、及び負荷の判定基準値が制御された後、第１の実施形態と同様に負荷の大小が判定され、判定せれた負荷に応じてメインＣＰＵ１２、及びサブＣＰＵ１３の動作モードが制御される。
【００７７】
上記第２の実施形態によれば、半導体チップ１１内に温度検出部３１を設け、この温度検出部３１により検出された温度に応じて、ＰＭの起動間隔、及び負荷の判定基準値を制御し、この状態において、負荷の大小に応じてメインＣＰＵ１２、及びサブＣＰＵ１３の動作モードを制御している。したがって、半導体チップ１１内の温度に応じて第１、第２のＣＰＵ１２、１３の動作を切り替えることにより、リーク電流を最小限に抑えることができ、且つ処理能力の低下を抑えることができる。
【００７８】
尚、上記第１、第２の実施形態において、メインＣＰＵ、サブＣＰＵはスプリントモード、ランモード、スリープモードのような２乃至３の動作モードを有する場合について説明した。しかし、これに限定されるものではなく、３つ以上の動作モードを有することも可能である。すなわち、離散的な複数の動作モードに限らず、連続的な動作モードを有するＣＰＵに第１、第２の実施形態を適用することも可能である。
【００７９】
その他、本発明は、上記各実施形態に限定されるものではなく、発明の要旨を変えない範囲において種々変形実施可能なことは勿論である。
【００８０】
【発明の効果】
以上、詳述したように本発明によれば、負荷の状態や温度変化に応じて、システムの動作時のリーク電力を低減することが可能な半導体装置を提供できる。
【図面の簡単な説明】
【図１】第１の実施形態に係る半導体装置を示す構成図。
【図２】メインＣＰＵとサブＣＰＵの性能と消費電力の関係を各動作モードに対応して示す図。
【図３】第１の実施形態におけるメインＣＰＵとサブＣＰＵの変形例を示す図。
【図４】第１の実施形態の動作の一例を示すフローチャート。
【図５】従来の半導体装置の動作を示すフローチャート。
【図６】従来と第１の実施形態の動作を概略的に示す図。
【図７】従来と第１の実施形態の相対性能と消費電力の関係を概略的に示す図。
【図８】従来と第１の実施形態のビジーの比率と平均消費電力の関係を示す図。
【図９】本発明の第２の実施形態に係る半導体装置を示す構成図。
【図１０】温度検出部の一例を示す構成図。
【図１１】温度検出部の他の例を示す構成図。
【図１２】温度とリーク電流の関係を示す図。
【図１３】リーク電流源及びＤＣ又は動作電流源の一例を示す回路図。
【図１４】ＡＣ電流源の一例を示す回路図。
【図１５】リーク電流源及びＤＣ又は動作電流源の他の例を示す回路図。
【図１６】温度検出部の具体的な一例を示す回路図。
【図１７】論理回路とリーク電流源を用いた温度検出部の具体例を示す回路図。
【図１８】可変パルス発生器の一例を示す構成図。
【図１９】図１７、図１８の動作を示す波形図。
【図２０】第２の実施形態の動作の一例を示すフローチャート。
【符号の説明】
１１…半導体チップ、１２…メインＣＰＵ、１３…サブＣＰＵ、２１、２２、２３…リソース、３１…温度検出部、３２…リーク電流源、３３…直流又は動作電流源、３４…比較器、３５…論理回路、３６…リーク電流源、４１Ａ…可変パルス発生器。
【図１】
2004280378.tif 000003
【図２】
2004280378.tif 000004
【図３】
2004280378.tif 000005
【図４】
2004280378.tif 000006
【図５】
2004280378.tif 000007
【図６】
2004280378.tif 000008
【図７】
2004280378.tif 000009
【図８】
2004280378.tif 000010
【図９】
2004280378.tif 000011
【図１０】
2004280378.tif 000012
【図１１】
2004280378.tif 000013
【図１２】
2004280378.tif 000014
【図１３】
2004280378.tif 000015
【図１４】
2004280378.tif 000016
【図１５】
2004280378.tif 000017
【図１６】
2004280378.tif 000018
【図１７】
2004280378.tif 000019
【図１８】
2004280378.tif 000020
【図１９】
2004280378.tif 000021
【図２０】
2004280378.tif 000022