説明

マルチコア中央処理装置内の複数のコアクロックを非同期で、独立に制御するためのシステムおよび方法

マルチコア中央処理装置内の複数のコアクロックを制御する方法が、開示され、さらに第0のコア上で第0のDCVS(動的クロックおよび電圧スケーリング)アルゴリズムを実行すること、および第1のコア上で第1のDCVSアルゴリズムを実行することを含むことが可能である。第0のDCVSアルゴリズムは、第0のコアに関連する第0のクロック周波数を独立に制御するように動作できることが可能であり、さらに第1のDCVSアルゴリズムは、第1のコアに関連する第1のクロック周波数を独立に制御するように動作できることが可能である。

【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、参照により内容が完全に本明細書に組み込まれている、2009年12月16日に出願した「SYSTEM AND METHOD OF ASYNCHRONOUSLY AND INDEPENDENTLY CONTROLLING CORE CLOCKS IN A MULTICORE CENTRAL PROCESSING UNIT」という名称の米国特許仮出願第61/286,967号の優先権を主張するものである。
【背景技術】
【0002】
PCD(ポータブルコンピューティングデバイス)は、いたるところに存在する。これらのデバイスには、セルラ電話機、PDA(携帯情報端末)、ポータブルゲームコンソール、パームトップコンピュータ、およびその他のポータブル電子デバイスが含まれ得る。これらのデバイスの一次機能に加えて、多くのデバイスは、周辺機能を含む。例えば、セルラ電話機は、セルラ電話通話を行う一次機能と、スチルカメラ、ビデオカメラ、GPS(全地球測位システム)ナビゲーション、ウェブブラウジング、電子メールを送受信すること、テキストメッセージを送受信すること、プッシュツートーク能力などの周辺機能とを含み得る。そのようなデバイスの機能が増大するにつれ、そのような機能をサポートするのに要求されるコンピューティング能力または処理能力も増大する。さらに、コンピューティング能力が増大するにつれ、そのコンピューティング能力を提供するプロセッサ、または複数のプロセッサを効果的に管理する、より大きな必要性が存在する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
したがって、必要とされているのは、マルチコアCPU内の電力を制御する改良された方法である。
【課題を解決するための手段】
【0004】
図において、同様の参照符号は、特に明記しない限り、様々な図面のすべてにわたって同様の部分を指す。
【図面の簡単な説明】
【0005】
【図1】閉じられた位置におけるPCD(ポータブルコンピューティングデバイス)の第1の態様を示す前方平面図である。
【図2】開かれた位置におけるPCDの第1の態様を示す前方平面図である。
【図3】PCDの第2の態様を示すブロック図である。
【図4】処理システムを示すブロック図である。
【図5】マルチコアデバイス内の複数のコアクロックを非同期で、独立に制御する方法の第1の態様を示す流れ図である。
【図6】マルチコアデバイス内の複数のコアクロックを非同期で、独立に制御する方法の第2の態様を示す流れ図である。
【発明を実施するための形態】
【0006】
「例示的」という語は、本明細書では、「例、実例、または例示の役割をする」を意味するように使用される。本明細書で「例示的」として説明されるいずれの態様も、必ずしも他の態様より好ましい、または有利であると解釈されるべきではない。
【0007】
この説明において、「アプリケーション」という用語には、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの実行可能なコンテンツを有するファイルが含まれることも可能である。さらに、本明細書で言及される「アプリケーション」には、開かれる必要がある可能性がある文書、またはアクセスされる必要がある他のデータファイルなどの、実行可能でない性質のファイルが含まれることも可能である。
【0008】
「コンテンツ」という用語には、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの実行可能なコンテンツを有するファイルが含まれることも可能である。さらに、本明細書で言及される「コンテンツ」には、開かれる必要がある可能性がある文書、またはアクセスされる必要がある他のデータファイルなどの、実行可能でない性質のファイルが含まれることも可能である。
【0009】
この説明において使用される「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアであるコンピュータ関連のエンティティを指すことを意図している。例えば、構成要素は、プロセッサ上で実行されているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータであることが可能であるが、以上には限定されない。例として、コンピューティングデバイス上で実行されているアプリケーションとそのコンピューティングデバイスがともに、構成要素であることが可能である。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キーボードであることが可能である。マルチボタンキーボード120は、上側筐体部分104が下側筐体部分106に対して動かされると、あらわになることが可能である。図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は、ビデオエンコーダ334、例えば、PAL(位相反転線)エンコーダ、SECAM(順次カラーメモリ)エンコーダ、またはNTSC(全米テレビジョン放送方式標準化委員会)エンコーダが、マルチコアCPU324に結合されることをさらに示す。さらに、ビデオ増幅器336が、ビデオエンコーダ334およびタッチスクリーンディスプレイ332に結合される。また、ビデオポート338が、ビデオ増幅器336に結合される。図3に示されるとおり、USB(ユニバーサルシリアルバス)コントローラ340が、マルチコアCPU324に結合される。また、USBポート342が、USBコントローラ340に結合される。また、メモリ344およびSIM(加入者IDモジュール)カード346が、マルチコアCPU324に結合されることも可能である。さらに、図3に示されるとおり、デジタルカメラ348が、マルチコアCPU324に結合されることが可能である。或る例示的な態様において、デジタルカメラ348は、CCD(電荷結合素子)カメラまたはCMOS(相補性金属酸化膜半導体)カメラである。
【0015】
図3にさらに示されるとおり、ステレオオーディオCODEC350が、マルチコアCPU324に結合されることが可能である。さらに、オーディオ増幅器352が、ステレオオーディオCODEC350に結合されることが可能である。或る例示的な態様において、第1のステレオスピーカ354、および第2のステレオスピーカ356が、オーディオ増幅器352に結合される。図3は、マイクロフォン増幅器358が、ステレオオーディオCODEC350に結合されることも可能であることを示す。さらに、マイクロフォン360が、マイクロフォン増幅器358に結合されることが可能である。或る特定の態様において、FM(周波数変調)ラジオチューナ362が、ステレオオーディオCODEC350に結合されることが可能である。また、FMアンテナ364が、FMラジオチューナ362に結合される。さらに、ステレオヘッドフォン366が、ステレオオーディオCODEC350に結合されることが可能である。
【0016】
図3は、RF(無線周波数)トランシーバ368がマルチコアCPU324に結合されることが可能であることをさらに示す。RFスイッチ370が、RFトランシーバ368およびRFアンテナ372に結合されることが可能である。図3に示されるとおり、キーパッド374が、マルチコアCPU324に結合されることが可能である。また、マイクロフォンを有するモノラルヘッドセット376が、マルチコアCPU324に結合されることも可能である。さらに、振動デバイス378が、マルチコアCPU324に結合されることが可能である。また、図3は、電源380が、オンチップのシステム322に結合される可能性があることも示す。或る特定の態様において、電源380は、電力を要求するPCD320の様々な構成要素に電力を供給するDC(直流)電源である。さらに、或る特定の態様において、この電源は、充電可能なDCバッテリ、あるいはAC(交流)電源に接続されたAC/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、またはマルチコアCPU324とメモリ344の組合せが、マルチコアCPU324の各CPU、つまり、各コアに関連するクロックを制御するために、本明細書で説明される方法ステップの1つまたは複数を実行するための手段の役割をすることが可能である。
【0020】
図4を参照すると、処理システムが示され、全体的に500で表されている。或る特定の態様において、処理システム500は、図3に関連して前述したPCD320に組み込まれることが可能である。図示されるとおり、処理システム500は、マルチコアCPU(中央処理装置)402と、そのマルチコアCPU402に接続されたメモリ404とを含むことが可能である。マルチコアCPU402は、第0のコア410と、第1のコア412と、第Nのコア414とを含むことが可能である。第0のコア410は、第0の動的クロックと、第0の動的クロックの上で実行されるDCVS(電圧スケーリング)アルゴリズム416とを含むことが可能である。第1のコア412は、第1のコア412上で実行される第1のDCVSアルゴリズム417を含むことが可能である。さらに、第Nのコア414は、第Nのコア414上で実行される第NのDCVSアルゴリズム418を含むことが可能である。或る特定の態様において、各DCVSアルゴリズム416、417、418が、それぞれのコア410、412、414上で独立に実行されることが可能である。さらに、各DCVSアルゴリズム416、417、418は、複数のコアのそれぞれのコア410、412、414上で完全に独立に実行されることが可能である。また、コア410、412、414ごとにDCVSアルゴリズム416、417、418の1つのインスタンスが存在し、さらにDCVSアルゴリズム416、417、418は、そのDCVSアルゴリズム416、417、418が実行されるコア410、412、414のクロックを監視し、制御することが可能である。各DCVSアルゴリズム416、417、418は、各コア410、412、414に関して異なるクロック周波数を独立に設定することが可能である。
【0021】
或る特定の態様において、各DCVSアルゴリズム416、417、418は、同一であることが可能であり、さらに各DCVSアルゴリズム416、417、418が、同一のパラメータ、例えば、アイドル時間、作業負荷などを監視することが可能である。別の態様において、各DCVSアルゴリズム416、417、418は、同一であることが可能であるが、各DCVSアルゴリズム416、417、418が、異なるパラメータを監視することが可能である。別の態様において、各DCVSアルゴリズム416、417、418は、異なることが可能であるが、各DCVSアルゴリズム416、417、418が、同一のパラメータを監視することが可能である。さらに別の態様において、各DCVSアルゴリズム416、417、418は、異なることが可能であり、さらに各DCVSアルゴリズム416、417、418が、異なるパラメータを監視することが可能である。
【0022】
別の態様において、第0のDCVSアルゴリズム416が、第0のコア410、第1のコア412、第Nのコア414、または以上のコア410、412、および414の任意の組合せからのアイドル情報を利用することが可能である。第1のDCVSアルゴリズム417が、第0のコア410、第1のコア412、第Nのコア414、または以上のコア410、412、および414の任意の組合せからのアイドル情報を利用することが可能である。また、第NのDCVSアルゴリズム418が、第0のコア410、第1のコア412、第Nのコア414、または以上のコア410、412、および414の任意の組合せからのアイドル情報を利用することも可能である。
【0023】
さらに、図示されるとおり、メモリ404は、メモリ404上に格納されたオペレーティングシステム420を含むことが可能である。オペレーティングシステム420は、スケジューラ422を含むことが可能であり、さらにスケジューラ422は、第1の実行キュー424と、第2の実行キュー426と、第Nの実行キュー428とを含むことが可能である。また、メモリ404は、メモリ404上に格納された第1のアプリケーション430と、第2のアプリケーション432と、第Nのアプリケーション434とを含むことも可能である。
【0024】
或る特定の態様において、アプリケーション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からそれらのタスク、スレッド、またはタスクとスレッドの組合せを取り出すことが可能である。
【0025】
図4は、メモリ404が並列性モニタ440を格納して含むことが可能であることも示す。並列性モニタ440は、オペレーティングシステム420およびマルチコアCPU402に接続されることが可能である。具体的には、並列性モニタ440は、オペレーティングシステム420内のスケジューラ422に接続されることが可能である。本明細書で説明される並列性モニタ440は、コア410、412、414上の作業負荷を監視することが可能であり、さらに並列性モニタ440は、コア410、412、414に対する電力を制御することが可能である。
【0026】
図5を参照すると、マルチコアデバイス内の複数のコアクロックを非同期で、独立に制御する方法の第1の態様が示され、全体的に500で表されている。方法500は、ブロック502で、デバイスの電源がオンにされていると、後続のステップが実行されることが可能なDo Loopを開始することが可能である。
【0027】
ブロック510で、第0のDCVSアルゴリズムが、第0のコア上で実行されることが可能である。次に、ブロック512で、第0のコアに関連する第0のクロックが、監視されることが可能である。さらに、ブロック514で、第0のコアに関連するアイドル時間が、監視されることが可能である。ブロック516で、第0のコアに関連する第0のクロックのクロック周波数が、第0のコアのアイドル時間に基づいて変更されることが可能である。さらに、ブロック518で、第0のコアの電圧が、第0のコアのアイドル時間に基づいて変更されることが可能である。
【0028】
判定519に移ると、電力コントローラが、デバイスの電源がオフにされているかどうかを判定することが可能である。デバイスの電源がオフにされている場合、方法は、終了することが可能である。そうではなく、デバイスの電源がオンにされたままである場合、方法500は、ステップ502の実行直後の地点に戻ることが可能であり、方法500は、説明されるとおり続くことが可能である。
【0029】
方法500の説明を続けると、ブロック520で、第1のDCVSアルゴリズムが、第1のコア上で実行されることが可能である。次に、ブロック522で、第1のコアに関連する第1のクロックが、監視されることが可能である。さらに、ブロック524で、第1のコアに関連するアイドル時間が、監視されることが可能である。ブロック526で、第1のコアに関連する第1のクロックのクロック周波数が、第1のコアのアイドル時間に基づいて変更されることが可能である。さらに、ブロック528で、第1のコアの電圧が、第1のコアのアイドル時間に基づいて変更されることが可能である。その後、方法500は、判定519に進み、本明細書で説明されるとおり続くことが可能である。
【0030】
ブロック530で、第NのDCVSアルゴリズムが、第Nのコア上で実行されることが可能である。次に、ブロック532で、第Nのコアに関連する第Nのクロックが、監視されることが可能である。さらに、ブロック534で、第Nのコアに関連するアイドル時間が、監視されることが可能である。ブロック536で、第Nのコアに関連する第Nのクロックのクロック周波数が、第Nのコアのアイドル時間に基づいて変更されることが可能である。さらに、ブロック538で、第1のコアの電圧が、第1のコアのアイドル時間に基づいて変更されることが可能である。その後、方法500は、判定519に進み、本明細書で説明されるとおり続くことが可能である。
【0031】
ステップ510から518、ステップ520からステップ528、およびステップ530から538は並行に実行されてもよいことが認識され得る。このため、各コアに関連するクロックに、独立した、非同期のクロック制御がもたらされることが可能である。
【0032】
図6を参照すると、マルチコアデバイス内の複数のコアクロックを非同期で、独立に制御する方法の第2の態様が示され、全体的に600で表されている。方法600は、ブロック602で、デバイスの電源がオンにされていると、後続のステップが実行されることが可能なDo Loopを開始することが可能である。
【0033】
ブロック610で、第0のDCVSアルゴリズムが、第0のコア上で実行されることが可能である。次に、ブロック612で、第0のコアに関連する第0のクロックが、監視されることが可能である。さらに、ブロック614で、第0のコアに関連する作業負荷が、監視されることが可能である。ブロック616で、第0のコアに関連する第0のクロックのクロック周波数が、第0のコアの作業負荷に基づいて変更されることが可能である。さらに、ブロック618で、第0のコアの電圧が、第0のコアの作業負荷に基づいて変更されることが可能である。
【0034】
判定619に移ると、電力コントローラが、デバイスの電源がオフにされているかどうかを判定することが可能である。デバイスの電源がオフにされている場合、方法は、終了することが可能である。そうではなく、デバイスの電源がオンにされたままである場合、方法600は、ステップ602の実行直後の地点に戻ることが可能であり、方法600は、説明されるとおり続くことが可能である。
【0035】
方法600の説明を続けると、ブロック620で、第1のDCVSアルゴリズムが、第1のコア上で実行されることが可能である。次に、ブロック622で、第1のコアに関連する第1のクロックが、監視されることが可能である。さらに、ブロック624で、第1のコアに関連する作業負荷が、監視されることが可能である。ブロック626で、第1のコアに関連する第1のクロックのクロック周波数が、第1のコアの作業負荷に基づいて変更されることが可能である。さらに、ブロック628で、第1のコアの電圧が、第1のコアの作業負荷に基づいて変更されることが可能である。その後、方法600は、判定619に進み、本明細書で説明されるとおり続くことが可能である。
【0036】
ブロック630で、第NのDCVSアルゴリズムが、第Nのコア上で実行されることが可能である。次に、ブロック632で、第Nのコアに関連する第Nのクロックが、監視されることが可能である。さらに、ブロック634で、第Nのコアに関連する作業負荷が、監視されることが可能である。ブロック636で、第Nのコアに関連する第Nのクロックのクロック周波数が、第Nのコアの作業負荷に基づいて変更されることが可能である。さらに、ブロック638で、第1のコアの電圧が、第1のコアの作業負荷に基づいて変更されることが可能である。その後、方法600は、判定619に進み、本明細書で説明されるとおり続くことが可能である。
【0037】
ステップ610から618、ステップ620からステップ628、およびステップ630から638は並行に実行されてもよいことが認識され得る。このため、各コアに関連するクロックに、独立した、非同期のクロック制御がもたらされることが可能である。
【0038】
本明細書で説明される方法ステップは、必ずしも説明されるとおりの順序で実行されなくてもよいことを理解されたい。さらに、「その後」、「すると」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、単に、方法ステップの説明において読者を案内するために使用される。さらに、本明細書で説明される方法は、PCD(ポータブルコンピューティングデバイス)上で実行可能であるものとして説明される。PCDは、モバイル電話デバイス、携帯情報端末デバイス、スマートブックコンピューティングデバイス、ネットブックコンピューティングデバイス、ラップトップコンピューティングデバイス、デスクトップコンピューティングデバイス、または以上の組合せであることが可能である。
【0039】
本明細書で開示されるシステムおよび方法は、複数のコア上で完全に独立に実行されることが可能である、完全に独立したDCVS(DVFSとしても知られる)アルゴリズムを提供する。コアごとにDCVSアルゴリズムの1つのインスタンスが存在し、さらに各インスタンスは、そのコアだけのクロックを監視し、制御する。その複数のアルゴリズムは、その複数のコアに関して異なるクロック周波数を独立に設定することを許される。
【0040】
1つの特定の態様において、各DCVSアルゴリズムインスタンスが、各コア上で費やされるアイドル時間のパーセンテージを監視することが可能である。コアアイドル時間は、オペレーティングシステムから、あるいはSPDM(システムプロファイリングおよび診断モニタ)などの専用の外部ハードウェアカウンタを介して獲得されることが可能である。別の態様において、各DCVSアルゴリズムが、タスクメモリ限界性などの作業負荷特性を監視することが可能であり、さらに各コア上で実行されている様々なタスク特性に基づいて周波数を独立に調整する。
【0041】
1つまたは複数の例示的な態様において、説明される機能は、ハードウェアで、ソフトウェアで、ファームウェアで、または以上の任意の組合せで実施されることが可能である。ソフトウェアで実施される場合、それらの機能は、マシン可読媒体、すなわち、コンピュータ可読媒体などのコンピュータプログラム製品上に格納される、またはそのようなコンピュータプログラム製品上の1つまたは複数の命令もしくはコードとして伝送されることが可能である。コンピュータ可読媒体には、1つの場所から別の場所にコンピュータプログラムを移すことを円滑にする任意の媒体を含め、コンピュータ記憶媒体と通信媒体の両方が含まれる。記憶媒体は、コンピュータによってアクセスされることが可能である任意の利用可能な媒体であることが可能である。例として、限定としてではなく、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態で所望されるプログラムコードを伝送する、または格納するのに使用されることが可能であり、さらにコンピュータによってアクセスされることが可能である他の任意の媒体を備えることが可能である。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、より対線、DSL(デジタル加入者線)、あるいは赤外線、電波、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他の遠隔ソースから伝送される場合、その同軸ケーブル、光ファイバケーブル、より対線、DSL、あるいは赤外線、電波、およびマイクロ波などのワイヤレス技術が、媒体の定義に含められる。本明細書で使用されるディスク(Disk)およびディスク(Disc)には、CD(コンパクトディスク)、レーザディスク、光ディスク、DVD(デジタルバーサタイルディスク)、フロッピー(登録商標)ディスク、およびブルーレイディスクが含まれ、ただし、ディスク(Disk)は、通常、データを磁気的に再現するのに対して、ディスク(Disc)は、データを、レーザを使用して光学的に再現する。また、以上の媒体の組合せも、コンピュータ可読媒体の範囲に含められなければならない。
【0042】
選択された態様が、図示され、詳細に説明されてきたが、添付の特許請求の範囲によって規定される、本発明の趣旨および範囲を逸脱することなく、様々な代替および変更が行われ得ることが理解されよう。
【符号の説明】
【0043】
100、320 ポータブルコンピューティングデバイス
102 筐体
104 上側筐体部分
106 下側筐体部分
108 ディスプレイ
110 トラックボール入力デバイス
112 電源オンボタン
114 電源オフボタン
116 インジケータライト
118 スピーカ
120 マルチボタンキーボード
122 リセットボタン

【特許請求の範囲】
【請求項1】
マルチコア中央処理装置内の複数のコアクロックを制御する方法であって、
第0のコア上で第0のDCVS(動的クロックおよび電圧スケーリング)アルゴリズムを実行するステップと、
第1のコア上で第1のDCVSアルゴリズムを実行するステップとを備え、前記第0のDCVSアルゴリズムは、前記第0のコアに関連する第0のクロック周波数を独立に制御するように動作可能であり、さらに前記第1のDCVSアルゴリズムは、前記第1のコアに関連する第1のクロック周波数を独立に制御するように動作可能である方法。
【請求項2】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと同一であり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて同一のパラメータを監視する請求項1に記載の方法。
【請求項3】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと異なり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて同一のパラメータを監視する請求項1に記載の方法。
【請求項4】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと同一であり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて異なるパラメータを監視する請求項1に記載の方法。
【請求項5】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと異なり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて異なるパラメータを監視する請求項1に記載の方法。
【請求項6】
前記第0のコアに関連する第0のクロックを独立に監視するステップと、
前記第1のコアに関連する第1のクロックを独立に監視するステップとをさらに備える請求項1に記載の方法。
【請求項7】
前記第0のコアのアイドル時間を独立に監視するステップと、
前記第1のコアのアイドル時間を独立に監視するステップとをさらに備える請求項6に記載の方法。
【請求項8】
前記第0のコアの前記アイドル時間に基づいて前記第0のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するステップと、
前記第1のコアの前記アイドル時間に基づいて前記第1のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するステップとをさらに備える請求項7に記載の方法。
【請求項9】
前記第0のコアの作業負荷を独立に監視するステップと、
前記第1のコアの作業負荷を独立に監視するステップとをさらに備える請求項6に記載の方法。
【請求項10】
前記第0のコアの前記作業負荷に基づいて前記第0のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するステップと、
前記第1のコアの前記作業負荷に基づいて前記第1のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するステップとをさらに備える請求項9に記載の方法。
【請求項11】
第0のコア上で第0のDCVS(動的クロックおよび電圧スケーリング)アルゴリズムを実行するための手段と、
第1のコア上で第1のDCVSアルゴリズムを実行するための手段とを備えるワイヤレスデバイスであって、
前記第0のDCVSアルゴリズムは、前記第0のコアに関連する第0のクロック周波数を独立に制御するように動作可能であり、さらに前記第1のDCVSアルゴリズムは、前記第1のコアに関連する第1のクロック周波数を独立に制御するように動作可能であるワイヤレスデバイス。
【請求項12】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと同一であり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて同一のパラメータを監視する請求項11に記載のワイヤレスデバイス。
【請求項13】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと異なり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて同一のパラメータを監視する請求項11に記載のワイヤレスデバイス。
【請求項14】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと同一であり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて異なるパラメータを監視する請求項11に記載のワイヤレスデバイス。
【請求項15】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと異なり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて異なるパラメータを監視する請求項11に記載のワイヤレスデバイス。
【請求項16】
前記第0のコアに関連する第0のクロックを独立に監視するための手段と、
前記第1のコアに関連する第1のクロックを独立に監視するための手段とをさらに備える請求項11に記載のワイヤレスデバイス。
【請求項17】
前記第0のコアのアイドル時間を独立に監視するための手段と、
前記第1のコアのアイドル時間を独立に監視するための手段とをさらに備える請求項16に記載のワイヤレスデバイス。
【請求項18】
前記第0のコアの前記アイドル時間に基づいて前記第0のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するための手段と、
前記第1のコアの前記アイドル時間に基づいて前記第1のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するための手段とをさらに備える請求項17に記載のワイヤレスデバイス。
【請求項19】
前記第0のコアの作業負荷を独立に監視するための手段と、
前記第1のコアの作業負荷を独立に監視するための手段とをさらに備える請求項16に記載のワイヤレスデバイス。
【請求項20】
前記第0のコアの前記作業負荷に基づいて前記第0のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するための手段と、
前記第1のコアの前記作業負荷に基づいて前記第1のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するための手段とをさらに備える請求項19に記載のワイヤレスデバイス。
【請求項21】
第0のコア上で第0のDCVS(動的クロックおよび電圧スケーリング)アルゴリズムを実行し、さらに
第1のコア上で第1のDCVSアルゴリズムを実行するように動作可能なプロセッサを備えるワイヤレスデバイスであって、
前記第0のDCVSアルゴリズムは、前記第0のコアに関連する第0のクロック周波数を独立に制御するように動作可能であり、さらに前記第1のDCVSアルゴリズムは、前記第1のコアに関連する第1のクロック周波数を独立に制御するように動作可能であるワイヤレスデバイス。
【請求項22】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと同一であり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて同一のパラメータを監視する請求項21に記載のワイヤレスデバイス。
【請求項23】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと異なり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて同一のパラメータを監視する請求項21に記載のワイヤレスデバイス。
【請求項24】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと同一であり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて異なるパラメータを監視する請求項21に記載のワイヤレスデバイス。
【請求項25】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと異なり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて異なるパラメータを監視する請求項21に記載のワイヤレスデバイス。
【請求項26】
前記プロセッサは、
前記第0のコアに関連する第0のクロックを独立に監視し、さらに
前記第1のコアに関連する第1のクロックを独立に監視するようにさらに動作可能である請求項21に記載のワイヤレスデバイス。
【請求項27】
前記プロセッサは、
前記第0のコアのアイドル時間を独立に監視し、さらに
前記第1のコアのアイドル時間を独立に監視するようにさらに動作可能である請求項26に記載のワイヤレスデバイス。
【請求項28】
前記プロセッサは、
前記第0のコアの前記アイドル時間に基づいて前記第0のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更し、さらに
前記第1のコアの前記アイドル時間に基づいて前記第1のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するようにさらに動作可能である請求項27に記載のワイヤレスデバイス。
【請求項29】
前記プロセッサは、
前記第0のコアの作業負荷を独立に監視し、さらに
前記第1のコアの作業負荷を独立に監視するようにさらに動作可能である請求項26に記載のワイヤレスデバイス。
【請求項30】
前記プロセッサは、
前記第0のコアの前記作業負荷に基づいて前記第0のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更し、さらに
前記第1のコアの前記作業負荷に基づいて前記第1のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するようにさらに動作可能である請求項29に記載のワイヤレスデバイス。
【請求項31】
第0のコア上で第0のDCVS(動的クロックおよび電圧スケーリング)アルゴリズムを実行するための少なくとも1つの命令と、
第1のコア上で第1のDCVSアルゴリズムを実行するための少なくとも1つの命令とを備えるメモリ媒体であって、
前記第0のDCVSアルゴリズムは、前記第0のコアに関連する第0のクロック周波数を独立に制御するように動作可能であり、さらに前記第1のDCVSアルゴリズムは、前記第1のコアに関連する第1のクロック周波数を独立に制御するように動作可能であるメモリ媒体。
【請求項32】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと同一であり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて同一のパラメータを監視する請求項31に記載のメモリ媒体。
【請求項33】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと異なり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて同一のパラメータを監視する請求項31に記載のメモリ媒体。
【請求項34】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと同一であり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて異なるパラメータを監視する請求項31に記載のメモリ媒体。
【請求項35】
前記第0のDCVSアルゴリズムは、前記第1のDCVSアルゴリズムと異なり、さらに前記第0のDCVSアルゴリズムと前記第1のDCVSアルゴリズムは、前記第0のコア、および前記第1のコアにおいて異なるパラメータを監視する請求項31に記載のメモリ媒体。
【請求項36】
前記第0のコアに関連する第0のクロックを独立に監視するための少なくとも1つの命令と、
前記第1のコアに関連する第1のクロックを独立に監視するための少なくとも1つの命令とをさらに備える請求項31に記載のメモリ媒体。
【請求項37】
前記第0のコアのアイドル時間を独立に監視するための少なくとも1つの命令と、
前記第1のコアのアイドル時間を独立に監視するための少なくとも1つの命令とをさらに備える請求項36に記載のメモリ媒体。
【請求項38】
前記第0のコアの前記アイドル時間に基づいて前記第0のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するための少なくとも1つの命令と、
前記第1のコアの前記アイドル時間に基づいて前記第1のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するための少なくとも1つの命令とをさらに備える請求項37に記載のメモリ媒体。
【請求項39】
前記第0のコアの作業負荷を独立に監視するための少なくとも1つの命令と、
前記第1のコアの作業負荷を独立に監視するための少なくとも1つの命令とをさらに備える請求項36に記載のメモリ媒体。
【請求項40】
前記第0のコアの前記作業負荷に基づいて前記第0のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するための少なくとも1つの命令と、
前記第1のコアの前記作業負荷に基づいて前記第1のコアのクロック周波数、電圧、またはクロック周波数と電圧の組合せを独立に変更するための少なくとも1つの命令とをさらに備える請求項39に記載のメモリ媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2013−513896(P2013−513896A)
【公表日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2012−544628(P2012−544628)
【出願日】平成22年12月8日(2010.12.8)
【国際出願番号】PCT/US2010/059535
【国際公開番号】WO2011/084328
【国際公開日】平成23年7月14日(2011.7.14)
【出願人】(507364838)クアルコム,インコーポレイテッド (446)
【Fターム(参考)】