JP2010140319A - 半導体装置 - Google Patents
半導体装置 Download PDFInfo
- Publication number
- JP2010140319A JP2010140319A JP2008316957A JP2008316957A JP2010140319A JP 2010140319 A JP2010140319 A JP 2010140319A JP 2008316957 A JP2008316957 A JP 2008316957A JP 2008316957 A JP2008316957 A JP 2008316957A JP 2010140319 A JP2010140319 A JP 2010140319A
- Authority
- JP
- Japan
- Prior art keywords
- central processing
- power saving
- saving state
- processing unit
- semiconductor device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Power Sources (AREA)
Abstract
【課題】複数のCPUを集積するプロセッサシステムにおいて、オーバヘッドが少なく省電力状態を使用することができる半導体装置を提供する。
【解決手段】複数コアプロセッサシステムにおいて、パッケージ100上で1つまたは複数のOSとアプリケーションプログラムを実行させ、それらの実行時に1つまたは複数のCPUをその動作時の消費電力が低い省電力状態に移行させるクロック停止機構171〜178に加えて、チップ110、120内において、クロック停止機構171〜178により省電力状態に移行させた1つまたは複数のCPUの省電力状態を解除するクロック停止解除機構181、182と、パッケージ100内のチップ110、120間において、クロック停止機構171〜178により省電力状態に移行させた1つまたは複数のCPUの省電力状態を解除する割込み制御回路とを備える。
【選択図】図1
【解決手段】複数コアプロセッサシステムにおいて、パッケージ100上で1つまたは複数のOSとアプリケーションプログラムを実行させ、それらの実行時に1つまたは複数のCPUをその動作時の消費電力が低い省電力状態に移行させるクロック停止機構171〜178に加えて、チップ110、120内において、クロック停止機構171〜178により省電力状態に移行させた1つまたは複数のCPUの省電力状態を解除するクロック停止解除機構181、182と、パッケージ100内のチップ110、120間において、クロック停止機構171〜178により省電力状態に移行させた1つまたは複数のCPUの省電力状態を解除する割込み制御回路とを備える。
【選択図】図1
Description
本発明は、情報処理装置およびその装置上で動作するソフトウェアによって構成される半導体装置に関するものであり、特に、複数の中央処理装置(CPU)によって構成されるチップを複数結合することによって単一のパッケージを構成し、それらを構成する複数のCPUが1つまたは複数のオペレーティングシステム(OS)で稼動する環境におけるプロセッサシステムの稼動時の電力状態制御方式に関する技術である。
本発明者が検討したところによれば、プロセッサシステムなどの半導体装置に関しては、たとえば特許文献1〜4に記載される技術などがある。
特許文献1には、複数のCPUによる並列実行が可能なプロセッサシステム上で複数のCPUのうち、目標の処理時間を達成するために動作させる必要のないもののクロックを停止させたり、供給電源を遮断したり、動作周波数を下げてゆっくり動作させても問題ないものの動作周波数を下げたりして、動作させる低消費電力化技術が開示されている。
特許文献2には、プログラム実行時のCPUの消費電力を低減するためのクロック停止や供給電源の制御などの機構に関して、処理時間の見積もりに応じて周波数や電圧を変更する方式が開示されている。特許文献3には、クロック停止状態でのプロセッサの処理に関して、割込みハンドラを実行して解除を行うのに要する時間を短縮する方式が開示されている。特許文献4には、複数のCPUによる並列実行での同期について、待機解除命令を採用する方式が開示されている。
特開2006−293768号公報
特開2002−215599号公報
特開2003−345456号公報
特開2000−132529号公報
ところで、前記のようなプロセッサシステムなどの半導体装置に関して、本発明者が検討した結果、以下のようなことが明らかとなった。
たとえば、バッテリで動作させる電子機器においては稼働時間を長くするため、使用されているプロセッサを低消費電力で動作させることが重要である。そこで、例えばキーからの入力待ちなどのように実際にはCPUを動作させる必要がない場合に、そのCPUの動作周波数を下げたり、また、より消費電力の小さいクロック停止状態に移行させたりすることが行われており、CPUはスリープモードなどと呼ばれる、そのための機構を持っている。
また、IT機器のモバイル応用等においては、高速実行性とともに低消費電力化が強く求められるようになってきている。そこで、命令レベルよりも粒度の大きいスレッドと呼ばれるプログラム断片の並列性を利用して性能向上と消費電力削減が追求されており、集積化が進むマイクロプロセッサにおいてマルチコアやメニイコアシステムとしてCPUを多数搭載した複数コアシステムが開発され、それぞれのCPUがスレッドを並列実行するようになっている。
この複数のCPUによる並列実行においては、並列に動作するプログラムの単位である複数のタスクやスレッド間で同期をとることが必要になる。その場合、同期完了を待つためだけにプロセッサをループさせるなどして動作させておくことになる。このような状況において、前記特許文献1に記載の低消費電力化技術では、動作させる必要のないCPUのクロックを停止させたり、供給電源を遮断したり、動作周波数を下げてゆっくり動作させても問題ないものの動作周波数を下げたりして、動作させている。
また、プログラム実行時のCPUの消費電力を低減するためのクロック停止や供給電源の制御などの機構に関して、前記特許文献2には処理時間の見積もりに応じて周波数や電圧を変更する方式が開示されている。前記特許文献3においては、クロック停止状態でのプロセッサの処理に関して、割込みハンドラを実行して解除を行うのに要する時間を短縮する方式が開示されている。また、複数のCPUによる並列実行での同期について、待機解除命令を採用する方式が前記特許文献4において開示されている。
ところで、前記のようなプロセッサシステムにおいては、プロセッサの構成が単一CPUのシングルコアであるか、複数コアであるかなどによらず、動作中のCPUのクロック周波数を低下させたり、また、クロックを停止させスリープ状態などと呼ぶ省電力状態にしたりして、プロセッサ動作時の消費電力を低減させる方法が一般的に用いられている。このため、CPUに「スリープ命令」などと呼ばれる命令を実装し、この命令を実行するとそのCPUへのクロックの供給を停止できるようにしている。
この「スリープ命令」などのようにCPUをスリープさせるプロセッサ命令、もしくは、そのようなクロック停止状態に移行するために制御レジスタを設定する命令は存在するが、クロック停止中はCPUが停止しているので、その状態を自ら解除するプロセッサ命令は存在せず、外部からの割込みが入ると、そのクロック停止状態を解除する仕様の機構になっている。このように、前記特許文献1〜4などを含む従来技術のCPUにおいては、クロック停止状態が外部割込みだけで解除されるようになっているので、次のような問題点がある。
まず、クロック停止によってもたらされる省電力状態が多くの外部割込みによって解除されてしまうので、プログラマが意図しないタイミングで解除されてしまうことになる。これを避けるためには、外部割込みで一旦解除された後にまだクロック停止状態を継続してよいかどうかを判定し、再度クロック停止させるための処理が必要になり、処理が複雑になって省電力効果が落ちることになる。また、割込みによる解除時には割込みハンドラと呼ばれる特別な処理プログラムに移行するので、処理に無駄が出ることにもなる。
さらに、複数のCPUを集積するプロセッサシステムにおいて、CPUの個数が増加すると省電力状態を解除するために検出する外部割込みの数も多くなって割込み処理が複雑になり、省電力機能を実現するためのオーバヘッドが大きくなると考えられる。
そこで、本発明の目的の1つは、上記のような課題を解決して、複数のCPUを集積するプロセッサシステムにおいて、オーバヘッドが少なく省電力状態を使用することができる半導体装置を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
すなわち、代表的なものの概要は、パッケージ上で1つまたは複数のOSとアプリケーションプログラムを実行させ、それらの実行時に1つまたは複数のCPUをその動作時の消費電力が低い省電力状態に移行させる第1の回路に加えて、チップ内において、第1の回路により省電力状態に移行させた1つまたは複数のCPUの省電力状態を解除する第2の回路と、パッケージ内のチップ間において、第1の回路により省電力状態に移行させた1つまたは複数のCPUの省電力状態を解除する第3の回路とを備えることを特徴とする。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
すなわち、代表的なものによって得られる効果は、複数のCPUを集積するプロセッサシステムにおいて、オーバヘッドが少なく省電力状態を使用することができる半導体装置を提供することができる。
<本発明の実施の形態の概要>
本発明の実施の形態においては、複数コアプロセッサシステムのチップ内においては、あるCPUのクロック停止状態を該システム上にある周辺機能回路や該CPU以外の他のCPUからの制御レジスタのビットセットや特定のイベントのような、割込みにはよらない明示的な要求によって解除させ、処理を再開できるようにする。そして、再開後の処理はスリープ命令に連続して配置されている次の命令からとなるようにする。また、チップ内部にクロック停止解除用のタイマを設け、プログラムによってあらかじめタイマに設定された時間が経過すると、このチップ内部で直接CPUの省電力状態を解除するイベントを発生させ、外部割込みによらずに省電力状態を解除させることも可能にする。クロック停止時にこの専用のタイマだけに低速でクロックを供給できるようにし、このタイマの動作に関する電力を低くするとともに、本タイマによるクロック停止の解除では、クロック停止している地点の命令の次に配置されている命令から再開することを実現する。また、チップ内部に複数のCPUがそれぞれの命令を完了したことの同期をとる機構を設け、この同期をとる機構が同期完了時に、同期待ち中のCPU全てに対して直接省電力状態を解除するイベントを発生させ、外部割込みによらずに省電力状態を解除させることも可能にする。なお、チップ間では、従来の外部割込みによって、あるCPUのクロック停止状態を解除するようにする。
本発明の実施の形態においては、複数コアプロセッサシステムのチップ内においては、あるCPUのクロック停止状態を該システム上にある周辺機能回路や該CPU以外の他のCPUからの制御レジスタのビットセットや特定のイベントのような、割込みにはよらない明示的な要求によって解除させ、処理を再開できるようにする。そして、再開後の処理はスリープ命令に連続して配置されている次の命令からとなるようにする。また、チップ内部にクロック停止解除用のタイマを設け、プログラムによってあらかじめタイマに設定された時間が経過すると、このチップ内部で直接CPUの省電力状態を解除するイベントを発生させ、外部割込みによらずに省電力状態を解除させることも可能にする。クロック停止時にこの専用のタイマだけに低速でクロックを供給できるようにし、このタイマの動作に関する電力を低くするとともに、本タイマによるクロック停止の解除では、クロック停止している地点の命令の次に配置されている命令から再開することを実現する。また、チップ内部に複数のCPUがそれぞれの命令を完了したことの同期をとる機構を設け、この同期をとる機構が同期完了時に、同期待ち中のCPU全てに対して直接省電力状態を解除するイベントを発生させ、外部割込みによらずに省電力状態を解除させることも可能にする。なお、チップ間では、従来の外部割込みによって、あるCPUのクロック停止状態を解除するようにする。
以上のような構成により、同一チップ内に形成されたCPUからの明示的な要求で再開できるようにし、再開後の処理はスリープ命令に連続して配置されている次命令からとなるようにすることによって、割込みハンドラや割込み処理に付随する命令列を実行する必要がないので、クロック停止からの復帰動作が高速になり、積極的にクロック停止状態を使用できるようになる。また、クロック停止解除の対象でない割込みはマスクすることによって、クロック停止状態の不要な解除を抑止でき、省電力効果を上げることができる。
したがって、本発明の実施の形態により、複数のCPUを集積する複数コアプロセッサシステムにおいて、チップ間では割込みを用い、チップ内では割込みを用いずに専用の回路によって省電力状態を解除することができるので、使用機会が多いと考えられるチップ内での電力制御が専用回路で実現できるため、オーバヘッドが少なく省電力状態を使用することができるので低電力にて効率よく稼動させることが可能となる。
<実施の形態(複数コアプロセッサシステム)>
以下、前述した本発明の実施の形態の概要に基づいた実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
以下、前述した本発明の実施の形態の概要に基づいた実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
図1は、本発明の半導体装置の実施の形態である複数コアプロセッサシステムにおけるハードウェアおよびソフトウェア構成の一例を示す図である。
本実施の形態の対象となる複数コアプロセッサシステムは、1つのチップ内にそれぞれ他の中央処理装置(CPU)から通信可能である複数のCPUが備えられ、それぞれが互いに通信可能である複数のチップによって1つのパッケージが構成される半導体装置であり、図1の例では、4つの中央処理装置CPU1(101)、CPU2(102)、CPU3(103)、CPU4(104)が1つのチップCP1(110)を構成し、別の4つの中央処理装置CPU5(105)、CPU6(106)、CPU7(107)、CPU8(108)が別の1つのチップCP2(120)を構成し、CP1(110)、CP2(120)の2つのチップによって1つのパッケージPKG(100)を構成する8CPUの複数コアシステムである。さらに、CPU1(101)〜CPU4(104)上で1つのオペレーティングシステムOS1(151)が、別のCPU5(105)〜CPU8(108)上で別の1つのオペレーティングシステムOS2(152)が、それぞれ稼動し、その上でそれぞれアプリケーションAPL1(161)、APL2(162)が稼動する構成である。
CPU1(101)〜CPU8(108)はそれぞれ、クロックを停止するための機構(第1の回路)であるクロック停止機構CLKSTP1(171)、CLKSTP2(172)、CLKSTP3(173)、CLKSTP4(174)、CLKSTP5(175)、CLKSTP6(176)、CLKSTP7(177)、CLKSTP8(178)を備えており、他のCPUの動作に影響を与えずに任意のCPUおよびそれらの組合せでクロック停止を行える。さらに、後述するように、チップ内にそれぞれクロック停止を解除するための機構(第2の回路)であるクロック停止解除機構SLPC1(181)、SLPC2(182)を備えている。また、CPU1(101)〜CPU8(108)で共有される共有メモリMEM(190)を備えている。
図2は、前記アプリケーションAPL1(161)、APL2(162)のプログラム構成および電力状態制御の実行状態を示す図である。
APL1(161)は、スレッドTH1(201)、TH2(202)、TH3(203)、TH4(204)の4つの並列実行単位に分割されて、CPU1(101)〜CPU4(104)がそれぞれのスレッドを実行する。また、APL2(162)は、スレッドTH5(205)、TH6(206)、TH7(207)、TH8(208)の4つの並列実行単位に分割されて、CPU5(105)〜CPU8(108)がそれぞれのスレッドを実行する。
以下において、この図2に従い、図3〜図5を用いて本実施の形態における電力状態制御について説明する。それぞれ、図3はクロック停止制御、図4はチップ間割込み制御、図5はCPU間同期処理フローを示す図である。また、図6および図7は本実施の形態に対する比較のための従来技術を示し、それぞれ、図6は割込み処理フロー、図7は割込み復帰処理フローを示す図である。
図2に示すように、まず、TH1(201)の進行に伴ってCPU1(101)がCPU2(102)での処理の終了を待つ必要が生じ、CPU1(101)は地点1(211)で自身をクロック停止状態にしてCPU2(102)の処理の終了を待つ。CPU1(101)がクロック停止に係るクロック停止機構CLKSTP1(171)の制御レジスタを適切に設定することにより、このCPU1(101)がクロック停止状態に移行する。この状態では、CPU1(101)は内部状態の更新を行わずにその時点で動作を停止し、ほとんど電力を消費しなくなる。CPU1(101)をクロック停止状態にするには、上記のような制御レジスタを設定する方法以外にもメモリMEM(190)内にプログラムとして配置されるCPU1(101)に対するスリープ命令を実行したりするなどの手法も存在する。
なお、電力制御を行わないシステムにおいては、地点1(211)でクロック停止させずに終了を待つためのループを実行するなどのプログラムとなるのが通常である。
次に、他のCPUでの処理が進み、TH2(202)においてCPU2(102)ではCPU1(101)の処理の継続に必要な処理を終了したので、CPU1(101)のクロック停止状態を解除する。クロック停止状態解除のために、図1に示すクロック停止解除機構SLPC1(181)、SLPC2(182)が設けられており、CPU1(101)〜CPU4(104)に対するクロック停止解除機構SLPC1(181)について、図3を用いて詳しく説明する。
図3において、SLPC1(181)からCPU1(101)に解除要求信号RELREQ1(301)の信号線が備えられている。CPU2(102)、CPU3(103)、CPU4(104)に対しても同様に解除要求信号RELREQ2(302)、RELREQ3(303)、RELREQ4(304)の信号線が備えられている。また、CPU5(105)〜CPU8(108)に対しては、解除要求信号RELREQ5(305)、RELREQ6(306)、RELREQ7(307)、RELREQ8(308)の信号線が備えられている。
TH2(202)のCPU2(102)において、地点3(213)でCPU1(101)のクロック停止解除のために、クロック停止機構CLKSTP1(171)の制御レジスタが設定されると、SLPC1(181)からCPU1(101)に解除要求信号RELREQ1(301)が送られ、CPU1(101)はクロック停止状態から復帰して以降の命令を実行する。このとき、CPU1(101)ではクロック停止を発行して停止している命令の地点1(211)の次に連続して配置されている命令の地点2(212)から、命令の実行を再開する。すなわち、クロック停止命令が発行されなかった場合に連続して実行されていたはずの命令から継続することになる。
比較のために、従来の割込みによるクロック停止状態の解除の動作について以下に説明する。CPU2(102)で、CPU1(101)のクロック停止解除のために、TH2(202)の地点3(213)においてCPU1(101)に対するCPU間の割込みを発生させると、CPU1(101)がこの割込みに係る処理を行う。従来技術で処理を行うと、この割込みによってCPU1(101)のクロック停止状態が解除され、CPU1(101)はクロック停止状態から復帰して以降の命令を実行することになる。
割込みを受付けたCPUはハードウェアとして図6に示す一連の動作を行うようになっている。まず、ステップ600によって現在のCPUの状態が退避される。その中で主たるものは、次に実行すべき命令の場所を示すプログラムカウンタ(PC)、CPU状態レジスタ(SR)などの各種レジスタであり、PCはPC退避用領域(SPC)に、SRはSR退避用領域(SSR)に退避される。ステップ610によって、発生した割込み事象に従って割込み要因が設定される。プログラムカウンタやCPU状態レジスタの退避用領域や割込み要因の設定場所(INTR)は、ハードウェア的に用意された専用のレジスタである。続いて、ステップ620により割込み要因に対応する割込み処理ルーチンのアドレスがプログラムカウンタに設定され分岐される。それには、例えば割込み要因をインデクスとした配列の要素に、該当する割込み処理関数のアドレスを設定するなどの方式が採られる。
対応する割込みルーチンの中では、発生した割込みに対して必要な処理を行うようにプログラムが記述される。この割込み処理の最後で割込み処理からの復帰命令を実行する。割込み処理復帰命令では、ハードウェアとして図7に示す手順を実行する。ステップ700において、退避されていたプログラムカウンタ(PC)やCPU状態レジスタ(SR)などの各種レジスタを回復する。PC退避用領域(SPC)をPCに、SR退避用領域(SSR)をSRに回復する。さらに、ステップ710において、回復されたプログラムカウンタのアドレスに分岐して実行を継続する。
以上によって、従来技術で処理を行う場合、復帰したCPU1(101)はまず割込み処理ルーチンに移行し、その割込み処理が終了した後に、以前にクロック停止を発行して停止している命令の地点1(211)の次に連続して配置されている命令の地点2(212)から命令の実行を再開することになる。
図2に戻り、次に、APL1(161)およびAPL2(162)の実行が進行し、TH3(203)においてCPU3(103)がCPU5(105)の処理の終了を待つため、上記CPU1(101)の場合と同様に地点4(214)においてクロック停止を発行してクロック停止状態に移行する。他のCPUでの処理が進み、APL2(162)を実行中のCPU5(105)ではCPU3(103)の処理の継続に必要な処理を終了したので、CPU3(103)のクロック停止状態を解除する。このため本実施の形態の複数コアプロセッサシステムでは図4に示すように、CPU3(103)を含むチップCP1(110)にCPU5(105)を含むチップCP2(120)からの割込みが入るように構成されている。CPU2(102)からCPU1(101)に対しては上述したようにチップ内に解除専用の信号線を設けられるが、CPU3(103)とCPU5(105)のように異なるチップ間では解除用に専用の信号線を設けるのはチップ数が多くなったりすると複雑にならざるを得ないので、通常の外部割込みによって行うことにする。チップ内の割込み制御回路には、他のチップからの割込みが外部割込み信号として入るようになっている。これは、CPUとタイマやIO機器など一般的な外部装置との割込みの関係と同じであり、通常のプロセッサ構成に準じるものである。
図4において、チップCP1(110)、CP2(120)には、それぞれクロック停止を解除するための機構(第3の回路)である割込み制御回路INTC1(401)、INTC2(402)が設けられている。CPU3(103)を含むチップCP1(110)の割込み制御回路INTC1(401)にCPU5(105)を含むチップCP2(120)から外部割込みの要因としてクロック停止解除割込み信号STPREL(410)が入る。CPU5(105)が発生させたCPU3(103)への割込みはCP2(120)内で割込み制御回路INTC2(402)に送られ、INTC2(402)からINTC1(401)への外部割込みとして伝えられる。INTC1(401)では、その割込みをCP1(101)内で受付けるか、受付ける場合にCPU1(101)〜CPU4(104)のどのCPUで受付けるかなど通常の割込みに対する設定と制御がなされるものとする。
CPU5(105)で、CPU3(103)のクロック停止解除のために、TH5(205)の地点6(216)においてCPU3(103)に対してチップ間の割込みを発生させると、CP1(110)は外部割込みとしてこれを受理し、指定されているCPU3(103)がこの割込みに係る処理を行う。外部割込みであるので、本実施の形態においては、この割込みによってCPU3(103)のクロック停止状態が解除され、クロック停止状態から復帰して以降の命令を実行する。CPU2(102)からCPU1(101)へ、チップ内で割込みによってクロック停止を解除する動作を説明する部分で記述したように、復帰したCPU3(103)がまず割込み処理ルーチンに移行し、その割込み処理が終了した後に、クロック停止を発行して停止している命令の地点4(214)の次に連続して配置されている命令の地点5(215)から命令の実行を再開することになる。
ここで、上記のような割込み処理は原則としてオペレーティングシステムOS1(151)が処理するもので、この割込み処理ルーチンはOS1(151)制御下のメモリMEM(190)に配置されたプログラム用の領域に置かれているが、プログラムの構成によってはTH1(201)〜TH4(204)のいずれかに置かれる場合もある。
あるCPUが他のCPUなどで実行される処理を省電力で待つには、上記のように待たせている処理を行っているCPUからの明示的な解除が発生するまでクロック停止状態にする場合と、自身でクロック停止時間を決められるので、そこまでの時間だけ待つようにする場合とがある。動画再生や音楽再生などでは予め定まった時間間隔で一塊の処理が終了すればよいので、処理に余裕がある場合に、後者のように残り時間だけクロック停止を行って待つ処理が考えられる。
そのような場合、チップCP1(110)内のCPU4(104)がプログラム上の地点7(217)において、定められた時間間隔に対して時間dだけ処理に余裕があるとして、地点5(215)で時間dだけクロック停止を行うものとする。本実施の形態においてはこのため、CPU4(104)は図3の解除用タイマRELTM1(310)に時間dを設定して、クロック停止命令を発行する。なお、他方のチップCP2(120)内のCPUの場合は、解除用タイマRELTM2(320)に時間を設定することになる。
RELTM1(310)はチップCP1(110)内のSLPC1(181)に付与されており、クロック停止中このタイマが属するハードウェアの領域にはこのタイマを動作させるために最低限の周期でクロックが提供され、動作している。RELTM1(310)は共有バス(350)を経由してCPU1(101)〜CPU4(104)から設定され、設定された時間dが経過すると、クロック停止解除機構SLPC1(181)から解除イベントを発行し解除要求信号RELREQ4(304)を送って対応するCPU4(104)のクロック停止状態を解除する。CPU4(104)はクロック停止状態から復帰して、以降の命令を実行する。このとき、クロック停止命令を発行して停止している命令の地点7(217)の次に連続して配置されている命令の地点8(218)から命令の実行を再開する。すなわち、クロック停止命令が発行されなかった場合に連続して実行されていたはずの命令から継続することになる。
さらに、複数コアプロセッサシステムにおいては、複数のCPU間で実行の同期をとる機構が装備されることが一般的である。これは、自身の処理が終了したCPUが、同期を行うべき複数個のCPU間で共有されている同期用のハードウェアである同期レジスタを設定し、すべての該同期に関連するCPUが同期レジスタを設定すると全体の同期待ちを抜けるものである。本実施の形態では、図3において、そのような同期レジスタSYNCREG1(330)、SYNCREG2(340)が装備されている。
今、CPU6(106)、CPU7(107)、CPU8(108)がそれぞれプログラムの地点9(219)、地点10(220)、地点11(221)で同期をとる必要があり、これらの地点に先に到達したCPU6(106)、CPU7(107)がそれぞれの地点で省電力のために同期レジスタを設定し、同設定命令の次の命令でクロック停止を発行してクロック停止状態となっている。CPU8(108)が最後に処理を終了して地点11(221)で同期レジスタを設定し、CPU6(106)、CPU7(107)、CPU8(108)全てがSYNCREG2(340)を設定すると、上記RELTM1(310)におけるものと同様に、クロック停止解除機構SLPC2(182)はSYNCREG2(340)の情報からクロック停止解除イベントを発行する。SLPC2(182)ではこのイベントにより解除要求信号RELREQ6(306)、RELREQ7(307)をそれぞれCPU6(106)、CPU7(107)に送り、対応するCPU6(106)、CPU7(107)のクロック停止状態を解除する。CPU8(108)は最後に同期に到達してSYNCREG2(340)を設定したので、クロック停止命令は実行せず、その次の命令を実行することになる。
図5によって、地点9(219)、10(220)、11(221)での各CPUの同期レジスタ設定とその次の命令処理の流れを示す。同期地点に到達したとき、ステップ500においてCPUは同期レジスタを設定する。これは例えば、同期レジスタが配列で構成されているとして、自身のCPU番号に対応する配列要素を「0」に設定することなどで実現される。次に、ステップ510において、同期対象の全てのCPU(本例ではCPU6(106)、CPU7(107)、CPU8(108))が同期レジスタの対応要素を「0」に設定して処理を完了している、すなわち同期できることを確認する。ステップ510において、まだ「0」を設定していないCPUがあれば(No)、そのCPU自身は同期待ち状態になる。本実施の形態では、ステップ520において、この同期待ちでクロック停止状態にする命令を発行し、実行するものとする。ステップ510において、対象の全てのCPUが処理を完了していれば(Yes)、同期が完了するので、全体の実行が再開される。本実施の形態では、同期レジスタを設定したCPUはステップ520の処理を実行せず、ステップ530において、使用した同期レジスタを初期化し、ステップ540で同期待ち命令の次の命令を実行する。最後に、同期レジスタを設定したCPU以外のCPUはクロック停止状態であり、この状態が図3の同期レジスタSYNCREG1(330)、SYNCREG2(340)と、クロック停止解除機構SLPC1(181)、SLPC2(182)によって解除されることになる。
以上のようにして、図2においてCPU6(106)、CPU7(107)はクロック停止状態から復帰して、それぞれ、地点12(222)、地点13(223)以降の命令を実行する。また、CPU8(108)は地点14(224)の命令から実行される。
以上説明したようにして、本実施の形態では、他のCPUからの明示的な要求でクロック停止状態を解除して命令実行を再開できるようにし、チップ内部のイベントによる解除・復帰後の処理ではクロック停止命令に連続して配置されている次命令からとなるようにすることによって、割込みハンドラや割込み処理に付随する命令列を実行する必要がなく、解除・復帰動作が高速になり、積極的にクロック停止を使用できるようになる。また、対象でない割込みはマスクすることによって、クロック停止状態の不要な解除を抑止できることにも繋がる。また、チップ間においては、通常の割込みを用いた省電力状態の解除とし、CPU個数が増加しても回路規模を増加させないようにすることができる。
したがって、本実施の形態により、複数のCPUを集積する複数コアプロセッサシステムにおいて、オーバヘッドなく省電力状態を使用することができ、低電力にて効率よく処理することが可能となる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、複数のCPUによって構成されるチップを複数結合することによって単一のパッケージを構成し、それらを構成する複数のCPUが1つまたは複数のOSで稼動する環境におけるプロセッサシステムの稼動時の電力状態制御方式に利用可能である。
100:パッケージ
101〜108:中央処理装置
110、120:チップ
151、152:オペレーティングシステム
161、162:アプリケーション
171〜178:クロック停止機構
181、182:クロック停止解除機構
190:メモリ
201〜208:スレッド
211〜224:地点
301〜308:解除要求信号
310、320:解除用タイマ
330、340:同期レジスタ
350、360:共有バス
401、402:割込み制御回路
410:クロック停止解除割込み信号
101〜108:中央処理装置
110、120:チップ
151、152:オペレーティングシステム
161、162:アプリケーション
171〜178:クロック停止機構
181、182:クロック停止解除機構
190:メモリ
201〜208:スレッド
211〜224:地点
301〜308:解除要求信号
310、320:解除用タイマ
330、340:同期レジスタ
350、360:共有バス
401、402:割込み制御回路
410:クロック停止解除割込み信号
Claims (8)
- 互いに通信可能である複数の中央処理装置を夫々が有する複数のチップを一つのパッケージ内に含めた半導体装置であって、
前記複数のチップは、前記パッケージ内で互いに通信可能であり、
前記半導体装置は、前記パッケージ上で1つまたは複数のオペレーティングシステムとアプリケーションプログラムを実行し、
前記複数のチップの夫々は、前記1つまたは複数のオペレーティングシステムとアプリケーションプログラムの実行時に1つまたは複数の中央処理装置を消費電力が低い省電力状態に移行させる第1の回路と、
前記第1の回路により省電力状態に移行させた前記1つまたは複数の中央処理装置の省電力状態を同じチップに備えられた他の中央処理装置からの通知により解除する第2の回路と、
前記第1の回路により省電力状態に移行させた前記1つまたは複数の中央処理装置の省電力状態を他のチップからの割り込み通知により解除する第3の回路とを備え、
前記第2の回路により前記省電力状態が解除された場合と、前記第3の回路により前記省電力状態が解除された場合とで、前記省電力状態が解除された直後に前記中央処理装置が行う処理フローが異なることを特徴とする半導体装置。 - 請求項1に記載の半導体装置において、
前記第2の回路と前記複数の中央処理装置のそれぞれとは、前記省電力状態を解除するための専用の信号線で接続され、
前記複数の中央処理装置のうち、前記第1の回路により省電力状態に移行させた第1の中央処理装置を、前記第2の回路からの前記信号線を通じた解除要求により前記第1の中央処理装置の省電力状態を解除し、前記第1の中央処理装置の命令実行を再開することを特徴とする半導体装置。 - 請求項2に記載の半導体装置において、
前記第1の中央処理装置の省電力状態を前記第2の回路により解除して命令実行を再開する際は、前記第1の中央処理装置を省電力状態に移行させた命令に連続して配置されている次の命令から実行することを特徴とする半導体装置。 - 請求項2に記載の半導体装置において、
前記チップ内には、さらに、前記省電力状態を解除するための時間を設定するタイマを備え、
前記タイマに設定された時間が経過した時点で、前記第2の回路から前記第1の中央処理装置の省電力状態を解除するイベントを発生させ、前記第2の回路からの前記信号線を通じた前記イベントにより前記第1の中央処理装置の省電力状態を解除し、前記第1の中央処理装置の命令実行を再開することを特徴とする半導体装置。 - 請求項4に記載の半導体装置において、
前記第1の中央処理装置の省電力状態を解除して命令実行を再開する際は、前記第1の中央処理装置を省電力状態に移行させた命令に連続して配置されている次の命令から実行することを特徴とする半導体装置。 - 請求項2に記載の半導体装置において、
前記チップ内には、さらに、前記複数の中央処理装置の同期をとるために前記複数の中央処理装置がそれぞれの命令を完了したことを設定するレジスタを備え、
前記複数の中央処理装置のうち、前記第1の中央処理装置に同期させて、同期待ち中の少なくとも1つの第2の中央処理装置を前記第1の回路により省電力状態に移行させる場合に、
前記第2の中央処理装置の省電力状態を解除する際に、前記レジスタに命令を完了したことが設定されて前記第1の中央処理装置および前記同期待ち中の第2の中央処理装置の同期が完了した時点で、前記第2の回路から前記同期待ち中の第2の中央処理装置の省電力状態を解除するイベントを発生させ、前記第2の回路からの前記信号線を通じた前記イベントにより前記同期待ち中の第2の中央処理装置の省電力状態を解除し、前記第1の中央処理装置および前記同期待ち中の第2の中央処理装置の命令実行を再開することを特徴とする半導体装置。 - 請求項6に記載の半導体装置において、
前記同期待ち中の第2の中央処理装置の省電力状態を解除して命令実行を再開する際は、前記同期待ち中の第2の中央処理装置を省電力状態に移行させた命令に連続して配置されている次の命令から実行することを特徴とする半導体装置。 - 請求項3に記載の半導体装置において、
前記第1の中央処理装置の省電力状態を前記第3の回路により解除して命令実行を再開する際は、前記第1の中央処理装置は割り込み処理ルーチンを実行した後、前記第1の中央処理装置を省電力状態に移行させた命令に連続して配置されている次の命令から実行することを特徴とする半導体装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008316957A JP2010140319A (ja) | 2008-12-12 | 2008-12-12 | 半導体装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008316957A JP2010140319A (ja) | 2008-12-12 | 2008-12-12 | 半導体装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010140319A true JP2010140319A (ja) | 2010-06-24 |
Family
ID=42350404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008316957A Pending JP2010140319A (ja) | 2008-12-12 | 2008-12-12 | 半導体装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010140319A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2400315A1 (en) | 2010-06-21 | 2011-12-28 | Nissan Motor Co., Ltd. | Travel distance detection device and travel distance detection method |
US9009513B2 (en) | 2011-01-31 | 2015-04-14 | Renesas Electronics Corporation | Multiprocessor for providing timers associated with each of processor cores to determine the necessity to change operating frequency and voltage for per core upon the expiration of corresponding timer |
JP2020009324A (ja) * | 2018-07-11 | 2020-01-16 | 株式会社デンソー | 電子装置 |
-
2008
- 2008-12-12 JP JP2008316957A patent/JP2010140319A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2400315A1 (en) | 2010-06-21 | 2011-12-28 | Nissan Motor Co., Ltd. | Travel distance detection device and travel distance detection method |
US9009513B2 (en) | 2011-01-31 | 2015-04-14 | Renesas Electronics Corporation | Multiprocessor for providing timers associated with each of processor cores to determine the necessity to change operating frequency and voltage for per core upon the expiration of corresponding timer |
JP2020009324A (ja) * | 2018-07-11 | 2020-01-16 | 株式会社デンソー | 電子装置 |
JP7087752B2 (ja) | 2018-07-11 | 2022-06-21 | 株式会社デンソー | 電子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649935B2 (en) | Deferred inter-processor interrupts | |
US7152169B2 (en) | Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state | |
US8055822B2 (en) | Multicore processor having storage for core-specific operational data | |
US8516483B2 (en) | Transparent support for operating system services for a sequestered sequencer | |
US9342350B2 (en) | System for selecting a task to be executed according to an output from a task control circuit | |
EP3140729B1 (en) | Thread waiting in a multithreaded processor architecture | |
US7853817B2 (en) | Power management independent of CPU hardware support | |
TWI454905B (zh) | 在多核心平台中之受限制的啓動技術 | |
EP1099167A4 (en) | METHOD AND APPARATUS FOR TRANSITION OF POWER MODE IN A MULTI-THREAD PROCESSOR | |
JP2006351008A (ja) | マルチスレッドプロセッサのディスパッチ時にスレッドをブロックする方法、コンピュータプログラム、および装置(精細なマルチスレッドディスパッチロックメカニズム) | |
JPH04278612A (ja) | プロセッサ用クロック信号の制御方法及び情報処理システム | |
US20210089296A1 (en) | Firmware boot task distribution to enable low latency boot performance | |
JP5568491B2 (ja) | マルチプロセッサ装置 | |
US20180348840A1 (en) | Predictive virtual machine halt | |
JP2001202155A (ja) | 低消費電力処理装置 | |
CN101526831B (zh) | 用于在多个时钟域之间提升确定性的装置、方法和*** | |
JP2010140319A (ja) | 半導体装置 | |
US20160224398A1 (en) | Synchronization in a Multi-Processor Computing System | |
CN107729055B (zh) | 微处理器及其执行方法 | |
JP5710424B2 (ja) | 情報機器 | |
US8881106B2 (en) | Debugging parallel software using speculatively executed code sequences in a multiple core environment | |
KR101285665B1 (ko) | 수면 모드를 지원하는 멀티 코어 시스템 온 칩 | |
US20160216756A1 (en) | Power management in computing devices | |
JP2008197943A (ja) | コンピュータシステム | |
US10338665B2 (en) | Microcontroller power reduction system and method |