説明

イベント処理のためのターボ性能を向上させる方法および装置

【課題】マルチコアプロセッサにおけるタスクおよびイベント処理のための性能を向上させる。
【解決手段】装置160は、複数のプロセッサ要素131−134とタスクルーティングロジック130とプロセッサ要素を制御して、少なくとも1つのアクティブプロセッサ要素を、少なくとも1つの他のプロセッサ要素がアイドルである場合に、より高い周波数で動作させるターボモードロジック140を含む。プロセッサ要素の少なくとも1つがターボモードにある場合には、タスクルーティングロジックは、性能損失の比較に少なくとも基づいて、タスク101を実行するプロセッサ要素を選択する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、割り込みイベント処理に係り、より具体的には本発明の実施形態はイベント処理性能の向上に係る。
【背景技術】
【0002】
マルチコアプロセッサにおいては、プロセッサコアを制御して、利用可能な電力のヘッドルームを利用して性能を最大化することが望ましいと思われる。特定のワークロードの処理に全てのプロセッサコアを利用する必要がない状況においては、アイドル状態にあるコアを停止して、アクティブ状態にある他のコアに対して電力をチャネリングする。アクティブ状態にあるコアは通常、より高い周波数において動作することによってターボモードへと遷移する。
【0003】
マルチコアプロセッサにおけるタスクおよびイベント処理アルゴリズムは一般的に疑似ランダムであり、特定のコアがターボモードで動作するときの影響を考慮しない。この結果、システム性能全体に影響が及ぶことになる。
【図面の簡単な説明】
【0004】
本発明の実施形態は、以下の詳細な説明を、本発明の様々な実施形態の添付図面とともに読むことでよりよく理解されるが、図面は本発明を特定の実施形態に制限する意図で捉えられるべきではなく、説明および理解を促す目的のみから示されていることを理解されたい。
【図1】割り込みイベントに応じてタスクを実行するプロセッサ要素を選択する装置を含むコンピュータシステムの一実施形態を示す。
【図2】割り込みイベントに応じてタスクを実行するプロセッサ要素を選択する処理の一実施形態のフロー図を示す。
【図3】本発明の一実施形態とともに利用されるコンピュータシステムを示す。
【図4】本発明の一実施形態とともに利用されるポイントツーポイントコンピュータシステムを示す。
【発明を実施するための形態】
【0005】
イベント処理のための性能を向上させる装置の実施形態を示す。一実施形態では、装置は、複数のプロセッサ要素とタスクルーティングロジックとを含む。プロセッサ要素の少なくとも1つがターボモードにある場合には、タスクルーティングロジックは、性能損失の比較に少なくとも基づいて、タスクを実行するプロセッサ要素を選択する。
【0006】
以下の記載において、多くの特定の詳細を示して本発明の実施形態の完全な理解を促す。しかし、本発明の実施形態がこれら特定の詳細がなくても実施可能であることは当業者であれば理解するところである。また一方で、公知の構造およびデバイスは詳細を示すのではなく、ブロック図という形態で示すことで、本発明の実施形態を曖昧にしないようにしている。
【0007】
また一方で、例えばマイクロプロセッサアーキテクチャ、仮想マシンモニタ、電力制御、クロックゲーティング、および公知のロジックの動作の詳細等の公知のコンポーネントまたは方法は詳細に示さないことで本発明を不当に曖昧にしないようにしている。
【0008】
しかし、これらおよび類似する用語の全ては、適切な物理量と関連付けられるべきものであり、便宜上の符号に過ぎないことを理解されたい。そうではないと明記しない限り、以下の説明から明らかとなるように、「処理(processing)」、「コンピューティング/計算(computing)」、「計算(calculating)」、「決定/判断(determining)」、「表示(displaying)」等の用語を用いて記載される本明細書の説明は、コンピュータシステムのレジスタおよび/またはメモリの物理(電子)量で表されるデータを、コンピュータシステムのメモリ、レジスタ、その他の同様の情報記憶、送信、または表示デバイス内の物理量として同様に表される他のデータに操作および/または変換する、コンピュータシステムまたは同様の電子コンピューティングデバイスの動作および/または処理のことを示している。
【0009】
本発明の実施形態はさらに、ここで記載される動作を実行する装置に関する。装置のなかには、所望の目的に特別に構築されるものもあれば、コンピュータに格納されているコンピュータプログラムにより選択的に起動または再構成される汎用コンピュータを含むものもある。これらコンピュータプログラムは、フロッピー(登録商標)ディスク、光ディスク、CD−ROM、DVD−ROM、光磁気ディスク等の任意の種類のディスク、ROM、RAM、EPROM、EEPROM(登録商標)、NVRAM、磁気カードまたは光カード、あるいは電子命令を格納し、各々がコンピュータシステムバスに連結された任意の種類の媒体を含むがこれらに限定されないコンピュータ可読記憶媒体に格納することができる。
【0010】
ここで記載する方法および装置は、イベント処理用にプロセッサ要素を選択する目的に利用される。特に、イベント処理用にプロセッサ要素を選択することは、主に、マルチコアプロセッサコンピュータシステムとの関連で記載される。しかしながら、イベント処理用にプロセッサ要素を選択する方法および装置はこれに限定されず、任意の集積回路デバイスまたはシステム(例えば、セルラー式電話機、携帯情報端末(PDA)、埋め込みコントローラ、モバイルプラットフォーム、デスクトッププラットフォーム、およびサーバプラットフォーム)上に、またはこれらと関連付けて実装することもでき、並びに、コア、ハードウェアスレッド、ソフトウェアスレッド、または論理プロセッサ、アクセラレータコア、その他のプロセッサリソースと協同させて実装することもできる。加えて、イベント処理用のプロセッサ要素の選択は、ハードウェア上で実行されているオペレーティングシステムまたはハイパーバイザ等の任意のハードウェア/ソフトウェア環境で行うことができる。
<概略>
【0011】
イベント処理のための性能を向上させる装置の実施形態を示す。一実施形態では、装置は、複数のプロセッサ要素とタスクルーティングロジックとを含む。プロセッサ要素の少なくとも1つがターボモードにある場合には、タスクルーティングロジックが、性能損失の比較に少なくとも基づいて、タスクを実行するプロセッサ要素を選択する。
【0012】
図1は、イベントに応じてタスクを実行するプロセッサ要素を選択する装置を含むコンピュータシステムの一実施形態を示す。バスおよび周辺装置等の多くの関連コンポーネントは示さないことで、本発明を曖昧にしないように示している。図1を参照すると、一実施形態では、プロセッサ160は性能計算ロジック110、タスクルーティングロジック130、ターボモードロジック140、および、プロセッサ要素131−134等の複数のプロセッサ要素を含む。一実施形態では、性能計算ロジックはさらにメモリ111を含む。
【0013】
一実施形態では、プロセッサ要素は、プロセッサ160の他の共有リソース(例えば、保留ユニット、実行ユニット、より高レベルのキャッシュ、メモリ等)へのアクセスを共有するスレッド、処理(process)、コンテキスト、論理プロセッサ、ハードウェアスレッド、コア、アクセラレータコア、または、任意のプロセッサ要素を含む。一実施形態では、プロセッサ要素はスレッドユニット(つまり、ソフトウェアスレッドでの実行が独立してスケジュールされている命令を有することのできる要素のこと)である。一実施形態では、物理プロセッサは、任意の数の他のプロセッサ要素(例えばコアまたはハードウェアスレッド)を含む集積回路である。
【0014】
一実施形態では、コアは、別のコアに関して独立したアーキテクチャ状態を維持することのできる集積回路に設けられるロジックである。各々独立して維持されるアーキテクチャ状態は、少なくとも一部の専用実行リソースと関連付けられる。一実施形態では、ハードウェアスレッドは、別のハードウェアスレッドに関して独立したアーキテクチャ状態を維持することのできる集積回路に設けられるロジックである。各々独立して維持されるハードウェアスレッドは、実行リソースへのアクセスを共有する。一部の実施形態では、コアおよびハードウェアスレッドは互換性を有する。一実施形態では、コアまたはハードウェアスレッドをプロセッサ要素とも称する。
【0015】
一実施形態では、ハードウェアスレッド、コア、またはプロセッサ要素は、オペレーティングシステムまたは管理ソフトウェアから、個々の論理プロセッサとしてみなされる。ソフトウェアプログラムは、各論理プロセッサ上で動作を個々にスケジュールすることができる。加えて、一部の実施形態では、各コアが、複数のソフトウェアスレッドを実行する複数のハードウェアスレッドを含む。
【0016】
一実施形態では、ハイパーバイザ(不図示)が、ソフトウェア(例えば仮想マシン)とハードウェアリソース(例えばプロセッサ160)との間のインタフェースを提供する。一実施形態では、ハイパーバイザは、複数の仮想マシンが並行に独立して実行可能となるようにハードウェアを抽象化(abstract)する。一実施形態では、仮想マシンは、例えばタスク、ユーザレベルのアプリケーション、ゲストソフトウェア、オペレーティングシステム、別の仮想マシン、仮想マシンモニタ、他の実行可能コード、あるいは任意のこれらの組み合わせといったプログラムに対してソフトウェア実行環境を提供する。一実施形態では、ハイパーバイザは、異なるプログラムに対してハードウェアリソース(例えばコア、ハードウェアスレッド、プロセッサ要素)を割り当てる。
【0017】
一実施形態ではコンピュータシステムは、インターコネクトを介して信号を送受信する入出力(I/O)バッファを含む。このインターコネクトの例には、GTL(gunning transceiver logic)バス、GTL+バス、DDR(double data rate)バス、ポンプバス(pumped bus)、差動バス、キャッシュコヒーレントバス、ポイントツーポイントバス、マルチドロップバス、または、任意の公知のバスプロトコルが実装された他の公知のインターコネクトが含まれる。
【0018】
一実施形態では、コンピュータシステムおよび特にプロセッサ160は異なる電力状態(例えばC2状態およびC3状態)を、電力制御インタフェース(ACPI)仕様(ACPI仕様、3.0b改定版、2006年10月10日参照)に従ってサポートする。一実施形態では、スリープ状態(例えばC2状態およびC3状態)はさらにアイドル状態とも称される。一実施形態では、アイドル状態にあるプロセッサ要素はスリープコア、アイドルコア、あるいは非アクティブコアとも称される。一実施形態では、電力ゲートは、アイドルプロセッサ要素への電力供給を遮断する。アイドルプロセッサ要素は、起こされることでプログラムの実行を再開する。
【0019】
一実施形態では、ターボモードロジック140は、プロセッサ要素131−134を制御して、少なくとも1つのアクティブプロセッサ要素を、少なくとも1つの他のプロセッサ要素がアイドルである場合に、より高い周波数で動作させる。この結果、利用可能な電力および熱のヘッドルームがアクティブプロセッサ要素により利用されて、システムの性能全体が増加または向上する。一実施形態では、このような動作モードをターボモードと称する。ターボモードの間は、ターボモードロジック140が1以上のアイドルプロセッサ要素の電力および熱のヘッドルームを1以上のアクティブプロセッサ要素に再配分して、該1以上のアクティブプロセッサ要素の動作周波数を増加させる。
【0020】
一実施形態では、プロセッサをターボモードへと、あるいはターボモードから遷移させる(例えば、より高い性能レベルへと、またはより低い性能レベルへと遷移させる)ファクタを、イベントと称する。一実施形態では、イベントは、プロセッサ要素131−134に再ルーティグ可能な割り込みイベントである。一実施形態では、プロセッサ160は一部の対応するタスクまたはサービスをイベントに応じて実行する。一実施形態では、割り込みイベントは、例えばディスクドライブ、ネットワークカード、および入出力デバイス等のデバイスから生じる。
【0021】
一実施形態では、処理計算ロジック110が、イベント処理における性能損失を計算する。一実施形態では、プロセッサ160は、イベント処理に応じて1つのタスクまたは複数のタスクを実行することから、ワークロードの完了にさらに時間を要する。一実施形態では性能損失を百分率で表す。例えば、ワークロードの実行時間が10msである場合、10%の性能損失によって、ワークロードの完了には11.1ms(つまり10ms/(1−0.10))が必要となる。
【0022】
一実施形態では、プロセッサ160がターボモードの間に、タスクルーティングロジック130は(イベントの結果)タスク101を受信する。一実施形態では、例えば、プロセッサ要素131は、プロセッサ要素132がアイドルモードにある間、ターボモードにある。一実施形態では、ターボルーティングロジック130は、異なるプロセッサ要素からタスク101を完了するプロセッサ要素(アクティブプロセッサ要素、スリーププロセッサ要素のいずれであってもよい)を選択することに関する性能損失に基づいて、プロセッサ要素のいずれか1つを選択する。
【0023】
一実施形態では、アイドルプロセッサ要素がタスク101実行に利用される場合の性能損失のことを、WPL(Waking Performance Loss)と称する。一実施形態では、アクティブプロセッサ要素(ターボモードにある)は、より低い動作周波数へと遷移して、スリーププロセッサ要素を起こすべく電力をチャネリングする。一実施形態では、性能計算ロジックは、アクティブプロセッサ要素が実行中のプログラムのスケーラビリティファクタおよびアクティブプロセッサ要素に関する動作周波数の低下に基づいてWPLを決定する。当業者であれば、他のファクタおよびそれらの組み合わせを用いてWPLを決定することができることを理解する。
【0024】
一実施形態では、周波数スケーラビリティファクタは、周波数の増加(あるいは低下)を、特定のワークロードの性能の増加(または低下)に変換するときに利用される比率である。例えば、動作周波数が10%増加すると性能が10%増加するようなワークロードは、スケーラビリティファクタ1に相当する。また例えば、動作周波数が1%低下すると性能が0.75%低下するようであれば、スケーラビリティファクタ0.75に相当する。
【0025】
一実施形態では、メモリ111は、アクティブプロセッサ要素が実行中のプログラムの周波数スケーラビリティファクタに関する情報を格納する。一実施形態では、メモリ111は、アクティブプロセッサ要素がターボモードから遷移して退出したときの動作周波数の低下に関する情報を格納する。一実施形態では、この情報はモニタロジック(不図示)が収集し、現在の値を予測/推定する平均履歴値を含む。
【0026】
一実施形態では、アクティブプロセッサ要素を利用してタスク101を実行するときの性能損失は、APL(Active Performance Loss)と称される。一実施形態では、性能計算ロジック110は、(イベントに応じて)タスク101を実行する処理時間の量およびアクティブプロセッサ要素が実行中のプログラムに関する利用率の値に基づいてAPLを決定する。一実施形態では、イベント処理にかかる処理時間をプログラムワークロードの全ランタイムで除算して得られた値に基づいてAPLを決定する。当業者であれば、他のファクタおよびそれらの組み合わせを用いてAPLを決定することができることを理解する。
【0027】
一実施形態では、メモリ111は、イベント処理に係る処理時間の量に関する情報を格納する。一実施形態では、この情報はモニタロジック(不図示)が収集し、現在の値を予測/推定する平均履歴値を含む。一実施形態では、モニタロジックはさらに、アクティブプロセッサ要素が実行中のプログラムに関する利用率の値を提供する。
【0028】
一実施形態では、プロセッサ160がターボモードにある場合、タスクルーティングロジック130が、潜在的な性能損失の比較に基づいて、イベントを処理するプロセッサ要素を決定する。一実施形態では、タスクルーティングロジック130は、プロセッサ160(あるいはプロセッサ要素131−134のいずれか)がターボモードにあるか否かを、ターボモードロジック140からの情報に基づいて判断する。
【0029】
一実施形態では、WPLがAPLよりも小さい場合、タスクルーティングロジック130は、アイドルプロセッサ要素をイベント処理用に選択する。さもなくば、タスクルーティングロジック130はイベントを、(現在ターボモードにある)アクティブプロセッサ要素に送る。
【0030】
一実施形態では、プロセッサ要素は、出口レイテンシーがより小さく節電効果が中間であるような浅いC状態(例えばACPIのC1状態)から、出口レイテンシーがより長くより高い節電効果が行われるような深いC状態(例えばACPIのC3状態)にわたる範囲の様々なスリープ状態での動作が可能である。従って、WPLおよびAPLを含む性能損失の判断は、スリープコアのC状態によって異なる。一実施形態では、プロセッサ要素を深いC状態から起こすことは、プロセッサ要素を浅いC状態から起こすことよりも、高価である(従ってより高い性能損失を生じる)。
【0031】
図2は、割り込みイベントに応じてタスクを実行する(プロセッサの)プロセッサ要素を選択する処理の一実施形態のフロー図を示す。処理は、ハードウェア(回路、専用ロジック等)、ソフトウェア(例えば汎用コンピュータシステムまたは専用マシンで実行されるようなもの)、あるいはこれら両方の組み合わせを含みうる処理ロジックが実行する。一実施形態では、処理は、コントローラ(図1のタスクルーティングロジック130)と協同して実行される。一実施形態では、処理は図3のコンピュータシステムが実行する。
【0032】
図2を参照すると、一実施形態では、処理ロジックは、再ルーティング可能イベントを受信することから開始される(処理ブロック200)。処理ロジックは、イベントに応じてタスクまたはサービスを実行する。
【0033】
一実施形態では、処理ロジックは、(プロセッサの)プロセッサ要素のいずかがターボモードで動作しているか否かを判断する(処理ブロック210)。一実施形態では、いずれのプロセッサ要素もターボモードで動作していない場合には、処理ロジックは、イベントを処理するプロセッサ要素を任意に選択する(処理ブロック241)。別の実施形態では、いずれのプロセッサ要素もターボモードで動作していない場合には、処理ロジックは、節電モードにあるプロセッサ要素(例えばスリープコア)を選択して、イベントを処理させる。
【0034】
一方、プロセッサ要素のいずれかがターボモードにある場合には、一実施形態では、処理ロジックは、潜在的な性能損失を決定する。
【0035】
一実施形態では、処理ロジックは、アイドルプロセッサ要素を利用してタスクを実行するときのWPL(Waking Performance Loss)を決定する(処理ブロック220)。一実施形態では、処理ロジックは、アクティブプロセッサ要素が実行中のプログラムの周波数スケーラビリティファクタおよびアクティブプロセッサ要素に関する動作周波数の低下に基づいてWPLを決定する。
【0036】
一実施形態では、処理ロジックは、アクティブプロセッサ要素を利用してタスクを実行するときのAPL(Active Performance Loss)を決定する(処理ブロック221)。一実施形態では、処理ロジックは、タスクを実行する処理時間の量およびアクティブプロセッサ要素が実行中のプログラムに関する利用率の値に基づいてAPLを決定する。
【0037】
一実施形態では、処理ロジックは、WPLとAPLとを比較する(処理ブロック230)。一実施形態では、WPLがAPLより小さい場合、処理ロジックは、アイドルプロセッサ要素を選択してタスクを実行させる(処理ブロック242)。さもなくば、処理ロジックは、ターボモードにあるアクティブプロセッサ要素を選択してタスクを実行させる(処理ブロック243)。
【0038】
本発明の実施形態は、様々な電子デバイスおよび論理回路での実装が可能である。さらに、本発明の実施形態を含むデバイスおよび回路は、様々なコンピュータシステムに組み込むことができる。本発明の実施形態はさらに、他のコンピュータシステムトポロジーおよびアーキテクチャに組み込むことができる。
【0039】
例えば図3は、本発明の一実施形態とともに利用されるコンピュータシステムを示す。プロセッサ705は、レベル1(L1)キャッシュメモリ706、レベル2(L2)キャッシュメモリ710、およびメインメモリ715からのデータにアクセスする。本発明の他の実施形態では、キャッシュメモリ706は、マルチレベルキャッシュメモリであってよく、コンピュータシステムメモリ階層構造においてL1キャッシュとL2キャッシュ等の他のメモリとを含み、キャッシュメモリ710は、L3キャッシュまたはよりマルチレベルなキャッシュ等の、より低レベルの後続するキャッシュメモリである。さらに、他の実施形態では、コンピュータシステムは、複数のプロセッサコア用の共有キャッシュとして、キャッシュメモリ710を有することができる。
【0040】
プロセッサ705は、任意の数のプロセッサコアを有することができる。しかし本発明の他の実施形態は、システムの他のデバイス内に実装することができ、または、システム全体にハードウェア、ソフトウェア、あるいはこれらのうちの組み合わせのいずれかとして分散させることもできる。一実施形態では、プロセッサ705は、例えば図1のタスクルーティングロジック130等のコンポーネントに類似したロジックを含む。
【0041】
メインメモリ715は、DRAM,HDD720、NVRAM技術に基づく固体ディスク725、または、ネットワークインタフェース730を介して、または、様々な記憶デバイスおよび技術を含むワイヤレスインタフェース740を介してコンピュータシステムから遠隔に位置するメモリソース等の様々なメモリリソースに実装可能である。キャッシュメモリは、プロセッサ内、または、プロセッサに近接した位置(例えばプロセッサのローカルバス707上)に設けることができる。さらにキャッシュメモリは、6つのトランジスタ(6T)セルまたは、これと略等しい、または、これよりアクセススピードの速い他のメモリセル等の比較的高速のメモリセルを含んでよい。
【0042】
しかし本発明の他の実施形態は、図3のシステム内の他の回路、論理ユニット、またはデバイスに設けることもできる。さらに、本発明の他の実施形態は、図3に示す複数の回路、論理ユニット、またはデバイスに分散させることもできる。
【0043】
同様に、少なくとも1つの実施形態をポイントツーポイントコンピュータシステム内に実装することができる。例えば図4は、ポイントツーポイント(PtP)構成のコンピュータシステムを示す。特に図4のシステムでは、プロセッサ、メモリ、入出力デバイスが複数のポイントツーポイントインタフェースで相互接続されている。
【0044】
図4のシステムは、さらに複数のプロセッサを含んでよく、このうち、2つのみ(プロセッサ870、880)が明瞭化を目的として示されている。プロセッサ870、880は、各々、メモリ850、851と接続するローカルメモリコントローラハブ(MCH)811、821を含んでよい。プロセッサ870、880は、ポイントツーポイント(PtP)インタフェース回路812、822を利用してPtPインタフェース853を介してデータを交換してよい。プロセッサ870、880は、各々、ポイントツーポイントインタフェース回路813、823、860、861を利用してPtPインタフェース830、831を個々に介してチップセット890とデータを交換してよい。チップセット890はさらに、高性能グラフィックインタフェース862を介して高性能グラフィック回路852とデータを交換してよい。本発明の実施形態は、コンピュータバス(834または835)に連結されることも、チップセット890内に設けられることも、あるいは、データ記憶装置875と連結されることも、あるいは、図4のメモリ850に連結されることもできる。
【0045】
しかし本発明の他の実施形態は、図4のシステム内の他の回路、論理ユニット、またはデバイスに設けることもできる。さらに、本発明の他の実施形態は、図4に示す複数の回路、論理ユニット、またはデバイスに分散させることもできる。
【0046】
本発明は記載された実施形態に限定されず、添付請求項の精神および範囲内における変形および変更を行うことで実行することができる。例えば、本発明は、全ての種類の半導体集積回路(IC)チップに対する用途に利用可能であることを理解されたい。これらICチップの例には、プロセッサ、コントローラ、チップセットコンポーネント、プログラム可能な論理アレイ(PLA)、メモリチップ、ネットワークチップ等が含まれ、これらに限定はされない。さらに、サイズ、モデル、値、範囲について例示してきた場合であっても、本発明の実施形態がこれらに限定されるとうい意味ではないことを理解されたい。製造技術(例えばフォトリソグラフィー技術)の将来の進歩如何によって、より小型のデバイスが製造可能となることが予期される。
【0047】
以上の記載を読んだ当業者が本発明の実施形態の変形例および変更例を想到するであろうことは疑いがないので、例示された特定の実施形態のいずれをも限定として捉えることは適切ではないことを理解されたい。従って、様々な実施形態の詳細についての言及は、発明の核心部分とみなされる特徴のみを記載する性質の請求項の範囲を限定する意図はない。

【特許請求の範囲】
【請求項1】
第1のプロセッサ要素と、
第2のプロセッサ要素と、
前記第1のプロセッサ要素および前記第2のプロセッサ要素のうち少なくとも1つがターボモードにある場合に、性能損失の比較に少なくとも基づいて、前記第1のプロセッサ要素および前記第2のプロセッサ要素のうちタスクを実行するプロセッサ要素を選択するタスクルーティングロジックと
を備える装置。
【請求項2】
前記タスクルーティングロジックに連結されて、前記第1のプロセッサ要素が実行中のプログラムの周波数スケーラビリティファクタに関する情報を格納するメモリをさらに備える請求項1に記載の装置。
【請求項3】
前記第1のプロセッサ要素が実行中のプログラムの周波数スケーラビリティファクタと、前記第1のプロセッサ要素に関する動作周波数の低下とに基づいて、性能損失を決定する性能計算ロジックをさらに備える請求項1に記載の装置。
【請求項4】
前記タスクの実行期間と、前記第1のプロセッサ要素が実行中のプログラムに関する利用率の値とに基づいて、性能損失を決定する性能計算ロジックをさらに備える請求項1に記載の装置。
【請求項5】
前記タスクルーティングロジックは、前記第1のプロセッサ要素の選択および前記第2のプロセッサ要素の選択のそれぞれに関する第1の性能損失および第2の性能損失のうち、小さいほうの性能損失を選択する請求項1に記載の装置。
【請求項6】
前記第2のプロセッサ要素がアイドルであり、前記第2のプロセッサ要素が前記タスクを実行するよう選択された場合、前記第1のプロセッサ要素の動作周波数が低下する請求項1に記載の装置。
【請求項7】
前記ターボモードにある前記第1のプロセッサ要素は、前記第1のプロセッサ要素が、前記第2のプロセッサ要素がアイドルであることに起因してより多く受電する場合、通常モードにあるプロセッサ要素よりも高い周波数で動作する請求項1に記載の装置。
【請求項8】
前記タスクは、前記第1のプロセッサ要素または前記第2のプロセッサ要素のいずれかが実行可能な再ルーティング可能イベントである請求項1に記載の装置。
【請求項9】
第1のプロセッサ要素および第2のプロセッサ要素を含む複数のプロセッサ要素と、
前記複数のプロセッサ要素のうち少なくとも1つがターボモードにある場合に、前記第1のプロセッサ要素および前記第2のプロセッサ要素のうちタスクを実行するプロセッサ要素を選択するタスクルーティングロジックと、
前記タスクルーティングロジックに連結されて、前記複数のプロセッサ要素が実行するプログラムを格納するメモリと
を備えるシステム。
【請求項10】
前記第1のプロセッサ要素が実行中のプログラムの周波数スケーラビリティファクタと、前記第1のプロセッサ要素に関する動作周波数の低下とに基づいて、性能損失を決定する性能計算ロジックをさらに備える請求項9に記載のシステム。
【請求項11】
前記タスクの実行期間と、前記第1のプロセッサ要素が実行中のプログラムに関する利用率の値とに基づいて、性能損失を決定する性能計算ロジックをさらに備える請求項9に記載のシステム。
【請求項12】
前記タスクルーティングロジックは、前記第1のプロセッサ要素の選択および前記第2のプロセッサ要素の選択のそれぞれに関する第1の性能損失および第2の性能損失のうち、小さいほうの性能損失を選択する請求項9に記載のシステム。
【請求項13】
複数のプロセッサ要素のいずれかがターボモードで動作しているか否かを判断する段階と、
前記複数のプロセッサ要素のうち少なくとも1つが前記ターボモードにある場合に、性能損失の比較に少なくとも基づいて、第1のプロセッサ要素にタスクを実行させるよう選択する段階と
を備える方法。
【請求項14】
前記第1のプロセッサ要素が実行中のプログラムの周波数スケーラビリティファクタと、前記第1のプロセッサ要素に関する動作周波数の低下とに基づいて、性能損失を決定する段階をさらに備える請求項13に記載の方法。
【請求項15】
前記タスクの平均実行期間と、前記第1のプロセッサ要素が実行中のプログラムに関する利用率の値とに基づいて、性能損失を決定する段階をさらに備える請求項13に記載の方法。
【請求項16】
前記第1のプロセッサ要素の選択に関する第1の性能損失が、スリープ状態にある第2のプロセッサ要素を起こすことに関する第2の性能損失よりも低い場合、アクティブプロセッサ要素である前記第1のプロセッサ要素に前記タスクを実行させるよう選択する段階をさらに備える請求項13に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−118871(P2011−118871A)
【公開日】平成23年6月16日(2011.6.16)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−209897(P2010−209897)
【出願日】平成22年9月17日(2010.9.17)
【出願人】(591003943)インテル・コーポレーション (1,101)