JP5782565B2 - プロセッサのターボモード動作での電力効率を向上させる方法 - Google Patents

プロセッサのターボモード動作での電力効率を向上させる方法 Download PDF

Info

Publication number
JP5782565B2
JP5782565B2 JP2014517131A JP2014517131A JP5782565B2 JP 5782565 B2 JP5782565 B2 JP 5782565B2 JP 2014517131 A JP2014517131 A JP 2014517131A JP 2014517131 A JP2014517131 A JP 2014517131A JP 5782565 B2 JP5782565 B2 JP 5782565B2
Authority
JP
Japan
Prior art keywords
turbo mode
processor
thread
counter
state
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.)
Active
Application number
JP2014517131A
Other languages
English (en)
Other versions
JP2014523023A (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2014523023A publication Critical patent/JP2014523023A/ja
Application granted granted Critical
Publication of JP5782565B2 publication Critical patent/JP5782565B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Description

現在のオペレーションシステム(OS)の多くは、システム電力の最適化に、アドバンスド・コンフィグレーション・アンド・パワー・インターフェイス(ACPI)規格の、例えば、2006年10月10日に発行されたRev.3.0bを使用している。ACPIを実装することにより、概して、C1からCnステートと称される様々な消費電力ステートでプロセッサコアを動作させることが可能になる。コアがアクティブの時は、いわゆるC0ステートで動作し、コアがアイドル状態の時には、コアを、いわゆる非ゼロCステート(例えば、C1−C6ステート)である低電力状態にすることができる。
ACPIでは、省電力ステートに加えて、パフォーマンスステート、すなわち、Pステートも提供されている。パフォーマンスステートでは、コアがアクティブ(C0)状態である間に、性能−電力レベルを制御できる。簡単に説明すると、P0−Pnの複数のPステートが利用可能であり、P0はコアの最大周波数に対応し、それ以外の各Pステート、たとえば、P1−Pnは、それよりも低い性能レベルでコアが動作することに対応している。
多くのプロセッサは、高い性能を提供するべく、ハードウェアサポートを行っている。多くの場合、このようなサポートには、いわゆるターボモードと称される、更なるヘッドルームが利用可能である(例えば、消費電流、消費電力および温度に余裕がある)場合に、プロセッサのパフォーマンスを最大にするべく、より高い周波数で動作することができるモードが含まれる。
マイクロソフトWINDOWS(登録商標)OSのようなオペレーティングシステムは、オペレーションの3つのモード、すなわち、省電力、平衡および高性能モードを提供している。省電力モードでは、ターボモードはディセーブルされ、高パフォーマンスモードでは、ターボモードは常にイネーブルされている。しかしながら、平衡モードでは、パフォーマンスを上げるためにいつターボモードに入るか、および、省電力を尊重するモードにいつ戻るかについて、知的判定が必要になる。平衡モードにおいて、使用率が低い場合には、使用率に比して消費電力が高くなってしまうことから、ターボモードはイネーブルされない。しかしながら、使用率が高い(例えば、約80%を超える使用率)場合には、ターボモードをイネーブルしてもよい。このような高い周波数を提供せずに、ターボモードをイネーブルすると、期待された性能に達しないというリスクがある。
SPECpower_ssj2008ベンチマークは、システムの電力効率を判断する業界が設定した測定基準である。性能および電力を、0%から100%使用率までの様々な負荷レベルで測定する。SPECpower_ssj2008ベンチマークの低い使用率点(utilization point)においてアクティブとされている場合には、OSのベンダは、初期設定の平衡モードではターボモードを完全にディセーブルことを選択してもよく、これは、現在のOS要件において、平衡モードでは、使用率が80%に達するまでターボモードに入らないこと指示されているからである。しかしながら、プロセッサで実行されるスレッドの数が非常に多くなり、使用率が50%程度であっても、ターボモードに入ってよい場合がある。このような場合に、OSベンダが、オペレーションの平衡モードでターボモードをディセーブルしてしまうと、ユーザはターボモードで得られるパフォーマンス向上の利点を得られないことになってしまう。
インテリジェントターボは、プログラムされた遅延をもってターボモードへのエントリを遅らせることにより、このような問題に対処しようという技術である。しかしながら、この技術では、シングルスレッドおよびスループットモードの性能向上を妨げてしまう。更に、遅延が相対的に長く、リクエストしているアプリケーションが、ターボモードの性能向上の利点を活かせない場合が生じる。シングルスレッドアプリケーションでターボモードをディセーブルすることにより周波数ロスは、1ギガヘルツ(GHz)以上である。
本発明の一実施形態に係る、インテリジェントターボモード制御アルゴリズムをグラフで示した図である。
本発明の一実施形態に係る、プロセッサのターボモードオペレーションを設定する方法のフローチャートである。
本発明の一実施形態に係る、ターボモード制御方法のフローチャートである。
本発明の一実施形態に係る、プロセッサのブロック図である。
本発明の一実施形態に係る、プロセッサコアのブロック図である。
本発明の一実施形態に係る、システムのブロック図である。
本発明の一実施形態に係る、ターボモード制御のシミュレーション結果である。
実施形態では、いつターボモードパフォーマンスをイネーブルするかを判断するべく、様々な情報を監視する。本明細書で使用されている、アクティブな"ターボモード(turbo mode)"とは、少なくとも1つのプロセッサドメイン(例えば、1以上のコア)が、保証されている動作周波数よりも高周波数で動作するモードを意味する。例えば、プロセッサが、2.0ギガヘルツ(GHz)のスタンプされた熱設計電力(TDP)周波数を有すると仮定する。この周波数は、P1パフォーマンスステート、すなわち、最大保証動作周波数に対応する。P0ステートでは、動作周波数は(アクティブ状態のコアの数、ワークロードの種類、サーマルバジェット等に応じて)、この周波数よりも高くなる。P0ステートは、動作周波数が、TDP最大動作周波数を超えてもよい、日和見的なステートであるといえる。所与のプロセッサが、高い性能を要求する複数のビン、例えば、10個のビンを有すると仮定する。この場合、プロセッサは、特定の因子に基づいて、2GHzから3GHzの間のある周波数で、P0モードで動作することができる。因子とは、実行されているスレッドの数、これらスレッドのワークロード等である。
より詳細には、一実施形態では、プロセッサの電力制御ユニットで行われてもよいターボモードの判断は、コア電力ステート情報(以下、Cステートと称する)およびプロセッサパフォーマンスステート情報(以下、Pステートと称する)に基づいて、プロセッサがターボパフォーマンスを最も活用できる時を判断する。一般的に、スレッドは、P0ステートおよびC0ステートを、スレッド自身でまたは別のスレッドにより、要求することによりターボモードをリクエストする。
使用率が低い点では、P0ステートである期間(residency)は、プロセッサがより多くのスレッドをサポートするほど、長くなる。これは、OSがスレッドレベルで使用率を測定し、全てのスレッドを要求パフォーマンスが最も高い(もっとも番号の小さい)Pステートの設定することによっておこる。スレッドが多くなるほど、P0ターボモードに入る可能性が高くなる。すなわち、一のスレッドで実行されているOSは、様々なスレッドに対して異なるPステートのリクエストを生成することができる。電力制御ユニットは、複数のリクエストに基づいて、所定のドメインに適切なPステートを判断してもよい。一般的に、電力制御ユニットは、Pステートを分析し、リクエストされた最も高いステートに基づいて、そのドメインに対するPステートを選択してもよい。例えば、シングルスレッドがP0ステートをリクエストする限り、ドメインの全てのスレッドを、P0ステートで実行してもよい。
マイクロソフトWINDOWS(登録商標)のような多くのOSでは、1以上のスレッドから、より低いパフォーマンスへ移るリクエストを受信するが、少なくとも1つのその他のスレッドが高いパフォーマンスステート(例えば、P0)を要求していることを認識している場合には、このようなリクエストを電力制御ユニットに渡さない場合がある。その結果、電力制御ユニットは、実行スレッドが要求する実際のパフォーマンスステートに関する正確な情報を有していない場合がある。OSによる、特定のパフォーマンスリクエストのフィルタリングにより、電力制御ユニットにとっては、実際に存在するよりも多い(少なくともパーセンテージで)P0リクエストが存在するように見える。この場合、プロセッサは、低い使用率レベルにおいて高いパフォーマンスステートになり、上記したようにOS要求が守られないことになる。実施形態では、OSによって行われる非P0ステートリクエストのフィルタリングにおいても、ターボモードへのエントリを減らすことを考える。
P0期間と異なり、C0期間は、使用率レベルに比例するといえる。SPECpower_ssj2008ワークロードでは、100%の使用率では、プロセッサは、ほぼ100%の時間、C0ステートにある。使用率が下がると、ほぼ比例して、C0期間も短くなる。
そこで、実施形態では、C0期間およびP0期間の両方の情報を利用して、ターボモードの電力効率を改善する。より詳細には、本発明の一実施形態に係る、インテリジェントターボモード制御アルゴリズムを示したグラフである図1に示すように、アプリケーションワークロードが高くなると、C0ステートである期間が長くなる。プロセッサの使用率が高レベルになると、OSは、Pステートをより高いレベルのステート(低い数字のステート)に設定する。実施形態は、C0P0ステートの期間と使用率との間の比例関係を利用して、C0P0期間が所定の使用率を超えた時に、ターボモードをイネーブルする。図1に示すように、横線25および30は、非ターボモード対ターボモードの異なる重みづけに対応する。図から分かるように、非ターボモードには高い重みづけがなされ、ターボモードがイネーブルされる使用率閾値レベルが、高くなっている。具体的には、横線25は8倍の重みづけが設定されており、使用率閾値レベルは約89%であり、横線30では4倍の重みづけが設定されており、使用率閾値レベルは約79%である。
本明細書で記載される一実施形態では、C0P0期間は、スレッド毎に維持される継続性カウンタ(continuous counter)のセットを通じて監視することができる。このカウンタは、以下、ターボモードカウンタとも称される。一実施形態では、スレッドが要求するステートの組み合わせがC0P0である場合、所与のターボモードカウンタをインクリメントして、それ以外のステートがリクエストされる場合には、カウンタをデクリメントする。関連するインクリメント/デクリメントに重みづけをして、使用率点(例えば、SPECpower_ssj2008のようなベンチマークワークロードに関して)を、所望の値に設定することができる。例えば、非C0P0/C0P0重みづけが、8倍である場合には、使用率点は、8/(8+1)=89%となる。したがって、ターボモードカウンタがインクリメントされるまでに、非C0P0期間は、C0P0継続時間の8倍の長さとなる。あるいは、カウンタが、C0P0ステートでインクリメントされるよりも、非C0P0ステートで大きな重みづけでデクリメントされるようにしてもよい。このようにすることで、ターボモードがイネーブルされる使用率点の制御を改善することができる。
また、継続性カウンタを提供することにより、より深いCステート(例えば、深いスリープ状態)のショートバーストの間の、ターボモードパフォーマンスを改善させることができる。継続性カウンタは、プロセッサは概して深いCステートに長い期間存在することから、より深いCステートに対して重みづけをする。一実施形態では、電力制御ユニットによって実行される電力制御コードループ毎に、各カウンタを更新(例えば、インクリメント/デクリメント)することができる。この実施形態では、スレッド毎にカウントが維持され、スレッド毎のカウントを足し合わせて、ドメインレベル決定(例えば、電圧ドメイン)に使用する。プロセッサは、複数の電圧および周波数プレーンまたはドメインを含んでもよい。電圧ドメインは、プロセッサ設計に応じて、プロセッサの全てのコア、コアのサブサブセット、または、1つのコアであってもよく、各ドメインは、所定の電圧および周波数の組み合わせになるように、個別に制御可能である。
実施形態は、スループットモード(全てのコアがアクティブ)およびシングルスレッドモードの両方で動作してもよい。シングルスレッドが、遅延閾値に対してターボモードをリクエストする限りにおいて(以下に説明する)、ターボモードがイネーブルされる。スレッド毎にアルゴリズムを実行することで、遅延閾値を大幅に下げることができ、プロセッサがターボリクエストに対して速く応答できるようになる。
図2には、本発明の一実施形態に係る、プロセッサのターボモードオペレーションを設定する方法のフローチャートが示されている。図2に示すように、方法200は、プロセッサ上で実行されている複数のスレッドからの様々な情報を分析し、ターボモードのオペレーションに入る適切なタイミングを判断するべく、例えば、プロセッサの電力制御ユニットを設定するのに使用される。様々な実施形態において、ターボモードに入るのは、プロセッサの使用率レベルが相対的に高い時に発生し、多数のスレッド(例えば、12以上のスレッド)がプロセッサで実行されている場合であっても、例えば、80%以上の使用率レベルで発生する。
図2に示すように、方法200は、ターボモードと非ターボモードとの間の重みづけを設定する段階(ブロック210)から開始する。すなわち、上記したように、実施形態では、スレッドからの非ターボモードリクエストに大きく重みづけして、プロセッサが、スレッドから対応する多数のターボモードリクエストを受信した場合にのみ、ターボモードに入るようにしてもよい。一実施形態では、この重みづけは、非ターボモードリクエストが、ターボモードリクエストに与えられる値の8倍となるように設定されてもよく、この点に関して本発明の範囲は限定されない。このようにすることで、プロセッサが、相対的に高い使用率、例えば、本例では、89%に達した場合にのみ、ターボモードに入るようにする。この場合、重みづけは、閾値使用率レベルを設定することになり、閾値使用率レベル未満では、ターボモードはイネーブルされない。
この重みづけを設定するのに、異なる実施形態では、異なる態様が考えられる。ある実施形態では、この重みづけは、プロセッサの非コア部分の電力制御ユニットに存在するファームウェアによって、ハードコードされてもよい。別の実施形態では、重みづけは、様々なエンティティによって設定されてもよく、例えば、システムスタートアップで基本入出力システム(BIOS)、または、オペレーティングシステム(OS)制御のようなシステムソフトウェアによって設定されるコンフィグレーションレジスタを提供することを含む。別の実施形態では、ユーザアクセス可能なコンフィグレーションレジスタを提供することによって、ユーザが所定の重みづけをすることを可能としてもよい。様々な実施形態では、ターボモードに入る閾値使用率レベルの選択は、固定されてもよい(例えば、製造者によって固定された値)し、BIOSまたはOSのようなシステムソフトウェアによって制御されてもよいし、ユーザアクセス可能コンフィグレーションレジスタを介してユーザが動的に設定可能であってもよい。
重みづけの設定に加えて、複数の閾値を設定することもできる(ブロック220)。様々な実施形態では、複数の閾値は、ヒステリシスのレベルに対して提供されてもよく、高い閾値がターボモードに入る前に達成され、ターボモードの間に少なくとも1つの小さな閾値に達する限りにおいて、ターボモードがアクティブ状態を保ってもよい。したがって、このような閾値を、アプリケーションで発生する可能性のあるターボモードグリッチをフィルタするのに使用することができる。本発明の範囲はこの点に関して限定されないが、一実施形態において、このような閾値がプロセッサにハードコードされてもよく、また、様々なカウンタレベルに対応してもよい。これら重みづけおよび閾値が設定済みとなると、複数のターボモードカウンタが初期化される(ブロック230)。具体的には、電力制御ユニットは、例えば、スレッド毎のC0P0リクエストをトラックする期間カウンタを備えてもよい。図2の実施形態において、特定の実装形態が示されたが、本発明の範囲はこの点に関して限定されない。
図3には、本発明の一実施形態に係る、ターボモード制御方法のフローチャートが示されている。図3に示すように、方法300は、例えば、プロセッサの非コア部分に存在する、プロセッサの電力制御ユニットに実装されてもよい。一般的に、プロセッサ使用率が所定のレベルを超えた場合にのみ、ターボモードに入るように、方法300が使用される。加えて、方法は、ターボモードリクエストのフィルタリングおよびヒステリシスの測定を提供してもよく、一旦ターボモードに入った後で、プロセッサがすぐにターボモードを終了し、再びターボモードに入るといった場合には、ターボモードへの出入りのオペレーションは電力消費が大きくなることから、そのようなことが起きないようにできる。
概して、方法300は、電力制御ユニットによって実行される電力制御ループ各々の間に実行されてもよい。また、方法は、マルチドメインプロセッサにおける複数のドメインとは独立して実行されてもよい。したがって、複数の電圧ドメインを有するプロセッサでは、例えば、所定の電圧調整器によって電力の提供を受ける電圧ドメインのそれぞれは、一定のモードで動作してもよいい、すなわち、一定の電圧および周波数で動作してもよい。
図に示すように、方法300は、スレッドがC0P0の組み合わせを要求しているかを判断する段階(ひし形310)から開始してもよい。ここで使用されている、C0P0の組み合わせとは、スレッドが、高いパフォーマンスステート(P0)および高いコア電力ステート(C0)の両方を要求しているターボモードリクエストを指す。一実施形態では、この判断は、電力制御ユニットに存在する様々な制御情報の分析に基づいてもよい。例えば、複数の継続期間レジスタ(residency register)のセットを用意して、第1継続期間レジスタがC0リクエストを示し、別の継続期間レジスタがP0リクエストを示してもよい。このような一実施形態では、継続期間レジスタは、各ビットがプロセッサで実行されている所定のスレッドと関連付けられている、複数のビットを有してもよい。この場合、スレッドがC0P0の組み合わせを要求すると、P0継続期間レジスタおよびC0継続期間レジスタの対応するビットが設定されてもよい。この実装形態では、レジスタがスレッド情報ごとに提供されているが、その他の実装形態も可能である。例えば、C0およびP0継続期間レジスタが、各ドメインに対して、または、各コアに対して提供されてもよい。
ひし形310において、スレッドがC0P0ステートをリクエストしていると判断された場合には、制御はブロック315に移り、そのスレッドに対してターボモードカウンタがインクリメントされる。ひし形310において、スレッドがC0P0ステートをリクエストしていないと判断された場合には、制御は、ブロック320に移る。ブロック320では、そのスレッドに対するターボモードカウンタが、重みづけされた量だけデクリメントされる。すなわち、上記したように、高い使用率の場合にのみターボモードに入るように、ターボモードリクエストよりも、非ターボモードリクエストの方が高く重みづけされている。上記の例のデクリメントは、1回のインクリメントと比較して、8倍のデクリメントとなっている。すなわち、非ターボモードリクエストでは、スレッドのターボモードカウンタは、8つデクリメントされ、ターボモードリクエストでは、同じカウンタが(本例では)1つのみインクリメントされるといったように、異なる重みづけがC0P0リクエストと非C0P0リクエストとになされる。重みづけを変更することにより、使用率ブレイクポイントを調整することができる。デクリメント値を大きくすると、ターボモードに入る使用率の値を高くすることができる。制御は次に、ひし形330に移り、分析すべき更なるスレッドが存在するかを判断する。存在する場合には、制御は、ひし形310に戻る。存在しない場合には、この電力制御ループについて、全てのスレッドおよび全てのターボモードカウンタが適切に更新されたとして、ひし形350に移る。
図3に示すように、ひし形350では、スレッドのターボモードカウンタ値のうち、ターボトリガ閾値よりも大きい値が存在するかを判断する。ターボトリガ閾値は、ターボモードに入るカウンタ値に対応してもよい。電力制御ユニットは、スレッドのターボモードカウンタの全てを分析して、ターボモードカウンタのうちの少なくとも1つが、この閾値を超える値を有するかを判断する。一実施形態では、方法300を実装する電力制御ユニットは、トリガ閾値を超えるターボモードカウンタが存在するかを判断するOR機能を実行してもよい。存在する場合には、制御はブロック355に移り、プロセッサドメインが以前にターボモードでなかった場合には、ターボモードがアクティブにされてもよい。プロセッサドメインがすでにターボモードである場合には、ターボモードが維持される。
図3には示されていないが、ある実施形態では、ターボモード閾値を超えた後に一定期間ターボモードに入るのを遅らせる、遅延メカニズムを実装することができる。この遅延期間は、ひし形350の判断段階の後で発生させてもよい。そして、遅延期間を発生させるタイマが満了した時に、再度、所定のターボモードカウンタが、トリガ閾値よりも大きいかを判断してもよい。トリガ閾値よりも大きい場合には、ブロック355においてターボモードに入り、そうでない場合には、ターボモードに入らない。本発明は、この点に関して限定されないが、この遅延タイマは、約0.1秒から10秒の間の範囲であってもよい。
ひし形350において、ターボトリガ閾値を超える値を有するターボモードカウンタを有するスレッドが存在しないと判断された場合には、制御はひし形360に移り、ターボモードが現在アクティブになっているかを判断する。アクティブになっていない場合には、制御はブロック375に移り、そのプロセッサドメインについては、非ターボモードが維持される。ターボモードがアクティブである場合には、制御は、ひし形365に移り、そのプロセッサドメインのスレッドの最大ターボモードカウンタ値が、ターボディセーブル閾値未満であるかを判断する。ターボディセーブル閾値レベルは、ターボモードトリガ閾値よりも低いレベルに存在して、ターボモードにある場合に、トリガモード閾値を短期的に下回った場合に、ターボモードが終了しないようなヒステリシスの測定を提供する。このようにすることで、プログラムのバーストパターンを適合させて、ターボモードトリガ閾値レベル未満の小さなバーストが発生した場合でも、ターボモードを維持できる。プロセッサドメインの複数のスレッドのうちの少なくとも1つのターボモードカウンタ値が、少なくともディセーブル閾値を超えている限り、プロセッサドメインに対してターボモードが維持されてもよい(ブロック380)。プロセッサドメインの複数のスレッドの全てのターボモードカウンタ値が、このディセーブル閾値を下回る場合には、制御がブロック370に移り、このプロセッサドメインのターボモードが、ディセーブルされてもよい。図3の実施形態における特定の実装形態を参照して示されたが、本発明の範囲はこの点に関して限定されない。
表1には、本発明の一実施形態に係るシングルスレッドターボモード制御の結果が、様々な非C0P0/C0P0重みづけの場合のSPECpower使用率点で示されている。非ターボモードリクエストの重みづけが大きくなればなるほど、使用率点のターゲットが高くなる。これら結果により、重みづけが大きくなると、ターボモード継続期間が長くなることが明確に示されている。具体的には、表1の第1行目には、ベンチマークワークロードとして、60%から100%までの4段階が設定されている。表の第1列には、非ターボモードとターボモードとの間の様々な重みづけが示されており、表の第2列には、得られたターゲットのまたは閾値の使用率が示されている。残りの列には、プロセッサがターボモードで動作した期間の割合が示されている。
Figure 0005782565
表2には、本発明の一実施形態に係るソケットレベルターボモード制御の結果、シングルスレッドの結果よりもSPECpower_ssj2008使用率点が低いことが示されており、これは、アクティブなスレッドの数が多くなるに従って、P0ターボリクエストの確率が増えることに起因する。ターボモードに入る使用率点を高くするのに、2つのパラメータが存在する。1つ目は、重みづけが高くなると、ターゲット使用率点が高くなる。2つ目は、遅延閾値によって、短期間のターボによるグリッチをフィルタして、使用率点の制御を正確にする。
Figure 0005782565
次に、図4には、本発明の一実施形態に係る、プロセッサのブロック図が示されている。図4に示すように、プロセッサ400は、複数のコア410a−410nを含むマルチコアプロセッサであってもよい。一実施形態では、各コアは、複数の電圧および/または周波数で動作してもよく、命令された通りにターボモードに入る。様々なコアが、インターコネクト415を介して、様々な構成要素を含むシステムエージェントまたは非コア420に連結されておよい。図に示すように、非コア420は、ラストレベルキャッシュであってもよい共有キャッシュ430を有してもよい。また、非コアは、統合メモリコントローラ440、様々なインターフェース450および電力制御ユニット455を有してもよい。
様々な実施形態において、電力制御ユニット455は、OS電力管理コードと通信を行ってもよい。例えば、OSからのリクエストに基づいて、電力制御ユニット455は、PステートおよびCステートのような適切なステータス情報、例えば、PステートおよびCステート継続期間レジスタ456−456および457−457、を更新してもよく、様々な実行スレッドに対してターボモードカウンタ458−458を維持してもよい。
電力制御ユニットは、ターボモードロジック459を有してもよい。様々な実施形態において、ロジック459は、例えば、図3を参照して上記で説明したようなターボモード分析を実装すると共に、C0P0と非C0P0間の重みづけを設定する設定オペレーションの一部、様々なターボモード閾値等を実装してもよい。
また、ターボモードロジック459は、ターボモードリクエストを受信して、適切なカウンタおよびレジスタを更新してもよい。電力制御ユニット455内の電力制御ループを実行する間に、ターボモードロジック459は、所定のスレッドのターボモードカウンタを分析して、ターボモードに入るべきか、出るべきかまたは維持するべきかを、カウンタの様々な値および対応する閾値に基づいて判断してもよい。このような分析に応じて、電力制御ユニット455は、複数の制御信号を生成して、1以上のドメインのコアを、ターボモードまたは非ターボモードで動作するようにしてもよい。このように、ターボモードロジック459は、プロセッサの使用率が、少なくとも相対的に高い閾値レベル、例えば、80%以上になる場合にのみ、ターボモードへ入るまたはターボモードを維持することを可能にしてもよい。また、ある実施形態では、ターボモードロジック459は更に、所定のターボモードカウンタがトリガ閾値を超えた後に、ターボモードへ入るのを遅らせてもよく、それにより、スレッド実行の短いバーストによって、短期間のみターボモードに入るのを防ぐことができる。図4の実施形態では、特定のレベルの詳細が示されたが、本発明の範囲はこの点に関して限定されない。
図4に示すように、プロセッサ400は、例えば、メモリバスを介して、システムメモリ460と通信を行ってもよい。さらに、インターフェース450によって、周辺機器、マスストレージデバイス等の様々なオフチップ構成要素との接続を行うことができる。図4の実施形態において、特定の実装形態がしめされたが、本発明の範囲はこの点に関して限定されない。
図5には、本発明の一実施形態に係る、プロセッサコアのブロック図が示されている。図5に示すように、プロセッサコア500は、マルチステージ・パイプライン・アウトオブオーダプロセッサであってもよい。図5に示すように、コア500は、様々な電圧および周波数(ターボモードにおいておよび非ターボモードにおいて)で動作してもよい。
図5に示すように、コア500は、実行すべき命令をフェッチして、プロセッサで後の使用に備える、フロントエンドユニット510を備えてもよい。例えば、フロントエンドユニット510は、フェッチユニット501、命令キャッシュ503、命令デコーダ505を有してもよい。ある実装形態では、フロントエンドユニット510は更に、マイクロコード記憶部およびマイクロオペレーション記憶部と共に、トレースキャッシュを有してもよい。フェッチユニット501は、例えば、メモリまたは命令キャッシュ503から、マクロ命令をフェッチして、命令デコーダ505に供給し、これら命令を、プリミティブ、すなわち、プロセッサが実行するためのマイクロオペレーションへとデコードする。
フロントエンドユニット510と実行ユニット520との間には、アウトオブオーダ(OOO)エンジン515が接続されており、マイクロ命令を受信して実行に備えるのに使用される。より詳細には、OOOエンジン515は、マイクロ命令フローを並び変えて、実行に必要な様々なリソースを割り当てる、並びに、論理レジスタのリネームを行い、レジスタファイル530および拡張レジスタファイル535のような様々なレジスタ内の記憶ロケーションに提供する、様々なバッファを有してもよい。レジスタファイル530は、整数および浮動小数点オペレーションのために、別個のレジスタファイルを含んでもよい。拡張レジスタファイル535は、ベクトルサイズの単位、例えば、256ビットまたは512ビット/レジスタの記憶部を提供してもよい。
実行ユニット520内には、様々リソースが存在してもよく、その他の専用ハードウェアのうち、特に、例えば、様々な、整数、浮動小数点、単一命令複数データ(SIMD)ロジックユニットを含んでもよい。例えば、このような実行ユニットは、特に、1以上の算術演算ユニット(ALU)522を含んでもよい。
実行ユニットからの結果が、リタイアメントロジック、すなわち、リオーダバッファ(ROB)540に提供されてもよい。詳細には、ROB540は、実行される命令に関連する情報を受信する様々なアレイおよびロジックを含んでもよい。この情報は、ROB540によって検証されて、命令が有効にリタイアされるか、得られるデータがプロセッサのアーキテクチャステートに準じているか、または、命令の適切なリタイアを阻害するような1以上の例外が発生しているか等を判断する。無論、ROB540は、リタイアメントに関するその他のオペレーションを扱ってもよい。
図5に示すように、ROB540は、一実施形態では、低いレベルのキャッシュ(例えば、L1キャッシュ)であってもよいキャッシュ550に接続されるが、本発明の範囲はこの点に関して限定されない。実行ユニット520を、キャッシュ550と直接接続することもできる。キャッシュ550から、データ通信が高レベルキャッシュ、システムメモリ等に行われる。図5の実施形態では高レベルの例が示されたが、本発明の範囲は、この点に関して限定されない。例えば、図5の実装形態は、いわゆるx86命令セットアーキテクチャ(ISA)のようなアウトオブオーダマシーンに関して示されたが、本発明の範囲はこの点に関して限定されない。すなわち、その他の実施形態では、インオーダプロセッサ、ARMベースのプロセッサのような縮小命令セットコンピューティング(RISC)プロセッサ、または、様々なISAのオペレーションおよび命令を、エミュレーションエンジンおよび関連するロジック回路を介してエミュレートできる別の種類のISAのプロセッサを実装してもよい。
実施形態は、様々な種類のシステムに実装できる。図6には、本発明の一実施形態に係るシステムのブロック図が示されている。図6に示すように、マルチプロセッサシステム600は、ポイントツーポイントインターコネクトシステムであり、ポイントツーポイントインターコネクト650を介して接続された第1プロセッサ670および第2プロセッサ680を備える。図6に示すように、プロセッサ670および680のそれぞれは、第1プロセッサコアおよび第2プロセッサコア(すなわち、プロセッサコア674aおよび674b、並びに、プロセッサコア684aおよび684b)を含むマルチプロセッサであってもよく、プロセッサ内に図示されたよりも多い数のコアが存在してもよい。プロセッサの1以上のドメインの各々は、上記したように、プロセッサの使用率が相対的に高い場合にのみ、ターボモードに入るように制御される。
図6に示すように第1プロセッサ670は更に、メモリ制御ハブ(MCH)672並びにポイントツーポイント(P−P)インターフェース676および678を有する。同様に、第2プロセッサ680は、MCH682およびP−Pインターフェース686および688を有する。図6に示すように、MCH672および682は、プロセッサをそれぞれのメモリ、すなわち、プロセッサそれぞれにローカルに取り付けられるシステムメモリ(例えば、DRAM)の一部であってもよいメモリ632およびメモリ634に接続する。第1プロセッサ670および第2プロセッサ680を、P−P接続652および654をそれぞれ介して、チップセット690と接続してもよい。図6に示すように、チップセット690は、P−Pインターフェース694および698を有する。
更に、チップセット690は、チップセット690を高性能グラフィックスエンジン638にP−P接続639で接続するインターフェース692を有する。また、チップセット690は、インターフェース696を介して、第1バス616に接続されてもよい。図6に示すように、様々な入出力(I/O)デバイス614を、第1バス616に接続してもよく、第1バス616を第2バス620に接続するバスブリッジ618にも接続されてもよい。様々なデバイスを第2バス620に接続することができ、一実施形態では、例えば、キーボード/マウス622、通信デバイス626、および、コード630を含んでもよいその他のマスストレージデバイスまたはディスクドライブのようなデータ記憶ユニット628が含まれる。更に、オーディオI/O624を、第2バス620に接続してもよい。実施形態はその他の種類のシステムに組み込まれてもよく、例えば、スマートフォン、タブレットコンピュータ、ネットブック等のモバイルデバイスに組み込まれてもよい。
図7には、本発明の一実施形態に係る、ターボモード制御のシミュレーション結果が示されている。図7には、代表的なスレッド毎C0P0継続期間カウンタ(すなわち、本明細書に記載したターボモードカウンタ)が、SPECpower_ssj2008ワークロードに対してどのように反応するかを示した図である。X軸は、アプリケーションの開始から終了までの時間が示されている。Y軸には、C0P0継続期間カウンタ値(例えば、代表的な閾値について)と共に、当該カウンタ値の様々な閾値レベルが示されている。特に、図7のY軸には、ディセーブル閾値705が示されており、ターボモードである間にカウンタの値がこの閾値を下回ると、ターボモードがディセーブルされる。しかしながら、カウンタ値がこの閾値を上回る場合には、ターボモードは、すでに開始されている場合にのみアクティブとなる。すなわち、ディセーブル閾値を超えるカウンタ値を有することが、直接ターボモードに入るを可能にすることにつながらない。カウンタ値が、ディセーブル閾値よりも高いレベルにあるトリガ閾値710を超える場合に、ターボモードに入ることがトリガされる。カウンタ値は、アプリケーションが命令を実行すると増加し、実行が停止されると急速に減少する。図示の例は、非C0P0/C0P0の重みづけが、上記で例示した8倍の場合である。ワークロードが80%使用率になっても、89%のターゲットを下回っていることから、ターボモードはトリガされない。上記の実施形態では、0.4秒であった、遅延閾値を超える期間の間、カウンタがトリガ閾値を超える短い期間が存在する。この遅延閾値を大きくする、例えば、1秒にすると、本例において、ターボモードの短いバーストを除外することができる。遅延閾値を、相対的に短い期間(例えば、約1秒未満)に維持すると、ターボモードに入る時に、応答時間を改善することができる。ある実施形態では、ターボモードカウンタを、例えば、最大カウンタ値に対応する所定の上限に留めるように構成することができる。スレッド毎のターボモードカウンタを、コアコアごとにPステートを有するプロセッサで使用して、ソケット間のフィードバックおよび制御を伴うターボ決定を生成することができる。
このように、実施形態によれば、プロセッサが、所望のターボ効率点を調整する細かい制御を提供することにより、省電力で動作できると同時に高いパフォーマンスを提供することができる。また、本発明の一実施形態を使用することにより、ターボモードを、高い使用率レベルにおいてのみアクティブにすることができるため、高性能を必要とする場合にのみターボモードをアクティブとして電力効率を向上させることができる。
実施形態をコードに実装してもよく、命令を実行するようにシステムをプログラムするのに使用可能な命令を有する非一時的記憶媒体に格納されてもよい。記憶媒体としては、特にこれに限定されないが、フロッピー(登録商標)ディスク、光ディスク、ソリッドステートドライブ(SSD)、コンパクトディスクリードオンリーメモリ(CD−ROM)、再書き込み可能コンパクトディスク(CD−RW)、および、磁気光学ディスクのような任意の種類のディスク、リードオンリーメモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)及びスタティックランダムアクセスメモリ(SRAM)のようなランダムアクセスメモリ(RAM)、消去可能−プログラム可能リードオンリーメモリ(EPROM)、電気的消去可能−プログラム可能リードオンリーメモリ(EEPROM)、磁気カードまたは光学カード、または、電気的命令を格納するのに適したその他の種類の媒体が含まれる。
本発明が、限定された数の実施形態を参照して説明されたが、当業者であれば、数多くの変形および改良が可能であることは理解できる。添付の特許請求の範囲は、このような変形例および改良例についても全て、本発明の範囲に含まれることを意図している。
本明細書によれば、以下の各項目に記載の構成もまた開示される。
[項目1]
複数のコアおよび電力制御ユニット(PCU)を有するプロセッサを備え、
前記PCUは、対応するスレッドが第1パフォーマンスステートをリクエストしたかをそれぞれ示すパフォーマンスステートインジケータを複数格納する第1記憶部と、
前記対応するスレッドが第1コア電力ステートをリクエストしたかをそれぞれ示すコア電力ステートインジケータを複数格納する第2記憶部とを有し、
前記PCUは、前記第1記憶部および前記第2記憶部の情報に基づいて、ターボモードにすることを制御する、装置。
[項目2]
前記PCUは、それぞれが前記プロセッサで実行されるスレッドに関連付けられている複数のターボモードカウンタを有する、項目1に記載の装置。
[項目3]
第1のスレッドに対する前記パフォーマンスステートインジケータおよび前記コア電力ステートインジケータが、共に第1ステートである場合には、前記PCUは、ターボモードリクエストを示すべく、前記複数のターボモードカウンタのうちの前記第1のスレッドのターボモードカウンタを更新する、項目2に記載の装置。
[項目4]
前記パフォーマンスステートインジケータおよび前記コア電力ステートインジケータが、共に前記第1ステートである場合には、前記PCUは、第1重みづけに従って第1の方向に前記ターボモードカウンタを更新し、
前記パフォーマンスステートインジケータおよび前記コア電力ステートインジケータの少なくとも一方が、前記第1ステートでない場合には、前記PCUは、第2重みづけに従って第2の方向に前記ターボモードカウンタを更新し、
前記第2重みづけは、前記第1重みづけよりも大きい、項目3に記載の装置。
[項目5]
前記第1重みづけおよび前記第2重みづけは、ユーザが制御可能である、項目4に記載の装置。
[項目6]
前記プロセッサの使用率が、少なくとも第1閾値に等しくならない限り、前記PCUは、前記ターボモードに入ることを許可しない、項目1から5の何れか一項に記載の装置。
[項目7]
前記複数のターボモードカウンタのうちの少なくとも一つのターボモードカウンタの値が、トリガ閾値よりも大きい場合には、前記PCUは、前記プロセッサの少なくとも一部を前記ターボモードにする、項目2に記載の装置。
[項目8]
前記少なくとも一つのターボモードカウンタの前記値が、前記トリガ閾値よりも小さいが、ディセーブル閾値よりも大きい場合には、前記PCUは、前記プロセッサの前記少なくとも一部を前記ターボモードに維持する、項目7に記載の装置。
[項目9]
前記PCUは、前記プロセッサの前記少なくとも一部を、遅延期間だけ遅らせて、前記ターボモードにする、項目7に記載の装置。
[項目10]
対応するスレッドのターボモードリクエストを受け取った場合には、第1重みづけに従って、プロセッサで実行される複数のスレッドのそれぞれに対応する複数のターボモードカウンタを更新し、前記対応するスレッドの非ターボモードリクエストに応じて、前記第1重みづけよりも大きな第2重みづけに従って、前記複数のターボモードカウンタを更新する段階と、
前記複数のターボモードカウンタのうちの少なくとも一つの値が、ターボモードトリガ閾値を超えているかを判断する段階と、
超えている場合には、前記プロセッサの少なくとも一部をターボモードにする段階と、を備える方法。
[項目11]
前記複数のターボモードカウンタのうちの少なくとも1つの値が、ターボモードディセーブル閾値未満であるかを判断する段階と、
前記ターボモードディセーブル閾値未満である場合には、前記プロセッサの前記少なくとも一部の前記ターボモードを終了させる段階とを更に備える、項目10に記載の方法。
[項目12]
前記複数のスレッドのうちの第1スレッドが前記ターボモードをリクエストしたこと示すべく、パフォーマンスステート記憶部を更新する段階を更に備える、項目10に記載の方法。
[項目13]
前記第1スレッドが最大コア電力ステートをリクエストしたことを示すべく、コア電力ステート記憶部を更新する段階を更に備える、項目12に記載の方法。
[項目14]
前記第1スレッドの前記パフォーマンスステート記憶部および前記コア電力ステート記憶部の値に基づいて、前記複数のターボモードカウンタのうちの前記第1スレッドのターボモードカウンタを更新する段階を更に備える、項目13に記載の方法。
[項目15]
前記プロセッサの使用率が第1閾値を超えない限り、前記ターボモードに入ることがないように、前記第1重みづけおよび前記第2重みづけが設定される、項目10に記載の方法。
[項目16]
前記少なくとも一つのターボモードカウンタの値が、前記ターボモードトリガ閾値を超えた後に、前記ターボモードにするのを第1期間だけ遅らせる段階を更に備える、項目10から15の何れか一項に記載の方法。
[項目17]
前記第1期間の終了時に、前記少なくとも一つのターボモードカウンタ値が前記ターボモードトリガ閾値を超えているかを判断する段階と、
超えている場合には、前記ターボモードにし、超えていない場合には、前記ターボモードにしない段階とを更に備える、項目16に記載の方法。
[項目18]
プロセッサと、
前記プロセッサに接続されたダイナミックランダムアクセスメモリ(DRAM)とを備え、
前記プロセッサは、それぞれが少なくとも一つのコアを有する複数のドメインと、電力制御ロジックとを有し、
前記複数のドメインはそれぞれ、独立した周波数で動作し、
前記電力制御ロジックは、コア電力とパフォーマンスとの組み合わせのカウントを格納するカウンタの値と、第1閾値との比較に基づいて、第1ドメインをターボモードにする、システム。
[項目19]
前記電力制御ロジックは、前記第1ドメインのターボモードリクエストを受け取った場合には、第1重みづけに従って前記カウンタを更新し、前記第1ドメインの非ターボモードリクエストを受け取った場合には、第2重みづけに従って前記カウンタを更新し、
前記第2重みづけは、前記第1重みづけよりも大きい、項目18に記載のシステム。
[項目20]
前記電力制御ロジックは、前記ターボモードリクエストに応じて、前記カウンタを第1の方向に更新し、前記非ターボモードリクエストに応じて、前記カウンタを第2の方向に更新する、項目19に記載のシステム。
[項目21]
前記第1重みづけおよび前記第2重みづけにより、前記プロセッサの使用率閾値が設定され、
前記使用率閾値未満では、前記電力制御ロジックが前記ターボモードにしない、項目19に記載のシステム。
[項目22]
前記電力制御ロジックは、前記カウンタの値が前記第1閾値を超えた後に、第1期間だけ、前記ターボモードにするのを遅らせる、項目19から21の何れか一項に記載のシステム。

Claims (21)

  1. プロセッサであって、
    複数のコアおよび電力制御ユニット(PCU)を備え、
    前記PCUは、対応するスレッドが第1パフォーマンスステートをリクエストしたかをそれぞれ示すパフォーマンスステートインジケータを複数格納する第1記憶部と、
    前記対応するスレッドが第1コア電力ステートをリクエストしたかをそれぞれ示すコア電力ステートインジケータを複数格納する第2記憶部とを有し、
    前記PCUは、前記第1記憶部および前記第2記憶部の情報に基づいて、ターボモードにすることを制御
    前記PCUは、それぞれが前記プロセッサで実行されるスレッドに関連付けられている複数のターボモードカウンタを有し、前記複数のターボモードカウンタのうちの少なくとも一つのターボモードカウンタの値がトリガ閾値よりも大きい場合に前記プロセッサの少なくとも一部を前記ターボモードにする、プロセッサ
  2. 第1のスレッドに対する前記パフォーマンスステートインジケータおよび前記コア電力ステートインジケータが、共に第1ステートである場合には、前記PCUは、ターボモードリクエストを示すべく、前記複数のターボモードカウンタのうちの前記第1のスレッドのターボモードカウンタを更新する、請求項に記載のプロセッサ
  3. 前記パフォーマンスステートインジケータおよび前記コア電力ステートインジケータが、共に前記第1ステートである場合には、前記PCUは、第1重みづけに従って第1の方向に前記ターボモードカウンタを更新し、
    前記パフォーマンスステートインジケータおよび前記コア電力ステートインジケータの少なくとも一方が、前記第1ステートでない場合には、前記PCUは、第2重みづけに従って第2の方向に前記ターボモードカウンタを更新し、
    前記第2重みづけは、前記第1重みづけよりも大きい、請求項に記載のプロセッサ
  4. 前記第1重みづけおよび前記第2重みづけは、ユーザが制御可能である、請求項に記載のプロセッサ
  5. 前記プロセッサの使用率が、少なくとも第1閾値に等しくならない限り、前記PCUは、前記ターボモードに入ることを許可しない、請求項1からの何れか一項に記載のプロセッサ
  6. 前記少なくとも一つのターボモードカウンタの前記値が、前記トリガ閾値よりも小さいが、ディセーブル閾値よりも大きい場合には、前記PCUは、前記プロセッサの前記少なくとも一部を前記ターボモードに維持する、請求項に記載のプロセッサ
  7. 前記PCUは、前記プロセッサの前記少なくとも一部を、遅延期間だけ遅らせて、前記ターボモードにする、請求項に記載のプロセッサ
  8. 対応するスレッドのターボモードリクエストを受け取った場合には、第1重みづけに従って、プロセッサで実行される複数のスレッドのそれぞれに対応する複数のターボモードカウンタを更新し、前記対応するスレッドの非ターボモードリクエストに応じて、前記第1重みづけよりも大きな第2重みづけに従って、前記複数のターボモードカウンタを更新する段階と、
    前記複数のターボモードカウンタのうちの少なくとも一つの値が、ターボモードトリガ閾値を超えているかを判断する段階と、
    超えている場合には、前記プロセッサの少なくとも一部をターボモードにする段階と、を備える方法。
  9. 前記複数のターボモードカウンタのうちの少なくとも1つの値が、ターボモードディセーブル閾値未満であるかを判断する段階と、
    前記ターボモードディセーブル閾値未満である場合には、前記プロセッサの前記少なくとも一部の前記ターボモードを終了させる段階とを更に備える、請求項に記載の方法。
  10. 前記複数のスレッドのうちの第1スレッドが前記ターボモードをリクエストしたこと示すべく、パフォーマンスステート記憶部を更新する段階を更に備える、請求項に記載の方法。
  11. 前記第1スレッドが最大コア電力ステートをリクエストしたことを示すべく、コア電力ステート記憶部を更新する段階を更に備える、請求項10に記載の方法。
  12. 前記第1スレッドの前記パフォーマンスステート記憶部および前記コア電力ステート記憶部の値に基づいて、前記複数のターボモードカウンタのうちの前記第1スレッドのターボモードカウンタを更新する段階を更に備える、請求項11に記載の方法。
  13. 前記プロセッサの使用率が第1閾値を超えない限り、前記ターボモードに入ることがないように、前記第1重みづけおよび前記第2重みづけが設定される、請求項に記載の方法。
  14. 前記少なくとも一つのターボモードカウンタの値が、前記ターボモードトリガ閾値を超えた後に、前記ターボモードにするのを第1期間だけ遅らせる段階を更に備える、請求項8から13の何れか一項に記載の方法。
  15. 前記第1期間の終了時に、前記少なくとも一つのターボモードカウンタ値が前記ターボモードトリガ閾値を超えているかを判断する段階と、
    超えている場合には、前記ターボモードにし、超えていない場合には、前記ターボモードにしない段階とを更に備える、請求項14に記載の方法。
  16. プロセッサと、
    前記プロセッサに接続されたダイナミックランダムアクセスメモリ(DRAM)とを備え、
    前記プロセッサは、それぞれが少なくとも一つのコアを有する複数のドメインと、電力制御ロジックとを有し、
    前記複数のドメインはそれぞれ、独立した周波数で動作し、
    前記電力制御ロジックは、コア電力とパフォーマンスとの組み合わせのカウントを格納するカウンタの値と、第1閾値との比較に基づいて、第1ドメインをターボモードにする、システム。
  17. 前記電力制御ロジックは、前記第1ドメインのターボモードリクエストを受け取った場合には、第1重みづけに従って前記カウンタを更新し、前記第1ドメインの非ターボモードリクエストを受け取った場合には、第2重みづけに従って前記カウンタを更新し、
    前記第2重みづけは、前記第1重みづけよりも大きい、請求項16に記載のシステム。
  18. 前記電力制御ロジックは、前記ターボモードリクエストに応じて、前記カウンタを第1の方向に更新し、前記非ターボモードリクエストに応じて、前記カウンタを第2の方向に更新する、請求項17に記載のシステム。
  19. 前記第1重みづけおよび前記第2重みづけにより、前記プロセッサの使用率閾値が設定され、
    前記使用率閾値未満では、前記電力制御ロジックが前記ターボモードにしない、請求項17に記載のシステム。
  20. 前記電力制御ロジックは、前記カウンタの値が前記第1閾値を超えた後に、第1期間だけ、前記ターボモードにするのを遅らせる、請求項17から19の何れか一項に記載のシステム。
  21. プロセッサであって、
    複数のコアおよび電力制御ユニット(PCU)を備え、
    前記PCUは、対応するスレッドが第1パフォーマンスステートをリクエストしたかをそれぞれ示すパフォーマンスステートインジケータを複数格納する第1記憶部と、
    前記対応するスレッドが第1コア電力ステートをリクエストしたかをそれぞれ示すコア電力ステートインジケータを複数格納する第2記憶部とを有し、
    前記PCUは、前記第1記憶部および前記第2記憶部の情報に基づいて、ターボモードにすることを制御し、
    前記PCUは、それぞれが前記プロセッサで実行されるスレッドに関連付けられている複数のターボモードカウンタを有し、第1のスレッドに対する前記パフォーマンスステートインジケータおよび前記コア電力ステートインジケータが共に第1ステートである場合には、ターボモードリクエストを示すべく、第1重みづけに従って第1の方向に前記複数のターボモードカウンタのうちの前記第1のスレッドのターボモードカウンタを更新し、前記第1のスレッドに対する前記パフォーマンスステートインジケータおよび前記コア電力ステートインジケータの少なくとも一方が前記第1ステートでない場合には、前記第1重みづけよりも大きい第2重みづけに従って第2の方向に前記ターボモードカウンタを更新する、
    プロセッサ。
JP2014517131A 2011-06-27 2012-06-20 プロセッサのターボモード動作での電力効率を向上させる方法 Active JP5782565B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/169,260 2011-06-27
US13/169,260 US8793515B2 (en) 2011-06-27 2011-06-27 Increasing power efficiency of turbo mode operation in a processor
PCT/US2012/043407 WO2013003159A2 (en) 2011-06-27 2012-06-20 Increasing power efficiency of turbo mode operation in a processor

Publications (2)

Publication Number Publication Date
JP2014523023A JP2014523023A (ja) 2014-09-08
JP5782565B2 true JP5782565B2 (ja) 2015-09-24

Family

ID=47362985

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014517131A Active JP5782565B2 (ja) 2011-06-27 2012-06-20 プロセッサのターボモード動作での電力効率を向上させる方法

Country Status (9)

Country Link
US (3) US8793515B2 (ja)
JP (1) JP5782565B2 (ja)
KR (1) KR101501402B1 (ja)
CN (1) CN103649864B (ja)
BR (1) BR112013033426A2 (ja)
DE (1) DE112012002664B4 (ja)
GB (1) GB2506303B (ja)
TW (2) TWI455022B (ja)
WO (1) WO2013003159A2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130040485A (ko) * 2011-10-14 2013-04-24 삼성전자주식회사 휴대 단말기에서 중앙처리장치를 제어하는 장치 및 방법
US9098261B2 (en) * 2011-12-15 2015-08-04 Intel Corporation User level control of power management policies
CN106909444B (zh) * 2011-12-22 2021-01-12 英特尔公司 用于指定应用线程性能状态的指令的指令处理装置及相关方法
CN104204999B (zh) * 2012-03-13 2017-09-26 英特尔公司 用于个体核性能状态的方法和装置
US9141426B2 (en) * 2012-09-28 2015-09-22 Intel Corporation Processor having per core and package level P0 determination functionality
US9417873B2 (en) 2012-12-28 2016-08-16 Intel Corporation Apparatus and method for a hybrid latency-throughput processor
US9164565B2 (en) 2012-12-28 2015-10-20 Intel Corporation Apparatus and method to manage energy usage of a processor
US9542193B2 (en) 2012-12-28 2017-01-10 Intel Corporation Memory address collision detection of ordered parallel threads with bloom filters
US9361116B2 (en) 2012-12-28 2016-06-07 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US10140129B2 (en) 2012-12-28 2018-11-27 Intel Corporation Processing core having shared front end unit
US10346195B2 (en) 2012-12-29 2019-07-09 Intel Corporation Apparatus and method for invocation of a multi threaded accelerator
US9377841B2 (en) * 2013-05-08 2016-06-28 Intel Corporation Adaptively limiting a maximum operating frequency in a multicore processor
US9513689B2 (en) * 2014-06-30 2016-12-06 Intel Corporation Controlling processor performance scaling based on context
KR101717201B1 (ko) * 2014-12-08 2017-03-16 주식회사 엘지화학 전지의 방전 제어 기능을 가지는 디바이스
US10234930B2 (en) * 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9952651B2 (en) * 2015-07-31 2018-04-24 International Business Machines Corporation Deterministic current based frequency optimization of processor chip
CN106406424A (zh) * 2015-07-31 2017-02-15 联想(北京)有限公司 一种电子设备及超频控制方法
US10277523B2 (en) * 2015-12-31 2019-04-30 Facebook, Inc. Dynamically adapting to demand for server computing resources
US10296067B2 (en) * 2016-04-08 2019-05-21 Qualcomm Incorporated Enhanced dynamic clock and voltage scaling (DCVS) scheme
US10359833B2 (en) * 2016-06-20 2019-07-23 Qualcomm Incorporated Active-core-based performance boost
US10437646B2 (en) * 2017-02-13 2019-10-08 Dell Products L.P. Automatic detection of optimal compute unit partitioning
CN107273271A (zh) * 2017-06-21 2017-10-20 联想(北京)有限公司 一种超频控制方法及电子设备
CN107621984B (zh) * 2017-09-30 2020-06-19 福州瑞芯微电子股份有限公司 多核处理器评估调整方法、存储介质和计算机
US10719120B2 (en) 2017-12-05 2020-07-21 Facebook, Inc. Efficient utilization of spare datacenter capacity
US10620969B2 (en) 2018-03-27 2020-04-14 Intel Corporation System, apparatus and method for providing hardware feedback information in a processor
CN108959020B (zh) * 2018-05-08 2021-01-12 华为技术有限公司 一种计算机cpu利用率的计算方法和装置
JP6767548B1 (ja) 2019-07-26 2020-10-14 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、制御方法およびプログラム
CN113009999A (zh) * 2019-12-20 2021-06-22 华为技术有限公司 一种处理器的功率调整方法及装置
JP7155212B2 (ja) 2020-09-24 2022-10-18 レノボ・シンガポール・プライベート・リミテッド 情報処理装置および制御方法
CN113238854B (zh) * 2021-07-07 2021-11-19 苏州浪潮智能科技有限公司 一种线程数自动调节的方法、装置、设备及可读介质
JP7233513B1 (ja) 2021-12-22 2023-03-06 レノボ・シンガポール・プライベート・リミテッド 情報処理装置および制御方法

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163153A (en) 1989-06-12 1992-11-10 Grid Systems Corporation Low-power, standby mode computer
US5522087A (en) 1994-03-22 1996-05-28 Verifone Inc. System for selectively operating in different modes depending upon receiving signal from a host computer within a time window upon power up
US5590341A (en) 1994-09-30 1996-12-31 Intel Corporation Method and apparatus for reducing power consumption in a computer system using ready delay
US5621250A (en) 1995-07-31 1997-04-15 Ford Motor Company Wake-up interface and method for awakening an automotive electronics module
US5931950A (en) 1997-06-17 1999-08-03 Pc-Tel, Inc. Wake-up-on-ring power conservation for host signal processing communication system
US6823516B1 (en) 1999-08-10 2004-11-23 Intel Corporation System and method for dynamically adjusting to CPU performance changes
US7539885B2 (en) 2000-01-13 2009-05-26 Broadcom Corporation Method and apparatus for adaptive CPU power management
US7010708B2 (en) 2002-05-15 2006-03-07 Broadcom Corporation Method and apparatus for adaptive CPU power management
JP2001318742A (ja) 2000-05-08 2001-11-16 Mitsubishi Electric Corp コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
KR100361340B1 (ko) 2000-05-15 2002-12-05 엘지전자 주식회사 씨피유 클럭 제어 방법
US6792392B1 (en) 2000-06-30 2004-09-14 Intel Corporation Method and apparatus for configuring and collecting performance counter data
US6748546B1 (en) 2000-09-26 2004-06-08 Sun Microsystems, Inc. Method and apparatus for reducing power consumption
US6829713B2 (en) 2000-12-30 2004-12-07 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US7058824B2 (en) 2001-06-15 2006-06-06 Microsoft Corporation Method and system for using idle threads to adaptively throttle a computer
US20030061383A1 (en) 2001-09-25 2003-03-27 Zilka Anthony M. Predicting processor inactivity for a controlled transition of power states
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US6775787B2 (en) * 2002-01-02 2004-08-10 Intel Corporation Instruction scheduling based on power estimation
US6996728B2 (en) 2002-04-26 2006-02-07 Hewlett-Packard Development Company, L.P. Managing power consumption based on utilization statistics
US7051227B2 (en) 2002-09-30 2006-05-23 Intel Corporation Method and apparatus for reducing clock frequency during low workload periods
US6898689B2 (en) 2002-11-15 2005-05-24 Silicon Labs Cp, Inc. Paging scheme for a microcontroller for extending available register space
US7043649B2 (en) 2002-11-20 2006-05-09 Portalplayer, Inc. System clock power management for chips with multiple processing modules
US6971033B2 (en) 2003-01-10 2005-11-29 Broadcom Corporation Method and apparatus for improving bus master performance
JP2006518064A (ja) 2003-01-23 2006-08-03 ユニバーシティー オブ ロチェスター マルチクロックドメインを有するマイクロプロセッサ
JP4061492B2 (ja) 2003-02-10 2008-03-19 ソニー株式会社 情報処理装置および消費電力制御方法
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US7272732B2 (en) 2003-06-30 2007-09-18 Hewlett-Packard Development Company, L.P. Controlling power consumption of at least one computer system
TW200502847A (en) 2003-07-08 2005-01-16 Benq Corp Control device and method for reducing number of interrupts in a processor
US7146514B2 (en) 2003-07-23 2006-12-05 Intel Corporation Determining target operating frequencies for a multiprocessor system
US7272730B1 (en) 2003-07-31 2007-09-18 Hewlett-Packard Development Company, L.P. Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform
US7194643B2 (en) 2003-09-29 2007-03-20 Intel Corporation Apparatus and method for an energy efficient clustered micro-architecture
US7903116B1 (en) 2003-10-27 2011-03-08 Nvidia Corporation Method, apparatus, and system for adaptive performance level management of a graphics system
US7770034B2 (en) 2003-12-16 2010-08-03 Intel Corporation Performance monitoring based dynamic voltage and frequency scaling
US20070094444A1 (en) 2004-06-10 2007-04-26 Sehat Sutardja System with high power and low power processors and thread transfer
US20070156992A1 (en) 2005-12-30 2007-07-05 Intel Corporation Method and system for optimizing latency of dynamic memory sizing
US7451333B2 (en) 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US9001801B2 (en) 2004-09-07 2015-04-07 Broadcom Corporation Method and system for low power mode management for complex Bluetooth devices
US7941585B2 (en) 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US7426648B2 (en) 2004-09-30 2008-09-16 Intel Corporation Global and pseudo power state management for multiple processing elements
US7434073B2 (en) 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US8041967B2 (en) 2005-02-15 2011-10-18 Hewlett-Packard Development Company, L.P. System and method for controlling power to resources based on historical utilization data
US7454632B2 (en) 2005-06-16 2008-11-18 Intel Corporation Reducing computing system power through idle synchronization
US7430673B2 (en) 2005-06-30 2008-09-30 Intel Corporation Power management system for computing platform
US7490254B2 (en) * 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
US8301868B2 (en) 2005-09-23 2012-10-30 Intel Corporation System to profile and optimize user software in a managed run-time environment
US20070079294A1 (en) 2005-09-30 2007-04-05 Robert Knight Profiling using a user-level control mechanism
US20070106827A1 (en) 2005-11-08 2007-05-10 Boatright Bryan D Centralized interrupt controller
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US7437270B2 (en) 2006-03-30 2008-10-14 Intel Corporation Performance state management
CN101118460A (zh) * 2006-05-10 2008-02-06 马维尔国际贸易有限公司 具有高功率和低功率处理器以及线程转移的系统
US7752468B2 (en) 2006-06-06 2010-07-06 Intel Corporation Predict computing platform memory power utilization
US7529956B2 (en) 2006-07-17 2009-05-05 Microsoft Corporation Granular reduction in power consumption
US7930564B2 (en) 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US7818596B2 (en) * 2006-12-14 2010-10-19 Intel Corporation Method and apparatus of power management of processor
CN101558383B (zh) * 2006-12-14 2012-11-14 英特尔公司 处理器的电源管理方法和装置
US8117478B2 (en) * 2006-12-29 2012-02-14 Intel Corporation Optimizing power usage by processor cores based on architectural events
US7730340B2 (en) 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
WO2008117133A1 (en) 2007-03-26 2008-10-02 Freescale Semiconductor, Inc. Anticipation of power on of a mobile device
JP2008257578A (ja) 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
US7971074B2 (en) 2007-06-28 2011-06-28 Intel Corporation Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system
US8032772B2 (en) * 2007-11-15 2011-10-04 Intel Corporation Method, apparatus, and system for optimizing frequency and performance in a multi-die microprocessor
US20090150696A1 (en) 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US7966506B2 (en) 2007-12-12 2011-06-21 Intel Corporation Saving power in a computer system
US8442697B2 (en) 2007-12-18 2013-05-14 Packet Digital Method and apparatus for on-demand power management
KR101459140B1 (ko) 2007-12-26 2014-11-07 엘지전자 주식회사 전원관리 제어 장치 및 방법
US8156362B2 (en) 2008-03-11 2012-04-10 Globalfoundries Inc. Hardware monitoring and decision making for transitioning in and out of low-power state
US8127153B2 (en) * 2008-07-29 2012-02-28 Oracle America, Inc. Memory power profiling
US8954977B2 (en) 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
GB0903836D0 (en) * 2009-03-05 2009-04-22 Oxford Instr Plasma Technology Interface module and controller network
US20110106282A1 (en) 2009-07-23 2011-05-05 Corevalus Systems, Llc Audio Processing Utilizing a Dedicated CPU Core and a Real Time OS
US8527796B2 (en) * 2009-08-24 2013-09-03 Intel Corporation Providing adaptive frequency control for a processor using utilization information
US8291249B2 (en) * 2009-09-25 2012-10-16 Advanced Micro Devices, Inc. Method and apparatus for transitioning devices between power states based on activity request frequency
US8321705B2 (en) 2009-10-13 2012-11-27 Advanced Micro Devices, Inc. Dynamic table look-up based voltage regulator control
US8700943B2 (en) 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads
JP5345990B2 (ja) * 2010-08-27 2013-11-20 レノボ・シンガポール・プライベート・リミテッド 特定のプロセスを短時間で処理する方法およびコンピュータ
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US8949637B2 (en) 2011-03-24 2015-02-03 Intel Corporation Obtaining power profile information with low overhead
US8769316B2 (en) 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
US8954770B2 (en) 2011-09-28 2015-02-10 Intel Corporation Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin
US9074947B2 (en) 2011-09-28 2015-07-07 Intel Corporation Estimating temperature of a processor core in a low power state without thermal sensor information
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US8832478B2 (en) 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency

Also Published As

Publication number Publication date
WO2013003159A2 (en) 2013-01-03
US8793515B2 (en) 2014-07-29
CN103649864B (zh) 2016-08-17
TWI455022B (zh) 2014-10-01
GB2506303A (en) 2014-03-26
TW201319933A (zh) 2013-05-16
WO2013003159A3 (en) 2013-02-28
GB201322486D0 (en) 2014-02-05
CN103649864A (zh) 2014-03-19
TW201447752A (zh) 2014-12-16
US20120331310A1 (en) 2012-12-27
US8683240B2 (en) 2014-03-25
DE112012002664B4 (de) 2018-09-13
KR20140025546A (ko) 2014-03-04
DE112012002664T5 (de) 2014-03-20
KR101501402B1 (ko) 2015-03-10
US20130179703A1 (en) 2013-07-11
GB2506303B (en) 2020-04-15
US20140149774A1 (en) 2014-05-29
BR112013033426A2 (pt) 2017-01-24
TWI540503B (zh) 2016-07-01
US8904205B2 (en) 2014-12-02
JP2014523023A (ja) 2014-09-08

Similar Documents

Publication Publication Date Title
JP5782565B2 (ja) プロセッサのターボモード動作での電力効率を向上させる方法
US10877549B2 (en) Configuring power management functionality in a processor
US8181047B2 (en) Apparatus and method for controlling power management by comparing tick idle time data to power management state resume time data
US9618997B2 (en) Controlling a turbo mode frequency of a processor
CN105183128B (zh) 强制处理器进入低功率状态
Sethia et al. Equalizer: Dynamic tuning of gpu resources for efficient execution
KR101476568B1 (ko) 코어 마다의 전압 및 주파수 제어 제공
US8898435B2 (en) Optimizing system throughput by automatically altering thread co-execution based on operating system directives
US20090320031A1 (en) Power state-aware thread scheduling mechanism
US9342122B2 (en) Distributing power to heterogeneous compute elements of a processor
KR20080038389A (ko) 멀티플 코어 프로세서에서 하나 또는 그 이상의 코어의워크로드 성능의 향상 및 향상 방법
WO2011011668A1 (en) Determining performance sensitivities of computational units
JP5345990B2 (ja) 特定のプロセスを短時間で処理する方法およびコンピュータ
Wang et al. Using per-loop CPU clock modulation for energy efficiency in OpenMP applications
TW201314433A (zh) 伺服器系統及其電源管理方法
WO2016057335A1 (en) Operation parameter control based upon queued instruction characteristics
Schönherr et al. A scheduling approach for efficient utilization of hardware-driven frequency scaling

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150320

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150717

R150 Certificate of patent or registration of utility model

Ref document number: 5782565

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250