(57)【要約】【課題】複数のモジュールを有する半導体装置において、分散管理をベースにした電力管理をおこないつつ、チップ全体としての許容電力も管理しながら、各モジュールが適切な性能を発揮できるようにする。【解決手段】各モジュールに対して所定の消費電力値を定義する。この所定の消費電力値は、複数のモジュールの許容電力値を考慮して定義される量である。各モジュールは、所定の消費電力値と実際に消費する電力値の差分を、余剰電力分として、他のモジュールに通知する。各モジュールは、他のモジュールからの余剰電力分を使用しなくても、所定の消費電力値を超えない分のデータ処理をおこなえるようにしておき、デッドロックを回避する。他のモジュールから余剰電力分を通知されたときには、所定の消費電力値分とその通知された余剰電力分の電力をデータ処理のために消費できる電力量とする。【選択図】        図１
2005338986.tif 000002
【特許請求の範囲】
【請求項１】
データを処理する第１のモジュールと第２のモジュールとを有するデータ処理装置において、
前記第１のモジュールと前記第２のモジュールとにそれぞれ所定の消費電力値を定め、
前記第１のモジュールは、前記所定の消費電力値とデータ処理のために消費される電力値との差分をとり、その差分を余剰電力分として前記第２のモジュールに通知し、
前記第２のモジュールは、前記第１のモジュールから前記余剰電力分の通知を受けないときには、前記所定の消費電力値を消費できる電力としてデータ処理をおこない、
前記第２のモジュールは、前記第１のモジュールから前記余剰電力分の通知を受けたときには、前記所定の消費電力値分と通知された前記余剰電力分との和を消費できる電力としてデータ処理をおこなうことを特徴とするデータ処理装置。
【請求項２】
前記余剰電力分の前記第２のモジュールへの通知は、電力を消費する前の予定消費電力に基づいておこなうことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記第１のモジュールから前記余剰電力分の前記第２のモジュールへの通知は、複数の第２のモジュールに対しておこなわれ、
前記第２のモジュールは、前記所定の消費電力値分と複数の第１のモジュールから通知された余剰電力分の電力との和を消費できる電力としてデータ処理をおこなうことを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記第１のモジュールと前記第２のモジュールに定められる所定の消費電力値が変化することを特徴とする請求項１記載のデータ処理装置。
【請求項５】
前記第１のモジュールと前記第２のモジュールに定められる所定の消費電力値の総和は変化しないことを特徴とする請求項４記載のデータ処理装置。
【請求項６】
第１のプロセッサと第２のプロセッサとを有する半導体装置において、
前記第１のプロセッサと前記第２のプロセッサとに命令を実行するための所定の消費電力値を定め、
前記１のプロセッサは、前記所定の消費電力値と命令実行のために消費される電力値との差分をとり、その差分を余剰電力分として前記第２のプロセッサに通知し、
前記第２のプロセッサは、前記第１のプロセッサから前記余剰電力分の通知を受けないときには、前記所定の消費電力値を消費できる電力として命令実行をおこない、
前記第２のプロセッサは、前記第１のプロセッサから前記余剰電力分の通知を受けたときには、前記所定の消費電力値分と通知された前記余剰電力分との和を消費できる電力として命令実行をおこなうことを特徴とする半導体装置。
【請求項７】
前記余剰電力分の前記第２のプロセッサへの通知は、
命令デコードまたは命令発行時におこなうことを特徴とする請求項６記載の半導体装置。
【請求項８】
前記第２のプロセッサは、前記第１のプロセッサから余剰電力分を通知されたときには、
命令デコードまたは命令発行時にその通知された余剰電力分の電力を考慮して命令発行制御をおこなうことを特徴とする請求項６記載の半導体装置。
【請求項９】
前記第１のプロセッサと前記第２のプロセッサにそれぞれ定められる所定の消費電力値は、１サイクルごとに消費する電力値として定められることを特徴とする請求項６記載の半導体装置。
【請求項１０】
前記第１のプロセッサと前記第２のプロセッサにそれぞれ定められる所定の消費電力値は、所定の複数値のサイクルごとに消費する電力値として定められることを特徴とする請求項６記載の半導体装置。
【請求項１１】
前記第１のプロセッサと前記第２のプロセッサにそれぞれ定められる前記所定の消費電力値が、プログラムにより変更できることを特徴とする請求項６記載の半導体装置。
【請求項１２】
前記第１のプロセッサと前記第２のプロセッサが互いに余剰電力を通知しあう一つのグループとして定義され、
前記半導体装置内で前記グループが複数構成されていることを特徴とする請求項６記載の半導体装置。
【請求項１３】
前記第１のプロセッサは、余剰電力通知する余剰電力通知部を備え、
前記第２のプロセッサは、前記余剰電力通知部から余剰電力の通知を受ける電力制御部とを備え、
前記グループの中の前記第１プロセッサと前記第２のプロセッサの配置において、
前記余剰電力通知部と前記電力制御部とが近接配置されていることを特徴とする請求項１２記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、および、半導体装置に係り、動作状態によって消費電力の変化する集積回路、特に、ＣＭＯＳ回路により複数のプロセッサが構成されている半導体装置に用いて好適であって、半導体チップ全体での消費電力をおさえながら、各プロセッサの性能を発揮しうる半導体装置に関する。
【背景技術】
【０００２】
携帯電話を始めとする携帯機器市場の拡大により、低電力でも動作しうる半導体チップの重要性が増してきている。半導体チップが動作するにあたっては、最大消費電力、平均消費電力、待機時電力、チップ上の電力分布は、いずれも低いレベルに抑えられることが望ましい。
【０００３】
最大消費電力は、半導体チップへ供給すべき電力を決定する要因となる。電力供給能力が最大消費電力より小さければ、電圧降下が発生しチップが誤動作する。このため、最大消費電力の大きなチップは、当然のこととして電力供給能力が高い電源システムを要求し、携帯機器のコストや重量を押し上げることになる。また、最大消費電力は、パッケージやシステムの放熱能力を設計するときの要因となる。最大消費電力が大きいときには、放熱能力の高いパッケージやシステムを用意しなければならず、このようなパッケージやシステムもまた携帯機器のコストや重量を押し上げることになる。
【０００４】
次に、平均消費電力は、携帯機器の電池寿命または電池重量に直接影響する。平均消費電力が大きければ電池寿命が短くなる。そのため、電池寿命を長くしようとすると電池重量が増大するという問題点が発生する。
【０００５】
次に、待機時電力は、携帯機器不使用時に電源を遮断できない、あるいは、通常は遮断しないで使用するシステムにおいて重要となる。例えば、携帯電話では不使用時に電源を切ってしまうと着信ができない。このため携帯電話では着信時に直ちに動作できるように常に待機状態にして使うことが多い。このときの消費電力が大きいと待ち受け時間の維持できる時間が短い携帯電話になってしまう。
【０００６】
また、チップ上の電力分布はチップの電源線や電源ピンの設計および放熱能力に影響を与える。局所的に消費電力が大きくなると、そこへの電力供給のための電源線や電源ピンの電流を通す能力が不十分であれば、電圧降下が起こり誤動作する。また、局所的に発熱が大きくなり放熱能力が不十分であれば温度が上がり誤動作する原因ともなる。
【０００７】
集積回路の電力管理に関しては、例えば、特許文献１の「集積回路上のホット・スポットを回避するための論理回路および方法」には、集積回路全体を複数の機能ユニットに分割し、機能ユニット毎に発熱を監視することにより局所的な発熱を許容量以下に抑える技術を開示している。発熱は、消費電力がジュール熱となることによって発生するので、発熱を許容量以下に抑えることは、間接的に局所的最大消費電力すなわちチップ上の電力分布を許容量以下に抑えていることになる。したがって、これにより、過熱による障害の可能性を低下させ、チップ全体での電力消費を減少させることができるとしている。。
【０００８】
また、特許文献２記載の「マイクロプロセッサの機能ユニット用の自己電力監査制御回路」では、機能ユニット毎に電力感知回路を設け、電力消費が所定の量を超えるとその機能ユニットを低電力モードで動作させるものである。
【０００９】
【特許文献１】特開平１０−０６９３３０号公報
【００１０】
【特許文献２】特開平１０−０９１２９８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
一般に、半導体チップ上の電力を管理する場合には、各機能モジュール（特許文献１、特許文献２では、「機能ユニット」）の消費する電力を集中的に管理する考え方と、特許文献１や特許文献２のように局所的に分散管理する考え方がある。
【００１２】
近年では、プロセスの微細化により１チップに複数のプロセッサコアや各種ＩＰなどのモジュールを多数搭載するようになってきている。そのため、消費する電力を集中的に管理する場合には、多数のモジュールに電力を分配する必要があり、この結果、考慮すべき消費電力情報が多くなり信号伝播距離も長くなるため、制御信号生成が複雑かつ時間のかかる処理となってしまう。
【００１３】
また、様々なＩＰを組み合わせてシステムＬＳＩを作成する場合は、システムＬＳＩ作成毎に、全てのＩＰの電力的特徴を知っている設計者が集中管理のための電力制御モジュールを設計しなければならない。多数のＩＰを搭載した場合、この設計は極めて困難である。
【００１４】
上記背景技術の項であげた電力に関して考慮すべき事項とあげたチップ上の電力分布は、局所的な消費電力管理のみが重要となる。遠くに配置されているモジュールの消費電力が低いからといって自らの消費電力を上げることはできない。逆に周囲のモジュールの消費電力が低い場合は、自らの消費電力を上げることができる。したがって、集中管理によって、遠くのモジュールの消費電力まで考慮することは、チップ上の電力分布の観点からすると、過剰でむだな管理であるということもできる。
【００１５】
上記特許文献１と特許文献２は、電力を機能ユニットという単位で局所的に管理するものであった。これらの技術では、機能ユニットでは、消費電力が適切に抑えられるが、チップ全体の消費電力については考慮されていない。すなわち、各モジュールに本来の最大消費電力までの消費電力を許容すると、チップ全体の最大消費電力をオーバするといった事態が発生する。
【００１６】
反面、これとトレードオフで、チップ全体の最大消費電力を抑えるという観点から、各モジュールに本来の最大消費電力より低い許容電力を設定すると各モジュールは本来の最大消費電力を消費するような最高性能では動作できないことになる。
【００１７】
しかも、通常は、各モジュールは平均電力程度で動作しているので、一部のモジュールが設定された許容電力で動作しても全体としては設定した許容電力の総和よりずっと小さい電力で動作することになりがちであり、各モジュールが消費電力の足かせにより性能を発揮できない恐れがある。したがって、各モジュールが、他のモジュールの電力消費も考慮に入れて、自らの性能を十分に発揮できるように電力消費をおこなえるような発想が必要である。
【課題を解決するための手段】
【００１８】
本発明のデータ処理装置の電力管理においては、データを処理するモジュールを複数有するデータ処理装置において、各モジュールに対して所定の消費電力値を定義する。この所定の消費電力値は、複数のモジュールの許容電力値を考慮して定義される量である。例えば、２モジュールに対して許容電力値が与えられるているときには、所定の消費電力値は、その半分になる。
【００１９】
そして、各モジュールは、所定の消費電力値と実際にデータ処理のために使用される分の差分をとり、それを余剰電力分として、他のモジュールに通知する。
【００２０】
また、各モジュールは、他のモジュールからの余剰電力分を使用しなくても、所定の消費電力値を超えない分のデータ処理をおこなえるようにしておく。他のモジュールから余剰電力分を通知されたときには、所定の消費電力値分とその通知された余剰電力分の和が最大限データ処理のために使用できる電力となる。
【００２１】
また、これをプロセッサに適用したときの電力管理においては、プロセッサが命令を実行するための所定の消費電力値を定義しておき、命令を実行するための消費される電力であって、所定の消費電力値と実際に命令実行のときの消費電力の差分を、余剰電力分として、他のプロセッサに通知する。
【００２２】
各プロセッサは、他のプロセッサからの余剰電力分を使用しなくても、所定の消費電力値を超えない分の命令実行をおこない、他のプロセッサから余剰電力分を通知されたときには、所定の消費電力値分とその通知された余剰電力分の和の電力を命令実行のために消費できる電力であるとする。
【００２３】
この余剰電力分の通知は、命令デコード時、あるいは、命令発行時におこなわれる。
【００２４】
この所定の消費電力値は、１サイクルごとに消費する電力値として定められてもよいし、所定の複数値のサイクルごとに消費する電力値として定められてもよい。
【発明の効果】
【００２５】
本発明によれば、各モジュールが適切な性能を発揮できるような半導体装置を提供することができる。
【発明を実施するための最良の形態】
【００２６】
〔本発明の電力管理方法の概要と考え方〕
先ず、具体的な実施形態を説明する前に、本発明の電力管理方法の概要と考え方について説明する。
【００２７】
本発明の電力管理方法は、各モジュールが自らの消費電力を決定する管理方法を基本とし、各モジュールが周囲のモジュールの消費電力を考慮して自らの消費電力を決定する方法を採用している。すなわち、周囲のモジュールと自らの消費電力の総和を、許容電力以下に抑えるものである。
【００２８】
各モジュールには、所定の消費電力値が定められ、その所定の消費電力値を超えない分は、余剰電力分として他のモジュールが使ってもよい電力値と考える。各モジュールは、他のモジュールの余剰電力分の電力をもらったときには、所定の消費電力値と余剰電力分の電力を消費して動作することが可能である。
【００２９】
また、他のモジュールの余剰電力分をもらえないときでも、各モジュールに与えられる所定の消費電力値分だけは、優先的に割り当てられ、他のモジュールの状態如何によらず、その電力値分を超えない範囲で動作することを可能とする。
【００３０】
ここで、消費電力の管理単位時間が比較的長い場合は、周囲のモジュールの消費電力に反応して自らの消費電力を決定しても、管理単位時間内で平均すれば消費電力を許容電力以下に抑えることが可能である。一方、管理単位時間が比較的短く実際の消費電力に反応したのでは間に合わない場合は、周囲のモジュールから電力消費予定量を通知する信号を受け取り、この情報に基づいて自分の消費電力を決定すればよい。
【００３１】
例えば、マイクロプロセッサは命令をデコードして実行可能か否かを判断して実行する。デコードすると、その命令の消費電力を予定消費電力として把握することができる。この予定消費電力を、他のプロセッサに通知すると同時に、周囲のプロセッサから予定消費電力の情報を受け取ることができる。これらの予定消費電力に基づいてどの命令を発行するか、あるいは、全く発行しないかというように命令の発行を制御すれば、周囲のモジュールと自らの消費電力の総和を許容電力以下に抑えることができる。
【００３２】
上記のプロセッサの命令の実行と消費電力の関係の例に示したように、一般に消費電力の大きい処理がおこなわれることを事前に予測することは可能であり、予測に基づいて常に消費電力の総和を許容電力以下に抑えることは可能である。ただし、発明が解決しようとする課題の項で紹介した集中管理のように、チップ内の全てのモジュールの情報を参照するようにしては、考慮すべき電力情報が多くなり信号伝播距離も長くなって、高速動作時に制御が間に合わない可能性が高い。このため、本発明では、各モジュールが周囲のモジュールの消費電力のみを考慮するといった制御の簡素化をおこなうことにより、モジュールが高速動作時する場合あっても予測制御をおこなうことができる。
【００３３】
プロセッサの場合には、消費電力は、命令デコードの結果判明する命令の種類に依存する使用する実行リソース、命令発行制御の結果判明する命令発行の可否、命令実行の結果判明するデータ依存のゲートスイッチング確率等によって決定される。高速な制御に使えるのは早期に判明する情報であり、正確な制御には全ての情報が必要である。すなわち、高速な制御と正確な制御はトレードオフの関係にある。データ依存のゲートスイッチング確率などによる消費電力の増減などは、実行時には正確に把握するのは困難である。したがって、高速に制御するためには、命令の種類、命令発行に着目してプロセッサの予定消費電力を見積もればよい。
【００３４】
また、一般に、プロセッサに許容電力を設定する場合には、設定によって命令がずっと発行できない状態、すなわち、デッドロック状態にならないように設定する必要がある。特に、本発明では、他のモジュールの余剰電力分をもらって動作するため、他のモジュールの余剰電力分をもらえない場合に動作しない、あるいは、余剰電力分をもらおうとしているモジュール自体が停止して、デッドロック状態になるという事態を回避しなければならない。
【００３５】
そのために、本発明のモジュールは、他のモジュールの余剰電力分をもらえないときでも、所定の消費電力値分だけは、優先的に割り当てられ、他のモジュールの状態如何によらず、その電力値分を超えない範囲で動作できるようにする。
【００３６】
そして、各プロセッサは、常に自分自身がデッドロック状態にならない範囲で周囲のプロセッサに許容電力と消費予定電力の差分の余剰電力を提供するか、デッドロック状態にならないために必要な電力を必ず確保できるサイクルが入るようにすることが必要である。
【００３７】
例えば、複数命令発行可能なプロセッサで１命令の発行では、そのプロセッサに与えられる許容電力を超えることがない場合には、許容電力の範囲内で１命令を発行できるのでデッドロック状態にはならない。
【００３８】
一方、そのプロセッサに与えられる許容電力を超える命令がある場合には、その命令は発行できずデッドロック状態になる。しかしながら、許容電力を設定するスコープをＮ（Ｎは、２以上の整数）サイクルとして、Ｎサイクルの許容電力を設定すると、Ｎサイクルの許容電力を超える命令がなければデッドロック状態にはならない。例えば、２サイクルの許容電力を１サイクルの最大電力、すなわち、１サイクル当りの平均許容電力を最大消費電力の半分とすると、１サイクル分、ストール（命令停止）すれば、最大電力を消費する命令があっても発行できる。このように、許容電力を設定しても、許容電力設定のスコープを許容電力に応じて時間軸方向に十分広げれば、デッドロック状態にならないように制御することが可能となる。
【００３９】
二つのプロセッサコアが協調して消費電力の総和に許容電力を設定する場合には、それぞれが許容電力の半分で動き続けることができるならば、それぞれが許容電力の半分までの使用権を優先的に確保し、一方の消費電力が許容電力の半分に達しない場合は、他方が消費電力の総和が許容電力になるまで使用できるようにすれば、デッドロック状態にはならない。
【００４０】
逆に、二つのプロセッサに対する許容電力の半分では動き続けることができない場合は、交互に許容限電力の半分を超える電力の消費を認めることにより、二つのプロセッサに対する許容電力を守りつつデッドロック状態を回避することができる。
【００４１】
〔実施形態１〕
以下、本発明に係る第一の実施形態を、図１ないし図３を用いて説明する。
図１は、本発明の第一の実施形態に係る半導体装置の構成図である。
図２は、第一の実施形態の電力管理部の制御真理値表である。
図３は、第一の実施形態の電力管理部の制御論理を表す図である。
【００４２】
本実施形態は、最大消費電力の同等な二つのプロセッサＣＰＵＬとＣＰＵＲとが互いに相手に予定消費電力を通知し、毎サイクル消費電力の総和が許容電力以下になるように、それぞれのプロセッサが自らの消費電力を管理する例である。また、ここでの１サイクルは、１命令に対応しているものとする。
【００４３】
本実施形態では、二つのプロセッサに対する許容電力は、最大消費電力の総和の半分とし、それぞれのプロセッサが最大消費電力の半分でデッドロック状態にならずに動作し続けられるものとする。ここで、最大消費電力とは、二つのプロセッサが全く独立に動作したときの理論上の消費電力である。
【００４４】
また、二つのプロセッサＣＰＵＬとＣＰＵＲは、２命令同時発行可能なスーパスカラプロセッサで１命令発行時の最大消費電力が２命令同時発行時の最大消費電力の半分とする。そして、１命令発行時の最大消費電力を２とする。そのときの２命令同時発行時の最大消費電力は４になる。
【００４５】
それぞれのプロセッサの予定消費電力として、１，２，３，４の４段階のレベルがあるとする。このとき、二つのプロセッサの最大消費電力の総和は８であり、二つのプロセッサに対する許容電力は、最大消費電力の総和の半分としたことから、二つのプロセッサに対する許容電力は４である。
【００４６】
ここで、各プロセッサは、デッドロック状態を回避するため、二つのプロセッサに対する許容電力の４の半分の２まで、優先権を確保して動作できることにする。すなわち、各プロセッサは、相手のプロセッサの実行状態によらず、必ず、２のレベルの電力分までは消費することができる。
【００４７】
相手のプロセッサの予定消費電力が１の場合には、自分が優先権を与えられた値を超える３まで消費電力を増やしても、二つのプロセッサの消費電力が４になるので、二つのプロセッサに対する許容電力を守ることができる。また、相手のプロセッサが命令発行しない場合には、自分が二つのプロセッサに与えられた許容電力４を全て使うことができる。
【００４８】
以下、図１に示すＣＰＵＬの動作を例にとり説明する。
【００４９】
本発明のプロセッサＣＰＵＬは、通常の命令デコード部ＰＤＥＣＬに、電力デコード部ＰＤＥＣＬおよび電力管理部ＰＭＬを追加して、拡張デコード部ＥＤＥＣＬとして構成されている。
【００５０】
プロセッサＣＰＵＬの電力デコード部ＰＤＥＣＬは、命令フェッチ部ＩＦＬから命令コードＯＰＬを受け取り、予定消費電力を判定してＰＣＮＴＬとして出力し、さらに、予定消費電力が１の場合にＰＬＯＷＬをアサートする。
【００５１】
命令デコード部ＤＥＣＬも命令コードＯＰＬを受け取り、電力以外の要因による命令発行の可否を判断して先行命令の発行が可能ならばＧＯＬ０を、後行命令の発行も可能ならばＧＯＬ１をアサートする。このプロセッサは、２命令同時発行可能なスーパスカラプロセッサとしたが、ソフトウェア上先に動作するのが先行命令、後に動作するのが後行命令である。また、命令実行に必要な様々な制御信号ＣＮＴＬを出力する。プロセッサＣＰＵＲの電力デコード部ＰＤＥＣＲおよび命令デコード部ＤＥＣＲも同様にＰＣＮＴＲ、ＰＬＯＷＲ、ＧＯＲ０、ＧＯＲ１、および、ＣＮＴＲを出力する。
【００５２】
なお、通常、各命令の予定消費電力が各命令をデコードすることによって判明するのに対し、命令発行の可否は、先行命令のリソース占有状態、実行結果の可用性等に依存して決定されるため判明に時間がかかる。そのため、ＧＯＬ０、ＧＯＬ１、ＧＯＲ０、ＧＯＲ１は、時間のかかる信号であることに注意しておく。
【００５３】
電力管理部ＰＭＬは、上述の４段階の予定消費電力ＰＣＮＴＬ、相手（すなわち、ＣＰＵＲ）の予定消費電力が１であることを示すＰＬＯＷＲ、電力以外の要因での相手の先行命令の命令発行の可否を示すＧＯＲ０、および、電力以外の要因での自分の後行命令の命令発行の可否を示すＧＯＬ１とから、許容電力以下で発行できる命令を判断して、最終的な命令発行制御をおこなう。消費電力が２までは、優先権が確保されていたので、先行命令は相手の電力状態に依らずに発行できる。したがって、電力管理部ＰＭＬは後行命令の発行可否を判断し、発行可能な場合はＰＧＯＬ１をアサートすることになる。
【００５４】
そして、命令実行部ＥＸＥＬ０およびＥＸＥＬ１はそれぞれ命令発行の可否信号ＧＯＬ０およびＰＧＯＬ１がアサートされたら命令実行制御信号ＣＮＴＬに従って命令を実行する。プロセッサＣＰＵＲの電力管理部ＰＭＲも同様に最終的な命令発行制御をおこない、発行可能な場合はＰＧＯＲ０およびＰＧＯＲ１をアサートする。そして、命令実行部ＥＸＥＲ０およびＥＸＥＲ１はそれぞれ命令発行の可否信号ＧＯＲ０およびＰＧＯＲ１がアサートされたら命令実行制御信号ＣＮＴＲに従って命令を実行する。
【００５５】
ここで、電力管理部ＰＭＬの発行制御真理値は、図２の表に示されるようになる。
【００５６】
入力信号の値に応じてＴｙｐｅ１〜４までの４通りの場合と、それらの補空間（それ以外の場合）のＴｙｐｅ５がある。
【００５７】
Ｔｙｐｅ１は、予定消費電力ＰＣＮＴＬが２以下であるため、相手の状態ＰＬＯＷＲおよびＧＯＲ０に依らずに後行命令を発行する。
【００５８】
Ｔｙｐｅ２では予定消費電力ＰＣＮＴＬが３であるが、相手がＰＬＯＷＲをアサートしていて予定消費電力が１以下であり、相手の余剰電力が１以上になって、予定消費電力の総和が許容電力を超えないので後行命令を発行する。
【００５９】
Ｔｙｐｅ３および４では、予定消費電力ＰＣＮＴＬが３および４であるが、相手がＧＯＲ０をアサートしていないので、相手は命令を発行せず消費電力は０となり余剰電力が２となって、予定消費電力の総和が許容電力を超えないので後行命令を発行する。
【００６０】
Ｔｙｐｅ５は、上記４通りの補空間であるが、上記４通りで命令発行できる場合を尽くしているので、Ｔｙｐｅ５は命令発行できない全ての場合に相当する。
【００６１】
この電力管理部ＰＭＬの発行制御の真理値表を制御論理であらわすと図３に示されるようになる。ＰＣＮＴＬでは、信号値０＊，１０，１１に表現すべき値２以下、３，４を対応させている。＊は０，１いずれでも良いことを表す。図のように生成に時間のかかるＧＯＲ０およびＧＯＬ１からのパスは、論理段数１段で済み高速である。
【００６２】
〔実施形態２〕
以下、本発明に係る第二の実施形態を、図４ないし図６を用いて説明する。
図４は、本発明の第二の実施形態に係る半導体装置の構成図である。
図５は、第二の実施形態の電力管理部の制御真理値表である。
図６は、第二の実施形態の電力管理部の制御論理を表す図である。
【００６３】
本実施形態は、最大消費電力の同等な二つのプロセッサＣＰＵＬとＣＰＵＲとが互いに相手に予定消費電力を通知し、二つのプロセッサにおける２サイクル単位の消費電力の総和が許容電力以下になるように、それぞれのプロセッサが自らの消費電力を管理する例である。また、実施形態１同様、ここでの１サイクルは、１命令に対応しているものとする。
【００６４】
二つのプロセッサに対する許容電力は、２サイクル単位で最大消費電力の総和の半分とする。それぞれのプロセッサは１命令ずつ実行するスカラプロセッサとし、１命令の最大消費電力は、２であるとする。
【００６５】
それぞれのプロセッサの２サイクル単位での予定消費電力としても１，２の２段階のレベルがあるとする。このとき、２サイクル単位の二つのプロセッサに対する最大消費電力の総和は８、２サイクル単位の二つのプロセッサに対する許容電力は４である。
【００６６】
デッドロック状態を回避するため、各プロセッサは、２サイクル単位で消費電力２まで、優先権を確保して動作できることにする。
【００６７】
相手のプロセッサの予定消費電力が１、かつ、１サイクル前の消費電力が０ならば２サイクル単位の消費電力が１以下であるため、自らは優先権を与えられた値を超える３まで、２サイクル単位の消費電力を増やしても、許容電力を守ることができる。また、相手のプロセッサが２サイクル目で命令発行できない場合であり、かつ、１サイクル前の消費電力が０または１ならば、自らは４または３まで２サイクル単位の消費電力を増やしても、許容電力を守ることができる。
【００６８】
以下、図４に示すＣＰＵＬを例にとり説明する。
【００６９】
プロセッサＣＰＵＬの電力デコード部ＰＤＥＣＬは、命令フェッチ部ＩＦＬから命令コードＯＰＬを受け取り、予定消費電力を判定してＰＣＮＴＬとして出力し、さらに予定消費電力が１の場合にＰＬＯＷＬをアサートする。
【００７０】
命令デコード部ＤＥＣＬも命令コードＯＰＬを受け取り、電力以外の要因による命令発行の可否を判断して命令発行が可能ならばＧＯＬをアサートする。また、命令実行に必要な様々な制御信号ＣＮＴＬを出力する。プロセッサＣＰＵＲの電力デコード部ＰＤＥＣＲおよび命令デコード部ＤＥＣＲも同様に、命令フェッチ部ＩＦＲから命令コードＯＰＲを受け取り、ＰＣＮＴＲ、ＰＬＯＷＲ、ＧＯＲ、およびＣＮＴＲを出力する。
【００７１】
プロセッサＣＰＵＬの電力管理部ＰＭＬは、２サイクル単位での予定消費電力ＰＣＮＴＬ、相手の予定消費電力が１であることを示すＰＬＯＷＲ、電力以外の要因での自分および相手（すなわち、ＣＰＵＲ）の命令発行の可否を示すＧＯＬおよびＧＯＲ、前のサイクルの電力消費を示すＰＳＴＬおよびＰＳＴＲとから、許容電力以下で発行できる命令を判断して、最終的な命令発行制御をおこない、発行可能な場合はＰＧＯＬをアサートする。
【００７２】
そして、命令実行部ＥＸＥＬはＧＯＬがアサートされたら命令実行制御信号ＣＮＴＬに従って命令を実行する。プロセッサＣＰＵＲの電力管理部ＰＭＲも同様に最終的な命令発行制御を行い、発行可能な場合はＰＧＯＲをアサートする。そして、命令実行部ＥＸＥＲはＧＯＲがアサートされたら命令実行制御信号ＣＮＴＲに従って命令を実行する。
【００７３】
ここで、電力管理部ＰＭＬの発行制御真理値表は、図２の表に示されるようになる。
【００７４】
入力信号の値に応じてＴｙｐｅ１〜７までの７通りの場合と、それらの補空間（それ以外の場合）のＴｙｐｅ８がある。
【００７５】
Ｔｙｐｅ１は、予定消費電力ＰＣＮＴＬが１で前サイクルの消費電力が１以下であるため、２サイクル単位で優先的に確保されている消費電力の２以下となり、相手の状態ＰＬＯＷＲおよびＧＯＲに依らずに命令を発行する。
【００７６】
Ｔｙｐｅ２では、予定消費電力ＰＣＮＴＬが１で、相手がＰＬＯＷＲをアサートしていて予定消費電力が１以下であり、さらに前サイクルの消費電力が０であるため、相手の余剰電力が１となるため、これを使って命令を発行する。
【００７７】
Ｔｙｐｅ３では、予定消費電力ＰＣＮＴＬが１で、相手の前サイクルの消費電力が１以下で、今サイクルはＧＯＲをアサートせず命令を発行しないため、相手の余剰電力が１以上となり、これを使って命令を発行する。
【００７８】
Ｔｙｐｅ４では、予定消費電力ＰＣＮＴＬが２で、前サイクルの消費電力が０であるため、２サイクル単位の予定消費電力が確保している２となり、相手の状態ＰＬＯＷＲおよびＧＯＲに依らずに命令を発行する。
【００７９】
Ｔｙｐｅ５では、予定消費電力ＰＣＮＴＬが２で、前サイクルの消費電力が１であるため、相手の余剰電力が１以上であれば確保している２と合わせて使用可能な電力が３となり命令を発行できる。相手は、ＰＬＯＷＲをアサートしていて予定消費電力が１以下であり、さらに前サイクルの消費電力が０であるため、余剰電力が１となるので命令を発行する。
【００８０】
Ｔｙｐｅ６もＴｙｐｅ５同様相手の余剰電力が１以上であれば命令を発行できる。相手は前サイクルの消費電力が１以下で、今サイクルはＧＯＲをアサートせず命令を発行しないため、余剰電力が１以上となるので命令を発行する。
【００８１】
Ｔｙｐｅ７では、予定消費電力ＰＣＮＴＬが２で、相手の前サイクルの消費電力が０で、今サイクルはＧＯＲをアサートせず命令を発行しないため、相手の余剰電力が２となり、これを使って命令を発行する。
【００８２】
Ｔｙｐｅ８は、上記７通りの補空間であるが、上記７通りで命令発行できる場合を尽くしているので、Ｔｙｐｅ８は命令発行できない全ての場合に相当する。
【００８３】
なお、ＯＵＴＰＵＴの欄のＮＰＳＴＬは、次の２サイクル単位でのＰＳＴＬであることを示す。
【００８４】
この電力管理部ＰＭＬの発行制御の真理値表を制御論理であらわすと図６に示されるようになる。
【００８５】
ＰＣＮＴＬでは、信号値０，１に表現すべき値１，２を対応させている。ＰＳＴＬ，ＰＳＴＲ，ＮＰＳＴＬでは信号値と表現すべき値が一致している。図のように生成に時間のかかるＧＯＲおよびＧＯＬからのパスはそれぞれ論理段数２段および１段で済み高速である。
【００８６】
〔実施形態３〕
以下、本発明に係る第三の実施形態を、図７ないし図９を用いて説明する。
図７は、本発明の第三の実施形態に係る半導体装置の構成図である。
図８は、第三の実施形態の電力管理部の制御真理値表である。
図９は、第三の実施形態の電力管理部の制御論理を表す図である。
【００８７】
本実施形態は、第一の実施形態と同様、最大消費電力の同等な二つのプロセッサＣＰＵＬとＣＰＵＲとが互いに相手に予定消費電力を通知し、毎サイクル消費電力の総和が許容電力以下になるように、それぞれのプロセッサが自らの消費電力を管理する例である。本実施形態では、それぞれのプロセッサは１命令ずつ実行するスカラプロセッサとし、最大消費電力が２の命令を持つものとする。二つのプロセッサに対する許容電力は、最大消費電力の総和の半分とする。デッドロック状態にならずに動作し続けられために、どちらか一方が優先権を得て、優先的に命令を実行しうるサイクルを設ける。
【００８８】
それぞれのプロセッサの予定消費電力を１，２の２段階とする。このとき、二つのプロセッサの最大消費電力の総和は４、二つのプロセッサに対する許容電力は２である。相手の予定消費電力が１の場合は、自らは優先権がなくても許容電力を守りつつ予定消費電力が１の命令を実行することができる。また、相手が命令発行できない場合は、自らは優先権がなくても許容電力２を全て使うことができる。
【００８９】
以下、図７に示すＣＰＵＬを例にとり説明する。
【００９０】
プロセッサＣＰＵＬの電力デコード部ＰＤＥＣＬは、命令フェッチ部ＩＦＬから命令コードＯＰＬを受け取り、予定消費電力を判定してＰＣＮＴＬとして出力し、さらに予定消費電力が１の場合にＰＬＯＷＬをアサートする。命令デコード部ＤＥＣＬも命令コードＯＰＬを受け取り、電力以外の要因による命令発行の可否を判断して命令発行が可能ならばＧＯＬをアサートする。また、命令実行に必要な様々な制御信号ＣＮＴＬを出力する。プロセッサＣＰＵＲの電力デコード部ＰＤＥＣＲおよび命令デコード部ＤＥＣＲも同様にＰＣＮＴＲ、ＰＬＯＷＲ、ＧＯＲ、およびＣＮＴＲを出力する。
【００９１】
電力管理部ＰＭＬは２段階の予定消費電力ＰＣＮＴＬ、相手の予定消費電力が１であることを示すＰＬＯＷＲ、電力以外の要因での自分および相手の命令発行の可否を示すＧＯＬおよびＧＯＲ、優先権を得ている優先サイクルを示すＰＴＫＮＬとから、許容電力以下で発行できる命令を判断して、最終的な命令発行制御を行い、発行可能な場合はＰＧＯＬをアサートする。そして、命令実行部ＥＸＥＬはＧＯＬがアサートされたら命令実行制御信号ＣＮＴＬに従って命令を実行する。
【００９２】
プロセッサＣＰＵＲの電力管理部ＰＭＲも同様に最終的な命令発行制御を行い、発行可能な場合はＰＧＯＲをアサートする。そして、命令実行部ＥＸＥＲはＧＯＲがアサートされたら命令実行制御信号ＣＮＴＲに従って命令を実行する。
【００９３】
ここで、電力管理部ＰＭＬの発行制御真理値表は、図８に示されるようになる。
【００９４】
入力信号の値に応じてＴｙｐｅ１〜３の３通りの場合と、それらの補空間（それ以外の場合）のＴｙｐｅ４がある。
【００９５】
Ｔｙｐｅ１は、優先サイクルを示すＰＴＫＮＬがアサートされている場合で、相手の状態ＰＬＯＷＲおよびＧＯＲ０に依らずに命令を発行する。
【００９６】
Ｔｙｐｅ２では、予定消費電力ＰＣＮＴＬが１で、相手もＰＬＯＷＲをアサートしていて予定消費電力が１以下であり、優先権の如何によらず予定消費電力の総和が許容電力を超えないので命令を発行する。
【００９７】
Ｔｙｐｅ３では、相手がＧＯＲをアサートしていないので、相手は命令を発行せず消費電力は０となり、優先権の如何によらず予定消費電力の総和が許容電力を超えないので命令を発行する。
【００９８】
Ｔｙｐｅ４は、上記３通りの補空間であるが、上記３通りで命令発行できる場合を尽くしているので、Ｔｙｐｅ４は命令発行できない全ての場合に相当する。
【００９９】
この電力管理部ＰＭＬの発行制御の真理値表を制御論理であらわすと図９に示すようになる。
【０１００】
ＰＣＮＴＬでは、信号値０，１に表現すべき値１，２を対応させている。図のように生成に時間のかかるＧＯＲ０およびＧＯＬ１からのパスは論理段数１段で済み高速である。
【０１０１】
〔実施形態４〕
以下、本発明に係る第四の実施形態を、図１０および図１１を用いて説明する。
図１０は、本発明の第四の実施形態に係る半導体装置の構成図である。
図１１は、第四の実施形態の電力管理部の制御真理値表である。
【０１０２】
本実施形態は、最大消費電力の同等なｎ個のプロセッサＣＰＵ０からＣＰＵｎが隣接ＣＰＵに予定消費電力を通知し、毎サイクル消費電力の総和が許容電力以下になるように、それぞれのプロセッサが自らの消費電力を管理する例である。
【０１０３】
図ではｎ個のプロセッサのうち、連続する３個のＣＰＵｘ，ＣＰＵｙ，ＣＰＵｚを示している。中央のＣＰＵｙに着目して動作を定義すれば両端を除くプロセッサの動作を定義できる。両端のプロセッサは一方からのみ余剰電力を分けてもらうことができ、動作は、他のプロセッサのサブセットとなる。あるいは、両端のプロセッサはチップ周辺の電源供給の容易な位置にある可能性が高いので、仮想的に隣のプロセッサが動作していない場合の信号を受け取って同一の動作をさせることも可能である。
【０１０４】
さて、本実施形態では、三つのプロセッサに対する許容電力は、三つの最大消費電力の総和の半分とし、それぞれのプロセッサが最大消費電力の半分でデッドロック状態にならずに動作し続けられるものとする。この条件を満たすために、ｎ個のプロセッサは、２命令同時発行可能なスーパスカラプロセッサで１命令発行時の最大消費電力が２命令同時発行時の最大消費電力の半分とする。そして、１命令発行時の最大消費電力を４とする。そのときの２命令同時発行時の最大消費電力は８になる。
【０１０５】
それぞれのプロセッサの予定消費電力を１〜８の８段階とする。このとき、プロセッサ当りの最大消費電力は８、プロセッサ当りの許容電力は４である。デッドロック状態を回避するため、最大消費電力の半分の４までは優先権を確保して動作できることにする。
【０１０６】
以下、図１０に示すプロセッサＣＰＵｙを例にとり説明する。
【０１０７】
電力デコード部ＰＤＥＣｙは、命令フェッチ部ＩＦｙから命令コードＯＰｙを受け取り、予定消費電力を判定してＰＣＮＴｙとして出力し、さらに予定消費電力が３以下の場合にＰＬＯＷｙＬを、２以下の場合にＰＬＯＷｙＲをアサートする。すなわち、予定消費電力が３のときには、ＰＬＯＷｙＬのみを、予定消費電力が２以下のときには、ＰＬＯＷｙＬおよびＰＬＯＷｙＲの両方をアサートする。
【０１０８】
ＰＬＯＷｙＬおよびＰＬＯＷｙＲは、プロセッサの予定消費電力が低く、余剰電力を左右のプロセッサにまわすことができることを示す。そして、予定消費電力が３のときには、余剰電力１をＣＰＵｚに回し、予定消費電力が２以下のときには、余剰電力１をＣＰＵｘとＣＰＵｚの双方に回すことを示している。対称性を良くするために予定消費電力が３の場合にＰＬＯＷｙＬとＰＬＯＷｙＲを交互にアサートすることもできる。
【０１０９】
命令デコード部ＤＥＣｙも命令コードＯＰｙを受け取り、電力以外の要因による命令発行の可否を判断して先行命令の発行が可能ならばＧＯｙ０を、後行命令の発行も可能ならばＧＯｙ１をアサートする。また、命令実行に必要な様々な制御信号ＣＮＴｙを出力する。プロセッサＣＰＵｘおよびＣＰＵｚも同様である。
【０１１０】
電力管理部ＰＭｙは８段階の予定消費電力ＰＣＮＴｔｙ、左右の隣接プロセッサからの余剰電力が１であることを示すＰＬＯＷｘＬとＰＬＯＷｚＲ、電力以外の要因での左右のプロセッサの先行命令の発行の可否を示すＧＯｘ０とＧＯｚ０、および電力以外の要因での自分の後行命令の発行の可否を示すＧＯｙ１とから、許容電力以下で発行できる命令を判断して、最終的な命令発行制御をおこなう。
【０１１１】
４までは、優先権が確保されていたので、先行命令は相手の電力状態に依らずに発行できる。したがって、電力管理部ＰＭｙは後行命令の発行可否を判断し、発行可能な場合はＰＧＯｙ１をアサートする。そして、命令実行部ＥＸＥｙ０およびＥＸＥｙ１はそれぞれ命令発行の可否信号ＧＯｙ０およびＰＧＯｙ１がアサートされたら命令実行制御信号ＣＮＴｙに従って命令を実行する。
【０１１２】
ここで、電力管理部ＰＭｙの発行制御真理値は、図１１の表に示されるようになる。
【０１１３】
入力信号の値に応じてＴｙｐｅ１〜１２の１２通りの場合と、それらの補空間（それ以外の場合）のＴｙｐｅ１３がある。
【０１１４】
Ｔｙｐｅ１は、予定消費電力ＰＣＮＴＬが４以下であるため、隣接プロセッサの状態に依らずに後行命令を発行する。
【０１１５】
Ｔｙｐｅ２〜５では、予定消費電力ＰＣＮＴＬが５で確保している４では足らず、隣接プロセッサから余剰電力１を融通してもらう必要がある。
【０１１６】
Ｔｙｐｅ２では、左のプロセッサＣＰＵｘに余裕がありＰＬＯＷｘＬがアサートされている。
【０１１７】
Ｔｙｐｅ３では、右のプロセッサＣＰＵｚに余裕がありＰＬＯＷｚＲがアサートされている。
【０１１８】
Ｔｙｐｅ４では、左のプロセッサＣＰＵｘが命令を実行せずＧＯｘ０がアサートされていない。
【０１１９】
Ｔｙｐｅ５では、右のプロセッサＣＰＵｚが命令を実行せずＧＯｚ０がアサートされていない。以上のようにＴｙｐｅ２〜５では左右の少なくとも一方のプロセッサから余剰電力１以上を融通してもらえるので、予定消費電力５が確保でき、後行命令を発行する。
【０１２０】
Ｔｙｐｅ６〜８では、予定消費電力ＰＣＮＴＬが６で確保している４では足らず、隣接プロセッサから余剰電力２を融通してもらう必要がある。
【０１２１】
Ｔｙｐｅ６では、左右のプロセッサＣＰＵｘおよびＣＰＵｚの双方に余裕がありＰＬＯＷｘＬおよびＰＬＯＷｚＲがアサートされている。
【０１２２】
Ｔｙｐｅ７では、左のプロセッサＣＰＵｘが命令を実行せずＧＯｘ０がアサートされていない。
【０１２３】
Ｔｙｐｅ８では、右のプロセッサＣＰＵｚが命令を実行せずＧＯｚ０がアサートされていない。
【０１２４】
以上のようにＴｙｐｅ２〜５では左右のプロセッサから合計で余剰電力２以上を融通してもらえるので、予定消費電力６が確保でき、後行命令を発行する。
【０１２５】
Ｔｙｐｅ９〜１１では、予定消費電力ＰＣＮＴＬが７で確保している４では足らず、隣接プロセッサから余剰電力３を融通してもらう必要がある。Ｔｙｐｅ９では左のプロセッサＣＰＵｘに余裕がありＰＬＯＷｘＬがアサートされ、さらに右のプロセッサＣＰＵｚが命令を実行せずＧＯｚ０がアサートされていない。
【０１２６】
Ｔｙｐｅ１０では、右のプロセッサＣＰＵｚに余裕がありＰＬＯＷｚＬがアサートされ、さらに左のプロセッサＣＰＵｘが命令を実行せずＧＯｘ０がアサートされていない。
【０１２７】
Ｔｙｐｅ１１では、左右のプロセッサＣＰＵｘおよびＣＰＵｚが命令を実行せずＧＯｘ０およびＧＯｚ０がアサートされていない。
【０１２８】
以上のようにＴｙｐｅ９〜１１では、左右のプロセッサから合計で余剰電力３以上を融通してもらえるので、予定消費電力７が確保でき、後行命令を発行する。Ｔｙｐｅ１２では、予定消費電力ＰＣＮＴＬが８で確保している４では足らず、隣接プロセッサから余剰電力４を融通してもらう必要がある。
【０１２９】
左右のプロセッサＣＰＵｘおよびＣＰＵｚが命令を実行せずＧＯｘ０およびＧＯｚ０がアサートされていないため、合計で余剰電力４を融通してもらえるので、予定消費電力８が確保でき、後行命令を発行する。
【０１３０】
Ｔｙｐｅ１３は、上記１２通りの補空間であるが、上記１２通りで命令発行できる場合を尽くしているので、Ｔｙｐｅ１３は命令発行できない全ての場合に相当する。そして、実施形態１〜３と同様、図１１の真理値表から発行制御論理を構成することができる。
【０１３１】
〔実施形態５〕
以下、本発明に係る第五の実施形態を、図１２および図１３を用いて説明する。
図１２は、本発明の第五の実施形態に係る半導体装置の構成図である。
図１３は、第五の実施形態の電力管理部の制御真理値表である。
【０１３２】
本実施形態は、最大消費電力の同等なｍ×ｎ個のプロセッサＣＰＵ００からＣＰＵｍｎが上下左右の隣接ＣＰＵに予定消費電力を通知し、毎サイクル消費電力の総和が許容電力以下になるように、それぞれのプロセッサが自らの消費電力を管理する例である。
【０１３３】
図ではｍ×ｎ個のプロセッサと、連続する３×３個のＣＰＵｓｘ〜ＣＰＵｕｚの接続関係とプロセッサＣＰＵｔｙの詳細とを示している。中央のＣＰＵｔｙに着目して動作を定義すれば周辺を除くプロセッサの動作を定義できる。周辺のプロセッサは内側からのみ余剰電力を分けてもらうことができ、動作は他のプロセッサのサブセットとなる。あるいは、周辺のプロセッサはチップ周辺の電源供給の容易な位置にある可能性が高いので、仮想的に隣のプロセッサが動作していない場合の信号を受け取って同一の動作をさせることも可能である。
【０１３４】
本実施形態では、プロセッサ当りの許容電力は、最大消費電力の半分とし、それぞれのプロセッサが最大消費電力の半分でデッドロック状態にならずに動作し続けられるものとする。この条件を満たすために、ｍ×ｎ個のプロセッサは２命令同時発行可能なスーパスカラプロセッサで１命令発行時の最大消費電力が２命令同時発行時の最大消費電力の半分とする。そして、１命令発行時の最大消費電力を４とする。そのときの２命令同時発行時の最大消費電力は８になる。
【０１３５】
それぞれのプロセッサの予定消費電力は１〜８の８段階とする。このとき、プロセサ当りの最大消費電力は８、プロセッサ当りの許容電力は４である。デッドロック状態を回避するため、最大消費電力の半分の４までは各プロセッサが優先権を確保して動作できる。
【０１３６】
以下、図１２に示すプロセッサＣＰＵｔｙを例にとり説明する。
【０１３７】
プロセッサＣＰＵｔｙの電力デコード部ＰＤＥＣｔｙは、命令フェッチ部ＩＦｔｙから命令コードＯＰｔｙを受け取り、予定消費電力を判定してＰＣＮＴｔｙとして出力し、さらに予定消費電力が３以下の場合にＰＬｔｙＬを、２以下の場合にＰＬｔｙＲを、１以下の場合にＰＬｔｙＵを、０の場合にＰＬｔｙＤをアサートする。すなわち、予定消費電力が３のときには、ＰＬｔｙＬのみを、２以下の場合には、ＰＬｔｙＬとＰＬｔｙＲを、１以下の場合には、ＰＬｔｙＬとＰＬｔｙＲとＰＬｔｙＵを、０の場合には、ＰＬｔｙＬとＰＬｔｙＲとＰＬｔｙＵとＰＬｔｙＤをアサートする。
【０１３８】
ＰＬｔｙＤ、ＰＬｔｙＵ、ＰＬｔｙＲ、およびＰＬｔｙＬは、プロセッサの予定消費電力が低く、余剰電力１をそれぞれ上下左右のプロセッサにまわすことができることを示す。
【０１３９】
命令デコード部ＤＥＣｔｙも命令コードＯＰｔｙを受け取り、電力以外の要因による命令発行の可否を判断して先行命令の発行が可能ならばＧＯｔｙ０を、後行命令の発行も可能ならばＧＯｔｙ１をアサートする。また、命令実行に必要な様々な制御信号ＣＮＴｔｙを出力する。他のプロセッサも同様である。
【０１４０】
電力管理部ＰＭｔｙは８段階の予定消費電力ＰＣＮｔｙ、上下左右の隣接プロセッサからの余剰電力が１であることを示すＰＬｔｙＵ、ＰＬｔｙＤ、ＰＬｔｙＬ、およびＰＬｔｙＲ、電力以外の要因での自分の後行命令の発行の可否を示すＧＯｔｙ１から、許容電力以下で発行できる命令を判断して、最終的な命令発行制御をおこなう。
【０１４１】
４までは優先権が確保されていたので、先行命令は、相手の電力状態に依らずに発行できる。したがって、電力管理部ＰＭｔｙは後行命令の発行可否を判断し、発行可能な場合はＰＧＯｔｙ１をアサートする。そして、命令実行部ＥＸＥｔｙ０およびＥＸＥｔｙ１はそれぞれ命令発行の可否信号ＧＯｔｙ０およびＰＧＯｔｙ１がアサートされたら命令実行制御信号ＣＮＴｔｙに従って命令を実行する。
【０１４２】
ここで、電力管理部ＰＭｔｙの発行制御真理値は、図１３の表を示されるようになる。
【０１４３】
入力信号の値に応じてＴｙｐｅ１〜１６の１６通りの場合と、それらの補空間（それ以外の場合）のＴｙｐｅ１７がある。
【０１４４】
Ｔｙｐｅ１は、予定消費電力ＰＣＮＴｔｙが４以下であるため、隣接プロセッサの状態に依らずに後行命令を発行する。
【０１４５】
Ｔｙｐｅ２〜５では、予定消費電力ＰＣＮＴＬが５であるため確保している４では足らず、隣接プロセッサから余剰電力１を融通してもらう必要がある。
【０１４６】
Ｔｙｐｅ２〜５では、それぞれＰＬｓｙＵ、ＰＬｕｙＤ、ＰＬｔｘＬ、およびＰＬｔｚＲがアサートされ、上下左右のプロセッサＣＰＵｓｙ、ＣＰＵｕｙ、ＣＰＵｔｘ、およびＣＰＵｔｚの少なくとも一つのプロセッサから余剰電力１以上を融通してもらえるので、予定消費電力５が確保でき、後行命令を発行する。
【０１４７】
Ｔｙｐｅ６〜１１では、予定消費電力ＰＣＮＴＬが６であるため確保している４では足らず、隣接プロセッサから余剰電力２を融通してもらう必要がある。Ｔｙｐｅ６〜１１ではＰＬｓｙＵ、ＰＬｕｙＤ、ＰＬｔｘＬ、およびＰＬｔｚＲのうち少なくとも二つがアサートされ、上下左右のプロセッサＣＰＵｓｙ、ＣＰＵｕｙ、ＣＰＵｔｘ、およびＣＰＵｔｚのうち少なくとも二つのプロセッサから、余剰電力を合計２以上融通してもらえるので、予定消費電力６が確保でき、後行命令を発行する。
【０１４８】
Ｔｙｐｅ１２〜１５では、予定消費電力ＰＣＮＴＬが７であるため確保している４では足らず、隣接プロセッサから余剰電力３を融通してもらう必要がある。
【０１４９】
Ｔｙｐｅ１２〜１５では、ＰＬｓｙＵ、ＰＬｕｙＤ、ＰＬｔｘＬ、およびＰＬｔｚＲのうち少なくとも３つがアサートされ、上下左右のプロセッサＣＰＵｓｙ、ＣＰＵｕｙ、ＣＰＵｔｘ、およびＣＰＵｔｚのうち少なくとも３つのプロセッサから、余剰電力を合計３以上融通してもらえるので、予定消費電力７が確保でき、後行命令を発行する。
【０１５０】
Ｔｙｐｅ１６では、予定消費電力ＰＣＮＴＬが８であるため確保している４では足らず、隣接プロセッサから余剰電力４を融通してもらう必要がある。Ｔｙｐｅ１６ではＰＬｓｙＵ、ＰＬｕｙＤ、ＰＬｔｘＬ、およびＰＬｔｚＲのが全てアサートされ、上下左右のプロセッサＣＰＵｓｙ、ＣＰＵｕｙ、ＣＰＵｔｘ、およびＣＰＵｔｚの全てから、余剰電力を合計４融通してもらえるので、予定消費電力８が確保でき、後行命令を発行する。
【０１５１】
Ｔｙｐｅ１７は、上記１６通りの補空間であるが、上記１６通りで命令発行できる場合を尽くしているので、Ｔｙｐｅ１７は命令発行できない全ての場合に相当する。
【０１５２】
そして、実施形態１〜３同様に、図１３の真理値表から発行制御論理を構成することができる。
【０１５３】
本実施形態では、実施形態１〜４とは異なり、生成に時間のかかる命令発行信号（ＧＯxxと表記した信号）を他のプロセッサの電力制御で参照することを避けて高速化を容易にしている。
【０１５４】
すなわち、本実施形態は、余剰電力を周囲のプロセッサからできるだけ多く集めることより、高速化に重点を置いた方式である。例えば、ロードデータ待ちのように、あらかじめ２サイクル以上命令発行できないことが判るような場合は、２サイクル目からの命令発行抑止情報は、ＰＬｓｙＵ、ＰＬｕｙＤ、ＰＬｔｘＬ、および、ＰＬｔｚＲに反映可能である。また、命令が無効であるとか簡単なリソース競合とかのように高速に判定可能な命令発行抑止情報は１サイクル目からの命令発行抑止情報は、ＰＬｓｙＵ、ＰＬｕｙＤ、ＰＬｔｘＬ、および、ＰＬｔｚＲに反映可能である。すなわち、サイクルの早い段階で他のプロセッサに予定消費電力を通知することができる。
【０１５５】
〔実施形態６〕
以下、本発明に係る第六の実施形態を、図１４を用いて説明する。
図１４は、本発明の第六の実施形態に係る半導体装置の構成図である。
【０１５６】
本実施形態は、実施形態１〜３のように隣接する２プロセッサの合計許容電力を設定して消費電力を抑えているペアをアレイ状に配置して、プロセッサアレイを構成している。
【０１５７】
実施形態５は、隣接する４つのプロセッサから少しずつ余剰電力を集めているので、効率が良い反面、配線長が長くなる懸念がある。これに対し本実施形態では関係するプロセッサが二つであるため、図のように二つのプロセッサＣＰＵ００とＣＰＵ０１の拡張デコード部ＥＤＥＣ００とＥＤＥＣ０１とを隣接させ、近接配置させることが可能となる。この結果、配線長が短くなり高速動作させ易くなる。
【０１５８】
〔実施形態７〕
以下、本発明に係る第七の実施形態を、図１５を用いて説明する。
図１５は、本発明の第七の実施形態に係る半導体装置の構成図である。
【０１５９】
実施形態５では上下左右の隣接プロセッサから少しずつ余剰電力を集めているが、本実施形態では、これを４プロセッサずつのグループの他のプロセッサから少しずつ集めるようにする。すると、図のように４つのプロセッサＣＰＵ００、ＣＰＵ０１、ＣＰＵ１０、およびＣＰＵ１１の拡張デコード部ＥＤＥＣ００、ＥＤＥＣ０１、ＥＤＥＣ１０、およびＥＤＥＣ１１とを隣接させることが可能となる。この結果、配線長が短くなり高速動作させ易くなる。
【０１６０】
本実施形態は、実施形態６のグループの構成要素の数を２から４にしたものであるということができる。
【０１６１】
〔実施形態８〕
以下、本発明に係る第八の実施形態を、図１６を用いて説明する。
図１６は、本発明の第八の実施形態に係る電力管理部の制御真理値表である。
【０１６２】
実施形態１〜７では、許容電力を最大消費電力の半分まで抑えることができる方式を説明した。
【０１６３】
実際の使用状況では平均して最大消費電力の半分程度を消費するケースは多く、サイクル単位で見ると、最大消費電力の半分を頻繁に超え、複数プロセッサで平均しても消費電力の要因による性能低下を招く可能性もある。
【０１６４】
また、最大消費電力の制約条件は、電源やパッケージが既製品である場合には、段階的になるため、一クラス上の製品を使わないで済むことがメリットとなる。このため、電源やパッケージに通常の使用方法では十分な能力があるにもかかわらず、非常に稀な場合に能力が足りないのであれば、本発明によってこうした非常に稀な場合の発生を確実に抑止すれば、半導体チップの製造上のコストや重量の削減にあずかって効果がある。
【０１６５】
本実施形態では、実施形態１の構成において、２プロセッサに対する許容電力を２プロセッサの最大消費電力の総和の７／８とし、それぞれのプロセッサの予定消費電力を１〜８の８段階とする。
【０１６６】
このとき、２プロセッサの最大消費電力の総和は１６、２プロセッサに対する許容電力は１４である。それぞれのプロセッサは最大消費電力の７／８、すなわち、７までデッドロック状態にならずに動作し続けられるものとする。
【０１６７】
デッドロック状態を回避するため、消費電力７までは優先権を確保して動作できるようにする。予定消費電力が６以下の場合は相手が最大消費電力８まで消費電力を増やしても許容電力を守ることができる。そこで、予定消費電力が６以下の場合にＰＬＯＷＬをアサートするように変更する。また、命令発行できない場合も、相手は最大消費電力８で動作できるが、予定消費電力が６以下になる確率は高いと考えられるので、生成に時間のかかる命令発行制御信号は使用しないようにする。
【０１６８】
このとき電力管理部ＰＭＬの発行制御真理値表は、図１６のようになる。入力信号の値に応じてＴｙｐｅ１と２の２通りの場合と、それらの補空間（それ以外の場合）のＴｙｐｅ３がある。
【０１６９】
Ｔｙｐｅ１は、予定消費電力ＰＣＮＴＬが７以下であるため、相手の状態ＰＬＯＷＲに依らずに後行命令を発行する。
【０１７０】
Ｔｙｐｅ２では、予定消費電力ＰＣＮＴＬが８であるが、相手がＰＬＯＷＲをアサートしていて予定消費電力が６以下であり、予定消費電力の総和が許容電力を超えないので後行命令を発行する。
【０１７１】
Ｔｙｐｅ３は、上記２通りの補空間であるが、上記２通りで命令発行できる場合を尽くしているので、Ｔｙｐｅ３は命令発行できない全ての場合に相当する。結局、予定消費電力は８段階ではなく、６以下、７、８の３段階の区別で十分である。
【０１７２】
したがって、許容電力を大きめに設定すると生成と伝達に時間のかかる他プロセッサの命令発行制御信号を使用せずに、効率よく簡単に消費電力を許容電力以下に抑えることができる。
【０１７３】
〔その他の実施形態〕
消費電力は実行する命令の種類だけでなくキャッシュ等のメモリ容量、メモリマップドモジュールの種類等にも依存する。また、システムＬＳＩやそれを実装するシステムによって許容できる電力は変化する。同一のコアを異なるシステムに実装する場合、こうした変化に対応して電力管理をすれば、より精度の高い電力管理が可能となる。
【０１７４】
さらに、処理するデータによっても消費電力は変化する。たとえば、制御用にビット幅の小さいデータを中心に扱う場合と、マルチメディア系で最大限のビット幅のデータを扱う場合では同一命令を実行しても電力は大きく異なる。コア設計時にどのようなデータが処理されるかまでは確定しないので、プロセッサコアユーザが使用状況に応じて電力制御を調整できれば、よりきめ細かい電力制御が可能となる。
【０１７５】
このように、システム設計時やシステム使用時に電力制御を調整できるような仕組を組み込むことは効果的である。電力デコーダＰＤＥＣにおいて、８段階の予定消費電力に対する予定消費電力ＰＣＮＴＬのエンコーディングおよび低消費電力状態ＰＬＯＷＬをアサートする条件を可変にすれば実現できる。
【０１７６】
図１７は、予定消費電力と電力制御信号の変換表である。
【０１７７】
Ｔｙｐｅ１は、実施形態１に、Ｔｙｐｅ３は、実施形態８に相当する。
【０１７８】
Ｔｙｐｅ２はその中間くらいの許容電力制御となる。本変換表自体をレジスタで実装しても、Ｔｙｐｅをレジスタに記憶して対応する変換表はハードウェアで固定的に実装してもよい。前者であれば製造後に新たな変換表を実装することも可能であるが、後者のほうがハードウェア量は少なく高速化し易い。
【０１７９】
また、このような変換規則や変換表をソフトウェアで設定できるようにしてもよい。
【０１８０】
さらに、これまで述べてきた実施形態では、複数のプロセッサに対する許容電力の値を一定のものにしてきたが、半導体チップの中で、あるモジュール群の許容電力と他のモジュール群の許容電力を異なったものにしてもよい。また、半導体チップの中で、余剰電力を通知しあうグループの数を異なったものにして実装してもよい。
【０１８１】
以上、各実施形態で説明してきたように、本発明によれば、複数のモジュールを有する半導体装置において、分散管理をベースにした電力管理をおこないつつ、他のモジュールとの関係において、各モジュールが消費できる最適な電力量を計算し、チップ全体としての許容電力も管理することができる。
【産業上の利用可能性】
【０１８２】
本発明は動作状態のよって消費電力の変化する集積回路、特にＣＭＯＳ回路にかかり、回路の最大消費電力、電力分布を管理することを可能にする。
【０１８３】
携帯電話を始めとする携帯機器市場の拡大により、半導体チップの低電力化の重要性が増している。最大消費電力、電力分布を管理できることは、電源システムの小型軽量低コスト化、ＬＳＩパッケージの低コスト化、放熱システムの小型軽量低コスト化、電源設計の容易化等様々な恩恵をもたらすことができる。
【図面の簡単な説明】
【０１８４】
【図１】本発明の第一の実施形態に係る半導体装置の構成図である。
【図２】第一の実施形態の電力管理部の制御真理値表である。
【図３】第一の実施形態の電力管理部の制御論理を表す図である。
【図４】本発明の第二の実施形態に係る半導体装置の構成図である。
【図５】第二の実施形態の電力管理部の制御真理値表である。
【図６】第二の実施形態の電力管理部の制御論理を表す図である。
【図７】本発明の第三の実施形態に係る半導体装置の構成図である。
【図８】第三の実施形態の電力管理部の制御真理値表である。
【図９】第三の実施形態の電力管理部の制御論理を表す図である。
【図１０】本発明の第四の実施形態に係る半導体装置の構成図である。
【図１１】第四の実施形態の電力管理部の制御真理値表である。
【図１２】本発明の第五の実施形態に係る半導体装置の構成図である。
【図１３】第五の実施形態の電力管理部の制御真理値表である。
【図１４】本発明の第六の実施形態に係る半導体装置の構成図である。
【図１５】本発明の第七の実施形態に係る半導体装置の構成図である。
【図１６】本発明の第八の実施形態に係る電力管理部の制御真理値表である。
【図１７】予定消費電力と電力制御信号の変換表である。
【符号の説明】
【０１８５】
左側のプロセッサ（右側は、ＬがＲになる）
ＣＰＵＬ…プロセッサ、ＥＤＥＣＬ…拡張デコード部、ＤＥＣＬ…命令デコード部、ＰＤＥＣＬ…電力デコード部、ＰＭＬ…電力管理部、ＥＸＥＬ０…先行命令の命令実行部、ＥＸＥＬ１…後行命令の命令実行部。
ＩＦＬ…命令フェッチ、ＯＰＬ…命令コード、ＰＣＮＴＬ…予定消費電力、ＰＬＯＷＬ…予定消費電力が１であることを示す信号、ＧＯＬ０…電力以外の要因により判断された先行命令の発行が可能なことを示す信号、ＧＯＬ１…電力以外の要因により判断された後行命令の発行が可能なことを示す信号、ＣＮＴＬ…制御信号、 ＰＧＯＬ１…電力を考慮したときの後行命令の発行可能なことを示す信号。
ＧＯＬ…電力以外の要因により判断された命令の発行が可能なことを示す信号、ＰＳＴＬ…前のサイクルの電力消費を示す信号。
ＰＴＫＮＬ…優先サイクルを示す信号。
中央のプロセッサ（右側は、ｙがｚ、左側は、ｙがｘになる）
ＣＰＵｙ…プロセッサ、ＥＤＥＣｙ…拡張デコード部、ＤＥＣｙ…命令デコード部、ＰＤＥＣｙ…電力デコード部、ＰＭｙ…電力管理部、ＥＸＥｙ０…先行命令の命令実行部、ＥＸＥｙ１…後行命令の命令実行部。
ＩＦｙ…命令フェッチ、ＯＰｙ…命令コード、ＰＣＮＴｙ…予定消費電力、ＰＬＯＷｙＬ…予定消費電力が３以下の場合であることを示す信号、ＰＬＯＷｙＲ…２以下の場合にであることを示す信号、ＧＯｙ０…電力以外の要因により判断された先行命令の発行が可能なことを示す信号、ＧＯｙ１…電力以外の要因により判断された後行命令の発行が可能なことを示す信号、ＣＮＴｙ…制御信号、 ＰＧＯｙ１…電力を考慮したときの後行命令の発行可能なことを示す信号。
要素ｔｙのプロセッサ（それぞれの配列要素で、ｉｊに置き換わる）
ＣＰＵｔｙ…プロセッサ、ＥＤＥＣｔｙ…拡張デコード部、ＤＥＣｔｙ…命令デコード部、ＰＤＥＣｔｙ…電力デコード部、ＰＭｔｙ…電力管理部、ＥＸＥｔｙ０…先行命令の命令実行部、ＥＸＥｔｙ１…後行命令の命令実行部。
ＩＦｔｙ…命令フェッチ、ＯＰｔｙ…命令コード、ＰＣＮＴｔｙ…予定消費電力、ＰＬｔｙＬ…予定消費電力が３以下の場合であることを示す信号、ＰＬｔｙＲ…２以下の場合であることを示す信号、ＰＬｔｙＵ…予定消費電力が１以下の場合であることを示す信号、 ＰＬｔｙＤ…予定消費電力が０であることを示す信号、ＣＮＴｔｙ…制御信号、 ＰＧＯｔｙ１…電力を考慮したときの後行命令の発行可能なことを示す信号。
【図１】
2005338986.tif 000003
【図２】
2005338986.tif 000004
【図３】
2005338986.tif 000005
【図４】
2005338986.tif 000006
【図５】
2005338986.tif 000007
【図６】
2005338986.tif 000008
【図７】
2005338986.tif 000009
【図８】
2005338986.tif 000010
【図９】
2005338986.tif 000011
【図１０】
2005338986.tif 000012
【図１１】
2005338986.tif 000013
【図１２】
2005338986.tif 000014
【図１３】
2005338986.tif 000015
【図１４】
2005338986.tif 000016
【図１５】
2005338986.tif 000017
【図１６】
2005338986.tif 000018
【図１７】
2005338986.tif 000019