(57)【要約】【課題】マルチコアプロセッサシステムの電力消費量を管理する技術を提供する。【解決手段】マルチコア処理システムの低電力動作のための方法及び装置が記載される。本発明の装置は、マルチコアプロセッサの複数のプロセッサコアの１以上で実行するようにメディアアプリケーションを検出し、マルチコアプロセッサのプロセッサコアのサブセットを動的に選択し、プロセッサコアのサブセットで実行されるようにメディアアプリケーションを親和化／関連付けする親和化／関連付け管理モジュールを備える。他の実施の形態も記載され、特許請求される。【選択図】図２
2011216093.tif 000002
【特許請求の範囲】
【請求項１】
マルチコアプロセッサの複数のプロセッサコアの１以上で実行されるメディアアプリケーションを検出するステップと、
前記マルチコアプロセッサの１以上のプロセッサコアのサブセットを選択するステップと、
前記１以上のプロセッサコアのサブセットで実行されるように前記メディアアプリケーションを関連付けするステップと、
を含むコンピュータにより実現される方法。
【請求項２】
前記１以上のプロセッサコアのサブセットは、前記マルチコアプロセッサのプロセッサコアの総数未満のプロセッサコアを有する、
請求項１記載の方法。
【請求項３】
前記１以上のプロセッサコアのサブセットを選択するステップは、
前記マルチコアプロセッサの複数のプロセッサコアで実行されるように前記メディアアプリケーションを関連付けするステップと、
前記マルチコアプロセッサのパフォーマンス又は電力状態の滞在値を測定するステップと、
前記パフォーマンス又は電力状態の滞在値を予め決定された閾値と比較するステップと、
前記パフォーマンス又は電力状態の滞在値が前記予め決定された閾値を超えない場合に、前記マルチコアプロセッサの少なくとも１つだけ少ないプロセッサコアで実行されるように前記メディアアプリケーションの関連付けを解除するステップと、
を含む請求項１記載の方法。
【請求項４】
前記１以上のプロセッサコアのサブセットを選択するステップは、前記マルチコアプロセッサの前記パフォーマンス又は電力状態の滞在値を測定し直すステップと、
測定し直されたパフォーマンス又は電力状態の滞在値を前記予め決定された閾値と比較するステップと、
前記パフォーマンス又は電力状態の滞在値が前記予め決定された閾値を超えない場合に、前記マルチコアプロセッサの少なくとも１つだけ少ないプロセッサコアで実行されるように前記メディアアプリケーションの関連付けを解除するステップと、
を含む請求項３記載の方法。
【請求項５】
前記メディアアプリケーションに加えて、前記複数のプロセッサコアの１以上で実行される１以上のアプリケーションを検出するステップと、
前記マルチコアプロセッサの前記パフォーマンス又は電力状態の滞在値の測定の間の時間間隔を減少するステップと、
を含む請求項４記載の方法。
【請求項６】
前記パフォーマンス又は電力状態の滞在値が前記予め決定された閾値を超える場合に、前記１以上のプロセッサの少なくとも１つの更なるプロセッサコアで実行されるように前記メディアアプリケーションを関連付けし直すステップを更に含む、
請求項３記載の方法。
【請求項７】
前記メディアアプリケーションは、対応するオーディオ及びビデオデータストリームを有するメディアファイルを再生する、
請求項１記載の方法。
【請求項８】
前記メディアアプリケーションは、オーディオ及びビデオデータストリームを同期させるためのメディア割り込みを周期的に発生する、
請求項１記載の方法。
【請求項９】
前記メディア割り込みは、前記メディアアプリケーションが実行されるためにグループ化される前記マルチコアプロセッサの前記１以上のプロセッサコアに送出される、
請求項１記載の方法。
【請求項１０】
前記メディアアプリケーションを実行するための前記マルチコアプロセッサのプロセッサコアの最小の数は、２である、
請求項１記載の方法。
【請求項１１】
マルチコアプロセッサの複数のプロセッサコアの１以上により実行されるメディアアプリケーションを検出し、前記マルチコアプロセッサの１以上のプロセッサコアのサブセットを選択し、前記１以上のプロセッサコアのサブセットで実行されるように前記メディアアプリケーションを関連付けする関連付け管理モジュールを備える、
ことを特徴とする装置。
【請求項１２】
前記１以上のプロセッサコアのサブセットは、前記マルチコアプロセッサのプロセッサコアの総数未満のプロセッサコアを有する、
請求項１１記載の装置。
【請求項１３】
前記関連付け管理モジュールは、前記マルチコアプロセッサの複数のプロセッサコアで実行されるように前記メディアアプリケーションを関連付けし、前記マルチコアプロセッサのパフォーマンス又は電力状態の滞在値を測定し、前記パフォーマンス又は電力状態の滞在値を予め決定された閾値と比較し、前記パフォーマンス又は電力状態の滞在値が前記予め決定された閾値を超えない場合に、前記マルチコアプロセッサの少なくとも１つだけ少ないプロセッサコアで実行されるように前記メディアアプリケーションの関連付けを解除する、
請求項１１記載の装置。
【請求項１４】
前記関連付け管理モジュールは、前記マルチコアプロセッサの前記パフォーマンス又は電力状態の滞在値を測定し直し、測定し直されたパフォーマンス又は電力状態の滞在値を前記予め決定された閾値と比較し、前記パフォーマンス又は電力状態の滞在値が前記予め決定された閾値を超えない場合に、前記マルチコアプロセッサの少なくとも１つだけ少ないプロセッサコアで実行されるように前記メディアアプリケーションの関連付けを解除する、
請求項１３記載の装置。
【請求項１５】
前記関連付け管理モジュールは、前記メディアアプリケーションに加えて、前記複数のプロセッサコアの１以上で実行される１以上のアプリケーションを検出し、前記マルチコアプロセッサの前記パフォーマンス又は電力状態の滞在値の測定の間の時間間隔を減少する、
請求項１４記載の装置。
【請求項１６】
前記関連付け管理モジュールは、前記パフォーマンス又は電力状態の滞在値が前記予め決定された閾値を超える場合に、前記１以上のプロセッサの少なくとも１つの更なるプロセッサコアで実行されるように前記メディアアプリケーションを関連付けし直す、
請求項１３記載の装置。
【請求項１７】
前記メディアアプリケーションは、対応するオーディオ及びビデオデータストリームを有するメディアファイルを再生する、
請求項１１記載の装置。
【請求項１８】
前記メディアアプリケーションは、オーディオ及びビデオデータストリームを同期させるためのメディア割り込みを周期的に発生し、前記メディアアプリケーションを実行するための前記マルチコアプロセッサのプロセッサコアの最小の数は２である、
請求項１１記載の装置。
【請求項１９】
前記関連付け管理モジュールは、前記メディア割り込みを、前記メディアアプリケーションが実行されるために関連付けされる前記マルチコアプロセッサの前記１以上のプロセッサコアに送出する、
請求項１１記載の装置。
【請求項２０】
コンピュータに、請求項１乃至１０記載の方法を実行させる命令を含むプログラムを記憶したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み式電力管理の方法及び装置に関する。
【背景技術】
【０００２】
現代のコンピュータシステムの性能は、近年において急速に増加している。性能が進化している１つの特定の領域は、プロセッサ技術である。今日のコンピュータシステムにおける多くのプロセッサは、複数のコアを含む。性能が進化している別の領域は、メディア再生である。多くの現代のコンピュータシステムは、高精細メディアを含む様々なタイプのメディアを再生可能である。マルチコアプロセッサにより提供される処理能力における増加、メディア再生に関連する処理要求の増加により、サイズにおいて減少し続けるコンピュータシステムの電力消費が増加している。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
処理電力及びマルチコアプロセッサにおけるコアの数が増加し続けるとき、電力消費量における減少が考慮すべき重要なことになる。結果として、可能であれば、マルチコアプロセッサを電力を節約するように適合させることが望ましい。結果として、マルチコアプロセッサシステムの電力消費量を管理する技術が必要とされる。
【課題を解決するための手段】
【０００４】
マルチコアプロセッサを利用したコンピュータシステムにおける電力消費量を低減するために設計される技術に実施の形態が向けられる。様々な実施の形態は、マルチコアプロセッサの複数のプロセッサコアの１以上で実行されるメディアアプリケーションを検出し、マルチコアプロセッサのプロセッサコアのサブセットを動的に選択し、プロセッサコアのサブセットで実行するようにメディアアプリケーションを親和化／関連付けする親和化／関連付け管理モジュール（affinitization  management  module）を含む技術を提供する。他の実施の形態についても記載され、特許請求される。
【０００５】
マルチコアプロセッサの使用について時間を通した経過により、アクティブな作業付加を実行するときの電力消費量は、確実に上昇する。比較的高い電力消費量となる１つの特定の領域は、メディア再生である。たとえば、マルチコアプロセッサを有するコンピュータシステムでの高精細（HD）DVD動画の再生は、比較的大きな電力消費となる。本明細書で記載される所定の実施の形態は、メディアコンテンツ、メディア再生及び／又はHDメディアコンテンツ及び再生について言及するが、実施の形態はこの環境に限定されるものではないことを理解されたい。本明細書で記載される実施の形態は、同期を必要とし及び／又は割り込み、タイムスタンプ又は他の同期の詳細を含む個別のデータストリームを含む任意のタイプの環境を含む、任意の数のアプリケーション及びコンテンツのタイプに適用可能である。
【０００６】
様々な実施の形態では、メディア再生の間の電力消費量は、プロセッサが実行する４つのタイプの処理に主に起因する場合がある。たとえば、プロセッサは、幾つかの実施の形態においてメディアコンテンツの暗号化鍵をプロテクトするため、メディアアプリケーションが採用するTRS（Tamper  Resistance  Software）を実行する場合がある。様々な実施の形態では、プロセッサは、メディア再生に関連するビデオを処理し、メディア再生に関連するオーディオをデコードする場合がある。様々な実施の形態では、オーディオ／ビデオ（A/V）同期も必要とされる場合がある。たとえば、プロセッサは、メディアアプリケーションにより利用される周期的なメディアの割り込みを処理し、ビデオ及びオーディオデータストリームを同期させることが必要とされる。この繰り返されるメディア割り込みの周期的な処理は、幾つかの実施の形態において電力消費量の増加につながる。
【０００７】
従来のコンピュータシステムでは、メディアアプリケーションは、周期的な割り込みを生成するためにタイマをプログラムすることでA/V同期を実現する。幾つかの実施の形態では、割り込みは、１ms当たりに１度の頻度で生じる。割り込みが生じるたびに、メディアアプリケーションは、ビデオ及びオーディオパケットにおけるタイムスタンプをチェックし、ビデオ及びオーディオパケットの次のグループを処理し、２つのストリームが同期されたままであることを保証する。１ms毎に生成される割り込みは、幾つかの実施の形態におけるビデオ及びオーディオデータストリーム間のより厳密な同期を保証するために使用される。従来のシステムでは、それぞれの割り込みは、それぞれ利用可能なプロセッサコアに伝播される。幾つかの実施の形態では、コアが割り込みを受信したとき、割り込みディスパッチャ（interrupt  dispatcher）を実行し、この割り込みディスパッチャは、プロセッサ使用率に追加される場合がある。様々な実施の形態では、プロセッサにおけるコアの数が多くなると、（全てのプロセッサコアでの）全体の割り込みレートが高くなり、従ってA/V同期の割り込みを処理するために必要とされるプロセッサ使用率（processor
utilization）のオーバヘッドが高くなる。
【０００８】
メディア再生の間の使用率のオーバヘッド及び電力消費量を低減する従来の方法は、おそらく、オーディオデータストリームの個別のオーディオ割り込みを可能にすることにより、割り込み周期をたとえば１msから１０msに延ばすことを含む。幾つかの実施の形態では、これにより、プロセッサの割り込みのオーバヘッドを低減するが、オーディオ及びビデオデータストリームの同期に悪影響を及ぼし、再生の品質及びメディアコンテンツを視聴するすることにおけるユーザ体験の品質を低下させる場合がある。係るように、メディアアプリケーションを実行するような、アクティブな作業負荷を実行するマルチコアプロセッサの電力消費量を制限する効果的な手段が今日において存在しない。結果的に、本明細書で記載される様々な実施の形態は、メディア又は他のストリーム同期に、最終的にユーザ体験に影響を及ぼすことなしに、アクティブな作業負荷を実行するときにマルチコアプロセッサの電力消費量を低減する効果的な手段を提供する。
【０００９】
様々な実施の形態では、プロセッサ使用率のオーバヘッド及びA/V同期の割り込みに関連する電力消費量を低減することに対するアプリケーションに独立のアプローチは、小数のプロセッサコアで実行するメディアアプリケーションを動的に関連付けし、これにより異なるプロセッサコアに伝播するメディアの割り込みの数を低減する。メディアアプリケーションは、システムで利用可能なそれぞれ単一のコアで実行される必要がなく、従って少数のコア上のアプリケーションを関連付けすることは、一方で性能に影響を及ぼさず、他方で全体の割り込みレート及びプロセッサ使用率を低減する場合がある。他の実施の形態も記載され、特許請求される。
【００１０】
実施の形態は、１以上のエレメントを含む場合がある。エレメントは、所定の動作を実行するために配置される任意の構成を有する場合がある。それぞれのエレメントは、設計パラメータ又は性能の制約の所与のセットについて望まれるとき、ハードウェア、ソフトウェア又はその任意の組み合わせとして実現される場合がある。実施の形態は、例示を通して所定のアレンジメントで特定のエレメントと記載される場合があり、実施の形態は、代替的なアレンジメントでエレメントの他の組み合わせを含む場合がある。
【００１１】
「１実施の形態」又は「実施の形態」への任意の言及は、実施の形態と共に記載される特定の特徴、構造又は特性が少なくとも１つの実施の形態に含まれることを意味する。明細書における様々な位置における記載「１実施の形態では」及び「実施の形態では」の出現は、必ずしも同じ実施の形態を全て示すものではない。
【図面の簡単な説明】
【００１２】
【図１】本発明に係る装置の１実施の形態を例示する図である。
【図２】本発明に係る第一のロジックダイアグラムの１実施の形態を例示する図である。
【図３】本発明に係る第二のロジックダイアグラムの１実施の形態を例示する図である。
【図４】本発明に係る１実施の形態を例示する図である。
【発明を実施するための形態】
【００１３】
図１は、装置の１実施の形態を例示する。図１は、装置１００のブロック図を例示する。装置１００は、幾つかの実施の形態におけるコンピュータシステムを有する。図１に示されるように、装置１００は、関連付け管理モジュール１０２、メモリ１０４、オペレーティングシステム１０６、及びコア１０８−１〜ｍを含むマルチコアプロセッサ１０８を有する。しかし、実施の形態は、この図に示されるエレメント又は構成に限定されるものではない。
【００１４】
様々な実施の形態では、マルチコアプロセッサ１０８は、１以上のプロセッサコア１０８−１〜ｍを有する中央処理装置を有する。プロセッサ１０８は、たとえばCPU、マルチプロセッシングユニット、RISC（Reduced  Instruction  Set  Computer）、パイプラインを有するプロセッサ、CISC（Complex  Instruction  Set  Computer）、DSP（Digital  Signal  Processor）等のような任意のタイプの処理装置を含む。幾つかの実施の形態では、プロセッサコア１０８−１〜ｍは、論理プロセッサコア及び／又は仮想プロセッサコアを有する。それぞれの論理プロセッサコア１０８−１〜ｍは、幾つかの実施の形態において１以上の仮想プロセッサコアを含む。たとえば、それぞれのプロセッサコア１０８−１〜ｍは、マルチコアプロセッサ１０８について全体で８つの利用可能なコアとなる２つの仮想コアを含む。他の実施の形態も記載され、特許請求される。
【００１５】
様々な実施の形態では、メモリ１０４は、たとえばメモリ、取り外し可能又は取り外し不可能な媒体、揮発性又は不揮発性メモリ又は媒体、消去可能又は消去不可能な媒体、書込み可能又は書換え可能な媒体、デジタル又はアナログ媒体、ハードディスク、フロプティカルディスク、CD-ROM（Compact  Disk  Read  Only  Memory）、CD-R（Compact  Disk  Recordable）、CD-RW（Compact  Disk  Re-Writable）、光ディスク、磁気媒体、光磁気媒体、取り外し可能なメモリカード又はディスク、各種のタイプのDVD（Digital  Versatile  Disk）、テープ、カセット等といった、適切なタイプのメモリユニット、メモリデバイス、メモリ製品、メモリ媒体、記憶装置、記憶製品、記憶媒体及び／又は記憶ユニットを有する。
【００１６】
オペレーティングシステム（OS）１０６は、幾つかの実施の形態において装置１００の様々なハードウェアコンポーネントとユーザとの間のインタフェースを有する。様々な実施の形態では、OS１０６は、コンピュータシステム１００のリソースのアクティビティ及び共有を管理及び調整する役割を担う。幾つかの実施の形態では、OS１０６は、たとえばメディアアプリケーションのようなコンピュータシステム１００上で実行される様々なコンピュータアプリケーションにとってホストとして機能する。OS１０６は、幾つかの実施の形態においてワシントン州レドモンドのMicrosoft  Corporation（登録商標）によるWindows（登録商標）のオペレーティングシステムを有する場合がある。
【００１７】
様々な実施の形態では、関連付け管理モジュール１０２は、コンピュータシステム１００の電力を管理するソフトウェアドライバ又はアプリケーションを有する場合がある。幾つかの実施の形態では、関連付け管理モジュール１０２は、たとえばメディアプロセッサコアの関連付け計画のような、特定の電力計画への参加を制御したり、特定の電力計画を管理する、OS１０６の下で実行するソフトウェアドライバを有する。メディアプロセッサコアの関連付け計画は、様々な実施の形態におけるメディアアプリケーションを使用したメディアファイルを実行するような、アクティブな作業負荷の間のプロセッサの電力消費量を低減する動的な計画を有する。なお、関連付け管理モジュール１０２はコンピュータシステム１００における個別の構成要素として示されているが、OS１０６の一部としてメモリ１０４に含まれているか、任意の他の位置又はコンフィギュレーションに含まれ、記載される実施の形態になお含まれることを理解されたい。他の実施の形態が記載及び特許請求される。
【００１８】
幾つかの実施の形態では、関連付け管理モジュール１０２は、マルチコアプロセッサの複数のプロセッサコアの１以上で実行するメディアアプリケーションを検出する。メディアアプリケーションの例は、限定されるものではないが、Windows（登録商標）  Media  Player、Corel  WinDVD、Cyberlink  PowerDVD、Arcsoft  Total  Media  Theater、Apple  QuickTime及びApple  iTunesを含む。様々な実施の形態では、メディアアプリケーションは、メディアファイルを編集、再生、又は表示、デコード又は実行するため、マルチコアプロセッサの複数のコアのうちの１以上により実行される。メディアファイルは、限定されるものではないが、再生のために同期を必要とする個別のオーディオ及びビデオデータストリームを有する任意の組み合わせのA/Vファイルを含む。メディアファイルは、標準精細（SD）メディアファイル又は高精細（HD）メディアファイルを含む。たとえばメディアファイルは、DVDメディア、HD  DVDメディア、Blue-Rayメディア、又は任意の他の適切なメディアファイルを含む。他の実施の形態が記載及び特許請求される。
【００１９】
関連付け管理モジュール１０２は、幾つかの実施の形態におけるマルチコアプロセッサのプロセッサコアのサブセットを動的に選択する。たとえば、マルチコアプロセッサは、４つの物理的なコアを含んでおり、それぞれのコアは、複数の論理コアを有しており、全体で８つの利用可能なプロセッサコアを可能にする。幾つかの実施の形態では、関連付け管理モジュール１０２は、メディアアプリケーションの実行において使用されるこれらのコアのセットを選択する。様々な実施の形態では、関連付け管理モジュール１０２は、プロセッサコアのサブセットで実行するためにメディアアプリケーションを関連付けする。幾つかの実施の形態では、たとえばプロセッサコアのサブセットは、たとえばマルチコアプロセッサの全体のプロセッサコアの数よりも少ない数のプロセッサコアを有する。
【００２０】
様々な実施の形態では、関連付け管理モジュール１０２は、メディアアプリケーションによるメディアファイルの再生の間の最適な数のコアを動的且つ自動的に選択する。たとえば、関連付け管理モジュール１０２は、メディアアプリケーションが起動されているか又は現在アクティブであるかを判定するために、バックグランドで実行されるスクリプト、ドライバ、サブルーチン、プロセス又は他のアプリケーションを有する。幾つかの実施の形態では、関連付け管理モジュール１０２は、識別／検出プロセスにおいて支援するためにメディアアプリケーションの予め決定されたリストを含む。
【００２１】
関連付け管理モジュール１０２は、幾つかの実施の形態において、プロセッサコアのサブセットを動的に選択するロジックを含む。たとえば、関連付け管理モジュール１０２は、マルチコアプロセッサの複数のプロセッサコアのそれぞれで実行するようにメディアアプリケーションを関連付けする。これは、複数のプロセッサコアのそれぞれが利用されるとき、全体のプロセッサ使用率又は電力消費量のベンチマーク又は他の適切な手段を確立する。様々な実施の形態では、関連付け管理モジュール１０２は、マルチコアプロセッサについて電力状態の滞在値（power  state  residency）を続いて測定する。たとえば、複数のコアのそれぞれで実行するように関連付けされたメディアアプリケーションにより、関連付け管理モジュール１０２は、マルチコアプロセッサの使用率又は電力消費量を決定する。
【００２２】
幾つかの実施の形態では、関連付け管理モジュール１０２は、プロセッサのパフォーマンス状態（たとえばP0,  P1,  P2等）の滞在値又はプロセッサの電力状態（たとえばC0,  C1,  C2等）の滞在値をある閾値に比較する。閾値は、マルチコアプロセッサにとって許容可能な予め決定された電力消費量を有する。関連付け管理モジュール１０２は、パフォーマンス状態又は電力状態の滞在値が閾値を超えない場合に、マルチコアプロセッサの１つだけ少ないプロセッサで実行するようにメディアアプリケーションを関連付けする。たとえば関連付け管理モジュール１０２は、アクティブなプロセッサコアの数を低減することで電力の節約を達成することができるかを判定するロジックを含む。
【００２３】
様々な実施の形態では、動的な選択プロセスは、プロセッサのパフォーマンス又は電力状態の滞在値が閾値を超えなくなるまで繰り返される。たとえば、関連付け管理モジュール１０２は、予め決定された期間後にマルチコアプロセッサの電力状態の滞在値を測定し直し、測定し直された電力状態の滞在値を閾値と比較し、パフォーマンス又は電力状態の滞在値が閾値を超えない場合に、マルチコアプロセッサの１つだけ少ないプロセッサコアで実行するようにメディアアプリケーションの関連付けを解除（de-affinitize）し続ける。様々な実施の形態では、関連付け管理モジュール１０２は、パフォーマンス又は電力状態の滞在値が閾値を超える場合に、マルチコアプロセッサの１つの更なるプロセッサコアで実行するようにメディアアプリケーションを関連付けし直すか、プロセッサコアの現在の数を維持する。他の実施の形態が記載及び特許請求される。
【００２４】
幾つかの実施の形態では、関連付け管理モジュール１０２は、メディアアプリケーションに加えて、複数のプロセッサコアのうちの１以上を実行する１以上のアプリケーションを検出する。たとえば、ユーザは、メディアアプリケーションに加えて任意の数のアプリケーションを起動する。様々な実施の形態では、ユーザは、Blue-Ray  DVDの動画を視聴している間に、たとえばウェブブラウザのアプリケーションを起動し、これは、電力の要件及び／又はマルチコアプロセッサの電力消費を変更する。検出に応答して、関連付け管理モジュール１０２は、幾つかの実施の形態では、マルチコアプロセッサのパフォーマンス又は電力状態の滞在値の測定間の時間間隔を減少する。たとえば、関連付け管理モジュール１０２は、更なるアプリケーション及び／又は異なるタイプのアプリケーションがアクティブである場合に、パフォーマンス又は電力状態の滞在値の測定間の時間間隔を低減する。このように、任意の数のアクティブコアは、変更された要件の観点でより正確に維持される。
【００２５】
関連付け管理モジュール１０２は、幾つかの実施の形態において、メディアファイルの対応するオーディオ及びビデオデータストリームを同期させるため、メディアアプリケーションにより周期的に発生されるメディア割り込みを、メディアアプリケーションが実行されるように関連付けされるマルチコアプロセッサのプロセッサコアに向ける。たとえば、周期的な同期割り込みは、動的に選択されたプロセッサコアのセットにのみ向けられる。様々な実行の形態では、同期割り込みの処理に係わるプロセッサコアを制限することで、コンピュータシステム１００についてプロセッサのオーバヘッドが低減され、電力消費量が低減される。他の実施の形態も記載され、特許請求される。
【００２６】
一般に、関連付けされたプロセッサコアの数が少なくなると、プロセッサの電力消費量が低くなる。しかし、幾つかの実施の形態では、メディアアプリケーションを実行するために関連付けされるマルチコアプロセッサの最少のプロセッサコアの数は、２つのプロセッサコアである。２未満のアクティブなコアに低減することは、実際に、プロセッサの電力消費量を大幅に増加させる。たとえば、１つのプロセッサコアの使用は、メディアアプリケーションを適切にレンダリングする適切な処理のレベルを維持するため、プロセッサコアについてターボ又は加速されたモードの使用（又はたとえばP1,  P2等といった他のハイパフォーマンス状態の使用）を必要とする。１つのプロセッサコアにおけるターボモード（又は他のハイプロセッサP状態）の使用と関連する電力消費量は、メディア割り込みの数を低減することと関連する電力節約を補償するためには十分ではない。
【００２７】
所定の実施の形態がモジュール、ロジック、ソフトウェア又はスレッドの観点で記載されたが、任意の数のロジックのモジュール、スレッド又はアレンジメント及び任意の数のマルチコアプロセッサのコアを使用することができ、記載される実施の形態の範囲にあることを理解されたい。さらに、幾つかの実施の形態では、本実施の形態で記載されるロジックは、複数のタスク又はアプリケーションを処理すること及び実質的に同時に複数のコアを制御することを含めて、並列にタスクを実行するために実装又は構成されることを理解されたい。さらに、本実施の形態で記載されるロジックフローは、例示することを目的とするロジックフローであり、ロジックフローで記載される動作の異なる数、順序及び又はアレンジメントを実現することができ、記載される実施の形態に範囲であることを理解されたい。他の実現も記載され、特許請求される。
【００２８】
図２は、ロジックフロー２００の１実施の形態を例示する。ロジックフロー２００は、様々なシステム及び／又はデバイスにより実行される場合があり、設計パラメータ又はパフォーマンスの制約の所与のセットとして、ハードウェア、ソフトウェア、ファームウェア及び／又はその組み合わせとして実現される。たとえばロジックフロー２００の１以上の動作は、ロジックデバイス（たとえばコンピュータ、プロセッサ）により実行される実行可能な命令又はコンピュータ読み取り可能な命令により実現される。ロジックフロー２００は、装置１００及び関連付け管理モジュール１０２を参照して上述された電力節約の機能を説明する。
【００２９】
様々な実施の形態では、限定するものではなく例示するために、ロジックフロー２００は、８つのロジックコアを含むコンピュータシステムについてアクティブなメディアアプリケーションを識別することを想定する。幾つかの実施の形態では、ロジックフロー２００は、たとえば図１の関連付け管理モジュール１０２により実現されるロジックの表現を含む。ロジックフローの実施の形態は、異なる実現について異なる値に設定可能なプログラマブルな変数を有する‘X’、‘Y’及び‘Z’を含む変数を示す。他の実施の形態も記載され、特許請求される。
【００３０】
ステップ２０２で、コンピュータシステムの全ての利用可能なコアは、メディアアプリケーションを実行するために関連付けされる。たとえば、図２に示されるように、全ての８つの論理コアがメディアアプリケーションを実行するためにはじめに関連付けされる。幾つかの実施の形態では、ステップ２０４で、X秒の評価窓を通してのプロセッサのパフォーマンスの状態の滞在値の測定が行われる。たとえば、Xは、幾つかの実施の形態では、１５秒である。ステップ２０６で、最後の評価窓Xの間のパフォーマンスの状態P0（さもなければ「ターボ」状態として知られる）がターボ閾値Yを超えるか否かに関する判定が行われる。ターボ閾値Yは、たとえばコンピュータシステムのマルチコアプロセッサの許容可能なターボ処理の予め決定された大きさ又はボリュームを有する。
【００３１】
２０６で、パフォーマンス状態の滞在値が閾値２０６を超えない場合、ステップ２０８で、１を超えるプロセッサコアがアクティブであるか否かに関する判定が行われる。１を超えるプロセッサコアがアクティブである場合、ステップ２１０で、メディアアプリケーションは１つのプロセッサコアとの関連付けが解除され、プロセスは、ステップ２０４でのプロセッサのパフォーマンス状態の滞在値の測定が再開される。１つのプロセッサコアのみがアクティブである場合、ステップ２１４で、最適な数のグループ化されたコアが識別されたかに関する判定が行われ、この判定を反映するためにフラグが設定される。また、ステップ２１４で、関連付けされたコアの最後の最適な数はステップ２０４での電力状態の滞在値の測定を再開する前に識別されたので、Z分の待ち時間が確立される。
【００３２】
様々な実施の形態では、ステップ２０６で電力状態の滞在値が閾値Yを超える場合、プロセスは１つの更なるプロセッサコアで実行するようにメディアアプリケーションを関連付けし直す。次いで、プロセスはステップ２１４に進み、ここで、最適な数のグループ化されたコアが識別されたことの判定が行われ、この判定を反映するためのフラグが設定され、最後の最適な数の関連付けされたコアは、ステップ２０４での電力状態の滞在値の測定を再開する前に識別されたので、Z分の待ち時間が確立される。待ち時間Zは、たとえば20分である。幾つかの実施の形態では、待ち時間は、検出されたシステムのアクティビティに基づいて延長又は短縮される。たとえば、メディアアプリケーションに加えてあるアプリケーションが検出された場合、待ち時間Zは短縮され、関連付け管理ロジックにより最適な数のアクティブなプロセッサコアが更に頻繁に判定されることになる。
【００３３】
なお、ロジックフロー２００は１つのプロセッサのパフォーマンスの状態（P0又はターボ状態）に基づく判定を含んでいるが、他のプロセッサのパフォーマンスの状態（P1，P2，P3等）を使用することができ、記載される実施の形態に範囲に含まれる。また、ロジックフロー２００は、プロセッサのパフォーマンスの状態に基づく判定を含んでいるが、プロセッサの電力の状態又はC-stateのような他の状態が付加的及び／又は代替的に考慮される場合があり、記載される実施の形態の範囲に含まれる。たとえば、多数のプロセッサコアからメディアアプリケーションの関連付けを解除することは、よりシリアルなやり方でアプリケーションのタスクを実行することになり、これは、プロセッサC0電力状態を結果的に延長する場合があり、プロセッサの電力消失の増加につながり、プロセッサの割り込みレートを低減することで達成される電力の節約を超える増加につながる。したがって、ロジックフロー２００は、幾つかの実施の形態では、予め決定された及び／又はプログラマブルな閾値よりも高いプロセッサのC0-stateの増加につながらない限り行われる連続するコアの関連付けの解除を含む場合がある。他の実施の形態も記載され、特許請求される場合がある。
【００３４】
図３は、第二のロジックフロー３００の１実施の形態を例示する。ロジックフロー２００を参照して上述されたように、ロジックフロー３００は、様々なシステム及び／又はデバイスにより実行され、設計パラメータ又はパフォーマンスの制約の所与のセットについて望まれるとき、ハードウェア、ソフトウェア、ファームウェア、及び／又はその組み合わせとして実現される。たとえば、ロジックフロー３００の１以上の動作は、ロジックデバイス（例えばコンピュータ、プロセッサ）により実行されるべき実行可能なプログラミング又はコンピュータ読み取り可能な命令により実現される。
【００３５】
１実施の形態では、マルチコアプロセッサのうちの複数のプロセッサコアのうちの１以上で実行するメディアアプリケーションは、ステップ３０２で検出される。たとえば関連付け管理モジュール１０２は、Windows（登録商標）  Media  Playerがコンピュータシステム１００でアクティブであり、マルチコアプロセッサ１０８のプロセッサコア１０８−１〜ｍの何れかで実行されていることを検出する。ステップ３０４で、マルチコアプロセッサのプロセッサコアのサブセットは、様々な実施の形態で動的に選択される。たとえば、関連付け管理モジュール１０２は、Windows（登録商標）  Media  Playerを実行するようにプロセッサコア１０８−１及び１０８−２を動的に選択する。
【００３６】
幾つかの実施の形態では、メディアアプリケーションは、ステップ３０６でプロセッサのサブセットで実行するように関連付けされる。たとえば関連付け管理モジュール１０２は、動的に選択されたプロセッサコア１０８−１及び１０８−２で実行するようにWindows（登録商標）  Media  Playerを関連付けする。様々な実施の形態では、プロセッサコアのサブセットは、マルチコアプロセッサのプロセッサコアの総数未満の数のプロセッサコアを有する。プロセッサコア１０８−１及び１０８−２は、たとえばコンピュータシステム１００の４つの利用可能なプロセッサコアのうちの２つを有する。メディアアプリケーションを実行するためのマルチコアプロセッサのうちのプロセッサコアの最少数は、幾つかの実施の形態では２つのプロセッサコアを有する。たとえば、関連付けモジュール１０２は、マルチコアプロセッサ１０８の２つのプロセッサコア１０８−１〜ｍを選択する。他の実施の形態も記載され、特許請求される場合がある。
【００３７】
プロセッサコアのサブセットを動的に選択することは、幾つかの実施の形態において、マルチコアプロセッサの複数のプロセッサコアのそれぞれで実行するようにメディアアプリケーションを関連付けすること、マルチコアプロセッサのパフォーマンス又は電力状態の滞在値を測定すること、パフォーマンス又は電力状態の滞在値を閾値と比較すること、電力状態の滞在値が閾値を超えない場合にマルチコアプロセッサの１つ少ないプロセッサコアで実行するようにメディアアプリケーションの関連付けを解除すること、を含んでいる。たとえば、関連付け管理モジュールは、メディアアプリケーションがアクティブであることを検出し、プロセッサコア１０８−１〜ｍのそれぞれで実行するようにメディアアプリケーションを関連付けし、マルチコアプロセッサ１０８のパフォーマンス又は電力状態の滞在値を測定し、電力状態の滞在値を閾値と比較し、電力状態の滞在値が閾値を超えない場合に、マルチコアプロセッサ１０８の１つ少ないプロセッサコア（たとえばコア１０８−１，１０８−２及び１０８−３）で実行するようにメディアアプリケーションの関連付けを解除する。
【００３８】
幾つかの実施の形態では、プロセッサコアのサブセットを選択することは、予め決定された期間後にマルチコアプロセッサのパフォーマンス又は電力状態の滞在値を測定し直すこと、測定し直された状態の滞在値を閾値に比較すること、電力状態の滞在値が閾値を超えない場合にマルチコアプロセッサの１つ少ないプロセッサコアで実行するようにメディアアプリケーションの関連付けを解除すること、を含む。たとえば、関連付け管理モジュール１０２は、動的な選択プロセスを周期的に繰り返して、最適な数の選択されたプロセッサコア１０８−１〜ｍを確認し、必要であれば変更する。
【００３９】
メディアアプリケーションに加えて複数のプロセッサコアの１以上で実行する１以上のアプリケーションは、幾つかの実施の形態において検出される。たとえば、関連付け管理モジュール１０２は、メディアアプリケーションに加えて、ワードプロセッシングアプリケーションがアクティブであることを検出する。様々な実施の形態では、検出に応答して、マルチコアプロセッサの電力状態の滞在値の測定間の時間間隔が短縮される。たとえば、関連付け管理モジュールは、時間間隔を短縮するか、又は最適な数のプロセッサコア１０８−１〜ｍの動的な選択に関連するステップを実行する頻度を増加する。
【００４０】
幾つかの実施の形態では、メディアアプリケーションは、マルチコアプロセッサの１つの更なるプロセッサコアで実行するように関連付けし直すか、パフォーマンス又は電力状態の滞在値が閾値を超える場合に、現在のプロセッサコアの数が維持される。たとえば、マルチコアプロセッサ１０８のパフォーマンス又は電力状態の滞在値が閾値を超えると関連付け管理モジュール１０２が判定した場合、関連付け管理モジュール１０２は、現在アクティブではない１つの更なるプロセッサコア１０８−１〜ｍで実行されるようにメディアアプリケーションを関連付けし直す。
【００４１】
メディアアプリケーションは、様々な実施の形態において、対応するオーディオ及びビデオデータストリームを有するメディアファイルを再生する。たとえば、Windvdは、オーディオ及びビデオデータストリームの両者を含むBlue-Ray  DVD動画を再生する。幾つかの実施の形態では、メディアアプリケーションは、オーディオ及びビデオデータストリームを同期させるメディア割り込みを周期的に発生する。たとえば、Windvdは、Blue-Ray  DVDメディアファイルのオーディオ及びビデオデータストリームを同期させるために使用される周期的なOS‘tick’割り込みを発生する。様々な実施の形態では、メディア割り込みは、メディアアプリケーションが実行するために関連付けされるマルチコアプロセッサのプロセッサコアに送出される。たとえば、関連付け管理モジュール１０２は、メディアアプリケーションを実行するために動的に選択されたプロセッサコア１０８−１〜ｍのサブセットにメディア割り込みを向ける。
【００４２】
所定の実施の形態は、特定のプロセッサコアのアレンジメント、特定のメディアアプリケーション及び特定のメディアファイルに関して記載されたが、これらの例は例示するものであって、限定されるものではないことを理解されたい。任意の数、タイプ及び／又はアレンジメントのコンポーネント、モジュール、アプリケーションタイプ及びファイルタイプを使用することができ、記載される実施の形態の範囲に含まれる。他の実施の形態が記載され、特許請求される場合がある。
【００４３】
図４は、例示的なシステムの実施の形態のブロック図である。特に、図４は、様々なエレメントを含むシステム４００を示す図である。たとえば、図４は、システム４００が、プロセッサ４０２、チップセット４０４、入力／出力（I/O）装置４０６、ランダムアクセスメモリ（RAM）（DRAM）４０８、及びリードオンリメモリ（ROM）４１０、及び各種プラットフォームコンポーネント４１４（たとえばファン、crossflow  blower、ヒートシンク、DTMシステム、冷却システム、ハウジング、ベント等）を含むことを示す。これらのエレメントは、ハードウェア、ソフトウェア、ファームウェア又はそれらの任意の組み合わせで実現される場合がある。しかし、実施の形態は、これらのエレメントに限定されない。
【００４４】
図４に示されるように、I/O装置４０６、RAM４０８及びROM４１０は、チップセット４０４を介してプロセッサ４０２に結合される。チップセット４０４は、バス４１２によりプロセッサ４０２に結合される。従って、バス４１２は、多数のラインを含む。
【００４５】
プロセッサ４０２は、１以上のプロセッサコアを有する中央処理装置であり、任意の数のプロセッサコアを有する任意の数のプロセッサを含む場合がある。プロセッサ４０２は、たとえばCPU、マルチプロセッシングユニット、RISC（Reduced  Instruction  Set  Computer）、パイプラインを有するプロセッサ、CISC（Complex  Instruction  Set  Computer）、DSP（Digital  Signal  Processor）等のような任意のタイプの処理装置を含む。
【００４６】
図示されていないが、システム４００は、Ethernet（登録商標）  Interface及び／又はUSB（Universal  Serial  Bus）インタフェース等のような様々なインタフェース回路を含む。幾つかの例示的な実施の形態では、I/O装置４０６は、システム４００にデータ及び命令を入力するインタフェース回路に接続される１以上の入力装置を有する。たとえば、入力装置は、キーボード、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイント、音声認識システム等を含む。同様に、I/O装置４０６は、オペレータに情報を出力するインタフェース回路に接続される１以上の出力装置を有する。たとえば、出力装置は、１以上のディスプレイ、プリンタ、スピーカ、及び／又は必要に応じて他の出力装置を含む。たとえば、出力装置のうちの１つは、ディスプレイである。ディスプレイは、陰極線管（CRT）、液晶ディスプレイ（LCD）又は任意の他のタイプのディスプレイである。
【００４７】
システム４００は、ネットワークへの接続を介してたの装置とデータをやり取りする有線又は無線ネットワークインタフェースを有する。ネットワークコネクションは、Ethernet（登録商標）接続、デジタル加入者回線（DSL）、電話回線、同軸ケーブル等のような任意のネットワーク接続である。ネットワークは、Internet、電話網、ケーブルネットワーク、無線ネットワーク、パケット交換網、回路交換ネットワーク等のような任意のタイプのネットワークである。
【００４８】
本発明の実施の形態の十分な理解を提供するために様々な特定の詳細が説明された。しかし、実施の形態はこれら特定の詳細なしに実施される場合があることを当業者であれば理解されるであろう。他の例では、本発明の実施の形態を曖昧にすることがないように公知の動作、コンポーネント及び回路が詳細に記載されていない。本実施の形態で開示される特定の構造及び機能的な詳細は代表的なものであって、本実施の形態の範囲を必ずしも制限するものではない。
【００４９】
様々な実施の形態は、ハードウェアエレメント、ソフトウェアエレメント又はその両者の組み合わせを使用して実現される場合がある。ハードウェアエレメントの例は、プロセッサ、マイクロプロセッサ、回路、回路素子（たとえばトランジスタ、抵抗、キャパシタ、インダクタ等）、集積回路、特定用途向け集積回路（ASIC）、プログラマブルロジックデバイス（PLD）、デジタルシグナルプロセッサ（DSP）、フィールドプログラマブルゲートアレイ（FPGA）、ロジックゲート、搬送装置、チップ、マイクロチップ、チップセット等を含む。ソフトウェアの例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、手順、ソフトウェアインタフェース、アプリケーションプログラムインタフェース（API）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又は任意のこれらの組み合わせを含む。ハードウェアエレメント及び／又はソフトウェアエレメントを使用して実施の形態が実現されるかを判定することは、所望の計算レート、電力レベル、熱耐性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度、及び他の設計又は性能の制約のような多数のファクタに従って変動する場合がある。
【００５０】
幾つかの実施の形態は、それらの派生と共に表現「結合“coupled”」及び「接続“connected”」を使用して記載される。これらの用語は、互いに同じ概念を示すものとして意図されない。たとえば、幾つかの実施の形態は、２以上のエレメントが互いにのダイレクトに物理的又は電気的に接触していることを示すために、用語「接続」及び「結合」を使用して記載される。しかし、用語「結合」は、２以上のエレメントが互いにダイレクトに接触していないが、互いに協働又は相互作用することを意味する場合がある。
【００５１】
幾つかの実施の形態は、マシン読み取り可能又はコンピュータ読み取り可能な媒体、或いは、マシン又はプロセッサにより実行されたときに、マシン又はプロセッサに実施の形態に係る方法及び／又は動作を実行させる命令、命令のセット又はコンピュータ実行可能なコードを記憶する記憶媒体を使用して実現される場合がある。係るマシンは、たとえば適切な処理プラットフォーム、コンピュータプラットフォーム、コンピュータ装置、処理装置、コンピュータシステム、処理システム、コンピュータ、プロセッサ等を含み、ハードウェア及び／又はソフトウェアの適切な組み合わせを使用して実現される場合がある。マシン読み取り可能な媒体又は記憶媒体は、たとえばメモリ、取り外し可能又は取り外し不可能な媒体、揮発性又は不揮発性メモリ又は媒体、消去可能又は消去不可能な媒体、書込み可能又は書換え可能な媒体、デジタル又はアナログ媒体、ハードディスク、フロプティカルディスク、CD-ROM（Compact  Disk  Read  Only  Memory）、CD-R（Compact  Disk  Recordable）、CD-RW（Compact  Disk  Rewritable）、光ディスク、磁気媒体、光磁気媒体、取り外し可能なメモリカード又はディスク、様々なタイプのDVD（Digital  Versatile  Disk）、テープ、カセット等といった、任意の適切なタイプのメモリユニット、メモリ装置、メモリ製品、メモリ媒体、ストレージ装置、ストレージ製品及び／又はストレージユニットを含む。命令は、適切な高水準、低水準、オブジェクト指向、ビジュアル、翻訳及び／又は解釈プログラミング言語を使用して実現される、ソースコード、翻訳（compiled）コード、解釈（interpreted）コード、実行可能なコード、スタティックコード、ダイナミックコード、暗号化コード等のような適切なタイプのコードを含む。
【００５２】
特に断りがない限り、「処理“processing”」、「計算“computing”」、「計算“calculating”」、「判定“determining”」等は、コンピュータシステムのレジスタ及び／又はメモリ内で物理量として表現されるデータ（たとえば電子的な）を、コンピュータシステムのメモリ、レジスタ又は他の係る情報ストレージ、送信又は表示装置内の物理量として同様に表現される他のデータに処理及び／又は変換するコンピュータ又はコンピュータシステム、或いは類似の電子的な計算装置の動作及び／又は処理を示す。実施の形態は、この環境に制限されるものではない。
【００５３】
なお、本明細書で記載される方法は記載される順序で実行される必要はなく、任意の特定の順序で実行される。本実施の形態で識別される方法に関して記載される様々な動作は、シリアル又はパラレルな方式で実行することができる。
【００５４】
本実施の形態では特定の実施の形態が例示及び記載されたが、同じ目的を達成するために計算されるアレンジメントは図示される特定の実施の形態について置き換えられる場合があることを理解されたい。この開示は、様々な実施の形態の何れか又は全部の適合又は変形をカバーすることが意図される。先の記載は、例示的なやり方で行われるものであって、限定するものではないことを理解されたい。先の実施の形態の組み合わせ、本実施の形態で特に記載されない他の実施の形態は、先の記載の検討に応じて当業者にとって明らかであろう。従って、様々な実施の形態の範囲は、先の構成、構造及び方法が使用される他の応用を含む。
【００５５】
要約は技術的な開示の本質を読者が迅速に確認するのを可能にする要約を必要とする37C.F.R§1.72(b)に従って提供される。この要約は、特許し得球の範囲の範囲又は意味を解釈又は限定するために使用されないという理解の下に提出されている。さらに、上述の詳細な説明において、開示をストリーミングするために１つの実施の形態において、様々な特徴が互いにグループ化されることが分かる。この開示の方法は、特許請求される発明がそれぞれの請求で明示的に記載されるよりも多くの特徴を必要とするという意図を反映するものとして解釈されるものではない。むしろ、以下の請求項は、１つの開示される実施の形態の全ての特徴未満の本発明の対象を反映する。従って、以下の請求項は、詳細な説明に盛り込まれ、それぞれの請求項は、個別の好適な実施の形態としてそのままで意味する。特許請求の範囲では、用語「含む“include”」及び「“in  which”」は、それぞれの用語「備える“comprise”」及び「“wherein”」のプレインイングリッシュの等価なものとして使用される。さらに、用語「第一“first”」、「第二“second”」及び「第三“third”」等は、ラベルとして単に使用され、それらの対象物に関する数値的な要件を課すことが意図されない。
【００５６】
構造的な特徴及び／又は方法の動作に関する言語で本発明の対象が記載されたが、特許請求の範囲で定義される本発明の対象は、上述された特定の特徴又は動作に必ずしも限定されるものではないことを理解されたい。むしろ、上述された特定の特徴及び動作は、請求項を実現する例示的な形式として開示される。
【符号の説明】
【００５７】
１０２：関連付け管理モジュール
１０４：メモリ
１０６：オペレーティングシステム
１０８：マルチコアプロセッサ
４０２：プロセッサ
４０４：チップセット
４０６：I/O装置
４０８：RAM
４１０：ROM
４１４：プラットフォームコンポーネント
【図１】
2011216093.tif 000003
【図２】
2011216093.tif 000004
【図３】
2011216093.tif 000005
【図４】
2011216093.tif 000006
【外国語明細書】
2011216093000001.pdf
2011216093000002.pdf
2011216093000003.pdf
2011216093000004.pdf