(57)【特許請求の範囲】
【請求項１】
システムのサブ回路の電力消費を制御するための、そのシステム内で実行される方法であって、
割り当てられたタスクを実行するために割り当てられた時間を確認するステップと、
前記の割り当てられた時間内で割り当てられたタスクを完全に実行するために、前記サブ回路が動作しなければならない周波数以上の最低周波数を決定するステップと、
前記サブ回路の特性に基づいて、前記決定された周波数でサブ回路の適正な動作を確保する最低のレベルに、前記サブ回路に加わる電源電圧を設定するステップと
を含むことを特徴とする方法。
【請求項２】
マルチプロセッサのサブ回路内で実行され、前記割り当てられたタスクが複数のサブタスクを含み、
前記マルチプロセッサのサブ回路の複数のプロセッサに前記サブタスクを配分するステップをさらに含み、
その結果前記プロセッサの中の１つが、他のプロセッサのサブタスク処理負荷に比較して最大のサブタスク処理負荷を搬送し、
前記配分するステップが、前記決定するステップの前に実行され、
前記決定するステップが、割り当てられた時間内に割り当てられたサブタスクの処理を完全に実行すために、前記サブタスク処理の最大の負荷を搬送するプロセッサにて使用されるときに、割り当てられら時間内に割り当てられたサブタスク処理を完全に実行するのに十分な最低周波数を確認する
ことを特徴とする請求項１記載の方法。
【請求項３】
前記サブ回路がマルチプロセッサとして実行され、前記割り当てられたタスクが複数のサブタスクから成り、さらに前記方法が、前記サブタスクを、前記マルチプロセッサのサブ回路に配分するステップを含む
こをを特徴とする請求応１記載の方法。
【請求項４】
前記電源電圧を設定するステップが、一方が他方より遅い以外は同一の２つの回路の動作状態に反応する
ことを特徴とする請求項１記載の方法。
【請求項５】
前記電源電圧を設定するステップが、前記２個の回路のうちの遅い方が故障した動作状態にあり、他方が作動動作状態にあるように電源電圧を調整する
ことを特徴とする請求項４記載の方法。
【請求項６】
割り当てられた時間内で前記割り当てられたタスクを完全に実行するために、新たなタスクが割り当てられたときには、サブ回路が動作しなければならない周波数以上の新たな最低周波数を決定するステップと、
前記新たな動作周波数が、前記サブ回路に対し設定されるべきかを決定するために、最低周波数を新たな最低周波数と比較するステップと、
前記比較するステップが、新たな最低周波数は前記最低周波数よりも低いと決定したときには、前記サブ回路が動作するよう設定された周波数を低減し、その後サブ回路に加えられる電源電圧を低減するステップと、
前記比較するステップが、新たな最低周波数は前記最低周波数よりも高くなければならなときに、サブ回路に加えられる電源電圧を増加し、その後前記サブ回路が動作するよう設定された周波数を前記新たな最低周波数まで増加させるステップと
をさらに含むことを特徴とする請求項１記載の方法。
【請求項７】
プロセッサを含む回路であって、
適用されたタスクと、前記タスクを実行するために、最大の時間間隔の期間を必要とするような時間間隔の仕様とに応答して、前記時間間隔内で前記適用されたタスクを完全に実行することを可能にする最低の動作周波数であるプロセッサの動作周波数を生成するコントローラと、
前記コントローラに応答して、前記プロセッサの電源電圧の生成を指示する校正回路と、
前記校正回路に応答して、前記プロセッサの電源電圧を生成し、この電源電圧を前記プロセッサに与える電源とを備え、
前記プロセッサに、前記電源電圧が前記プロセッサに加えられ、および前記プロセッサに加えられたクロック周波数が、前記適用されたタスクを前記時間間隔内で完全に終了させることのできる最低の動作周波数に設定された後、前記プロセッサが前記タスクを実行するよう前記コントローラが指示する、
ことを特徴とする回路。
【請求項８】
前記コントローラが、前記校正回路に加えられる第１の周波数の第１のクロック信号と、前記プロセッサに加えられる第２の周波数の第２のクロック信号とを生成するクロック信号生成器を有し、前記第２の周波数が、第１の周波数またはそれ以下の周波数に設定される
ことを特徴とする請求項７記載の回路。
【請求項９】
前記コントローラが、前記適用されたタスクの結果、前記コントローラが前記プロセッサの現在の動作周波数よりも低い動作周波数を生成するときには、前記校正回路に対し前記電源電圧を減少させるよう指示し、前記校正回路が前記電源電圧を減少させるよう指示されたときには、前記コントローラが前記電源電圧が減少する前に、前記第２の周波数を前記第１の周波数より低い周波数に設定する
ことを特徴とする請求項８記載の回路。
【請求項１０】
前記コントローラが、前記適用されたタスクの結果、前記コントローラが前記プロセッサの現在の動作周波数よりも高い動作周波数を生成するときには、前記校正回路に対し前記電源電圧を増加させるよう指示し、前記校正回路が前記電源電圧を増加させるよう指示されたときには、前記コントローラが前記電源電圧が増加した後のみ前記第２の周波数を前記第１の周波数に設定する
ことを特徴とする請求項８記載の回路。
【請求項１１】
前記コントローラが、前記適用されたタスクの結果、前記コントローラが前記プロセッサの現在の動作周波数よりも低い動作周波数を生成するときには、前記校正回路に対し前記電源電圧を減少させるよう指示し、前記校正回路が前記電源電圧を減少させるよう指示されたときには、前記コントローラが前記電源電圧が減少する前に、前記動作周波数を前記より低い周波数に設定する
ことを特徴とする請求項７記載の回路。
【請求項１２】
前記コントローラが、前記適用されたタスクの結果、前記コントローラが前記プロセッサの現在の動作周波数よりも高い動作周波数を生成するときには、前記校正回路に対し前記電源電圧を増加させるよう指示し、前記校正回路が前記電源電圧を増加させるよう指示されたときには、前記コントローラが前記電源電圧が増加した後のみ、前記動作周波数を前記より高い周波数に設定する
ことを特徴とする請求項７記載の回路。
【請求項１３】
前記タスクが、複数のサブタスクを含み、
前記プロセッサが、複数の処理用素子を含み、
前記コントローラが、前記処理用素子に前記サブタスクを区分けし、前記区分けに基づいて前記プロセッサの動作周波数を生成する
ことを特徴とする請求項７記載の回路。
【請求項１４】
前記コントローラが、前記時間間隔内で実行を完了する最も負荷の重い処理用素子用に最低の動作周波数を評価することにより前記プロセッサの動作周波数を生成し、前記最も負荷の重い処理用素子が、全体として最大の処理時間を必要とするようなサブタスクが割り当てられた処理用素子である
ことを特徴とする請求項１３記載の回路。
【請求項１５】
前記校正回路が、前記プロセッサの少なくとも一部の２個のコピーを含み、１つのコピーが、前記プロセッサ内で前記部分が動作するのと同じ高速で動作し、前記他のコピーが、低速で動作する
ことを特徴とする請求項７記載の回路。
【請求項１６】
プロセッサを含む回路であって、
適用されたタスクと、前記タスクを実行するために、最大の時間間隔の期間を必要とするような時間間隔の仕様とに応答して、前記時間間隔内で前記適用されたタスクを完全に実行することを可能にする最低の動作周波数であるプロセッサの動作周波数を生成する第１の手段と、
前記第１の手段に応答して、前記プロセッサの電源電圧の生成を指示する第２の手段と、
前記第２の手段に応答して前記プロセッサの電源電圧を生成して、この電源電圧を前記プロセッサに与える第３の手段とを備え、
前記プロセッサに、前記電源電圧が前記プロセッサに加えられ、および前記プロセッサに加えられたクロック周波数が、前記適用されたタスクが前記時間間隔内で完全に終了させることのできる最低の動作周波数に設定された後、前記プロセッサが前記タスクを実行するよう前記第１の手段が指示する
ことを特徴とする回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子回路に関し、特に電子回路内の電力消費を制御する方法と回路に関する。
【０００２】
【従来の技術】
集積回路は、最悪の動作状態においても速度要件を満足するよう設計されている。ルーセントテクノロジー社の０．３５μｍ３．３ＶＣＯＭＳ技術においては、「最悪状態での遅い速度」速度は、１２５℃の温度で２．７Ｖのチップ供給電圧Ｖddで規定されている。チップの最悪の場合の電力消費は、３．６Ｖの最大電源電圧で決められている。「最悪状態での遅い速度」と「公称状態での速度」と「最悪状態での速い速度」におけるチップ性能の差は、図１に示す通りであり、同図においては、２５段のリング発振器の周波数は異なる電源電圧とプロセスの状態で示されている。
【０００３】
３．３Ｖの公称動作電圧においては、「最悪状態での遅い速度」（worst case slow ＝ＷＣＳ）と「最悪状態での速い速度」（worst case fast ＝ＷＣＦ）との間の速度差は２．２倍もある。同図に示したグラフからは、チップが「最悪の場合の遅い速度」のときでも１４０ＭＨｚで２．１Ｖの電源電圧で動作するよう設計されている場合には、電源電圧が２．１Ｖに落ちた場合でも製造されたチップの特性は１４０ＭＨｚで動作し続けるような公称規格を有している。
【０００４】
ＣＭＯＳ回路の電力消費は、動作周波数に対しては一次で、電源電圧に対しては４次で増加する。そのため電源電圧を低減すると電力消費を大幅に低減できることになる。例えば公称動作電圧を３．３Ｖから２．１Ｖに落とすことにより、１４０ＭＨｚのチップの公称電力消費は、回路構成を変えることなく６０％低減するができる。このことは、公称仕様の特性からのチップの仕様変動を測定し、この測定結果に基づいて電源電圧を修正できることを仮定している。
【０００５】
電源電圧を可変にするために、プログラマブルｄｃ−ｄｃコンバータが用いられている。今日の最も効率的なアプローチは、バックコンバータ回路（buck converter circuit）である。この回路は当業者に公知である。
【０００６】
電圧を周囲温度に応じて変えることは、動作温度が変動したりプロセスの場所が変わっても高性能を達成する技術としてインテルのペンティアム製品群に導入されている。これは米国特許第５，４４０，５２０号に開示されている。このアプローチは、オンチップの温度センサーと、その関連処理回路を用いて特定の電源電圧を提供するためのオフチップである電源への規約（情報の転送）の問題を生じさせている。
【０００７】
このプロセス変動の情報は、製造の最終段階で各デバイス内にハードで組み込まれている（hard-coded）。このアプローチは、公称の製造処理からの変動を決定するために、各チップをテストする必要があり、コストがかかる。数社のメーカーが、ペンティアムと互換性のあるｄｃ−ｄｃコンバータ回路を製造しており、これは“Powering the Big Microprocessors", by B. Travis, EDN, August 15, pp. 31-44, 1997に開示されている。
【０００８】
近年バックコントローラ回路（buck controller circuit） をチップ上に集積することに興味が持たれている。唯一のオフチップ素子は、バックコンバータ内に用いられるインダクタ（通常約１０μＨ）とキャパシタ（通常約３０μＦ）である。８０％の以上の効率が、指定された電源と負荷電流の範囲において一般的に達成されている。これに関しては、“A High-Efficiency Variable Voltage CMOS Dynamic dc-dc Switching Regulator," by W. Namgoong, M. Yu, and T. Meng, Proceedings ISSCC97 pp. 380-381, February, 1997 を参照のこと。
【０００９】
研究者は、またプロセスおよび温度変動を計算するために、オンチップ電圧変更技術を実験している。これに関しては、“Variable Supply-Voltage Scheme for Low Power High-Speed COMS Digital Design," by T. Kuroda et al, CICC97 Conference Proceedings, and JSSC Issue of CISS97, May, 1998を参照のこと。前掲の論文は、回路の速度は電源電圧が低下した場合でもしきい値電圧を変えることにより維持できる（あるいは少なくともスピードの低下を最少にできる）ことを示している。しきい値電圧を調整することは、基板のバイアス電圧を変更することによりオンチップ上で達成できる。これらの技術は、しきい値電圧の増加と共にリーク電流が大きくなりすぎないようにする必要がある。
【００１０】
かくしてチップへの電源電圧の変動は、電源電圧の予測しない変動をなくすことによりおよびプロセスと動作温度の変動を考慮に入れることにより性能を改善できることが知られている。
【００１１】
【発明が解決しようとする課題】
したがって本発明の目的は、動作条件および動作温度の変動を補償できかつ消費電力を最少にするような方法および回路を提供することである。
【００１２】
【課題を解決するための手段】
本発明によれば、マルチプロセッサチップの性能の改善は、電力消費を最少にするために、チップの動作電圧を制御し、かつチップの処理負荷をダイナミックに制御することにより、オン／オフの制御よりもより大幅に達成できる。マルチチッププロセッサ内のコントローラは、チップ内の処理負荷を等しくするために、個々のプロセッサにタスクを割り当て、その後このコントローラがチップ上のクロック周波数を低下させ、適正な動作および電源電圧を最終的に低減しながらチップ上のクロック周波数をできるだけ低いレベルに低下させる。さらに本発明は、マルチプロセッサチップ内の個々の処理素子内の電源電圧を制御し、かつマルチプロセッサチップが動作するシステム内の他の素子の電源電圧を制御することにより電力消費が改善される。
【００１３】
【発明の実施の形態】
図２はマルチプロセッサチップのブロック図である。このマルチプロセッサチップは、処理用素子（ＰＥ:processing element）１００，１０１，１０２，１０３，１０４を有し、各処理用素子（ＰＥ）は、中央演算処理装置（ＣＰＵ）とローカルキャッシュメモリ（図示せず）とを有する。リアルタイムのオペレーティングシステム（ＯＳ）が処理用素子（ＰＥ）１００内にあり、多くのデジタル信号処理用の種々のアプリケーションの中から他の処理用素子にタスクを割り当てている。
【００１４】
図２のシステムの負荷は、時間と共に変動しある時間で実行されるアプリケーションに依存している。例えばマルチメディアのブロードバンドアクセスシステム用のセットトップボックス（set-top-box） は、ＨＤＴＶ信号を受信する必要がある。また同時にコンピュータからインターネットへデータを転送し、遠隔地にある制御ハンドセットからのボタンによるリクエストに応答している。何時間にも亘ってこのアプリケーションのダイナミックな合成物は、システム上に異なる負荷要件を課している。
【００１５】
最大限に利用されるシステムにおいては、利用可能なプロセッサの全ては、システムが遭遇する最大の負荷を満足する際には、最高速度で動作する必要がある。あるときにはマルチプロセッサチップの電力消費は、最大レベルにある。しかし、負荷要件が低下するとシステムは電力消費を下げなければならない。通常、コンピュータはユーザがキーを押すのを待つために、その時間の９９％を費やしている。これは平均電力消費を画期的に低減させる大きな機会である。システムがその性能を落とすような特定のアプローチによって、現実の電力削減に大きな影響を与えることができる。
【００１６】
図２の構成において、本発明によれば処理される必要のあるアプリケーションは、処理用素子（ＰＥ）１００上で実行されるリアルタイムオペレーティングシステム（real time operating system＝ＲＴＯＳ）の制御下でＮ個の処理用素子（ＰＥ）１００にマッピングされる。各タスクに対し実行される必要のあるインストラクションの数は分かっており、オペレーティングシステムに利用可能なようになされ、オペレーティングシステム内のスケジューラが、この情報を用いて計算をバランスさせるために利用可能なプロセッサにタスクを割り当てる最適の方法を決定している。当然のことながら、中間的な目標は並行処理（parallelism） を最適に最大化することであり、全ての処理用素子（ＰＥ）１００の中において、図２のシステムに現れる負荷を均等に分配することである。
【００１７】
図２のシステム上で走るアプリケーションが、Ｎ個の同時のタスクストリームに分割されると、各処理用素子（ＰＥ）の負荷は軽くなる。これにより処理用素子（ＰＥ）のクロック周波数が低減し、タスクの分割が完全に行われると、図２のシステムのクロック周波数は１／Ｎに低減する。上記したように周波数を低減することにより、必要な電源電圧を低下させ、そしてこの電源電圧を低下させることがシステムの電力消費をまた（４次で）低下させる。
【００１８】
例えば１個の処理用素子（ＰＥ）上で実行されるあるアプリケーションは、１４０ＭＨｚの処理用素子（ＰＥ）の動作を必要とする場合には、図１から分かるように処理用素子（ＰＥ）は約２．７Ｖの電源で動作しなければならない。アプリケーションが２個の同時のタスクに分割され、２．７Ｖの電源で１４０ＭＨｚで動作するよう設計されている２個の処理用素子（ＰＥ）に割り当てられた場合には、この処理用素子（ＰＥ）は７０ＭＨｚで動作し、その電源電圧は１．８Ｖでよい。動作電圧がこのように低下すると、電力の削減は５５％となる。アプリケーションが完全に２つの等しい負荷タスクストリームに完全に分割されると、そのために５５％が２個のＰＥに対する達成可能な最大の電力削減量である。
【００１９】
上記の例から２個の処理用素子（ＰＥ）が用いられ、動作周波数が７０ＭＨｚに低減した場合には、ここに示された低減は、１４０ＭＨｚで動作するあたかも１個の処理用素子（ＰＥ）が存在するかの如くタスクを実行することが望ましいということが仮定されている。即ちこの仮定とは、チップに割り当てられたタスクが終了しなければならないある時点が存在するということである。実際にはタスクが終了しなければならない特定の要件は存在しない。タスクが終了しなければならないときの要件は、チップの最高の動作周波数には関連していない。
【００２０】
例えば、上記のチップ（各処理用素子（ＰＥ）は１４０ＭＨｚで動作するものとする）は、その基本周波数は１６０ＭＨｚであるシステムに採用されている。このような構成においては、タスクをチップの２つの処理用素子（ＰＥ）に分割し、各処理用素子（ＰＥ）が８０ＭＨｚで動作することは好ましいが、その理由はチップの入力と出力の関数をシステム内の他の素子に同期させることが容易だからである。かくしてある意味においては、それは制御を行っている割り当てられたタスクの集合体に対する予測完了時間であり、チップがサポートできる最大周波数の低減は実行されるタスクの分割により制御される。
【００２１】
このため処理用素子（ＰＥ）１００の動作システムは必要な完了時間を確認し、できるだけ等しくタスクの集合体を（必要とされる処理時間の観点から）分割し、実行する多くの時間を必要とするタスクで処理用素子（ＰＥ）を考慮し、最大負荷の処理用素子（ＰＥ）がその割り当てられたタスクを必要とされる完了時間内に実行することを確実にするために、クロック周波数を調整することが必要である。かくして、周波数が一旦決定されると、最少の電源電圧が決定される。電源電圧の決定は、図１に示した表に対する基準により、あるいは手元のマルチプロセッサの実際の性能を評価することにより行われる。
【００２２】
上記したようにオペレーティングシステムは、温度変動と処理変動を追跡することによりさらに電源電圧を低減することができる。例えばチップが公称特性を有する場合には、図１の線２０に沿って動作することができ、これは７０ＭＨｚで動作しているときのわずか１．５Ｖの電源を必要とするだけである。
【００２３】
図２の議論に戻ると、プログラム可能な周波数クロックが適宜乗算された入力基準クロック（ライン１０１）を用いて高切替単位（例えば５ＭＨｚ）の増分量で変更可能な位相ロックループ周波数合成回路１１０を介して生成される。２つのクロックが、位相ロックループ周波数合成回路１１０（２つの合成回路を必要とする）により生成される。これらはＣｌｋクロックとＣｌｋ−Ｌクロックであり、Ｃｌｋが増分しているときには、Ｃｌｋ−ＬはＣｌｋよりも１周波数ステップだけ低い。例えば、５ＭＨｚの切替単位の位相ロックループ周波数合成回路１１０においては、Ｃｌｋが７５ＭＨｚから８０ＭＨｚに増分するときは、Ｃｌｋ−Ｌの値は７５ＭＨｚに設定される。
【００２４】
Ｃｌｋ−Ｌは、処理用素子（ＰＥ）に加えられ、Ｃｌｋは校正(calibration)回路１２０に加えられ、この校正回路１２０が電源電圧指示を与える。この電源電圧指示は、ｄｃ−ｄｃコンバータ１３０に与えられ、このｄｃ−ｄｃコンバータ１３０にＬ−Ｃ回路１４０が接続されている。ｄｃ−ｄｃコンバータ１３０とＬ−Ｃ回路１４０の合成回路が電源電圧Ｖdd−local を生成し、これが校正回路１２０にライン１０２を介して加えられる。このＶdd−local 電源電圧は、また全ての処理用素子（ＰＥ）にも与えられる（但し、オペレーティングシステム処理用素子（ＰＥ）１００を除く）。
【００２５】
周波数Ｃｌｋに遅れる周波数Ｃｌｋ−Ｌのラグ（遅れ）を有する理由は、より高い周波数を受け入れるために電源電圧を上げる前に、処理用素子（ＰＥ）に加えられるクロック周波数は増加してはならないからである。さもないと処理用素子（ＰＥ）は適正な動作をすることができない。校正回路１２０はライン１０２上のレベルを観測して、それが処理用素子（ＰＥ）１００〜１０４が適正に動作できるのに必要な電圧に対応しているか否かを決定し、また同時にライン１０２上の信号がＬ−Ｃ回路１４０の出力でのリンギングが発生した場合はいつでも、ライン１０２上の信号が安定するまで待機する。
【００２６】
ライン１２１上の信号は情報（yes/no）を処理用素子（ＰＥ）１００に与え、電源電圧が安定したことをオペレーティングシステムに通知する。電圧が安定し、Ｃｌｋが必要な周波数に到達したときには、オペレーティングシステムはＣｌｋ−ＬをＣｌｋに設定し、その後どの処理用素子（ＰＥ）が収納できるように設定されたかに応答するために処理用素子（ＰＥ）上へのタスクの割り当てを変更する。
【００２７】
図３は新たなタスクが生成され、マルチプロセッサ上の負荷が増加したときのＣｌｋ，Ｃｌｋ−Ｌ，Ｖdd−local の増加状態と、マルチプロセッサ上の負荷が減少したときのＣｌｋ，Ｃｌｋ−Ｌ，Ｖdd−local が減少したときのタイミング図を示す。具体的に説明すると、同図は７０ＭＨｚで１．８Ｖの電源電圧で動作するシステムを示し、そして負荷が３段階で１４０ＭＨｚに増加した状態を示す。
【００２８】
２．７Ｖの電源が安定している時に電源電圧プロットで示すように新たなタスクが実行されるためにイネーブルされる。図３にしたがってその後のある時間においては、タスクが完了するとマルチプロセッサ上の負荷を減少させる。この負荷が減少したことにより、クロック周波数は１００ＭＨｚにまで低下し、電源電圧は２．１Ｖまで低下する。これは電源電圧が減少しながら処理用素子（ＰＥ）が適正に動作することを行わせるために、Ｃｌｋに先行するＣｌｋ−Ｌでこの場合２回のステップで行われる。
【００２９】
校正回路１２０は数種類の技術のうちの１つを用いて、回路があるクロック周波数で動作するのに必要な電圧を決定する。そのうちの１つの技術は、前掲のKuroda著の文献に記載されている。処理用素子（ＰＥ）（１０１〜１０４）の各々が処理用素子（ＰＥ）の最終速度を制御するようなクリティカルパスを有することが認識されると、校正回路１２０は処理用素子（ＰＥ）回路のクリティカルパスを含む処理用素子（ＰＥ）回路の一部の２つのコピーを用いる。２つのコピーの内１つは、若干遅くなるよう意図的に設計されたものである。
【００３０】
これらの両方のコピーは、クロック信号Ｃｌｋでかつライン１０２のＶdd−local の電源電圧から動作して、その電圧が校正回路１２０内で調整され、一方周波数Ｃｌｋでの動作は、若干遅い処理用素子（ＰＥ）は適正に動作することはできないが、他の処理用素子（ＰＥ）は適正に動作できるようになる。これにより処理用素子（ＰＥ）は、それらが故障するかも知れないポイントよりもわずかに上の電源電圧から動作する。校正回路１２０内の２本のクリティカルパスのコピーは、処理用素子（ＰＥ）１０１〜１０４と同じような温度変動を受けるので、Ｖdd−local の電源電圧は、温度変動および異なる動作周波数仕様に適宜追従する。
【００３１】
図２のシステムのオペレーティングシステムを用いてシステム負荷の変動に反応する。より多くのタスクが「実行すべき」リスト内に入ると処理用素子（ＰＥ）１００のオペレーティングシステムは、つけ加えられた計算要件のバンランスをとりる正しい方法で計算しそのタスクをプロセッサに分ける。その後必要な動作周波数を計算する。
【００３２】
周波数は図３のステップ変動に示すように、システム内に漸次プログラムされている。これによりＶdd−local の電源電圧と起こり得る回路故障上の過剰なノイズを阻止している。例えば、システムが５０ＭＨｚで動作して、７５ＭＨｚで動作する必要がある場合には、クロック周波数は５ＭＨｚのような遅い速度でゆっくりと増加する。さらにまた上記したように、Ｖdd−local の電源電圧が処理用素子（ＰＥ）を動作させるクロック周波数の増加に先立って増加すると、そして増加した処理機能が必要とされる場合には、クロックは減少した処理機能が十分満足するまで電源電圧の減少に先だって減少する。
【００３３】
Ｖdd−local の電源電圧は、回路が故障となる前のしばらくの間は低下するだけであるが、その時点においてオペレーティングシステムは、不必要な処理用素子（ＰＥ）を「シャットダウン」するためのゲートクロック技術を採用する。当然のことながら電源電圧Ｖdd−local は負荷の関数として変動するという事実により、処理用素子（ＰＥ）１０１〜１０４と処理用素子（ＰＥ）１００の間のインタフェース（およびマルチプロセッサチップと「外側世界」との間のインタフェース）の必要性を示す。このことは従来のレベルコンバータ１５０によって達成される。これは処理用素子（ＰＥ）１０１〜１０４の電圧レベルと処理用素子（ＰＥ）１００の電圧レベルの間を基本的に変換する。
【００３４】
動作周波数を負荷に合わせること、および動作周波数を追跡するために電源電圧を調整するという概念は、各処理用素子（ＰＥ）がそれ自身の電源電圧を有するように拡張することができる。ある種のアプリケーションにおいては、このアプローチの利点は明かであるが、特に全ての処理用素子（ＰＥ）に計算負荷が等しく分散されるようなときにはチップ毎の電圧変更が最も効率的であるということを理解したときには最も明かとなる。
【００３５】
しかし、ある種のアプリケーションにおいては、同時に等しく分担された負荷の片に分割することができないようなタスクに遭遇したとき、マルチプロセッサ内のある処理用素子（ＰＥ）は、より高い動作周波数およびより高い動作電圧を必要とするようなタスクに遭遇することがある。この場合、マルチプロセッサチップ全体の周波数と電圧を上げる必要がある。
【００３６】
チップ内の各処理用素子（ＰＥ）に対し、別々の電源を用いることはオペレーティングシステムが独立にプログラムを最低の動作周波数にさせ、各処理用素子（ＰＥ）に対し最低の電源電圧にすることによりこの制限を解決できる。このような構成例を図４に示す。図４の各処理用素子（ＰＥ）は、処理用素子（ＰＥ）１００の機能を実行する（ただし処理用素子（ＰＥ）間でタスクを分割しない場合を除いて）独立のコントローラを必要とする。
【００３７】
図４に示すように、全てのコントローラは１個のコントローラ２００で実現され、これは他の処理素子を含む集積回路の別の処理素子でもよい。各処理素子は、校正回路１２０と、ｄｃ−ｄｃコンバータ１３０と，Ｌ−Ｃ回路１４０のような電圧変換回路とを必要とする。コントローラ２００が処理用素子（ＰＥ）間で図４のマルチプロセッサチップに対しタスクを割り当てる。
【００３８】
個々の処理用素子（ＰＥ）が動作する周波数が、マルチプロセッサチップが採用されているシステム内で互いに他の素子とは異なる場合には、同期の問題を解決しなければならない。即ち、同期系が異なる周波数で動作する処理用素子（ＰＥ）間（または他のシステム素子）間でのデータを通信するのに必要な場合には、同期化システムを採用しなければならない。
【００３９】
マルチプロセッサに割り当てられたタスクの集合体が、所定の時間に完了するように周波数を調整することが可能である。このような場合、マルチプロセッサが採用されているシステム内で、マルチプロセッサ対他の素子の同期の問題は最少となる。しかし、このことはマルチプロセッサチップの処理用素子（ＰＥ）間でのデータを交換する際は同期化の問題が依然として残る。
【００４０】
このような同期化を実行するためには、図４の装置内の各処理用素子（ＰＥ）は、レベルコンバータ１５０，非同期通信ネットワーク１６０を含む装置に接続されている。レベルコンバータ１５０は処理用素子（ＰＥ）の可変電圧スイングを固定レベルのスイングに変換し、非同期通信ネットワーク１６０は異なるクロック領域の問題を解決する。
【００４１】
マルチプロセッサにおける上記の原理は、他のシステム構成にも拡張可能である。これには異なる周波数と動作電圧で動作する複数の別々のプロセッサ素子およびプロセッサ素子として通常は見なされないような素子を具備するシステムを含む。例えば、高速メモリ内にパソコンの異なるアプリケーション用のプログラム構造とデータを維持することは現在一般的に用いられている手法である。
【００４２】
新たなアプリケーションが呼び出されると、より多くの情報がこの高速メモリ内に記録され、それはメモリが満杯になるまで行われる。その後新たなアプリケーションが読み出されると、高速メモリ内の情報の一部は廃棄され、別の情報がより遅いハードディスク内に記憶され、この開放されたメモリに新たなアプリケーションが入れられる。高速メモリ内に記憶されているメモリは、新たなアプリケーションが読み出される前には、古くアクセスされる可能性が低いと予測されている。
【００４３】
このような予測の下に高速メモリの一部はゆっくりと開放される（保持されるのに必要なデータの一部を記憶している）。即ち、より低いクロック周波数が高速メモリとハードディスクと共にそれに対応して低い電源電圧が適用される、その結果ハードディスクの操作と高速メモリの操作の両方において全体的な電力削減が可能となる。
【００４４】
上記の説明において本発明の一実施例においては、マルチプロセッサチップ内の全ての処理用素子（ＰＥ）は、１個の制御された電源電圧で駆動されている。上記の他の実施例においては、マルチプロセッサチップ内の各処理用素子（ＰＥ）は、それ自身の個々に制御された電源電圧により駆動される。しかし、この中間が存在する、即ちマルチプロセッサチップの処理用素子（ＰＥ）は、グループに分割され各グループの処理用素子（ＰＥ）はそれ自身の制御された電源電圧で動作するよう構成することもできる。他の例を引用すると、図２の実施例は最低の電源電圧を確立するためにほとんど同一の２個のクリティカルパスの回路を採用している。別の構成例としては、電圧は図１に示したのとは異なる予め設定された周波数−電圧の関係にしたがって設定することもできる。
【００４５】
レベルコンバータ１５０が、図２では処理用素子（ＰＥ）１００と他の処理用素子（ＰＥ）との間に配置することができるが、これは処理用素子（ＰＥ）１００がＶddで動作しないからである。処理用素子（ＰＥ）１００はまたＶdd−local で動作しないこともあり、この場合レベルコンバータが処理用素子（ＰＥ）１００と相互作用する図２の回路の入力／出力ポート間に配置される。
【００４６】
電源回路は、図２に示すような回路外に素子を有する必要はない。集積回路内で完全に製造されるような回路設計も存在する。
【００４７】
適宜のタイミング状態が適合する場合には、図３の電圧と周波数の２段階の適用をやめるような変形例も実現可能である。
【図面の簡単な説明】
【図１】０．３５μｍ技術のＣＭＯＳチップにおいて電源電圧と最大動作周波数との関係を示すグラフ
【図２】本発明による電源電圧制御制御機能を有するマルチプロセッサチップのブロック図
【図３】図２の電圧制御クロックＣｌｋと図２の処理用素子に加えられるクロックＣｌｋ−Ｌと処理素子に加えられる電源電圧Ｖdd−local の間の関係を示すグラフ
【図４】各処理用素子に固有の電源電圧制御機能を有するマルチプロセッサチップのブロック図
【符号の説明】
１００，１０１，１０２，１０３，１０４  処理用素子（ＰＥ）
１１０  位相ロックループ周波数合成回路
１２０  校正回路
１３０  ｄｃ−ｄｃコンバータ
１４０  Ｌ−Ｃ回路
１５０  レベルシフタ
１６０  非同期通信ネットワーク
【図１】
0003640294.tif 000002
【図２】
0003640294.tif 000003
【図３】
0003640294.tif 000004
【図４】
0003640294.tif 000005