JP2017021811A - 電力効率の優れたプロセッサアーキテクチャ - Google Patents
電力効率の優れたプロセッサアーキテクチャ Download PDFInfo
- Publication number
- JP2017021811A JP2017021811A JP2016153400A JP2016153400A JP2017021811A JP 2017021811 A JP2017021811 A JP 2017021811A JP 2016153400 A JP2016153400 A JP 2016153400A JP 2016153400 A JP2016153400 A JP 2016153400A JP 2017021811 A JP2017021811 A JP 2017021811A
- Authority
- JP
- Japan
- Prior art keywords
- core
- interrupt
- cores
- logic
- small
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Power Sources (AREA)
Abstract
【課題】ヘテロジニアスプロセッサ環境において平均電力消費を低減する。
【解決手段】プロセッサ100は、アクセラレータ140a〜140cから割込みを受け取り、割込みに応答してレジューム信号を小さなコア120a〜120nに対して直接的に送信し、大きなコア110a、110bの実行状態のサブセットを第1の小さなコアに提供し、小さなコアが割込みと関連する要求を処理することができるかどうかを判断し、判断結果が肯定的である場合、要求に対応する動作を小さなコアにおいて実行し、さもなければ、大きなコアの実行状態及びレジューム信号を大きなコアに対して提供する。
【選択図】図1
【解決手段】プロセッサ100は、アクセラレータ140a〜140cから割込みを受け取り、割込みに応答してレジューム信号を小さなコア120a〜120nに対して直接的に送信し、大きなコア110a、110bの実行状態のサブセットを第1の小さなコアに提供し、小さなコアが割込みと関連する要求を処理することができるかどうかを判断し、判断結果が肯定的である場合、要求に対応する動作を小さなコアにおいて実行し、さもなければ、大きなコアの実行状態及びレジューム信号を大きなコアに対して提供する。
【選択図】図1
Description
通常、プロセッサは、可能な際には、例えば、ACPI(Advanced Configuration and Power Interface)規格(例えば、2006年10月10日付けで公開された改訂版3.0b)に従って省電力化スリープモードを使用する。電圧及び周波数スケーリング(DVFS又はACPI稼働状態(P状態))に加え、これらの所謂C状態コア低電力状態(ACPIのC状態)は、コアがアイドル状態にあるか又は十分に利用されていない際には、電力を節約することができる。但し、マルチコアプロセッサ環境においても、コアは、しばしば、相対的に単純な動作を実行するべく効率的なスリープ状態からウェイクアップさせられ、次いで、スリープ状態に戻る。低電力状態からの離脱と低電力状態への復帰のためにレイテンシーと電力消費の両方における損失が存在していることから、この動作は、電力効率に対して悪影響を及ぼす可能性がある。いくつかのタイプのプロセッサにおいては、有用な働きが実現されることなしに、状態遷移の際に電力が消費される場合があり、電力効率に不利益をもたらす。
低電力状態からの離脱の際に処理を要する動作の例には、キーボード入力、タイマ割込み、ネットワーク割込みなどが含まれる。これらの動作を電力に配慮した方式で処理するために、現在のオペレーティングシステム(Operating System:OS)は、大量のデータを一度に処理することにより、或いは、定期的なタイマ割込みではなく散発的なプログラム済みの割込みのみが存在するティックレスOSに移行することにより、プログラムの動作を変更している。別の方式は、タイマ合体(timer coalescing)を使用するというものであり、この場合、複数の割込みが、グループ化され、同時に処理される。但し、プログラムの動作の変更に加え、これらの選択肢は、いずれも、複雑さを増大させ、依然として、電力の観点で非効率的な動作をもたらす可能性がある。更には、いくつかのタイプのソフトウェア(例えば、メディア再生)は、完了を要する作業の量とは無関係に、頻繁な定期的ウェイクアップを要求することにより、ハードウェアの電力効率性メカニズムを弱めようとする場合がある。したがって、ティックレス/タイマ合体方式は、深いC状態からの不必要なウェイクアップを低減することにより、それなりの電力を節約することはできるが、OSに対する侵襲的な変更を必要としており、このような変更は、オペレーティングシステムの新バージョンが配布される時点まで実装されないことから、演算エコシステムに伝播するために長時間を要する場合がある。
様々な実施形態においては、ヘテロジニアスプロセッサ環境において平均電力消費を低減することができる。このヘテロジニアス環境は、システム及び電力の効率性を理由として組み合わせられた大きな高速のコアと相対的に小さくて相対的に電力効率に優れたコアとを含んでもよい。更には、実施形態は、プロセッサ上において稼働するオペレーティングシステム(OS)に対してトランスペアレントな方式により、この電力制御を提供してもよい。但し、本発明の範囲は、ヘテロジニアス環境に限定されるものではなく、平均電力を低減するべく(例えば、可能な限り多くの数のコアをマルチプロセッサ環境においてスリープ状態に維持するべく)、(OSトランスペアレントであるが必ずしもハードウェア的にヘテロジニアスではない観点における)同種環境において使用することもできる。実施形態は、コアが頻繁にスリープ状態となるタブレットコンピュータに基づいた又はSoC(System−on−Chip)アーキテクチャなどのハードウェア的に加速された環境において特に適していよう。
一般に、実施形態は、大きなコアではなく小さなコアに対してすべてのウェイクアップ信号を割り当てることにより、電力制御を提供してもよい。この結果、システムが95%のアイドル状態にある際に、2倍を遥かに上回るだけ、平均電力を低減することができる。後述するように、多くの実施形態においては、この相対的に小さなコアは、OSから隔離することができる。即ち、この相対的に小さなコアの存在は、OSには未知であり、したがって、このコアは、OSからは、不可視状態にある。したがって、実施形態は、OS及びプロセッサ上において稼働しているアプリケーションに対してトランスペアレントな方式により、プロセッサハードウェアを介して電力効率の優れたプロセッサの動作を提供することができる。
まず、図1を参照すれば、本発明の一実施形態によるプロセッサのブロック図が示されている。図1において観察されるように、プロセッサ100は、いくつかの大きなコア、小さなコア、及びアクセラレータを有するヘテロジニアスプロセッサであってもよい。本明細書においては、マルチコアプロセッサの環境において記述されているが、実施形態は、このように限定されるものではなく、実装形態においては、SoC又はその他の半導体に基づいた処理装置内に存在してもよいことを理解されたい。アクセラレータは、プロセッサ・コアが電源投入されているかどうかとは無関係に、入力作業のキューに基づいて作業を実行することができることに留意されたい。図1の実施形態においては、プロセッサ100は、複数の大きなコアを含む。図示の特定の実施形態においては、このような2つのコア110a及び110b(総体として大きなコア110)が示されているが、2つを上回る数のこのような大きなコアを設けてもよいことを理解されたい。様々な実装形態においては、これらの大きなコアは、相対的に複雑なパイプライン型アーキテクチャを有すると共にCISC(Complex Instruction Set Computing)アーキテクチャに従って動作するアウトオブオーダ―プロセッサであってもよい。
更には、プロセッサ100は、複数の小さなコア120a〜120n(総体として小さなコア120)を更に含む。図1の実施形態には、このような8つのコアが示されているが、本発明の範囲は、この態様に限定されるものではないことを理解されたい。様々な実施形態においては、小さなコア120は、例えば、CISC又はRISC(Reduced Instruction Set Computing)アーキテクチャに従って命令を実行するための電力効率に優れたインオーダープロセッサであってもよい。いくつかの実装形態においては、これらのコアのうち2以上のコアは、例えば、いくつかの大きなコアが省電力化状態にある場合、関係する処理を実行するべく、直列で互いに結合してもよく、次いで、1つ又は複数の相対的に小さなコアは、さもなければ大きなコアをウェイクアップさせることになる作業を実行するべく、起動状態となってもよい。多くの実施形態においては、小さなコア120は、OSに対してトランスペアレントであってもよいが、その他の実施形態においては、小さなコア及び大きなコアは、OSに認識される状態にあってもよく、複数の構成選択肢が利用可能な状態にある。一般的に、様々な実施形態においては、大きなコアと小さなコアとの間における任意のコア混合体を使用することができる。例えば、大きなコアごとに単一の小さなコアを設けることが可能であり、或いは、その他の実施形態においては、単一の小さなコアを複数の大きなコアと関連付けてもよい。
本明細書において使用されている「大きなコア」という用語は、相対的に複雑性の低い設計を有することになる共に相応して相対的に小さな量のチップ面積を消費することになる「小さなコア」との比較において、相対的に複雑な設計を有すると共に相対的に大きなチップ面積を消費することになるプロセッサ・コアであってもよい。更には、小さなコアは、大きなコアよりも小さな熱設計電力(Thermal Design Power:TDP)を有することになることから、大きなコアよりも、電力効率に優れている。但し、小さなコアは、大きなコアとの比較において、その処理能力が制限される場合があることを理解されたい。例えば、これらの小さなコアは、大きなコアで可能であるすべての動作を処理できない場合がある。更には、相対的に小さなコアは、命令処理の効率性が低くなる可能性もある。即ち、命令は、小さなコアよりも大きなコアで相対的に迅速に実行されることになろう。
更に観察されるように、大きなコア110及び小さなコア120は、いずれも、相互接続部130に結合してもよい。この相互接続構造の様々な実装形態を様々な実施形態において実現することができる。例えば、いくつかの実施形態においては、相互接続構造は、FSB(Front Side Bus)アーキテクチャ又はインテル社(登録商標)のQPI(Quick Path Interconnect)プロトコルによるものであってもよい。その他の実施形態においては、相互接続構造は、所与のシステムファブリックによるものであってもよい。
又、図1を更に参照すれば、複数のアクセラレータ140a〜140cを相互接続部130に結合してもよい。本発明の範囲は、この観点において限定されるものではないが、アクセラレータは、オーディオ及び/又はビデオプロセッサ、暗号プロセッサ、固定機能ユニットなどのようなメディアプロセッサを含んでもよい。これらのアクセラレータは、コアを設計した同一の設計者によって設計されてもよく、或いは、プロセッサに内蔵されている独立系サードパーティの知的財産(Intellectual Property)ブロックであってもよい。一般に、これらのアクセラレータ内においては、専用の処理タスクを、処理能力又は電力消費の観点において、大きなコア又は小さなコア上において実行可能なものよりも効率的に実行できる。図1の実施形態には、この特定の実装形態を有するものとして示されているが、本発明の範囲は、この観点において限定されるものではないことを理解されたい。例えば、2つのタイプのコアのみを、即ち、大きなコアと小さなコアのみを、有する代わりに、その他の実施形態は、少なくとも、大きなコア、中間のコア、及び小さなコアを含むコアの複数の階層を有してもよく、中間のコアは、小さなコアよりも大きいが大きなコアよりも小さいチップ面積と、大きなコアの電力消費と小さなコアの電力消費との間の対応する電力消費とを有する。更にその他の実施形態においては、小さなコアは、例えば、大きなコアのロジック及び構造のサブセットとして、大きなコアに埋め込むことができる。
更には、図1の実施形態においては、複数の大きなコアと、複数の小さなコアとを含むものとして示されているが、モバイルプロセッサ又はSoCなどの特定の実装形態の場合、単一の大きなコアと単一の小さなコアのみを設けることもできる。次に図2を具体的に参照すれば、本発明の別の実施形態によるプロセッサのブロック図が示されており、この場合、プロセッサ100'は、相互接続部130及びアクセラレータ140a〜140cと共に、単一の大きなコア110と、単一の小さなコア120とを含む。前述のように、この実装形態は、モバイルアプリケーションに適していよう。
通常の大きなコアにおける例示用の電力数値として、電力消費は、約6000ミリワット(mW)のレベルであってもよく、中間コアの場合、電力消費は、約500mWのレベルであってもよく、非常に小さなコアの場合、電力消費は、約15mWのレベルであってもよい。大きなコアのウェイクアップを回避する一実装形態においては、大きな電力に伴う利益が実現されることになろう。
実施形態によれば、相対的に大きくて電力効率に劣るコアは、さもなければ可能であるものよりも、低電力スリープ状態において相対的に長く留まることができる。割込み及びその他のコアのウェイクアップイベントを、大きなコアの代わりに、小さなコアに対して割り当てることにより、小さなコアは、相対的に長く稼働することになり、相対的に頻繁にウェイクアップすることになるが、これは、依然として、データ移動などの取るに足らないタスクを実行するために大きなコアをウェイクアップさせるよりも電力効率に優れている。いくつかの動作について後述するように、例えば、小さなコアがベクトル演算(例えば、AVX演算)、複雑なアドレス指定モード、又は浮動小数点(Floating Point:FP)演算をサポートしていないことがあることから、稼働するように大きなコアを電源投入してもよいことに留意されたい。このようなケースにおいては、ウェイクアップ信号は、小さなコアから大きなコアに再ルーティングすることができよう。
例えば、ハードウェア加速型の1080pのビデオ再生をプロセッサ上において実行している間には、コアC6状態への及びコアC6状態からの1000回超の遷移と、1200回近い割込みとが一秒ごとに発生する。これらのウェイクアップイベントの一部分を本発明の一実施形態を使用して相対的に小さなコアに割り当て直せば、大きな電力節約を実現することができる。
図3は、本発明の一実施形態によるコアの間におけるレジュームフロー選択肢を要約したものである。図3において観察されるように、ソフトウェアドメイン210と、ハードウェアドメイン220とが存在している。一般に、ソフトウェアドメイン210は、例えば、ACPI実装形態によれば、電力管理との関連においてOSの動作に対応している。一般に、OSは、そのスケジューリングメカニズムに応じた到来するタスクに関するその知識に基づいて、低電力モードに入るようにプロセッサに要求するべく複数のC状態のうち1つを選択することができる。例えば、OSは、要求されている特定の低電力状態を含むMWAIT呼出しを発行することができる。
一般に、C0は、命令が実行される通常の動作状態に対応しており、状態C1〜C3は、OSの更に低電力の状態であり、これらのそれぞれは、異なる省電力化レベルと、C0状態に戻るための対応する異なるレイテンシーのレベルとを有する。観察されるように、プロセッサの予想作業負荷に応じて、OSは、例えば、OSのC0などの非アイドル状態を、或いは、例えば、OSのC状態C1〜C3などの複数のアイドル状態のうち1つを、選択してもよい。これらのアイドル状態のそれぞれは、プロセッサハードウェアの制御下にある対応するハードウェア低電力状態に対してマッピングすることができる。したがって、プロセッサハードウェアは、所与のOSのC状態を、OSによって指示されるものよりも大きな省電力化を提供し得る対応するハードウェアC状態に対してマッピングすることができる。一般に、相対的に軽度のC状態(例えば、C1)は、相対的に深いC状態(例えば、C3)よりも、電力の節約レベルは低いが、小さなレジューム時間を有する。様々な実施形態においては、ハードウェアドメイン220と、プロセッサC状態へのOSのC状態のマッピングと、は、プロセッサの電力制御ユニット(Power Control Unit:PCU)によって実行することが可能であるが、本発明の範囲は、この観点において限定されるものではない。このマッピングは、OSに基づいた電力管理要求の先行する履歴に基づいたものであってもよい。又、この決定は、システム全体の状態や構成情報などに基づいたものであってもよい。
更には、PCU又はその他のプロセッサロジックは、すべてのウェイクアップイベントを利用可能な最小のコア(様々な実施形態においては、OS不可視コアであってもよい)に割り当てるように構成してもよい。図3において観察されるように、所与のハードウェアに基づいたアイドル状態からの離脱の際に、状態がこの最小のコアに転送されるように、制御が、利用可能な最小のコアに対して直接的にレジュームされる。これとは対照的に、従来のハードウェア/ソフトウェアレジュームにおいては、制御は、大きなコアに対してのみ戻される。一般に、OSは、予想アイドル時間に基づいてC状態を選択し、アーキテクチャがハードウェアC状態に対してマッピングしたレイテンシー要件をレジュームする。したがって、図3の実施形態において観察されるように、すべてのレジューム信号(割込みなど)は、利用可能な最小のコアにルーティングされ、このコアが、自身がレジューム動作を処理することができるのか、或いは、その代わりに、継続するために更に大きなコアに対してウェイクアップ信号を送信する必要があるかを判断する。実施形態は、計測された実験的な効率に基づいて相対的に低いレジュームレイテンシーを有するハードウェアC状態をハードウェアが自動的に選択する既存のP状態又はC状態の自己デモーション(auto−demotion)を妨げないことに留意されたい。PCU又は別のプログラム可能なエンティティが、到来するウェイクアップイベントを調査し、それらをルーティングするべき(大きな又は小さな)コアを判断することも可能であることに留意されたい。
上述のように、いくつかの実装形態においては、小さなコア自体は、OS及びアプリケーションソフトウェアから隠蔽することができる。例えば、小さなコア−大きなコアのペアを抽象化すると共にアプリケーションソフトウェアから隠蔽することができる。低電力状態においては、アクセラレータ(ビデオ復号化アクセラレータなど)が復号化タスクなどの所与のタスクを実行している間に、すべてのコアは、スリープ状態にあってもよい。アクセラレータは、データを使い果たした際に、小さなコアからのものであってもよい追加データを要求するべくウェイクアップ信号を放出し、この小さなコアが、ウェイクアップし、大きなコアをウェイクアップさせることなしに、この単純なデータ移動動作を実現することができると判断し、これにより、電力が節約される。タイマ割込みが到来し、小さなコアが、ウェイクアップし、代わりに、(256ビットAVX命令のような)複雑なベクトル演算が命令ストリーム内に存在していることを検出した場合、複雑な命令(並びに、このストリーム内のその他の命令)を処理してレイテンシーを低減できるようにするべく、大きなコアをウェイクアップさせてもよい。一代替実装形態においては、PCU又はPCU近傍の別のアンコアの場所に、又はグローバル相互接続部上のハードウェアロジックの別個のセクションとして、又は小さなコアの内部制御ロジックの付加物として、配置することができるグローバルなハードウェア観察メカニズムにより、小さなコアがAVX命令に遭遇したことを検出することが可能であり、小さなコアのシャットダウンを生成しうる未定義命令障害を生成してもよく、大きなコアをウェイクアップさせた後に大きなコアに対して命令ストリームを割り当て直してもよい。この動作は、命令に留まらず、構成又は機能にまで拡張してもよいことに留意されたい。小さなコアは、例えば、大きなコア上にのみ存在している構成空間に対する書込みに遭遇した場合、大きなコアのウェイクアップを要求してもよい。
次に図4を参照すれば、本発明の一実施形態による方法のフロー図が示されている。図4の方法は、所与の実装形態に応じて、様々なエージェントによって実行してもよいことに留意されたい。例えば、いくつかの実施形態においては、方法300は、プロセッサのシステムエージェント又はアンコア部分内に位置してもよい電源制御ユニットなどのプロセッサ内のシステムエージェント回路により、部分的に実装してもよい。その他の実施形態においては、方法300は、例えば、相互接続構造に結合されたアクセラレータから割込みを受け取り、選択された場所に対して割込みを転送することができる相互接続構造内の電力制御ロジックなどの相互接続ロジックによって部分的に実装されてもよい。
図4において観察されるように、方法300は、大きなコアと小さなコアの両方をスリープ状態にすることにより、開始してもよい(ブロック310)。即ち、有効な動作がコアで実行されていないものと仮定されている。したがって、これらのコアを選択された低電力状態にして電力消費を低減することができる。コアは、有効でなくてもよいが、1つ又は複数のアクセラレータなどのプロセッサ又はSoC内のその他のエージェントは、タスクを実行中であってもよい。ブロック320において、このようなアクセラレータから割込みを受け取ってもよい。この割込みは、アクセラレータがタスクを完了した際に、エラーに遭遇した際に、又はアクセラレータが更なるデータを必要としている際に、或いは、その他の処理を所与のコアなどの別のコンポーネントによって実行する必要がある際に、送信してもよい。次いで、制御がブロック330に伝達され、ここで、ロジックにより、レジューム信号を小さなコアに対して直接的に送信することができる。即ち、ロジックは、大きなコアと小さなコアの両方が低電力状態にある際には、レジューム信号を小さなコアに対して(又は、システム実装形態に応じて、そのような複数の小さなコアのうち選択されたものに対して)常に送信するようにプログラムしてもよい。要求された動作を小さなコアが処理することができる割込みの多くの例においては、割込みを直接的に且つ常に小さなコアに対して送信することにより、大きなコアによる相対的に大きな電力消費を回避することができる。必要に応じて処理能力及び電力を均衡させるべく、特定の割込みソースが常に1つのコア又は別のコアにルーティングされるように、特定のタイプのフィルタリング又はキャッシングメカニズムをブロック330に追加してもよいことに留意されたい。
更に図4を参照すれば、次いで、制御がダイアモンド340に伝達され、ここで、小さなコアが割込みと関連する要求を処理することができるかどうかを判断することができる。本発明の範囲は、この観点において限定されるものではなく、いくつかの実施形態においては、この判断は、小さなコアがウェイクアップされた後に、小さなコア自体内において実行してもよい。或いは、図4の方法を実行するロジックにより、この判断を実行することもできる(この場合、レジューム信号を小さなコアに対して送信する前に、この分析を実行することができる)。
一例として、小さなコアは、小さなコアの処理能力要件及び/又は命令セットアーキテクチャ(Instruction Set Architecture:ISA)の能力に基づいて、要求された動作を自身が処理することができるかどうかを判断してもよい。小さなコアがISAサポートを有していないために、要求された動作を小さなコアが処理することができない場合、小さなコアのフロントエンドロジックは、受け取った命令ストリームを解析することが可能であり、ストリーム内の少なくとも1つの命令が小さなコアによってサポートされていないと判断することができる。この結果、小さなコアは、未定義命令障害を発行してもよい。この未定義障害は、PCU(又は、別のエンティティ)に対して送信してもよく、PCUは、この障害及び小さなコアの状態を分析することにより、未定義障害が、小さなコアが命令を処理するためのハードウェアサポートを有していないことの結果であるのか、或いは、その代わりに、それが真の未定義障害であるのかを判断することができる。後者の場合、更なる処理のために、未定義障害をOSに転送してもよい。障害が、小さなコアが命令を処理するための適切なハードウェアサポートを有していないことに起因している場合、PCUは、要求された1つ又は複数の命令を処理するべく、この小さなコアに転送された実行状態を対応する大きなコアに転送させることができる。
その他の実施形態においては、小さなコアと大きなコアとの間における実行状態の転送は、小さなコアが、過大な時間にわたって、又は過剰に低い処理能力レベルによって、稼働していると判断された際に、実行してもよい。即ち、小さなコアが、要求されたタスクを実行するべく、数千個又は数百万個ものプロセッササイクルにわたって稼働していると仮定しよう。大きなコアで提供されるより適切な実行に起因し、状態を大きなコアに転送して大きなコアが相対的に迅速にタスクを完了できるようにすることにより、より大きな電力の低減を実行することができる。
更に図4を参照すれば、要求された動作を小さなコアで処理することができると判断された場合、ブロック350に進んで制御が行われ、ここでその動作は、そのように、小さなコアにおいて実行される。例えば、要求された動作がデータ移動動作であると仮定すると、小さなコアが要求された処理を実行することが可能であり、その他のタスクが小さなコアについて保留中ではない場合、小さなコアを再度低電力状態にすることができる。
この代わりに、ダイアモンド340において、例えば、動作が、小さなコアが処理するように構成されてはいない相対的に複雑な動作である場合などのように、小さなコアが要求された動作を処理することができないと判断された場合、制御は、代わりに、ブロック360に伝達される。ここで、ウェイクアップ信号を、例えば、小さなコアから大きなコアに対して直接的に送信し、大きなコアを電源投入させることができる。相応して、制御は、ブロック370に伝達され、ここで、要求された動作を大きなコアで実行することができる。図4の実施形態においては、この特定の動作の組を有するものとして記述されているが、本発明の範囲は、この観点において限定されるものではないことを理解されたい。
したがって、様々な実施形態においては、大きなコアをウェイクアップさせることなしに、ハードウェア割込み及びその他のウェイクアップ信号を小さなコアに対して直接的にルーティングできるようにするためのメカニズムを提供してもよい。様々な実装形態においては、小さなコア自体又は管理エージェントは、大きなコアをウェイクアップさせることなしに、ウェイクアップ信号及び処理を完了させることができるかどうかを判断することができることに留意されたい。代表的なケースにおいては、小さなコアは、大きなコアよりも格段に電力効率が優れている場合があり、この結果、大きなコアがサポートしている命令のサブセットしかサポートしていない場合がある。したがって、低電力状態からのウェイクアップの際に実行するべき多くの動作を相対的に単純であって相対的に電力効率に優れたコアに再配置することにより、(処理能力又は電力効率性の理由から、様々なサイズの多くのコアがシステム内に含まれている)ヘテロジニアス環境において、相対的に大きくて相対的に強力なコアのウェイクアップを回避することができる。
次に図5を参照すれば、本発明の一実施形態による実行状態を転送する方法のフロー図が示されている。図5に示されているように、方法380は、一実施形態においては、PCUのロジックによって実行してもよい。このロジックは、大きなコアを低電力状態にするための要求に応答してトリガしてもよい。このような要求に応答して、方法380は、ブロック382において開始してもよく、ここで、大きなコアの実行状態を一時的記憶領域内に保存することができる。この一時的記憶領域は、コアと関連付けられた専用の状態保存エリアであってもよく、或いは、このエリアは、ラストレベルキャッシュ(Last Level Cache:LLC)などの共用キャッシュ内に存在してもよいことに留意されたい。本発明の範囲は、この観点において限定されるものではないが、実行状態は、汎用レジスタ、状態及び構成レジスタ、実行フラグなどを含むことができる。更には、この時点において、大きなコアを低電力状態にできるようにするための更なる動作を実行することができる。このような動作には、内部キャッシュ及びその他の状態の掃出しと、所与のコアのシャットダウンのためのシグナリングとが含まれる。
更に図5を参照すれば、次いで、小さなコアがレジュームしているかどうかことを判断することができる(ダイアモンド384)。このレジュームは、例えば、プロセッサのアクセラレータから到来する割込みに応答して受信されるレジューム信号の結果として実行してもよい。小さなコアのレジュームの一部として、制御がブロック386に伝達され、ここで、大きなコアの状態の少なくとも一部分を一時的記憶領域から抽出することができる。更に詳しくは、この抽出される部分は、小さなコアによって使用される大きなコアの実行状態の部分であってもよい。例として、この状態部分は、主レジスタの内容物、特定の実行フラグなどの様々なフラグ、機械状態レジスタなどを含んでもよい。但し、対応する実行ユニットを小さなコア内において有していない大きなコア内に存在している1つ又は複数の実行ユニットと関連する状態などの特定の状態は、抽出しなくてもよい。次いで、状態のこの抽出された部分を小さなコアに対して送信することが可能であり(ブロック388)、これにより、小さなコアは、所与の割込みに応答して適切な何らかの動作を有効にすることが可能となる。図5の実施形態においては、この特定の実装形態を有するものとして示されているが、本発明の範囲は、この観点において限定されるものではないことを理解されたい。
次に図6を参照すれば、本発明の一実施形態によるプロセッサのブロック図が示されている。図6に示されているように、プロセッサ400は、OSに認識されるようにすることができる第1の複数のコア4101〜410nと、OSにとってはトランスペアレントである第2の複数のコア410a〜410xとを含むマルチコアプロセッサであってもよい。
観察されるように、様々なコアは、相互接続部415を介して、様々なコンポーネントを含むシステムエージェント又はアンコア420に結合してもよい。観察されるように、アンコア420は、共用キャッシュ430を含んでもよく、これは、ラストレベルキャッシュであってもよい。更には、アンコアは、統合型メモリコントローラ440と、様々なインタフェース450a〜450nと、電力制御ユニット450と、APIC(Advanced Programmable Interrupt Controller)465とを含んでもよい。
PCU450は、本発明の一実施形態による電力効率に優れた動作を可能にするための様々なロジックを含んでもよい。観察されるように、PCU450は、上述のように、ウェイクアップを実行することができるウェイクアップロジック452を含むことができる。したがって、ロジック452は、小さなコアを最初にウェイクアップさせるように構成することができる。但し、このロジックは、特定の状況においては、このような小さなコアの直接的なウェイクアップを実行しないように、動的に構成することもできる。例えば、システムは、例えば、システムが電池によって稼働するモバイルシステムである際には、省電力化動作のために動的に構成することができる。このような状況においては、ロジックは、小さなコアを常にウェイクアップさせるように構成することができる。この代わりに、システムが、壁面電源に接続されたサーバーシステム、デスクトップシステム、又はラップトップシステムである場合、実施形態は、省電力よりもレイテンシー及び処理能力を選択するためのユーザーに基づいた選択を提供してもよい。したがって、ウェイクアップロジック452は、このような例においては、割込みに応答して、小さなコアではなく、大きなコアをウェイクアップするように構成することができる。多数の小さなコアのウェイクアップが結果的に大きなコアへの再割り当てをもたらしていると判断された際には、大きなコアの類似のウェイクアップを実行することができる。
電力効率の優れた動作を更に可能にするために、PCU450は、大きなコアと小さなコアとの間における実行状態の転送を実行することができる状態転送ロジック454を更に含んでもよい。上述のように、このロジックを使用し、低電力状態の間に一時的記憶領域に保存されている大きなコアの実行状態を取得してもよく、その状態の少なくとも一部分を抽出し、小さなコアのウェイクアップの際に小さなコアに対して提供してもよい。
更には、PCU450は、割込み履歴記憶領域456を含んでもよい。このような記憶領域は、システム動作の際に発生した割込みと、割込みが小さなコアによって正常に処理されたかどうかとをそれぞれが識別する複数のエントリを含んでもよい。次いで、この履歴に基づいて、所与の割込みを受け取った際に、この記憶領域の対応するエントリにアクセスし、同一タイプの以前の割込みが小さなコアによって正常に処理されているかどうかを判断することができる。判断結果が肯定的である場合、PCUは、到来する新しい割込みを同一の小さなコアに割り当てることができる。この代わりに、この履歴に基づいて、このタイプの割込みが小さなコアによって正常に処理されてはいない(或いは、不満足な低い処理能力を伴って処理されている)と判断された場合、代わりに、割込みを大きなコアに対して送信することができる。
更に図6を参照すれば、PCU450は、未定義処理ロジック458を更に含んでもよい。このようなロジックは、小さなコアによって発行された未定義障害を受け取ってもよい。このロジックに基づいて、小さなコア内の情報にアクセスすることができる。次いで、未定義障害が、小さなコア内におけるその命令のサポートの欠如の結果であるのか、或いは、別の理由によるものであるのかを判断することができる。この判断に応答して、ロジックは、小さなコアの状態を(一時的記憶領域内に保存されている)大きなコアの実行状態の残りの部分とマージさせ、その後に、割込みの処理のために大きなコアに対して送信させることが可能であり、或いは、未定義障害を更なる処理のためにOSに対して送信することもできる。小さなコアが割込みを処理することができないと判断された際には、小さなコアに提供された実行状態の部分を小さなコアから取得し、一時的記憶場所に保存し、したがって、小さなコアを電源切断することができる。次いで、このマージされた状態を、大きなコアの残りの実行状態と共に、大きなコアに対して提供し、小さなコアが処理することができなかった割込みを大きなコアが処理できるようにすることができる。又、小さなコアによるこのような処理の誤りに応答し、割込み履歴記憶領域456内のエントリを書き込むこともできることに留意されたい。図6の実施形態においては、この特定のロジックを有するものとして示されているが、本発明の範囲は、この観点において限定されるものではないことを理解されたい。例えば、PCU450の様々なロジックは、その他の実施形態においては、単一のロジックブロック内において実装することができる。
APIC465は、例えば、アクセラレータから発行された様々な割込みを受け取ってもよく、割込みを、適宜、所与の1つ又は複数のコアに対して割り当ててもよい。いくつかの実施形態においては、OSから隠蔽された状態において小さなコアを維持するために、APIC465は、それぞれが自身と関連付けられたAPIC識別子を含んでもよい到来する割込みを、大きなコアと関連付けられたAPICのIDから、小さなコアと関連付けられたAPICのIDに、動的に再マッピングしてもよい。
図6を更に参照すれば、プロセッサ400は、例えば、メモリバスを介して、システムメモリ460と通信してもよい。更には、インタフェース450により、周辺装置、大容量記憶装置などの様々なチップ外のコンポーネントに対して接続を実施することができる。図6の実施形態においては、この特定の実装形態を有するものとして示されているが、本発明の範囲は、この観点において限定されるものではない。
大きな及び小さなコアの様々な結合又は統合を可能にするための様々なアーキテクチャが可能であることに留意されたい。例として、これらの異なるコアの間の結合の程度は、ダイの面積、電力、処理能力、及び応答性に関係する様々な技術的最適化パラメータによって左右される可能性がある。
次に図7を参照すれば、本発明の別の実施形態によるプロセッサのブロック図が示されている。図7に示されているように、プロセッサ500は、大きなコア510と、小さなコア520とを含む真のヘテロジニアスプロセッサであってもよい。観察されるように、それぞれのプロセッサは、その独自のプライベートなキャッシュメモリ階層と、即ち、レベル1及びレベル2キャッシュメモリの両方を含んでもよいキャッシュメモリ515及び525と、関連付けてもよい。そして、コアは、リング相互接続部530を介して1つに結合してもよい。又、複数のアクセラレータ540a及び540bと、LLC、即ち、共用キャッシュであってもよいL3キャッシュ550も、リング相互接続部に結合されている。この実装形態においては、2つのコアの間における実行状態は、リング相互接続部530を介して転送してもよい。上述のように、大きなコア500の実行状態は、所与の低電力状態への遷移の前に、キャッシュ550内に保存することができる。次いで、小さなコア520のウェイクアップの際に、この実行状態の少なくともサブセットを小さなコアに提供することにより、そのウェイクアップをトリガした動作の実行のためにコアを準備完了状態とすることができる。したがって、図7の実施形態においては、コアは、このリング相互接続部を介して緩やかに結合されている。図示の容易性を目的として、単一の大きなコアと、単一の小さなコアとを有するものとして示されているが、本発明の範囲は、この観点において限定されるものではないことを理解されたい。図7のものなどの実装形態を使用することにより、交換を要する任意の状態又は通信をリングアーキテクチャ(バス又はファブリックアーキテクチャであってもよい)を介して処理することができる。或いは、その他の実施形態においては、この通信は、2つのコアの間の専用バス(図7には、図示されていない)を介したものであってもよい。
次に図8を参照すれば、本発明の更に別の実施形態によるプロセッサのブロック図が示されている。図8に示されているように、プロセッサ500'は、大きなコアと小さなコアとが緊密に結合又は統合されているハイブリッドヘテロジニアスプロセッサであってもよい。具体的には、図8において観察されるように、大きなコア510及び小さなコア520は、共用キャッシュメモリ518を共用してもよく、この共用キャッシュメモリ518は、様々な実施形態において、レベル1及びレベル2キャッシュの両方を含んでもよい。したがって、実行状態は、コアの一方から他方に、このキャッシュメモリを介して転送することが可能であり、これにより、リング相互接続部530を介した通信のレイテンシーが回避される。この構成は、データ移動オーバーヘッドが低減され、コア間の通信が相対的に高速となり、相対的に小さな電力を可能とするが、柔軟ではない場合もあることに留意されたい。
図7及び図8は、2つの可能な実装形態を示すものに過ぎない(限られた数のコアを示すものに過ぎない)ことに留意されたい。コアの異なる構成、2つの方式の組合せ、2つを超える数のタイプのコアなどを含む更なる実装形態の変形が可能である。又、図8の一変形においては、2つのコアが、実行ユニット、命令ポインタ、又はレジスタファイルのようないくつかのコンポーネントを共用することもできる。
上述のように、実施形態は、オペレーティングシステムにとって完全にトランスペアレントであると共に不可視状態にすることが可能であり、したがって、ソフトウェアの変更が不要であり、C状態からのレジューム時間の増大を最小限のものにすることができる。その他の実施形態においては、小さなコアの存在及び利用可能性をOSに認識可能にし、これにより、OSが割込みを小さなコアと大きなコアとのうちどちらに提供するのかを判断できるようにすることができる。更には、実施形態は、大きな及び小さなコアをOSに認識されるようにするための、或いは、小さなコアが認識されるになるかどうかを構成するための、メカニズムをBIOS(Basic Input Output System)などのシステムソフトウェアにおいて提供してもよい。実施形態は、C状態からの見かけのレジューム時間を増大させる場合があるが、これは、現在のプラットフォームのレジュームレイテンシーが様々であることから、受け入れ可能であり、現時点においては、コアの状態が回復されている時間においては、有用な作業は実行されていない。小さな及び大きなコアがどれだけ異なっているのかの比率は、小さな相違から、大きなマイクロアーキテクチャ構造の相違まで、様々であってよい。様々な実施形態によれば、ヘテロジニアスコアの間の最も主要な弁別要素は、ダイ面積と、コアによって消費される電力とであってもよい。
いくつかの実装形態においては、大きなコアがレジュームの際に大部分の時間にわたってウェイクアップしていることが検出された場合、少なくとも規定の期間にわたって処理能力を保持するべく、小さなコアの最初のウェイクアップをバイパスしてもよく、大きなコアを直接的にウェイクアップさせることができるように、制御メカニズムを提供してもよい。いくつかの実施形態においては、アプリケーション及びシステムの電力及び処理能力要件に応じて、すべての割込み及びその他のウェイクアップ信号を小さな又は大きなコアに対して普遍的に割り当て直すためのメカニズムを、システム及びユーザーレベルソフトウェアの両方であるソフトウェアに認識されるようにできることに留意されたい。このような一例として、ユーザーレベルの命令を提供し、特定されたコアに対するウェイクアップ動作の割り当てを実行してもよい。このような命令は、MWAITのような命令の変形であってもよい。
いくつかの実施形態においては、アクセラレータは、要求された動作が小さなコアで効率的に処理することができるような相対的に単純な動作であることを通知するためのヒントを割込みと共にPCU又はその他の管理エージェントへ送信することができる。PCUは、このアクセラレータによって提供されるヒントを使用し、到来する割込みを処理のために小さなコアに自動的に割り当ててもよい。
次に図9を参照すれば、本発明の一実施形態による大きなコア710及び小さなコア720内において実行される動作を示すタイミング図が示されている。観察されるように、装置割込みが小さなコア720に対して直接的に提供されることを許容し、小さなコアが割込みを処理することができるかどうかを小さなコアで判断することにより、大きなコア710のスリープ持続期間を相対的に長くすることができる。判断の結果が肯定的である場合、大きなコア710は、スリープ状態に留まることが可能であり、割込みを小さなコア720上において処理することができる。
次に図10を参照すれば、本発明の一実施形態による省電力化のグラフィカルな図が示されている。図10に示されているように、アクティブなC0状態から、例えば、C6状態などの深い低電力状態への遷移を伴う従来のシステムにおいては、大きなコアのコア電力消費は、例えば、C0状態への各遷移の際の500mWなどの相対的に高いレベルから、C6状態におけるゼロ電力消費レベルまで(中間の図)、変化することができる。この代わりに、本発明の一実施形態においては(下部の図)、C0状態へのウェイクアップを、大きなコアから小さなコアに割り当てることが可能であり、この結果、小さなコアは、500mWの電力消費レベルではなく、例えば、図10の実施形態の10mWなどの格段に低い電力レベルにおいて、C0状態を処理することができる。
実施形態は、多くの異なるシステムタイプにおいて実装してもよい。次に図11を参照すれば、本発明の一実施形態によるシステムのブロック図が示されている。図11に示されているように、マルチプロセッサシステム600は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続部650を介して結合された第1プロセッサ670及び第2プロセッサ680を含む。図11に示されているように、プロセッサ670及び680のそれぞれは、第1及び第2プロセッサ・コア(即ち、プロセッサ・コア674a及び674b並びにプロセッサ・コア684a及び684b)を含むマルチコアプロセッサであってもよいが、潜在的には、更に多くのコアがプロセッサ内に存在してもよい。更に詳しくは、プロセッサのそれぞれは、本明細書において記述されているように、少なくとも大きなコアが低電力状態にある際にウェイクアップを利用可能な最小のコアに対して割り当てるためのロジックに加えて、大きなコア、小さなコア(並びに、場合によっては中間サイズのコア)、アクセラレータなどの混合体を含むことができる。
図11を依然として参照すれば、第1プロセッサ670は、メモリコントローラハブ(Memory Controller Hub:MCH)672と、ポイントツーポイント(Point−to−Point:P−P)インタフェース676及び678とを更に含む。同様に、第2プロセッサ680も、MCH682と、P−Pインタフェース686及び688とを含む。図11に示されているように、MCH672及び682は、プロセッサを個々のメモリに、即ち、メモリ632及びメモリ634に、結合しており、これらのメモリは、個々のプロセッサにローカルに装着されたシステムメモリ(例えば、DRAM)の一部分であってもよい。第1プロセッサ670及び第2プロセッサ680は、それぞれ、P−P相互接続部676及び686を介してチップセット690に結合してもよい。図11に示されているように、チップセット690は、P−Pインタフェース694及び698を含む。
更には、チップセット690は、P−P相互接続部639によってチップセット690を高処理能力グラフィクスエンジン638と結合するためのインタフェース692を含む。そして、チップセット690は、インタフェース696を介して第1バス616に結合してもよい。図11に示されているように、第1バス616を第2バス620に結合するバスブリッジ618と共に、様々な入出力(I/O)装置614を第1バス616に対して結合してもよい。一実施形態においては、例えば、キーボード/マウス622、通信装置626、及びデータ記憶ユニット628を含む様々な装置を第2バス620に結合してもよく、データ記憶ユニット628は、ディスクドライブやその他の大容量記憶装置などであり、これは、コード630を含んでもよい。更には、オーディオ入出力624を第2バス620に結合してもよい。実施形態は、スマートセルラー電話機、タブレットコンピュータ、ノートブックなどのようなモバイル装置を含むその他のタイプのシステムに内蔵することができる。
実施形態は、コードで実装してもよく、命令を実行するようにシステムをプログラムするべく用いられ得る命令を保存した非一時的記憶媒体に保存してもよい。記憶媒体は、限定を伴うことなしに、フロッピー(登録商標)ディスク、光ディスク、半導体ドライブ(Solid State Drive:SSD)、CD−ROM(Compact Disk Read−Only Memory)、CD−RW(Compact Disk ReWritable)、及び光磁気ディスクなどの任意のタイプのディスク、読出し専用メモリ(Read−Only Memory:ROM)、ダイナミックランダムアクセスメモリ(Dynamic Rancom Access Memory:DRAM)などのランダムアクセスメモリ(Random Access Memory:RAM)、スタティックランダムアクセスメモリ(Static Random Access Memory:SRAM)、消去可能プログラム可能型読出し専用メモリ(Erasable Programmable Read−Only Memory:EPROM)、フラッシュメモリ、電気的消去可能プログラム可能型読出し専用メモリ(Electrically Erasable Programmable Read−Only Memory:EEPROM)などの半導体装置、磁気又は光カード、或いは、電子的命令を保存するのに適した任意のその他のタイプの媒体を含んでもよい。
以上、限られた数の実施形態との関係において本発明について説明したが、当業者であれば、これらの実施形態から多数の変更及び変形を理解するであろう。添付の請求項は、本発明の真の精神及び範囲に含まれるそのようなすべての変更及び変形を含むものと解釈されたい。
以上、限られた数の実施形態との関係において本発明について説明したが、当業者であれば、これらの実施形態から多数の変更及び変形を理解するであろう。添付の請求項は、本発明の真の精神及び範囲に含まれるそのようなすべての変更及び変形を含むものと解釈されたい。
本明細書によれば、以下の各項目に記載の構成もまた開示される。
[項目1]
命令を実行する第1コアと、
前記第1コアとはヘテロジニアスであり、前記第1コアよりも小さい、命令を実行する第2コアと、
前記第1コア及び前記第2コアが低電力状態にある際に、前記第1コアではなく、前記第2コアを割込みに応答してウェイクアップさせるロジックと
を備える装置。
[項目2]
前記ロジックは常に、前記第1コアではなく、前記第2コアを前記割込みに応答してウェイクアップさせる、項目1に記載の装置。
[項目3]
前記ロジックは、前記割込みに応答して、前記第1コアの実行状態のサブセットを前記第2コアに提供する、項目1または2に記載の装置。
[項目4]
前記第2コアは、前記第2コアが前記割込みを処理することができるかどうかを判断し、前記判断の結果が否定的な場合、ウェイクアップ信号を前記第1コアへ送信させる、項目3に記載の装置。
[項目5]
前記第2コアが前記割込みを処理することができないという前記判断に応答して、前記ロジックは、前記第2コアから前記第1コアの前記実行状態の前記サブセットを取得し、前記実行状態の前記サブセットを、一時的記憶領域内に保存されている前記第1コアの前記実行状態の残りの部分とマージする、項目4に記載の装置。
[項目6]
前記装置は、マルチコアプロセッサを備え、
前記マルチコアプロセッサは、
前記第1コア及び前記第2コアと、
電力制御ユニット(PCU)と
を有し、
前記PCUは、前記ロジックを含み、
前記ロジックは、
ウェイクアップロジックと、
状態転送ロジックと、
未定義処理ロジックと、
割込み履歴記憶領域と
を含む、項目1から5のいずれか1項に記載の装置。
[項目7]
前記ロジックに結合されたアクセラレータを更に備え、前記アクセラレータは、タスクを実行し、前記タスクの完了に応じて前記割込みを前記ロジックへ送信する、項目1から6のいずれか1項に記載の装置。
[項目8]
前記第2コアは、前記割込みがデータ移動動作に対する要求を有する際に、前記割込みを処理する、項目7に記載の装置。
[項目9]
前記第2コアは、前記割込みがベクトル演算に対する要求を有する際に、前記第1コアが前記割込みを処理できるようにするために、ウェイクアップ信号を第1コアへ送信させる、項目7または8に記載の装置。
[項目10]
前記ロジックは、前記第2コアから未定義命令障害を受け取り、前記第2コアが前記ベクトル演算を処理することができないと判断し、前記第2コアから実行状態を取得し、前記実行状態を、一時的な記憶領域内に保存されている前記第1コアの実行状態のうち少なくとも一部分とマージし、マージされた前記実行状態を前記第1コアへ送信させる、項目9に記載の装置。
[項目11]
前記ロジックは、複数の割込みを分析し、前記複数の割込みのうち過半数が前記第1コアによって処理されることを要する場合、前記ロジックは、前記割込みに応答して前記第2コアをウェイクアップさせず、その代わりに、前記第1コアをウェイクアップさせる、項目1から10のいずれか1項に記載の装置。
[項目12]
第1の小さなコアと、第1の大きなコアと、アクセラレータとを含むプロセッサのロジック内の前記アクセラレータから、前記第1の小さなコア及び前記第1の大きなコアが低電力状態にある際に、割込みを受け取る段階と、
前記割込みに応答して、レジューム信号を前記第1の小さなコアに対して直接的に送信し、前記第1の大きなコアの実行状態のサブセットを前記第1の小さなコアに対して提供する段階と、
前記第1の小さなコアが前記割込みと関連する要求を処理することができるかどうかを判断し、前記判断の結果が肯定的である場合、前記要求に対応する動作を前記第1の小さなコアで実行する段階と
を備える方法。
[項目13]
前記第1の小さなコアが前記要求を処理することができない場合、前記第1の小さなコアから前記実行状態の前記サブセットを取得し、前記実行状態の前記サブセットを前記第1の大きなコアの保存されている実行状態とマージし、ウェイクアップ信号及びマージされた前記実行状態を前記第1の大きなコアに対して送信する段階を更に備える、項目12に記載の方法。
[項目14]
その後に、前記要求に対応する前記動作を前記第1の大きなコアで実行する段階を更に備える、項目13に記載の方法。
[項目15]
前記割込みを前記第1の小さなコアと前記第1の大きなコアとのうちどちらに割り当てるべきかを示すヒントと共に前記割込みを受け取る段階を更に備える、項目12から14のいずれか1項に記載の方法。
[項目16]
前記割込みのタイプに基づいて表のエントリにアクセスし、前記エントリに基づいて、前記レジューム信号を前記第1の小さなコアと前記第1の大きなコアとのうちどちらに直接的に送信するのかを判断する段階を更に備える、項目12から15のいずれか1項に記載の方法。
[項目17]
マルチコアプロセッサと、
前記マルチコアプロセッサに結合されたダイナミックランダムアクセスメモリ(DRAM)と
を備え、
前記マルチコアプロセッサは、
第1の複数のコアと、
前記第1の複数のコアよりも低い熱設計電力を有する第2の複数のコアと、
アクセラレータと、
電力制御ユニット(PCU)と
を有し、
前記PCUは、前記第1の複数のコア及び前記第2の複数のコアが低電力状態にある際に、前記アクセラレータから割込みを受け取り、前記割込みに応答して、レジューム信号を前記第2の複数のコアのうち第1のコアに対して直接的に送信し、前記第1の複数のコアのうち第1のコアの実行状態のサブセットを前記第2の複数のコアのうち前記第1のコアに提供する、システム。
[項目18]
前記第1の複数のコアは、前記第2の複数のコアとはヘテロジニアスの設計を有する、項目17に記載のシステム。
[項目19]
前記第2の複数のコアは、オペレーティングシステム(OS)に対してトランスペアレントである、項目17または18に記載のシステム。
[項目20]
前記PCUは、前記割込みを使用して表のエントリにアクセスし、前記第1の複数のコア又は前記第2の複数のコアの第1のコアに前記レジューム信号を送るか否かを決定し、前記PCUは、前記エントリが、前記第2の複数のコアのうち1つが前記割込みと同一のタイプの以前の割込みに応答して未定義障害に遭遇したことを示す場合、前記レジューム信号を前記第1の複数のコアの前記第1のコアに対して送信する項目17から19のいずれか1項に記載のシステム。
本明細書によれば、以下の各項目に記載の構成もまた開示される。
[項目1]
命令を実行する第1コアと、
前記第1コアとはヘテロジニアスであり、前記第1コアよりも小さい、命令を実行する第2コアと、
前記第1コア及び前記第2コアが低電力状態にある際に、前記第1コアではなく、前記第2コアを割込みに応答してウェイクアップさせるロジックと
を備える装置。
[項目2]
前記ロジックは常に、前記第1コアではなく、前記第2コアを前記割込みに応答してウェイクアップさせる、項目1に記載の装置。
[項目3]
前記ロジックは、前記割込みに応答して、前記第1コアの実行状態のサブセットを前記第2コアに提供する、項目1または2に記載の装置。
[項目4]
前記第2コアは、前記第2コアが前記割込みを処理することができるかどうかを判断し、前記判断の結果が否定的な場合、ウェイクアップ信号を前記第1コアへ送信させる、項目3に記載の装置。
[項目5]
前記第2コアが前記割込みを処理することができないという前記判断に応答して、前記ロジックは、前記第2コアから前記第1コアの前記実行状態の前記サブセットを取得し、前記実行状態の前記サブセットを、一時的記憶領域内に保存されている前記第1コアの前記実行状態の残りの部分とマージする、項目4に記載の装置。
[項目6]
前記装置は、マルチコアプロセッサを備え、
前記マルチコアプロセッサは、
前記第1コア及び前記第2コアと、
電力制御ユニット(PCU)と
を有し、
前記PCUは、前記ロジックを含み、
前記ロジックは、
ウェイクアップロジックと、
状態転送ロジックと、
未定義処理ロジックと、
割込み履歴記憶領域と
を含む、項目1から5のいずれか1項に記載の装置。
[項目7]
前記ロジックに結合されたアクセラレータを更に備え、前記アクセラレータは、タスクを実行し、前記タスクの完了に応じて前記割込みを前記ロジックへ送信する、項目1から6のいずれか1項に記載の装置。
[項目8]
前記第2コアは、前記割込みがデータ移動動作に対する要求を有する際に、前記割込みを処理する、項目7に記載の装置。
[項目9]
前記第2コアは、前記割込みがベクトル演算に対する要求を有する際に、前記第1コアが前記割込みを処理できるようにするために、ウェイクアップ信号を第1コアへ送信させる、項目7または8に記載の装置。
[項目10]
前記ロジックは、前記第2コアから未定義命令障害を受け取り、前記第2コアが前記ベクトル演算を処理することができないと判断し、前記第2コアから実行状態を取得し、前記実行状態を、一時的な記憶領域内に保存されている前記第1コアの実行状態のうち少なくとも一部分とマージし、マージされた前記実行状態を前記第1コアへ送信させる、項目9に記載の装置。
[項目11]
前記ロジックは、複数の割込みを分析し、前記複数の割込みのうち過半数が前記第1コアによって処理されることを要する場合、前記ロジックは、前記割込みに応答して前記第2コアをウェイクアップさせず、その代わりに、前記第1コアをウェイクアップさせる、項目1から10のいずれか1項に記載の装置。
[項目12]
第1の小さなコアと、第1の大きなコアと、アクセラレータとを含むプロセッサのロジック内の前記アクセラレータから、前記第1の小さなコア及び前記第1の大きなコアが低電力状態にある際に、割込みを受け取る段階と、
前記割込みに応答して、レジューム信号を前記第1の小さなコアに対して直接的に送信し、前記第1の大きなコアの実行状態のサブセットを前記第1の小さなコアに対して提供する段階と、
前記第1の小さなコアが前記割込みと関連する要求を処理することができるかどうかを判断し、前記判断の結果が肯定的である場合、前記要求に対応する動作を前記第1の小さなコアで実行する段階と
を備える方法。
[項目13]
前記第1の小さなコアが前記要求を処理することができない場合、前記第1の小さなコアから前記実行状態の前記サブセットを取得し、前記実行状態の前記サブセットを前記第1の大きなコアの保存されている実行状態とマージし、ウェイクアップ信号及びマージされた前記実行状態を前記第1の大きなコアに対して送信する段階を更に備える、項目12に記載の方法。
[項目14]
その後に、前記要求に対応する前記動作を前記第1の大きなコアで実行する段階を更に備える、項目13に記載の方法。
[項目15]
前記割込みを前記第1の小さなコアと前記第1の大きなコアとのうちどちらに割り当てるべきかを示すヒントと共に前記割込みを受け取る段階を更に備える、項目12から14のいずれか1項に記載の方法。
[項目16]
前記割込みのタイプに基づいて表のエントリにアクセスし、前記エントリに基づいて、前記レジューム信号を前記第1の小さなコアと前記第1の大きなコアとのうちどちらに直接的に送信するのかを判断する段階を更に備える、項目12から15のいずれか1項に記載の方法。
[項目17]
マルチコアプロセッサと、
前記マルチコアプロセッサに結合されたダイナミックランダムアクセスメモリ(DRAM)と
を備え、
前記マルチコアプロセッサは、
第1の複数のコアと、
前記第1の複数のコアよりも低い熱設計電力を有する第2の複数のコアと、
アクセラレータと、
電力制御ユニット(PCU)と
を有し、
前記PCUは、前記第1の複数のコア及び前記第2の複数のコアが低電力状態にある際に、前記アクセラレータから割込みを受け取り、前記割込みに応答して、レジューム信号を前記第2の複数のコアのうち第1のコアに対して直接的に送信し、前記第1の複数のコアのうち第1のコアの実行状態のサブセットを前記第2の複数のコアのうち前記第1のコアに提供する、システム。
[項目18]
前記第1の複数のコアは、前記第2の複数のコアとはヘテロジニアスの設計を有する、項目17に記載のシステム。
[項目19]
前記第2の複数のコアは、オペレーティングシステム(OS)に対してトランスペアレントである、項目17または18に記載のシステム。
[項目20]
前記PCUは、前記割込みを使用して表のエントリにアクセスし、前記第1の複数のコア又は前記第2の複数のコアの第1のコアに前記レジューム信号を送るか否かを決定し、前記PCUは、前記エントリが、前記第2の複数のコアのうち1つが前記割込みと同一のタイプの以前の割込みに応答して未定義障害に遭遇したことを示す場合、前記レジューム信号を前記第1の複数のコアの前記第1のコアに対して送信する項目17から19のいずれか1項に記載のシステム。
Claims (20)
- 命令を実行する第1コアと、
前記第1コアとはヘテロジニアスであり、前記第1コアよりも小さい、命令を実行する第2コアと、
前記第1コア及び前記第2コアが低電力状態にある際に、前記第1コアではなく、前記第2コアを割込みに応答してウェイクアップさせるロジックと
を備える装置。 - 前記ロジックは常に、前記第1コアではなく、前記第2コアを前記割込みに応答してウェイクアップさせる、請求項1に記載の装置。
- 前記ロジックは、前記割込みに応答して、前記第1コアの実行状態のサブセットを前記第2コアに提供する、請求項1または2に記載の装置。
- 前記第2コアは、前記第2コアが前記割込みを処理することができるかどうかを判断し、前記判断の結果が否定的な場合、ウェイクアップ信号を前記第1コアへ送信させる、請求項3に記載の装置。
- 前記第2コアが前記割込みを処理することができないという前記判断に応答して、前記ロジックは、前記第2コアから前記第1コアの前記実行状態の前記サブセットを取得し、前記実行状態の前記サブセットを、一時的記憶領域内に保存されている前記第1コアの前記実行状態の残りの部分とマージする、請求項4に記載の装置。
- 前記装置は、マルチコアプロセッサを備え、
前記マルチコアプロセッサは、
前記第1コア及び前記第2コアと、
電力制御ユニット(PCU)と
を有し、
前記PCUは、前記ロジックを含み、
前記ロジックは、
ウェイクアップロジックと、
状態転送ロジックと、
未定義処理ロジックと、
割込み履歴記憶領域と
を含む、請求項1から5のいずれか1項に記載の装置。 - 前記ロジックに結合されたアクセラレータを更に備え、前記アクセラレータは、タスクを実行し、前記タスクの完了に応じて前記割込みを前記ロジックへ送信する、請求項1から6のいずれか1項に記載の装置。
- 前記第2コアは、前記割込みがデータ移動動作に対する要求を有する際に、前記割込みを処理する、請求項7に記載の装置。
- 前記第2コアは、前記割込みがベクトル演算に対する要求を有する際に、前記第1コアが前記割込みを処理できるようにするために、ウェイクアップ信号を第1コアへ送信させる、請求項7または8に記載の装置。
- 前記ロジックは、前記第2コアから未定義命令障害を受け取り、前記第2コアが前記ベクトル演算を処理することができないと判断し、前記第2コアから実行状態を取得し、前記実行状態を、一時的な記憶領域内に保存されている前記第1コアの実行状態のうち少なくとも一部分とマージし、マージされた前記実行状態を前記第1コアへ送信させる、請求項9に記載の装置。
- 前記ロジックは、複数の割込みを分析し、前記複数の割込みのうち過半数が前記第1コアによって処理されることを要する場合、前記ロジックは、前記割込みに応答して前記第2コアをウェイクアップさせず、その代わりに、前記第1コアをウェイクアップさせる、請求項1から10のいずれか1項に記載の装置。
- 第1の小さなコアと、第1の大きなコアと、アクセラレータとを含むプロセッサのロジック内の前記アクセラレータから、前記第1の小さなコア及び前記第1の大きなコアが低電力状態にある際に、割込みを受け取る段階と、
前記割込みに応答して、レジューム信号を前記第1の小さなコアに対して直接的に送信し、前記第1の大きなコアの実行状態のサブセットを前記第1の小さなコアに対して提供する段階と、
前記第1の小さなコアが前記割込みと関連する要求を処理することができるかどうかを判断し、前記判断の結果が肯定的である場合、前記要求に対応する動作を前記第1の小さなコアで実行する段階と
を備える方法。 - 前記第1の小さなコアが前記要求を処理することができない場合、前記第1の小さなコアから前記実行状態の前記サブセットを取得し、前記実行状態の前記サブセットを前記第1の大きなコアの保存されている実行状態とマージし、ウェイクアップ信号及びマージされた前記実行状態を前記第1の大きなコアに対して送信する段階を更に備える、請求項12に記載の方法。
- その後に、前記要求に対応する前記動作を前記第1の大きなコアで実行する段階を更に備える、請求項13に記載の方法。
- 前記割込みを前記第1の小さなコアと前記第1の大きなコアとのうちどちらに割り当てるべきかを示すヒントと共に前記割込みを受け取る段階を更に備える、請求項12から14のいずれか1項に記載の方法。
- 前記割込みのタイプに基づいて表のエントリにアクセスし、前記エントリに基づいて、前記レジューム信号を前記第1の小さなコアと前記第1の大きなコアとのうちどちらに直接的に送信するのかを判断する段階を更に備える、請求項12から15のいずれか1項に記載の方法。
- マルチコアプロセッサと、
前記マルチコアプロセッサに結合されたダイナミックランダムアクセスメモリ(DRAM)と
を備え、
前記マルチコアプロセッサは、
第1の複数のコアと、
前記第1の複数のコアよりも低い熱設計電力を有する第2の複数のコアと、
アクセラレータと、
電力制御ユニット(PCU)と
を有し、
前記PCUは、前記第1の複数のコア及び前記第2の複数のコアが低電力状態にある際に、前記アクセラレータから割込みを受け取り、前記割込みに応答して、レジューム信号を前記第2の複数のコアのうち第1のコアに対して直接的に送信し、前記第1の複数のコアのうち第1のコアの実行状態のサブセットを前記第2の複数のコアのうち前記第1のコアに提供する、システム。 - 前記第1の複数のコアは、前記第2の複数のコアとはヘテロジニアスの設計を有する、請求項17に記載のシステム。
- 前記第2の複数のコアは、オペレーティングシステム(OS)に対してトランスペアレントである、請求項17または18に記載のシステム。
- 前記PCUは、前記割込みを使用して表のエントリにアクセスし、前記第1の複数のコア又は前記第2の複数のコアの第1のコアに前記レジューム信号を送るか否かを決定し、前記PCUは、前記エントリが、前記第2の複数のコアのうち1つが前記割込みと同一のタイプの以前の割込みに応答して未定義障害に遭遇したことを示す場合、前記レジューム信号を前記第1の複数のコアの前記第1のコアに対して送信する請求項17から19のいずれか1項に記載のシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016153400A JP2017021811A (ja) | 2016-08-04 | 2016-08-04 | 電力効率の優れたプロセッサアーキテクチャ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016153400A JP2017021811A (ja) | 2016-08-04 | 2016-08-04 | 電力効率の優れたプロセッサアーキテクチャ |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014528345A Division JP6197196B2 (ja) | 2011-09-06 | 2011-09-06 | 電力効率の優れたプロセッサアーキテクチャ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017021811A true JP2017021811A (ja) | 2017-01-26 |
Family
ID=57888216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016153400A Pending JP2017021811A (ja) | 2016-08-04 | 2016-08-04 | 電力効率の優れたプロセッサアーキテクチャ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017021811A (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06348513A (ja) * | 1993-06-11 | 1994-12-22 | Sony Corp | 割込制御装置 |
JPH08249018A (ja) * | 1995-03-10 | 1996-09-27 | Omron Corp | マルチプロセッサ演算装置、および該装置を有するプログラマブルコントローラ |
WO2006013857A1 (ja) * | 2004-08-05 | 2006-02-09 | Matsushita Electric Industrial Co., Ltd. | 情報処理装置 |
JP2006244382A (ja) * | 2005-03-07 | 2006-09-14 | Fujitsu Ltd | マイクロプロセッサ |
US20090222654A1 (en) * | 2008-02-29 | 2009-09-03 | Herbert Hum | Distribution of tasks among asymmetric processing elements |
JP2010538371A (ja) * | 2007-08-27 | 2010-12-09 | マーベル ワールド トレード リミテッド | 動的コア切り替え |
-
2016
- 2016-08-04 JP JP2016153400A patent/JP2017021811A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06348513A (ja) * | 1993-06-11 | 1994-12-22 | Sony Corp | 割込制御装置 |
JPH08249018A (ja) * | 1995-03-10 | 1996-09-27 | Omron Corp | マルチプロセッサ演算装置、および該装置を有するプログラマブルコントローラ |
WO2006013857A1 (ja) * | 2004-08-05 | 2006-02-09 | Matsushita Electric Industrial Co., Ltd. | 情報処理装置 |
JP2006244382A (ja) * | 2005-03-07 | 2006-09-14 | Fujitsu Ltd | マイクロプロセッサ |
JP2010538371A (ja) * | 2007-08-27 | 2010-12-09 | マーベル ワールド トレード リミテッド | 動的コア切り替え |
US20090222654A1 (en) * | 2008-02-29 | 2009-09-03 | Herbert Hum | Distribution of tasks among asymmetric processing elements |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6197196B2 (ja) | 電力効率の優れたプロセッサアーキテクチャ | |
US7761720B2 (en) | Mechanism for processor power state aware distribution of lowest priority interrupts | |
KR101476568B1 (ko) | 코어 마다의 전압 및 주파수 제어 제공 | |
CN111512267A (zh) | 基于性能监测信息进行数据驱动低功率状态控制的系统、装置和方法 | |
CN113448373A (zh) | 用于处理器的电压调节器的功率状态缩放的装置和方法 | |
JP6409218B2 (ja) | 電力効率の優れたプロセッサアーキテクチャ | |
JP2017021811A (ja) | 電力効率の優れたプロセッサアーキテクチャ | |
JP2016212907A (ja) | 電力効率の優れたプロセッサアーキテクチャ | |
GB2536825A (en) | Power efficient processor architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170714 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170801 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171031 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20180403 |