JP2016212554A - 演算処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP2016212554A
JP2016212554A JP2015094108A JP2015094108A JP2016212554A JP 2016212554 A JP2016212554 A JP 2016212554A JP 2015094108 A JP2015094108 A JP 2015094108A JP 2015094108 A JP2015094108 A JP 2015094108A JP 2016212554 A JP2016212554 A JP 2016212554A
Authority
JP
Japan
Prior art keywords
arithmetic processing
state
instruction
power
instruction processing
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.)
Granted
Application number
JP2015094108A
Other languages
English (en)
Other versions
JP6418056B2 (ja
Inventor
亮平 岡崎
Ryohei Okazaki
亮平 岡崎
則人 五明
Norihito Gomyo
則人 五明
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015094108A priority Critical patent/JP6418056B2/ja
Priority to US15/075,274 priority patent/US10628154B2/en
Publication of JP2016212554A publication Critical patent/JP2016212554A/ja
Application granted granted Critical
Publication of JP6418056B2 publication Critical patent/JP6418056B2/ja
Active 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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/3243Power saving in microcontroller unit
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

【課題】消費電力の変動幅を抑制する演算処理装置及びその制御方法を提供する。
【解決手段】命令を処理する命令処理状態ではクロックを供給されて命令を処理し、命令処理を停止する命令処理停止状態ではクロックの供給が停止されて省電力動作状態に遷移する内部回路と、省電力動作を無効化する電力制御回路とをそれぞれ有する複数の演算処理部と、複数の演算処理部の命令処理停止状態を監視し、命令処理停止状態の演算処理部の数をカウントする監視回路とを有し、複数の演算処理部のそれぞれの電力制御回路は、命令処理停止状態の演算処理部の数が閾値を越えた場合、前記命令処理停止状態の演算処理部の前記省電力動作を無効化する演算処理装置。
【選択図】図6

Description

本発明は,演算処理装置及び演算処理装置の制御方法に関する。
演算処理回路(またはプロセッサ、CPU(Central Processing Unit)チップ)などの集積回路装置は、内部回路の消費電力が急変するとき電源ノイズを発生する。電源ノイズは、内部回路の消費電力が急変することで電源配線に流れる電流量が急変し、電源配線で供給される電源電圧が変動することで発生する。電源ノイズが発生すると、電源電圧を供給されている内部回路が誤動作する可能性がある。したがって、電源ノイズをできるだけ小さくすることが要求される。
演算処理装置や集積回路装置の電源ノイズを低減する方法については、以下の特許文献に記載されている。
近年の高性能のプロセッサは、複数のコア(またはCPUコア、演算処理部)を有し、複数の命令列を並列に実行する。さらに、高性能のプロセッサは、コア内に複数の演算回路を有し、複数の命令を並列に実行する。このように、プロセッサ内のコア数の増大、コア内の演算回路数の増大に伴って、プロセッサの消費電力が増大してきた。
上記のようなプロセッサの消費電力を削減するために、プロセッサ内のレジスタファイル、RAM(Random Access Memory)、演算回路など個々の内部回路は、クロックゲート回路を有する。クロックゲート回路は、動作中にクロックを内部回路に供給し、停止中はクロックの供給を停止する。このようにクロックゲート回路を利用して細かく省電力制御(パワーセーブ制御:Power save control)を行うことにより、省電力(パワーセーブ:Power save)状態に遷移することが行われる。
複数のコアを有するプロセッサは、前述のクロックの供給を停止する省電力制御を利用して、コアが命令を処理する命令処理状態から命令の処理を停止する命令処理停止状態に推移すると、そのコア内の回路へのクロックの供給を停止してコアの消費電力を低減する。
特開2013−205905号公報 特開2014−59761号公報 特表2013−516710号公報 特開2009−123235号公報 特開2004−013820号公報 特開2001−142558号公報
しかしながら、プロセッサ内のコア数が増大したことで、命令処理状態から命令処理停止状態に推移するコアの数が多くなると、または、命令処理停止状態から命令処理状態に復帰するコアの数が多くなると、消費電力の増減幅が大きくなり、大きな電源ノイズが発生する。高性能のプロセッサのコア数の増大は、この消費電力の増減幅をより大きくし、電源ノイズによる電源電圧の変動幅を大きくする。
そこで,実施の形態の第1の側面は,消費電力の変動幅を抑制する演算処理装置及びその制御方法を提供する。
本実施の形態の第1の側面は,命令を処理する命令処理状態ではクロックを供給されて前記命令を処理し、命令処理を停止する命令処理停止状態では前記クロックの供給が停止されて省電力動作状態に遷移する内部回路と、前記省電力動作を無効化する電力制御回路とをそれぞれ有する複数の演算処理部と、前記複数の演算処理部の前記命令処理停止状態を監視し、前記命令処理停止状態の演算処理部の数をカウントする監視回路とを有し、前記複数の演算処理部のそれぞれの電力制御回路は、前記命令処理停止状態の演算処理部の数が閾値を越えた場合、前記命令処理停止状態の演算処理部の前記省電力動作を無効化する、演算処理装置である。
第1の側面によれば,消費電力の変動幅を抑制する演算処理装置及びその制御方法を提供する。
プロセッサの消費電力の変動例を示す図である。 第1の実施の形態におけるプロセッサの構成を示す図である。 プロセッサ内のコア11の構成例を示す図である。 プロセッサの内部回路の省電力動作と省電力動作を禁止または抑止する動作を説明する図である。 本実施の形態における監視回路13の構成とコア11の構成とを示す図である。 第1の実施の形態のプロセッサの電力制御の一例を示す図である。 第1の実施の形態におけるプロセッサの電力制御の別の例を示す図である。 第1の実施の形態でのプロセッサの電力制御のさらに別の例を示す図である。 第1の実施の形態の変形例におけるプロセッサの構成図である。 第2の実施の形態におけるコアの構成を示す図である。 図10のコア内の命令制御回路の構成を示す図である。 第2の実施の形態における監視回路13の構成を示す図である。 第2の実施の形態における各コアの電力制御回路15の構成を示す図である。 第2の実施の形態における監視回路と各コアの電力制御回路の動作を示すフローチャート図である。 第2の実施の形態でのプロセッサの電力制御の例を示す図である。 第2の実施の形態でのプロセッサの電力制御の別の例を示す図である。 第3の実施の形態におけるプロセッサの構成を示す図である。 第3の実施の形態における監視回路と電力制御回路の構成図である。 第4の実施の形態における監視回路の構成を示す図である。 第4の実施の形態でのコアが命令処理状態から命令処理停止状態に移行する時の電力制御を示す図である。 第4の実施の形態でのコアが命令処理停止状態から命令処理状態に復帰する時の電力制御を示す図である。 第5の実施の形態における電力制御回路15の構成を示す図である。 第5の実施の形態におけるDPS信号生成回路の構成例を示す図である。 図22,23の電力制御回路15とDPS信号生成回路151の動作を示すタイミングチャート図である。 第5の実施の形態におけるプロセッサ全体の消費電力の変動を示す図である。 第5の実施の形態における電力制御回路の構成例を示す図である。 図26の電力制御回路の動作を示すタイミングチャート図である。
図1は、プロセッサの消費電力の変動例を示す図である。横軸が時間で、縦軸がプロセッサチップの消費電力を示す。図1の例では、プロセッサが6つのコアCORE1〜CORE6を有する。そして、プロセッサでは、時刻t30に5つのコアCORE1-5がほぼ同時に命令処理状態から命令処理停止状態に推移し、時刻t31に5つのコアCORE1-5がほぼ同時に命令処理停止状態から命令処理状態に推移する。そのため、時刻t30でのプロセッサチップの消費電力の低下変動幅dPWは非常に大きく、それに伴い電源電圧が大きく変動する(上昇する)。同様に、時刻t31でのプロセッサチップの消費電力の上昇変動幅dPWも非常に大きく、それに伴い電源電圧が大きく変動する(低下する)。
[第1の実施の形態]
図2は、第1の実施の形態におけるプロセッサの構成を示す図である。プロセッサ10は、複数のコアCORE1〜CORE_Nと、それらに共通に設けられた二次キャッシュメモリ12を有する。そして、プロセッサ10は、コアCORE1〜CORE_Nの命令処理停止状態を監視する監視回路13を有する。また、プロセッサ10は、電源回路1から電源電圧VDDを供給され、電源電圧VDDは、図示しない内部の電源配線を介して、各コア11、L2キャッシュメモリ13、監視回路13に供給される。
図3は、プロセッサ内のコア11の構成例を示す図である。コア11は、命令を処理する内部回路14と、内部回路14の電力制御を行う電力制御回路15を有する。内部回路14は、命令を処理するデコーダや演算器などの回路を有する。内部回路14は、クロック生成回路13からクロックCLK1を受信し、クロックイネーブル信号CLKENに応じて、クロックCLK1を入力し、またはクロックの入力を停止する。また、内部回路14は、命令処理停止状態を通知する命令処理停止信号S1_1と、命令処理停止状態の解除を通知する停止解除信号S1_2とを、電力制御回路15に出力する。そして、電力制御回路15は、それらの信号S1_1、S1_2を監視回路13に出力する。内部回路14は、例えば、サスペンド命令SUSやスリープ命令SLを実行したときに命令処理停止信号S1_1を出力する。また、内部回路14は、割込が発生したときなどに、サスペンド解除E_SUSやスリープ解除E_SLの停止解除信号S1_2を出力する。
監視回路13は、各コア11から供給される命令処理停止信号S1_1と停止解除信号S1_2に基づいて、命令処理停止中のコア数をカウントする。具体例は後述する。
図4は、プロセッサの内部回路の省電力動作と省電力動作を禁止または抑止する動作を説明する図である。本実施の形態での省電力動作(パワーセーブ動作)は、一例として、内部回路14へのクロックの供給を停止する動作である。
図4(A)に示されるとおり、コアの内部回路14は、例えば、クロックCLK1の内部回路への供給とその供給の停止を制御するクロックゲートCKGと、クロックゲートCKGが出力するクロックCLK2が供給されるクロックツリーCLK_TREEと、論理回路LOGとを有する。論理回路LOGは、例えば、複数の組み合わせ回路と、組み合わせ回路の前後に設けられた複数のラッチ回路FFを有する。そして、ラッチ回路FFは、クロックCLK2に基づいて動作する。
クロックゲートCKGは、ANDゲートAND1とORゲートOR1とを有する。図4(B)に示されるとおり、クロックゲートCKGのANDゲートAND1は、クロックイネーブル信号CLKENがH(Highレベル)の場合(時間t1−t2)、供給されるクロックCLK1を通過させ、クロックCLK2を内部回路内のクロックツリーCLK_TREEに出力する。この状態が内部回路の動作状態である。また、ANDゲートAND1は、クロックイネーブル信号CLKENがL(LOWレベル)の場合に、クロックCLK1の通過を停止し、クロックCLK2の供給に要する電力をセーブする。クロックイネーブル信号CLKENをLにしてクロックを停止することで、内部回路は省電力動作状態に遷移し省電力動作を実行する。この状態では、クロックCLK2のクロックツリー内の伝播が停止するため、内部回路14の多くの電力が削減される。
クロックイネーブル信号CLKENは、例えば、内部回路14内の命令制御回路(図示せず)により生成される。つまり、内部回路14は、命令の処理状態に応じて、論理回路LOGの動作が必要か否かを検出し、動作が必要ない場合にクロックイネーブル信号CLKENをLにして省電力動作状態に遷移する。例えば、サスペンド命令やスリープ命令に応じて、内部回路14は、クロックイネーブル信号CLKENをLにして省電力動作状態に遷移する。
内部回路内の命令制御回路は、コアが命令処理停止状態になると、クロックイネーブル信号CLKENをLにして省電力動作状態に遷移する。また、命令処理停止状態では、内部回路は命令処理を行わないので、最小限の電力消費状態になる。これにより、コア内部の動作停止可能な内部回路に対するクロックの印加を停止でき、消費電力を大幅に削減することができる。一方、電力制御回路15は動作状態を継続する。
クロックゲートCKGは、ORゲートOR1に省電力無効化信号DPS(Disable Power Save)を入力する。図4(B)に示されるとおり、クロックゲートCKGは、クロックイネーブル信号CLKENがLであっても、省電力無効化信号DPSがHの場合(時間t3−t4)、クロックCLK1を通過させクロックCLK2をクロックツリーに供給する。これにより、クロックイネーブル信号による省電力動作が無効化される。これが省電力無効状態である。
省電力動作の別の例として、例えば、内部回路14内の動作停止可能な回路への電源スイッチを遮断してもよい。その場合、電源スイッチは、クロックイネーブル信号に代わる電力制御信号(図示せず)によりオン、オフ制御され、一方で、省電力無効化信号DPSにより強制的にオンに制御される。上記以外の様々方法で省電力動作が実現可能である。そして、省電力無効化信号DPSにより省電力動作が無効化される。
図5は、本実施の形態における監視回路13の構成とコア11の構成とを示す図である。各コア11は、図3で示されるとおり、電力制御回路15を有し、電力制御回路15は、命令処理停止信号S1_1と停止解除信号S1_2を監視回路13に出力する。
監視回路13は、命令処理停止状態のコア数をカウントするカウンタ131を有する。カウンタ131は、いずれかのコアの電力制御回路15から出力される命令処理停止信号S1_1に応答してカウントアップし、停止解除信号S1_2に応答してカウントダウンする。その結果、カウンタ131のカウント値CNTは、命令処理停止状態のコア数を示す。
図5の例では、監視回路13は、さらに、ファームウエアのメモリ2から出力される閾値コア数Cthが設定される閾値コア数レジスタ133と、カウンタ131の命令処理停止状態のコア数を示すカウント値CNTと閾値コア数Cthとを比較するコンパレータ132を有する。コンパレータ132は、カウント値CNTが閾値コア数Cthを越えると、コア数オーバー信号(制御信号)Over_Cthを全てのコア11の電力制御回路15に出力する。
図3に示した各コア11の電力制御回路15は、コア数オーバー信号Over_Cthに応答して、省電力無効化信号DPS(Hレベル)を内部回路14に出力する。その結果、命令処理停止状態のコアでは、クロックイネーブル信号CLKENをLレベルにしてクロックを停止する省電力動作が、省電力無効化信号DPS(Hレベル)により、無効化される。
[第1の実施の形態での電力制御例1]
図6は、第1の実施の形態のプロセッサの電力制御の一例を示す図である。横軸が時間、縦軸がプロセッサチップの消費電力を示す。この例では、プロセッサが6個のコアを有し、閾値コア数Cthが「3」に設定され、監視回路13内のカウンタ131は初期値「0」である。
まず、時刻t1でコアCORE1が命令処理停止状態に入る。すなわち、内部回路14内の命令制御回路がサスペンド命令またはスリープ命令を実行し、命令処理停止信号S1_1を電力制御回路15に出力し、電力制御回路15はその信号S1_1を監視回路13に出力する。信号S1_1に応答して、監視回路13のカウンタ131は、カウントアップしカウント値CNT=1になる。また、内部回路14内の命令制御回路がクロックイネーブル信号CLKENをLレベル(クロックディセーブル)にし、クロックゲートCKGはクロックCLK1の通過を停止し、コアCORE1は省電力動作状態に遷移する。その結果、図6に示されるとおり、プロセッサチップの消費電力は、コアCORE1の電力だけ低下する。
時刻t2でコアCORE2が命令処理停止状態になる。これにより、監視回路13のカウンタ131はカウント値CNTをCNT=2にする。そして、時刻t1と同様に、プロセッサチップの消費電力は、コアCORE2の消費電力分低下する。
時刻t3でコアCORE3が命令処理停止状態になる。これにより、監視回路13のカウンタ131はカウント値CNTをCNT=3にする。そして、時刻t1, t2と同様に、プロセッサチップの消費電力は、コアCORE3の消費電力分低下する。
次に、時刻t4でコアCORE4が命令処理停止状態になる。これにより、コアCORE4内の内部回路14はクロックイネーブル信号CLKENをLレベル(クロック停止状態)にする。また、監視回路13のカウンタ131のカウント値CNTはCNT=4になり、比較器132がCNT=4>Cth=3を検出し、コア数オーバー信号Over_CthをHレベルにし、命令処理停止状態のコア数が閾値コア数Cth=3を越えたことを検出する。
コア数オーバー信号Over_Cth=Hに応答して、全てのコアCORE1-CORE6の電力制御回路15は、省電力無効化信号DPSをHレベル(省電力無効状態)にする。それにより、命令処理停止状態により省電力動作中のコアCORE1、CORE2、CORE3とこれから省電力動作に入るコアCORE4は、DPS=Hにより省電力無効状態になる。
その結果、時刻t4でのプロセッサチップの消費電力の低下は、コアCORE4が省電力動作する場合よりも小さい。図6中に示される電力PW_DPSは、命令処理停止状態のコアCORE1-CORE4の省電力無効状態での消費電力の合計に対応する。すなわち、命令処理停止状態のコアCORE1-CORE4では、DPS=Hにより内部回路14でのクロックCLK2の停止が無効化され、クロックCLK2の伝播に要する電力消費が生じる。そのため、命令処理停止状態のコアCORE1-CORE4は、クロックCLK2の伝播に要する電力消費が発生し、電力PW_DPSを消費する。
この結果、プロセッサチップ内の消費電力は、命令処理状態のコアCORE5、CORE6の消費電力PW_CORE5,6と、命令処理停止状態のコアCORE1-CORE4の省電力無効状態の消費電力PW_DPSの合計になる。この合計電力PW_CORE5,6+PW_DPSと、全コアが命令処理状態の電力PW_CPRE1-6との差分は、電源ノイズが許容範囲内になる許容電力差P_dPWより小さい。
そして、時刻t5でプロセッサに割込が発生し、コアCORE1-4のサスペンドまたはスリープが解除され、命令処理停止状態から命令処理状態に遷移する。このとき、コアCORE1-4は一斉に命令処理を開始しプロセッサチップの消費電力は急上昇する。しかし、コアCORE1-4は省電力無効状態でクロックCLK2の伝播による電力を消費していたため、時刻t5で一斉に命令処理を開始しても、それに伴う消費電力の変動量は許容電力差P_dPW以内であり、電源ノイズが許容範囲にとどまり、コア内の回路が不良動作することが抑制される。
命令処理停止状態のコアは、プロセッサに突然割込が発生する場合、一斉に命令処理状態に復帰することがある。そこで、第1の実施の形態では、各コアが命令処理停止状態に入るたびに、命令処理停止状態のコア数が閾値コア数Cthを越えているか判定し、越えている場合、命令処理停止状態のコアの省電力動作を無効化しておく。その結果、突然割込が発生して停止状態の複数のコアが一斉に命令処理状態に復帰しても、電力変動幅を許容範囲P_dPWに抑えることができる。
上記の閾値コア数Cthは、電力変動の許容範囲P_dPWと、コアが命令処理状態から処理停止状態に遷移する場合の電力低下量(省電力量)と、コアが省電力動作を無効化して命令処理状態から処理停止状態に遷移する場合の電力低下量(省電力量)とに応じて、設定することが望ましい。
そして、複数の命令処理停止状態のコアを省電力動作を無効化した場合の消費電力と、それら複数の命令処理停止状態のコアが全て命令処理停止状態から命令処理状態に復帰した時の消費電力との差電力が、許容電力差P_dPW以下になるように、閾値コア数Cthを設定することが望ましい。この差電力は複数のコアによる省電力量に対応する。
上記のように、第1の実施の形態では、コアが次々に命令処理状態から命令処理停止状態に推移する場合、プロセッサの消費電力は最初は急峻に低下するが、命令処理停止状態のコア数が閾値コア数を越えた後は、その低下率は弱まる。そして、命令処理停止状態の複数のコアが一斉に命令処理状態に復帰するときの電力電動が、許容電力差P_dPW以下に抑制される。
[第1の実施の形態での電力制御例2]
図7は、第1の実施の形態におけるプロセッサの電力制御の別の例を示す図である。この例も、プロセッサが6個のコアを有し、閾値コア数Cthが「3」に設定され、監視回路13内のカウンタ131は初期値「0」である。
この例では、時刻t10で5個のコアCORE1-5が短時間で命令処理状態から命令処理停止状態に遷移する。その場合、各コアの内部回路14の命令制御回路は、命令処理停止信号S1_1を電源制御回路15を経由して監視回路13に出力し、所定の短時間後にクロックイネーブル信号CLKENをLレベル(クロック停止状態、省電力動作状態)にする。
一方、監視回路13は、上記の所定の短時間の間に、5個のコアCORE1-5からそれぞれ命令処理停止信号S1_1を受信した場合、カウント値CNTがCNT=5(>Cth=3)になり、コア数オーバー信号Over_CthをHレベルにする。各コアCORE1-5では、所定の短時間後に内部回路14がクロックイネーブル信号CLKENをLレベルにして省電力動作をしようとするが、電源制御回路15が省電力無効化信号DPSをHレベル(省電力無効化)にするため、コアCORE1-5は省電力無効状態で命令処理停止状態になる。そのため、時刻t10でのコアCORE1-5による電力変動dPWは、許容電力差P_dPW以内になり、電源ノイズは許容値以内になる。
つまり、時刻t10では、閾値コア数Cthを越える複数のコアが所定の短時間で一斉に命令処理停止状態に遷移する場合、複数の命令処理停止状態のコアCORE1-5の省電力動作を無効化した場合のプロセッサの消費電力の低下量(命令処理停止による省電力量であり、電力変動幅dPWと等しい)が、許容電力差P_dPW以下になる。この省電力量である電力変動幅dPWは、6個のコアが命令処理状態の場合のプロセッサの消費電力PW_CORE1-6と、5個のコアCORE1-5が省電力無効状態の場合の電力PW_DPSと命令処理状態のコアCORE6の電力PW_CORE6の合計(PW_CORE6+PW_DPS)との電力差である。時刻t10では、この電力変動幅dPWが許容電力差P_dPW以下になるように、複数のコアCORE1-5の電力制御回路が、省電力動作の無効化を実行する。
次に、時刻t11でプロセッサに割込が発生し、命令処理停止状態の5個のコアCORE1-5が一斉に命令処理状態に復帰している。しかし、時刻t11より前において、5個のコアCORE1-5は命令処理停止状態ではあるが省電力禁止状態であった。したがって、時刻t11で命令処理状態に復帰するときのプロセッサチップの電力変動dPWは、許容電力差P_dPW以内であり、電源ノイズは許容範囲内にあり、プロセッサの誤動作が抑制される。
すなわち、本実施の形態では、複数の命令処理停止状態のコアCORE1-5が省電力無効状態の場合のプロセッサの消費電力の低下量(命令処理状態復帰時の電力変動dPWと等しい)が、時刻t11での許容電力差P_dPW以下になる。時刻t11の直前では、この電力変動幅dPWが許容電力差P_dPW以下になるように、複数のコアCORE1-5の電力制御回路が、省電力動作の無効化を実行する。
時刻t11での動作は、図6と同様である。
[第1の実施の形態での電力制御例3]
図8は、第1の実施の形態でのプロセッサの電力制御のさらに別の例を示す図である。この例も、プロセッサが6個のコアを有し、閾値コア数Cthが「3」に設定され、監視回路13内のカウンタ131は初期値「0」である。
この例では、時刻t10で、コアCORE1、CORE2が、短時間の間に命令処理実行状態から命令処理停止状態に遷移する。その場合も、各コアCORE1,CORE2の内部回路14の命令制御回路は、命令処理停止信号S1_1を電源制御回路15を経由して監視回路13に出力し、所定の短時間後にクロックイネーブル信号CLKENをLレベル(クロック停止状態、省電力動作状態)にする。
しかし、監視回路13は、命令処理停止状態のコア数が「2」であり、閾値コア数Cth(=3)を越えていないので、コア数オーバー信号Over_CthをLレベルのままにする。その結果、両コアCORE1、CORE2の電力制御回路15は省電力動作禁止信号DPSをLレベルのまま維持し、内部回路14は省電力動作状態に遷移するを実行する。
但し、短時間で一斉に命令処理停止状態に遷移するコア数が2個であるので、時刻t10での電力変動dPWは、許容電力差P_dPWよりも小さく、電源ノイズは許容範囲内である。
また、時刻t11で、プロセッサに割込が発生し、命令処理停止状態のコアCORE1,CORE2は一斉に命令処理状態に復帰する。しかし、その時の電力変動dPWは、許容電力差P_dPWよりも小さく、電源ノイズは許容範囲内である。
[第1の実施の形態の監視回路と電力制御回路の変形例]
図5の監視回路は、複数のコアに共通に設けられ、閾値コア数Cthを設定する閾値コア数レジスタ133と比較器132を有し、複数のコアに共通のコア数オーバー信号Over_Cthを出力する。
それに対して、変形例では、図5の監視回路13はカウンタ131を有し、各コアの電力制御回路15が閾値コア数レジスタ133と比較器132を個別に有し、個別に閾値コア数を設定する。このような構成の場合、各コアが、命令処理停止状態のコア数に対応して制御される省電力無効状態の内部回路の数を個別に且つ柔軟に制御できる。
図9は、第1の実施の形態の変形例におけるプロセッサの構成図である。変形例では、4つのコアCORE1〜CORE4に閾値コア数Cthが個別に設定される。例えば、消費電力が大きいコアCORE1,CORE2は、より小さい閾値コア数Cth=2に設定し、より多くの内部回路を省電力無効状態に制御(省電力無効化を強く制御)し、一方、消費電力が小さいコアCORE3,CORE4は、より大きい閾値コア数Cth=3に設定して、より少ない内部回路を省電力無効状態に制御(省電力無効化を緩く制御)する。具体的には、後述する図18に示す構成に対応する。
[第2の実施の形態]
第2の実施の形態では、プロセッサ内の複数のコアは、複数の内部回路を有する。そして、複数の内部回路は、クロックイネーブル信号CLKENによって、個別にまたは一括してクロック停止状態に制御可能である。さらに、各コアの電力制御回路は、命令処理停止状態のコアの省電力動作を無効化する場合、命令処理停止状態のコアの数に応じた数の内部回路を省電力無効状態に制御する。
例えば、電力制御回路は、命令処理停止状態のコア数が第1の数の場合よりも、命令処理停止状態のコア数が第1の数より多い第2の数の場合のほうが、省電力動作を無効化する内部回路の数を多くする。このように制御することで、プロセッサは、命令処理停止状態のコア数が少ない場合は、より少ない数の内部回路の省電力動作を無効化して、各コア毎の省電力量をより多くする。一方で、プロセッサは、命令処理停止状態のコア数が多い場合は、より多い数の内部回路の省電力動作を無効化して、各コア毎の省電力量をより小さくする。これにより、プロセッサは、許容電力差P_dPWの範囲内で最大限に省電力することができる。
図10は、第2の実施の形態におけるコアの構成を示す図である。コア11は、内部回路が複数に分割されている。すなわち、コア11は、内部回路として、命令をフェッチしてデコードする命令制御回路110と、分岐履歴を記憶する分岐履歴メモリ111と、一次命令キャッシュメモリ112と、一次データキャッシュメモリ113とを有する。さらに、コア11は、内部回路として、アドレス生成回路114と固定小数点演算器115と浮動小数点演算器116の3つの演算器と、レジスタファイル117とを有する。これらの内部回路は、図4に示したとおり、クロックの供給と停止を行うクロックゲートCKGを有し、クロックイネーブル信号CLKENにより個別にまたは一括してクロックの供給と停止状態に制御される。クロックイネーブル信号CLKENは、例えば命令制御回路110が出力する。以下、電力制御回路と、上記の内部回路について簡単に説明する。
電力制御回路15は、命令制御回路110からサスペンド状態やスリープ状態への遷移を通知する命令処理停止信号S1_1と、サスペンド状態やスリープ状態の解除を通知する停止解除信号S1_2を受信し、監視回路13に出力する。また、電力制御回路15は、命令制御回路110、分岐履歴メモリ111、一次命令キャッシュメモリ112、一次データキャッシュメモリ113、及びレジスタファイル117に省電力無効化信号DPS1〜DPS5をそれぞれ出力する。
命令制御回路110は、一次命令キャッシュメモリ112から読み出した命令列を順次実行する。命令制御回路110は、サスペンド命令やスリープ命令を実行すると、命令に応じてサスペンド状態やスリープ状態に遷移して命令処理を停止し、その遷移を通知する命令処理停止信号S1_1を電力制御回路15に出力する。また、命令制御回路110は、サスペンド状態やスリープ状態の解除条件(時間又は外部割込み等)の成立を監視する。命令制御回路110は、サスペンド状態やスリープ状態の解除条件が成立すると、サスペンド状態やスリープ状態を解除して命令処理を再開し、その解除を通知する停止解除信号S1_2を電力制御回路15に出力する。そして、命令制御回路110は、サスペンド状態やスリープ状態の命令処理停止状態において、クロックイネーブル信号CLKENにより、一部の内部回路を省電力状態に制御する。
分岐履歴メモリ111は、過去に実行された分岐命令の分岐先アドレスや分岐成否等の分岐履歴を記録するメモリである。
一次命令キャッシュメモリ112は、実行する命令を格納するメモリである。 一次データキャッシュメモリ25は、命令実行の際に使用するデータを格納するRAMである。さらに、レジスタファイル117は、各種演算処理で使用されるデータを保持するレジスタ群である。
浮動小数点演算器116は、浮動小数点演算を行う演算器であり、2つの浮動小数点演算器FLA、FLBを有する。浮動小数点演算器116は、レジスタファイル117からデータを読み出し、そのデータについて演算を実行し、演算結果をレジスタファイル117に書き込む。浮動小数点演算器FLA及びFLBは、例えば同等の機能を有するが、浮動小数点演算器FLBが浮動小数点演算器FLAで処理できる演算の一部のみを処理できるように構成されてもよい。
固定小数点演算器115は、固定小数点演算を行う演算器であり、2つの固定小数点演算器EXA、EXBを有する。固定小数点演算器115は、レジスタファイル117からデータを読み出し、そのデータについて演算を実行し、演算結果をレジスタファイル117に書き込む。固定小数点演算器EXA及びEXBは、例えば同等の機能を有するが、固定小数点演算器EXBが、固定小数点演算器EXAが処理できる機能の一部のみを処理できるように構成されてもよい。
アドレス生成回路114は、ロード命令やストア命令についてロード対象やストア対象のメモリのアドレスを計算する。アドレス生成回路114は、2つのアドレス生成回路EAGA、EAGBを有する。アドレス生成回路114は、レジスタファイル117からデータを読み出し、データに基づいてアドレスを生成し、一次データキャッシュメモリ113にアクセスを実行する。アドレス生成回路114は、ロード命令の場合、一次データキャッシュメモリ113から読み出したデータをレジスタファイル117に書き込み、ストア命令の場合、レジスタファイル117から読み出されたデータを一次データキャッシュメモリ113に書き込む。アドレス生成回路EAGA、EAGBは同等の機能を有するが、アドレス生成回路EAGBがEAGAが処理できる機能の一部のみを処理できるように構成されてもよい。
前述したとおり、命令制御回路110の一部、分岐履歴メモリ111、一次命令キャッシュメモリ112、一次データキャッシュメモリ113、レジスタファイル117は、それぞれ動作が必要でない場合と、コアが命令処理停止状態の場合に、クロックイネーブル信号CLKEN=Lにより省電力状態に推移する。但し、電力制御回路15が省電力無効化信号DPS1〜DPS5をHレベル(省電力無効状態)を出力している場合は、各回路内のクロックゲートがクロックの供給を実行し、省電力動作が無効化される。
図11は、図10のコア内の命令制御回路の構成を示す図である。命令制御回路110は、命令バッファ118、命令デコーダ119、固定小数点演算用リザベーションステーションRSE、浮動小数点演算用リザベーションステーションRSF、アドレス生成用リザベーションステーションRSA、コミットスタックエントリCSEを有する。命令バッファ118は、一次命令キャッシュメモリ112から読み出した命令を一時的に格納し、命令デコーダ119にその命令を供給する。
命令デコーダ119は、命令バッファ118から供給された命令をデコードし、命令種別に応じて各リザベーションステーションRSE、RSF、RSAに命令を発行し、全ての命令をコミットスタックエントリCSEに発行する。また、命令デコーダ119は、命令に応じて動作不要の回路に対してクロックイネーブル信号CLKENを出力する。
RSEは、命令デコーダ119から固定小数点演算命令を受信し、演算処理に必要なデータが準備できるまで待機した後、固定小数点演算器EXA、EXBの何れかに命令及びデータを出力する。
RSFは、命令デコーダ119から浮動小数点演算命令を受信し、演算処理に必要なデータが準備できるまで待機した後、浮動小数点演算器FLA、FLBの何れかに命令及びデータを出力する。
RSAは、命令デコーダ119からロード命令やストア命令を受け取り、ロードアドレス計算やストアアドレス計算に必要なデータが準備できるまで待機した後、アドレス生成回路EAGA、EAGBの何れかに命令及びデータを出力する。
コミットスタックエントリCSEは、命令デコーダ119が発行した命令順に、各演算器の動作を完了させ、完了に必要な制御信号を出力する。例えば、CSEは、サスペンス命令やスリープ命令が完了すると、命令処理停止信号S1_1を電力制御回路15に出力する。同様に、CSEは、割込が発生すると、命令処理停止解除信号S1_2を電力制御回路15に出力する。
図12は、第2の実施の形態における監視回路13の構成を示す図である。図12の監視回路13は、図5に示した第1の実施の形態の監視回路と異なり、複数の閾値コア数レジスタ133を有し、それらに対応して、命令処理停止状態のコア数をカウントするカウンタ131のカウント値CNTと複数の閾値コア数Cth1-4とをそれぞれ比較する複数の比較器132を有することである。図12の例では、4つの閾値コア数レジスタ133と4つの比較器132とを有する。
4つの閾値コア数レジスタ133には、閾値コア数Cthとして、0からカウンタの最大値までの任意の値を設定可能である。そして、望ましい例では、4つの閾値コア数レジスタ133には、小さい値から大きい値に順番に異なる4つの閾値コア数Cth_1〜Cth_4が設定される。そして、カウンタ131のカウント値CNTが増大するに応じて、4つの比較器132は、コア数オーバー信号Over_Cth1〜Over_Cth4(Hレベル)をそれぞれ、複数のコア11内の電力制御回路15に出力する。閾値コア数Cth_1〜Cth_4は、ファームウエアを格納するメモリ2から、所定のタイミング、例えばプロセッサの起動時に閾値コア数レジスタ133に設定される。
図13は、第2の実施の形態における各コアの電力制御回路15の構成を示す図である。電力制御回路15は、コア内の命令制御回路110からの命令処理停止信号S1_1と停止解除信号S1_2を、監視回路13に転送する。さらに、電力制御回路15は、比較器132からのコア数オーバー信号Over_Cth1〜Over_Cth4に基づいて、省電力無効化信号DPS1〜DPS5を生成するDPS信号生成回路151を有する。
DPS信号生成回路151は、例えば、コア数オーバー信号Over_Cth1〜Over_Cth4をそのまま省電力無効化信号DPS1〜DPS4として出力し、さらに、コア数オーバー信号Over_Cth5をそのまま省電力無効化信号DPS5として出力する。
例えば、閾値コア数Cth_1〜Cth_4をそれぞれ2,3,4,5に設定したと仮定する。この場合、監視回路13の4つの比較器132は、命令処理停止状態のコア数が3,4,5,6になると、それぞれ、省電力無効化信号DPS1をHレベル、DPS1,DPS2をHレベル、DPS1,DPS2,DPS3をHレベル、DPS1,DPS2,DPS3,DPS4,DPS5をHレベルにする。つまり、各コアの電力制御回路15は、命令処理停止状態のコアの省電力動作を無効化する場合、命令処理停止状態のコア数に応じた数の内部回路を省電力無効状態に制御する。上記の例では、命令処理停止状態のコア数が多いほど、多い数の内部回路を省電力無効状態に制御する。
また、別の例では、閾値コア数Cth_1〜Cth_3を「3」に設定し、閾値コア数Cth_4を「4」に設定したと仮定する。この場合、監視回路13の4つの比較器132は、命令処理停止状態のコア数が4になると、コア数オーバー信号Over_Cth1〜Over_Cth3をHレベルにし、省電力無効化信号DPS1〜DPS3のHレベル(無効化状態)により3つの内部回路が省電力無効状態になる。そして、命令処理停止状態のコア数が5になると、コア数オーバー信号Over_Cth1〜Over_Cth4をすべてHレベルにし、省電力無効化信号DPS1〜DPS5のHレベル(無効化状態)により5つの内部回路が省電力無効状態になる。この場合も、各コアの電力制御回路15は、命令処理停止状態のコア数が多いほど、多い数の内部回路を省電力無効状態に制御する。
DPS信号生成回路151は、任意の論理でコア数オーバー信号Over_Cth1〜Over_Cth4から省電力無効化信号DPS1〜DPS5を生成してもよい。例えば、図13の破線で示したAND回路AND2のように、省電力無効化信号DPS5を、コア数オーバー信号Over_Cth1とOver_Cth2の反転論理値の論理積で生成してもよい。そのようなAND回路AND2は、例えば閾値コア数Cth_1=2、Cth_2=3に設定されている場合、命令処理停止状態のコア数が3の場合のみ省電力無効化信号DPS5がHレベル(無効化状態)になる。
いずれの場合も、複数のコアが一斉に命令処理停止状態から命令処理状態に復帰するときの電力変動が許容電力差以下になり、且つ命令処理停止状態で最大の省電力量が得られるように制御することが望ましい。つまり、命令処理停止状態では、停止状態のコア数に係わらず、プロセッサの消費電力が、許容電力差を確保できる電力レベルにできるだけ近づくように制御することが望ましい。
図14は、第2の実施の形態における監視回路と各コアの電力制御回路の動作を示すフローチャート図である。例えば、コアCORE_Nがサスペンド命令またはスリープ命令を実行して命令処理停止状態に移行したとする。その場合、コアCORE_Nの電力制御回路15が、サスペンド命令又はスリープ命令の実行により命令処理停止状態に推移することを、信号S1_1により監視回路13に通知する(S10)。これに応答して、監視回路13のカウンタ131がカウント値CNTを+1し、4つの比較器132がカウント値CNTと閾値コア数Cth1〜Cth4とそれぞれ比較し、命令処理停止状態のコア数を示すカウント値CNTが閾値コア数Cth1〜Cth4よりそれぞれ大きい場合、対応するコア数オーバー信号Over_Cth1〜Over_Cth4をHレベルにする(S11)。
コアCORE_Nを含む全てのコアの電力制御回路15は、コア数オーバー信号Over_Cth1〜Over_Cth4に基づいて、いくつかの省電力無効化信号DPS1〜DPS5をHレベル(無効化状態)にする(S12)。そして、コアCORE_Nは、サスペンド状態またはスリープ状態に移行する(S13)。このとき、コアCORE_Nの内部回路は全てクロックイネーブル信号CLKENのHレベル(省電力状態)により省電力動作状態にされるが、いくつかの内部回路は省電力無効化信号DPSにより省電力動作が無効化され、電力を消費する。
その後、例えば割込が発生して、コアCORE_Nがサスペンドまたはスリープ状態から解除されると仮定する。これに応答してコアCORE_Nの電力制御回路15が命令処理停止解除信号S1_2を監視回路13に通知する(S14)。監視回路13のカウンタはカウント値CNTを−1し、複数の比較器がカウント値CNTと閾値コア数Cth1〜Cth4とをそれぞれ比較し、いくつかのコア数オーバー信号Over_Cth1〜Over_Cth4をHレベルにする(S15)。そして、コアCORE_Nを含む全てのコアの電力制御回路15は、コア数オーバー信号Over_Cth1〜Over_Cth4に基づいて、いくつかの省電力無効化信号DPS1〜DPS5をHレベル(無効化状態)にする(S16)。
やがて、プロセッサに割込が発生して、サスペンド状態またはスリープ状態の全てのコアがサスペンド状態またはスリープ状態から解除され、命令処理状態に復帰する(S17)。この時のプロセッサチップの電力変動は、許容電力差P_dPW以内になり、電源ノイズによる誤動作が抑制される。
[第2の実施の形態での電力制御例1]
図15は、第2の実施の形態でのプロセッサの電力制御の例を示す図である。この例では、例えば、閾値コア数Cth_1が「2」,Cth_2が「3」、Cth_3,4が「4」に設定されているとする。
まず、時刻t1,t2では、コアCORE1、DORE2がそれぞれ命令処理停止状態に推移する。この場合、監視回路13のカウンタ131のカウント値CNTが「1」,「2」であり、いずれの閾値コア数より小さいので、比較器132は全てのコア数オーバー信号をLレベルに維持する。そのため、コアCORE1、CORE2はそれぞれ省電力動作状態になり、プロセッサの消費電力は、コアCORE1,CORE2それぞれの省電力量に対応する電力変動で低下する。
次に、時刻t3では、さらにコアCORE3が命令処理停止状態に推移する。この場合、監視回路13のカウンタ131のカウント値CNTが「3」であり、閾値コア数Cth_1=2を越えるため、比較器132はコア数オーバー信号Over_Cth1をHレベルにする。そのため、コアCORE1、CORE2、CORE3では、それぞれ省電力無効化信号DPS1がHレベル(無効化状態)になり、1つの内部回路が省電力動作を無効され電力を消費する状態で命令処理停止状態に推移する。その結果、プロセッサの電力量の変化量dPW3は、コアCORE1,CORE2が命令処理停止状態に推移した時刻t1,t2での変化量よりも小さくなり、プロセッサの消費電力は許容電力差P_dPWに対応する許容電力レベルP_PWより高いレベルに維持される。
さらに、時刻t4では、さらにコアCORE4が命令処理停止状態に推移する。この場合、監視回路13のカウンタ131のカウント値CNTが「4」であり、閾値コア数Cth_1=2、Cth_2=3を越えるため、比較器132はコア数オーバー信号Over_Cth1、Over_Cth2をHレベルにする。そのため、コアCORE1、CORE2、CORE3、CORE4では、それぞれ省電力無効化信号DPS1、DPS2がHレベル(無効化状態)になり、2つの内部回路が省電力動作を無効化され電力を消費する状態で命令処理停止状態に推移する。その結果、プロセッサの電力量の変化量dPW4は、時刻t1,t2での変化量よりも小さく、また時刻t3の変化量dPW3よりも小さく、プロセッサの消費電力は、許容電力差P_dPWに対応する許容電力レベルP_PWより高いレベルに維持される。
このように、第2の実施の形態では、命令処理停止状態のコア数が増えるほど、それらのコア内の省電力無効状態の内部回路の数が増えるので、プロセッサの消費電力は、許容電力差P_dPWに対応する許容電力レベルP_PWより高いが近接するレベルに維持される。
そして、時刻t5で、プロセッサに割込が発生し、命令処理停止状態の全てのコアCORE1〜CORE4が一斉に命令処理状態に推移する。このときのプロセッサの電力変動量が許容電力差P_dPW以内に抑えられ、電源ノイズが抑制される。
以上のように第2の実施の形態によれば、次々にコアが命令処理停止状態に遷移した場合、プロセッサの電力の低下は、最初は急峻に低下するが、停止状態のコア数が閾値を越えた後は、低下率が徐々に小さくなる。そのため、プロセッサの消費電力は、許容電力差P_dPWに対応する電力レベルP_PWに漸近する。
[第2の実施の形態での電力制御例2]
図16は、第2の実施の形態でのプロセッサの電力制御の別の例を示す図である。この例では、例えば、閾値コア数がCth_1=3,Cth_2=3、Cth_3=3、Cth_4=4に設定されている。
そして、時刻t10で、4つのコアCORE1〜CORE4が所定の短時間で命令処理停止状態に推移したと仮定する。この場合、監視回路13のカウント値CNTはCNT=4であり、閾値コア数Cth_1〜CTh_3=3を越えるので、図13のDPS信号生成回路がDPS1〜DPS3をHレベルにして、4つのコアCORE1〜CORE4内の3つの内部回路が省電力無効状態になる。その結果、4つのコアCORE1〜CORE4の消費電力PW_CORE1-4(PW_DSP1-4)が省電力状態より大きくなり、プロセッサの消費電力レベル(PW_CORE1-4(PW_DSP1-4)+PW_CORE5+PW_CORE6)は、許容電力差P_dPWに対応する許容電力レベルP_PWより高いレベルに維持される。
また、時刻t10で、5つのコアCORE1〜CORE5が短時間で命令処理停止状態に推移したと仮定する。この場合、監視回路13のカウント値CNTはCNT=5であるので、閾値コア数Cth_1〜CTh_3=3とCth_4=4を越えるので、図13のDPS信号生成回路がDPS1〜DPS4をHレベルにして、5つのコアCORE1〜CORE5内の4つの内部回路が省電力無効状態になる。その結果、5つのコアCORE1〜CORE5の消費電力PW_CORE1-5(PW_DSP1-5)が省電力状態より大きくなり、プロセッサの消費電力レベル(PW_CORE1-5(PW_DSP1-5)+PW_CORE6)も、許容電力差P_dPWに対応する許容電力レベルP_PWより高いレベルに維持される。
したがって、時刻t11で全てのコアが命令処理状態に復帰したときの電力変動は、許容電力差P_dPW以内に抑制される。
上記の通り、第2の実施の形態によれば、命令処理停止状態のコア数が増加すれば、それらのコア内の省電力無効状態の内部回路の数も増加する。したがって、プロセッサは、消費電力を、可能な限り、許容電力差P_dPWに対応する許容電力レベルP_PWに漸近するように制御することができ、全てのコアが命令処理状態に復帰した時の電力変動を許容電力差P_dPW以内に抑制する。
[第3の実施の形態]
第2の実施の形態におけるプロセッサは、図12に示されるとおり、複数のコアに共通に設けられた監視回路13が閾値コア数レジスタ133と比較器132とを有し、全コアに対して共通の閾値コア数が閾値コア数レジスタ133に設定され、共通の比較器が比較結果であるコア数オーバー信号Over_Cthを全コアに出力する。
一方、第3の実施の形態におけるプロセッサでは、監視回路がコア数カウンタを有し、各コアの電力制御回路が、複数の閾値コア数レジスタと、コア数カウンタのカウント値と閾値コア数とを比較しカウント値が閾値コア数を越えるとコア数オーバー信号を出力する複数の比較器とを有する。そして、各コアの電力制御回路が、コア数オーバー信号に応じて命令処理停止状態のコアの省電力動作を無効化する。これにより、各コアは個別に閾値コア数を設定でき、各コアの内部回路の構成に応じた最適の省電力無効化の制御を行う。
図17は、第3の実施の形態におけるプロセッサの構成を示す図である。図10と異なり、図17では、消費電力が大きいコアCORE1,CORE2は、閾値コア数をCth1,2=2、 Cth3,4=3に設定し、命令処理停止状態のコア数が少ない段階でも省電力無効化の制御を行う。一方、消費電力が小さいコアCORE3,CORE4は、閾値コア数をCth1,2=3, Cth3,4=4に設定し、命令処理停止状態のコア数が多くなってから省電力無効化の制御を行う。
図18は、第3の実施の形態における監視回路と電力制御回路の構成図である。図18では、コア数がNである。そして、コアCORE_Nの電力制御回路15のみ構成が示されている。図18の監視回路13は、命令停止状態のコア数をカウントするカウンタ131を有する。一方、各コアの電力制御回路15は、複数の閾値コア数レジスタ152と、コア数カウンタのカウント値CNTと閾値コア数Cth1-4とを比較しカウント値が閾値コア数を越えるとコア数オーバー信号Over_Cth1-4を出力する複数の比較器153を有する。そして、DPS信号生成回路151が、コア数オーバー信号Over_Cth1-4に応じて命令処理停止状態のコアの省電力動作を無効化する省電力無効化信号DPS1-5を生成する。比較器153と、DPS信号生成回路151は、第2の実施の形態と同じである。そして、DPS信号瀬衛生回路151は、例えば図13と同様の構成を有する。
第3の実施の形態のプロセッサは、各コアにその構成に最適な閾値コア数を設定できるので、より柔軟な省電力無効化の制御を行う。
[第4の実施の形態]
第4の実施の形態では、プロセッサが、コアが命令処理状態から命令処理停止状態へ移行してから所定時間経過後に閾値コア数を増大し、命令処理状態に復帰するときから所定時間前に閾値コア数を減少するように制御する。そのために、監視回路がタイマを有し、上記の所定時間を監視する。
図19は、第4の実施の形態における監視回路の構成を示す図である。図19の監視回路の図12の監視回路と異なる構成は、比較器133が生成するコア数オーバー信号Over_Cht1-4に応答して所定時間T1経過後に閾値コア数レジスタ132の設定を変更するトリガ信号を出力するタイマ134である。また、タイマ134は、コアが命令処理状態に復帰するときから所定時間T2前のタイミングでトリガ信号を閾値コア数レジスタ132に出力する。
図20は、第4の実施の形態でのコアが命令処理状態から命令処理停止状態に移行する時の電力制御を示す図である。この例では、4つの閾値コア数Cth1-4が全て「3」に設定され、命令処理停止状態に移行してから所定時間T1経過後に、閾値コア数Cth1-4が全て「4」に設定変更される。また、時刻t1で短時間の間に4つのコアCORE1-4が命令処理停止状態に移行する。
時刻t1で、4つのコアCORE1-4がほぼ同時に命令処理停止状態に移行する。それにより、監視回路13のカウンタ131はカウント値CNT=4を出力し、比較器133がコア数オーバー信号Over_Cth1-4を全てHレベルにする。そして、命令処理停止状態のコアCORE1-4の電力制御回路15は、省電力無効化信号DPS1-4を全てHレベルにし、4つの内部回路を省電力無効状態にする。その後、コアCORE1-4は命令停止状態に移行する。その結果、プロセッサ内の6つのコアのうち、コアCORE1-4は省電力無効状態となり、それらの消費電力PW_CORE1-4の電力低下は限定的である。同時に、時刻t1からタイマ134が所定時間T1の経過を監視する。
そして、時刻t1から所定時間T1後の時刻t2で、タイマ134がトリガ信号を出力し、それに応答して閾値コア数レジスタ132が、閾値コア数Cth1-4を「3」から「4」に変更する。それに応答して、比較器133は、コア数オーバー信号Over_Cth1-4を全てLレベルにする。そして、コアCORE1-4の電力制御回路15は、省電力無効化信号DPS1-4を全てLレベルにし、4つの内部回路が省電力状態になる。その結果、プロセッサ内の6つのコアのうち、コアCORE1-4は省電力状態になり、プロセッサの消費電力は更に低下し、命令処理状態のコアCORE5,6の消費電力になる。これにより、4つのコアCORE1-4がほぼ同時に命令停止状態に移行する際のプロセッサの消費電力の減少を許容電力差以内に抑制する。
図21は、第4の実施の形態でのコアが命令処理停止状態から命令処理状態に復帰する時の電力制御を示す図である。この例では、命令処理停止状態において、4つの閾値コア数Cth1-4が全て「4」に設定され、命令処理状態に復帰する時刻t4から所定時間T2前の時刻t3に、閾値コア数Cth1-4が全て「3」に変更される。そして、図20の命令処理停止状態から命令処理状態に復帰する時の電力制御である。
まず、タイマ134は、図20の時刻t1から命令処理停止期間より所定時間T2短い時間の経過を監視する。つまり、4つのコアCORE1-4が命令処理状態に復帰する時刻t4より所定時間T2前の時刻t3になるのをタイマ134が監視する。例えば、ポーズ命令の場合、ユーザプログラムがポーズ状態の時間を指定するので、上記の命令処理停止期間が予め判明している。
時刻t3より前は、閾値コア数Cth1-4が「4」に設定されているので、監視回路13の比較器133はコア数オーバー信号Over_Cht1-4を全てLレベルにしている。したがって、時刻t3より前は、命令処理停止状態のコアCORE1-4は省電力状態である。
次に、時刻t3になると、タイマ134のトリガ信号(図示せず)により閾値コア数レジスタ132が4つの閾値Cth1-4を「3」に設定変更する。これに応答して、監視回路13の比較器133は、コア数オーバー信号Over_Cth1-4を全てHレベルにする。そして、命令処理停止状態のコアCORE1-4の電力制御回路15は、省電力無効化信号DPS1-4を全てHレベルにし、4つの内部回路を省電力無効状態にする。その結果、プロセッサの消費電力は、時刻t3で省電力無効状態の4つのコアCORE1-4の電力PW_DPS(=PW_CORE1-4)だけ上昇する。
さらに、時刻t3から所定時間T2経過後の時刻t4で、4つのコアCORE1-4が停止解除信号S1_2を監視回路13に出力し、カウンタ131がカウント値CNTを「0」にする。それにより、監視回路13の比較器133は、コア数オーバー信号Over_Cth1-4をLレベルにする。しかし、4つのコアCORE1-4は、命令処理状態に遷移するので、各内部回路のクロックイネーブル信号CLKENがHレベル(クロックイネーブル状態)になり、通常動作での電力消費状態になる。
そして、時刻t3でのプロセッサの消費電力の変動幅と、時刻t4でのプロセッサの消費電力の変動幅はそれぞれ許容電力差以下であり、電源ノイズが許容値以下に抑えられる。
以上の通り、第4の実施の形態によれば、プロセッサは、コアが命令処理停止状態に遷移する場合は、閾値コア数Cthを増加させることで、消費電力を段階的に減少させ、コアが命令処理状態に復帰する場合は、閾値コア数Cthを減少させることで、消費電力を段階的に増加させる。このように、プロセッサは、閾値コア数の設定を制御することで、プロセッサ全体の消費電力の変動幅を許容電力差以下に抑制し、電源ノイズを抑える。
[第5の実施の形態]
第2の実施の形態は、プロセッサ全体の消費電力の変動幅を許容電力差以下に抑制するために、プロセッサ内の命令処理停止状態に遷移するコア数を監視し、そのコア数が閾値コア数を越えると、命令処理停止状態のコア内の内部回路を、命令処理停止状態のコア数に応じた数、省電力無効状態に制御する。
それに対して、第5の実施の形態は、第2の実施の形態の構成に加えて、コアが命令処理停止状態に遷移する場合の各コアの消費電力変化幅を段階的に制御する構成を有する。この制御は、例えば前述の特許文献1にも記載されている。そのために、コアの電源制御回路は、命令処理停止状態に推移するコア内の複数の内部回路を、最初は全て省電力無効状態に制御し、徐々に省電力状態に遷移させる。
図22は、第5の実施の形態における電力制御回路15の構成を示す図である。図13と同様に、電力制御回路15は、内部回路の命令制御回路110からの命令処理停止信号S1_1を監視回路13のカウンタ131に転送する。さらに、電力制御回路15は、図13と異なり、命令処理停止信号S1_1がHに変化してから時間を計測するタイマ152と、内部回路を順番に省電力状態に遷移する時間である閾値時間Tth1-4を設定する4つの閾値時間レジスタ153と、タイマ152の時間と4つの閾値時間Tth1-4をそれぞれ比較する4つの比較器154とを有する。4つの比較器154は、タイマの時間が閾値時間Tth1-4を越えると時間オーバー信号Over_Tth1-4を出力する。そして、DPS信号生成回路151は、コア数オーバー信号Over_Cth1-4と、時間オーバー信号Over_Tth1-4に基づいて、省電力無効化信号DPS1-5を生成する。
図23は、第5の実施の形態におけるDPS信号生成回路の構成例を示す図である。DPS信号生成回路151は、コア数オーバー信号Over_Cth1と時間オーバー信号Over_Tth1の反転信号とを入力し、省電力無効化信号DPS1を出力する論理和回路OR11を有する。同様に、論理和回路OR12、OR13、OR14は、コア数オーバー信号Over_Cth2-4と時間オーバー信号Over_Tth2-4の反転信号をそれぞれ入力し、省電力無効化信号DPS2-4をそれぞれ出力する論理和回路OR12-14を有する。図23の例では、省電力無効化信号DPS5は、論理和回路OR11が生成する。但し、省電力無効化信号DPS5は、他の論理和回路が生成するようにしてもよい。
図24は、図22,23の電力制御回路15とDPS信号生成回路151の動作を示すタイミングチャート図である。図22の4つの閾値時間Tth1-4は、例えば図24中の時間t11>t12>t13>t14に設定されている。また、監視回路13から供給されるコア数オーバー信号Over_Cth1-4は、コア数オーバー信号Over_Cth1, Over_Cth2がHレベルで他の信号Over_Cth3, Over_Cth4はLレベルとする。この場合、DPS信号生成回路23は、省電力無効化信号DPS1, DPS2をHレベル(省電力無効状態)に維持し、他の省電力無効化信号DPS3, DPS4を、最初は全てHレベルにし、タイマ152が時刻t10から時間t11〜t14の経過を計測すると、順番にLレベルに変更する。これにより、各コアは、命令信号停止状態に遷移する場合、省電力無効化信号DPS1,DPS2=Hレベルにより省電力無効状態に制御される内部回路を除いて、他の内部回路は、省電力無効状態から省電力状態に順番に推移し、コアの消費電力は徐々に低下する。
図24において、時刻t10では、コア数オーバー信号Over_Cth1-4はH, H, L, Lレベル、時間オーバー信号Over_Tth1-4は全てLレベルである。時刻t11にて、タイマ152が時間t11を出力し、比較器154が時間オーバー信号Over_Tth1をHレベルに変更する。しかし、コア数オーバー信号Over_Cth1がHレベルであるため、論理和回路OR11は、省電力無効化信号DPS1のHレベル(省電力無効状態)を維持する。そのため、コアの消費電力PW_COREは時刻t11で低下しない。
次に、時刻t12にて、タイマ152が時間t12を出力し、比較器154が時間オーバー信号Over_Tth2をHレベルに変更する。しかし、コア数オーバー信号Over_Cth2がHレベルであるため、論理和回路OR12は、省電力無効化信号DPS2のHレベルに維持する。そのため、コアの消費電力PW_COREは時刻t12でも低下しない。
次に、時刻t13にて、タイマ152が時間t13を出力し、比較器154が時間オーバー信号Over_Tth3をHレベルに変更する。そして、コア数オーバー信号Over_Cth3がLレベルであるため、論理和回路OR13は、省電力無効化信号DPS3をLレベルに変更する。そのため、コアの消費電力PW_COREは時刻t13で信号DPS3に対応する内部回路の省電力分PW_DPSだけ低下する。
時刻t14も同様にして、コアの消費電力PW_COREは時刻t14で信号DPS4に対応する内部回路の省電力分PW_DPSだけ低下する。つまり、コアの消費電力は、時刻t13とt14で2段階で低下する。
但し、命令処理停止状態のコア数が閾値コア数を越えていない場合は、コア数オーバー信号Over_Cth1-4が全てLレベルであるので、命令処理停止状態に遷移するコアの消費電力は4段階で低下する。
図25は、第5の実施の形態におけるプロセッサ全体の消費電力の変動を示す図である。図25は、図15のプロセッサ全体の消費電力の低下に、図24の各コアの消費電力の低下が適用されている。図25では、閾値コア数Cth1〜Cth2は「3」にCth3〜Cth4は「4」に設定されていると仮定する。そのため、時刻t1,t2,t3では、各コアの消費電力は4段階で低下する。しかし、時刻t4で命令信号停止状態のコア数が4になったときにコア数オーバー信号Over_Cth1,2がHレベルになり、コアの消費電力は2段階で低下する。
図25において、時刻t1でコアCORE1が命令停止状態になり、コアCORE1の消費電力は4段階で低下する。同様に、時刻t2、t3でコアCORE2, CORE3が順番に命令停止状態になり、コアCORE2, CORE3の消費電力は4段階で低下する。
次に、時刻t4でコアCORE4が命令停止状態になる。そのため、監視回路13のカウンタのカウント値CNTは「4」になり、閾値コア数Cth1〜Cth2の「3」を越えて、比較器はコア数オーバー信号Over_Cth1、Over_Cth2をHレベルにする。そして、図24に示したとおり、新たに命令停止状態に遷移するコアCORE4は2段階で消費電力が低下する。同時に、既に命令停止状態に遷移しているコアCORE1-3も省電力無効化信号DPS1,DPS2がHレベルになるため、そのコアCORE1-3の消費電力は増大する。その結果、図25では、命令処理停止状態のコアCORE1-4は2つの内部回路が省電力無効状態で残りの内部回路が省電力状態となり、プロセッサ全体の消費電力は、許容電力P_PW以上に制御される。
図26は、第5の実施の形態における電力制御回路の構成例を示す図である。図22の電力制御回路15は、命令処理停止信号S1_1に対応する命令処理停止状態に遷移するときの制御回路を示す。それに対して、図26の電力制御回路15は、停止解除信号S1_2に対応する命令処理停止状態を解除するときの制御回路を示す。
図26において、電力制御回路15は、停止解除信号S1_2を監視回路13に転送する。さらに、電力制御回路15は、停止解除信号S1_2がHに変化してから、時間を計測するタイマ155と、内部回路を順番にクロックイネーブル状態に遷移する時間、第2の閾値時間TEth1-3を設定する3つの閾値時間レジスタ156と、タイマ155の時間と4つの閾値時間TEth1-3をそれぞれ比較する3つの比較器157とを有する。第2の閾値時間TEth1-3は、それぞれt21<t22<t23に設定されている。
図27は、図26の電力制御回路の動作を示すタイミングチャート図である。時刻t20で、停止状態のコアが命令処理状態に復帰する。この時、3つの比較器157は、タイマ155の時間が第2の閾値時間TEth1(=t21、t22、t23)をそれぞれ越えると、図11の演算器114の一方の演算器EAGAのみの使用に制限する制御信号EAGA_onlyと、演算器115の一方の演算器EXAのみをクロックイネーブル状態に制御する信号EXA_onlyと、演算器116の一方の演算器FLAのみをクロックイネーブル状態に制御する信号FLA_onlyとを、順番にHレベル(一方のみクロックイネーブル状態に制御)からLレベル(両方をクロックイネーブル状態に制御)に変化させる。
したがって、時刻t20では、信号EAGA_onlyがHレベルであるので、演算器EAGA,EAGBのうちEAGAのみがクロックイネーブル状態(CLKEN_EAGA=H)、EAGBはクロックディセーブル状態(CLKEN_EAGB=L)に制御され、演算器EAGAのみがクロック供給状態になる。同様に、信号EXA_onlyがHレベルであるので、演算器EXA,EXBのうちEXAのみがクロックイネーブル状態(CLKEN_EXA=H)、EXBはクロックディセーブル状態(CLKEN_EXB=L)に制御され、演算器EXAのみがクロック供給状態になる。さらに、信号FLA_onlyがHレベルであるので、演算器FLA, FLBのうちFLAのみがクロックイネーブル状態(CLKEN_FLA=H)、FLBはクロックディセーブル状態(CLKEN_FLB=L)に制御され、演算器FLAのみがクロック供給状態になる。その結果、時刻t20では、コアの消費電力PW_COREは、演算器EAGA,EXA,FLAの消費電力分上昇する。
次に、時刻t21では、1つ目の比較器157が、信号EAGA_onlyをHレベルからLレベルに変更する。それに伴い、演算器EAGBが新たにクロックイネーブル状態(CLKEN_EAGB=H)に制御され、時刻t21では、コアの消費電力PW_COREは、演算器EAGBの消費電力分上昇する。
次に、時刻t22では、2つ目の比較器157が、信号EXA_onlyをHレベルからLレベルに変更する。それに伴い、演算器EXBが新たにクロックイネーブル状態(CLKEN_EXB=H)に制御され、時刻t22では、コアの消費電力PW_COREは、演算器EXBの消費電力分上昇する。
最後に、時刻t23では、3つ目の比較器157が、信号FLA_onlyをHレベルからLレベルに変更する。それに伴い、演算器FLBが新たにクロックイネーブル状態(CLKEN_FLB=H)に制御され、時刻t23では、コアの消費電力PW_COREは、演算器FLBの消費電力分上昇する。
図27の制御によれば、1つのコアが命令処理状態に復帰するときに、その1つのコアの消費電力が3段階で徐々に上昇する。また、複数のコアが一斉に命令処理状態に復帰するときも、複数のコアの消費電力が4段階で徐々に上昇する。
図25にもどり、時刻t5では4つのコアCORE1-4が同時に命令処理状態に復帰している。しかし、各コアの3つの演算器が図27で説明したように最初は一方の演算器のみがクロックイネーブル状態になり、その後は、順番に他方の演算器がクロックイネーブル状態になる。したがって、図25に示されるとおり、プロセッサの消費電力は、時刻t5から4段階で元の電力レベルに戻っている。
以上説明したとおり、本実施の形態におけるプロセッサは、複数のコアが同時にまたは短時間で命令処理停止状態から命令処理状態に復帰した場合、全体の電力変動幅を許容電力差P_dPW以内に抑制し、電源ノイズを許容値以内に抑制する。同様に、プロセッサは、複数のコアが同時にまたは短時間で命令処理状態から命令処理停止状態に遷移した場合、全体の電力変動幅を許容電力差P_dPW以内に抑制し、電源ノイズを許容値以内に抑制する。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)
命令を処理する命令処理状態ではクロックを供給されて前記命令を処理し、命令処理を停止する命令処理停止状態では前記クロックの供給が停止されて省電力動作状態に遷移する内部回路と、前記省電力動作を無効化する電力制御回路とをそれぞれ有する複数の演算処理部と、
前記複数の演算処理部の前記命令処理停止状態を監視し、前記命令処理停止状態の演算処理部の数をカウントする監視回路とを有し、
前記複数の演算処理部のそれぞれの電力制御回路は、前記命令処理停止状態の演算処理部の数が閾値を越えた場合、前記命令処理停止状態の演算処理部の前記省電力動作を無効化する、演算処理装置。
(付記2)
前記演算処理部は、前記クロックの供給と供給停止を制御するクロックゲートを有し、
前記内部回路は、前記演算処理部が前記命令処理状態では前記クロックゲートをクロック供給状態に制御し、前記演算処理部が前記命令処理停止状態では前記クロックゲートをクロック供給停止状態に制御する、付記1に記載の演算処理装置。
(付記3)
前記複数の演算処理部は、前記内部回路を複数有し、
前記複数の演算処理部のそれぞれの電力制御回路は、前記命令処理停止状態の演算処理部の省電力動作を無効化する場合、前記命令処理停止状態の演算処理部の数に応じた数の第1の内部回路の省電力動作を無効化する、付記1に記載の演算処理装置。
(付記4)
前記監視回路は、前記命令処理停止状態の演算処理部の数が複数の異なる閾値を越えたか否かをそれぞれ示す複数の制御情報を生成し、
前記電力制御回路は、前記複数の制御情報に応じて、前記命令処理停止状態の演算処理部内の前記複数の内部回路それぞれの前記省電力動作を無効化する、付記3に記載の演算処理装置。
(付記5)
前記複数の演算処理部のそれぞれの電力制御回路は、前記省電力動作の無効化を、前記複数の命令処理停止状態の演算処理部の省電力動作を無効にした場合の省電力量の合計が、前記複数の命令処理停止状態の演算処理部が全て前記命令処理停止状態から前記命令処理状態に復帰する時の第1の許容電力差以下になるように、実行する、付記1に記載の演算処理装置。
(付記6)
前記複数の演算処理部のそれぞれの電力制御回路は、前記命令処理停止状態の省電力動作の無効化を、前記複数の命令処理停止状態の演算処理部の省電力動作を無効にした場合の省電力量の合計が、前記複数の命令処理状態の演算処理部が全て前記命令処理状態から前記命令処理停止状態に遷移する時の第2の許容電力差以下になるように、実行する、付記1に記載の演算処理装置。
(付記7)
前記監視回路は、
前記停止状態の演算処理部の数を計数した計数値を保持するカウンタと、
閾値レジスタと、
前記カウンタの計数値と前記閾値とを比較し、前記計数値が前記閾値を越えると制御情報を出力する比較器とを有し、
前記電力制御回路は、前記制御情報に応答して前記命令処理停止状態の演算処理部の省電力動作を無効化する、付記1に記載の演算処理装置。
(付記8)
前記監視回路は、前記命令処理停止状態の演算処理部の数を計数した計数値を保持するカウンタを有し、
前記電力制御回路は、閾値レジスタと、前記カウンタの計数値と前記閾値とを比較し、前記係数値が前記閾値を越えると制御情報を出力する比較器を有し、前記制御情報に応答して前記命令処理停止状態の演算処理部の省電力動作を無効化する、付記1に記載の演算処理装置。
(付記9)
前記命令処理状態の複数の演算処理部が前記命令処理停止状態に遷移する場合、
前記監視回路は、前記閾値を第1の値に設定し、前記遷移から第1の所定時間経過後に前記閾値を前記第1の値より大きい第2の値に変更し、
前記命令処理停止状態に遷移する複数の演算処理部の前記省電力動作が、前記第1の所定時間の間無効化され、前記第1の処理時間後に前記省電力動作が有効化される、付記1に記載の演算処理装置。
(付記10)
前記命令処理停止状態の演算処理部が前記命令処理状態に復帰する場合、
前記監視回路は、前記復帰より第2の所定時間前に前記閾値を前記第3の値から前記第3の値より小さい第4の値に変更し、
前記命令処理状態に遷移する複数の演算処理部の前記省電力動作が、前記復帰するときより第2の処理時間前に有効化状態から無効化状態にされ、前記復帰するときより第2の処理時間前から前記復帰まで間無効化される、付記9に記載の演算処理装置。
(付記11)
前記監視回路は、
前記内部回路から供給される前記命令処理停止状態を通知する停止状態信号に応答して、前記命令処理停止状態の演算処理部の数を計数するカウンタと、
前記命令処理停止状態の演算処理部の数と前記複数の閾値それぞれとを比較し、前記命令処理停止状態の演算処理部の数が前記複数の閾値それぞれを越える場合、それぞれに対応する制御信号を出力する複数の比較器とを有し、
前記電力制御回路は、前記複数の制御信号に応じて前記命令処理停止状態の演算処理部内の前記複数の内部回路それぞれの省電力動作を無効化する、付記4に記載の演算処理装置。
(付記12)
前記監視回路は、前記命令処理停止状態の演算処理部の数を計数するカウンタを有し、
前記電力制御回路は、前記命令処理停止状態の演算処理部の数と前記複数の閾値それぞれとを比較し、前記命令処理停止状態の演算処理部の数が前記複数の閾値それぞれを越える場合、それぞれに対応する制御信号を出力する複数の比較器を有し、前記複数の制御信号に応じて前記命令処理停止状態の演算処理部内の前記複数の内部回路それぞれの省電力動作を無効化する、付記3に記載の演算処理装置。
(付記13)
前記複数の演算処理部のそれぞれの電力制御回路は、前記命令処理停止状態の演算処理部の省電力動作を無効化する場合、前記複数の内部回路のうち前記第1の内部回路以外の第2の内部回路の省電力動作を順番に無効状態から有効状態に制御する、付記3に記載の演算処理装置。
(付記14)
前記複数の内部回路は、複数の演算処理回路を含み、
前記複数の演算処理回路は、それぞれ、複数組の回路を有し、
複数の演算処理部のそれぞれの電力制御回路は、前記命令処理停止状態の演算処理部を前記命令処理状態に復帰する場合、前記復帰対象の演算処理部の前記複数の演算処理回路内の前記複数組の回路のうち一部の組の回路を非省電力動作に制御した後、前記複数の演算処理回路の前記複数組の回路のうち残りの組の回路を順番に非省電力動作に制御する、付記3または13に記載の演算処理装置。
(付記15)
命令を処理する命令処理状態ではクロックを供給されて命令を処理し、命令処理を停止する命令処理停止状態では前記クロックの供給が停止されて省電力動作状態に遷移する内部回路をそれぞれ有する複数の演算処理部を有する演算処理装置の制御方法において、
前記演算処理装置が有するカウンタが、前記命令処理停止状態の演算処理部の数を計数し、
前記演算処理装置が有する監視回路が、前記命令処理停止状態の演算処理部の数が閾値を越えた場合、前記命令処理停止状態の演算処理部の前記省電力動作を無効化する、演算処理装置の制御方法。
(付記16)
前記複数の演算処理部は、前記内部回路を複数有し、
前記監視回路は、
前記命令処理停止状態の演算処理部の前記省電力動作の無効化は、前記命令処理停止状態の演算処理部の数に応じた数の第1の内部回路の省電力動作を無効化することを有する、請求項13に記載の演算処理装置の制御方法。
1:電源回路
2:ファームウエアメモリ
10:演算処理装置、プロセッサ、CPUチップ
11:コア、CORE、CPUコア、演算処理部
12:第2レベルキャッシュメモリ
13:動作状態監視回路
14:内部回路
15:電力制御回路、パワーコントロールユニット
CKG:クロックゲート
CLK_TREE:クロックツリー
LOG:論理回路
CLK1、CLK2:クロック
CLKEN:クロックイネーブル信号
DPS:省電力無効化信号
S1_1:命令処理停止信号
S1_2:停止解除信号
S2:一部動作停止指令信号
131:コア数カウンタ
132:比較器
133:閾値コア数レジスタ
Cth:閾値コア数、閾値
Tth:閾値時間
TEth:第2の閾値時間
Over_Cth:コア数オーバー信号、制御信号
Over_Tth:時間オーバー信号
Over_TEth:第2時間オーバー信号
PW_CORE:コア電力
PW_DPS:省電力無効状態の電力
P_dPW:許容電力差
P_PW:許容電力レベル
dPW:電力差
110:命令制御回路、インストラクションコントロールサーキット
111:分岐履歴RAM、ブランチヒストリRAM
112:L1命令キャッシュRAM
113:L1データキャッシュRAM
114:アドレス生成回路
115:整数演算回路
116:浮動小数点演算回路
117:レジスタファイル
118:命令バッファ
119:命令デコーダ
RSE、RSF、RSA:リザベーションステーション
CSE:コミットスタックエントリ
SUS/SL:命令処理停止信号(命令処理停止状態への移行を通知する信号)
E_SUS/S:停止解除信号(命令処理停止状態を解除し命令処理状態への復帰を通知する信号)

Claims (14)

  1. 命令を処理する命令処理状態ではクロックを供給されて前記命令を処理し、命令処理を停止する命令処理停止状態では前記クロックの供給が停止されて省電力動作状態に遷移する内部回路と、前記省電力動作を無効化する電力制御回路とをそれぞれ有する複数の演算処理部と、
    前記複数の演算処理部の前記命令処理停止状態を監視し、前記命令処理停止状態の演算処理部の数をカウントする監視回路とを有し、
    前記複数の演算処理部のそれぞれの電力制御回路は、前記命令処理停止状態の演算処理部の数が閾値を越えた場合、前記命令処理停止状態の演算処理部の前記省電力動作を無効化する、演算処理装置。
  2. 前記演算処理部は、前記クロックの供給と供給停止を制御するクロックゲートを有し、
    前記内部回路は、前記演算処理部が前記命令処理状態では前記クロックゲートをクロック供給状態に制御し、前記演算処理部が前記命令処理停止状態では前記クロックゲートをクロック供給停止状態に制御する、請求項1に記載の演算処理装置。
  3. 前記複数の演算処理部は、前記内部回路を複数有し、
    前記複数の演算処理部のそれぞれの電力制御回路は、前記命令処理停止状態の演算処理部の省電力動作を無効化する場合、前記命令処理停止状態の演算処理部の数に応じた数の第1の内部回路の省電力動作を無効化する、請求項1に記載の演算処理装置。
  4. 前記監視回路は、前記命令処理停止状態の演算処理部の数が複数の異なる閾値を越えたか否かをそれぞれ示す複数の制御情報を生成し、
    前記電力制御回路は、前記複数の制御情報に応じて、前記命令処理停止状態の演算処理部内の前記複数の内部回路それぞれの前記省電力動作を無効化する、請求項3に記載の演算処理装置。
  5. 前記複数の演算処理部のそれぞれの電力制御回路は、前記省電力動作の無効化を、前記複数の命令処理停止状態の演算処理部の省電力動作を無効にした場合の省電力量の合計が、前記複数の命令処理停止状態の演算処理部が全て前記命令処理停止状態から前記命令処理状態に復帰する時の第1の許容電力差以下になるように、実行する、請求項1に記載の演算処理装置。
  6. 前記複数の演算処理部のそれぞれの電力制御回路は、前記命令処理停止状態の省電力動作の無効化を、前記複数の命令処理停止状態の演算処理部の省電力動作を無効にした場合の省電力量の合計が、前記複数の命令処理状態の演算処理部が全て前記命令処理状態から前記命令処理停止状態に遷移する時の第2の許容電力差以下になるように、実行する、請求項1に記載の演算処理装置。
  7. 前記監視回路は、
    前記停止状態の演算処理部の数を計数した計数値を保持するカウンタと、
    閾値レジスタと、
    前記カウンタの計数値と前記閾値とを比較し、前記計数値が前記閾値を越えると制御情報を出力する比較器とを有し、
    前記電力制御回路は、前記制御情報に応答して前記命令処理停止状態の演算処理部の省電力動作を無効化する、請求項1に記載の演算処理装置。
  8. 前記監視回路は、前記命令処理停止状態の演算処理部の数を計数した計数値を保持するカウンタを有し、
    前記電力制御回路は、閾値レジスタと、前記カウンタの計数値と前記閾値とを比較し、前記係数値が前記閾値を越えると制御情報を出力する比較器を有し、前記制御情報に応答して前記命令処理停止状態の演算処理部の省電力動作を無効化する、請求項1に記載の演算処理装置。
  9. 前記命令処理状態の複数の演算処理部が前記命令処理停止状態に遷移する場合、
    前記監視回路は、前記閾値を第1の値に設定し、前記遷移から第1の所定時間経過後に前記閾値を前記第1の値より大きい第2の値に変更し、
    前記命令処理停止状態に遷移する複数の演算処理部の前記省電力動作が、前記第1の所定時間の間無効化され、前記第1の処理時間後に前記省電力動作が有効化される、請求項1に記載の演算処理装置。
  10. 前記命令処理停止状態の演算処理部が前記命令処理状態に復帰する場合、
    前記監視回路は、前記復帰より第2の所定時間前に前記閾値を前記第3の値から前記第3の値より小さい第4の値に変更し、
    前記命令処理状態に遷移する複数の演算処理部の前記省電力動作が、前記復帰するときより第2の処理時間前に有効化状態から無効化状態にされ、前記復帰するときより第2の処理時間前から前記復帰まで間無効化される、請求項9に記載の演算処理装置。
  11. 前記複数の演算処理部のそれぞれの電力制御回路は、前記命令処理停止状態の演算処理部の省電力動作を無効化する場合、前記複数の内部回路のうち前記第1の内部回路以外の第2の内部回路の省電力動作を順番に無効状態から有効状態に制御する、請求項3に記載の演算処理装置。
  12. 前記複数の内部回路は、複数の演算処理回路を含み、
    前記複数の演算処理回路は、それぞれ、複数組の回路を有し、
    複数の演算処理部のそれぞれの電力制御回路は、前記命令処理停止状態の演算処理部を前記命令処理状態に復帰する場合、前記復帰対象の演算処理部の前記複数の演算処理回路内の前記複数組の回路のうち一部の組の回路を非省電力動作に制御した後、前記複数の演算処理回路の前記複数組の回路のうち残りの組の回路を順番に非省電力動作に制御する、請求項3または11に記載の演算処理装置。
  13. 命令を処理する命令処理状態ではクロックを供給されて命令を処理し、命令処理を停止する命令処理停止状態では前記クロックの供給が停止されて省電力動作状態に遷移する内部回路をそれぞれ有する複数の演算処理部を有する演算処理装置の制御方法において、
    前記演算処理装置が有するカウンタが、前記命令処理停止状態の演算処理部の数を計数し、
    前記演算処理装置が有する監視回路が、前記命令処理停止状態の演算処理部の数が閾値を越えた場合、前記命令処理停止状態の演算処理部の前記省電力動作を無効化する、演算処理装置の制御方法。
  14. 前記複数の演算処理部は、前記内部回路を複数有し、
    前記監視回路は、
    前記命令処理停止状態の演算処理部の前記省電力動作の無効化は、前記命令処理停止状態の演算処理部の数に応じた数の第1の内部回路の省電力動作を無効化することを有する、請求項13に記載の演算処理装置の制御方法。
JP2015094108A 2015-05-01 2015-05-01 演算処理装置及び演算処理装置の制御方法 Active JP6418056B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015094108A JP6418056B2 (ja) 2015-05-01 2015-05-01 演算処理装置及び演算処理装置の制御方法
US15/075,274 US10628154B2 (en) 2015-05-01 2016-03-21 Arithmetic processing device and method of controlling arithmetic processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015094108A JP6418056B2 (ja) 2015-05-01 2015-05-01 演算処理装置及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2016212554A true JP2016212554A (ja) 2016-12-15
JP6418056B2 JP6418056B2 (ja) 2018-11-07

Family

ID=57204104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015094108A Active JP6418056B2 (ja) 2015-05-01 2015-05-01 演算処理装置及び演算処理装置の制御方法

Country Status (2)

Country Link
US (1) US10628154B2 (ja)
JP (1) JP6418056B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020013263A (ja) * 2018-07-17 2020-01-23 株式会社アクセル 半導体集積回路、半導体集積回路における制御方法、画像処理装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3043476B1 (fr) * 2015-11-05 2018-09-28 Dolphin Integration Systeme et procede de gestion d'alimentation
US20170185128A1 (en) * 2015-12-24 2017-06-29 Intel Corporation Method and apparatus to control number of cores to transition operational states
US11068018B2 (en) * 2016-10-25 2021-07-20 Dolphin Design System and method for power management of a computing system with a plurality of islands
EP3373110A1 (en) * 2017-03-10 2018-09-12 Thomson Licensing Method for controlling a device and corresponding device, electronic assembly, system, computer readable program product and computer readable storage medium
US11003238B2 (en) * 2017-04-03 2021-05-11 Nvidia Corporation Clock gating coupled memory retention circuit
JP7312141B2 (ja) * 2020-05-25 2023-07-20 ルネサスエレクトロニクス株式会社 半導体装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202468A (ja) * 1995-01-27 1996-08-09 Hitachi Ltd マルチプロセッサシステム
JP2013069220A (ja) * 2011-09-26 2013-04-18 Nec Computertechno Ltd 演算処理装置及び演算器同時実行制御方法
US20130262908A1 (en) * 2012-03-27 2013-10-03 Fujitsu Limited Processing device and method for controlling processing device
US20140181554A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Power control for multi-core data processor

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4020548B2 (ja) 1999-11-11 2007-12-12 富士通株式会社 フリップフロップ制御回路、プロセッサおよびプロセッサの動作方法
JP3878431B2 (ja) 2000-06-16 2007-02-07 株式会社ルネサステクノロジ 半導体集積回路装置
JP2009123235A (ja) 2000-06-16 2009-06-04 Renesas Technology Corp 半導体集積回路装置
JP2004013820A (ja) 2002-06-11 2004-01-15 Matsushita Electric Ind Co Ltd クロック制御回路
US8370665B2 (en) 2010-01-11 2013-02-05 Qualcomm Incorporated System and method of sampling data within a central processing unit
US8966305B2 (en) * 2011-06-30 2015-02-24 Advanced Micro Devices, Inc. Managing processor-state transitions
JP5928272B2 (ja) 2012-09-18 2016-06-01 富士通株式会社 半導体集積回路及びコンパイラ
US9189045B2 (en) * 2012-10-08 2015-11-17 Dell Products L.P. Power management system
US20140344599A1 (en) * 2013-05-15 2014-11-20 Advanced Micro Devices, Inc. Method and System for Power Management
GB2532210A (en) * 2014-11-11 2016-05-18 Ibm System and method for controlling idle state exits to manage DI/DT issues

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202468A (ja) * 1995-01-27 1996-08-09 Hitachi Ltd マルチプロセッサシステム
JP2013069220A (ja) * 2011-09-26 2013-04-18 Nec Computertechno Ltd 演算処理装置及び演算器同時実行制御方法
US20130262908A1 (en) * 2012-03-27 2013-10-03 Fujitsu Limited Processing device and method for controlling processing device
JP2013205905A (ja) * 2012-03-27 2013-10-07 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法
US20140181554A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Power control for multi-core data processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020013263A (ja) * 2018-07-17 2020-01-23 株式会社アクセル 半導体集積回路、半導体集積回路における制御方法、画像処理装置

Also Published As

Publication number Publication date
JP6418056B2 (ja) 2018-11-07
US10628154B2 (en) 2020-04-21
US20160321070A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
JP6418056B2 (ja) 演算処理装置及び演算処理装置の制御方法
US20200159279A1 (en) Low power autonomous peripheral management
US10620686B2 (en) Semiconductor integrated circuit
KR101467135B1 (ko) 동적 전압 펄스 스킴에 의한 개선된 전력 전송 성능을 위한 장치, 방법 및 시스템
EP3872604B1 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
KR101980502B1 (ko) 동적 전압 마진 복구
JP5776124B2 (ja) 電力管理においてクロックを起動させる戦略法
US8347129B2 (en) Systems on chip with workload estimator and methods of operating same
JP2013205905A (ja) 演算処理装置及び演算処理装置の制御方法
US20130345892A1 (en) Thermal Control Apparatus and Methodology
JP2007128518A (ja) デジタルロジックプロセッシング装置とそれに供給されるクロック信号のゲーティング方法、及びそれらを含むシステムオンチップとそれを用いたストリーミングプロセッシングシステム
US20150046729A1 (en) Semiconductor apparatus and control method therof
JP2014048972A (ja) 処理装置、情報処理装置、及び消費電力管理方法
US9411404B2 (en) Coprocessor dynamic power gating for on-die leakage reduction
CN108139791B (zh) 功率监控的cpu功率网设计
WO2019094087A1 (en) Processor throttling based on accumulated combined current measurements
US20110099402A1 (en) Method and apparatus for activiating system components
JP5833434B2 (ja) 半導体装置
JP2017021513A (ja) マルチコアプロセッサ、マルチコアプロセッサのクロック制御方法およびクロック制御プログラム
KR101863578B1 (ko) 컴퓨팅 시스템의 적응적인 캐시 메모리 접근 장치 및 그 방법
JP2006119777A (ja) 半導体装置
GB2506169A (en) Limiting task context restore if a flag indicates task processing is disabled
EP2775395B1 (en) Integrated circuit, electronic device and instruction scheduling method
JP5928272B2 (ja) 半導体集積回路及びコンパイラ
US9785218B2 (en) Performance state selection for low activity scenarios

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180831

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: 20180911

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180924

R150 Certificate of patent or registration of utility model

Ref document number: 6418056

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150