(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2016-523399(P2016-523399A)
(43)【公表日】2016年8月8日
(54)【発明の名称】エネルギー効率的なモバイルプラットフォームのための適応的割り込みコアレッシング
(51)【国際特許分類】
G06F 9/48 20060101AFI20160711BHJP
【FI】
G06F9/46 311F
G06F9/46 311B
【審査請求】有
【予備審査請求】未請求
【全頁数】20
(21)【出願番号】特願2016-516495(P2016-516495)
(86)(22)【出願日】2013年6月28日
(85)【翻訳文提出日】2015年11月30日
(86)【国際出願番号】US2013048765
(87)【国際公開番号】WO2014209395
(87)【国際公開日】20141231
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IS,JP,KE,KG,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LT,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US,UZ,VC
(71)【出願人】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ミン,アレグザンダー ダブリュー.
(72)【発明者】
【氏名】ワーン,レン
(72)【発明者】
【氏名】ツァイ,ジェイアール−シアン
(72)【発明者】
【氏名】エルギン,メスート エー.
(72)【発明者】
【氏名】タイ,ツーン−ユエン シー.
(57)【要約】
エネルギー効率的なモバイルプラットフォームのための適応的割り込みコアレッシングに関する方法及び装置が説明される。一実施例では、1つ以上の割り込みがスループット推定値及び1つ以上のパラメータに基づきバッファリングされる。1つ以上の割り込みは、割り込みコアレッシング期間の経過に応答してリリースされる。他の実施例がまた請求及び開示される。
【特許請求の範囲】
【請求項1】
少なくとも部分的にハードウェアにより実現され、通信スループットに少なくとも部分的に基づき1つ以上の割り込みのバッファリングをするロジックを有する装置であって、
前記ロジックは、割り込みコアレッシング期間の経過に応答して前記1つ以上のバッファリングされた割り込みの少なくとも1つのリリースをする装置。
【請求項2】
前記ロジックは、1つ以上のパラメータに少なくとも部分的に基づき前記1つ以上の割り込みのバッファリングをし、前記1つ以上のパラメータは、タイムアウト期間及び前記割り込みコアレッシング期間の1つ以上を有する、請求項1記載の装置。
【請求項3】
前記ロジックは、前記1つ以上の割り込みに先行する割り込みの検出に続く前記タイムアウト期間の経過後に前記1つ以上の割り込みのバッファリングをする、請求項2記載の装置。
【請求項4】
前記ロジックは、前記割り込みコアレッシング期間の期間中及び前記タイムアウト期間の経過後に前記1つ以上の割り込みのバッファリングをする、請求項2記載の装置。
【請求項5】
システムダイナミクス情報に基づき前記1つ以上のパラメータを調整するロジックを有する、請求項2記載の装置。
【請求項6】
前記システムダイナミクス情報は、トラフィックロード、スループット目標、電力プロファイル、残りのバッテリ寿命、ユーザの嗜好及び実行中のアプリケーションのタイプの1つ以上を有する、請求項5記載の装置。
【請求項7】
オペレーティングシステムからの情報に基づき前記通信スループットを提供するロジックを有する、請求項1記載の装置。
【請求項8】
当該装置を含むプラットフォームにおいて利用可能な情報に基づき前記通信スループットを推定するロジックを有する、請求項1記載の装置。
【請求項9】
前記情報は、ファームウェアにおいて観察された割り込み動作情報及びネットワークデバイスからのトラフィック統計の1つ以上を有する、請求項8記載の装置。
【請求項10】
無線ネットワークデバイスからの情報に基づき前記通信スループットを推定するロジックを有する、請求項1記載の装置。
【請求項11】
複数のスループット値のための複数の割り込みコアレッシング時間値を有するテーブルを記憶するメモリを更に有する、請求項1記載の装置。
【請求項12】
前記ロジックは、スループットモニタリング情報に基づき前記1つ以上の割り込みのバッファリングの頻度を調整する、請求項1記載の装置。
【請求項13】
前記ロジックは、スループットモニタリング情報に基づき前記1つ以上の割り込みのバッファリングの期間を調整する、請求項1記載の装置。
【請求項14】
前記ロジックは、前記割り込みコアレッシング期間の経過に応答して、バーストとして前記1つ以上のバッファリングされた割り込みの少なくとも1つをリリースする、請求項1記載の装置。
【請求項15】
前記ロジックは、プロセッサコア宛ての前記1つ以上の割り込みのバッファリングをする、請求項1記載の装置。
【請求項16】
前記ロジック、1つ以上のプロセッサコア及びメモリは、単一の集積回路ダイ上に配置される、請求項1記載の装置。
【請求項17】
通信スループットに少なくとも部分的に基づき1つ以上の割り込みのバッファリングをするステップと、
割り込みコアレッシング期間の経過に応答して、前記1つ以上のバッファリングされた割り込みの少なくとも1つをリリースするステップと、
を有する方法。
【請求項18】
前記1つ以上の割り込みのバッファリングをするステップは、1つ以上のパラメータに少なくとも部分的に基づき実行され、
当該方法は更に、システムダイナミクス情報に基づき前記1つ以上のパラメータを調整するステップを有する、請求項17記載の方法。
【請求項19】
オペレーティングシステム、ファームウェアにおいて観察される割り込み動作情報及びネットワークデバイスからのトラフィック統計の1つ以上からの情報に基づき前記通信スループットを提供するステップを更に有する、請求項17記載の方法。
【請求項20】
無線ネットワークデバイスからの情報に基づき前記通信スループットを決定するステップを更に有する、請求項17記載の方法。
【請求項21】
メモリにテーブルを記憶するステップを更に有し、
前記テーブルは、複数のスループット値のための複数の割り込みコアレッシング時間値を有する、請求項17記載の方法。
【請求項22】
請求項17乃至21何れか一項記載の方法をプロセッサに実現させるためのプログラム。
【請求項23】
請求項22記載のプログラムを記憶するためのコンピュータ可読記憶媒体。
【請求項24】
無線ネットワークデバイス及びバッテリと、
少なくとも部分的にハードウェアにより実現され、通信スループットに少なくとも部分的に基づき1つ以上の割り込みのバッファリングをするロジックを有するプロセッサと、
を有するシステムであって、
前記ロジックは、割り込みコアレッシング期間の経過に応答して、前記1つ以上のバッファリングされた割り込みの少なくとも1つのリリースをするシステム。
【請求項25】
前記ロジックは、1つ以上のパラメータに少なくとも部分的に基づき前記1つ以上の割り込みのバッファリングをし、前記1つ以上のパラメータは、タイムアウト期間及び前記割り込みコアレッシング期間の1つ以上を有する、請求項24記載のシステム。
【請求項26】
前記ロジックは、前記割り込みコアレッシング期間の期間中及び前記タイムアウト期間の経過後に前記1つ以上の割り込みのバッファリングをする、請求項25記載のシステム。
【請求項27】
無線ネットワークデバイスからの情報に基づき前記通信スループットを決定するロジックを有する、請求項24記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
一般にエレクトロニクスの分野に関する。より詳細には、実施例はエネルギー効率的なモバイルプラットフォームのための適応的割り込みコアレッシング(interrupt coalescing)
【背景技術】
【0002】
一般に、計算システムにおいて最も電力消費の大きいコンポーネントの1つはプロセッサである。電力消費を低減するため、いくつかの実現形態は可能な限り頻繁にプロセッサをスリープ又はスタンバイモードに入れさせようとするかもしれない。しかしながら、これらの試みは、例えば、システムにおける他のコンポーネントによってトリガされる各種イベントの生起のため阻止され、プロセッサをそれの低電力消費状態から退出させるかもしれない。
【0003】
また、より大きな電力消費はまた熱の生成を増加させうる。過剰な熱はコンピュータシステムのコンポーネントにダメージを与えうる。さらに、より大きな電力使用は、モバイル計算装置などにおけるバッテリ消費を増加させる可能性があり、さらにモバイルデバイスが充電前に実行可能な時間を減少させる。追加的な電力消費は更に、より重くなりうるより大きなバッテリの使用を必要とするかもしれない。より重いバッテリはモバイル計算デバイスの携帯性又は可用性を低減する。
【0004】
従って、全体的なシステムの電力消費及び利用は、どの程度の時間プロセッサが低電力消費状態に維持されるかに直接関連しうる。
【図面の簡単な説明】
【0005】
詳細な説明が添付した図面を参照して提供される。図では、参照番号の最左桁は、参照番号が始めて現れた図を特定する。異なる図における同一の参照番号の使用は、同様の又は同一のアイテムを示す。
【図1】図1は、ここに説明される各種実施例を実現するのに利用可能な計算システムの実施例のブロック図を示す。
【図2A】図2Aは、ある実施例による各種の割り込みコアレッシングシナリオの比較を示す図を有する。
【図2B】図2Bは、ある実施例による各種の割り込みコアレッシングシナリオの比較を示す図を有する。
【図2C】図2Cは、ある実施例による各種の割り込みコアレッシングシナリオの比較を示す図を有する。
【図2D】図2Dは、ある実施例による各種の割り込みコアレッシングシナリオの比較を示す図を有する。
【図3】図3は、ある実施例による各種パラメータのための達成可能なスループットのグラフを示す。
【図4】図4は、実施例によるコンポーネントのブロック図を示す。
【図5】図5は、実施例による方法のフロー図を示す。
【図6】図6は、ここに説明される各種実施例を実現するのに利用可能な計算システムの実施例のブロック図を示す。
【図7】図7は、ここに説明される各種実施例を実現するのに利用可能な計算システムの実施例のブロック図を示す。
【図8】図8は、ここに説明される各種実施例を実現するのに利用可能な計算システムの実施例のブロック図を示す。
【発明を実施するための形態】
【0006】
以下の説明では、各種実施例の完全な理解を提供するため、多数の具体的な詳細が提供される。しかしながら、各種実施例は特定の詳細なく実現されてもよい。他の例では、特定の実施例を不明瞭にしないため、周知の方法、手順、コンポーネント及び回路は詳細には説明されていない。さらに、各種態様の実施例は、集積半導体回路(“ハードウェア”)、1つ以上のプログラムに編成されたコンピュータ可読命令(“ソフトウェア”)、又はハードウェア及びソフトウェアのある組み合わせなどの各種手段を利用して実行されてもよい。本開示の目的のため、“ロジック”の参照はハードウェア、ソフトウェア、ファームウェア又はこれらのある組み合わせの何れかを意味する。
【0007】
エネルギー効率性は、スマートフォン、タブレット、ラップトップコンピュータ、UMPC(Ultra−Mobile Personal Computer)、Ultrabook
TMデバイスなどの今日のスモールファクタモバイルプラットフォームにとって重要である。アクティブなモバイルワークロード(例えば、ファイルダウンローディング、ウェブブラウジング、ビデオストリーミングなど)のため、プラットフォームの電力消費は、システム割り込みをコアレッシング/保留し、プラットフォームにおけるCPU(Central Processing Unit)及び各種サブシステムがより長い期間低電力スリープ状態に入ることができるように、比較的より長いシステムアイドル期間を生成することによって有意に低減可能である。しかしながら、いくつかの測定研究は、高スループット領域において、長すぎる期間割り込みをコアレッシング(又はバッファリング)することは、スループットパフォーマンスに負の影響を与えうる。例えば、過剰なコアレッシングは、通信デバイス(Wi−Fi(Wireless Fidelity)NIC(Network Interface Card)など)におけるバッファオーバフローのためパケット損失を生じさせる可能性がある。従って、割り込みコアレッシングの設計における大きなチャレンジは、スループットパフォーマンスを損なうことなくそれの電力セービング効果をどのように最大化するかである。
【0008】
このため、いくつかの実施例は、スループットパフォーマンスを維持しながら、向上した(最大など)電力セービングを実現するための割り込みコアレッシングポリシーを動的に適応化する。一実施例は、コアレッシング動作(例えば、割り込みをキュー/バッファリングする頻度及び/又は各キュー/バッファリングインスタンスのためのコアレッシング期間の長さ)を動的に調整することによって、スループットパフォーマンスを維持する。
【0009】
さらに、割り込みコアレッシングは、プラットフォームの電力セービングに利用されてもよい。例えば、割り込みコアレッシングのための2つのアプローチ、すなわち、静的及び動的が利用されてもよい。静的ポリシーでは、コアレッシングウィンドウサイズは、ユーザ/システムの嗜好に基づき所定値に固定されうる。動的ポリシーでは、プラットフォームはウェイクアップイベント数に基づきコアレッシングウィンドウサイズを変更してもよい。動的ポリシーは、安定的なスループットによるワークロードのために利用されてもよい。しかしながら、スループットは、例えば、ウェブブラウジング及びビデオストリーミングなどの大部分の現実世界のワークロードについて経時的に変動しうるものであり、この結果、それは、ウェイクアップイベントに対して“反応”し、スループット変化に対してはあまり応答しないため、スループットパフォーマンスに負の影響を与えうる。このため、一実施例は、コアレッシング動作(例えば、キューの頻度及び/又は各キューインスタンスのコアレッシング期間の長さ)を動的に調整することによって、スループットパフォーマンスを維持する。
【0010】
ここに説明される技術は、図1及び6〜8を参照して説明されるシステム(スマートフォン、タブレット、ラップトップコンピュータ、UMPC(Ultra−Mobile Personal Computer)、Ultrabook
TMデバイスなどを含みうる)などの電力消費設定を備えた何れかのタイプの計算システムにおいて利用されてもよい。より詳細には、図1は、実施例による計算システム100のブロック図を示す。システム100は、1つ以上のプロセッサ102−1〜102−N(ここでは“プロセッサ102”として総称される)を有してもよい。プロセッサ102は、相互接続ネットワーク又はバス104を介し通信可能である。各プロセッサは、簡単化のためプロセッサ102−1を参照して一部しか説明されない各種コンポーネントを有してもよい。従って、残りのプロセッサ102−2〜102−Nのそれぞれは、プロセッサ102−1を参照して説明された同一又は同様のコンポーネントを有してもよい。
【0011】
実施例では、プロセッサ102−1は、1つ以上のプロセッサコア106−1〜106−M(ここでは、“コア106”として参照されるか、又は“コア106”として総称される)、共有キャッシュ108及び/又はルータ110を有してもよい。プロセッサコア106は、単一の集積回路(IC)チップ上に実現されてもよい。さらに、チップは、1つ以上の共有及び/又はプライベートキャッシュ(キャッシュ108など)、バス又は相互接続(バス又は相互接続ネットワーク112など)、メモリコントローラ(図6〜8を参照して説明されるものなど)又は他のコンポーネントを有してもよい。
【0012】
一実施例では、ルータ110は、プロセッサ102−1及び/又はシステム100の各種コンポーネントの間で通信するのに利用されうる。さらに、プロセッサ102−1は、複数のルータ110を有してもよい。さらに、複数のルータ110が、プロセッサ102−1の内部又は外部の各種コンポーネントの間のデータルーティングを可能にするよう通信してもよい。
【0013】
共有キャッシュ108は、コア106などのプロセッサ102−1の1つ以上のコンポーネントにより利用されるデータ(命令などを含む)を記憶してもよい。例えば、共有キャッシュ108は、プロセッサ102のコンポーネントによるより高速なアクセスのため、メモリ114に記憶されるデータをローカルにキャッシュしてもよい。実施例では、キャッシュ108は、中間レベルキャッシュ(レベル2(L2)、レベル3(L3)、レベル4(L4)又は他のレベルのキャッシュなど)、ラストレベルキャッシュ(LLC)及び/又はこれらの組み合わせを有してもよい。さらに、プロセッサ102−1の各種コンポーネントは、バス(例えば、バス112)及び/又はメモリコントローラ若しくはハブを介し共有キャッシュ108と直接通信してもよい。図1に示されるように、いくつかの実施例では、コア106の1つ以上は、レベル1(L1)キャッシュ116−1(“L1キャッシュ116”として総称される)を有してもよい。
【0014】
一実施例では、コアレッシングロジック160は、アイドル状態中に1つ以上のコンポーネント(コア106又はシステム100の他のコンポーネントなど)による電力消費を制御及び/又は低減する。例えば、ロジック160は、スループットパフォーマンスを維持しながら、向上した(最大など)電力セービングを実現するため、割り込みコアレッシングポリシーを動的に適応化してもよい。いくつかの実施例では、電力消費制御はまた、OS(Operating Software)ソフトウェア及び/又はソフトウェアアプリケーション(例えば、メモリ114に記憶されてもよい)からの入力に少なくとも部分的に基づき実現されてもよい(例えば、ロジック160などによって)。さらに、電力消費のレベルを制御する能力は、ワークロード、シナリオ、使用、1つ以上の検知された温度値(例えば、図1〜8を参照してここに説明されるシステムのコンポーネントの1つ以上の近隣範囲に配置された1つ以上の温度センサ(図示せず)によって検出されるような)などに基づくなど、各種判断に応答してプラットフォーム電力消費を最適化するのに利用されてもよい。さらに、ここに説明される少なくとも一部のOS処理は、ソフトウェアアプリケーション、ファームウェアなどにより互換的に実行されてもよい。さらに、ロジック160は、図1に示されるもの以外の位置に備えられてもよい(例えば、コア106の内部、相互接続104に直接接続されるなど)。
【0015】
図2A及び2Bは、いくつかの実施例による割り込みコアレッシングのない、及びコアレッシングのあるサンプル割り込み到着のタイミング図をそれぞれ示す。全体的なプラットフォーム電力消費は、プロセッサのウェイクアップ数を最小化することによって有意に低減可能であり、プロセッサ/プラットフォームが低電力スリープ状態に入ってより長く留まることを可能にする。例えば、コアレッシングモードでは、プロセッサは、より低い頻度でウェイクアップされ、各割り込みについてプロセッサを頻繁にウェイクアップする代わりに、複数の割り込みリクエストをバーストとして利用することができる。
【0016】
従って生成された割り込みコアレッシング(又はバッファリング)ウィンドウ(割り込みコアレッシング期間とも呼ばれる)内において、プラットフォームはプロセッサをウェイクアップすることなく低電力スリープ状態(例えば、Cx及びS0ixなど)に入ることが可能であり、一般に、コアレッシングウィンドウが長くなるに従って、プラットフォームの電力セービングはより大きくなる。例えば、通信デバイス(例えば、Wi−Fi)からの割り込みをコアレッシングすることは、典型的なインターネットファイルダウンロードシナリオについて、10+%だけプラットフォーム電力消費を低減しうる。
【0017】
一般に、“S0ix”は、プラットフォームが長すぎる間アイドルになっているという判断に基づき(予めプログラムされた時間に基づき)又はユーザにより起動される従来のアイドル電力状態の代わりに、イベントドリブンである(例えば、OS又はソフトウェアアプリケーション入力に基づく)プラットフォームレベル電力管理によって実現される改良されたアイドル電力状態を表す。いくつかの実施例では、ここに説明される電力消費状態の少なくとも一部は、Advanced Configuration and Power Interface(ACPI)仕様書の2011年12月のRevision 5の下で定義されたものに従う又は類似するものであってもよい。
【0018】
図2Bに示されるように、システムが所定のタイムアウト期間割り込みを検出しなかったとき、それは、コアレッシング期間の間はシステム割り込みをバッファリングし始める。実施例では、これら2つのパラメータは、システムの(スループットなどの)パフォーマンスを維持しながら、プラットフォーム電力セービングを最大化するため、“オン・ザ・フライ(on−the−fly)”に結合的に最適化される。
【0019】
さらに、固定的なパラメータを有するコアレッシングポリシーによって電力セービングを最大化することは困難である。パラメータがアグレッシブすぎる場合(すなわち、小さなタイムアウトと大きなコアレッシング期間)、割り込みコアレッシングは、Wi−Fi NICにおける限定的なキュー容量などの複数の理由のため高スループット領域においてスループットパフォーマンスを損なう可能性があり、パケット損失及び再送を引き起こしうる。例えば、スループットは、図3に示されるように、コアレッシングパラメータに依存して様々なスループット範囲において劣化し始める可能性がある。より詳細には、図3は、いくつかの実施例によるタイムアウト及びコアレッシングウィンドウサイズなどの各種パラメータについて実現可能なスループットのグラフを示す。図3は、アグレッシブなコアレッシング、すなわち、より小さなタイムアウト及びより大きなコアレッシングウィンドウが、より低いスループット範囲においてスループットパフォーマンスに影響を与え始めることを明確に示す。
【0020】
他方、パラメータが保守的すぎる場合(すなわち、大きなタイムアウト及び小さなコアレッシング期間)、それは、低スループット領域においてコアレッシングの機会を利用することができない可能性がある。従ってコアレッシングパラメータは、システムダイナミクス(例えば、トラフィックロード、スループット目標、電力プロファイル、残りのバッテリ寿命、ユーザの嗜好、実行中のアプリケーションのタイプ(例えば、3Dゲーム、インターネット電話など)など)に基づき動的に調整される。
【0021】
図2C及び2Dは、いくつかの実施例による固定的アプローチ対適応的アプローチの割り込みコアレッシングのスループット図をそれぞれ示す。スループットの劣化なく電力セービングを最大化するため、一実施例は2つのキーパラメータ、すなわち、タイムアウト及び割り込みコアレッシング期間(それはまた、割り込みコアレッシング動作を支配する)を動的に調整する。これは、図2Cに示されるように、固定的なアイドルウィンドウサイズによる従来の割り込みコアレッシングと異なる(所与のアイドルウィンドウ(5msなど)の間のBEC(Break−Event Coalescing)オン及びBECオフ(割り込みコアレッシングが実行されない)としてもここで参照される割り込みコアレッシングアクティブによる)。コアレッシングウィンドウサイズを適応化することによって(図2Dに示されるなど)、割り込みコアレッシングは、スループットパフォーマンスに負の影響を与える懸念なく、より高いスループット範囲において行うことができる。従って、このようなアプローチは、割り込みコアレッシングがより広範なアプリケーションの範囲(例えば、高品質ビデオストリーミング)から利益を得ることを可能にする。
【0022】
図4は、実施例による割り込みコアレッシングウィンドウサイズ(割り込みコアレッシング期間ともここでは参照される)及びタイムアウト期間の適応化を提供するためのコンポーネントのブロック図を示す。実施例では、図4は、ロジック160のいくつかのコンポーネント(例えば、アイテム404、408及び410)を示す。スループット情報は、図4に示されるように、OS402(例えば、アプリケーションなどから)から直接取得できるし、又はプラットフォームにおいて利用可能な他の情報(Wi−Fi NIC406などからのトラフィック統計又はファームウェアにおいて観察される割り込み動作など)に基づき推定することもできる(例えば、スループット推定ロジック404などによって)。
【0023】
スループット情報(及び/又はトラフィックロード、スループット目標、電力プロファイル、残りのバッテリ寿命、ユーザの嗜好、実行中のアプリケーションのタイプ(例えば、3Dゲーム、インターネット電話など)などの他の各種特性)に基づき、判定手段408は、スループットレベルを維持しながら、プラットフォーム電力セービングを最大化することが可能な最適なウィンドウサイズを決定する。いくつかの実施例では、異なるスループット値に対して最適なコアレッシングパラメータのセット(例えば、タイムアウト期間及び割り込みコアレッシング期間)が、電力及びパフォーマンスのオフラインプロファイリングから取得可能であり、これはオンライン検索のためテーブルに記憶されてもよい。例えば、実施例では、システム設計者はまず、異なるスループット範囲について最適なコアレッシングウィンドウ値を計算し、それからランタイム適応化のためルックアップテーブルを構築することができる。また、コアレッシングパラメータ判定手段408は、推定されるスループットに基づき、テーブルからランタイムで最適なパラメータを迅速に検出できる。それから、コアレッシングエンジン410が、判定手段408により決定されたような最適なコアレッシングウィンドウを利用して、入力される割り込み412をバッファリングし始める。
【0024】
割り込みコアレッシング期間の経過後、コアレッシングされた割り込み414は、バーストなど割り込みハンドリングのための宛先となるプロセッサコア418のLAPIC(Local Advanced Programming Interrupt Controller)416に送信される。従って、コアレッシングウィンドウ内では、プロセッサ/プラットフォームはディープスリープ状態(例えば、C6/S0ix)に入ることが可能であり、これにより、プラットフォーム消費を有意に低減する。
【0025】
図5は、一実施例によるコアレッシングウィンドウ適応化方法500のフロー図を示す。実施例では、図5は、コアレッシングパラメータ最適化のための一例となる方法を示す。いくつかの実施例では、図1〜4及び6〜8を参照して説明される各種コンポーネントが、図5を参照して説明される処理の1つ以上を実行するのに利用されてもよい。例えば、ロジック160は、1つ以上のデバイスに対する割り込みコアレッシングを動的に制御し、及び/又は方法500を参照して説明される処理の1つ以上を実行するのに利用されてもよい。
【0026】
図1〜5を参照して、スループットが処理502において推定されると、判定手段(例えば、ロジック408)は、処理504においてコアレッシングパラメータを調整し(例えば、オフラインプロファイラからのルックアップテーブルに基づき)、処理506においてスループットパフォーマンスのモニタリングを開始する。さらに、スループット推定は、(図1〜4などを参照して)上述された技術を利用して実行可能である。スループットが処理508において所定の閾値より大きく変化した場合(例えば、1Mbps)、それは、コアレッシングパラメータが再調整される必要があることを示しうる。このため、実施例では、スループットモニタリングロジックは、何れか意味のあるスループット変化を検出するためスループットを継続的にモニタリングする。スループットの変化が処理508において検出されると(例えば、ある閾値を超える)、コアレッシングパラメータは再調整され、方法500は当該サイクルを繰り返す。
【0027】
スループット推定に関して説明されるように、スループットは異なる方法でモニタリングされてもよい。例えば、OSは、スループット情報を定期的に提供可能である。Wi−Fi NICはまた、スループット変化のためのヒント(例えば、NICにおけるRX/TX(Receive/Transmit)キュー占有率など)を提供してもよい。さらに、スループットは、(スループットに相関しうる)毎秒毎の割り込み数の変化などの割り込み動作に基づきモニタリングされてもよい。例えば、コアレッシングエンジンは、コアレッシングを周期的にオフし、スループットの変化を検出するため割り込み動作をモニタリングしてもよい。
【0028】
割り込みコアレッシングは、提供されたスループットを低い及びやや高いスループット範囲(例えば、<21Mbps)に維持してもよい。しかしながら、実現される(測定)スループットは、提供されるスループット(すなわち、送信側からのパッカの送信レート)が過剰な割り込みコアレッシング(又はパケットキュー)により維持されない可能性があるため、高いスループット範囲(例えば、30Mbps及び40Mbps)において劣化し始めるかもしれない。例えば、30Mbpsでは、8msのコアレッシングウィンドウによる割り込みコアレッシングは、(“BECなし”と比較して)スループットパフォーマンスに苦しむが、5msのコアレッシングウィンドウによる割り込みコアレッシングは依然として提供されたスループットを提供する。従って、コアレッシングウィンドウを適応化するためのいくつかの実施例は、スループットパフォーマンスを損なうことなく、プラットフォーム電力セービングを最大化しうる。さらに、ここでの説明は通信サブシステム(Wi−Fiなど)に着目するが、このような具体的な説明は実施例の適用性を限定せず、各種実施例が何れかのタイプの計算システム、コンポーネント及びデバイスに適用されてもよい。また、割り込みコアレッシング機構は、例えば、それの実現可能性及び効率性に依存して、ソフトウェア(例えば、OS及び/又はソフトウェアアプリケーション)により、又はハードウェア/ファームウェアによりロジックにおいて実現可能である。
【0029】
図6は、実施例による計算システム600のブロック図を示す。計算システム600は、相互接続ネットワーク(又はバス)604を介し通信する1つ以上の中央処理ユニット(CPU)602又はプロセッサを有してもよい。プロセッサ602は、汎用プロセッサ、ネットワークプロセッサ(コンピュータネットワーク603を介し通信されるデータを処理する)、又は他のタイプのプロセッサ(RISC(Reduced Instruction Set Computer)プロセッサ又はCISC(Complex Instruction Set Computer)を含む)を有してもよい。
【0030】
さらに、プロセッサ602は、シングルコア又はマルチコア設計を有してもよい。マルチコア設計によるプロセッサ602は、同一の集積回路(IC)ダイ上に異なるタイプのプロセッサコアを統合してもよい。また、マルチコア設計によるプロセッサ602は、対称的又は非対称的マルチプロセッサとして実現されてもよい。実施例では、プロセッサ602の1つ以上が図1のプロセッサ102と同一又は同様のものであってもよい。例えば、システム600の1つ以上のコンポーネントは、ロジック160(例えば、図6に示されるような)及び図1〜5を参照して説明された他のコンポーネントを有してもよい。また、図1〜5を参照して説明される処理は、システム600の1つ以上のコンポーネントによって実行されてもよい。
【0031】
チップセット606はまた、相互接続ネットワーク604と通信してもよい。チップセット606は、Graphics and Memory Control Hub(GMCH)608を有してもよい。GMCH608は、メモリ612(図1のメモリ114と同一又は同様のものであってもよい)と通信するメモリコントローラ610を有してもよい。メモリ612は、CPU602又は計算システム600に含まれる他の何れかのデバイスにより実行されてもよい命令シーケンスを含むデータを記憶してもよい。一実施例では、メモリ612は、ランダム・アクセス・メモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、又は他のタイプの記憶デバイスなどの1つ以上の揮発性記憶(又はメモリ)デバイスを含むものであってもよい。ハードディスクなどの不揮発性メモリがまた利用されてもよい。複数のCPU及び/又は複数のシステムメモリなどの更なるデバイスが、相互接続ネットワーク604を介し通信してもよい。
【0032】
GMCH608はまた、ディスプレイデバイス616と通信するグラフィクスインタフェース614を有してもよい。一実施例では、グラフィクスインタフェース614は、AGP(Accelerated Graphics Port)を介しディスプレイデバイス616と通信してもよい。実施例では、ディスプレイ616(フラットパネルディスプレイなど)は、ビデオメモリ又はシステムメモリなどの記憶デバイスに記憶される画像のデジタル表現をディスプレイ616により解釈及び表示されるディスプレイ信号に変換する信号コンバータなどを介し、グラフィクスインタフェース614と通信してもよい。ディスプレイデバイスにより生成されるディスプレイ信号は、ディスプレイ616に解釈されて以降に表示される前に、各種制御デバイスを通過しうる。
【0033】
ハブインタフェース618は、GMCH608及び入出力制御は部(ICH)620が通信することを可能にしうる。ICH620は、計算システム600と通信するI/Oデバイスとのインタフェースを提供しうる。ICH620は、PCI(Peripheral Component Interconnect)ブリッジ、USB(Universal Serial Bus)コントローラ、又は他のタイプの周辺ブリッジ又はコントローラなどの周辺ブリッジ(又はコントローラ)624を介しバス622と通信してもよい。ブリッジ624は、CPU602と周辺デバイスとの間のデータパスを提供しうる。他のタイプのトポロジーが利用されてもよい。また、複数のバスが、複数のブリッジ又はコントローラなどを介しICH620と通信してもよい。さらに、ICH620と通信可能な他の周辺デバイスは、各種実施例では、IDE(Integrated Drive Electronics)又はSCSI(Small Computer System Interface)ハードドライブ、USBポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー(登録商標)ディスクドライブ、デジタル出力サポート(例えば、デジタル・ビデオ・インタフェース(DVI))又は他のデバイスを含む。
【0034】
バス622は、オーディオデバイス626、1つ以上のディスクドライブ628及びネットワークインタフェースデバイス630(コンピュータネットワーク603と通信可能である)と通信してもよい。他のデバイスは、バス622を介し通信してもよい。また、各種コンポーネント(ネットワークインタフェースデバイス630など)は、いくつかの実施例ではGMCH608と通信してもよい。さらに、プロセッサ602及びGMCH608は、単一のチップを形成するよう組み合わされてもよく、及び/又はGMCH608の一部又は全体がプロセッサ602(例えば、チップセット606にGMCH608を含める代わりに)に含まれてもよい。さらに、グラフィックアクセラレータ616が、他の実施例ではGMCH608内に含まれてもよい。
【0035】
さらに、計算システム600は、揮発性及び/又は不揮発性メモリ(又はストレージ)を有してもよい。例えば、不揮発性メモリは、以下の1つ以上、すなわち、読み出し専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電子的EPROM(EEPROM)、ディスクドライブ(628など)、フロッピー(登録商標)ディスク、コンパクトディスクROM(CD−ROM)、デジタル多用途ディスク(DVD)、フラッシュメモリ、光磁気ディスク、又は電子データ(命令などを含む)を記憶可能な他のタイプの不揮発性機械可読媒体を含むものであってもよい。
【0036】
図7は、実施例によるポイント・ツー・ポイント(PtP)コンフィギュレーションにより構成される計算システム700を示す。特に、図7は、プロセッサ、メモリ及び入出力デバイスが複数のポイント・ツー・ポイントインタフェースによって相互接続されるシステムを示す。図1〜6を参照して説明される処理は、システム700の1つ以上のコンポーネントによって実行されてもよい。
【0037】
図7に示されるように、システム700は複数のプロセッサを有してもよく、簡単化のため、そのうちの2つのプロセッサ702,704のみが示される。プロセッサ702,704のそれぞれは、メモリ710,712との通信を可能にするためのローカルメモリコントローラハブ(MCH)706,708を有してもよい。メモリ710及び/又は712は、図6のメモリ612を参照して説明されるものなどの各種データを記憶してもよい。
【0038】
実施例では、プロセッサ702,704は図6を参照して説明されたプロセッサ602の1つであってもよい。プロセッサ702,704はそれぞれ、PtPインタフェース回路716,718を利用してポイント・ツー・ポイント(PtP)インタフェース714を介しデータを交換してもよい。また、プロセッサ702,704はそれぞれ、ポイント・ツー・ポイントインタフェース回路726,728,730,732を利用して個々のPtPインタフェース722,724を介しチップセット720とデータを交換してもよい。チップセット720は更に、例えば、PtPインタフェース回路737を利用して、グラフィックインタフェース736を介しグラフィック回路734とデータを交換してもよい。
【0039】
少なくとも1つの実施例は、プロセッサ702,704内に備えられてもよい。例えば、システム700の1つ以上のコンポーネントは、プロセッサ702,704内に配置されることを含む図1〜6のロジック160を有してもよい。しかしながら、他の実施例は図7のシステム700内の他の回路、ロジックユニット又はデバイスに存在してもよい。さらに、他の実施例は、図7に示される複数の回路、ロジックユニット又はデバイス全体に分散されてもよい。
【0040】
チップセット720は、PtPインタフェース回路741を利用してバス740と通信してもよい。バス740は、バスブリッジ742及び/又はI/Oデバイス743などの1つ以上のデバイスと通信してもよい。バス744を介し、バスブリッジ742は、キーボード/マウス745、通信デバイス746(モデム、ネットワークインタフェースデバイス又はコンピュータネットワーク603と通信可能な他の通信デバイスなど)、オーディオI/Oデバイス747及び/又はデータ記憶デバイス748などの他のデバイスと通信してもよい。データ記憶デバイス748は、プロセッサ702及び/又は704により実行可能なコード749を記憶してもよい。
【0041】
いくつかの実施例では、ここに説明されるコンポーネントの1つ以上は、システム・オン・チップ(SOC)デバイスとして実現可能である。図8は、実施例によるSOCパッケージのブロック図を示す。図8に示されるように、SOC802は、1つ以上の中央処理ユニット(CPU)コア820、1つ以上のグラフィックプロセッサユニット(GPU)コア830、入出力(I/O)インタフェース840及びメモリコントローラ842を有する。SOCパッケージ802の各種コンポーネントは、他の図を参照してここに説明されるようなインターコネクト又はバスに接続されてもよい。また、SOCパッケージ802は、他の図を参照してここに説明されるものなどのより多くの又はより少ないコンポーネントを有してもよい。さらに、SOCパッケージ820の各コンポーネントは、ここで他の図を参照して説明されるような1つ以上の他のコンポーネントを有してもよい。一実施例では、SOCパッケージ802(及びそれのコンポーネント)は、単一の半導体デバイスにパッケージングされる1つ以上の集積回路(IC)ダイ上に備えられる。
【0042】
図8に示されるように、SOCパッケージ802は、メモリコントローラ842を介しメモリ860(他の図を参照してここに説明されるメモリと同様又は同一であってもよい)に接続される。実施例では、メモリ860(又はそれの一部)はSOCパッケージ802上に一体化可能である。
【0043】
I/Oインタフェース840は、例えば、他の図を参照してここで説明されるような相互接続及び/又はバスを介し1つ以上のI/Oデバイス870に接続されてもよい。I/Oデバイス870は、キーボード、マウス、タッチパッド、ディスプレイ、イメージ/ビデオキャプチャデバイス(カメラ又はカムコーダ/ビデオレコーダなど)、タッチ画面、スピーカなどの1つ以上を有してもよい。さらに、SOCパッケージ802は、実施例においてロジック160を有してもよい/一体化してもよい。あるいは、ロジック160は、SOCパッケージ802の外部に備えられてもよい(すなわち、離散的なロジックとして)。
【0044】
以下の具体例は更なる実施例に関する。具体例1は、少なくとも部分的にハードウェアにより実現され、通信スループットに少なくとも部分的に基づき1つ以上の割り込みのバッファリングをするロジックを有する装置であって、前記ロジックは、割り込みコアレッシング期間の経過に応答して前記1つ以上のバッファリングされた割り込みの少なくとも1つのリリースをする装置を有する。具体例2は、前記ロジックは、1つ以上のパラメータに少なくとも部分的に基づき前記1つ以上の割り込みのバッファリングをし、前記1つ以上のパラメータは、タイムアウト期間及び前記割り込みコアレッシング期間の1つ以上を有する、具体例1の装置を有する。具体例3は、前記ロジックは、前記1つ以上の割り込みに先行する割り込みの検出に続く前記タイムアウト期間の経過後に前記1つ以上の割り込みのバッファリングをする、具体例2の装置を有する。具体例4は、前記ロジックは、前記割り込みコアレッシング期間の期間中及び前記タイムアウト期間の経過後に前記1つ以上の割り込みのバッファリングをする、具体例2の装置を有する。具体例5は、システムダイナミクス情報に基づき前記1つ以上のパラメータを調整するロジックを有する、具体例2の装置を有する。具体例6は、前記システムダイナミクス情報は、トラフィックロード、スループット目標、電力プロファイル、残りのバッテリ寿命、ユーザの嗜好及び実行中のアプリケーションのタイプの1つ以上を有する、具体例5の装置を有する。具体例7は、オペレーティングシステムからの情報に基づき前記通信スループットを提供するロジックを有する、具体例1の装置を有する。具体例8は、当該装置を含むプラットフォームにおいて利用可能な情報に基づき前記通信スループットを推定するロジックを有する、具体例1の装置を有する。具体例9は、前記情報は、ファームウェアにおいて観察された割り込み動作情報及びネットワークデバイスからのトラフィック統計の1つ以上を有する、具体例8の装置を有する。具体例10は、無線ネットワークデバイスからの情報に基づき前記通信スループットを推定するロジックを有する、具体例1の装置を有する。具体例11は、複数のスループット値のための複数の割り込みコアレッシング時間値を有するテーブルを記憶するメモリを更に有する、具体例1の装置を有する。具体例12は、前記ロジックは、スループットモニタリング情報に基づき前記1つ以上の割り込みのバッファリングの頻度を調整する、具体例1の装置を有する。具体例13は、前記ロジックは、スループットモニタリング情報に基づき前記1つ以上の割り込みのバッファリングの期間を調整する、具体例1の装置を有する。具体例14は、前記ロジックは、前記割り込みコアレッシング期間の経過に応答して、バーストとして前記1つ以上のバッファリングされた割り込みの少なくとも1つをリリースする、具体例1の装置を有する。具体例15は、前記ロジックは、プロセッサコア宛ての前記1つ以上の割り込みのバッファリングをする、具体例1の装置を有する。具体例16は、前記ロジック、1つ以上のプロセッサコア及びメモリは、単一の集積回路ダイ上に配置される、具体例1の装置を有する。
【0045】
具体例17は、通信スループットに少なくとも部分的に基づき1つ以上の割り込みのバッファリングをするステップと、割り込みコアレッシング期間の経過に応答して、前記1つ以上のバッファリングされた割り込みの少なくとも1つをリリースするステップと、を有する方法を有する。具体例18は、前記1つ以上の割り込みのバッファリングをするステップは、1つ以上のパラメータに少なくとも部分的に基づき実行され、当該方法は更に、システムダイナミクス情報に基づき前記1つ以上のパラメータを調整するステップを有する、具体例17の方法を有する。具体例19は、オペレーティングシステム、ファームウェアにおいて観察される割り込み動作情報及びネットワークデバイスからのトラフィック統計の1つ以上からの情報に基づき前記通信スループットを提供するステップを更に有する、具体例17の方法を有する。具体例20は、無線ネットワークデバイスからの情報に基づき前記通信スループットを決定するステップを更に有する、具体例17の方法を有する。具体例21は、メモリにテーブルを記憶するステップを更に有し、前記テーブルは、複数のスループット値のための複数の割り込みコアレッシング時間値を有する、具体例17の方法を有する。
【0046】
具体例22は、プロセッサ上で実行されると、具体例17乃至21何れかの1つ以上をプロセッサに実行させる1つ以上の命令を有するコンピュータ可読媒体を有する。
【0047】
具体例23は、無線ネットワークデバイス及びバッテリと、少なくとも部分的にハードウェアにより実現され、通信スループットに少なくとも部分的に基づき1つ以上の割り込みのバッファリングをするロジックを有するプロセッサと、を有するシステムであって、前記ロジックは、割り込みコアレッシング期間の経過に応答して、前記1つ以上のバッファリングされた割り込みの少なくとも1つのリリースをするシステムを有する。具体例24は、前記ロジックは、1つ以上のパラメータに少なくとも部分的に基づき前記1つ以上の割り込みのバッファリングをし、前記1つ以上のパラメータは、タイムアウト期間及び前記割り込みコアレッシング期間の1つ以上を有する、具体例23のシステムを有する。具体例25は、前記ロジックは、前記割り込みコアレッシング期間の期間中及び前記タイムアウト期間の経過後に前記1つ以上の割り込みのバッファリングをする、具体例24のシステムを有する。具体例26は、無線ネットワークデバイスからの情報に基づき前記通信スループットを決定するロジックを有する、具体例23のシステムを有する。
【0048】
具体例27は、エネルギー効率的なモバイルプラットフォームのための適応的割り込みコアレッシングを提供する装置であって、当該装置は、通信スループットに少なくとも部分的に基づき1つ以上の割り込みのバッファリングをする手段と、割り込みコアレッシング期間の経過に応答して1つ以上のバッファリングされた割り込みの少なくとも1つをリリースする手段とを有する装置を有する。具体例28は、1つ以上の割り込みのバッファリングをする手段は、1つ以上のパラメータに少なくとも部分的に基づき動作し、当該方法は更に、システムダイナミクス情報に基づき1つ以上のパラメータを調整するステップを有する、具体例27の装置を有する。具体例29は、オペレーティングシステム、ファームウェアにおいて観察される割り込み動作情報及びネットワークデバイスからのトラフィック統計の1つ以上からの情報に基づき通信スループットを提供する手段を更に有する、具体例27の装置を有する。具体例30は、無線ネットワークデバイスからの情報に基づき通信スループットを決定する手段を更に有する、具体例27の装置を有する。具体例27の装置は、メモリにテーブルを記憶する手段を更に有し、テーブルは、複数のスループット値のための複数の割り込みコアレッシング時間値を有する。
【0049】
各種実施例では、図1〜8などを参照してここで説明された処理は、ハードウェア(例えば、論理回路)、ソフトウェア、ファームウェア又はこれらの組み合わせとして実現されてもよく、コンピュータにここで説明された処理を実行するようプログラムするのに利用される命令(又はソフトウェア手順)を記憶した(例えば、非一時的)機械可読又はコンピュータ可読媒体を含むコンピュータプログラムとして提供されてもよい。機械可読媒体は、図1〜8に関して説明されたものなどの記憶デバイスを有してもよい。
【0050】
さらに、このようなコンピュータ可読媒体はコンピュータプログラムとしてダウンロードされてもよく、当該プログラムは通信リンク(バス、モデム又はネットワーク接続など)を介し搬送波又は他の伝搬媒体により実現されるデータ信号によって、リモートコンピュータ(サーバなど)から要求元のコンピュータ(クライアントなど)へ伝送されてもよい。
【0051】
明細書における“一実施例”、“実施例”又は“いくつかの実施例”という参照は、当該実施例に関して説明された特定の特徴、構成又は特性が少なくとも実現形態に含まれうることを意味する。明細書の様々な箇所における“一実施例では”という表現の出現は、全てが必ずしも同一の実施例を参照しなくてもよいし、参照してもよい。
【0052】
また、説明及び請求項では、“結合”及び“接続”という用語が、それらの派生語と共に利用されうる。いくつかの実施例では、“接続”は、2つ以上の要素が互いに直接的な物理的又は電気的接触状態にあることを示すのに利用されうる。“結合”は、2つ以上の要素が直接的な物理的又は電気的接触状態にあることを意味しうる。しかしながら、“結合”はまた、2つ以上の要素が互いに直接的な接触状態にないが、依然として互いに連係又は相互作用しうることを意味する。
【0053】
以上、実施例が構造的な特徴及び/又は方法の処理に固有の言語により説明されたが、請求された主題は説明された特定の特徴又は処理に限定されないことが理解されるべきである。むしろ、特定の特徴及び処理は、請求された主題を実現するサンプルの形態として開示される。
【図1】
【図2A】
【図2B】
【図2C】
【図2D】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【国際調査報告】