説明

マルチプロセッサ装置

【課題】OS間によるロック取得を行なう必要がなく、処理効率を向上させることが可能なマルチプロセッサ装置を提供すること。
【解決手段】タイマ#0〜#3(22〜25)には、電源電圧の変更動作の禁止期間が設定される。タイマ#0〜#3(22〜25)のいずれかが禁止期間を経過したときに、OS#A(14)またはOS#B(15)が、そのタイマに対応するCPUコアの動作周波数の変更の要否を判定する。そして、動作周波数の変更が必要と判定されたときに、CPUコア#0〜#3(10〜13)に供給する電源電圧の変更の要否を判定する。電源電圧の変更が必要と判定されたときに、電源電圧変更部20が、CPUコア#0〜#3(10〜13)に供給する電源電圧を変更する。したがって、OS間によるロック取得を行なう必要がなく、処理効率を向上させることが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチコア(マルチプロセッサ)上で複数のOS(Operating System)が動作する環境において共有リソースの排他制御を行なう技術に関し、特に、OS間ロックを使用せずに共有リソースの排他制御を行なうマルチプロセッサ装置に関する。
【背景技術】
【0002】
近年、マルチメディア処理や高精細画像処理などのさまざまな分野で、プロセッサ性能の向上に対する要求が高まっている。しかし、現在のLSI(Large Scale Integrated circuit)製造技術ではデバイスの高速化にも限度がある。そこで、並列処理が注目を浴びており、マルチプロセッサシステムに関する研究、開発が盛んに行なわれている。
【0003】
一般に、マルチコア(マルチプロセッサ)上で複数のOSが動作する環境においては、OS間のロックによって、各OSに共有されるリソースへのアクセスの排他制御が行なわれている。これに関連する技術として、下記の特許文献1〜3に開示された発明および非特許文献1に開示された技術がある。
【0004】
特許文献1は、複数のCPUを集積するプロセッサシステムにおいて、オーバヘッドが少なく省電力状態を使用することができる半導体装置を提供することを目的とする。複数コアプロセッサシステムにおいて、パッケージ上で1つまたは複数のOSとアプリケーションプログラムを実行させ、それらの実行時に1つまたは複数のCPUをその動作時の消費電力が低い省電力状態に移行させるクロック停止機構に加えて、チップ内において、クロック停止機構により省電力状態に移行させた1つまたは複数のCPUの省電力状態を解除するクロック停止解除機構と、パッケージ内のチップ間において、クロック停止機構により省電力状態に移行させた1つまたは複数のCPUの省電力状態を解除する割込み制御回路とを備える。
【0005】
特許文献2は、消費電力を大きく削減することが可能なマルチプロセッサシステムを提供することを目的とする。プロセッサAは、プログラムAの処理時間見積値TaとプログラムBの処理時間見積値Tbとの比率に応じて、クロック周波数制御部を制御してプロセッサAに入力されるクロックの周波数を変更する。また、プロセッサAは、プロセッサAに入力されるクロックの周波数に応じて可変電源を制御して、プロセッサAに供給される電源電圧を変更する。したがって、プロセッサAの消費電力を大きく削減することが可能となる。
【0006】
特許文献3は、マルチコアプロセッサの構成を変更するための方法及び装置が開示されている。一実施の形態では、スロットルモジュール(又はスロットルロジック)が、現在実行されているプログラムに存在する並列性の量を求めることができ、さまざまなコアにおけるそのプログラムのスレッドの実行を変更することができる。並列性の量が多い場合には、少ない電力を消費するように構成されたコアで多くの量のスレッドを実行するようにプロセッサを構成することができる。並列性の量が低い場合には、より大きなスカラー性能を得るように構成されたコアで少ない量のスレッドを実行するようにプロセッサを構成することができる。
【0007】
非特許文献1は、各OSに共有されるリソースである共有メモリへのアクセスを、プロセッサの同期命令を使用して排他制御することを開示している。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2010−140319号公報
【特許文献2】特開2002−215599号公報
【特許文献3】特表2008−513912号公報
【非特許文献】
【0009】
【非特許文献1】菅井、遠藤、山口、近藤、「シングルチップマルチプロセッサ上のハイブリッドOS環境の実現−OS間インタフェースの実装−」、情報処理学会第66回全国大会2D−6、2004年3月
【発明の概要】
【発明が解決しようとする課題】
【0010】
従来のOS間ロックを用いたOS間リソース排他制御方式においては、OS数の増加に伴ってロック取得時間が増加するため、システム全体の処理効率が低下するといった問題点があった。
【0011】
また、OS間ロックのために使用されるメモリ領域に対して複数のプロセッサのアクセスが集中するため、バス性能が低下するといった問題点もあった。
【0012】
本発明は、上記問題点を解決するためになされたものであり、その目的は、OS間によるロック取得を行なう必要がなく、処理効率を向上させることが可能なマルチプロセッサ装置を提供することである。
【課題を解決するための手段】
【0013】
本発明のある局面に従えば、複数のプロセッサコア上で動作する複数のオペレーティングシステム間の共有リソースの排他制御を行なうマルチプロセッサ装置であって、複数のプロセッサコアは、それぞれ異なる動作周波数で動作可能であり、複数のプロセッサコアのそれぞれに対応して設けられ、電源電圧の変更動作の禁止期間が設定される複数のタイマと、複数のタイマのいずれかが禁止期間を経過したときに、当該タイマに対応するプロセッサコアの動作周波数の変更の要否を判定する第1の判定手段と、第1の判定手段によって動作周波数の変更が必要と判定されたときに、複数のプロセッサコアに供給する電源電圧の変更の要否を判定する第2の判定手段と、第1の判定手段によって動作周波数の変更が必要と判定されたときに、当該プロセッサコアに供給するクロックの周波数を変更する動作周波数変更手段と、第2の判定手段によって電源電圧の変更が必要と判定されたときに、複数のプロセッサコアに供給する電源電圧を変更する電源電圧変更手段とを含む。
【0014】
好ましくは、複数のタイマは、それぞれ異なるカウンタ値が設定されてからカウントダウンを開始し、複数のタイマのいずれかが0となったときに全てのタイマのカウントダウンが停止する。
【0015】
好ましくは、電源電圧変更手段は、複数のプロセッサコアに供給されるクロックの中で最も動作周波数が高いクロックに対応する電源電圧を複数のプロセッサコアに供給する。
【0016】
好ましくは、動作周波数変更手段は、第1の判定手段によって当該プロセッサコアの動作周波数を上げると判定された場合に、電源電圧変更手段によって電源電圧が上昇された後に動作周波数を上げる。
【0017】
好ましくは、動作周波数変更手段は、第1の判定手段によって当該プロセッサコアの動作周波数を下げると判定された場合に、複数のタイマのカウンタ値に関係なく動作周波数を下げる。
【0018】
本発明の別の局面に従えば、複数のプロセッサコア上で動作する複数のオペレーティングシステム間の共有リソースの排他制御を行なうマルチプロセッサ装置であって、複数のプロセッサコアは、それぞれ異なる動作周波数で動作可能であり、複数のオペレーティングシステムのそれぞれに対応して設けられ、電源電圧の変更動作の禁止期間が設定される複数のタイマと、複数のタイマのいずれかが禁止期間を経過したときに、当該タイマに対応するオペレーティングシステムが動作するプロセッサコアの動作周波数の変更の要否を判定する第1の判定手段と、第1の判定手段によって動作周波数の変更が必要と判定されたときに、複数のプロセッサコアに供給する電源電圧の変更の要否を判定する第2の判定手段と、第1の判定手段によって動作周波数の変更が必要と判定されたときに、当該プロセッサコアに供給するクロックの周波数を変更する動作周波数変更手段と、第2の判定手段によって電源電圧の変更が必要と判定されたときに、複数のプロセッサコアに供給する電源電圧を変更する電源電圧変更手段とを含む。
【発明の効果】
【0019】
複数のタイマのいずれかが禁止期間を経過したときに、第1の判定手段が、当該タイマに対応するプロセッサコアの動作周波数の変更の要否を判定し、第1の判定手段によって動作周波数の変更が必要と判定されたときに、第2の判定手段が、複数のプロセッサコアに供給する電源電圧の変更の要否を判定する。したがって、動作周波数および電源電圧の変更を排他的に行なうことができるため、OS間によるロック取得を行なう必要がなく、処理効率を向上させることが可能となる。
【0020】
また、複数のタイマは、それぞれ異なるカウンタ値が設定されてからカウントダウンを開始するので、カウンタ値が“0”となるタイマが1つだけとなり、そのタイマに対応するプロセッサコアの動作周波数の変更の必要性と、電源電圧の変更の必要性との判断を排他的に行なうことが可能となる。
【0021】
また、電源電圧変更手段は、複数のプロセッサコアに供給されるクロックの中で最も動作周波数が高いクロックに対応する電源電圧を複数のプロセッサコアに供給するので、最適な電源電圧を供給することが可能となる。
【0022】
また、動作周波数変更手段は、第1の判定手段によって当該プロセッサコアの動作周波数を上げると判定された場合に、電源電圧変更手段によって電源電圧が上昇された後に動作周波数を上げるので、プロセッサコアの誤動作を防止することが可能となる。
【0023】
また、動作周波数変更手段は、第1の判定手段によって当該プロセッサコアの動作周波数を下げると判定された場合に、複数のタイマのカウンタ値に関係なく動作周波数を下げるので、消費電力の削減を図ることが可能となる。
【図面の簡単な説明】
【0024】
【図1】本発明の第1の実施の形態におけるマルチプロセッサ装置の構成例を示すブロック図である。
【図2】周波数電圧対応表の一例を示す図である。
【図3】本発明の第1の実施の形態におけるマルチプロセッサ装置の動作を説明するためのフローチャートである。
【図4】本発明の第1の実施の形態におけるマルチプロセッサ装置の電源電圧を上昇させる場合の具体例を示す図である。
【図5】本発明の第1の実施の形態におけるマルチプロセッサ装置の電源電圧下降時の動作を説明するためのフローチャートである。
【図6】本発明の第1の実施の形態におけるマルチプロセッサ装置の電源電圧を下降させる場合の具体例を示す図である。
【発明を実施するための形態】
【0025】
(第1の実施の形態)
図1は、本発明の第1の実施の形態におけるマルチプロセッサ装置の構成例を示すブロック図である。このマルチプロセッサ装置は、複数のCPU(Central Processing Unit)コア#0〜#3(10〜13)と、CPUコア#0〜#1(10〜11)上で動作するOS#A(14)と、CPUコア#2〜#3(12〜13)上で動作するOS#B(15)と、CPUコア#0〜#3(10〜13)のそれぞれに対応して設けられるクロック生成部#0〜#3(16〜19)と、電源電圧変更部20と、システムクロック値取得部21と、CPUコア#0〜#3(10〜13)のそれぞれに対応して設けられるタイマ#0〜#3(22〜25)と、タイマクロック生成部26と、タイマカウンタ値取得部27とを含む。
【0026】
CPUコア#0〜#3(10〜13)は、クロック生成部#0〜#3(16〜19)のそれぞれから出力されるクロックを受けて動作する。また、CPUコア#0〜#3(10〜13)は、電源電圧変更部20から出力される電源電圧を受けて動作する。
【0027】
クロック生成部#0〜#3(16〜19)は、CPUコア#0〜#3(10〜13)からの指示、またはOS#A(14)およびOS#B(15)からの指示に応じてクロック周波数を変更可能である。したがって、CPUコア#0〜#3(10〜13)は、それぞれ異なるクロック周波数で動作可能である。
【0028】
電源電圧変更部20は、OS#A(14)またはOS#B(15)からの指示に応じて、CPUコア#0〜#3(10〜13)に供給する電源電圧を変更する。なお、CPU#0〜#3(10〜13)のそれぞれには、同じ電源電圧が与えられる。
【0029】
システムクロック値取得部21は、OS#A(14)またはOS#B(15)からの指示に応じて、クロック生成部#0〜#3(16〜19)から出力されるクロックの周波数(システムクロック値)を取得して、OS#A(14)またはOS#B(15)に出力する。
【0030】
タイマ#0〜#3(22〜25)は、CPUコア#0〜#3(10〜13)のそれぞれに対応して設けられている。タイマ#0〜#3(22〜25)には、電源電圧の変更動作を禁止する期間が設定され、タイマクロック生成部26から出力されるタイマクロックに同期してカウントダウンを行なう。カウンタ値が“0”となったタイマは、対応するCPUコアに割り込み要求を出力する。
【0031】
電源電圧の変更動作を禁止する期間として、たとえば対応するCPUコアのクロック周波数の変更の要否を判定する周期が設定される。タイマ#0〜#3(22〜25)に設定されるカウンタ値は任意である。ここで重要なのは、タイマ#0〜#3(22〜25)に設定されるカウンタ値がそれぞれ異なる値であり、必ずカウンタ値が“0”となるタイマが1つだけであるということである。
【0032】
タイマクロック生成部26は、タイマ#0〜#3(22〜25)に供給するタイマクロックを生成する。なお、タイマ#0〜#3(22〜25)には、同じタイマクロックが供給される。
【0033】
タイマカウンタ値取得部27は、タイマ#0〜#3(22〜25)のカウンタ値を取得し、カウンタ値が“0”となっているタイマがある場合には、タイマ#0〜#3(22〜25の全てのカウントダウンを停止する。また、タイマカウンタ値取得部27は、OS#A(14)またはOS#B(15)からの指示に応じてタイマ#0〜#3(22〜25)のカウンタ値を取得して、OS#A(14)またはOS#B(15)に出力する。
【0034】
図2は、周波数電圧対応表の一例を示す図である。この周波数電圧対応表は、CPUコア#0〜#3(10〜13)の中の最大動作周波数と、CPU#0〜#3(10〜13)に供給する電源電圧との対応を示している。
【0035】
最大動作周波数が150MHzであれば、CPUコア#0〜#3(10〜13)の電源電圧として1.0Vが設定される。最大動作周波数が300MHzであれば、CPUコア#0〜#3(10〜13)の電源電圧として1.2Vが設定される。また、最大動作周波数が600MHzであれば、CPUコア#0〜#3(10〜13)の電源電圧として1.4Vが設定される。
【0036】
この周波数電圧対応表は、OS#A(14)およびOS#B(15)内に設けられていてもよいし、電源電圧変更部20またはシステムクロック値取得部21内に設けられていてもよい。
【0037】
図3は、本発明の第1の実施の形態におけるマルチプロセッサ装置の動作を説明するためのフローチャートである。まず、タイマ#0〜#3(22〜25)にカウンタ値が設定され、タイマ#0〜#3(22〜25)がカウントダウンを開始する(S11)。たとえば、CPUコア#0〜#3(10〜13)がタイマ#0〜#3(22〜25)のそれぞれにカウンタ値を設定し、同じタイミングでカウントダウンを開始させる。
【0038】
また、OS#A(14)およびOS#B(15)がタイマ#0〜#3(22〜25)のカウンタ値を設定するようにしてもよい。なお、上述のように、タイマ#0〜#3(22〜25)に設定されるカウンタ値はそれぞれ異なる値であり、必ずカウンタ値が“0”となるタイマが1つだけとなるようにカウントダウンが開始される。
【0039】
次に、タイマカウンタ値取得部27は、タイマ#0〜#3(22〜25)のカウンタ値を取得し、カウンタ値が“0”のタイマがあるか否かを判定する(S12)。カウンタ値が“0”のタイマがなければ(S12,No)、ステップS12の処理が繰り返される。
【0040】
また、カウンタ値が“0”のタイマがあれば(S12,Yes)、タイマカウンタ値取得部27は、タイマ#0〜#3(22〜25)の全てのカウントダウンを停止する(S13)。このとき、カウンタ値が“0”となっているタイマが、対応するCPUコアに割り込み要求を出力する。
【0041】
CPUコア#0〜#3(10〜13)のいずれかが割り込み要求を受けると、そのCPUコア上で動作するOS#A(14)またはOS#B(15)が割り込み要求を受け付け、対応のCPUコアの動作周波数変更の必要性を判断する(S14)。たとえば、OS#A(14)またはOS#B(15)が、そのCPUコアの処理負荷を管理しており、処理負荷が小さくてクロック周波数が高すぎる場合にはクロック周波数を低くすると判断し、処理負荷が大きくてクロック周波数が低すぎる場合にはクロック周波数を高くすると判断する。
【0042】
対応のCPUコアの周波数変更の必要性がない場合には(S15,No)、ステップS19に処理が進む。また、対応のCPUコアの周波数変更の必要性がある場合には(S15,Yes)、OS#A(14)またはOS#B(15)が電源電圧を変更する必要性があるか否かを判定する(S16)。
【0043】
このとき、OS#A(14)またはOS#B(15)は、システムクロック値取得部21からCPUコア#0〜#3(10〜13)のクロック周波数を取得し、クロック周波数を変更した後の最大動作周波数を求める。そして、図2に示す周波数電圧対応表を参照して、最大動作周波数に対応する電源電圧を抽出し、その電源電圧と現在の電源電圧とを比較する。電源電圧が異なれば電源電圧の変更の必要性があると判断し、電源電圧が同じであれば電源電圧の変更の必要性がないと判断する。
【0044】
電源電圧を変更する必要性がない場合には(S16,No)、ステップS18に処理が進む。また、電源電圧を変更する必要性がある場合には(S16,Yes)、OS#A(14)またはOS#B(15)が電源電圧変更部20に対して電源電圧の変更を指示し(S17)、ステップS18に処理が進む。
【0045】
ステップS18において、OS#A(14)またはOS#B(15)は、対応のCPUコアの動作周波数を変更して、ステップS19に処理が進む。
【0046】
ステップS19において、OS#A(14)またはOS#B(15)は、カウンタ値が“0”となっているタイマのカウンタ値を更新する。そして、タイマ#0〜#3(22〜25)の全てのカウントダウンを再開させ(S20)、ステップS12に戻って以降の処理を繰り返す。
【0047】
図4は、本発明の第1の実施の形態におけるマルチプロセッサ装置の電源電圧を上昇させる場合の具体例を示す図である。図4に示すように、クロック生成部#0〜#3(16〜19)のそれぞれは、300MHz、300MHz、300MHz、150MHzのクロックを出力するように設定されている。また、タイマ#0〜#3(22〜25)のそれぞれには、500、1000、2000、3000のカウンタ値が設定されている。また、電源電圧変更部20は、CPUコア#0〜#3(10〜13)に1.2Vの電源電圧を供給している。
【0048】
タイマ#0〜#3(22〜25)のカウントダウンによって、最初にタイマ#0(22)のカウンタ値が“0”となり、タイマカウンタ値取得部27は、タイマ#0〜#3(22〜25)の全てのカウントダウンを停止する。このとき、タイマ#0(22)は、CPUコア#0(10)に対して割り込み要求を出力する。
【0049】
CPUコア#0(10)上で動作するOS#A(14)が割り込み要求を受け付けると、CPUコア#0(10)の動作周波数の変更の必要性を判断する。ここで、OS#A(14)が、CPUコア#0(10)の動作周波数を300MHzから600MHzに変更する必要性があると判断すると、システムクロック値取得部21から全てのCPUコアのクロック周波数を取得する。
【0050】
そして、周波数電圧対応表を参照して、電源電圧の変更の必要性を判断する。このとき、CPUコア#0(10)の動作周波数を600MHzに変更するため、OS#A(14)は、電源電圧を1.2Vから1.4Vに変更する必要があると判断する。
【0051】
OS#A(14)は、電源電圧変更部20に対して電源電圧を1.4Vに変更するよう指示した後、CPUコア#0(10)にクロックを供給するクロック生成部#0(16)にクロック周波数を600MHzに変更するよう指示する。そして、タイマ#0(22)のカウンタ値を更新して、タイマ#0〜#3(22〜25)のカウントダウンを再開するようタイマカウンタ値取得部27に指示する。
【0052】
図5は、本発明の第1の実施の形態におけるマルチプロセッサ装置の電源電圧下降時の動作を説明するためのフローチャートである。まず、タイマ#0〜#3(22〜25)にカウンタ値が設定され、タイマ#0〜#3(22〜25)がカウントダウンを開始する(S31)。
【0053】
次に、OS#A(14)およびOS#B(15)は、動作周波数の変更の必要性があるCPUコアがあるか否かを判断する(S32)。動作周波数の変更の必要性があるCPUコアがなければ(S32,No)、ステップS32の処理が繰り返される。
【0054】
また、動作周波数の変更の必要性があるCPUコアがあれば(S32,Yes)、タイマ#0〜#3(22〜25)のカウンタ値に関係なく、OS#A(14)またはOS#B(15)は、対応のCPUコアの動作周波数を変更する(S33)。
【0055】
次に、タイマカウンタ値取得部27は、タイマ#0〜#3(22〜25)のカウンタ値を取得し、カウンタ値が“0”のタイマがあるか否かを判定する(S34)。カウンタ値が“0”のタイマがあれば(S34,Yes)、タイマ#0〜#3(22〜25)の全てのカウントダウンを停止して処理を終了する。
【0056】
また、カウンタ値が“0”のタイマがなければ(S34,No)、OS#A(14)またはOS#B(15)が電源電圧を下げる必要性があるか否かを判定する(S35)。電源電圧を下げる必要性がない場合には(S35,No)、ステップS32に戻って以降の処理を繰り返す。また、電源電圧を下げる必要性がある場合には(S35,Yes)、OS#A(14)またはOS#B(15)が電源電圧変更部20に対して電源電圧の下降を指示し(S36)、ステップS32に戻って以降の処理を繰り返す。
【0057】
図6は、本発明の第1の実施の形態におけるマルチプロセッサ装置の電源電圧を下降させる場合の具体例を示す図である。図6に示すように、クロック生成部#0〜#3(16〜19)のそれぞれは、600MHz、300MHz、300MHz、150MHzのクロックを出力するように設定されている。また、タイマ#0〜#3(22〜25)のそれぞれには、500、1000、2000、3000のカウンタ値が設定されている。また、電源電圧変更部20は、CPUコア#0〜#3(10〜13)に1.4Vの電源電圧を供給している。
【0058】
ここで、CPUコア#0(10)上で動作するOS#A(14)が、CPUコア#0(10)の動作周波数の変更の必要性を判断するとする。このとき、OS#A(14)が、CPUコア#0(10)の動作周波数を600MHzから300MHzに変更する必要性があると判断すると、クロック生成部#0(16)にクロック周波数を300MHzに変更するよう指示する。
【0059】
次に、OS#A(14)は、タイマカウンタ値取得部27からタイマ#0〜#3(22〜25)のカウンタ値を取得し、カウンタ値が“0”となっているタイマがあるか否かを判定する。カウンタ値が“0”となっているタイマがあれば、そのまま処理を終了する。この場合、図3に示すステップS13以降の処理が行なわれるため、電源電圧の変更の必要性を判断する必要はない。
【0060】
また、カウンタ値が“0”となっているタイマがなければ、OS#A(14)は、周波数電圧対応表を参照して、電源電圧の変更の必要性を判断する。このとき、CPUコア#0(10)の動作周波数を300MHzに変更するため、OS#A(14)は、電源電圧を1.4Vから1.2Vに変更する必要があると判断し、電源電圧変更部20に対して電源電圧を1.2Vに変更するよう指示する。
【0061】
以上説明したように、本実施の形態におけるマルチプロセッサ装置によれば、タイマ#0〜#3(22〜25)にそれぞれ異なるカウンタ値を設定し、カウンタ値が“0”となったタイマに対応するCPUコアの動作周波数の変更の必要性および電源電圧の変更の必要性を判断するようにした。したがって、共有リソースである電源電圧を排他的に制御することができ、OS間によるロック取得を行なう必要がなくなり、処理効率を向上させることが可能となった。
【0062】
また、OS間によるロックの取得が不要となるため、OS間ロックで使用されるメモリ領域へのアクセスが集中するといった不具合が発生せず、バス性能の低下を防止することが可能となった。
【0063】
(第2の実施の形態)
本発明の第1の実施の形態におけるマルチプロセッサ装置は、CPUコア#0〜#3(10〜13)のそれぞれに対応してタイマ#0〜#3(22〜25)が設けられていた。それに対して、本発明の第2の実施の形態におけるマルチプロセッサ装置は、OS#A(14)およびOS#B(15)のそれぞれに対応してタイマが設けられる構成を有する。
【0064】
たとえば、タイマ#1(23)およびタイマ#3(25)を削除し、OS#A(14)にはタイマ#0(22)が対応するようにし、OS#B(15)にはタイマ#2(24)が対応するようにする。
【0065】
そして、タイマ#0(22)のカウンタ値が“0”となったときに、OS#A(14)がCPUコア#0(10)およびCPUコア#1(11)の動作周波数の変更の必要性を判断する。また、タイマ#2(24)のカウンタ値が“0”となったときに、OS#B(15)がCPUコア#2(12)およびCPUコア#3(13)の動作周波数の変更の必要性を判断する。それ以降の動作については、第1の実施の形態において説明したものと同様である。
【0066】
以上説明したように、本実施の形態におけるマルチプロセッサ装置によれば、OSのそれぞれに対応してタイマを設けるようにしたので、第1の実施の形態において説明した効果に加えて、ハードウェア構成および排他制御の処理をさらに簡略化することが可能となった。
【0067】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0068】
10〜13 CPUコア、14,15 OS、16〜19 クロック生成部、20 電源電圧変更部、21 システムクロック値取得部、22〜25 タイマ、26 タイマクロック生成部、27 タイマカウンタ値取得部。

【特許請求の範囲】
【請求項1】
複数のプロセッサコア上で動作する複数のオペレーティングシステム間の共有リソースの排他制御を行なうマルチプロセッサ装置であって、
前記複数のプロセッサコアは、それぞれ異なる動作周波数で動作可能であり、
前記複数のプロセッサコアのそれぞれに対応して設けられ、電源電圧の変更動作の禁止期間が設定される複数のタイマと、
前記複数のタイマのいずれかが前記禁止期間を経過したときに、当該タイマに対応するプロセッサコアの動作周波数の変更の要否を判定する第1の判定手段と、
前記第1の判定手段によって動作周波数の変更が必要と判定されたときに、前記複数のプロセッサコアに供給する電源電圧の変更の要否を判定する第2の判定手段と、
前記第1の判定手段によって動作周波数の変更が必要と判定されたときに、当該プロセッサコアに供給するクロックの周波数を変更する動作周波数変更手段と、
前記第2の判定手段によって電源電圧の変更が必要と判定されたときに、前記複数のプロセッサコアに供給する電源電圧を変更する電源電圧変更手段とを含む、マルチプロセッサ装置。
【請求項2】
前記複数のタイマは、それぞれ異なるカウンタ値が設定されてからカウントダウンを開始し、前記複数のタイマのいずれかが0となったときに全てのタイマのカウントダウンが停止する、請求項1記載のマルチプロセッサ装置。
【請求項3】
前記電源電圧変更手段は、前記複数のプロセッサコアに供給されるクロックの中で最も動作周波数が高いクロックに対応する電源電圧を前記複数のプロセッサコアに供給する、請求項1または2記載のマルチプロセッサ装置。
【請求項4】
前記動作周波数変更手段は、前記第1の判定手段によって当該プロセッサコアの動作周波数を上げると判定された場合に、前記電源電圧変更手段によって電源電圧が上昇された後に動作周波数を上げる、請求項1〜3のいずれかに記載のマルチプロセッサ装置。
【請求項5】
前記動作周波数変更手段は、前記第1の判定手段によって当該プロセッサコアの動作周波数を下げると判定された場合に、前記複数のタイマのカウンタ値に関係なく動作周波数を下げる、請求項1〜3のいずれかに記載のマルチプロセッサ装置。
【請求項6】
複数のプロセッサコア上で動作する複数のオペレーティングシステム間の共有リソースの排他制御を行なうマルチプロセッサ装置であって、
前記複数のプロセッサコアは、それぞれ異なる動作周波数で動作可能であり、
前記複数のオペレーティングシステムのそれぞれに対応して設けられ、電源電圧の変更動作の禁止期間が設定される複数のタイマと、
前記複数のタイマのいずれかが前記禁止期間を経過したときに、当該タイマに対応するオペレーティングシステムが動作するプロセッサコアの動作周波数の変更の要否を判定する第1の判定手段と、
前記第1の判定手段によって動作周波数の変更が必要と判定されたときに、前記複数のプロセッサコアに供給する電源電圧の変更の要否を判定する第2の判定手段と、
前記第1の判定手段によって動作周波数の変更が必要と判定されたときに、当該プロセッサコアに供給するクロックの周波数を変更する動作周波数変更手段と、
前記第2の判定手段によって電源電圧の変更が必要と判定されたときに、前記複数のプロセッサコアに供給する電源電圧を変更する電源電圧変更手段とを含む、マルチプロセッサ装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−159920(P2012−159920A)
【公開日】平成24年8月23日(2012.8.23)
【国際特許分類】
【出願番号】特願2011−17695(P2011−17695)
【出願日】平成23年1月31日(2011.1.31)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】