JP5601731B2 - プロセッサを動的に制御するシステムおよび方法 - Google Patents

プロセッサを動的に制御するシステムおよび方法 Download PDF

Info

Publication number
JP5601731B2
JP5601731B2 JP2012548210A JP2012548210A JP5601731B2 JP 5601731 B2 JP5601731 B2 JP 5601731B2 JP 2012548210 A JP2012548210 A JP 2012548210A JP 2012548210 A JP2012548210 A JP 2012548210A JP 5601731 B2 JP5601731 B2 JP 5601731B2
Authority
JP
Japan
Prior art keywords
workload
dcvs
new
solution
unique identifier
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
JP2012548210A
Other languages
English (en)
Other versions
JP2013516712A (ja
Inventor
ノーマン・エス・ガーガッシュ
ブライアン・ジェイ・サルスベリー
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2013516712A publication Critical patent/JP2013516712A/ja
Application granted granted Critical
Publication of JP5601731B2 publication Critical patent/JP5601731B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

関連出願
本出願は、その内容が参照により完全に組み込まれる、2010年1月11日に出願された「SYSTEM AND METHOD OF DYNAMICALLY CONTROLLING A PROCESSOR」という名称の米国仮特許出願第61/294,019号の優先権を主張する。
ポータブルコンピューティングデバイス(PD)は至る所にある。これらのデバイスには、携帯電話、携帯情報端末(PDA)、ポータブルゲーム機、パームトップコンピュータ、および他のポータブル電子デバイスなどがある。これらのデバイスの主要機能に加えて、多くは周辺機能を含む。たとえば、携帯電話は、携帯電話をかけるという主要機能、およびスチールカメラ、ビデオカメラ、全地球測位システム(GPS)ナビゲーション、ウェブブラウジング、電子メールの送受信、テキストメッセージの送受信、プッシュツートーク機能などの周辺機能を含み得る。そのようなデバイスの機能が増加するにつれて、そのような機能をサポートために必要な計算または処理能力も増加する。さらに、計算能力が増加するにつれて、計算能力を提供するプロセッサ(複数可)を効果的に管理する必要性がより高くなる。
したがって、中央処理装置内で動的なクロックおよび電圧スケーリングアルゴリズムを実行する改良された方法が必要である。
図中、別段に規定されていない限り、類似の参照番号は、様々な図の全体を通じて、類似の部分を指す。
閉位置のポータブルコンピューティングデバイス(PCD)の第1の態様を示す正面図である。 開位置のPCDの第1の態様を示す正面図である。 PCDの第2の態様を示すブロック図である。 処理システムを示すブロック図である。 中央処理装置内で動的なクロックおよび電圧切替えアルゴリズムを実行する方法の第1の態様を示すフローチャートである。 時間に対してプロットされた、中央処理装置のワークロードならびに動的なクロックおよび電圧スケーリングで追跡された負荷を示す第1のグラフである。 中央処理装置内で動的なクロックおよび電圧切替えアルゴリズムを実行する方法の第2の態様を示すフローチャートである。 時間に対してプロットされた、中央処理装置のワークロードならびに動的なクロックおよび電圧スケーリングで追跡された負荷を示す第2のグラフである。 時間に対してプロットされた、中央処理装置のワークロードならびに動的なクロックおよび電圧スケーリングで追跡された負荷を示す第3のグラフである。 中央処理装置内で動的なクロックおよび電圧切替えアルゴリズムを実行する方法の第3の態様を示すフローチャートである。 時間に対してプロットされた、中央処理装置のワークロードならびに動的なクロックおよび電圧スケーリングで追跡された負荷を示す第4のグラフである。 時間に対してプロットされた、中央処理装置のワークロードならびに動的なクロックおよび電圧スケーリングで追跡された負荷を示す第5のグラフである。 央処理装置内で動的なクロックおよび電圧切替えアルゴリズムを実行する方法の第4の態様を示すフローチャートである。 時間に対してプロットされた、中央処理装置のワークロードならびに動的なクロックおよび電圧スケーリングで追跡された負荷を示す第6のグラフである。 時間に対してプロットされた、中央処理装置のワークロードならびに動的なクロックおよび電圧スケーリングで追跡された負荷を示す第7のグラフである。
「例示」という語は、本明細書では、「例、実例、または例証の役割を果たす」ことを意味するために使用される。本明細書で「例示」として説明する任意の態様を、必ずしも他の態様より好ましい、または有利であると解釈すべきというわけではない。
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルも含み得る。さらに、本明細書で言及される「アプリケーション」は、たとえば開く必要があり得る文書またはアクセスする必要がある他のデータファイルなど、本質的に実行可能ではないファイルも含み得る。
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルも含み得る。さらに、本明細書で言及される「コンテンツ」は、たとえば開く必要があり得る文書またはアクセスする必要がある他のデータファイルなど、本質的に実行可能ではないファイルも含み得る。
この説明で使用される場合、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアとの組合せ、ソフトウェア、または実行中のソフトウェアなどコンピュータ関連のエンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができる。例として、コンピューティングデバイス上で動作するアプリケーションとコンピューティングデバイスの両方は構成要素とすることができる。1つまたは複数の構成要素がプロセスおよび/または実行スレッド内に存在する可能性があり、1つの構成要素が1つのコンピュータ上に局在化されてもよく、および/または2つ以上のコンピュータ間に分散されてもよい。さらに、これらの構成要素は、様々なデータ構造が記憶される様々なコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケット(たとえばローカルシステム内、分散システム内、および/またはインターネットなど他のシステムを含むネットワーク上で1つまたは複数のデータパケットを有する信号によって別の構成要素と対話する1つの構成要素からのデータなど)を有する信号によるなどして、ローカルおよび/またはリモートのプロセスによって通信することができる。
最初に図1および図2を参照すると、例示のポータブルコンピューティングデバイス(PCD)が示されており、全体的に100と表される。図示のように、PCD100は、ハウジング102を含み得る。ハウジング102は、上側ハウジング部104および下側ハウジング部106を含み得る。図1は、上側ハウジング部104がディスプレイ108を含み得ることを示す。特定の態様において、ディスプレイ108は、タッチスクリーンディスプレイでもよい。上側ハウジング部104は、トラックボール入力デバイス110を含むこともできる。さらに、図1に示されるように、上側ハウジング部104は、電源投入ボタン112および電源切断ボタン114を含むことができる。図1に示されるように、PCD100の上側ハウジング部104は、複数のインジケータライト116およびスピーカ118を含むことができる。各インジケータライト116は、発光ダイオード(LED)でもよい。
特定の態様において、図2に示されるように、上側ハウジング部104は、下側ハウジング部106に対して移動可能である。具体的には、上側ハウジング部104は、下側ハウジング部106に対して摺動可能でもよい。図2に示されるように、下側ハウジング部106は、マルチボタンキーボード120を含むことができる。特定の態様において、マルチボタンキーボード120は、標準QWERTYキーボードでもよい。上側ハウジング部104を下側ハウジング部106に対して移動させると、マルチボタンキーボード120が現れ得る。図2は、PCD100が下側ハウジング部106上にリセットボタン122を含み得ることをさらに示す。
図3を参照すると、ポータブルコンピューティングデバイス(PCD)の例示の非限定的な態様が示されており、全体的に320と表される。図示のように、PCD320は、マルチコアCPU324を含むオンチップシステム322を含む。マルチコアCPU324は、第0のコア325、第1のコア326、および第Nのコア327を含み得る。
図3に示されるように、ディスプレイコントローラ328およびタッチスクリーンコントローラ330は、マルチコアCPU324に結合される。次に、オンチップシステム322の外部のタッチスクリーンディスプレイ332は、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合される。
図3は、たとえば位相反転線(PAL)エンコーダ、sequential couleur a memoire(SECAM)エンコーダ、または全国テレビジョン方式委員会(NTSC)エンコーダなどのビデオエンコーダ334がマルチコアCPU324に結合されることをさらに示す。さらに、ビデオ増幅器336は、ビデオエンコーダ334およびタッチスクリーンディスプレイ332に結合される。また、ビデオポート338は、ビデオ増幅器336に結合される。図3に示されるように、ユニバーサルシリアルバス(USB)コントローラ340がマルチコアCPU324に結合される。また、USBポート342は、USBコントローラ340に結合される。メモリ344および加入者識別モジュール(SIM)カード346もマルチコアCPU324に結合され得る。さらに、図3に示されるように、デジタルカメラ348は、マルチコアCPU324に結合され得る。例示的な態様では、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化膜半導体(CMOS)カメラである。
図3にさらに示されるように、ステレオオーディオコーデック350は、マルチコアCPU324に結合され得る。さらに、オーディオ増幅器352は、ステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカ354および第2のステレオスピーカ356は、オーディオ増幅器352に結合される。図3は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合され得ることを示す。さらに、マイクロフォン360は、マイクロフォン増幅器358に結合され得る。特定の態様において、周波数変調(FM)無線チューナ362は、ステレオオーディオコーデック350に結合され得る。また、FMアンテナ364は、FM無線チューナ362に結合される。さらに、ステレオヘッドフォン366は、ステレオオーディオコーデック350に結合され得る。
図3は、無線周波数(RF)トランシーバ368がマルチコアCPU324に結合され得ることをさらに示す。RFスイッチ370は、RFトランシーバ368およびRFアンテナ372に結合され得る。図3に示されるように、キーパッド374は、マルチコアCPU324に結合され得る。また、マイクロフォンを備えるモノヘッドセット376は、マルチコアCPU324に結合され得る。さらに、バイブレータデバイス378は、マルチコアCPU324に結合され得る。図3は、電源装置380がオンチップシステム322に結合され得ることも示す。特定の態様において、電源装置380は、電力を必要とするPCD320の様々な構成要素に電力を供給する直流電流(DC)の電源装置である。さらに、特定の態様において、電源装置は、AC電源に接続された交流(AC)-DC変換器から導出されたDC電源または充電式DCバッテリである。
図3は、PCD320が、たとえばローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークなど、データネットワークにアクセスするために使用され得るネットワークカード388も含み得ることをさらに示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、または当技術分野で知られている任意の他のネットワークカードとすることができる。さらに、ネットワークカード388は、チップに組み込むことができ、すなわち、ネットワークカード388は、チップでのフルソリューションとすることができ、個別のネットワークカード388でなくてもよい。
図3に示されるように、タッチスクリーンディスプレイ332、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカ354、第2のステレオスピーカ356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378、および電源装置380は、オンチップシステム322の外部にある。
特定の態様において、本明細書で説明する方法ステップのうちの1つまたは複数は、コンピュータプログラム命令としてメモリ344に記憶され得る。これらの命令は、本明細書で説明する方法を実行するために、マルチコアCPU324によって実行され得る。さらに、マルチコアCPU324、メモリ344、またはそれらの組合せは、ワークロードのタイプに基づいて、中央処理装置内で動的なクロックおよび電圧切替えアルゴリズムを実行するために、本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として働き得る。
図4を参照すると、処理システムが示されており、全体的に400と表される。特定の態様において、処理システム400は、図3に関して上記で説明されたPCD320に組み込まれ得る。図示のように、処理システム400は、マルチコア中央処理装置(CPU)402、およびマルチコアCPU402に接続されたメモリ404を含むことができる。マルチコアCPU402は、第0のコア410、第1のコア412、および第Nのコア414を含み得る。第0のコア410では、第0の動的なクロックおよび電圧スケーリング(DCVS)アルゴリズム416が実行され得る。第1のコア412では、第1のDCVSアルゴリズム417が実行され得る。さらに、第Nのコア414では、第NのDCVSアルゴリズム418が実行され得る。特定の態様において、各DCVSアルゴリズム416、417、418は、それぞれのコア412、414、416上で独立して実行され得る。
さらに、図示のように、メモリ404には、オペレーティングシステム420が記憶されていてもよい。オペレーティングシステム420は、スケジューラ422を含むことができ、スケジューラ422は、第1の実行待ち行列(run queue)424、第2の実行待ち行列426、および第Nの実行待ち行列428を含むことができる。また、メモリ404には、第1のアプリケーション430、第2のアプリケーション432、および第Nのアプリケーション434が記憶されていてもよい。
特定の態様において、アプリケーション430、432、434は、マルチコアCPU402内のコア410、412、414で処理される1つまたは複数のタスク436をオペレーティングシステム420に送ることができる。タスク436は、単一のタスク、スレッド、またはそれらの組合せとして処理または実行され得る。さらに、スケジューラ422は、タスク、スレッド、またはそれらの組合せを、マルチコアCPU402内での実行に予定することができる。さらに、スケジューラ422は、実行待ち行列424、426、428に、タスク、スレッド、またはそれらの組合せを入れることができる。コア410、412、414は、コア410、412、414でタスクおよびスレッドを処理または実行するために、たとえば、オペレーティングシステム420によって命令されるように、実行待ち行列424、426、428からタスク、スレッド、またはそれらの組合せを取り出すことができる。
図4は、メモリ404にコントローラ440が記憶され得ることも示す。コントローラ440は、オペレーティングシステム420およびマルチコアCPU402に接続され得る。具体的には、並行処理モニタ(parallelism monitor)440は、オペレーティングシステム420内のスケジューラ422に接続され得る。本明細書で説明するように、コントローラ440は、コア410、412、414上のワークロードを監視することができ、それぞれのコア412、414、416上のDCVSアルゴリズム416、417、418を実行する、またはその実行を引き起こすことができる。
特定の態様において、コントローラ440は、ソフトウェアプログラムでもよい。しかし、代替態様では、コントローラ440は、メモリ404の外部にあるハードウェアコントローラとすることができる。いずれにせよ、コントローラ440、メモリ404、コア410、412、414、またはそれらの組合せは、ワークロードのタイプに基づいて、中央処理装置内で動的なクロックおよび電圧切替えアルゴリズムを実行するために、本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として働き得る。
図5を参照すると、動的なクロックおよび電圧スケーリング(DCVS)アルゴリズムを実行する方法の第1の態様が示されており、全体的に500と表される。方法500は、ブロック502でDOループで開始し、デバイスが電源投入されると、以下のステップが実行され得る。ブロック504で、コントローラは、CPUのアクティビティを監視することができる。このアクティビティは、シングルコアCPU、マルチコアCPU、複数のシングルコアCPU、複数のマルチコアCPU、またはそれらの組合せのアクティビティとすることができる。さらに、コントローラは、ソフトウェアコントローラ、ハードウェアコントローラ、またはそれらの組合せとすることができる。
決定506で、コントローラは、ワークロードが追加されたかどうかを決定することができる。ワークロードは、ビデオアプリケーション、音声アプリケーション、電子メールアプリケーション、ワイヤレスネットワークアプリケーション、セルラーネットワークアプリケーション、ショートメッセージサービス(SMS)アプリケーション、通信アプリケーション、セキュリティアプリケーション、カレンダアプリケーション、インスタントメッセージングアプリケーション、スチールカメラアプリケーション、全地球測位システム(GPS)アプリケーション、ブラウザアプリケーション、メモ帳アプリケーション、クロックアプリケーション、ゲームアプリケーション、計算機アプリケーション、銀行業務アプリケーション、パスワードキーパーアプリケーション、ヘルプアプリケーション、電子商取引アプリケーション、ソフトウェア配信アプリケーション、検索アプリケーション、オプションアプリケーション、確立アプリケーション、電話アプリケーション、接続管理アプリケーション、セキュリティアプリケーション、任意の他のアプリケーション、またはそれらの組合せとすることができる。
特定の態様において、決定506でワークロードが追加されていない場合、方法500は、ブロック504に戻ることができ、本明細書で説明するように継続することができる。そうでない場合、決定506で、ワークロードが追加されている場合、方法500は、決定508に進み、コントローラは、ワークロードが特殊なワークロード、すなわち、DCVSアルゴリズムによる異なる処理を保証することができる一種のワークロードであるかどうかを決定することができる。特殊なワークロードは、インパルスワークロード(impulse workload)、登録済みワークロード(registered workload)、等時性ワークロード(isochronous workload)、パルスワークロード(pulsed workload)、ベストエフォートワークロード(best effort workload)、スケジュールワークロード(scheduled workload)、またはそれらの組合せとすることができる。コントローラは、ワークロードから受信された入力に基づいて、ワークロードが特殊なワークロードであるかどうかを決定することができる。
決定508で、ワークロードが特殊ではない場合、方法500は、ブロック510に進むことができ、コントローラは、変更がないDCVSアルゴリズムを実行することができる。その後、方法500は決定512に移動することができ、コントローラは、デバイスが電源切断されたかどうかを決定することができる。デバイスが電源切断されていない場合、すなわち、デバイスがオンのままである場合、方法500は、ブロック504に戻ることができ、本明細書で説明するように継続することができる。そうでない場合、デバイスが電源切断された場合、方法500は、終了することができる。
決定508に戻って、ワークロードが特殊なワークロードである場合、方法500は、ブロック513に進むことができ、コントローラは、特殊なワークロードの登録を受信することができる。ブロック514で、コントローラは、一意の識別子を特殊なワークロードに割り当てることができる。次いで、決定516で、コントローラは、DCVSソリューションがワークロードに関連付けられているかどうか、すなわち、DCVSアルゴリズムへの変更または改変がワークロードに関連付けられているかどうかを決定することができる。ワークロードは、ワークロードに関連付けられたタイプ、およびワークロードに関連付けられソリューションを示すことができる。
DCVSソリューションが特殊なワークロードに関連付けられている場合、方法500は、ブロック518に進むことができ、コントローラは、特殊なワークロードに関連付けられたソリューションに基づいて、DCVSアルゴリズムを自動的に再調整することができる。次に、ブロック520で、コントローラは、再調整されたDCVSアルゴリズムを実行することができる。次いで、方法500は、決定512に移動することができ、本明細書で説明するように継続することができる。
決定516に戻ると、特殊なワークロードに関連付けられたDCVSソリューションがない場合、方法500は、決定522に進むことができ、コントローラは、新しいソリューションを作成すべきかどうかを決定することができる。たとえば、コントローラは、ワークロードが予め定められたソリューションを有するかどうかを決定するために、ワークロードに問い合わせることができる。そうであれば、コントローラは、そのソリューションを実施することができる。代わりに、コントローラは、特定のワークロードの要求についてワークロードに問い合わせることができ、ワークロードの要求に基づいて、ワークロードの新しいソリューションを作成することができる。ワークロードの要求は、たとえば、100万命令/秒(MIPS)で表され得る。別の態様では、ワークロードの要求は、たとえば、キロヘルツの値(kHz)、メガヘルツ(MHz)の値、ギガヘルツ(GHz)の値など、周波数として表され得る。さらに別の態様では、ワークロードの要求は、たとえば、キロビット/秒(KB/S)、メガビット/秒(MB/S)、ギガビット/秒(GB/S)、またはそれらの組合せなど、データ転送レートとして表され得る。ワークロードの要求は、応答度の値をさらに含み得る。応答度は、システム設定の変化率でもよい。たとえば、応答度は、CPU周波数の変化率、電圧の変化率、またはそれらの組合せでもよい。さらに、応答度は、ミリ秒で表される最大遅延、ミリ秒当たりの周波数(MHz/ms)として表されるCPUスルーレート範囲(slew rate bound)、またはそれらの組合せでもよい。また、ワークロードの要求は、上記のワークロードの要求の任意の組合せを含むことができる。
決定522で、コントローラが新しいソリューションを作成することを決定しない場合、方法500は、ブロック510に進むことができ、本明細書で説明するように継続することができる。そうでない場合、コントローラが新しいソリューションを作成することを決定した場合、方法500は、ブロック524に移動することができ、コントローラは、たとえば、現在のワークロードから受信された1つまたは複数のワークロードの要求に基づいて、現在のワークロードの新しいソリューションを作成することができる。次に、ブロック526で、コントローラは、関連付けられたテーブルまたはデータベースに、新しいソリューションを記憶することができる。ソリューションは、ワークロードに関連付けられた一意の識別子と併せて記憶され得る。次いで、方法500は、ブロック518に移動することができ、本明細書で説明するように継続することができる。
図6は、時間に対してプロットされた、中央処理装置のワークロードならびに動的なクロックおよび電圧スケーリングで追跡された負荷の第1のグラフを示し、全体的に600と表される。図示のように、グラフ600は、ワークロードインジケータ602およびDCVS追跡負荷インジケータ(DCVS tracked load indicator)604を含む。図示のように、ワークロードインジケータ602は、第1のビジーサイクル606および第2のビジーサイクル608を含み得る。第1のビジーサイクル606および第2のビジーサイクル608に含まれるワークロードのタイプが特殊であると決定され、特殊なワークロードに、DCVSアルゴリズムの実行を免除するDCVSソリューションが関連付けられている場合、DCVS追跡負荷インジケータ604は、第1のビジーサイクル606および第2のビジーサイクル608にわたって図示のように比較的平坦なままであり得る。ワークロードが特殊でない、またはワークロードにソリューションが関連付けられていない場合、DCVS追跡負荷インジケータ604は、破線で示すように第1のビジーサイクル606および第2のビジーサイクル608を追跡することができる。
図6に示すように、複数の動作インジケータ610は、特殊なワークロードの特殊な処理をトリガするために使用され得る。動作インジケータ610は、開始ソリューション、停止ソリューション、またはそれらの組合せを含み得る。
図7を参照すると、動的なクロックおよび電圧スケーリング(DCVS)アルゴリズムを実行する方法の第2の態様が示されており、全体的に700と表される。方法700は、ブロック702でDOループで開始し、デバイスが電源投入されると、以下のステップが実行され得る。ブロック704で、コントローラは、CPUのアクティビティを監視することができる。このアクティビティは、シングルコアCPU、マルチコアCPU、複数のシングルコアCPU、複数のマルチコアCPU、またはそれらの組合せのアクティビティとすることができる。さらに、コントローラは、ソフトウェアコントローラ、ハードウェアコントローラ、またはそれらの組合せとすることができる。
決定708で、コントローラは、ワークロードが追加されたかどうかを決定することができる。ワークロードは、ビデオアプリケーション、音声アプリケーション、電子メールアプリケーション、ワイヤレスネットワークアプリケーション、セルラーネットワークアプリケーション、ショートメッセージサービス(SMS)アプリケーション、通信アプリケーション、セキュリティアプリケーション、カレンダアプリケーション、インスタントメッセージングアプリケーション、スチールカメラアプリケーション、全地球測位システム(GPS)アプリケーション、ブラウザアプリケーション、メモ帳アプリケーション、クロックアプリケーション、ゲームアプリケーション、計算機アプリケーション、銀行業務アプリケーション、パスワードキーパーアプリケーション、ヘルプアプリケーション、電子商取引アプリケーション、ソフトウェア配信アプリケーション、検索アプリケーション、オプションアプリケーション、確立アプリケーション、電話アプリケーション、接続管理アプリケーション、セキュリティアプリケーション、任意の他のアプリケーション、またはそれらの組合せとすることができる。
特定の態様において、決定706でワークロードが追加されていない場合、方法700は、ブロック704に戻ることができ、本明細書で説明するように継続することができる。そうでない場合、決定706で、ワークロードが追加されている場合、方法700は、決定708に進むことができ、コントローラは、ワークロードがインパルスワークロードであるかどうかを決定することができる。インパルスワークロードは、キー押下イベント、タッチスクリーンイベント、別のインパルスタイプイベント、またはそれらの組合せとすることができる。さらに、インパルスワークロードは、周知の開始点を有するが、周知の終了および周知の負荷を有していない可能性がある。DCVSアルゴリズムの応答は、各インパルスワークロードの詳細に依存し得る。たとえば、DCVSは、フルパフォーマンスにジャンプすることによってキーパッドイベントに応答することができ、一方、タッチスクリーンイベントは、フルパフォーマンス応答を必要としない場合がある。
決定708で、ワークロードがインパルスワークロードではない場合、方法700は、ブロック710に移動することができ、コントローラは、標準の、すなわち変更がないDCVSアルゴリズムを実行することができる。その後、方法700は、ブロック704に戻ることができ、本明細書で説明するように継続することができる。
決定708に戻ると、追加されたワークロードがインパルスワークロードである場合、方法700は、ブロック712に進むことができ、コントローラは、追加されたワークロードに関連付けられた一意の識別子を割り当てることができる。次に、決定714で、コントローラは、ワークロードに関連付けられたCPU周波数があるかどうかを決定することができる。CPU周波数は、ワークロードに関連付けられた履歴値から決定され得る。履歴値は、ワークロードに関連付けられたコントローラに記憶され得る。
ワークロードに関連付けられたCPU周波数がある場合、方法700は、ブロック716に進むことができ、コントローラは、新しいワークロードを、たとえば、登録済みおよび非登録など、任意の並行するワークロードと統合することができる。たとえば、インパルスに関連付けられた100MIPSの負荷、および50MIPSの他の負荷がある場合、コントローラは、150MIPSにジャンプする。次いで、ブロック717で、コントローラは、統合されたCPU周波数にジャンプすることができる。その後、ブロック718で、コントローラは、現在のCPU周波数からDCVSアルゴリズムを実行することができる。決定720に移動して、コントローラは、デバイスが電源切断されたかどうかを決定することができる。デバイスが電源切断されていない場合、方法700は、ブロック704に戻ることができ、本明細書で説明するように継続することができる。そうでない場合、決定720で、デバイスが電源切断された場合、方法700は、終了することができる。
決定714に戻ると、コントローラがデータベース内に追加されたワークロードに関連付けられたCPU周波数を見つけられない場合、方法700は、ブロック722に移動することができる。ブロック722で、コントローラは、最大CPU周波数にジャンプすることができる。次に、ブロック724で、コントローラは、DCVSアルゴリズムを使用して、最大周波数からDCVSアルゴリズムを実行することができ、ワークロードのための正しい、または適切な周波数値が見つかるまで、CPU周波数を低下させることができる。ブロック726で、コントローラは、周波数を記憶することができる。次いで、方法700は、決定720に移動することができ、本明細書で説明するように継続することができる。
図8は、時間に対してプロットされた、中央処理装置のワークロードならびにDCVS応答の第2のグラフを示し、全体的に800と表される。図示のように、グラフ800は、ワークロードインジケータ802およびDCVS応答インジケータ804を含み得る。図示のように、ワークロードインジケータ802は、インパルスイベントから開始するビジーサイクル806を含み得る。DCVS応答インジケータ804は、ビジーサイクルを厳密に追跡するDCVS応答808を含み得る。DCVS応答808は、インパルスイベントまたは最大CPU周波数に関連付けられた既知の周波数にジャンプすることができる。その後、DCVS応答808は、DCVSアルゴリズムが実行されるにつれて、図8に示すように減少し得る。
図9は、時間に対してプロットされた、中央処理装置のワークロードならびにDCVS応答の第3のグラフを示し、全体的に900と表される。図示のように、グラフ900は、ワークロードインジケータ902およびDCVS応答インジケータ904を含み得る。図示のように、ワークロードインジケータ902は、第1のビジーサイクル906および第2のビジーサイクル908を含み得る。各ビジーサイクル906、908は、インパルスイベントから開始し得る。
DCVS応答インジケータ904は、第1のDCVS応答910および第2のDCVS応答912を含み得る。第1のDCVS応答910は、ワークロードに関連付けられた履歴情報を使用しない応答である。図示のように、第1のDCVS応答910は、最大CPU周波数にジャンプする。その後、第1のDCVS応答910は、DCVSアルゴリズムが実行されるにつれて減少し得る。
第2のDCVS応答912は、ワークロードに関連付けられた履歴情報を使用する応答である。図示のように、第2のDCVS応答912は、ワークロードに以前関連付けられた必要性を満たす、またはわずかに上回るCPU周波数にジャンプする。その後、第2のDCVS応答912は、DCVSアルゴリズムが実行されるにつれて減少し得る。図示のように、DCVSの問題空間から高い応答度のイベントを削除することによって、低い応答度の操作の間、より低い電力が可能になると同時に、高い応答度の操作により良い性能を提供し、それらの同じ操作の電力節約を可能にする。
特定の態様において、インパルス密度が、ワークロードインジケータとして使用され得る。たとえば、DCVSは十分に接近して出現する単一のソースからのインパルスを無視することができるので、インパルスを接近させることによって、DCVS応答を禁止することができる。代わりに、密なインパルス列を有することは、より大きいワークロードを含意し、DCVSを強化することができる。特定の態様において、近接は、ワークロード固有とし得る。
図10を参照すると、動的なクロックおよび電圧スケーリング(DCVS)アルゴリズムを実行する方法の第3の態様が示されており、全体的に1000と表される。方法1000は、ブロック1002でDOループで開始し、デバイスが電源投入されると、以下のステップが実行され得る。ブロック1004で、コントローラは、CPUのアクティビティを監視することができる。このアクティビティは、シングルコアCPU、マルチコアCPU、複数のシングルコアCPU、複数のマルチコアCPU、またはそれらの組合せのアクティビティとすることができる。さらに、コントローラは、ソフトウェアコントローラ、ハードウェアコントローラ、またはそれらの組合せとすることができる。
決定1008で、コントローラは、ワークロードが追加されたかどうかを決定することができる。ワークロードは、ビデオアプリケーション、音声アプリケーション、電子メールアプリケーション、ワイヤレスネットワークアプリケーション、セルラーネットワークアプリケーション、ショートメッセージサービス(SMS)アプリケーション、通信アプリケーション、セキュリティアプリケーション、カレンダアプリケーション、インスタントメッセージングアプリケーション、スチールカメラアプリケーション、全地球測位システム(GPS)アプリケーション、ブラウザアプリケーション、メモ帳アプリケーション、クロックアプリケーション、ゲームアプリケーション、計算機アプリケーション、銀行業務アプリケーション、パスワードキーパーアプリケーション、ヘルプアプリケーション、電子商取引アプリケーション、ソフトウェア配信アプリケーション、検索アプリケーション、オプションアプリケーション、確立アプリケーション、電話アプリケーション、接続管理アプリケーション、セキュリティアプリケーション、任意の他のアプリケーション、またはそれらの組合せとすることができる。
特定の態様において、決定1006でワークロードが追加されていない場合、方法1000は、ブロック1004に戻ることができ、本明細書で説明するように継続することができる。そうでない場合、決定1006で、ワークロードが追加された場合、方法1000は、決定1008に進むことができ、コントローラは、ワークロードの最小CPU要求が受信されたかどうか、すなわち、ワークロードが特定の要求を有する登録されたワークロードであるかどうかを決定することができる。最小CPU要求が受信されていない場合、方法1000は、ブロック1010に進むことができ、コントローラは、標準DCVSアルゴリズムを実行する、またはその実行を引き起こすことができる。その後、方法1000は、決定1012に移動することができる。決定1012で、コントローラは、デバイスが電源切断されたかどうかを決定することができる。デバイスが電源切断されていない場合、方法1000は、ブロック1004に戻ることができ、本明細書で説明するように継続することができる。
1008に戻ると、ワークロードから最小CPU要求が受信された場合、方法1000は、ブロック1014に進むことができる。ブロック1014で、コントローラは、ワークロードから受信された最小CPU要求にジャンプすることができる。次に、ブロック1016で、コントローラは、DCVSにワークロードを実行させない場合がある。言い換えれば、コントローラは、追加されたワークロードをワークロードについてのDCVSアルゴリズムの実行から免除することができる。次いで、方法1000は、決定1012に進むことができ、本明細書で説明するように継続することができる。
図11は、時間に対してプロットされた、中央処理装置のワークロード、DCVS応答、およびCPU応答の第4のグラフを示し、全体的に1100と表される。図示のように、グラフ1100は、ワークロードインジケータ1102、DCVS応答インジケータ1104、およびCPU応答インジケータ1106を含み得る。図示のように、ワークロードインジケータ1102は、ビジーサイクル1108を含み得る。CPU応答インジケータ1106は、CPUが最小性能の必要性の要求に応答することができることを示す。DCVS応答インジケータ1104は、DCVSアルゴリズムがワークロードを無視することができることを示す。
たとえば、ワークロード、タスク、またはイベントが100MIPSの処理を要求し、DCVSアルゴリズムがCPU負荷の100MIPSの増加を同時に認識する場合、DCVSアルゴリズムは、要求されていないタスクに変化がなかったと推測することができる。これによって、DCVSアルゴリズムは、CPU使用における誤ったスパイクを回避できるようになる。そのような場合、CPU応答は、DCVSがワークロードに対して応答することなく、性能クリティカルな立上り領域、および電力クリティカルな立下り領域におけるワークロードを追跡することができる。
図12は、時間に対してプロットされた、中央処理装置のワークロード、DCVS応答、およびCPU応答の第5のグラフを示し、全体的に1200と表される。図示のように、グラフ1200は、ワークロードインジケータ1202、DCVS応答インジケータ1204、およびCPUインジケータ1206を含み得る。図示のように、ワークロードインジケータ1202は、登録済みワークロード1208および未登録ワークロード1210を含み得る。登録済みワークロード1208が出現すると、CPUインジケータ1206は、CPUが第1のCPU応答1212を有し得ることを示し、DCVSインジケータ1204は、DCVSアルゴリズムが応答を有していないことを示す。未登録ワークロード1210が出現すると、CPUインジケータ1206は、第2のCPU応答1214を示し、DCVSインジケータ1204は、DCVS応答1216を示す。DCVSアルゴリズムが登録済みワークロード1208の要求を通知され得るため、DCVSアルゴリズムは、登録済みワークロード1208によって引き起こされる任意の変更に応答することなく、未登録ワークロード1210を追跡することができる。
図13を参照すると、動的なクロックおよび電圧スケーリング(DCVS)アルゴリズムを実行する方法の第1の態様が示されており、全体的に1300と表される。方法1300は、ブロック1302でDOループで開始し、デバイスが電源投入されると、以下のステップが実行され得る。ブロック1304で、コントローラは、CPUのアクティビティを監視することができる。このアクティビティは、シングルコアCPU、マルチコアCPU、複数のシングルコアCPU、複数のマルチコアCPU、またはそれらの組合せのアクティビティとすることができる。さらに、コントローラは、ソフトウェアコントローラ、ハードウェアコントローラ、またはそれらの組合せとすることができる。
決定1308で、コントローラは、ワークロードが追加されたかどうかを決定することができる。ワークロードは、ビデオアプリケーション、音声アプリケーション、電子メールアプリケーション、ワイヤレスネットワークアプリケーション、セルラーネットワークアプリケーション、ショートメッセージサービス(SMS)アプリケーション、通信アプリケーション、セキュリティアプリケーション、カレンダアプリケーション、インスタントメッセージングアプリケーション、スチールカメラアプリケーション、全地球測位システム(GPS)アプリケーション、ブラウザアプリケーション、メモ帳アプリケーション、クロックアプリケーション、ゲームアプリケーション、計算機アプリケーション、銀行業務アプリケーション、パスワードキーパーアプリケーション、ヘルプアプリケーション、電子商取引アプリケーション、ソフトウェア配信アプリケーション、検索アプリケーション、オプションアプリケーション、確立アプリケーション、電話アプリケーション、接続管理アプリケーション、セキュリティアプリケーション、任意の他のアプリケーション、またはそれらの組合せとすることができる。
特定の態様において、決定1306でワークロードが追加されていない場合、方法1300は、ブロック1304に戻ることができ、本明細書で説明するように継続することができる。そうでない場合、決定1306で、ワークロードが追加されている場合、方法1300は、決定1307に進むことができ、コントローラは、ワークロードが等時性ワークロードであるかどうかを決定することができる。等時性ワークロードは、実質的に規則的な持続時間に出現するワークロードとすることができる。あるいは、等時性ワークロードは、実質的に規則的な持続時間に実質的に規則的な間隔で出現するワークロードとすることができる。
ワークロードが等時性ではない場合、方法1300は、ブロック1304に戻ることができ、本明細書で説明するように継続することができる。ワークロードが等時性である場合、方法1300は、ブロック1308に進むことができる。ブロック1308で、コントローラは、ワーク間隔が開始したという表示を受信することができる。さらに、ブロック1310で、コントローラは、ワークロードから示唆されたCPU設定を受信することができる。次に、ブロック1312で、コントローラは、ワークの終了のデッドラインを受信することができる。
決定1314に移動すると、コントローラは、履歴設定がワークロードのために利用可能かどうかを決定することができる。そうであれば、方法1300は、ブロック1316に進むことができ、コントローラは、デッドライン、示唆されたCPU設定および履歴設定に基づいて、たとえば周波数、電圧などのCPU設定を決定することができる。次に、ブロック1318で、コントローラは、ワークが終了すると、ワークを終了するために必要な時間(length of time)および周波数を記憶する。これによって、コントローラは、ワークロードに適応し、以後のワークロード要求時に情報を使用することができる。言い換えれば、これによって、コントローラによる適応学習が可能になる。
次いで、方法1300は、決定1320に移動することができ、コントローラは、デバイスが電源切断されたかどうかを決定することができる。デバイスが電源切断されていない場合、方法1300は、ブロック1304に戻ることができ、本明細書で説明するように継続することができる。そうでない場合、デバイスが電源切断された場合、方法1300は、終了することができる。
決定1314に戻ると、コントローラがワークロードの履歴設定を有していない場合、方法1300は、ブロック1322に進むことができ、コントローラは、デッドラインおよび示唆されたCPU設定に基づいて1つまたは複数のCPU設定を決定することができる。その後、方法1300は、ブロック1318に進むことができ、本明細書で説明するように継続することができる。
特定の使用事例でのワークが間隔間で大部分反復可能である場合、以前のワーク間隔からのデータを使用して、次の間隔で必要なワークの量を予測することが可能である。たとえばコントローラなどの動的なリソースマネージャにその要求を通知するために、使用事例は、ワークが終了する必要があるデッドラインとともに、ワークの間隔が開始したことを示す。ワークが実際に終了したとき、使用事例は、ワークが終了したことを示す。
ワークが終了するまでどれだけの時間があったかに対してワークが終了するのに実際にかかった時間を知っていれば、より電力的に最適でありながら、デッドライン前に処理を終了する代替のリソースの設定を見つけることができる。以後の要求時に、リソースは、同じ情報を受信し、しかし、より電力的に最適でありながら、デッドライン前にワークを終了するリソースの設定を決定するために、過去の履歴を使用することができる。
リソースマネージャが使用事例ごとに保持することができる一連の統計がある。これらの統計は、間隔当たりの平均ワーク、および間隔間のワークの差異を含む。これらの統計は、要求から適応的に決定され、ベンチマークを介してシードされる、または定数として固定され得る。リソース設定当たり実行されるワークの量、および場合によってはリソース設定当たりのそのワークの可変性を含むリソースについて保持され得るいくつかの統計もある。
正しく機能するために、将来の要求は、以前のものに似たワークの要求を有し得る。これが偽であることがわかっている場合がある(たとえば、デコード中のビデオが480iから1080pに変わり、各フレームはここでは根本的に異なる量のワークを有する)。新しい要求が新しいアプリケーションを構成し、任意の以前学習された統計が破棄されるべきであることを使用事例が示すことができる機構を提供することができる。図14および図15に示すように、使用事例がヒントをリソースマネージャに提供することが許容される。このヒントは、ワーク処理が、その必要性を満たすのに十分であると感じるレベルである。ヒントは、動的なリソースマネージャによって無視され得る。
使用事例がヘッドルームの要求をリソースマネージャに提供することが許容される。このヘッドルームの仕様は、リソースの設定を調整するときにリソースが維持しなければならない処理マージンの量である。代わりに、ヘッドルームは、ワークロードの差異を介して導出され得る。
インジケータにより、ターゲットが使用事例とは無関係に消費電力のために最適化することが可能である、すなわち、使用事例の実装は同じままであり、電力最適化アルゴリズムとは無関係、さらには潜在的にターゲットとは無関係である。単純な最初の実装は、最大でリソースを実行し、性能を保証することを含み得る。後で、オフラインの最適化、または適応的に決定された統計を介して、リソースの設定は、使用事例の実装を変更する必要なく、より電力的に最適な設定に変更され得る。
本明細書で説明する方法のそれぞれにおいて、動的なリソースマネージャ、すなわちコントローラが完全に汎用となるよう試みるというよりむしろ、動的なリソースマネージャはタスクの要求について直接通知され得る。これによって、動的なリソースマネージャは、より良いリソース管理を決定することができる。動的なリソースマネージャに性能の要求を通知することから利益を得る使用事例またはワークロードを識別することができ、要求が正式化され得る。さらに、動的なリソースマネージャに対するインターフェースは、ワークロードからの情報を統合するように拡大され得る。
動的に管理されたリソースに対するインターフェースは、たとえば、必須、等時性、インパルスなど、一連の共通のワークモデルのサポートを含むことができる。すべての共通のワークモデルは、ライブラリに入れることができ、リソースオーサーの裁量で任意の特定のリソースによってサポートされるようにしてもよく、またはサポートされなくてもよい。さらに、これによって、リソースオーサーは、それら自体の、潜在的にカスタムのワークモデルを定義することができることができ、クライアントはこれらの要求を発行することもできる。これらのカスタムワークモデルは、リソースにアクティブなクライアントのニーズを通知し、DCVSアルゴリズムの必要な普遍性を最小化し、最適化の機会を増加させるために使用され得る。
特定の態様において、追加のワークモデルは、パルスワークロード、すなわち、あるレベルから開始し、所与の時間間隔で自動的に終了するワークロードを含み得る。さらに、ワークモデルは、実行できるが、性能クリティカルではないワークがあり、任意に遅らせることができるというヒントを含み得るベストエフォートワークロードを含むことができる。また、ワークモデルは、ある量のワークが将来の定義された時点で必要とされる旨の通知を含むことができるスケジュールワークロードを含むことができる。
本明細書で説明する方法によって、他の使用事例または他のリソースに対する影響なく、DCVSアルゴリズムの問題空間を任意に低減し、特定の使用事例を任意に最適化することができる。
本明細書で説明する方法は、DCVSアルゴリズムへの追加の入力をさらに含み得る。たとえば、これらの追加の入力は、アイドルの配布信号、割込みファイヤリング信号、およびタイマーファイヤリング信号を含むことができる。さらに、割込みおよびタイマーの配布が、DCVSアルゴリズムへの追加の入力として使用され得る。これらの入力を含むことによって、DCVSアルゴリズムは、より向上したシステムの知識を有することによって、より効果的かつ効率的に機能することができる。
これらの入力は、たとえばオーディオ再生など、モードを検出し、検出されたケースのより最適なソリューションをもたらすようにDCVSアルゴリズムを調整するために使用され得る。入力は、たとえば入ってくる電話、ユーザイベント、または、さらにはバッファオーディオコンテンツへの不揮発性(NV)メモリアクセスの検出など、モードの変更を検出するためにも使用され得る。さらに、これらの入力は、実質的に最小のクライアントの対話によるDCVSアルゴリズムの調整を可能にすることができる。
本明細書で説明する方法ステップは、必ずしも説明したような順序で実行される必要はないことを理解されたい。さらに、たとえば「その後」、「次いで」、「次に」などの語は、ステップの順序を限定するものではない。これらの語は、単に方法ステップの説明を介して読者を導くために使用されている。さらに、本明細書で説明する方法は、ポータブルコンピューティングデバイス(PCD)上で実行可能であるものとして説明されている。PCDは、携帯電話デバイス、携帯情報端末デバイス、スマートブックコンピューティングデバイス、ネットブックコンピューティングデバイス、ラップトップコンピューティングデバイス、デスクトップコンピューティングデバイス、またはそれらの組合せとすることができる。さらに、本明細書で説明される方法ステップは、シングルコアプロセッサ、マルチコアプロセッサ、複数のシングルコアプロセッサ、複数のマルチコアプロセッサ、またはそれらの任意の組合せ上で実行され得る。また、方法は、本明細書では、様々なタイプのプロセッサを動的に制御するために使用され得る。たとえば、方法は、本明細書では、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)などを制御するために使用され得る。
1つまたは複数の例示的な態様において、記載の機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、機械可読媒体、すなわちコンピュータ可読媒体などのコンピュータプログラム製品に1つまたは複数の命令またはコードとして記憶され、またはそれを介して送信され得る。コンピュータ可読媒体は、ある位置から別の位置へのコンピュータプログラムの転送を容易にする任意の媒体を含むコンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の使用可能な媒体とすることができる。限定ではなく、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、命令またはデータ構造の形態で所望のプログラムコードを運ぶまたは記憶するために使用され、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。また、任意の接続は、厳密には、コンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、またはワイヤレス技術、たとえば赤外線、無線、およびマイクロ波を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、赤外線、無線、およびマイクロ波などの同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、またはワイヤレス技術は媒体の定義内に含まれる。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるものとする。
選択された態様が例示され、詳細に説明され、記載されているが、以下の特許請求の範囲によって定義された本発明の趣旨および範囲から逸脱することなく、様々な置換および改変を加えることができることを理解されよう。
100 ポータブルコンピューティングデバイス
102 ハウジング
104 上側ハウジング部
106 下側ハウジング部
108 ディスプレイ
110 トラックボール入力デバイス
112 電源投入ボタン
114 電源切断ボタン
116 インジケータライト
118 スピーカ
120 マルチボタンキーボード
122 リセットボタン
320 ポータブルコンピューティングデバイス
322 オンチップシステム
324 マルチコアCPU
325 第0のコア
326 第1のコア
327 第Nのコア
328 ディスプレイコントローラ
330 タッチスクリーンコントローラ
332 ディスプレイ/タッチスクリーン
334 ビデオエンコーダ
336 ビデオ増幅器
338 ビデオポート
340 USBコントローラ
342 USBポート
344 メモリ
346 SIMカード
348 デジタルカメラ
350 ステレオオーディオコーデック
352 オーディオ増幅器
354 ステレオスピーカ
356 ステレオスピーカ
358 マイクロフォン増幅器
360 マイクロフォン
362 FM無線チューナ
364 FMアンテナ
366 ステレオヘッドフォン
368 RFトランシーバ
370 RFスイッチ
372 RFアンテナ
374 キーパッド
376 マイクロフォンを備えるモノヘッドセット
378 バイブレータデバイス
380 電源装置
388 ネットワークカード
400 処理システム
402 CPU
404 メモリ
410 第0のコア
412 第1のコア
414 第Nのコア
416 第1のDCVSアルゴリズム
417 第2のDCVSアルゴリズム
418 第NのDCVSアルゴリズム
420 オペレーティングシステム
422 スケジューラ
424 第1の実行待ち行列
426 第2の実行待ち行列
428 第Nの実行待ち行列
430 第1のアプリケーション
432 第2のアプリケーション
434 第Nのアプリケーション
436 タスク
440 コントローラ

Claims (24)

  1. 中央処理装置(CPU)内で動的なクロックおよび電圧スケーリング(DCVS)アルゴリズムを実行する方法であって、
    CPUのアクティビティを監視するステップと、
    ワークロードが前記CPUのアクティビティに追加されたとき、前記ワークロードが特殊なワークロードに指定されるかどうかを決定するステップと、
    前記ワークロードが特殊なワークロードに指定されるとき、前記ワークロードに関連付けられた一意の識別子を受信するステップと、
    前記一意の識別子を使用してデータベースを検索するステップと、
    DCVSソリューションが前記ワークロードの前記一意の識別子に関連付けられているかどうかを決定するステップと、
    前記ワークロードが前記ワークロードの前記一意の識別子に関連付けられたDCVSソリューション含まないとき、前記ワークロードの新しいDCVSソリューションを作成すべきかどうかを決定するステップと、
    前記ワークロードの新しいDCVSソリューションを作成すべきであると決定したとき、1つまたは複数のワークロードの要求に基づいて、前記ワークロードの新しいDCVSソリューションを作成するステップと、
    前記ワークロードに関連付けられた前記一意の識別子と併せて前記新しいDCVSソリューションを記憶するステップと、
    記憶された新しいDCVSソリューションに基づいて、前記DCVSアルゴリズムを再調整するステップと、
    再調整されたDCVSアルゴリズムを実行するステップと、
    を含む方法。
  2. 特殊なワークロードが、インパルスワークロード、登録済みワークロード、等時性ワークロード、パルスワークロード、ベストエフォートワークロード、スケジュールワークロード、またはそれらの組合せを含む請求項1に記載の方法。
  3. 前記ワークロードが特殊なワークロードに指定されない場合、変更がないDCVSアルゴリズムを実行するステップ
    をさらに含む請求項1に記載の方法。
  4. 前記ワークロードが前記ワークロードの前記一意の識別子に関連付けられたDCVSソリューションを含むとき、前記ワークロードに関連付けられた前記DCVSソリューションに基づいて前記DCVSアルゴリズムを再調整するステップ
    をさらに含む請求項1に記載の方法。
  5. 再調整されたDCVSアルゴリズムを実行するステップ
    をさらに含む請求項4に記載の方法。
  6. 新しいDCVSソリューションを作成しないことが決定されると、変更がないDCVSアルゴリズムを実行するステップ
    をさらに含む請求項1に記載の方法。
  7. CPUのアクティビティを監視するための手段と、
    ワークロードが前記CPUのアクティビティに追加されたとき、前記ワークロードが特殊なワークロードに指定されるかどうかを決定するための手段と、
    前記ワークロードが特殊なワークロードに指定されるとき、前記ワークロードに関連付けられた一意の識別子を受信するための手段と、
    前記一意の識別子を使用してデータベースを検索するための手段と、
    DCVSソリューションが前記ワークロードの前記一意の識別子に関連付けられているかどうかを決定するための手段と、
    前記ワークロードが前記ワークロードの前記一意の識別子に関連付けられたDCVSソリューション含まないとき、前記ワークロードの新しいDCVSソリューションを作成すべきかどうかを決定するための手段と、
    前記ワークロードの新しいDCVSソリューションを作成すべきであると決定したとき、1つまたは複数のワークロードの要求に基づいて、前記ワークロードの新しいDCVSソリューションを作成するための手段と、
    前記ワークロードに関連付けられた前記一意の識別子と併せて前記新しいDCVSソリューションを記憶するための手段と、
    記憶された新しいDCVSソリューションに基づいて、前記DCVSアルゴリズムを再調整するための手段と、
    再調整されたDCVSアルゴリズムを実行するための手段と
    を含むワイヤレスデバイス。
  8. 特殊なワークロードが、インパルスワークロード、登録済みワークロード、等時性ワークロード、パルスワークロード、ベストエフォートワークロード、スケジュールワークロード、またはそれらの組合せを含む請求項7に記載のワイヤレスデバイス。
  9. 前記ワークロードが特殊なワークロードに指定されない場合、変更がないDCVSアルゴリズムを実行するための手段
    をさらに含む請求項7に記載のワイヤレスデバイス。
  10. 前記ワークロードが前記ワークロードの前記一意の識別子に関連付けられたDCVSソリューションを含むとき、前記ワークロードに関連付けられた前記DCVSソリューションに基づいてDCVSアルゴリズムを再調整するための手段
    をさらに含む請求項7に記載のワイヤレスデバイス。
  11. 再調整されたDCVSアルゴリズムを実行するための手段
    をさらに含む請求項10に記載のワイヤレスデバイス。
  12. 新しいDCVSソリューションを作成しないことが決定されると、変更がないDCVSアルゴリズムを実行するための手段
    をさらに含む請求項7に記載のワイヤレスデバイス。
  13. CPUのアクティビティを監視し、
    ワークロードが前記CPUのアクティビティに追加されたとき、前記ワークロードが特殊なワークロードに指定されるかどうかを決定し、
    前記ワークロードが特殊なワークロードに指定されるとき、前記ワークロードに関連付けられた一意の識別子を受信し、
    前記一意の識別子を使用してデータベースを検索し、
    DCVSソリューションが前記ワークロードの前記一意の識別子に関連付けられているかどうかを決定し、
    前記ワークロードが前記ワークロードの前記一意の識別子に関連付けられたDCVSソリューション含まないとき、前記ワークロードの新しいDCVSソリューションを作成すべきかどうかを決定し、
    前記ワークロードの新しいDCVSソリューションを作成すべきであると決定したとき、1つまたは複数のワークロードの要求に基づいて、前記ワークロードの新しいDCVSソリューションを作成し、
    前記ワークロードに関連付けられた前記一意の識別子と併せて前記新しいDCVSソリューションを記憶し、
    記憶された新しいDCVSソリューションに基づいて、前記DCVSアルゴリズムを再調整し、
    再調整されたDCVSアルゴリズムを実行する
    ように動作可能なプロセッサ
    を含むワイヤレスデバイス。
  14. 特殊なワークロードが、インパルスワークロード、登録済みワークロード、等時性ワークロード、パルスワークロード、ベストエフォートワークロード、スケジュールワークロード、またはそれらの組合せを含む請求項13に記載のワイヤレスデバイス。
  15. 前記プロセッサが、
    前記ワークロードが特殊なワークロードに指定されない場合、変更がないDCVSアルゴリズムを実行する
    ようにさらに動作可能な請求項13に記載のワイヤレスデバイス。
  16. 前記プロセッサが、
    前記ワークロードが前記ワークロードの前記一意の識別子に関連付けられたDCVSソリューションを含むとき、前記ワークロードに関連付けられた前記DCVSソリューションに基づいてDCVSアルゴリズムを再調整する
    ようにさらに動作可能な請求項13に記載のワイヤレスデバイス。
  17. 前記プロセッサが、
    再調整されたDCVSアルゴリズムを実行する
    ようにさらに動作可能な請求項16に記載のワイヤレスデバイス。
  18. 前記プロセッサが、
    新しいDCVSソリューションを作成しないことが決定されると、変更がないDCVSアルゴリズムを実行する
    ようにさらに動作可能な請求項13に記載のワイヤレスデバイス。
  19. プロセッサにより実行可能な命令を記録したプロセッサ読み取り可能な記録媒体において、
    CPUのアクティビティを監視するための少なくとも1つの命令と、
    ワークロードが前記CPUのアクティビティに追加されたとき、前記ワークロードが特殊なワークロードに指定されるかどうかを決定するための少なくとも1つの命令と、
    前記ワークロードが特殊なワークロードに指定されるとき、前記ワークロードに関連付けられた一意の識別子を受信するための少なくとも1つの命令と、
    前記一意の識別子を使用してデータベースを検索するための少なくとも1つの命令と、
    DCVSソリューションが前記ワークロードの前記一意の識別子に関連付けられているかどうかを決定するための少なくとも1つの命令と、
    前記ワークロードが前記ワークロードの前記一意の識別子に関連付けられたDCVSソリューション含まないとき、前記ワークロードの新しいDCVSソリューションを作成すべきかどうかを決定するための少なくとも1つの命令と、
    前記ワークロードの新しいDCVSソリューションを作成すべきであると決定したとき、1つまたは複数のワークロードの要求に基づいて、前記ワークロードの新しいDCVSソリューションを作成するための少なくとも1つの命令と、
    前記ワークロードに関連付けられた前記一意の識別子と併せて前記新しいDCVSソリューションを記憶するための少なくとも1つの命令と、
    記憶された新しいDCVSソリューションに基づいて、前記DCVSアルゴリズムを再調整するための少なくとも1つの命令と、
    再調整されたDCVSアルゴリズムを実行するための少なくとも1つの命令と
    を記録する記録媒体。
  20. 特殊なワークロードが、インパルスワークロード、登録済みワークロード、等時性ワークロード、パルスワークロード、ベストエフォートワークロード、スケジュールワークロード、またはそれらの組合せを含む請求項19に記載の記録媒体。
  21. 前記ワークロードが特殊なワークロードに指定されない場合、変更がないDCVSアルゴリズムを実行するための少なくとも1つの命令
    をさらに記録する請求項19に記載の記録媒体。
  22. 前記ワークロードが前記ワークロードの前記一意の識別子に関連付けられたDCVSソリューションを含むとき、前記ワークロードに関連付けられた前記DCVSソリューションに基づいてDCVSアルゴリズムを再調整するための少なくとも1つの命令
    をさらに記録する請求項19に記載の記録媒体。
  23. 再調整されたDCVSアルゴリズムを実行するための少なくとも1つの命令
    をさらに記録する請求項22に記載の記録媒体。
  24. 新しいDCVSソリューションを作成しないことが決定されると、変更がないDCVSアルゴリズムを実行するための少なくとも1つの命令
    をさらに記録する請求項19に記載の記録媒体。
JP2012548210A 2010-01-11 2011-01-10 プロセッサを動的に制御するシステムおよび方法 Active JP5601731B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US29401910P 2010-01-11 2010-01-11
US61/294,019 2010-01-11
US12/846,058 2010-07-29
US12/846,058 US8671413B2 (en) 2010-01-11 2010-07-29 System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device
PCT/US2011/020696 WO2011085320A1 (en) 2010-01-11 2011-01-10 System and method of dynamically controlling a processor

Publications (2)

Publication Number Publication Date
JP2013516712A JP2013516712A (ja) 2013-05-13
JP5601731B2 true JP5601731B2 (ja) 2014-10-08

Family

ID=44259520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012548210A Active JP5601731B2 (ja) 2010-01-11 2011-01-10 プロセッサを動的に制御するシステムおよび方法

Country Status (6)

Country Link
US (2) US8671413B2 (ja)
EP (1) EP2524274A1 (ja)
JP (1) JP5601731B2 (ja)
KR (1) KR20120116975A (ja)
CN (1) CN102687098B (ja)
WO (1) WO2011085320A1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101648978B1 (ko) * 2009-11-05 2016-08-18 삼성전자주식회사 저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치
US8370665B2 (en) * 2010-01-11 2013-02-05 Qualcomm Incorporated System and method of sampling data within a central processing unit
US8671413B2 (en) * 2010-01-11 2014-03-11 Qualcomm Incorporated System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device
US9086883B2 (en) 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
US20130060555A1 (en) * 2011-06-10 2013-03-07 Qualcomm Incorporated System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains
FR2982386B1 (fr) * 2011-11-08 2016-05-27 Bull Sas Procede, programme d'ordinateur et dispositif d'allocation de ressources informatiques d'un cluster pour l'execution d'un travail soumis audit cluster
US20140089699A1 (en) * 2012-09-27 2014-03-27 Advanced Micro Devices Power management system and method for a processor
CN104699531B (zh) * 2013-12-09 2019-12-13 超威半导体公司 3d芯片系统中的电压下降缓解
KR101842016B1 (ko) * 2013-12-10 2018-03-28 한국전자통신연구원 멀티 코어 환경에서의 동적 전력 제어방법
CN103746721B (zh) * 2013-12-30 2016-08-17 深圳市广和通无线股份有限公司 无线通信模块
US9378536B2 (en) * 2014-04-30 2016-06-28 Qualcomm Incorporated CPU/GPU DCVS co-optimization for reducing power consumption in graphics frame processing
CN104007806B (zh) * 2014-06-20 2017-10-24 中科创达软件股份有限公司 一种安卓系统中的cpu频率的控制方法、装置和设备
US11244264B2 (en) 2014-12-29 2022-02-08 Hand Held Products, Inc. Interleaving surprise activities in workflow
US9851774B2 (en) 2016-01-04 2017-12-26 Qualcomm Incorporated Method and apparatus for dynamic clock and voltage scaling in a computer processor based on program phase
US10146286B2 (en) * 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor
US10310572B2 (en) 2016-06-10 2019-06-04 Microsoft Technology Licensing, Llc Voltage based thermal control of processing device
US10338670B2 (en) 2016-06-10 2019-07-02 Microsoft Technology Licensing, Llc Input voltage reduction for processing devices
US10209726B2 (en) 2016-06-10 2019-02-19 Microsoft Technology Licensing, Llc Secure input voltage adjustment in processing devices
US10248186B2 (en) 2016-06-10 2019-04-02 Microsoft Technology Licensing, Llc Processor device voltage characterization
US10387234B2 (en) * 2016-08-05 2019-08-20 Arm Limited Apparatus and method for controlling a power supply to processing circuitry to avoid a potential temporary insufficiency in supply of power
KR20180076840A (ko) 2016-12-28 2018-07-06 삼성전자주식회사 Dvfs 동작을 수행하는 어플리케이션 프로세서, 이를 포함하는 컴퓨팅 시스템 및 이의 동작 방법
KR20180078558A (ko) 2016-12-30 2018-07-10 삼성전자주식회사 시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템
DE102017128711A1 (de) 2017-05-24 2018-11-29 Tu Dresden Mehrkernprozessor und Verfahren zur dynamischen Einstellung einer Versorgungsspannung und einer Taktfrequenz
GB2569109B (en) * 2017-11-30 2021-03-31 Samsung Electronics Co Ltd Setting operating system parameters based on workload types
US11269656B2 (en) 2017-11-30 2022-03-08 Samsung Electronics Co., Ltd. Method and device for setting operating system
US10627885B2 (en) * 2018-01-09 2020-04-21 Intel Corporation Hybrid prioritized resource allocation in thermally- or power-constrained computing devices
KR102568686B1 (ko) 2018-02-09 2023-08-23 삼성전자주식회사 컨텍스트 허브를 포함하는 모바일 장치 및 그것의 동작 방법
WO2020082757A1 (en) * 2018-10-26 2020-04-30 Huawei Technologies Co., Ltd. Energy efficiency adjustments for cpu governor
CN110134217B (zh) * 2019-04-10 2021-03-23 深圳市普威技术有限公司 一种cpu功耗管理装置
WO2021011577A1 (en) * 2019-07-15 2021-01-21 Intel Corporation Dynamic energy performance preference based on workloads using an adaptive algorithm
US20230058700A1 (en) * 2021-08-17 2023-02-23 Bank Of America Corporation System and method for dynamically mapping and routing workload requirements to appropriate computing components

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5408663A (en) * 1993-11-05 1995-04-18 Adrem Technologies, Inc. Resource allocation methods
TW282525B (ja) 1994-06-17 1996-08-01 Intel Corp
EP0727728A1 (en) 1995-02-15 1996-08-21 International Business Machines Corporation Computer system power management
US5623647A (en) * 1995-03-07 1997-04-22 Intel Corporation Application specific clock throttling
JP2900997B2 (ja) * 1996-11-06 1999-06-02 富士通株式会社 表示ユニットの消費電力制御のための方法と装置、それを備えた表示システム及びそれを実現するプログラムを格納した記憶媒体
JP3961619B2 (ja) 1997-06-03 2007-08-22 株式会社東芝 コンピュータシステムおよびその処理速度制御方法
US6928559B1 (en) 1997-06-27 2005-08-09 Broadcom Corporation Battery powered device with dynamic power and performance management
FI117523B (fi) 1998-10-07 2006-11-15 Nokia Corp Menetelmä tehonkulutuksen säätämiseksi
US6298448B1 (en) * 1998-12-21 2001-10-02 Siemens Information And Communication Networks, Inc. Apparatus and method for automatic CPU speed control based on application-specific criteria
US6684341B1 (en) 2000-03-09 2004-01-27 International Business Machines Corporation Method of altering the appearance of an icon of a program to provide an indication to a user that a power management is associated with the particular program
KR100361340B1 (ko) * 2000-05-15 2002-12-05 엘지전자 주식회사 씨피유 클럭 제어 방법
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US6901446B2 (en) 2001-02-28 2005-05-31 Microsoft Corp. System and method for describing and automatically managing resources
US7017060B2 (en) 2001-03-19 2006-03-21 Intel Corporation Power management system that changes processor level if processor utilization crosses threshold over a period that is different for switching up or down
US7694303B2 (en) * 2001-09-25 2010-04-06 Sun Microsystems, Inc. Method for dynamic optimization of multiplexed resource partitions
US6515530B1 (en) * 2001-10-11 2003-02-04 International Business Machines Corporation Dynamically scalable low voltage clock generation system
JP3692089B2 (ja) * 2002-04-02 2005-09-07 株式会社東芝 消費電力制御方法及び情報処理装置
AUPS236502A0 (en) 2002-05-16 2002-06-13 Peterson, Paul Method of monitoring measurements
US7278136B2 (en) * 2002-07-09 2007-10-02 University Of Massachusetts Reducing processor energy consumption using compile-time information
US7155617B2 (en) * 2002-08-01 2006-12-26 Texas Instruments Incorporated Methods and systems for performing dynamic power management via frequency and voltage scaling
US7174468B2 (en) 2002-08-01 2007-02-06 Texas Instruments Incorporated Methodology for coordinating and tuning application power
US7131015B2 (en) * 2002-11-12 2006-10-31 Arm Limited Performance level selection in a data processing system using a plurality of performance request calculating algorithms
US7194385B2 (en) * 2002-11-12 2007-03-20 Arm Limited Performance level setting of a data processing system
US7321942B2 (en) * 2002-11-12 2008-01-22 Arm Limited Performance counter for adding variable work increment value that is dependent upon clock frequency
US7783759B2 (en) * 2002-12-10 2010-08-24 International Business Machines Corporation Methods and apparatus for dynamic allocation of servers to a plurality of customers to maximize the revenue of a server farm
US7539994B2 (en) 2003-01-03 2009-05-26 Intel Corporation Dynamic performance and resource management in a processing system
CN1759368A (zh) 2003-01-23 2006-04-12 罗切斯特大学 多时钟域微处理器
US7583555B2 (en) * 2003-04-11 2009-09-01 Qualcomm Incorporated Robust and Efficient dynamic voltage scaling for portable devices
KR100940260B1 (ko) * 2003-07-14 2010-02-04 삼성전자주식회사 다이나믹 주파수 스케일링에 따라 동작 모드의 제어가가능한 반도체 시스템 및 동작 모드 제어 방법
US7437580B2 (en) * 2004-05-05 2008-10-14 Qualcomm Incorporated Dynamic voltage scaling system
KR100716730B1 (ko) * 2004-06-11 2007-05-14 삼성전자주식회사 중앙 처리 장치의 아이들 상태에서의 시스템 전력 소모절감을 위한 방법 및 그 방법을 적용한 모바일 장치
US7505795B1 (en) * 2004-07-07 2009-03-17 Advanced Micro Devices, Inc. Power save management with customized range for user configuration and tuning value based upon recent usage
US9250967B2 (en) * 2004-08-23 2016-02-02 Palo Alto Research Center Incorporated Model-based planning with multi-capacity resources
US7711966B2 (en) 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
WO2006056824A2 (en) 2004-09-10 2006-06-01 Freescale Semiconductor, Inc. Apparatus and method for controlling voltage and frequency
US7386739B2 (en) * 2005-05-03 2008-06-10 International Business Machines Corporation Scheduling processor voltages and frequencies based on performance prediction and power constraints
WO2007049100A1 (en) * 2005-10-27 2007-05-03 Freescale Semiconductor, Inc. System and method for controlling voltage level and clock frequency supplied to a system
KR100806284B1 (ko) * 2005-12-08 2008-02-22 한국전자통신연구원 동적 전압 스케일링을 적용한 고효율 프로세서
TW200746161A (en) * 2005-12-21 2007-12-16 Nxp Bv Power partitioning memory banks
TW200805047A (en) 2005-12-23 2008-01-16 Koninkl Philips Electronics Nv Performance analysis based system level power management
US8181051B2 (en) 2006-02-09 2012-05-15 Freescale Semiconductor, Inc. Electronic apparatus and method of conserving energy
US20070226741A1 (en) * 2006-03-22 2007-09-27 Seshadri Padmanabha V Power management based on dynamic frequency scaling in computing systems
DE102006014037A1 (de) * 2006-03-27 2007-10-11 Infineon Technologies Ag Integrierter Schaltkreis und Verfahren zum Ermitteln eines Betriebsbereichs eines integrierten Schaltkreises
US7721127B2 (en) * 2006-03-28 2010-05-18 Mips Technologies, Inc. Multithreaded dynamic voltage-frequency scaling microprocessor
US7624287B2 (en) * 2006-08-30 2009-11-24 Ati Technologies Ulc Adaptive power state management
US8565943B2 (en) 2006-09-25 2013-10-22 Appereo Systems, LLC Fleet operations quality management system
US7840825B2 (en) * 2006-10-24 2010-11-23 International Business Machines Corporation Method for autonomous dynamic voltage and frequency scaling of microprocessors
US8255915B1 (en) * 2006-10-31 2012-08-28 Hewlett-Packard Development Company, L.P. Workload management for computer system with container hierarchy and workload-group policies
JP5524623B2 (ja) 2006-11-29 2014-06-18 アギア システムズ インコーポレーテッド 動的電力制御及び適応的電力制御のためのスピード・ビニング
US7463096B2 (en) * 2006-12-07 2008-12-09 Taiwan Semiconductor Manufacturing Co., Ltd. Dynamic voltage and frequency management in integrated circuits
TWI326818B (en) * 2006-12-15 2010-07-01 Inst Information Industry Dynamic voltage scheduling method, system thereof and record medium
GB2445167A (en) * 2006-12-29 2008-07-02 Advanced Risc Mach Ltd Managing performance of a processor
US7821350B2 (en) * 2007-01-19 2010-10-26 Qualcomm Incorporated Methods and apparatus for dynamic frequency scaling of phase locked loops for microprocessors
US8145918B2 (en) * 2007-06-28 2012-03-27 International Business Machines Corporation Monitoring system processes energy consumption
WO2009010920A2 (en) * 2007-07-19 2009-01-22 Nxp B.V. Semi-adaptive voltage scaling for low-energy digital vlsi-design
US7913071B2 (en) * 2007-07-31 2011-03-22 Northwestern University Systems and methods for process and user driven dynamic voltage and frequency scaling
JP2009042187A (ja) * 2007-08-10 2009-02-26 Aisin Aw Co Ltd ナビゲーション装置、及びナビゲーションプログラム
US20090049314A1 (en) * 2007-08-13 2009-02-19 Ali Taha Method and System for Dynamic Voltage and Frequency Scaling (DVFS)
GB2452778A (en) * 2007-09-17 2009-03-18 Toshiba Res Europ Ltd Linking dynamic voltage scaling in master and slave modules
US7930573B2 (en) * 2007-09-18 2011-04-19 International Business Machines Corporation Workload apportionment according to mean and variance
US7622979B2 (en) * 2007-10-31 2009-11-24 Sun Microsytems, Inc. Dynamic voltage scaling for self-timed or racing paths
US8370663B2 (en) * 2008-02-11 2013-02-05 Nvidia Corporation Power management with dynamic frequency adjustments
US8239694B2 (en) * 2008-03-31 2012-08-07 Qualcomm, Incorporated Dynamic frequency scaling of a switched mode power supply
US8635625B2 (en) 2008-04-04 2014-01-21 International Business Machines Corporation Power-aware workload allocation in performance-managed computing environments
US20090258641A1 (en) * 2008-04-13 2009-10-15 Toshiba America Research, Inc. Multi-interface parsable mobile devices (pmd) for energy conservation and services enhancement
KR101592055B1 (ko) 2008-05-13 2016-02-04 시놉시스, 인크. 전력 관리자, 전자 시스템, 전력을 관리하는 방법 및 컴퓨터 프로그램 제품
US8032317B2 (en) 2008-05-15 2011-10-04 The Nielsen Company (Us), Llc System and methods for metering and analyzing energy consumption of events within a portable device
US8127160B2 (en) * 2008-10-13 2012-02-28 International Business Machines Corporation Dynamic frequency and voltage scaling for a computer processor
US8261112B2 (en) * 2008-12-08 2012-09-04 International Business Machines Corporation Optimizing power consumption by tracking how program runtime performance metrics respond to changes in operating frequency
US8250384B2 (en) * 2009-01-05 2012-08-21 International Business Machines Corporation Optimizer mechanism to increase battery length for mobile devices
US9231630B2 (en) * 2009-05-05 2016-01-05 San Diego, CA Radio device having dynamic intermediate frequency scaling
US8009090B2 (en) * 2009-05-05 2011-08-30 Sirf Technology, Inc. System and method for dynamic voltage scaling in a GPS receiver
KR101533572B1 (ko) * 2009-05-20 2015-07-03 삼성전자주식회사 전력 관리 방법
US8661274B2 (en) * 2009-07-02 2014-02-25 Qualcomm Incorporated Temperature compensating adaptive voltage scalers (AVSs), systems, and methods
US8117469B2 (en) 2009-07-10 2012-02-14 Packet Digital Automatically determining operating parameters of a power management device
US8924902B2 (en) * 2010-01-06 2014-12-30 Qualcomm Incorporated Methods and circuits for optimizing performance and power consumption in a design and circuit employing lower threshold voltage (LVT) devices
US8671413B2 (en) 2010-01-11 2014-03-11 Qualcomm Incorporated System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device
US8745629B2 (en) * 2010-01-11 2014-06-03 Qualcomm Incorporated System and method of controlling power in an electronic device
US8700926B2 (en) * 2010-01-11 2014-04-15 Qualcomm Incorporated System and method of tuning a dynamic clock and voltage switching algorithm based on workload requests
US8510740B2 (en) * 2010-09-16 2013-08-13 Qualcomm Incorporated System and method of performing dynamic voltage and frequency scaling operations on a mobile device

Also Published As

Publication number Publication date
US8996595B2 (en) 2015-03-31
KR20120116975A (ko) 2012-10-23
US20130132973A1 (en) 2013-05-23
CN102687098B (zh) 2015-06-17
JP2013516712A (ja) 2013-05-13
US8671413B2 (en) 2014-03-11
WO2011085320A1 (en) 2011-07-14
US20110173617A1 (en) 2011-07-14
CN102687098A (zh) 2012-09-19
EP2524274A1 (en) 2012-11-21

Similar Documents

Publication Publication Date Title
JP5601731B2 (ja) プロセッサを動的に制御するシステムおよび方法
US9176572B2 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
EP2513746B1 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
US9081558B2 (en) System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on tempature
US9104411B2 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
US8689037B2 (en) System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
KR101411729B1 (ko) 감소된 주파수 발진들을 갖는 중앙 처리 장치 전력을 제어하기 위한 시스템 및 방법
KR101516859B1 (ko) 보장된 정상 상태 데드라인을 가진 중앙 처리 장치 전력을 제어하는 시스템 및 방법
EP2954385A1 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
JP5460883B2 (ja) ワークロードの要求に基づいて動的なクロックおよび電圧切替えアルゴリズムを調整するシステムおよび方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140626

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140818

R150 Certificate of patent or registration of utility model

Ref document number: 5601731

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