(57)【要約】  中央処理装置(CPU)内のデータをサンプリングする方法が開示される。本方法は、CPU活動を監視するステップと、CPUがアイドル状態に入っているか否かを判断するステップと、CPUがアイドル状態に入っている場合に、動的クロックおよび電圧スイッチング(DCVS)アルゴリズムを実行するステップとを含むことができる。
2013516710.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置(CPU)内のデータをサンプリングする方法であって、
CPU活動を監視するステップと、
前記CPUがアイドル状態に入っているか否かを判断するステップと、
前記CPUがアイドル状態に入っている場合に、動的クロックおよび電圧スイッチング(dynamic clock and voltage switching)(DCVS)アルゴリズムを実行するステップと
を含む方法。
【請求項２】
前記CPUがアイドル状態から抜け出ているか否かを判断するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
前記CPUがアイドル状態から抜け出ている場合に、前記DCVSアルゴリズムの実行を中止するステップ
をさらに含む、請求項2に記載の方法。
【請求項４】
前記CPUがアイドル状態から抜け出ていない場合に、前記DCVSアルゴリズムの実行を続けるステップ
をさらに含む、請求項2に記載の方法。
【請求項５】
前記CPUがアイドル状態に入っている場合に、現在時間を書き留めるステップと、
前回のビジーサイクルの長さを判断するステップと、
前記前回のビジーサイクルの前記長さを記録するステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
前記CPUがアイドル状態から抜け出ている場合に、現在時間を書き留めるステップと、
前回のアイドル期間の長さを判断するステップと、
前記前回のアイドルサイクルの前記長さを記録するステップと
をさらに含む、請求項2に記載の方法。
【請求項７】
前記CPUがアイドル状態に入っていない場合に、タイマーが始動しているか否かを判断するステップと、
前記タイマーが始動している場合に、前記CPUが通常モードで動作しているか、それともサービス品質モードで動作しているかを判断するステップと
をさらに含む、請求項1に記載の方法。
【請求項８】
前記CPUがサービス品質モードで動作しているときに、CPU周波数を最大値に引き上げるステップと
タイマーを解除するステップと
をさらに含む、請求項7に記載の方法。
【請求項９】
前記CPUが通常モードで動作しているときに、CPU周波数を1増分ステップ引き上げるステップ
をさらに含む、請求項7に記載の方法。
【請求項１０】
前記CPU周波数が最大値に等しいか否かを判断するステップと、
前記CPU周波数が前記最大値に等しい場合に、タイマーを解除するステップと
をさらに含む、請求項9に記載の方法。
【請求項１１】
CPU活動を監視するための手段と、
前記CPUがアイドル状態に入っているか否かを判断するための手段と、
前記CPUがアイドル状態に入っている場合に、動的クロックおよび電圧スイッチング(DCVS)アルゴリズムを実行するための手段と
を含むワイヤレスデバイス。
【請求項１２】
前記CPUがアイドル状態から抜け出ているか否かを判断するための手段
をさらに含む、請求項11に記載のワイヤレスデバイス。
【請求項１３】
前記CPUがアイドル状態から抜け出ている場合に、前記DCVSアルゴリズムの実行を中止するための手段
をさらに含む、請求項12に記載のワイヤレスデバイス。
【請求項１４】
前記CPUがアイドル状態から抜け出ていない場合に、前記DCVSアルゴリズムの実行を続けるための手段
をさらに含む、請求項12に記載のワイヤレスデバイス。
【請求項１５】
前記CPUがアイドル状態に入っている場合に、現在時間を書き留めるための手段と、
前回のビジーサイクルの長さを判断するための手段と、
前記前回のビジーサイクルの前記長さを記録するための手段と
をさらに含む、請求項11に記載のワイヤレスデバイス。
【請求項１６】
前記CPUがアイドル状態から抜け出ている場合に、現在時間を書き留めるための手段と、
前回のアイドル期間の長さを判断するための手段と、
前記前回のアイドルサイクルの前記長さを記録するための手段と
をさらに含む、請求項12に記載のワイヤレスデバイス。
【請求項１７】
前記CPUがアイドル状態に入っていない場合に、タイマーが始動しているか否かを判断するための手段と、
前記タイマーが始動している場合に、前記CPUが通常モードで動作しているか、それともサービス品質モードで動作しているかを判断するための手段と
をさらに含む、請求項11に記載のワイヤレスデバイス。
【請求項１８】
前記CPUがサービス品質モードで動作しているときに、CPU周波数を最大値に引き上げるための手段と、
タイマーを解除するための手段と
をさらに含む、請求項17に記載のワイヤレスデバイス
【請求項１９】
前記CPUが通常モードで動作しているときに、CPU周波数を1増分ステップ引き上げるための手段
をさらに含む、請求項17に記載のワイヤレスデバイス。
【請求項２０】
前記CPU周波数が最大値に等しいか否かを判断するための手段と、
前記CPU周波数が前記最大値に等しい場合に、タイマーを解除するための手段と
をさらに含む、請求項19に記載のワイヤレスデバイス。
【請求項２１】
プロセッサを含み、前記プロセッサが、
CPU活動を監視し、
前記CPUがアイドル状態に入っているか否かを判断し、
前記CPUがアイドル状態に入っている場合に、動的クロックおよび電圧スイッチング(DCVS)アルゴリズムを実行する
ように動作可能な、ワイヤレスデバイス。
【請求項２２】
前記プロセッサが、
前記CPUがアイドル状態から抜け出ているか否かを判断する
ようにさらに動作可能な、請求項21に記載のワイヤレスデバイス。
【請求項２３】
前記プロセッサが、
前記CPUがアイドル状態から抜け出ている場合に、前記DCVSアルゴリズムの実行を中止する
ようにさらに動作可能な、請求項22に記載のワイヤレスデバイス。
【請求項２４】
前記プロセッサが、
前記CPUがアイドル状態から抜け出ていない場合に、前記DCVSアルゴリズムの実行を続ける
ようにさらに動作可能な、請求項22に記載のワイヤレスデバイス。
【請求項２５】
前記プロセッサが、
前記CPUがアイドル状態に入っている場合に、現在時間を書き留め、
前回のビジーサイクルの長さを判断し、
前記前回のビジーサイクルの前記長さを記録する
ようにさらに動作可能な、請求項21に記載のワイヤレスデバイス。
【請求項２６】
前記プロセッサが、
前記CPUがアイドル状態から抜け出ている場合に、現在時間を書き留め、
前回のアイドル期間の長さを判断し、
前記前回のアイドルサイクルの前記長さを記録する
ようにさらに動作可能な、請求項22に記載のワイヤレスデバイス。
【請求項２７】
前記プロセッサが、
前記CPUがアイドル状態に入っていない場合に、タイマーが始動しているか否かを判断し、
前記タイマーが始動している場合に、前記CPUが通常モードで動作しているか、それともサービス品質モードで動作しているかを判断する
ようにさらに動作可能な、請求項21に記載のワイヤレスデバイス。
【請求項２８】
前記プロセッサが、
前記CPUがサービス品質モードで動作しているときに、CPU周波数を最大値に引き上げ、
タイマーを解除する
ようにさらに動作可能な、請求項27に記載のワイヤレスデバイス。
【請求項２９】
前記プロセッサが、
前記CPUが通常モードで動作しているときに、CPU周波数を1増分ステップ引き上げる
ようにさらに動作可能な、請求項27に記載のワイヤレスデバイス。
【請求項３０】
前記プロセッサが、
前記CPU周波数が最大値に等しいか否かを判断し、
前記CPU周波数が前記最大値に等しい場合に、タイマーを解除する
ようにさらに動作可能な、請求項29に記載のワイヤレスデバイス。
【請求項３１】
プロセッサにより実行可能な命令を記録したプロセッサ読み取り可能な記録媒体であって、
CPU活動を監視するための少なくとも1つの命令と、
前記CPUがアイドル状態に入っているか否かを判断するための少なくとも1つの命令と、
前記CPUがアイドル状態に入っている場合に、動的クロックおよび電圧スイッチング(DCVS)アルゴリズムを実行するための少なくとも1つの命令と
を記録する記録媒体。
【請求項３２】
前記CPUがアイドル状態から抜け出ているか否かを判断するための少なくとも1つの命令
をさらに記録する、請求項31に記載の記録媒体。
【請求項３３】
前記CPUがアイドル状態から抜け出ている場合に、前記DCVSアルゴリズムの実行を中止するための少なくとも1つの命令
をさらに記録する、請求項32に記載の記録媒体。
【請求項３４】
前記CPUがアイドル状態から抜け出ていない場合に、前記DCVSアルゴリズムの実行を続けるための少なくとも1つの命令
をさらに記録する、請求項32に記載の記録媒体。
【請求項３５】
前記CPUがアイドル状態に入っている場合に、現在時間を書き留めるための少なくとも1つの命令と、
前回のビジーサイクルの長さを判断するための少なくとも1つの命令と、
前記前回のビジーサイクルの前記長さを記録するための少なくとも1つの命令と
をさらに記録する、請求項31に記載の記録媒体。
【請求項３６】
前記CPUがアイドル状態から抜け出ている場合に、現在時間を書き留めるための少なくとも1つの命令と、
前回のアイドル期間の長さを判断するための少なくとも1つの命令と、
前記前回のアイドルサイクルの前記長さを記録するための少なくとも1つの命令と
をさらに記録する、請求項32に記載の記録媒体。
【請求項３７】
前記CPUがアイドル状態に入っていない場合に、タイマーが始動しているか否かを判断するための少なくとも1つの命令と、
前記タイマーが始動している場合に、前記CPUが通常モードで動作しているか、それともサービス品質モードで動作しているかを判断するための少なくとも1つの命令と
をさらに記録する、請求項31に記載の記録媒体。
【請求項３８】
前記CPUがサービス品質モードで動作しているときに、CPU周波数を最大値に引き上げるための少なくとも1つの命令と、
タイマーを解除するための少なくとも1つの命令と
をさらに記録する、請求項37に記載の記録媒体。
【請求項３９】
前記CPUが通常モードで動作しているときに、CPU周波数を1増分ステップ引き上げるための少なくとも1つの命令
をさらに記録する、請求項37に記載の記録媒体。
【請求項４０】
前記CPU周波数が最大値に等しいか否かを判断するための少なくとも1つの命令と、
前記CPU周波数が前記最大値に等しい場合に、タイマーを解除するための少なくとも1つの命令と
をさらに記録する、請求項39に記載の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、その内容が参照により完全に組み込まれる、2010年1月11日に出願された「SYSTEM AND METHOD OF SAMPLING DATA WITHIN A CENTRAL PROCESSING UNIT」と題する米国仮特許出願第61/294,028号の優先権を主張する。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス(PD)は至る所にある。これらのデバイスは、セルラー電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスを含み得る。これらのデバイスの一次機能に加えて、多くは周辺機能を含む。たとえば、セルラー電話はセルラー電話で電話をかけるという一次機能、およびスチールカメラ、ビデオカメラ、全地球測位システム(GPS)のナビゲーション、ウェブブラウジング、電子メールの送受信、テキストメッセージの送受信、プッシュツートーク能力などの周辺機能を含むことができる。そのようなデバイスの機能の増大に伴い、そのような機能をサポートするのに必要な計算能力または処理能力も増大している。さらに、計算能力の増大に伴い、計算能力をもたらすプロセッサを効果的に管理する必要性が高まっている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
したがって、中央処理装置内のデータをサンプリングする改善された方法が必要とされている。
【課題を解決するための手段】
【０００４】
図では、別段に規定されていない限り、様々な視点を通じて同じ参照番号は同じ部分を指す。
【図面の簡単な説明】
【０００５】
【図１】閉位置におけるポータブルコンピューティングデバイス(PCD)の第1の態様の正面図である。
【図２】開位置におけるPCDの第1の態様の正面図である。
【図３】PCDの第2の態様のブロック図である。
【図４】処理システムのブロック図である。
【図５】中央処理装置内のデータをサンプリングする方法の第1の態様を示すフローチャートである。
【図６】中央処理装置内のデータをサンプリングする方法の第2の態様の第1の部分を示すフローチャートである。
【図７】中央処理装置内のデータをサンプリングする方法の第2の態様の第2の部分を示すフローチャートである。
【図８】中央処理装置内のデータをサンプリングする方法の第2の態様の第3の部分を示すフローチャートである。
【図９】中央処理装置内のデータをサンプリングする方法の1つ動作態様を示すタイムラインである。
【発明を実施するための形態】
【０００６】
「例示的な」という語は、「一例、実例または例として」を意味するために本明細書で使用される。「例示的な」ものとして本明細書で説明する態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。
【０００７】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイルおよびパッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及する「アプリケーション」は、オープンされる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【０００８】
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、パッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及する「コンテンツ」は、オープンされる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【０００９】
本明細書で使用される「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえば構成要素は、プロセッサ上で作動しているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラムおよび/またはコンピュータであってよいが、これらであることに限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッドの中に存在してよく、1つの構成要素を1つのコンピュータに局在化すること、および/または2つ以上のコンピュータに分散することが可能である。加えて、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。構成要素は、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キーボードであり得る。マルチボタン型キーボード120は、上位ハウジング部分104が下位ハウジング部分106との関係で移動したときに現れ得る。図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は、ビデオエンコーダ334、たとえば位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM:sequential couleur a memoire)エンコーダまたは全国テレビジョン方式委員会(NTSC)エンコーダがマルチコア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は、ブルートゥースネットワークカード、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の動的クロックおよび電圧スケーリング(dynamic clock and voltage scaling:DCVS)アルゴリズム416を含むことができる。第1のコア412は、その上で実行される第1のDCVSアルゴリズム417を含むことができる。さらに、第Nのコア414は、その上で実行される第NのDCVSアルゴリズム418を含むことができる。特定の態様では、各DCVSアルゴリズム416、417、418は、それぞれのコア410、412、414上で独立して実行することができる。
【００２１】
さらに、図示のように、メモリ404は、その上に記憶されたオペレーティングシステム420を含むことができる。オペレーティングシステム420はスケジューラ422を含むことができ、スケジューラ422は第1の実行キュー424、第2の実行キュー426、第Nの実行キュー428を含むことができる。メモリ404は、その上に記憶された第1のアプリケーション430、第2のアプリケーション432および第Nのアプリケーション434を含むことができる。
【００２２】
特定の態様では、アプリケーション430、432、434が1つまたは複数のタスク436をオペレーティングシステム420に送って、マルチコアCPU402内のコア410、412、414で処理することができる。タスク436は、単一のタスク、スレッド、またはそれらの組合せとして処理または実行できる。さらに、スケジューラ422は、マルチコアCPU402内で実行するタスク、スレッド、またはそれらの組合せをスケジュールすることができる。加えて、スケジューラ422は、実行キュー424、426、428にタスク、スレッド、またはそれらの組合せを配置することができる。コア410、412、414は、タスク、スレッド、またはそれらの組合せを、たとえばオペレーティングシステム420によってコア410、412、414でそれらのタスクおよびスレッドを処理または実行するよう命令された場合、実行キュー424、426、428から取り出すことができる。
【００２３】
図4は、メモリ404がその上に記憶されたコントローラ440を含み得ることも示している。コントローラ440は、オペレーティングシステム420およびマルチコアCPU402に接続可能である。具体的には、コントローラ440は、オペレーティングシステム420内のスケジューラ422に接続可能である。本明細書で説明するように、コントローラ440は、コア410、412、414の作業負荷を監視することができ、さらにコントローラ440は、後述のようにコア410、412、414からデータをサンプリングすることができる。
【００２４】
特定の態様では、コントローラ440はソフトウェアプログラムであり得る。しかし、代替態様では、コントローラ440はメモリ404の外部にあるハードウェアコントローラであり得る。いずれの場合も、コントローラ440、メモリ404、コア410、412、414またはそれらの組合せは、コア410、412、414からデータをサンプリングするために本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として働くことができる。
【００２５】
図5を参照すると、動的クロックおよび電圧スケーリング(DCVS)アルゴリズムを実行する方法が示され、全体的に指定されている。方法500は、ブロック502で始まり、これはデバイスの電源が投入されているときに以下のステップを実施できるDOループを伴う。ブロック504では、コントローラはCPU活動を監視することができる。この活動は、単一コアCPU、マルチコアCPU、複数の単一コアCPU、複数のマルチコアCPUまたはそれらの組合せの活動であってよい。さらに、コントローラはソフトウェアコントローラ、ハードウェアコントローラまたはそれらの組合せであってよい。
【００２６】
判断506に移動して、コントローラは、CPUまたはCPUのコアがアイドル状態に入っているか否か判断することができる。アイドル状態に入っている場合、本方法はブロック508に進み、コントローラはDCVSアルゴリズムを実行することができる。その後、判断510では、コントローラは、CPUまたはCPUのコアがアイドル状態から抜け出ているか否か判断することができる。アイドル状態から抜け出ていない場合、方法500はブロック511に進むことができ、CPUはアイドル状態にとどまることができる。次いで、本方法は判断510に戻ることができ、方法500は本明細書で説明するように継続することができる。そうではなく、CPUまたはCPUのコアがアイドル状態から抜け出ている場合、方法500はブロック512に進むことができ、コントローラはDCVSアルゴリズムの実行を中止することができる。その後、コントローラはデバイスの電源が切断されているか否かを判断することができる。デバイスの電源が切断されている場合、方法500は終了することができる。反対に、デバイスの電源投入が続いている場合、方法500はブロック504に戻ることができ、方法500はここで説明するように継続することができる。
【００２７】
判断506に戻ると、CPUまたはCPUのコアがアイドル状態に入っていない場合、方法500は判断516に進むことができる。判断516では、コントローラはタイマーが始動しているか否かを判断することができる。タイマーが始動していない場合、方法500はブロック504に戻ることができ、方法500はここで説明するように継続することができる。タイマーが始動している場合、方法500はブロック518に移動することができ、コントローラはCPU周波数を1ステップ引き上げることができる。次に、判断520では、コントローラはCPU周波数が最大CPU周波数にあるか否かを判断することができる。CPU周波数が最大CPU周波数にある場合、ブロック522でタイマーを解除することができる。次いで、方法500は判断514に進むことができ、方法500はここで説明するように継続することができる。CPU周波数が最大CPU周波数にない場合、方法500は判断514に直接移動することができ、方法500はここで説明するように継続することができる。
【００２８】
特定の態様では、前回のアイドル時間に非常に近接してアイドル状態に入っている場合には、DCVSアルゴリズムの実行を省略することができる。これは、所望のDCVS応答時間に依存することがある。
【００２９】
図6を参照すると、動的クロックおよび電圧スケーリング(DCVS)アルゴリズムを実行する方法の第2の態様が示され、全体的に指定されている。方法600は、ブロック602で始まり、これはデバイスの電源が投入されているときに以下のステップを実行できるDOループを伴う。ブロック604では、コントローラは応答性期限(responsivity deadline)Rを決定することができる。たとえば、応答性期限Rは90ミリ秒に設定され得る。
【００３０】
ブロック606に移動し、コントローラはCPU活動を監視することができる。この活動は、単一コアCPU、マルチコアCPU、複数の単一コアCPU、複数のマルチコアCPUまたはそれらの組合せの活動であってよい。さらに、コントローラはソフトウェアコントローラ、ハードウェアコントローラまたはそれらの組合せであってよい。
【００３１】
判断608に移動して、コントローラは、CPUまたはCPUのコアがアイドル状態に入っているか否か判断することができる。CPUがアイドル状態に入っていない場合、方法600は後述する図8の判断802に直接進むことができる。一方、CPUがアイドル状態に入っている場合、方法600はブロック610に進むことができ、コントローラは時間を書き留めることできる。次に、ブロック612では、コントローラは前回のビジーサイクルの長さを判断することができる。ブロック614では、コントローラは前回のサイクルの長さを記録することができる。さらに、ブロック616では、コントローラはビジーサイクル中のCPU周波数を記録することができる。その後、方法600は図7のブロック702に進むことができる。ブロック610〜ブロック616で収集された情報をDCVSアルゴリズムに提供することができる。
【００３２】
図7のブロック702では、方法600はタイマーを解除することができる。ブロック704に移動し、コントローラは動的クロックおよび電圧スケーリング(DCVS)アルゴリズムを実行することができる。次に、判断706では、コントローラは、CPUまたはCPUのコアがアイドル状態から抜け出ているか否か判断することができる。アイドル状態から抜け出ていない場合、方法600はブロック707に進むことができ、CPUはアイドル状態にとどまることができる。次いで、本方法は判断706に戻ることができ、ここで説明するように継続することができる。CPUまたはそのコアがアイドル状態から抜け出ている場合、方法600はブロック708に進むことができる。ブロック708では、コントローラは時間を書き留めることができる。ブロック710では、コントローラは前回のアイドル期間またはアイドルサイクルの長さを判断することができる。次に、ブロック712では、コントローラは現在時間+応答性期限に等しくなるようにタイマーを設定することができる。ブロック714では、コントローラは前回のアイドル期間の長さを記録することができる。その後、方法600は図6のブロック606に戻ることができ、方法600はここで説明するように継続することができる。ブロック710〜ブロック714で収集された情報をDCVSアルゴリズムに提供することができる。
【００３３】
図6の判断608に戻ると、CPUまたはそのコアがアイドル状態に入っていない場合、方法600は図8の判断802に進むことができる。
【００３４】
図8の判断802では、コントローラはタイマーが始動しているか否かを判断することができる。タイマーが始動していない場合、方法600は図6のブロック606に戻ることができ、方法600はここで説明するように継続することができる。一方、判断802で、タイマーが始動している場合、方法600は判断804に進むことができる。判断804では、コントローラは、コントローラが通常モードで動作しているか、それともサービス品質(QoS)モードで動作しているかを判断することができる。コントローラが通常モードで動作している場合、方法600はブロック806に進むことができ、コントローラはCPU周波数を1ステップ引き上げることができる。
【００３５】
次に、判断808では、コントローラはCPU周波数が最大CPU周波数にあるか否かを判断することができる。CPU周波数が最大CPU周波数にある場合、ブロック810でタイマーを解除することができる。次いで、方法600は図6のブロック606に戻ることができる。その後、方法600はここで説明するように継続することができる。CPU周波数が最大CPU周波数にない場合、方法600は図7のブロック712に戻ることができ、方法600はここで説明するように継続することができる。
【００３６】
判断804に戻り、コントローラがサービス品質(QoS)モードで動作している場合、方法600はブロック812に進むことができ、コントローラはCPU周波数を最大CPU周波数に引き上げることができる。次いで、方法600は図7のブロック712に戻ることができる。
【００３７】
図9は、中央処理装置内のデータをサンプリングする方法の1つの動作態様を示すタイムラインである。この例では、応答性期限は90ミリ秒に等しくなるように設定され得る。t0から、CPUはアイドル状態に入ることができる。時間を書き留めることができる。すなわち、CPUはt-1(不図示)からt0まで、または(t0-t-1)の時間にビジーであったことになる。さらに、タイマーを解除することができる。t1で、CPUはアイドル状態から抜け出るか離れることができる。時間を書き留めることができる。すなわち、CPUはt0からt1まで、または(t1-t0)の時間にアイドル状態であったことになる。次に、タイマーはt1+90ミリ秒に設定され得る。
【００３８】
t2で、CPUは再びアイドル状態に入ることができる。時間を書き留めることができる。すなわち、CPUはt1からt2まで、または(t2-t1)の時間にビジーであったことになる。次いで、タイマーを解除することができる。t3で、CPUはアイドル状態から抜け出ることができる。時間を書き留めることができる。すなわち、CPUはt2からt3まで、または(t3-t2)の時間にアイドル状態であったことになる。次に、タイマーはt3+90ミリ秒に設定され得る。t3+90ミリ秒でタイマーは始動し、CPU周波数が引き上げられる。CPUが通常モードにある場合、CPU周波数を1増分周波数ステップ引き上げることができる。CPUがQoS状態にある場合、CPU周波数を最大CPU周波数に引き上げることができる。さらに、CPU周波数が最大CPU周波数にはない場合、タイマーを(t3+90ミリ秒)+90ミリ秒、すなわち現在時間から90ミリ秒に再スケジュールすることができる。t4で、CPUは再びアイドル状態に入る。時間を書き留めることができる。すなわち、CPUはt3からt4まで、または(t4-t3)の時間にビジーであり、(t3+90ミリ秒)からt4までは周波数が引き上げられていたことになる。次いで、タイマーを解除することができる。
【００３９】
特定の態様では、上記で収集されるすべてのデータポイントにおいて、DCVSアルゴリズムは、t3+90ミリ秒における場合を除いて、通常処理の中断なしに正確なCPUアイドル時間およびCPU使用の情報にアクセスすることができ、判断がアイドル時間において事前計算されているので、中断は最小限の作業ですむ。DCVSアルゴリズムはまた、アイドル/作業分布の履歴にアクセスすることもできる。
【００４０】
本明細書で説明する方法ステップは、必ずしも説明どおりの順序で実施する必要はないことを理解されたい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、方法ステップの説明を通じて読者を案内するために使用されているにすぎない。さらに、本明細書で説明する方法はポータブルコンピューティングデバイス(PCD)上で実行可能なものとして説明している。PCDはモバイル電話デバイス、携帯情報端末デバイス、スマートブックコンピューティングデバイス、ネットブックコンピューティングデバイス、ラップトップコンピューティングデバイス、デスクトップコンピューティングデバイス、またはそれらの組合せであってよい。
【００４１】
本明細書で説明するシステムおよび方法は、サンプルレート独立(sample-rate independent)であり得るサンプリング方法を提供する。また、応答性、サービス品質(QoS)、またはそれらの組合せは第1級の入力パラメータであり得る。さらに、DCVSアルゴリズム処理は実際の作業を中断せず、システムが完全にロードされているときにオーバーヘッドをゼロにすることができる。加えて、クロックの変更は既存の電力縮小(power collapse)にピギーバックすることができる。
【００４２】
特定の態様では、本明細書で説明する構成において、データのサンプリングは機会主義的と考えることができる。機会主義的サンプリング方法は、固定間隔でCPUロード/アイドル時間をサンプリングするわけではない。代わりに、機会主義的サンプリング方法は、CPUがいつアイドル状態に入り、アイドル状態から離れたかを書き留めることによって、CPUのアイドルを直接測定する。これにより、周期的サンプリングに関連付けられた中断/コンテキスト切替えオーバーヘッドが減る。そこで、DCVSアルゴリズムはシステムが休止しているアイドル時間に実行可能であり、これは、DCVSアルゴリズムが有用な作業を妨害せず、DCVSアルゴリズムのオーバーヘッドが所望のDCVS応答性から独立していることを意味する。
【００４３】
一般に、本方法は1サンプルにつき1つの中断および2つのコンテキスト切替えを省くことができる。加えて、これによりCPUクロック周波数変更を、クロック変更が必要なことの多い現存するアイドル状態の頃にスケジュールすることができる。
【００４４】
特定の態様では、CPUが完全利用状態になった、すなわち100%になった場合、アイドル時間はなくなる。アイドル時間がない場合、サンプルを取り出してDCVSアルゴリズムを実行する機会はない。この枯渇問題を回避するために、DCVSアルゴリズム向けに最悪のビジー時間にタイムアウトコールバックが登録される。このタイムアウトが終了する前にCPUがアイドルになっていない場合、システムはクロック周波数を変更することができる。このタイムアウトは、DCVSアルゴリズムが存在する場合でもパフォーマンスの範囲を定める。クロック周波数の変更は、クロック周波数の通常の引き上げ、または必要とされ得るQoS保証を提供するための(最大限までの)より大きな変更を含むことができる。
【００４５】
いずれの場合も、この完全利用状態では、アイドルデータのサンプリングまたはDCVSアルゴリズムの実行の必要性がない、すなわち、判断ロジックが事前計算されているので、オーバーヘッドは最小限に抑えられる。CPUが最大周波数に達すると、システムが最終状態となり、タイムアウトを解除することができる。そのため、本システムおよび方法は、ロード状態において上手くスケーリングすることができる。システムのロードが大きくなった場合、DCVSアルゴリズムのオーバーヘッドはゼロになる。この特性は、所望のDCVS応答性/感度とは無関係であり得る。さらに、本システムおよび方法は、任意のDCVSアルゴリズムをサポートする。
【００４６】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装できる。ソフトウェアで実装した場合、これらの機能を機械可読媒体すなわちコンピュータ可読媒体などのコンピュータプログラム製品に記憶すること、またはそのようなコンピュータプログラム製品上の1つもしくは複数の命令あるいはコードとして送信することができる。コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体の両方を含み、1つの場所から別の場所へのコンピュータプログラムの転送を容易にするあらゆる媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形式で所望のプログラムコードを伝送もしくは記憶するために使用でき、コンピュータによってアクセスされ得るその他の媒体を含むことができる。また、あらゆる接続がコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアがウェブサイト、サーバ、または他のリモートソースから同軸ケーブル、光ファイバーケーブル、より対線、デジタル加入者回線(DSL)、または赤外線、ラジオおよびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、より対線、DLS、または赤外線、ラジオおよびマイクロ波などのワイヤレス技術は、媒体の定義に含まれ得る。本明細書で使用するディスク(diskおよびdisc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多目的ディスク(disc)(DVD)、フレキシブルディスク(disk)およびブルーレイディスク(disc)を含み、diskは通常、磁気的にデータを再生し、discはレーザで光学的にデータを再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれる。
【００４７】
選択された態様について詳細に説明し、詳述してきたが、以下の請求項によって定められた本発明の趣旨および範囲から離れることなく、本明細書において様々な代替および改変を実施できることが理解されよう。
【符号の説明】
【００４８】
100  PCD
102  ハウジング
104  上位ハウジング部分
106  下位ハウジング部分
108  ディスプレイ
110  トラックボール入力デバイス
112  電源投入ボタン
114  電源切断ボタン
116  表示灯
118  スピーカー
120  マルチボタン型キーボード
122  リセットボタン
320  PCD
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  ネットワークカード
400  処理システム
402  マルチコア中央処理装置(CPU)
404  メモリ
410  第0のコア
412  第1のコア
414  第Nのコア
416  DCVSアルゴリズム
417  DCVSアルゴリズム
418  DCVSアルゴリズム
420  オペレーティングシステム
422  スケジューラ
424  第1の実行キュー
426  第2の実行キュー
428  第Nの実行キュー
430  第1のアプリケーション
432  第2のアプリケーション
434  第Nのアプリケーション
436  タスク
440  コントローラ
【図１】
2013516710.tif 000003
【図２】
2013516710.tif 000004
【図３】
2013516710.tif 000005
【図４】
2013516710.tif 000006
【図５】
2013516710.tif 000007
【図６】
2013516710.tif 000008
【図７】
2013516710.tif 000009
【図８】
2013516710.tif 000010
【図９】
2013516710.tif 000011
【国際調査報告】
2013516710.tif 000012
2013516710.tif 000013
2013516710.tif 000014