JP5568491B2 - マルチプロセッサ装置 - Google Patents

マルチプロセッサ装置 Download PDF

Info

Publication number
JP5568491B2
JP5568491B2 JP2011017695A JP2011017695A JP5568491B2 JP 5568491 B2 JP5568491 B2 JP 5568491B2 JP 2011017695 A JP2011017695 A JP 2011017695A JP 2011017695 A JP2011017695 A JP 2011017695A JP 5568491 B2 JP5568491 B2 JP 5568491B2
Authority
JP
Japan
Prior art keywords
power supply
supply voltage
operating frequency
timers
changing
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.)
Expired - Fee Related
Application number
JP2011017695A
Other languages
English (en)
Other versions
JP2012159920A (ja
Inventor
整 山本
章雄 出原
康宏 田原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2011017695A priority Critical patent/JP5568491B2/ja
Priority to US13/362,734 priority patent/US9009513B2/en
Publication of JP2012159920A publication Critical patent/JP2012159920A/ja
Application granted granted Critical
Publication of JP5568491B2 publication Critical patent/JP5568491B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Description

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

Claims (6)

  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の判定手段によって電源電圧の変更が必要と判定されたときに、前記複数のプロセッサコアに供給する電源電圧を変更する電源電圧変更手段とを含む、マルチプロセッサ装置。
JP2011017695A 2011-01-31 2011-01-31 マルチプロセッサ装置 Expired - Fee Related JP5568491B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011017695A JP5568491B2 (ja) 2011-01-31 2011-01-31 マルチプロセッサ装置
US13/362,734 US9009513B2 (en) 2011-01-31 2012-01-31 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011017695A JP5568491B2 (ja) 2011-01-31 2011-01-31 マルチプロセッサ装置

Publications (2)

Publication Number Publication Date
JP2012159920A JP2012159920A (ja) 2012-08-23
JP5568491B2 true JP5568491B2 (ja) 2014-08-06

Family

ID=46578407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011017695A Expired - Fee Related JP5568491B2 (ja) 2011-01-31 2011-01-31 マルチプロセッサ装置

Country Status (2)

Country Link
US (1) US9009513B2 (ja)
JP (1) JP5568491B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049704A (zh) * 2013-03-12 2014-09-17 鸿富锦精密工业(深圳)有限公司 芯片供电调节系统及方法
US9477257B1 (en) * 2013-03-13 2016-10-25 Juniper Networks, Inc. Methods and apparatus for limiting a number of current changes while clock gating to manage power consumption of processor modules
US9357016B2 (en) * 2013-10-18 2016-05-31 Damaka, Inc. System and method for virtual parallel resource management
TW202142997A (zh) * 2020-05-11 2021-11-16 瑞昱半導體股份有限公司 應用在電子裝置的控制方法與相關的電子裝置及處理器
CN113692034B (zh) * 2020-05-18 2024-05-28 瑞昱半导体股份有限公司 应用在电子装置的控制方法与相关的电子装置及处理器
KR20220145004A (ko) 2021-04-21 2022-10-28 삼성전자주식회사 클록 관리 회로 및 이를 포함하는 멀티-코어 시스템

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2560620B2 (ja) * 1993-09-02 1996-12-04 日本電気株式会社 時間制限付排他制御装置
US6226717B1 (en) * 1999-02-04 2001-05-01 Compaq Computer Corporation System and method for exclusive access to shared storage
US7100061B2 (en) * 2000-01-18 2006-08-29 Transmeta Corporation Adaptive power control
JP2002215599A (ja) 2001-01-18 2002-08-02 Mitsubishi Electric Corp マルチプロセッサシステムおよびその制御方法
US6954864B2 (en) * 2002-03-29 2005-10-11 Intel Corporation Method and apparatus for remotely placing a computing device into a low power state
US7065641B2 (en) * 2002-06-13 2006-06-20 Intel Corporation Weighted processor selection apparatus and method for use in multiprocessor systems
US7437581B2 (en) 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US7477575B2 (en) * 2005-09-23 2009-01-13 Verisign, Inc. Redundant timer system and method
US7689851B2 (en) * 2006-10-27 2010-03-30 Hewlett-Packard Development Company, L.P. Limiting power state changes to a processor of a computer device
JP4800289B2 (ja) * 2007-11-30 2011-10-26 富士通セミコンダクター株式会社 電源制御装置及びその電源制御装置を有するシステムlsi
JP2010140319A (ja) 2008-12-12 2010-06-24 Hitachi Ltd 半導体装置
US8181049B2 (en) * 2009-01-16 2012-05-15 Freescale Semiconductor, Inc. Method for controlling a frequency of a clock signal to control power consumption and a device having power consumption capabilities
US8595567B2 (en) * 2010-12-16 2013-11-26 Wind River Systems, Inc. Method and system for spinlock fault recovery

Also Published As

Publication number Publication date
JP2012159920A (ja) 2012-08-23
US20120198257A1 (en) 2012-08-02
US9009513B2 (en) 2015-04-14

Similar Documents

Publication Publication Date Title
JP5568491B2 (ja) マルチプロセッサ装置
CN105183128B (zh) 强制处理器进入低功率状态
US9494998B2 (en) Rescheduling workloads to enforce and maintain a duty cycle
EP2879017B1 (en) Performing an operating frequency change using a dynamic clock control technique
US8214662B2 (en) Multiprocessor control unit, control method performed by the same, and integrated circuit
TWI305883B (en) Method of managing power consumption and the computer apparatus and computing system using the same
EP2889720B1 (en) Dynamically adapting a voltage of a clock generation circuit
US8914650B2 (en) Dynamically adjusting power of non-core processor circuitry including buffer circuitry
TWI489266B (zh) 指定應用程式執行緒的效能狀態之指令
WO2017105734A1 (en) Controlling telemetry data communication in a processor
DE112017004361T5 (de) Steuern eines leistungszustands eines prozessors unter verwendung einer kombination von package- und thread-hinweis-informationen
CN110226148B (zh) 时钟分频器装置及其方法
EP2818963B1 (en) Restricting clock signal delivery in a processor
US9377836B2 (en) Restricting clock signal delivery based on activity in a processor
DE112017004991T5 (de) Ausgleichssteuerung für variable energieschienen
EP3855285A1 (en) System, apparatus and method for latency monitoring and response
JP2010140319A (ja) 半導体装置
JP2008041106A (ja) 半導体集積回路装置、クロック制御方法及びデータ転送制御方法
KR20210133221A (ko) 적응적 인터커넥트 라우팅을 위한 시스템, 장치 및 방법
US11829769B2 (en) Instruction driven dynamic clock management for deep pipeline and out-of-order operation of microprocessor using on-chip critical path messenger and elastic pipeline clocking
EP2927806B1 (en) Integrated circuit, electronic device and ic operation method
Qi et al. Dynamic Management of Hardware Multi-threading for Network Processors
Zeng et al. Power Management for Idle Time in the Presence of Periodic Interrupt Services
TW201040705A (en) Power management method and related chipset and computer system
JP2009301471A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130911

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140515

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140527

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140623

R150 Certificate of patent or registration of utility model

Ref document number: 5568491

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees