説明

ワークロードの要求に基づいて動的なクロックおよび電圧切替えアルゴリズムを調整するシステムおよび方法

動的なクロックおよび電圧切替えアルゴリズムを調整する方法が開示されており、デフォルトの応答度を設定するステップと、ワークロードが追加された後、ワークロードが登録しているかどうかを決定するステップと、ワークロードが登録している場合、一意の識別子をワークロードに割り当てるステップと、ワークロードから必要な応答度を受信するステップとを含み得る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ワークロードの要求に基づいて動的なクロックおよび電圧切替えアルゴリズムを調整するシステムおよび方法に関する。
関連出願
本出願は、その内容が参照により完全に組み込まれる、2010年1月11日に出願された「SYSTEM AND METHOD OF TUNING A DYNAMIC CLOCK AND VOLTAGE SWITCHING ALGORITHM BASED ON WORKLOAD REQUESTS」という名称の米国仮特許出願第61/294,026号の優先権を主張する。
【背景技術】
【0002】
ポータブルコンピューティングデバイス(PD)は至る所にある。これらのデバイスには、携帯電話、携帯情報端末(PDA)、ポータブルゲーム機、パームトップコンピュータ、および他のポータブル電子デバイスなどがある。これらのデバイスの主要機能に加えて、多くは周辺機能を含む。例えば、携帯電話は、携帯電話をかけるという主要機能、およびスチールカメラ、ビデオカメラ、全地球測位システム(GPS)ナビゲーション、ウェブブラウジング、電子メールの送受信、テキストメッセージの送受信、プッシュツートーク機能などの周辺機能を含み得る。こうしたデバイスの機能が増加するにつれて、こうした機能をサポートために必要な計算または処理能力も増加する。さらに、計算能力が増加するにつれて、計算能力を提供する1つまたは複数のプロセッサを効果的に管理する必要性がより高くなる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
したがって、動的なクロックおよび電圧切替えアルゴリズムを調整する改良された方法が必要である。
【課題を解決するための手段】
【0004】
特許請求の範囲に記載の手段によって上記課題を解決する。
図中、別段に規定されていない限り、類似の参照番号は、様々な図の全体を通じて、類似の部分を指す。
【図面の簡単な説明】
【0005】
【図1】閉位置のポータブルコンピューティングデバイス(PCD)の第1の態様を示す正面図である。
【図2】開位置のPCDの第1の態様を示す正面図である。
【図3】PCDの第2の態様を示すブロック図である。
【図4】処理システムを示すブロック図である。
【図5】ワークロードを登録する方法を示すフローチャートである。
【図6】ワークロードの要求に基づいて動的なクロックおよび電圧切替えアルゴリズムを調整する方法の第1の部分を示すフローチャートである。
【図7】ワークロードの要求に基づいて動的なクロックおよび電圧切替えアルゴリズムを調整する方法の第2の部分を示すフローチャートである。
【図8】時間に対してプロットされた中央処理装置のワークロードならびに動的なクロックおよび電圧スケーリングアルゴリズムの応答度(responsivity)を示すグラフである。
【発明を実施するための形態】
【0006】
「例示」という語は、本明細書では、「例、実例、または例証の役割を果たす」ことを意味するために使用される。本明細書で「例示」として説明する任意の態様を、必ずしも他の態様より好ましい、または有利であると解釈すべきというわけではない。
【0007】
この説明では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルも含み得る。さらに、本明細書で言及される「アプリケーション」は、例えば開く必要があり得る文書またはアクセスする必要がある他のデータファイルなど、本質的に実行可能ではないファイルも含み得る。
【0008】
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなど、実行可能なコンテンツを有するファイルも含み得る。さらに、本明細書で言及される「コンテンツ」は、例えば開く必要があり得る文書またはアクセスする必要がある他のデータファイルなど、本質的に実行可能ではないファイルも含み得る。
【0009】
この説明で使用される場合、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアとの組合せ、ソフトウェア、または実行中のソフトウェアなどコンピュータ関連のエンティティを指すものとする。例えば、構成要素は、限定はしないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができる。例として、コンピューティングデバイス上で動作するアプリケーションおよびコンピューティングデバイスはいずれも構成要素とすることができる。1つまたは複数の構成要素がプロセスおよび/または実行スレッド内に存在する可能性があり、1つの構成要素が1つのコンピュータ上に局在化されてもよく、および/または2つ以上のコンピュータ間に分散されてもよい。さらに、これらの構成要素は、様々なデータ構造が記憶される様々なコンピュータ可読媒体から実行することができる。構成要素は、(例えばローカルシステム、分散システム、および/またはインターネットなど他のシステムを含むネットワーク上でその信号によって別の構成要素と対話する1つの構成要素からのデータなど)例えば1つまたは複数のデータパケットを有する信号によるなど、ローカルおよび/またはリモートのプロセスによって通信することができる。
【0010】
最初に図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)でもよい。
【0011】
特定の態様において、図2に示されるように、上側ハウジング部104は、下側ハウジング部106に対して移動可能である。具体的には、上側ハウジング部104は、下側ハウジング部106に対して摺動可能でもよい。図2に示されるように、下側ハウジング部106は、マルチボタンキーボード120を含むことができる。特定の態様において、マルチボタンキーボード120は、標準QWERTYキーボードでもよい。上側ハウジング部104を下側ハウジング部106に対して移動させると、マルチボタンキーボード120が現れ得る。図2は、PCD100が下側ハウジング部106上にリセットボタン122を含み得ることをさらに示す。
【0012】
図3を参照すると、ポータブルコンピューティングデバイス(PCD)の例示の非限定的な態様が示されており、全体的に320と表される。図示のように、PCD320は、マルチコアCPU324を含むオンチップシステム322を含む。マルチコアCPU324は、第0のコア325、第1のコア326、および第Nのコア327を含み得る。
【0013】
図3に示されるように、ディスプレイコントローラ328およびタッチスクリーンコントローラ330は、マルチコアCPU324に結合される。次に、オンチップシステム322の外部のタッチスクリーンディスプレイ332は、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合される。
【0014】
図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)カメラである。
【0015】
図3にさらに示されるように、ステレオオーディオコーデック350は、マルチコアCPU324に結合され得る。さらに、オーディオ増幅器352は、ステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカ354および第2のステレオスピーカ356は、オーディオ増幅器352に結合される。図3は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合され得ることを示す。さらに、マイクロフォン360は、マイクロフォン増幅器358に結合され得る。特定の態様において、周波数変調(FM)無線チューナ362は、ステレオオーディオコーデック350に結合され得る。また、FMアンテナ364は、FM無線チューナ362に結合される。さらに、ステレオヘッドフォン366は、ステレオオーディオコーデック350に結合され得る。
【0016】
図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バッテリである。
【0017】
図3は、PCD320が、例えばローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークなど、データネットワークにアクセスするために使用され得るネットワークカード388も含み得ることをさらに示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、または当技術分野で知られている任意の他のネットワークカードとすることができる。さらに、ネットワークカード388は、チップに組み込むことができ、すなわち、ネットワークカード388は、チップでのフルソリューションとすることができ、個別のネットワークカード388でなくてもよい。
【0018】
図3に示されるように、タッチスクリーンディスプレイ332、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカ354、第2のステレオスピーカ356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378、および電源装置380は、オンチップシステム322の外部にある。
【0019】
特定の態様において、本明細書で説明する方法ステップのうちの1つまたは複数は、コンピュータプログラム命令としてメモリ344に記憶され得る。これらの命令は、本明細書で説明する方法を実行するために、マルチコアCPU324によって実行され得る。さらに、マルチコアCPU324、メモリ344、またはそれらの組合せは、1つまたは複数のワークロードの要求に基づいて、動的なクロックおよび電圧切替え(DCVS)アルゴリズムを調整するために、本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として働き得る。
【0020】
図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上で独立して実行され得る。
【0021】
さらに、図示のように、メモリ404には、オペレーティングシステム420が記憶されていてもよい。オペレーティングシステム420は、スケジューラ422を含むことができ、スケジューラ422は、第1の実行待ち行列(run queue)424、第2の実行待ち行列426、および第Nの実行待ち行列428を含むことができる。また、メモリ404には、第1のアプリケーション430、第2のアプリケーション432、および第Nのアプリケーション434が記憶されていてもよい。
【0022】
特定の態様において、アプリケーション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からタスク、スレッド、またはそれらの組合せを取り出すことができる。
【0023】
図4は、メモリ404にコントローラ440が記憶され得ることも示す。コントローラ440は、オペレーティングシステム420およびマルチコアCPU402に接続され得る。具体的には、コントローラ440は、オペレーティングシステム420内のスケジューラ422に接続され得る。本明細書で説明するように、例えば、スケジューラ420および実行待ち行列424、426、428を監視することによって、コントローラ440は、コア410、412、414上のワークロードを監視することができる。コントローラ440は、以下で詳細に説明するように、各アプリケーション430、432、434からのワークロードに基づいて、各コア410、412、414上で動作するDCVSアルゴリズム416、417、418を調整することができる。
【0024】
特定の態様において、コントローラ440は、ソフトウェアプログラムでもよい。しかし、代替態様では、コントローラ440は、メモリ404の外部にあるハードウェアコントローラとすることができる。いずれにせよ、コントローラ440、メモリ404、コア410、412、414、またはそれらの任意の組合せは、1つまたは複数のワークロードの要求に基づいて、動的なクロックおよび電圧切替え(DCVS)アルゴリズムを調整するために、本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として働き得る。
【0025】
図5を参照すると、ワークロードを登録する方法が示されており、全体的に500と表される。方法500は、ブロック502でDOループで開始し、デバイスが電源投入されると、以下のステップが実行され得る。ブロック504で、コントローラによって、遅延が実施され得る。遅延は、固定された所定の期間、例えば60秒とすることができる。代わりに、遅延は、例えばブートの終了など、明示的なイベントの後に終了するようにしてもよい。ブロック506に移動して、コントローラは、CPUのアクティビティを監視することができる。このアクティビティは、シングルコアCPU、マルチコアCPU、複数のシングルコアCPU、複数のマルチコアCPU、またはそれらの組合せのアクティビティとすることができる。さらに、コントローラは、ソフトウェアコントローラ、ハードウェアコントローラ、またはそれらの組合せとすることができる。
【0026】
決定508で、コントローラは、ワークロードが追加されたかどうかを決定することができる。ワークロードは、ビデオアプリケーション、音声アプリケーション、電子メールアプリケーション、ワイヤレスネットワークアプリケーション、セルラーネットワークアプリケーション、ショートメッセージサービス(SMS)アプリケーション、通信アプリケーション、セキュリティアプリケーション、カレンダアプリケーション、インスタントメッセージングアプリケーション、スチールカメラアプリケーション、全地球測位システム(GPS)アプリケーション、ブラウザアプリケーション、メモ帳アプリケーション、クロックアプリケーション、ゲームアプリケーション、計算機アプリケーション、銀行業務アプリケーション、パスワードキーパーアプリケーション、ヘルプアプリケーション、電子商取引アプリケーション、ソフトウェア配信アプリケーション、検索アプリケーション、オプションアプリケーション、確立アプリケーション、電話アプリケーション、接続管理アプリケーション、セキュリティアプリケーション、任意の他のアプリケーション、またはそれらの組合せとすることができる。
【0027】
特定の態様において、決定508でワークロードが追加されていない場合、方法500は、ブロック506に戻ることができ、本明細書で説明するように継続することができる。そうでない場合、決定508で、ワークロードが追加されている場合、方法500は、決定510に進むことができ、コントローラは、ワークロードがコントローラに登録しているかどうかを決定することができる。ワークロードが登録していない場合、方法500は、決定511に進むことができる。決定511で、コントローラは、デバイスが電源切断されたかどうかを決定することができる。そうであれば、方法500は、終了することができる。そうでない場合、デバイスが電源投入されたままである場合、方法500はブロック506に戻ることができ、コントローラは、決定508で別のワークロードが追加されたことを決定するまで、CPUのアクティビティを監視し続けることができる。
【0028】
決定510に戻って、ワークロードがコントローラに登録している場合、方法500は、ブロック512に進むことができ、コントローラは、ワークロードの登録を受信することができる。ブロック514で、コントローラは、ワークロードの一意の識別子を決定することができる。次に、ブロック516で、コントローラは、一意の識別子をワークロードに割り当てることができる。
【0029】
ブロック518に進むと、コントローラは、ワークロードの要求を受信することができる。ワークロードの要求は、例えば、必要な応答度を含むことができる。応答度は、システム設定の変化率でもよい。例えば、応答度は、CPU周波数の変化率、電圧の変化率、またはそれらの組合せでもよい。さらに、応答度は、ミリ秒で表される最大遅延、ミリ秒当たりの周波数(MHz/ms)として表されるCPUスルーレート範囲(slew rate bound)、またはそれらの組合せでもよい。
【0030】
ブロック520に移動して、ワークロードの1つまたは複数の要求がコントローラによって提供され得る、すなわち、コントローラは、動的なクロックおよび電圧スケーリング(DCVS)アルゴリズムに、ワークロードで示される応答度を提供するように指示することができる。その後、方法500は、決定522に進むことができる。決定522で、コントローラは、ワークロードが終了しているかどうか、すなわち、もはや稼働していないかどうかを決定することができる。ワークロードが終了していない、すなわち、まだ稼働している場合、方法500は、決定524に進むことができ、コントローラは、新しいワークロードの要求が受信されたかどうかを決定することができる。そうであれば、方法500は、ブロック526に移動することができ、コントローラは、前のワークロードの要求をキャンセルすることができる。次に、方法500は、ブロック520に戻ることができ、説明したように継続することができる。
【0031】
決定524に戻ると、新しいワークロードの要求が受信されていない場合、方法500は、ブロック520に戻り、説明したように継続することができる。決定522に戻ると、ワークロードが終了している場合、方法500は、決定511に移動することができ、本明細書で説明するように継続することができる。
【0032】
図6を参照すると、ワークロードの要求に基づいて動的なクロックおよび電圧切替えアルゴリズムを調整する方法が示されており、全体的に600と表される。方法600は、ブロック602でDOループで開始し、デバイスが電源投入されると、以下のステップが実行され得る。ブロック603で、コントローラによって、遅延が実施され得る。遅延は、固定された所定の期間、例えば60秒とすることができる。代わりに、遅延は、例えばブートの終了など、明示的なイベントの後に終了するようにしてもよい。
【0033】
ブロック604で、コントローラは、デフォルトの応答度、例えば、デフォルトの周波数、デフォルトの電圧、またはそれらの組合せを設定することができる。ブロック606に移動して、コントローラは、CPUのアクティビティを監視することができる。このアクティビティは、シングルコアCPU、マルチコアCPU、複数のシングルコアCPU、複数のマルチコアCPU、またはそれらの組合せのアクティビティとすることができる。さらに、コントローラは、ソフトウェアコントローラ、ハードウェアコントローラ、またはそれらの組合せとすることができる。
【0034】
決定608で、コントローラは、ワークロードが追加されたかどうかを決定することができる。ワークロードは、ビデオアプリケーション、音声アプリケーション、電子メールアプリケーション、ワイヤレスネットワークアプリケーション、セルラーネットワークアプリケーション、ショートメッセージサービス(SMS)アプリケーション、通信アプリケーション、セキュリティアプリケーション、カレンダアプリケーション、インスタントメッセージングアプリケーション、スチールカメラアプリケーション、全地球測位システム(GPS)アプリケーション、ブラウザアプリケーション、メモ帳アプリケーション、クロックアプリケーション、ゲームアプリケーション、計算機アプリケーション、銀行業務アプリケーション、パスワードキーパーアプリケーション、ヘルプアプリケーション、電子商取引アプリケーション、ソフトウェア配信アプリケーション、検索アプリケーション、オプションアプリケーション、確立アプリケーション、電話アプリケーション、接続管理アプリケーション、セキュリティアプリケーション、任意の他のアプリケーション、またはそれらの組合せとすることができる。
【0035】
決定608で、ワークロードが追加されていない場合、方法600は、ブロック606に戻ることができ、本明細書で説明するように継続することができる。反対に、決定608で、ワークロードが追加されている場合、方法600は、決定610に進むことができ、コントローラは、ワークロードが登録しているかどうかを決定することができる。決定610で、ワークロードが登録されていない場合、方法600は、ブロック612に進むことができ、コントローラは、現在の応答度をワークロードに提供することができる。方法600の最初の繰返しでは、現在の応答度は、デフォルトの応答度とすることができる。その後の繰返しでは、その必要な応答度がデフォルトの応答度よりも大きい場合、現在の応答度は、別の登録されたワークロードに関連付けられた必要な応答度であり得る。
【0036】
決定610に戻ると、ワークロードがコントローラに登録している場合、方法600は、ブロック614に進むことができ、コントローラは、一意の識別子をワークロードに割り当てることができる。次いで、ブロック616で、コントローラは、ワークロードから直接、ワークロードの応答度の要求を受信することができる。
【0037】
代わりに、ワークロードがコントローラに連絡するとき、ワークロードは、一意の識別子をコントローラにサブミットすることができる。次いで、コントローラは、一意の識別子を使用して、ワークロードがコントローラまたはいくつかの関連する制御システムに登録されているかどうかを決定することができる。例えば、コントローラは、一意の識別子でテーブルまたはデータベースを検索することができ、コントローラがテーブルまたはデータベース内に一致する一意の識別子を探し出した場合、ワークロードは登録されているとみなされ得る。ワークロードが登録されている場合、コントローラは、テーブルまたはデータベースから応答度の要求を決定することができ、すなわち、応答度の要求は、一意の識別子に関連してテーブルまたはデータベースに格納され得る。
【0038】
決定618に進むと、コントローラは、必要な応答度が現在の応答度よりも大きいかどうかを決定することができる。必要な応答度が現在の応答度以下である場合、方法600は、ブロック614に戻ることができ、コントローラは、現在の応答度を登録されたワークロードに提供することができる。そうでない場合、必要な応答度が現在の応答度よりも大きい場合、方法600は、ブロック620に進み、コントローラは、動的なクロックおよび電圧スケーリング(DCVS)アルゴリズムを、必要な、すなわちより高い応答度に調整することができる。その後、ブロック622で、コントローラは、より高い応答度をワークロードに提供することができる。方法600は、ブロック622から、図7の決定702に進むことができる。
【0039】
決定702で、コントローラは、ワークロードが削除されたかどうか、すなわち、ワークロードが終了または終止しているかどうかを決定することができる。ワークロードが削除された場合、方法600は、ブロック704に進むことができ、コントローラは、最も高い残りの必要な応答度を決定することができる。任意のワークロードからの必要な応答度がもはやない場合、最も高い残りの応答度がデフォルトの応答度である。
【0040】
ブロック706で、コントローラは、デフォルトの応答度を下回ることなく、最も高い残りの必要な応答度にDCVSを調整することができる。次いで、ブロック708で、コントローラは、最も高い残りの応答度を1つまたは複数のワークロードに提供することができる。
【0041】
決定710に移動して、コントローラは、デバイスが電源切断されたかどうかを決定することができる。デバイスが電源切断されていない場合、方法600は、図6のブロック606に戻ることができ、本明細書で説明するように継続することができる。代わりに、決定710で、デバイスが電源切断された場合、方法600は、終了することができる。
【0042】
決定702に戻ると、ワークロードが削除されていない場合、方法600は、決定712に進むことができ、コントローラは、応答度低減要求が現在の応答度に関連付けられたワークロードから受信されたかどうかを決定することができる。そうであれば、方法600は、ブロック704に移動することができ、説明したように継続することができる。そうでない場合、方法はブロック714に移動することができ、コントローラは、現在の応答度を維持することができる。次いで、方法600は、図6のブロック606に戻ることができ、説明したように継続することができる。
【0043】
図8を参照すると、ワークロード/DCVS応答グラフが示されており、全体的に800と表される。図示のように、ワークロード/DCVS応答グラフ800は、ワークロードインジケータ802およびDCVS応答インジケータ804を含む。ワークロードインジケータ802は、第1のビジーサイクル810、第2のビジーサイクル812、第3のビジーサイクル814、第4のビジーサイクル816、および第5のビジーサイクル818を含み得る。さらに、DCV応答インジケータ804は、第1のDCVS応答820、第2のDCVS応答822、第3のDCVS応答824、第4のDCVS応答826、および第5のDCVS応答828を含み得る。
【0044】
特定の態様において、第1のDCVS応答820は第1のビジーサイクル810に対応し、第2のDCVS応答822は第2のビジーサイクル812に対応し、第3のDCVS応答824は第3のビジーサイクル814に対応し、第4のDCVS応答826は第4のビジーサイクル816に対応し、第5のDCVS応答828は第5のビジーサイクル818に対応する。
【0045】
第1のビジーサイクル810および第2のビジーサイクル812の間、1つまたは複数のワークロードは、未登録であり得る。したがって、第1のDCVS応答820および第2のDCVS応答822は、デフォルトの応答、例えば、デフォルトのCPU周波数の変化率、デフォルトの電圧の変化率、またはそれらの組合せとすることができる。第3のビジーサイクル814の間、未登録のワークロードおよび第1の登録されたワークロードが実行され得る。第1の登録されたワークロードの要求は、デフォルトのレートよりも大きくてもよい。したがって、第3のビジーサイクル814の開始時に、第1の登録されたワークロードの要求が適用され、第3のDCVS応答824は、第1の登録されたワークロードの要求を提供することができる。したがって、第3のDCVS応答824は、未登録のワークロードの要求および第1の登録されたワークロードを提供する。
【0046】
第4のビジーサイクル816の間、未登録のワークロード、第1の登録されたワークロード、および第2の登録されたワークロードが実行され得る。第2の登録されたワークロードの要求は、デフォルトのレートおよび第1の登録されたワークロードの要求よりも大きくてもよい。したがって、第4のビジーサイクル816の開始時に、第2の登録されたワークロードの要求が適用され、第4のDCVS応答826は、第2の登録されたワークロードの要求を提供することができる。したがって、第4のDCVS応答826は、未登録のワークロードおよび第1の登録されたワークロードの要求も提供する。
【0047】
第5のビジーサイクル818の間、第2の登録されたワークロードは第5のビジーサイクル818から削除され、未登録のワークロードおよび第1の登録されたワークロードは存在し得る。したがって、第5のビジーサイクル818の開始時に、第2の登録されたワークロードの要求は、第5のDCVS応答828から削除され、第5のDCVS応答は、第5のビジーサイクル818から削除されなかった第1の登録されたワークロードの要求を提供することができる。したがって、第5のビジーサイクル818の開始時に、第1の登録されたワークロードの要求が適用され、第5のDCVS応答818は、第1の登録されたワークロードの要求を提供することができる。したがって、第5のDCVS応答828は、未登録のワークロードおよび第1の登録されたワークロードの要求を提供することができる。
【0048】
応答度の任意の変化も、例えば、ワークロードが終わるときなど、ワークロードの立下りエッジ時に、DCVS応答に影響を及ぼし得ることが了承されよう。
【0049】
本明細書で説明する方法ステップは、必ずしも説明したような順序で実行される必要はないことを理解されたい。さらに、例えば「その後」、「次いで」、「次に」などの語は、ステップの順序を限定するものではない。これらの語は、単に方法ステップの説明を介して読者を導くために使用されている。さらに、本明細書で説明する方法は、ポータブルコンピューティングデバイス(PCD)上で実行可能であるものとして説明されている。PCDは、携帯電話デバイス、携帯情報端末デバイス、スマートブックコンピューティングデバイス、ネットブックコンピューティングデバイス、ラップトップコンピューティングデバイス、デスクトップコンピューティングデバイス、またはそれらの組合せとすることができる。さらに、本明細書で説明される方法ステップは、シングルコアプロセッサ、マルチコアプロセッサ、複数のシングルコアプロセッサ、複数のマルチコアプロセッサ、またはそれらの任意の組合せ上で実行され得る。
【0050】
1つまたは複数の例示的な態様において、記載の機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、機械可読媒体、すなわちコンピュータ可読媒体などのコンピュータプログラム製品に1つまたは複数の命令またはコードとして記憶され、またはそれを介して送信され得る。コンピュータ可読媒体は、ある位置から別の位置へのコンピュータプログラムの転送を容易にする任意の媒体を含むコンピュータ記憶媒体および通信媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の使用可能な媒体とすることができる。限定ではなく、例として、こうしたコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、または、命令またはデータ構造の形態で所望のプログラムコードを運ぶまたは記憶するために使用され、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。また、任意の接続は、厳密には、コンピュータ可読媒体と呼ばれる。例えば、ソフトウェアが同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、またはワイヤレス技術、例えば赤外線、無線、およびマイクロ波を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、赤外線、無線、およびマイクロ波などの同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、またはワイヤレス技術は媒体の定義内に含まれる。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるものとする。
【0051】
選択された態様が例示され、詳細に説明され、記載されているが、以下の特許請求の範囲によって定義された本発明の趣旨および範囲から逸脱することなく、様々な置換および改変を加えることができることを理解されよう。
【符号の説明】
【0052】
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 第1のステレオスピーカ
356 第2のステレオスピーカ
358 マイクロフォン増幅器
360 マイクロフォン
362 FM無線チューナ
364 FMアンテナ
366 ステレオヘッドフォン
368 RFトランシーバ
370 RFスイッチ
372 RFアンテナ
374 キーパッド
376 マイクロフォンを備えるモノヘッドセット
378 バイブレータデバイス
380 電源装置
388 ネットワークカード

【特許請求の範囲】
【請求項1】
動的なクロックおよび電圧切替えアルゴリズムを調整する方法であって、
デフォルトの応答度を設定するステップと、
ワークロードが追加された後、前記ワークロードが登録しているかどうかを決定するステップと、
前記ワークロードが登録している場合、一意の識別子を前記ワークロードに割り当てるステップと、
前記ワークロードから必要な応答度を受信するステップと
を含む方法。
【請求項2】
前記応答度が、周波数設定の変化率、電圧設定の変化率、またはそれらの組合せである請求項1に記載の方法。
【請求項3】
前記ワークロードが登録されていない場合、現在の応答度を前記ワークロードに提供するステップ
をさらに含む請求項1に記載の方法。
【請求項4】
前記現在の応答度が前記デフォルトの応答度を含む請求項3に記載の方法。
【請求項5】
前記必要な応答度が現在の応答度よりも大きいかどうかを決定するステップ
をさらに含む請求項1に記載の方法。
【請求項6】
前記必要な応答度が前記現在の応答度以下であるとき、現在の応答度をすべてのワークロードに提供するステップ
をさらに含む請求項5に記載の方法。
【請求項7】
前記現在の応答度が前記デフォルトの応答度である請求項6に記載の方法。
【請求項8】
前記現在の応答度が、別の登録されたワークロードに関連付けられた応答度である請求項7に記載の方法。
【請求項9】
前記必要な応答度が前記現在の応答度よりも大きいとき、前記DCVSアルゴリズムを前記必要な応答度に調整するステップ
をさらに含む請求項5に記載の方法。
【請求項10】
前記必要な応答度をすべてのワークロードに提供するステップ
をさらに含む請求項9に記載の方法。
【請求項11】
デフォルトの応答度を設定するための手段と、
ワークロードが追加された後、前記ワークロードが登録しているかどうかを決定するための手段と、
前記ワークロードが登録している場合、一意の識別子を前記ワークロードに割り当てるための手段と、
前記ワークロードから必要な応答度を受信するための手段と
を含むデバイス。
【請求項12】
前記応答度が、周波数設定の変化率、電圧設定の変化率、またはそれらの組合せである請求項11に記載のデバイス。
【請求項13】
前記ワークロードが登録されていない場合、現在の応答度を前記ワークロードに提供するための手段
をさらに含む請求項11に記載のデバイス。
【請求項14】
前記現在の応答度が前記デフォルトの応答度を含む請求項13に記載のデバイス。
【請求項15】
前記必要な応答度が現在の応答度よりも大きいかどうかを決定するための手段
をさらに含む請求項11に記載のデバイス。
【請求項16】
前記必要な応答度が前記現在の応答度以下であるとき、現在の応答度をすべてのワークロードに提供するための手段
をさらに含む請求項15に記載のデバイス。
【請求項17】
前記現在の応答度が前記デフォルトの応答度である請求項16に記載のデバイス。
【請求項18】
前記現在の応答度が、別の登録されたワークロードに関連付けられた応答度である請求項17に記載のデバイス。
【請求項19】
前記必要な応答度が前記現在の応答度よりも大きいとき、前記DCVSアルゴリズムを前記必要な応答度に調整するための手段
をさらに含む請求項15に記載のデバイス。
【請求項20】
前記必要な応答度をすべてのワークロードに提供するための手段
をさらに含む請求項19に記載のデバイス。
【請求項21】
デフォルトの応答度を設定し、
ワークロードが追加された後、前記ワークロードが登録しているかどうかを決定し、
前記ワークロードが登録している場合、一意の識別子を前記ワークロードに割り当て、
前記ワークロードから必要な応答度を受信する
ように構成されたプロセッサ
を含むデバイス。
【請求項22】
前記応答度が、周波数設定の変化率、電圧設定の変化率、またはそれらの組合せである請求項21に記載のデバイス。
【請求項23】
前記プロセッサが、
前記ワークロードが登録されていない場合、現在の応答度を前記ワークロードに提供するようにさらに構成された
請求項21に記載のデバイス。
【請求項24】
前記現在の応答度が前記デフォルトの応答度を含む請求項23に記載のデバイス。
【請求項25】
前記プロセッサが、
前記必要な応答度が現在の応答度よりも大きいかどうかを決定するようにさらに構成された
請求項21に記載のデバイス。
【請求項26】
前記プロセッサが、
前記必要な応答度が前記現在の応答度以下であるとき、現在の応答度をすべてのワークロードに提供するようにさらに構成された
請求項25に記載のデバイス。
【請求項27】
前記現在の応答度が前記デフォルトの応答度である請求項26に記載のデバイス。
【請求項28】
前記現在の応答度が、別の登録されたワークロードに関連付けられた応答度である請求項27に記載のデバイス。
【請求項29】
前記プロセッサが、
前記必要な応答度が前記現在の応答度よりも大きいとき、前記DCVSアルゴリズムを前記必要な応答度に調整するようにさらに構成された
請求項25に記載のデバイス。
【請求項30】
前記プロセッサが、
前記必要な応答度をすべてのワークロードに提供するようにさらに構成された
請求項29に記載のデバイス。
【請求項31】
デフォルトの応答度を設定するための少なくとも1つの命令と、
ワークロードが追加された後、前記ワークロードが登録しているかどうかを決定するための少なくとも1つの命令と、
前記ワークロードが登録している場合、一意の識別子を前記ワークロードに割り当てるための少なくとも1つの命令と、
前記ワークロードから必要な応答度を受信するための少なくとも1つの命令と
を含むメモリ媒体。
【請求項32】
前記応答度が、周波数設定の変化率、電圧設定の変化率、またはそれらの組合せである請求項31に記載のメモリ媒体。
【請求項33】
前記ワークロードが登録されていない場合、現在の応答度を前記ワークロードに提供するための少なくとも1つの命令
をさらに含む請求項31に記載のメモリ媒体。
【請求項34】
前記現在の応答度が前記デフォルトの応答度を含む請求項33に記載のメモリ媒体。
【請求項35】
前記必要な応答度が現在の応答度よりも大きいかどうかを決定するための少なくとも1つの命令
をさらに含む請求項31に記載のメモリ媒体。
【請求項36】
前記必要な応答度が前記現在の応答度以下であるとき、現在の応答度をすべてのワークロードに提供するための少なくとも1つの命令
をさらに含む請求項35に記載のメモリ媒体。
【請求項37】
前記現在の応答度が前記デフォルトの応答度である請求項36に記載のメモリ媒体。
【請求項38】
前記現在の応答度が、別の登録されたワークロードに関連付けられた応答度である請求項37に記載のメモリ媒体。
【請求項39】
前記必要な応答度が前記現在の応答度よりも大きいとき、前記DCVSアルゴリズムを前記必要な応答度に調整するための少なくとも1つの命令
をさらに含む請求項35に記載のメモリ媒体。
【請求項40】
前記必要な応答度をすべてのワークロードに提供するための少なくとも1つの命令
をさらに含む請求項39に記載のメモリ媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2013−516714(P2013−516714A)
【公表日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2012−548216(P2012−548216)
【出願日】平成23年1月10日(2011.1.10)
【国際出願番号】PCT/US2011/020709
【国際公開番号】WO2011/085329
【国際公開日】平成23年7月14日(2011.7.14)
【出願人】(507364838)クアルコム,インコーポレイテッド (446)
【Fターム(参考)】