JP5763168B2 - プロセッサパフォーマンスマネジメントシステムからの処理のマスキングによる電源消費の低減 - Google Patents

プロセッサパフォーマンスマネジメントシステムからの処理のマスキングによる電源消費の低減 Download PDF

Info

Publication number
JP5763168B2
JP5763168B2 JP2013500469A JP2013500469A JP5763168B2 JP 5763168 B2 JP5763168 B2 JP 5763168B2 JP 2013500469 A JP2013500469 A JP 2013500469A JP 2013500469 A JP2013500469 A JP 2013500469A JP 5763168 B2 JP5763168 B2 JP 5763168B2
Authority
JP
Japan
Prior art keywords
task
processor
period
execution
interval
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
JP2013500469A
Other languages
English (en)
Other versions
JP2013522787A (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.)
Sony Europe BV United Kingdom Branch
Sony Corp
Original Assignee
Sony United Kingdom Ltd
Sony 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 Sony United Kingdom Ltd, Sony Corp filed Critical Sony United Kingdom Ltd
Publication of JP2013522787A publication Critical patent/JP2013522787A/ja
Application granted granted Critical
Publication of JP5763168B2 publication Critical patent/JP5763168B2/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
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking 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

Description

本発明は、一般に、情報技術におけるエネルギー効率の分野に関し、特に、動的周波数電圧制御(DFVS:dynamic frequency and voltage scaling)とも呼ばれるプロセッサパフォーマンスマネジメント(PPM)が採用される場合に、エネルギー効率を向上させることに関する。特に、本発明は、特定の処理(特に、ユーザアプリケーション、システムレベルサービス、又は「デーモン」)に関連付けられる計算負荷の電力パフォーマンスマネジメントアルゴリズムへの影響を低減することによって機能する省電力技術に関する。
今日、コンピュータ、及び、プロセッサ(特に、中央処理装置(CPU))を備える他のデバイス/装置(とりわけ、大半の時間、バッテリ電力を用いて機能する、ラップトップ、PDA、携帯電話等の携帯機器)の電力消費を低減するために、プロセッサパフォーマンスマネジメントは広く用いられている。本明細書において、「コンピューティング装置(computing apparatus)」という用語は、プロセッサを備えるデバイス/装置を指し示すための一般的な表現として用いられるべきである。
最新のプロセッサは、広範囲にわたる様々なクロック周波数及びプロセッサコア電圧(Vcc)において機能することが可能である。動作周波数と動作電圧との各組み合わせは、プロセッサパフォーマンスの異なる標準に対応し、「パフォーマンス状態」、「動作点」、又はACPI(Advanced Configuration and Power Interface standard)に従って「Pステート」としばしば称される。各パフォーマンス状態は、異なるレベルの電力消費を伴う:電力消費は、CPUクロック周波数と共に直線的に上昇し、動作電圧の二乗に比例して上昇する。換言すると、次式(1)は、電力消費PがCPUクロック周波数f及び動作電圧Vと共にどのように変化するかの近似である:
Figure 0005763168
ここで、Cはプロセッサのキャパシタンスである。
一例として、表1は、1.6GHz Intel PentiumTM Mプロセッサによってサポートされるプロセッサパフォーマンス状態を示す。
Figure 0005763168
大まかに言えば、プロセッサパフォーマンスマネジメントは、そのときシステムに適用可能な条件に基づいて、及び/又はユーザによって特定されていてもよい電力マネジメントプロトコルに基づいて、プロセッサについてのパフォーマンス状態を動的に選択することを伴う。典型的には、高パフォーマンス状態(とり得る最高動作周波数及び最高動作電圧)はプロセッサの使用率が高い場合に選択され、省電力の低パフォーマンス状態(とり得る最低動作周波数及び最低動作電圧)は、プロセッサの使用率が低い場合に選択され、中間の状態は他の状況において選択されるであろう。
プロセッサパフォーマンス状態の選択に影響を及ぼす特定の要因は複数とすることができ、システムごとに異なる。考慮される典型的なパラメータは、プロセッサ使用率(又はプロセッサ「アクティビティ」)、ユーザの電力ポリシー、現在のバッテリレベル、並びに加熱条件及び熱イベントを含むが、これらに限定されない。さらに、PPMアルゴリズムによっては、これらのパラメータの予測値に基づいて、次の期間についてのプロセッサパフォーマンス状態の選択をするものもある。
PPMは、プロセッサ、BIOS及び/又はオペレーティングシステムにおける機能を利用して、様々な手法で実装されることができる。周知のPPMシステムの例は、AMDのPowerNow!TM、ARMのPowerWise AVS(Adaptive Voltage Scaling)及びIEM(Intelligent Energy Manager)、並びにIntelのEnhanced SpeedStepTMテクノロジーを含む。
PPMシステムを分解する1つの手法は、所与の期間についてどのプロセッサパフォーマンス状態が選択されるべきであるかを決定する制御ユニットと、(例えば、Intel SpeedStepTMシステムのように、プロセッサの内部にあるレジスタに、次に対象となるプロセッサパフォーマンス状態を識別するコードを書き込むことによって)プロセッサパフォーマンス状態の所望の設定を実装するドライバモジュールと、があると考えることである。幾つかの場合に、対象となるプロセッサパフォーマンス状態及び/又は実際のプロセッサパフォーマンス状態を保持するレジスタのロケーションを判定するために、オペレーティングシステムはBIOSを参照する必要があり得る。プロセッサがパフォーマンス状態を変化させるように指示される場合、典型的には、プロセッサは所望の動作電圧を関連付けられる電圧レギュレータに特定する。
本発明は、プロセッサパフォーマンス状態における所望の変化を指示するために用いられる特定の技法に関わらず、また、指示された変化を実装するために採用される特定の技法に関わらず、適用されることができる。
しばしば、様々な電力マネジメントポリシーのグループがあり、ユーザは、所与の時間にシステムが適用することをユーザが所望するポリシーを選択し、及び/又は当該ポリシーを構成することができる。例えば、オペレーティングシステムのMicrosoft Windows 7TMは、「パフォーマンス(Performance)」、「バランス(Balanced)」及び「パワーセーバ(Power Saver)」とそれぞれ呼ばれる3つの電力マネジメントポリシー(又は「電力プラン」)を仕様化し、ユーザは、例えば所与のポリシーにおける最大限度及び最小限度のプロセッサ使用率を特定することによって、これら3つのポリシーをカスタマイズすることが可能である。
多くの場合、プロセッサへの負荷が当該プロセッサについて選択されるパフォーマンス状態に影響を及ぼすPPMモードにおいて、システムは動作するであろう。
プロセッサアクティビティを考慮してプロセッサパフォーマンスを選択するPPMポリシーを実装するように構成されるコンピュータ(又はデータ処理能力を有する他のデバイス)は、計算集約的なタスクが処理されている場合は常に、高パフォーマンスプロセッサ状態(即ち、高い動作周波数及び高い動作電圧と共に高い電力消費)を選択するであろう。概して、PPMモジュールは、実際に迅速に処理されるべきである優先度が高いタスクと、緊急ではない(即ち、電力消費の低減につながる場合は、タスクをよりゆっくり完了すること、即ち、より低いプロセッサパフォーマンス状態、をユーザが容認するであろう)タスクとを、区別することができない。
この点において、コンピュータユーザがユーザのシステムのリソースをボランティアコンピューティングプロジェクトに提供し、当該ユーザのシステムが、少なくとも部分的にはプロセッサへの計算負荷に基づいてプロセッサパフォーマンス状態を選択するPPMポリシーを実装するように構成されている場合に、何が起きるかを考慮されたい。
ボランティアコンピューティングにおいて、人々は、自身のコンピュータリソースを、大きな、及び殆どの場合、科学的なコンピューティングプロジェクトに寄与させる。周知のボランティアコンピューティングプロジェクトは、climateprediction.netのウェブサイトを介して主としてオックスフォード大学によって実行される気候モデリングプロジェクトである。
ボランティアコンピューティングプロジェクトに参加することができるように、ユーザは、典型的には、当該ボランティアコンピューティングプロジェクトに関連付けられるサーバから小さなアプリケーションをダウンロードし、当該アプリケーションをユーザのコンピュータにインストールする。アプリケーションは、データのブロックをダウンロードし、ボランティアに充てられたコンピュータのプロセッサを用いて計算を実行し、結果をサーバにアップロードし、次のデータのブロックをダウンロードする等する。ボランティアコンピューティングプロジェクトは、概して、計算集約的な、即ち、主に数学的な演算を実行することをプロセッサに要求するアプリケーションを伴う。このようなアプリケーションは、しばしば「CPUバウンドな(CPU-bound)」アプリケーションと称される。
最も一般的な場合おいて、ボランティアコンピューティングアプリケーションは、コンピュータがしばらくの時間アイドル状態にあるときにのみ実行され、即ち、スクリーンセーバとして実行されるように構成される。この種の場合(及び他の場合)において発生する電力消費を評価するために、ベンチマークアプリケーションが書かれ、このベンチマークアプリケーションは、ダミー計算を実行して、CPUバウンドなユーザアプリケーションの振る舞いを模倣するように設計された。ベンチマークアプリケーションは、下記の装置を用いて実行された:SpeedStepTMテクノロジーをフィーチャーした、1500MHz Intel PentiumTM M Baniasプロセッサを用い、Linuxカーネルバージョン2.6.31を有するGNU/Linuxオペレーティングシステムを用い、プロセッサのパフォーマンス状態をプロセッサの使用率に基づいて選択するように構成される、ソニーのVAIOTMラップトップ(PCG−Z1SPモデル)。
ベンチマークアプリケーションが上記の装置上でスクリーンセーバとして実行された場合、当該アプリケーションの実行中のプロセッサ使用率(又はプロセッサ負荷)は100%であり、従って、PPMシステムは、利用可能な最も高いパフォーマンスのプロセッサ状態を選択した。これらの条件において、計算を完了するために約57秒を要し、凡そ1700ジュールのエネルギーが用いられ、平均電力消費は30ワットとなった。ボランティアコンピューティングアプリケーションがユーザのリソースを用いることができるように、ユーザがユーザのコンピュータを意図的に純粋にオンのままにしている場合、この電力の全ては、純粋に当該ボランティアコンピューティングプロジェクトへの参加の結果として消費されている。
対照的に、例えばユーザがユーザのコンピュータを通常の事務作業に用いている間に、ボランティアコンピューティングアプリケーション(又は、他のCPUバウンドなタスク)をバックグラウンドタスクとして実行することも可能である。
図1は、ユーザが(上記のように構成される)上述されたラップトップを通常の事務作業について用いる場合のCPUアクティビティの典型的なパターンを図示する。図1(a)は、時間に伴うCPU負荷における変化の典型的なパターンの一例を図示し、図1(b)は、(CPU負荷が高い場合は高パフォーマンスプロセッサモードを選択するが、CPU負荷が低い場合には低パフォーマンスプロセッサモードを選択するように構成される)PPMシステムの制御下で、同じ期間にわたりCPUクロック周波数がどのように変化するかを示す。
図1(a)から、ラップトップが典型的な事務作業について用いられる場合、平均的なCPU負荷は低いこと、即ち、概して20%を下回ることが分かるであろう。図1(b)は、CPUのクロック周波数も、(例えば、事務アプリケーションが画像をロードし及び展開する場合に)時折より高い周波数に急上昇するものの、低いままであることを示す。ラップトップが通常の事務作業に用いられる場合の電力消費は、およそ13ワットであり、これはラップトップがアイドルである(即ち、CPU負荷がゼロに近い)場合と実質的に同じである。
ユーザが上記のテスト用のラップトップ構成上で通常の事務作業に従事している間に、ベンチマークアプリケーションがバックグラウンドタスクとして実行された場合、ベンチマークアプリケーションはプロセッサ使用率を100%に急上昇させ、ベンチマークアプリケーションが実行されている全期間についてPPMシステムに高パフォーマンスプロセッサモードを選択させた。繰り返しになるが、計算には約57秒を要し、この期間にわたる平均電力は30ワットであった。しかしながら、この場合、ユーザが通常の事務作業を実行するためにいずれにしても要したであろう電力に加えて、17ワットの「余分な」電力のみが消費されたと言うのが妥当であろう(これは、スクリーンセーバの場合に用いられる1700ジュールのエネルギーから、バックグラウンドにおいて実行される場合の969ジュールへの低減を表す)。
従って、ユーザがユーザのコンピュータを用いることに従事している間に、計算集約的なアプリケーション(又は、より一般的には、計算集約的なタスク)をバックグラウンドタスクとして実行させることは、当該アプリケーションをスクリーンセーバとして実行させるよりもエネルギー効率が良いが、依然として多量の付加的なエネルギーの消費を伴う。
さらに、CPUバウンドなタスクがバッググラウンドにおいて実行され、CPU負荷を比較的低いレベルから100%に上昇させた場合、これはやがてCPUに熱ストレスを与え、コンピュータのファンはフルスピードで回転し始めた。マシンのノイズはやがてユーザにとって憂慮すべきものとなり、それ以上の時間許容することは困難になったであろう。
ボランティアコンピューティングのコンテキストにおいて試行された1つのアプローチは、ユーザのコンピュータリソースをボランティアコンピューティングアプリケーションに利用可能な時間の割合をユーザが制限することを可能にすることである。この機能性は、BOINC(Berkeley Open Infrastructure for Network Computing)と呼ばれるソフトウェアパッケージによって提供され、これはボランティアコンピューティングプロジェクトを展開するためにしばしば採用される。ユーザのコンピュータリソースは100%よりも少ない時間についてボランティアコンピューティングプロジェクトに利用可能であるべきであるとユーザが特定する場合、BOINCマネージャは、アプリケーションの状態を「スリーピング」に変更するようにオペレーティングシステムに断続的に要求して、平均CPU使用率をユーザによって特定される割合に低下させるであろう。例えば、これが計算集約的なアプリケーションであり、当該アプリケーションが実行される2秒間の間のCPU負荷は100%であるという仮定の下で、20%のユーザ設定は、BOINCマネージャにアプリケーションを2秒間だけ実行させ、8秒間だけ「アプリケーションをスリープにする」ことになるであろう。アプリケーションがスリープすると、CPU負荷はそのアイドルレベル(又は、CPUによって実行される任意の他の処理に起因し得る(attributable)レベル)に下がるであろう。
ボランティアコンピューティングアプリケーションがCPUに対して有することができるアクセスをユーザが制限するようにBOINCが提供する機能(facility)は、当該アプリケーションによって消費されるエネルギーにおける低減をもたらさない。これは下記から分かる:
αをCPU使用率の許容される度合いのユーザ設定値とする。ただし、0<α≦1;
は、CPU負荷が0%である場合の電力消費量である(CPUはアイドルである);
100は、CPU負荷が100%である場合の電力消費量である;
100は、CPU負荷が100%であり、且つ、計算が中断されない場合に計算を実行するために要するであろう時間である;
Tは、計算を完了するために要する実際の時間である(「スリープ」期間を含む)。
平均電力消費量は、P=αP100+(1−α)Pであるべきである。ただし、(アイドルの間にコンピュータによって用いられる電力に加えて)ボランティアコンピューティングアプリケーションを実行させることに起因する「余分な」電力消費量は、P=α(P100−P)のみである。
BOINCによって導入されるスリープのために、計算時間はT100からT=T100/αに伸びる。従って、ボランティアコンピューティングアプリケーションを実行させるために消費される「余分な」総エネルギーE=P×Tは、(P100−P)×T100になり、これは「スリープ」無しの場合と全く同じである。
実際、計算集約的なアプリケーションのCPUへのアクセスがこのように制限される場合、消費される総エネルギーは実際には上昇することが現実に分かっている。図2は、BOINCによって提供される機能性を再現するように適合されるベンチマークアプリケーションの変更されたバージョンがテスト用のラップトップ構成上で実行された場合に、(ボランティアコンピューティングアプリケーションがCPUにアクセスできる時間の割合を表す)パラメータαの値と共に電力消費量がどのように変化したかを示す。図3は、これらの実験においてパラメータαの値と共に計算時間がどのように変化したかを示す。
図2から、αのほぼ全ての値について、スリープが無い場合(即ち、α=1の場合)よりもエネルギー消費量は大きいことが分かる。さらに、図3は、αの1よりも小さい全ての値について、計算の持続時間は増加することを示す。換言すれば、BOINCによって提供される機能を用いてCPU使用率を制限することは、主にエネルギー消費量の増加及び計算を完了するために要する時間の長期化という結果になるように見える。
さらに、パラメータαがBOINCプリファレンスにおいて0.2よりも大きい値に設定される場合、CPUへの熱ストレスはファンを作動させ、マシンが急速に耐えがたいほど騒々しくなることが見出された。
ボランティアコンピューティングアプリケーション(又は、他のCPUバウンドなタスク、例えば、ユーザアプリケーション、システムレベルサービス、マルチタスキングオペレーティングシステム環境におけるデーモン等)がスクリーンセーバとして実行されてもバックグラウンドタスクとして実行されても、このアプリケーションを実行させることに伴うエネルギーの相当な余分の消費があることが上記から分かるであろう。この著しいエネルギー使用量の一因は、ボランティアコンピューティングアプリケーションの実行が、(100%又は100%に迫る)高いCPU使用率を伴うという事実にあり、これは、このアプリケーションが実際にはプロセッサからの高いパフォーマンスを必要としなくても、PPMシステムが高パフォーマンスプロセッサモードを選択することにつながる(ユーザはタスクを急いで実行させることへの必要性を実際には有しない。ユーザは、当該タスクの実行が完了されるために要する期間の延長を許容し得る)。
より一般的に考慮すると、少なくとも部分的にはプロセッサ使用率に基づいてプロセッサパフォーマンス状態を選択するPPMシステムは、高パフォーマンス状態の選択を促すプロセッサ負荷の一部が実際にはユーザにとって緊急でもなく優先度も高くない場合でも、相当な割合で電力を消費し得る。
明らかに、プロセッサによって実行されるべき唯一のタスクが緊急でない場合、ユーザは、プロセッサを常に低パフォーマンス/低電力消費状態に設定する電力マネジメントプロファイルを選択し得る。しかしながら、これは、緊急なタスクと緊急でないタスクとにプロセッサが直面させられる場合には、適当ではない。そのような状況においては、プロセッサパフォーマンス状態を設定する場合にCPU負荷を考慮するPPMプロファイルをそのままにしておく方がユーザには良いだろう。
特許文献1は、様々なワークロードに優先順位の明示的な割当てがあり、それにより、PPMアルゴリズムがプロセッサパフォーマンス状態をプロセッサ使用率だけでなく、当該ワークロードの優先順位にも基づいて選択することができるようにコンピュータシステム(特に、そのオペレーティングシステム)が構成される技法を記載する。しかしながら、既存のコンピュータシステム(又は、データ処理能力を有する他のデバイス)がこの技法を利用することが可能になるためには、各システム/デバイス上のオペレーティングシステムをアップデートする必要があるであろう。これは、非常に多くの異なるタイプのオペレーティングシステム(及び、様々なオペレーティングシステムのバージョン)が現在使用されていることを考えると、非現実的なタスクである。
米国特許出願公開第2009/0199019号明細書
本発明は、計算集約的ではあるがユーザにとって緊急でないタスク、即ち、実行の完了のために要する時間における幾らかの増加をユーザが許容できるタスクにプロセッサが直面する場合に、比較的低パフォーマンスのプロセッサ状態が維持されることを可能にするための異なるアプローチを提案する。オペレーティングシステムのレベルにおいて問題に対処する代わりに、本発明は、タスクがPPMシステムからマスクされるようにタスクを適合させて、タスク自体のレベルにおいて問題に対処する。
より具体的には、本発明は、本明細書に添付される特許請求の範囲において定義されるエネルギー消費量低減方法、コンピュータプログラムプロダクト、コンパイラ及びコンピューティング装置を提供する。
本発明に係る技法は、CPUへの負荷に少なくとも部分的に基づいてプロセッサパフォーマンス状態を選択するPPMアルゴリズムを採用するシステム上で計算集約的であるが緊急ではないタスクが実行される場合に為されるべきエネルギー節約を可能にする。本発明は、タスクの実行に関連付けられる計算負荷のPPMアルゴリズムへの影響を低減する。特に、本発明は、選択されるタスクの実行に関連付けられるCPUへの計算負荷をPPMシステムが充分に考慮した場合よりも、比較的低いパフォーマンスのプロセッサ状態をPPMシステムが維持するであろう可能性をより高くする。選択されるタスクの実行に関連付けられるCPU負荷は、PPMシステムから充分に又は部分的にマスクされたと見なすことができる。このマスキングは、通常要したであろう割合のエネルギーのみを用いてタスクが実行されることを可能にすることができる。
さらに、本発明のエネルギー節約技法は、プロセッサへの熱ストレスを低減し、(雑音も同時に低減しつつ)冷却ファンを動作させるために必要な時間を低減する利点を提供する。
本発明のエネルギー節約技法は、採用される特定のプロセッサ、オペレーティングシステム、PPMシステム、又はデバイスアーキテクチャに依存せず、関連するオペレーティングシステム及び/又はPPMシステムがCPU負荷をヒューリスティックとして用いてプロセッサ電力状態を判定する限り、実質的に任意の最新のプロセッサ、オペレーティングシステム、及び/又はデバイスアーキテクチャと共に用いられることができる。
本発明のエネルギー節約技法は、マルチコアプロセッサの場合でも採用されることができる。本発明のマスキング技法を採用しているタスクが第1のプロセッサコア上で実行されており、図らずして異なるプロセッサコア上に移行される場合、マスキングプロシージャにおいて短期間の悪影響(perturbation)があり得るが、最悪の場合でも、これはすぐに減少するCPU負荷における一時的な増加となる。
本発明のさらなる特徴及び利点は、添付の図面に関連して、限定ではなく例として与えられる本発明の好適な実施形態の以下の説明から明らかになるであろう。
CPU負荷を図示するグラフである。 ラップトップが通常の事務作業に用いられる場合におけるCPUクロック周波数を示すグラフである。 パラメータα(BOINCソフトウェアパッケージによって提供されるオプションに従ってアプリケーションを実行するためにCPUに許可される時間の割合)に依存して、ユーザアプリケーションが実行される場合に消費されるエネルギーがどのように変化するかを図示するグラフである。 図3は、図2の実験中に、パラメータαと共に計算時間がどのように変化するかを図示するグラフである。 パラメータT及びSの変化する値と共に(ベンチマークアプリケーションを実行する場合の)エネルギー節約がどのように変化するかを図示するグラフである。 T及びSの変化する値と共に(ベンチマークアプリケーションを実行する場合の)プロセッサが最低電力モードにとどまる時間の割合がどのように変化するかを示すグラフである。 本発明の第1の好適な実施形態の有効性を説明する実験中のアクティブ期間Tの持続時間と共にベンチマークアプリケーションを実行することで消費される総エネルギーがどのように変化したかを図示する。 図5(a)の実験において、Tと共にベンチマークアプリケーションの実行を完了するために要した時間がどのように変化したかを図示する。 図5(a)の実験において、Tの様々な値についてCPUが低電力(アイドル)パフォーマンスモードにあった時間の割合を示す。 図5(a)の実験において、ベンチマークアプリケーションの実行に起因し得る余分なエネルギー消費量がTと共にどのように変化したかを図示する。 本発明の第1の好適な実施形態の有効性を説明する実験中のアクティブ期間Tの合間のインターバルSの持続時間と共に、消費される総エネルギーがどのように変化したかを図示する。 図6(a)の実験において、ベンチマークアプリケーションの実行を完了するために要した時間がSと共にどのように変化したかを図示する。 図6(a)の実験において、Sの様々な値についてCPUが低電力(アイドル)パフォーマンスモードにあった時間の割合を示す。 図6(a)の実験において、ベンチマークアプリケーションの実行に起因し得る余分なエネルギーの消費量がSと共にどのように変化したかを図示する。 気候モデルの実行に起因し得る余分なエネルギー消費量がアクティブ期間Tの合間のインターバルSと共にどのように変化したかを図示する。
図4から図7を参照しつつ、現在好適である、本発明の第1の実施形態が説明されるであろう。
CPU負荷を判定するためにPPMシステムによって用いられる詳細なヒューリスティックは、特にオペレーティングシステムのタイプ/バージョン間で異なる。例えば、オペレーシングシステムのMicrosoft Windows 7TMは、プロセッサアクティビティの計算(accounting)を、現在のシステムアクティビティに基づいてどのパフォーマンス状態が適当かを判定する際により精密度が高い新しいやり方で扱う。
本発明は、CPU使用率を評価するためにPPMシステムが用いている特定のヒューリスティクスに関わらず適応されることができ、プロセッサがCPUバウンドなタスク又は処理を実行しているとしても、PPMシステムがプロセッサについて比較的低いパフォーマンス状態を維持するように欺いて、CPU使用率に少なくとも一部は基づいてプロセッサパフォーマンス状態を選択するプロファイルに従ってPPMシステムが実行されている間にエネルギー節約は達成されることができるという概念に基づく。
本発明は、概して、PPMシステムがCPU負荷を一定時間ごとに評価し、所与の時間間隔についてのCPU負荷について判定される値に基づいて、どのプロセッサパフォーマンス状態を選択すべきかを決定するという知見に基づく。本発明によれば、タスクの実行に関連付けられる平均的なプロセッサ使用率は、CPU負荷を判定する際にPPMシステムが適用する評価期間にわたって低減されるので、PPMアルゴリズムには、タスクは「見え(see)」ない(又は、部分的にしか「見え(sees)」ない)。換言すれば、タスクの実行に関連付けられる計算負荷は、PPMシステムによって選択されるプロセッサパフォーマンス状態への低減された影響を有するようにされる。
本発明の第1の好適な実施形態において、CPU負荷を評価するためにPPMシステムによって用いられる各評価期間にわたってタスクがそのCPU使用率を低減することができるように採用される技法は、定期的な短いインターバルをアクティブ期間の合間に設けて、タスクが非常に短い期間にわたって実行されるように構成することである。BOINCにおいて用いられるアプローチと同様に、本発明の第1の好適な実施形態において、タスクは「マイクロスリープ」(即ち、ごくわずかなスリープであり、ここでの「マイクロ」という用語の使用は、これらのごくわずかなスリープの持続時間をマイクロ秒に限定しない)を有すると見なされ得る。
本発明の第1の好適な実施形態の場合、アクティブ期間及びそれらの合間のインターバルの持続時間は、PPMシステムの評価期間にわたってタスクによって生じる平均的なCPU負荷が比較的低くなり、プロセッサについてより高いパフォーマンス状態の選択をトリガする可能性が低くなるように設定される。しかし、この低減された平均的なCPU負荷は依然としてゼロではない。即ち、計算上、依然として幾らかの進展が為されている。従って、BOINCにおけるスリープとは異なり、本発明の第1の好適な実施形態において用いられるマイクロスリープは、エネルギー消費量における低減を確実にもたらす。
実際に、BOINCは、本発明において採用されるタイミング粒度(timing granularity)を生成することはできない。BOINCソフトウェアパッケージが用いられてボランティアコンピューティングアプリケーションが展開される場合、当該アプリケーションは、シグナルハンドラを実装するBOINCライブラリにコンパイルされなければならない。ボランティアに充てられるプロセッサ上でのアプリケーションの実行中、BOINCマネージャは、別個のプロセスとして実行され、(オペレーティングシステムによって提供されるプロセス間通信機能を用いて)アプリケーションに一定時間ごとに信号を送信する。シグナルハンドラがBOINCマネージャから信号を受信する場合、どのくらいの時間が経過したかをチェックし、必要であればアプリケーションをスリープにする。アプリケーションをスリープにするための技法は、アクティブ期間、及び本発明に関与する短期間のマイクロスリープを生成することができない。
図4から図7は、エネルギー節約を実現するための第1の好適な実施形態に係るアプローチの有効性を実証する。上述されたベンチマークアプリケーションは、下記の疑似コードに従って、テスト用のラップトップ構成上で実行される:
Figure 0005763168
この疑似コードは、ベンチマークアプリケーションにプロセッサにアクセスさせて期間Tの間に少量の作業を実行させ、インターバルSの間はスリープにする。
T及びSの値を、本発明の第1の好適な実施形態の効果を実証するように変化させた。
S=0の場合、これはベンチマークアプリケーションがプロセッサに連続的にアクセスすることを意味し、平均的なCPU使用率は100%となり、プロセッサについて(PPMシステムによって)高パフォーマンスモードを選択することになる。これは、上述されたスクリーンセーバ又は従来のバックグラウンド実行と同じである。
T及びSの双方が、PPMシステムの評価期間Pa(これは、GNU/Linuxを用いる我々の例において、およそ10ミリ秒である)と比較して大きい値に設定される場合、CPU使用率が100%であるPPM評価期間(アクティブ期間Tの間)と、CPU使用率が0%であるPPM評価期間(スリープSの間)とが存在する。従って、ある期間の間は高パフォーマンスモードが選択され、他の期間については低パフォーマンスモードが選択される。これは、省電力無しの、BOINCの使用制限機能を用いて得られる振る舞いと同じである。
図4は、T及びSが評価期間Paよりも大きい及び小さい異なる値に設定された場合に
観察された振る舞いを図示する。図4(a)は、T及びSの値と共にエネルギー使用量がどのように変化したかを図示し、図4(b)は、プロセッサが最低電力パフォーマンス状態において費やす時間の割合に対してT及びSの値を変化させることが有した効果を図示する。
下記の表2は、図4(a)及び図4(b)においてグラフに描かれるデータ点の一覧である。
Figure 0005763168
図4(a)から分かるように、Tが本例における評価期間Paにおおよそ等しい約10CPUチック以上であった場合、ベンチマークアプリケーションを実行させるために要した余分なエネルギーは、バックグラウンドにおいてアプリケーションを中断無しに実行させるために要した969ジュールのエネルギーを超えた。同様に、図4(b)は、Tが10CPUチック(≒Pa)前後の値をとった場合、プロセッサは、最低電力を用いるパフォーマンス状態においてあまり時間を費やさなかったことを示す。
しかしながら、T及びSがより小さな値に設定された場合、興味深い振る舞いが観察された。S及びTの小さな値の範囲内で、PPM評価期間の間、平均的なCPU負荷は100%未満のままであり、従って、PPMシステムはベンチマークアプリケーションのためにCPUパフォーマンス状態を増加させなかったが、計算上の有益な進展は依然として達成された。
図5は、Sが500マイクロ秒に設定され、Tが10から10CPUチックの範囲における異なる値に設定された場合に、本例において観察された結果を示す。Tは、Intelと互換性のあるプロセッサに提供されるCPUタイプスタンプカウンタを用いて測定された。このカウンタは、CPUのクロックチックごとにインクリメントされ、オペレーティングシステムの介入なしに単一命令を用いて読まれることができる。
図5(a)は、実験の間に消費された総エネルギーがTの値と共にどのように変化したかを図示する;図5(b)は、ベンチマークアプリケーションの実行を完了させるために要した時間がTと共にどのように変化したかを図示する;図5(c)は、Tの様々な値について、CPUが低電力(アイドル)パフォーマンスモードにあった時間の割合を示す;また、図5(d)は、ベンチマークアプリケーションの実行に起因し得る余分なエネルギー消費がTと共にどのように変化したかを図示する。
図5(d)は、ベンチマークアプリケーションの実行に起因し得る付加的な電力消費における明確な最小値を示す。この最小値は、Tが10CPUクロックチックに設定された場合に生じた:マシンは依然として低パフォーマンス(低電力/アイドル)モードにあったが、有益な作業が依然として為されていた。計算時間は、190秒、即ち、(スクリーンセーバとして実行されようとバックグラウンドにおいて実行されようと)中断無しのCPU使用率の場合における持続時間の3倍強に伸びた。しかし、マイクロスリープと共にベンチマークアプリケーションを実行させることに起因し得る余分なエネルギー消費量の総量は、ベンチマークアプリケーションがバックグラウンドにおいて中断無しに実行されたフルパワーの場合に要したエネルギーの50%未満であった。さらに、(CPU負荷100%において)ベンチマークアプリケーションがバックグラウンドにおいて中断無しに実行される上記の場合と比較して、100000CPUチックよりも大きい、グラフに描かれる全てのTの値について、マイクロスリープアプローチを用いたエネルギー節約が観察された。図5のグラフには図示されていないが、図4及び図5から、このタスクによって課される平均的なCPU負荷が各評価期間の間に100%よりも小さくなることを確実にするためには、Tに上限があること、つまり、Tは評価期間Paの持続時間よりも小さく設定されるべきであること、即ち、T<Paに設定されるべきことが理解されるであろう。
図6は、Tが10CPUチックに設定され、Sが25マイクロ秒単位で1〜1000マイクロ秒に増加された場合に観察された結果を示す。図6(a)は、実験の間に消費された総エネルギーがSの値と共にどのように変化したかを図示する;図6(b)は、ベンチマークアプリケーションの実行を完了させるために要した時間がSと共にどのように変化したかを図示する;図6(c)は、様々な値のSについて、CPUが低電力(アイドル)パフォーマンスモードにあった時間の割合を示す:また、図6(d)は、ベンチマークアプリケーションの実行に起因し得る余分なエネルギー消費がSと共にどのように変化したかを図示する。
図6は、非アクティブ期間Sの小さな値について、即ち、1〜500マイクロ秒の範囲において、PPMシステムが混乱し、CPUを高パフォーマンス状態から低パフォーマンス状態へ切り替え、及び元の状態へ戻す傾向があることを示す。実際、Sがあまりに小さい場合、オペレーティングシステムは、要求されたスリープ機能をアクティブループに置換し、CPU負荷100%のアセスメントにつながる。しかしながら、500マイクロ秒よりも長い非アクティブ期間Sについては、CPUは低パフォーマンス/低電力状態に維持され、ベンチマークアプリケーションの実行に起因し得るエネルギー消費は低く維持された状態で、振る舞いは安定する。
図6(d)から、本実験において、ベンチマークアプリケーションが中断無しにバックグラウンドにおいて実行される場合と比較して、90マイクロ秒と100マイクロ秒との間の小さなSの値の範囲、及び約130マイクロ秒を超える、グラフに描かれる全てのSの値について、(PPMシステムが上述したように「混乱している」低い値においても)エネルギー節約が実現されることが分かる。最も低いエネルギー消費は、500マイクロ秒と600マイクロ秒との間のSの値について、実現される。ただし、同様のエネルギー節約は、より大きな値のSにおいても実現される。
理論上、Sに上限は存在しない。ただし、ごくわずかなスリープの持続時間が長くなればなるほど、対象タスクを完了するためにかかる時間は長くなるであろう。従って、この特定の実験において、エネルギー節約と計算の時間との間の最適なトレードオフは、スリープ時間Sを500〜600マイクロ秒の範囲に設定することを含む。
最適よりも低いエネルギー節約(及び幾らかのファンノイズ)を許容することができる場合、Sの値を最適なエネルギー効率を与える値よりも低いが充分に大きく、評価期間Paにわたる平均的なCPU負荷が依然として100%未満であるように設定することによって、例えば、本例においては、Sを90マイクロ秒と100マイクロ秒との間、又は130〜500マイクロ秒の範囲に設定することによって、タスクのより速い実行を実現することができる。
実際には、最適なエネルギー節約を提供するであろう、アクティブ期間T及び非アクティブ期間Sの値の特定の範囲は、考慮中の特定のタスク及びプラットフォーム(プロセッサ、オペレーティングシステム、PPMシステム)に依存して、状況ごとに変化するであろう。
上記の実験において、ベンチマークアプリケーションは、15.3ワットの電力消費について実行され得るが、これはマシンの「アイドルの」電力消費(13ワット)を2.3ワットだけ超過し、440ジュールのエネルギーが消費されることと同じである。ベンチマークアプリケーションが連続的に実行される場合よりも約3.3倍長く計算にかかるが、上記の実験は、本発明の第1の好適な実施形態に係るアプローチが、同じ計算集約なアプリケーションがバックグラウンドにおいて中断無しに実行される場合よりも2.2倍、及び、当該アプリケーションがスクリーンセーバとして実行される場合よりも3.8倍少ないエネルギーが用いられることを可能にすることを示す。
本発明の第1の好適な実施形態に従ってタスクの断続的な実行、即ち、ごくわずかなスリープのインターバルでインターリーブされるごくわずかな算出の期間を達成する多くの異なる手法が存在する。ユーザアプリケーション又はシステムレベルサービス(デーモン)の場合に、オリジナルコードに如何なる変更も必要としない1つの簡単な技法は、アプリケーション(又はサービス)がファンクションコールを呼び出す度に、経過したクロックサイクルが確認され、所望の時間Tが経過したことが分かった場合には、(持続時間Sの)ごくわずかなスリープが導入されるように、特別なコンパイルオプションを用いてアプリケーション(又はシステムレベルサービス)を再コンパイルすることにある。これは、例えば、多くのコンパイラにおいて利用可能なプロファイリングオプションを利用することによって達成されることができ、また、下記の実験においては、ファンクションコールが呼び出される度にごくわずかなスリープが導入されるように、GNUオペレーティングシステムのツールにおいて利用可能な「mcount」プロファイリング機能の適合されたバージョンが用いられた。
第2の技法は、Tの現在の値をテストし、Tが所望の値に達したときに、プログラムを選択された期間Sについてスリープにする特殊関数を、一定の間隔で命令リストに挿入することによって、(CPUによって実行されるべきタスクを表す)低レベル命令の線形リストを変更することを伴う。
第3の技法は、ネイティブCPUをエミュレートするバーチャルマシン上で予めアプリケーション(システムレベルサービス、デーモン等)を実行することにある。バーチャルマシンは、コードをプロファイルしてCPUに負担をかけるプログラムの部分を発見し、CPU上でネイティブに(即ち、バーチャルレイヤで)実行され、アプリケーションを選択された間隔でスリープにする新たな命令ストリームを生成する。
本発明の第1の好適な実施形態は、上述された3つの技法への言及によって限定されないことが理解されるべきである:他の適切な技法は、当業者であれば容易に想到するであろう。
最新の気候モデリングアプリケーションは、上述された3つの技法のうちの第1の技法に従って再コンパイルされ、上記のテスト用のラップトップ構成を用いてバックグラウンドにおいて実行された。図7は、T(計算のごくわずかな期間各々の持続時間)がプロセッサクロックの106.2サイクルに固定された場合に、再コンパイルされたアプリケーションによって要求されるエネルギー消費が様々な値のS(スリープの持続時間)についてどのように変化したかを図示する。図7が示すように、最適な値のS(この場合は700マイクロ秒であった)について、気候モデルは、完了のために308ジュールを要し、82.3秒を費やした。対照的に、同じ気候モデルがテスト用のラップトップ構成上でスクリーンセーバとして実行された場合、これは25.8秒で完了したが、782.704ジュールのエネルギーを要した。従って、再コンパイルされたアプリケーションを実行するために要するエネルギー消費は、同じアプリケーションをテスト用ラップトップコンピュータ上でスクリーンセーバとして実行するために要するエネルギーよりも2.5倍少なくされ得る。
上記の実験において、PPMシステムによって用いられる評価期間Paの持続時間の明示的知識なしに様々な値のT及びSが調査された。実際に、(テスト用のラップトップ構成におけるように)特にLinuxオペレーティングシステムが用いられる場合、評価期間Paの持続時間は、動的に変更させることができる。本発明に係る技法がタスクの設計に適用されることにより、タスクがタスク自身をPPMシステムからマスクできるようにする場合、T及びSについて適当な値を設定するために、多数の異なるアプローチが用いられることができる。
1つのアプローチは、実験を前もって実行して、一般のCPU(又はCPUファミリー)及びオペレーティングシステムの種々の組み合わせを用いて実行される場合に、どのT及びSの値が対象タスクについて良好なエネルギー節約を提供するかを判定するソフトウェアプロバイダにある。関連する値は、例えばルックアップテーブル又はデータベースにおいてリストアップされることができ、タスクは書き込まれるか又は適合され、これにより、タスクを実行しようとしているCPU又はCPUファミリー及びオペレーティングシステムについてリストアップされている値に、タスクはアクセスする。このアクセスは、値リストをタスク自体にハードコードすることによって直接的に、又は、特定のロケーション(これは、CDROM、RAM、ROM、光ディスク等の記憶媒体、又は、例えばインターネット、LAN、若しくはWANを介してアクセスされるロケーションであり得る)からS及びTの適当な値をフェッチするようにタスクを設計することによって間接的に提供されることができる。
リストから読み出したS及びTの初期値を適合して、これらの値を最適化するようにタスクが設計されることは有利である。これは、例えば、CPU周波数といったヒューリスティクスを用いて、リストから読み出された初期のS及びTの値への適当な調整を判定するようにタスクを設計することによって達成されることができる。別の技法は、読み出された初期の値から始めてS及びTの最適な値を判定する小さなベンチマーク処理を実行することができるように、タスクを設計することにある。
実際に、Sの値を、おおよそ500マイクロ秒(Linuxオペレーティングシステムが用いられる場合)又は1000マイクロ秒(WindowsTMオペレーティングシステムが用いられる場合)に設定し、Tの値を微調整することによって、多くの場合に良好な結果を達成することができることが分かった。
本発明の第1の好適な実施形態の変更例において、例えば、タスクがより緊急になる場合に(達成されることができるエネルギー節約を制限することを代償にして)タスクの完了を加速するために、プロセッサによるタスクの実行中に、タスクが動的な手法でS及びTの値を調整するようにタスクを設計することは有利であることが分かった。これは、計算の完了を実現する期限が存在するアプリケーションにおいて特に有益である。
例えば、幾つかのボランティア計算アプリケーションにおいて、ボランティアに供給されるデータの各ブロックに関連付けられる期限が存在し、当該期限が終了する前に、処理されたデータがサーバに返されることが必要である。本発明の第1の実施形態の変更例がそのようなタイプのボランティア計算アプリケーションに適用される場合において、T及びSの現在の値は関連するデータのブロックに関連付けられた期限よりも遅くに所与の計算の完了をもたらすであろうとタスクが判定するとき、タスクはS及びTの値を調整して、当該タスクのより速い完了を実現することができる(非常に緊急な場合に、中断無しに計算が継続するように、Sの値はゼロに設定されることができる)。
この機能性は、任意の好都合な手法で達成され得る。例えば:
タスクの完了の期限がDとして表され、当該タスクをCPU負荷100%で完了するために費やされる時間がT100と示され、低電力モードにおけるCPUを用いたタスクの実行を完了させるために要する時間がTlpと示され、所与の瞬間tにおいて完了されたタスクの割合がδ(ただし、0≦δ≦1)と示される場合、タスクは実行中の所定の時間に下記のテストを行うように構成され得る:
所定の瞬間tにおいて、低電力モードにおいて完了するまでの時間をチェックする(即ち、(1−δ)×Tlpの値を判定する);
低電力モードにおいて計算を完了するために充分な時間が残されているか否かを判定するために、安全マージンΔTを持たせて、低電力モードにおける完了までの時間[即ち、(1−δ)×Tlp]を、期限前に利用可能な残りの時間と比較し、即ち、(D−t)と比較する;また、
[{(1−δ)×Tlp}+ΔT]<(D−t)の場合、(CPU負荷を100%まで上昇させ、エネルギー節約を終わらせそうであっても)Sをゼロに設定し、即ち、それ以後はタスクを連続的に実行する。
タスクが実際に実行される場合に、一連のアクティブ期間の合間に介在するであろうインターバルSの持続時間がタスクによって設定される値に一致することを保証することはしばしば不可能である。これは、タスクが特定の持続時間のスリープを要求し得るが、システムは当該タスクを幾らか長い期間についてスリープにし得るためである。ただし、これは低パフォーマンスプロセッサ状態の維持を阻止しないであろう。
エネルギーを節約するためにタスクがPPMシステムからマスクされることができる本発明の一般原理は、様々な手法において実装されることができ、そのうちの幾つかは特定のPPMシステム及びアルゴリズムに固有の特徴を利用する。
例えば、国際公開第2007/103051号は、CPU負荷に基づくだけでなく、実行されているタスクのメモリバウンドな程度を定量化するパラメータも考慮して、プロセッサのパフォーマンス状態が選択されるPPMシステムを提案する。別の例において、米国特許出願公開第2009/0089598号明細書は、CPU負荷だけでなく、少なくとも部分的にはプロセッサがいつストールされるかのアセスメントに基づいて、プロセッサパフォーマンス状態が選択されるPPMシステムを提案する。これらのPPMシステムによれば、タスクがメモリバウンドであると考えられる場合、又は、タスクの実行中にプロセッサがストールされると考えられる場合、より低いパフォーマンス状態がCPUについて選択される。本発明の第2の実施形態は、タスクがこれらのタイプのPPMシステムからタスク自体をマスクすることを可能にする。これは、タスクのコードにダミー命令を挿入し、これらのPPMシステムのフィードバックメカニズムを欺くことによって達成される。
任意の好都合なダミー命令がタスクのコードに挿入され、上記のタイプのPPMシステムのフィードバックメカニズムがタスクをメモリバウンドであると推論するように欺き得る。適切なダミー命令の1つの例は、ランダムな(ただし、有効な)メモリロケーションからCPUレジスタにデータをロードするようにCPUに要求し、このデータロード作業について如何なる計算の必要も存在しない命令にある。要求されるデータをCPUがレジスタにロードしている間、CPUは実際にはタスクを進展させていないため、タスクが短期間休止していると考えることができる。メモリから読み出されるデータの量が大きいほど、このごくわずかなスリープの持続時間は長くなる。従って、ロードされるべきデータの量は、ごくわずかなスリープ期間Sの持続時間を制御する。
本発明の第2の実施形態において、タスクの命令フローを変更することは、オペレーティングシステムからの如何なるサポートも要しない。従って、第1の実施形態と同様に、エネルギー節約は、オペレーティングシステムのレベルにおいて取られる動作というよりも、タスクのレベルにおける動作によって達成されることができる。
本発明の第2の実施形態において、アクティブ期間T及びスリープインターバルSの持続時間を設定する場合に第1の実施形態の場合と同じ考察が適用されるので、簡潔にするため、これらの特徴はここでは繰り返さない。
本発明の上記第1及び第2の実施形態においては、計算集約的なタスクがバックグラウンドにおいて実行されている場合でも、この特定のタスクがCPUに課す平均的なCPU負荷を低減することによってCPUの低電力/低パフォーマンス状態を維持することができると仮定される。しかしながら、バックグラウンドタスクによって課される低減されたCPU負荷は、同時に実行されている他のタスク(例えば、ユーザが従事するフォアグラウンドタスク)によって課されている任意のCPU負荷に付加される。このような他のタスクがCPU負荷100%を課す(exert)場合、バックグラウンドタスクは如何なる余分なエネルギーの使用も生じさせていない。他方、このような他のタスクが当該タスクだけでは高パフォーマンスなCPU状態の使用をトリガするために充分なCPU負荷を課さないが、バックグラウンドタスクの重畳によりPPMシステムが高パフォーマンス状態を選択することをトリガする状況があり得る。この状況が当てはまるのは、バックグラウンドタスクが実行されている全期間を通じて極めてまれであり、従って、本発明の第1及び第2の実施形態は有益なエネルギー節約をもたらすであろうことが理解されるであろう。ただし、本発明の第3の実施形態は、この状況が回避されることを可能にする。
本発明の第3の実施形態によれば、第1及び第2の実施形態に関連して上述された方法のうちのいずれかを用いて、短いアクティブ期間において、その合間にごくわずかなスリープインターバルを有した状態で実行するようにタスクは構成される。また、他のタスクによって課される負荷に加えて現在のタスクに起因する負荷によって課される全負荷が、PPMシステムの評価期間Paの間、100%未満のままであるように、平均的なCPU負荷のアセスメントに基づいてS及びTの値を適応的に変更するように、タスクはさらに構成される。これは、平均的なCPU負荷と、所与のPステートにおいてプロセッサが費やす時間とに関する情報についてオペレーティングシステムに問い合わせるようにタスクを構成することによって達成されることができる。
概して、本発明の第1、第2及び第3の実施形態に係る発明は、最初からプログラムコードの一部を形成し、又はタスクの旧バージョンのコンパイルの結果、コードの一部を形成する命令によって、タスクがタスク自体をPPMシステムからマスクするように、上記で議論された原理に従って設計されたタスク(ユーザアプリケーション、システムレベルサービス、デーモン等)を表す表現をプログラムコードにおいて発見するであろう。典型的には、このプログラムコードは、好都合な物理的な媒体(例えば、CDROM、RAM、ROM、光ディスク、テープ、又は他の記憶媒体)に記録される特別に適合されたプログラムコードを含む、コンピュータプログラムプロダクトとして具現化されるであろう。プログラムコードは、ネットワーク(例えば、LAN、WAN、インターネット等)を介してブロードキャストされ又は送信されてもよい。
しかしながら、本発明の第4の実施形態によれば、選択されるタスクは、タスク自体の外部にあるが、選択されるタスクが実行される場合にこれらのタスクにマイクロスリープを導入することによって、選択されるタスクをPPMシステムからマスクするように動作するディレクタアプリケーションによってPPMシステムからマスクされることができる。このディレクタアプリケーションは、オペレーティングシステムの一部を形成せず、例えば、記憶媒体からインストールされ、インターネットからダウンロードされる等のアドオンである。ディレクタアプリケーションは、明らかな不適合が生じる場合を除き、上述された第1から第3の実施形態の種々の特徴を実装することができることが理解されるべきである。
本発明は、本発明の幾つかの目下好適な実施形態に関して上述された。添付の特許請求の範囲において定義されるような本発明の範囲内における好適な実施形態において変更例及び発展形が為され得ることを当業者は容易に理解するであろう。
本発明は、ユーザアプリケーションをPPMシステムからマスクする実施形態に関連して上述された。しかしながら、同じ技法は、ユーザアプリケーション以外のプロセス、特に(印刷、ファイル共有、データベースサービス等を含む)システムレベルサービス、Unixのデーモン、及び他のマルチタスキングオペレーティングシステムを、PPMシステムからマスクするために適用されることができる。
本発明は、ボランティアコンピューティングアプリケーションのエネルギー効率を改善することに特に関連して上述された。しかしながら、本発明は、計算集約的であるが必ずしも緊急ではない他のタスク(例えば、フラクタルのレンダリング、編集後のビデオデータの圧縮、ビデオ及びオーディオのコーディング及びデコーディング、並びにその他多数)により広く適用可能である。
本発明の種々の実施形態は、付加的な機能性を提供する補助モジュールに関連して用いられることができる。例えば、幾つかの場合に、本発明の第1から第4の実施形態の技法を用いてPPMシステムからマスクされるタスクとやりとりするために、ユーザインタフェースが提供され得る。このユーザインタフェースは、ユーザがマスキング処理の種々のパラメータ、特に下記の1つ以上を制御することを可能にする:アクティブ期間Tの持続時間及び/又はごくわずかなスリープインターバルSについて設定される値、S及びTについて適当な(初期の)値を取得するためにタスクがアクセスすべきソース、タスクの実行の完了のために費やされる時間、並びに、タスクの実行のために要する時間に比較したエネルギー節約の相対的重要度。ユーザインタフェースは、タスクが実行されるCPU及び/又はオペレーティングシステムの詳細(例えば、CPU及びオペレーティングシステムを識別すること、CPUクロック周波数を特定すること等)をタスク/マスキング処理にユーザが手動で通知することを可能にし得る。

Claims (12)

  1. 評価期間Paの間のプロセッサ負荷のアセスメントを考慮してパフォーマンス状態を選択するプロセッサパフォーマンスマネジメント(PPM)システムによってプロセッサのパフォーマンス状態が制御されている間に、バックグラウンドにおいてタスクを実行する場合に、当該プロセッサによって消費されるエネルギーを低減する方法であって、当該エネルギー低減方法は:
    (a)アクティブ期間(T)の間に前記プロセッサに前記タスクの一部を実行させるステップと、
    (b)各アクティブ期間の後、インターバル(S)について、前記プロセッサに前記タスクを実行することを停止させるステップと、
    (c)前記タスクが完了されるまで、ステップ(a)及びステップ(b)を繰り返し実行するステップと、
    を含み、
    前記タスクの実行の開始と終了との間の前記PPMシステムの各評価期間(Pa)の間に、100%未満であるが0%よりも大きい平均的な負荷を前記タスクの実行が前記プロセッサに課すように、前記評価期間(Pa)の持続時間よりも短い、前記アクティブ期間(T)及び前記インターバル()の持続期間が選択される、
    エネルギー消費低減方法。
  2. ステップ(b)は、前記タスクの命令シーケンスが1つ以上の如何なる計算の必要も存在しない命令であるダミー命令を含むように設定し、前記インターバル(S)の間に前記プロセッサに当該ダミー命令の1つ以上を実行させることを含む、請求項1に記載のエネルギー消費低減方法。
  3. ステップ(b)は、前記インターバル(S)について、前記タスクによる前記プロセッサへの負荷を0%にすることを含む、請求項1に記載のエネルギー消費低減方法。
  4. 実行中に、現在の実行期間の間に経過した時間のチェックが為され、所定の期間(T)が経過した場合には前記インターバル(S)について前記タスクによる前記プロセッサへの負荷を0%にするように要求が為されるように、前記タスクは構成される、請求項1に記載のエネルギー消費低減方法。
  5. 前記タスクは、前記タスクがファンクションコールを呼び出す度に、前記経過した時間のチェックが為されるように構成される、請求項4に記載のエネルギー消費低減方法。
  6. 前記プロセッサに依存する前記アクティブ期間(T)及び前記インターバル(S)のうちの少なくとも1つの前記持続期間を設定するステップ、を含み、
    前記タスクを実行するためにオペレーティングシステムが用いられる、
    請求項1に記載のエネルギー消費低減方法。
  7. 前記アクティブ期間(T)及び前記インターバル(S)のうちの少なくとも1つの前記持続期間は、前記タスクの実行の前記開始と前記終了との間に変化する、請求項1に記載のエネルギー消費低減方法。
  8. コンピュータ使用可能な媒体上に記憶され、プロセッサ(CPU)によって実装されるように適合されるタスクを表すソフトウェアコードを含むプログラムであって、
    前記プロセッサのパフォーマンス状態は、評価期間(Pa)の間のプロセッサ負荷のアセスメントを考慮して前記プロセッサについてのパフォーマンス状態を選択するプロセッサパフォーマンスマネジメント(PPM)システムによって制御され、
    前記タスクは、前記プロセッサを用いて当該プログラムが実行される場合に、それぞれのアクティブ期間(T)の間に前記タスクの一部が前記CPUによって実行され、前記アクティブ期間の合間に前記プロセッサが前記タスクを実行することを停止するインターバル(S)が設けられるように適合されるプログラムコードを含み、
    前記評価期間(Pa)の持続時間よりも短い、前記アクティブ期間(T)及び前記インターバル(S)の持続時間が、前記評価期間(Pa)の間に、前記タスクの実行が100%未満であるが0%よりも大きい平均的な負荷を前記プロセッサに課すように、前記プログラムコードは適合される、
    ログラム。
  9. プロセッサを備え、評価期間(Pa)の間のプロセッサ負荷のアセスメントを考慮してプロセッサパフォーマンス状態を選択するプロセッサパフォーマンスマネジメント(PPM)を実装するように構成されるコンピューティング装置であって、
    前記コンピューティング装置は、評価期間選択されるタスクの一部を評価期間(Pa)の間に繰り返し実行し、各アクティブ期間の後、インターバル(S)について前記選択されるタスクを実行することを停止することによって、前記選択されるタスクを実行するように構成され、
    前記選択されるタスクの実行の開始と終了との間の各評価期間(Pa)の間の前記PPMシステムの各評価期間(Pa)の間に、前記選択されるタスクの前記実行が、100%未満であるが0%よりも大きい平均的な負荷を前記プロセッサに課すように、前記評価期間(Pa)の持続時間よりも短い、前記アクティブ期間(T)及び前記インターバル(S)の持続時間が設定される、
    コンピューティング装置。
  10. プロセッサ上で実行されるべき第一のタスクを表す第一のプログラムコードを再コンパイルするように適合されるコンパイラであって、
    プロセッサパフォーマンス状態は、評価期間(Pa)の間のプロセッサ負荷を考慮して当該パフォーマンス状態を選択するプロセッサパフォーマンスマネジメントシステムによって制御され、
    前記コンパイラは、前記プロセッサ上で実行される場合に、前記第一のプログラムコードを再コンパイルし、それにより、第二のタスクを表す第二のプログラムコードが取得され、
    前記第二のタスクは、
    (a)アクティブ期間(T)について前記第一のタスクが実行されるステップと;
    (b)各アクティブ期間(T)の後、インターバル(S)について実行を停止するステップと;
    (c)前記第一のタスクの実行が完了するまで、ステップ(a)及びステップ(b)を繰り返すステップと;
    を実行するように構成され、
    前記第二のプログラムコードは、前記第一のタスクの実行の開始と終了との間の前記PPMシステムの各評価期間(Pa)の持続時間よりも短い、前記アクティブ期間(T)及びインターバル(S)の持続時間により、前記各評価期間(Pa)の間に、前記第一のタスクの実行が、100%未満であるが0%よりも大きい平均的な負荷を前記プロセッサに課すように適合される、
    コンパイラ。
  11. 前記コンパイラは、前記第一のプログラムコードを再コンパイルし、それにより、前記第二のタスクを表す第二のプログラムコードが取得され、前記第二のタスクが前記プロセッサ上で実行される場合に、
    記第一のタスクがファンクションコールを呼び出す度に、経過したクロックサイクルを確認するステップと、
    前記アクティブ期間(T)について前記第二のタスクが前記プロセッサ上でアクティブであったことを当該確認するステップが示す場合、前記インターバル(S)について前記第一のタスクによる前記プロセッサへの負荷を0%にするステップと、
    を実行するように構成される、請求項10に記載のコンパイラ。
  12. コンピュータ使用可能な媒体上に記憶され、プロセッサを備えるコンピューティング装置上で実行される場合に、当該プロセッサによるタスクの実行を制御するように適合されるソフトウェアコードを含むプログラムであって、
    前記プロセッサのパフォーマンス状態は、評価期間(Pa)の間のプロセッサ負荷を考慮してプロセッサパフォーマンス状態を選択するプロセッサパフォーマンスマネジメントシステムによって制御され、
    前記ソフトウェアコードは、前記プロセッサに、
    (a)アクティブ期間(T)について前記タスクを実行するステップと;
    (b)各アクティブ期間(T)の後、インターバル(S)について前記タスクを実行することを停止するステップと;
    (c)前記タスクの実行が完了するまで、ステップ(a)及びステップ(b)を繰り返すステップと;
    を実行させるように適合され、
    前記タスクの実行の開始と終了との間の前記PPMシステムの評価期間(Pa)の持続時間よりも短い、前記アクティブ期間(T)及びインターバル(S)の持続時間により、前記各評価期間(Pa)の間に、前記タスクの実行が、100%未満であるが0%よりも大きい平均的な負荷を前記プロセッサに課す、
    ログラム。
JP2013500469A 2010-03-23 2011-03-22 プロセッサパフォーマンスマネジメントシステムからの処理のマスキングによる電源消費の低減 Active JP5763168B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10305286.6 2010-03-23
EP10305286 2010-03-23
PCT/EP2011/054355 WO2011117243A1 (en) 2010-03-23 2011-03-22 Reducing power consumption by masking a process from a processor performance management system

Publications (2)

Publication Number Publication Date
JP2013522787A JP2013522787A (ja) 2013-06-13
JP5763168B2 true JP5763168B2 (ja) 2015-08-12

Family

ID=44071009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013500469A Active JP5763168B2 (ja) 2010-03-23 2011-03-22 プロセッサパフォーマンスマネジメントシステムからの処理のマスキングによる電源消費の低減

Country Status (5)

Country Link
US (1) US9268389B2 (ja)
EP (1) EP2550576B1 (ja)
JP (1) JP5763168B2 (ja)
CN (1) CN102822768A (ja)
WO (1) WO2011117243A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552478B2 (en) 2010-05-18 2017-01-24 AO Kaspersky Lab Team security for portable information devices
US8943336B2 (en) * 2011-07-01 2015-01-27 Intel Corporation Method and apparatus for configurable thermal management
US8782454B2 (en) * 2011-10-28 2014-07-15 Apple Inc. System and method for managing clock speed based on task urgency
RU2494453C2 (ru) 2011-11-24 2013-09-27 Закрытое акционерное общество "Лаборатория Касперского" Способ распределенного выполнения задач компьютерной безопасности
KR20130074401A (ko) * 2011-12-26 2013-07-04 삼성전자주식회사 계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법
JP6186862B2 (ja) * 2013-05-07 2017-08-30 富士通株式会社 情報処理装置、省電力化制御方法および省電力化制御プログラム
US20150355942A1 (en) * 2014-06-04 2015-12-10 Texas Instruments Incorporated Energy-efficient real-time task scheduler
KR102169692B1 (ko) 2014-07-08 2020-10-26 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법
US10007555B1 (en) * 2014-12-05 2018-06-26 Google Llc Dynamic resource management
US11023351B2 (en) * 2017-02-28 2021-06-01 GM Global Technology Operations LLC System and method of selecting a computational platform
CN114138095B (zh) * 2022-01-29 2022-05-10 阿里巴巴(中国)有限公司 互联网数据中心idc的功耗处理方法、设备和可读介质
CN117632521B (zh) * 2024-01-26 2024-05-03 中电云计算技术有限公司 后台任务的cpu利用率控制方法、装置、设备及存储介质

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4977529A (en) * 1973-02-23 1990-12-11 Westinghouse Electric Corp. Training simulator for a nuclear power plant
US6848054B1 (en) * 1989-10-30 2005-01-25 Texas Instruments Incorporated Real-time computer thermal management and power conservation
JP3090767B2 (ja) * 1992-04-02 2000-09-25 ダイヤセミコンシステムズ株式会社 コンピュータシステムの節電制御装置
US5887178A (en) * 1994-08-29 1999-03-23 Matsushita Electronics Corporation Idle state detector and idle state detecting method for a microprocessor unit for power savings
US5887179A (en) * 1996-06-11 1999-03-23 Motorola, Inc. System power saving means and method
US6219796B1 (en) * 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units
JP2000148134A (ja) * 1998-11-13 2000-05-26 Seiko Epson Corp 画像表示方法および画像処理装置
US6834386B1 (en) * 1999-07-16 2004-12-21 Microsoft Corporation Method and system for regulating background tasks using performance measurements
AU731189B1 (en) * 1999-12-10 2001-03-29 Robert Bosch Gmbh A switch input circuit
US6816977B2 (en) * 2001-12-03 2004-11-09 Hewlett-Packard Development Company, L.P. Power reduction in computing devices using micro-sleep intervals
US7036030B1 (en) * 2002-02-07 2006-04-25 Advanced Micro Devices, Inc. Computer system and method of using temperature measurement readings to detect user activity and to adjust processor performance
JP2003271401A (ja) * 2002-03-18 2003-09-26 Fujitsu Ltd 負荷監視機能を有するマイクロプロセッサ
WO2003083693A1 (fr) * 2002-04-03 2003-10-09 Fujitsu Limited Planificateur de taches dans un systeme de traitement distribue
JP2004164566A (ja) * 2002-09-27 2004-06-10 Casio Comput Co Ltd 通信端末の電力制御装置及び通信端末の電力制御方法
JP4213572B2 (ja) * 2003-11-28 2009-01-21 株式会社東芝 電子機器およびプロセッサ速度制御方法
WO2005060575A2 (en) * 2003-12-10 2005-07-07 X1 Technologies, Inc. Performing operations in response to detecting a computer idle condition
US7765543B1 (en) * 2003-12-17 2010-07-27 Vmware, Inc. Selective descheduling of idling guests running on a host computer system
US20050138642A1 (en) * 2003-12-18 2005-06-23 International Business Machines Corporation Event correlation system and method for monitoring resources
US20080307248A1 (en) * 2004-04-28 2008-12-11 Katsushige Amano Cpu Clock Control Device, Cpu Clock Control Method, Cpu Clock Control Program, Recording Medium, and Transmission Medium
US7205753B2 (en) * 2004-06-30 2007-04-17 Giga-Byte Technology Co., Ltd. Switching power supply system for automatically regulating circuit operating power and method thereof
US7272731B2 (en) * 2004-10-13 2007-09-18 Dell Products L.P. Information handling system having reduced power consumption
US7814485B2 (en) * 2004-12-07 2010-10-12 Intel Corporation System and method for adaptive power management based on processor utilization and cache misses
EP1715405A1 (en) * 2005-04-19 2006-10-25 STMicroelectronics S.r.l. Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment
US20070136726A1 (en) * 2005-12-12 2007-06-14 Freeland Gregory S Tunable processor performance benchmarking
TWI291609B (en) * 2006-01-10 2007-12-21 Giga Byte Tech Co Ltd Methods of controlling fan speed
US7861068B2 (en) 2006-03-07 2010-12-28 Intel Corporation Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling
US20080007222A1 (en) * 2006-06-09 2008-01-10 Jasper Nance Low cost ultra low power in-battery charge monitor
US8344475B2 (en) * 2006-11-29 2013-01-01 Rambus Inc. Integrated circuit heating to effect in-situ annealing
JP4413915B2 (ja) * 2006-12-13 2010-02-10 株式会社東芝 異常兆候検出装置および方法
US7788511B2 (en) * 2007-08-16 2010-08-31 Texas Instruments Incorporated Method for measuring utilization of a power managed CPU
US7941681B2 (en) * 2007-08-17 2011-05-10 International Business Machines Corporation Proactive power management in a parallel computer
US7917789B2 (en) 2007-09-28 2011-03-29 Intel Corporation System and method for selecting optimal processor performance levels by using processor hardware feedback mechanisms
US8555283B2 (en) * 2007-10-12 2013-10-08 Oracle America, Inc. Temperature-aware and energy-aware scheduling in a computer system
US20090150696A1 (en) * 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
US20090199019A1 (en) 2008-01-31 2009-08-06 Nokia Corporation Apparatus, method and computer program product for reducing power consumption based on relative importance
US8140876B2 (en) * 2009-01-16 2012-03-20 International Business Machines Corporation Reducing power consumption of components based on criticality of running tasks independent of scheduling priority in multitask computer
US8812855B2 (en) * 2009-03-02 2014-08-19 Nxp B.V. Software protection
US20130125133A1 (en) * 2009-05-29 2013-05-16 Michael D. Schuster System and Method for Load Balancing of Fully Strict Thread-Level Parallel Programs
US9311245B2 (en) * 2009-08-13 2016-04-12 Intel Corporation Dynamic cache sharing based on power state
JP6186862B2 (ja) * 2013-05-07 2017-08-30 富士通株式会社 情報処理装置、省電力化制御方法および省電力化制御プログラム

Also Published As

Publication number Publication date
JP2013522787A (ja) 2013-06-13
US9268389B2 (en) 2016-02-23
EP2550576A1 (en) 2013-01-30
EP2550576B1 (en) 2020-01-01
WO2011117243A1 (en) 2011-09-29
US20130132754A1 (en) 2013-05-23
CN102822768A (zh) 2012-12-12

Similar Documents

Publication Publication Date Title
JP5763168B2 (ja) プロセッサパフォーマンスマネジメントシステムからの処理のマスキングによる電源消費の低減
US7577860B2 (en) Processor specific BIOS interface for power management
Lu et al. Power-aware operating systems for interactive systems
TWI464570B (zh) 用於平衡具有多核心之計算裝置的效能與電力節省的方法、電腦可讀儲存媒體與多邏輯處理器系統
Li et al. Performance directed energy management for main memory and disks
Varma et al. A control-theoretic approach to dynamic voltage scheduling
US7346787B2 (en) System and method for adaptive power management
US7814485B2 (en) System and method for adaptive power management based on processor utilization and cache misses
Heath et al. Application transformations for energy and performance-aware device management
KR101411756B1 (ko) 동적 전력 관리를 위한 도메인 특정 언어, 컴파일러 및 jit
Dudani et al. Energy-conserving feedback EDF scheduling for embedded systems with real-time constraints
US20110154321A1 (en) Virtual-cpu based frequency and voltage scaling
JPH08503566A (ja) コンピュータ装置の電力消費を自動的に減少させる方法
KR20080079276A (ko) 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템
Li et al. Performance directed energy management for main memory and disks
EP2972826B1 (en) Multi-core binary translation task processing
Ryu et al. Resource policing to support fine-grain cycle stealing in networks of workstations
Gouicem et al. Fewer Cores, More Hertz: Leveraging {High-Frequency} Cores in the {OS} Scheduler for Improved Application Performance
Amur et al. Idlepower: Application-aware management of processor idle states
Balsini et al. Energy-efficient low-latency audio on android
Adileh et al. Maximizing heterogeneous processor performance under power constraints
Evans On performance and energy management in high performance computing systems
Pereira et al. PASA: A software architecture for building power aware embedded systems
Manzak et al. Low Power Design for DVFS Capable Software
Jerabek et al. Energy-Efficient Real-Time Operating Systems: An Approach using Dynamic Frequency Scaling and Worst-Case Execution Time Aware Scheduling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141209

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150610

R150 Certificate of patent or registration of utility model

Ref document number: 5763168

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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