JP7495422B2 - 適応的な相互接続ルーティングのためのシステム、装置及び方法 - Google Patents

適応的な相互接続ルーティングのためのシステム、装置及び方法 Download PDF

Info

Publication number
JP7495422B2
JP7495422B2 JP2021549813A JP2021549813A JP7495422B2 JP 7495422 B2 JP7495422 B2 JP 7495422B2 JP 2021549813 A JP2021549813 A JP 2021549813A JP 2021549813 A JP2021549813 A JP 2021549813A JP 7495422 B2 JP7495422 B2 JP 7495422B2
Authority
JP
Japan
Prior art keywords
interconnect
pipe stage
mesh
processor
signal
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.)
Active
Application number
JP2021549813A
Other languages
English (en)
Other versions
JP2022526224A (ja
Inventor
シン,テジパル
ヒレウィッツ,イェディディア
ヴァルマ,アンクシュ
リウ,イェン‐チェン
ヴイ. シストラ,クリシュナカント
チェンバレン,ジェフリー
Original Assignee
インテル コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2022526224A publication Critical patent/JP2022526224A/ja
Application granted granted Critical
Publication of JP7495422B2 publication Critical patent/JP7495422B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7817Specially adapted for signal processing, e.g. Harvard architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)
  • Multi Processors (AREA)

Description

実施形態は、相互接続(インターコネクト)の動的制御に関する。
現代のプロセッサは典型的に、コアと付加的な処理回路とで形成される。コア及び他の回路を結合するために、様々な相互接続構造が使用される。処理回路の面積増加は、その動作電圧範囲全体にわたって、相互接続構造における周波数の難題を生じさせる。相互接続通信経路と相互接続のロジックとの間で、動作特性(例えば、周波数/電圧(F/V)カーブで特定される電圧及び周波数)間のギャップが増大している。相互接続通信経路に関するF/Vカーブが、動作電圧を制限し、それに従って、最適でない電力プロファイルで相互接続全体を動作させることがあり、より高い電圧でこのギャップが増大する。相互接続通信経路は、相互接続全体のうちの小さなコンポーネントであり得るので、それに相互接続の電力プロファイルを定めさせるのは最適ではない。電力制約環境における現行技術では、人為的に高い電圧で相互接続を動作させることは性能損失を引き起こす。
本発明の一実施形態に従ったシステムの一部のブロック図である。 本発明の一実施形態に従ったプロセッサのブロック図である。 本発明の他の一実施形態に従ったマルチドメインプロセッサのブロック図である。 複数のコアを含むプロセッサの一実施形態である。 本発明の一実施形態に従ったプロセッサコアのマイクロアーキテクチャのブロック図である。 他の一実施形態に従ったプロセッサコアのマイクロアーキテクチャのブロック図である。 更なる他の一実施形態に従ったプロセッサコアのマイクロアーキテクチャのブロック図である。 より更なる一実施形態に従ったプロセッサコアのマイクロアーキテクチャのブロック図である。 本発明の他の一実施形態に従ったプロセッサのブロック図である。 本発明の一実施形態に従った代表的なSoCのブロック図である。 本発明の一実施形態に従ったSoCの他の一例のブロック図である。 それとともに実施形態が使用され得るシステムの一例のブロック図である。 それとともに実施形態が使用され得るシステムの他の一例のブロック図である。 代表的なコンピュータシステムのブロック図である。 本発明の一実施形態に従ったシステムのブロック図である。 一実施形態に従った動作を実行する集積回路を製造するために使用されるIPコア開発システムを示すブロック図である。 本発明の一実施形態に従った制御可能なパイプ段回路のブロック図である。 一実施形態に従った相互接続上でのサイクルレイテンシの動的制御を示すブロック図である。 図19A-19Bは、本発明の一実施形態に従った方法のフロー図である。 図19A-19Bは、本発明の一実施形態に従った方法のフロー図である。 本発明の他の一実施形態に従った方法のフロー図である。 プロセッサの相互接続回路に関する周波数-電圧カーブのグラフである。
様々な実施形態において、相互接続構造は、相互接続上に制御可能なレイテンシを動的に構成するための回路を含む。より具体的には、実施形態において、1つ以上のパイプ段が、動的に、相互接続の通信経路に追加されたり、それから除去されたりし得る。相互接続構造へのそのような動的な更新は、性能状態変化プロセスのコンテキストで発生し得る。このコンテキストにおいては、電圧及び/又は周波数が変化しない場合にも、パイプ段動作を動的に更新することが可能である。ここでの実施形態は、メッシュインターコネクトのコンテキストにて説明されるが、この技術が他の相互接続構造にも適用可能であることを理解されたい。
一実施形態において、高周波数のメッシュレイテンシに敏感ではないワークロードのために、そのようなパイプ段が付加され、低周波数でそれらは電力管理(power management;PM)制御下で動的に除去され得る。斯くして、実施形態は、相互接続通信経路の性能状態が、相互接続のロジックの性能状態を追跡することを可能にする。すなわち、実施形態は、相互接続F/Vカーブが、面積及び電力の要求を増加させることなく、メッシュストップ及び関連ロジックに関するスケーラブルコヒーレントファブリック(scalable coherent fabric;SCF)IP F/Vカーブを追跡することを可能にする。実施形態で、メッシュF/Vカーブは、SCF IP F/Vカーブと比較してのリミッタとならないように最適化される。ファブリック上のレイテンシクリティカルなホップに対して、追加のパイプ段が、例えばF/Vカーブ上の所定のポイントにて挿入され得る。
一実施形態において、メッシュファブリックは水平及び垂直リングファブリックの組み合わせである。この構成では、任意の所与の電圧においてメッシュファブリック又はIP F/Vカーブ上に留まる柔軟性があり、それが、より高い電力での低レイテンシファブリック動作、又はより高レイテンシのファブリック動作での電力節減の間での動的な選択を可能にする。加えて、より低い電圧では、ワークロード要求に基づいてメッシュ帯域幅が増加され得る。電力節減は、同じ電圧において、より高い周波数での動作を可能にすることによって達成され得る。より低い電圧においてメッシュ上にいっそう高い帯域幅を可能にすることにより、メッシュ帯域幅及び電力の両方が重要な、機械学習ワークロードのような特定のワークロードの効率が上昇する。
以下の実施形態は、例えば計算プラットフォーム又はプロセッサにおいてなど、特定の集積回路におけるエネルギー節約及びエネルギー効率を参照して説明されるが、他の実施形態は、他のタイプの集積回路及び論理デバイスに適用可能である。ここに記載される実施形態の技術及び教示と同様のものが、より良いエネルギー効率及びエネルギー節約の恩恵をやはり受け得る他のタイプの回路又は半導体デバイスに適用され得る。例えば、開示される実施形態は、如何なる特定のタイプのコンピュータシステムにも限定されない。すなわち、開示される実施形態は、サーバコンピュータ(例えば、タワー、ラック、ブレード、マイクロサーバなど)、通信システム、ストレージシステム、任意の構成のデスクトップコンピュータ、ラップトップ、ノートブック、及びタブレットコンピュータ(2:1タブレット、ファブレットなどを含む)に及ぶ数多くの異なるシステムタイプで使用されることができ、また、例えばハンドヘルド装置、システム・オン・チップ(SoC)、及び組み込みアプリケーションなどの他のデバイスでも使用され得る。ハンドヘルド装置の一部の例は、例えばスマートフォンなどの携帯電話、インターネットプロトコル装置、デジタルカメラ、携帯情報端末(PDA)、及びハンドヘルドPCを含む。組み込みアプリケーションは典型的に、マイクロコントローラ、デジタル信号プロセッサ(DSP)、ネットワークコンピュータ(NetPC)、セットトップボックス、ネットワークハブ、ワイドエリアネットワーク(WAN)スイッチ、ウェアラブル装置、又は以下に教示される機能及び動作を実行することができる任意の他のシステムを含み得る。また、実施形態は、例えば移動電話、スマートフォン及びファブレットなどの標準的な音声機能を有するモバイル端末、及び/又は多くのウェアラブル、タブレット、ノートブック、デスクトップ、マイクロサーバ、サーバなどの、標準的な無線音声機能の通信能力を持たない非モバイル端末に実装され得る。さらに、ここに記載される装置、方法、及びシステムは、物理的なコンピューティング装置に限定されず、エネルギー節約及び効率のためのソフトウェア最適化にも関係し得る。以下の説明にてただちに明らかになるように、ここに記載される方法、装置、及びシステムの実施形態(ハードウェア、ファームウェア、ソフトウェア、又はこれらの組み合わせのいずれを参照していようと)は、例えば米国経済の大部分を網羅するプロダクトの電力節約及びエネルギー効率などの“グリーン技術”の将来にとって不可欠である。
次に図1を参照するに、本発明の一実施形態に従ったシステムの一部のブロック図が示されている。図1に示すように、システム100は、図示のようにマルチコアプロセッサであるプロセッサ110を含む様々なコンポーネントを含み得る。プロセッサ110は、外部電圧レギュレータ160を介して電源150に結合されることができ、外部電圧レギュレータ160は、第1の電圧変換を実行して、プロセッサ110に一次レギュレート電圧を提供し得る。
見てとれるように、プロセッサ110は、複数のコア120-120を含む単一ダイのプロセッサとし得る。また、各コアに集積電圧レギュレータ(integrated voltage regulator;IVR)125-125が付随するようにすることができ、IVRは、一次レギュレート電圧を受けて、該IVRが付随するプロセッサの1つ以上のエージェントに供給される動作電圧を生成する。従って、IVR実装は、個々のコア各々の電圧ひいては電力及び性能の、細かい粒度での制御を可能にするように提供され得る。従って、各コアは、独立した電圧及び周波数で動作することができ、大きな柔軟性を可能にするとともに、電力消費を性能とバランスさせるための幅広い機会を提供する。一部の実施形態において、複数のIVRの使用は、コンポーネントを別々の電力プレーンにグループ分けし、電力がIVRによってレギュレートされてそのグループ内のコンポーネントのみに供給されるようにすることを可能にする。電力管理において、プロセッサがある特定の低電力状態に置かれるときに、所与の電力プレーンの1つのIVRが電力を下げられるか切られるかする一方で、他の電力プレーンの別のIVRがアクティブのままである又はフルに電力供給されることができる。
なおも図1を参照するに、プロセッサ内には、入力/出力インタフェース132、別のインタフェース134、及び集積メモリコントローラ136を含む更なるコンポーネントが存在し得る。見てとれるように、これらのコンポーネントの各々が、別の集積電圧レギュレータ125によって電力供給され得る。一実施形態において、インタフェース132は、物理層、リンク層、及びプロトコル層を含む複数レイヤを含んだキャッシュコヒーレントプロトコルにおいてポイント・ツー・ポイント(PtP)リンクを提供するものであるIntel(登録商標)QPI(Quick Path Interconnect)インターコネクト向けの動作を可能にし得る。代わって、インタフェース134は、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIeTM)プロトコルを介して通信してもよい。
プロセッサ110に対する電力管理動作を実行するための、ハードウェア、ソフトウェア、及び/又はファームウェアを含み得るものである電力制御ユニット(PCU)138も示されている。見てとれるように、PCU138は、デジタルインタフェースを介して外部電圧レギュレータ160に制御情報を提供し、該電圧レギュレータに適切なレギュレートされた電圧を生成させる。PCU138はまた、別のデジタルインタフェースを介してIVR125に制御情報を提供し、生成される動作電圧を制御する(又は、対応するIVRを低電力モードで無効にさせる)。様々な実施形態において、PCU138は、ハードウェアベースの電力管理を実行する多様な電力管理論理ユニットを含み得る。そのような電力管理は、全体がプロセッサ制御されてもよく(例えば、様々なプロセッサハードウェアによってであり、ワークロード及び/又は電力、熱若しくは他のプロセッサ制約によってトリガされ得る)、及び/又は電力管理は、外部ソース(例えば、プラットフォーム又は管理電力管理ソース若しくはシステムソフトウェア)に応答して実行されてもよい。
また、図1は、PCU138が別個の処理エンジン(これはマイクロコントローラとして実装され得る)である実装を示しているが、理解されたいことには、一部の実施形態では、専用の電力コントローラに加えて又は代えて、各コアが、電力制御エージェントを含むか、それに付随されるかして、いっそう自律的に、電力消費を独立して制御するようにしてもよい。一部のケースでは、階層的な電力管理アーキテクチャが提供され、PCU138が、コア120の各々に付随した対応する電力管理エージェントと通信する。PCU138に含まれる1つの電力管理論理ユニットは、例えば、ここに記載されるように動作電圧に少なくとも部分的に基づいてレイテンシを動的に制御するファブリックなどの、相互接続構造のルーティングを動的に制御する相互接続更新制御回路とし得る。
説明を容易にするために図示していないが、理解されたいことには、プロセッサ110内には、追加の制御回路や、例えば1つ以上のレベルのキャッシュメモリ階層などといった内部メモリなどのその他のコンポーネントなどの、更なるコンポーネントが存在し得る。また、図1の実装は集積電圧レギュレータを備えるように示されているが、実施形態はそのように限定されるものではない。
なお、ここに記載される電力管理技術は、オペレーティングシステム(OS)ベースの電力管理(OSPM)機構とは独立であり且つそれに対して補完的であるとし得る。一例のOSPM技術によれば、プロセッサは、いわゆるP0からPNまでのP状態である様々な性能状態又はレベルで動作することができる。一般に、P1性能状態は、OSによって要求される最高保証性能状態に対応し得る。このP1状態に加えて、OSは、更に高い性能状態すなわちP0状態を要求することができる。このP0状態は、故に、電力量及び/又は熱量が利用可能であるときにプロセッサハードウェアが、プロセッサ又はその少なくともその一部を、保証周波数よりも高い周波数で動作するように設定することができるという、日和見モード状態又はターボモード状態とし得る。多くの実装において、プロセッサは、製造中に該プロセッサにヒューズによって又はその他によって書き込んで、その特定のプロセッサの最大ピーク周波数を超える、P1保証最大周波数よりも高い、複数のいわゆるビン周波数を含むことができる。さらに、一OSPM機構によれば、プロセッサは様々な電力状態又はレベルで動作することができる。電力状態に関して、OSPM機構は、一般にC0、C1-Cn状態なるC状態として参照される複数の異なる電力消費状態を指定し得る。あるコアがアクティブであるとき、それはC0状態で動作し、コアがアイドルであるとき、それは、コア非ゼロC状態(例えば、C1-C6状態)とも呼ばれるコア低電力状態に置かれることができ、これらの各C状態が低めの電力消費レベルにある(C6の方がC1よりも深い低電力状態である等々であるように)。
理解されたいことには、異なる実施形態では数多くの異なるタイプの電力管理技術が個別に又は組み合わせて使用され得る。代表的な例として、電力コントローラが、特定の状況において電力消費を低減させるように1つ以上のコア又は他のプロセッサロジックの動作電圧及び/又は動作周波数が動的に制御されるものである何らかの形態の動的電圧・周波数スケーリング(dynamic voltage frequency scaling;DVFS)によって電力管理されるように、プロセッサを制御し得る。一例として、DVFSは、最低電力消費レベルで最適なパフォーマンスを提供するために、カリフォルニア州サンタクララのインテル社から入手可能なEnhanced Intel SpeedStepTM技術を用いて行われ得る。他の一例において、DVFSは、1つ以上のコア又は他の計算エンジンが条件(例えば、ワークロード及び利用可能性)に基づいて保証動作周波数よりも高い周波数で動作することを可能にするために、Intel TurboostTM術を用いておこなわれてもよい。
実施形態は、サーバプロセッサ、デスクトッププロセッサ、モバイルプロセッサなどを含む様々な市場向けのプロセッサに実装されることができる。次に図2を参照するに、本発明の一実施形態に従ったプロセッサのブロック図が示されている。図2に示すように、プロセッサ200は、複数のコア210-210を含むマルチコアプロセッサとし得る。一実施形態において、そのようなコアは各々、独立した電力ドメインのものとすることができ、ワークロードに基づいてアクティブ状態及び/又は最大性能状態を出入りするように構成されることができる。これら様々なコアは、相互接続215を介して、様々なコンポーネントを含むシステムエージェント220に結合され得る。見てとれるように、システムエージェント220は、最終レベルキャッシュとし得る共有キャッシュ230を含むことができる。加えて、システムエージェントは、例えばメモリバスを介してシステムメモリ(図2には示さず)と通信する集積メモリコントローラ240を含み得る。システムエージェント220はまた、ここに記載される電力管理技術を実行するためのロジックを含み得るものである様々なインタフェース250及び電力制御ユニット255を含み得る。図示した実施形態において、電力制御ユニット255は、ここに記載されるように例えばパイプ段を動的に挿入又は除去することによって、例えばファブリックなどの相互接続上のレイテンシを動的に制御し得るものである相互接続更新制御回路258を含んでいる。
さらに、インタフェース250a-250nにより、例えば周辺装置及び大容量ストレージなどの様々なオフチップコンポーネントへの接続を為すことができる。図2の実施形態ではこの特定の実装を有するように示されているが、本発明の範囲は、これに関して限定されるものではない。
次に図3を参照するに、他の一実施形態に従ったマルチドメインプロセッサのブロック図が示されている。図3の実施形態に示すように、プロセッサ300は複数のドメインを含んでいる。具体的には、コアドメイン310が複数のコア310-310を含むことができ、グラフィックスドメイン320が1つ以上のグラフィックスエンジンを含むことができ、そして、システムエージェントドメイン350が更に存在してもよい。一部の実施形態において、システムエージェントドメイン350は、コアドメインとは独立した周波数で実行することができ、また、ドメイン310及び320が高電力状態及び低電力状態に動的に出入りするように制御され得るように電力制御イベント及び電力管理を扱うために、常時、電力オンのままにされることができる。ドメイン310及び320の各々は、異なる電圧及び/又は電力で動作することができる。なお、3つのドメインのみを有するように示されているが、理解されたいことには、本発明の範囲は、これに関して限定されるものではなく、他の実施形態では更なるドメインが存在することができる。例えば、各々が少なくとも1つのコアを含む複数のコアドメインが存在してもよい。
一般に、各コア310は更に、様々な実行ユニット及び追加の処理要素に加えて、低レベルキャッシュを含み得る。そして、これら様々なコアが、互いに結合され得るとともに最終レベルキャッシュ(LLC)340-340の複数ユニットで形成される共有キャッシュメモリに結合され得る。様々な実施形態において、LLC340は、これらのコア及びグラフィックスエンジンの間だけでなく様々なメディア処理回路の間で共有され得る。見てとれるように、斯くしてリングインターコネクト330がこれらのコアをともに結合するとともに、コア、グラフィックスドメイン320、及びシステムエージェント回路350の間の相互接続を提供する。一実施形態において、相互接続330は、コアドメインの一部とすることができる。しかしながら、他の実施形態において、リングインターコネクトは、それ自身のドメインのものであってもよい。
更に見てとれるように、システムエージェントドメイン350は、結合されるディスプレイの制御及びそれへのインタフェースを提供し得るディスプレイコントローラ352を含み得る。更に見てとれるように、システムエージェントドメイン350は、ここに記載される電力管理技術を実行するロジックを含むことができる電力制御ユニット355を含み得る。図示した実施形態において、電力制御ユニット355は、ここに記載されるように例えばパイプ段の強制又は除去によって相互接続を通じての通信のルーティングを動的に制御し得るものである相互接続更新制御回路358を含んでいる。
図3にて更に見てとれるように、プロセッサ300は更に、例えばダイナミックランダムアクセスメモリ(DRAM)などのシステムメモリへのインタフェースを提供し得る集積メモリコントローラ(IMC)370を含むことができる。プロセッサと他の回路との間の相互接続を可能にするために、複数のインタフェース380-380が存在し得る。例えば、一実施形態において、1つ以上のPCIeTMンタフェースとともに少なくとも1つのダイレクトメディアインタフェース(DMI)インタフェースが設けられ得る。さらには、追加のプロセッサ又は他の回路などの他のエージェント同士の間での通信を提供するために、1つ以上のQPIインタフェースも設けられ得る。図3の実施形態ではこのハイレベルで示されているが、理解されたいことには、本発明の範囲は、これに関して限定されるものではない。
図4を参照するに、複数のコアを含むプロセッサの一実施形態が示されている。プロセッサ400は、例えばマイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システム・オン・チップ(SoC)、又はコードを実行する他のデバイスなどの、任意のプロセッサ又は処理デバイスを含む。プロセッサ400は、一実施形態において、非対称コア又は対称コア(図示した実施形態)を含み得る少なくとも2つのコア、コア401及び402、を含む。しかしながら、プロセッサ400は、対称又は非対称とし得る如何なる数の処理要素を含んでもよい。
一実施形態において、処理要素は、ソフトウェアスレッドをサポートするハードウェア又はロジックを指す。ハードウェア処理要素の例は、例えば実行状態若しくはアーキテクチャ状態などのプロセッサに関する状態を保持することが可能な、スレッドユニット、スレッドスロット、スレッド、プロセスユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、及び/又は任意の他の要素を含む。換言すれば、処理要素は、一実施形態において、例えばソフトウェアスレッド、オペレーティングシステム、アプリケーション、又は他のコードなどのコードと独立に関連付けられることが可能な任意のハードウェアを指す。物理プロセッサは典型的に、例えばコア又はハードウェアスレッドなどの任意数の他の処理要素を含み得るものである集積回路を指す。
コアは、しばしば、独立したアーキテクチャ状態を維持することが可能な集積回路上に置かれたロジックを指し、独立して維持される各アーキテクチャ状態が、少なくとも一部の専用実行リソースと関連付けられる。コアとは対照的に、ハードウェアスレッドは典型的に、独立したアーキテクチャ状態を維持することが可能な集積回路上に置かれた任意のロジックを指し、独立して維持される複数のアーキテクチャ状態が、実行リソースへのアクセスを共有する。理解され得るように、特定のリソースが共有され、他のリソースがあるアーキテクチャ状態に専用にされる場合、ハードウェアスレッドという用語とコアという用語との間の線引きが重なり合う。更には、しばしば、コア及びハードウェアスレッドは、オペレーティングシステムによって、個別の論理プロセッサとして見られ、オペレーティングシステムは、各論理プロセッサ上での演算を個別にスケジュールすることができる。
物理プロセッサ400は、図4に例示するように、コア401及びコア402という2つのコアを含んでいる。ここでは、コア401及び402を、対称コア、すなわち、同じ構成、機能ユニット、及び/又はロジックを有するコアとして考える。他の一実施形態では、コア401はアウト・オブ・オーダプロセッサコアを含む一方で、コア402はイン・オーダプロセッサコアを含む。しかしながら、コア401及び402は、例えばネイティブコア、ソフトウェア管理コア、ネイティブの命令セットアーキテクチャ(ISA)を実行するように適応されたコア、変換されたISAを実行するように適応されたコア、協調設計コア、又は他の知られたコアなど、任意のタイプのコアから個別に選択され得る。加えて、コア401及び402は、マルチスレッドサポートに関して同じに構成されてもよいし、異なって構成されてもよい。すなわち、ここでの実施形態によれば、コア401、402の一方若しくは両方がMTサポートを有効にされてもよいし、いずれも有効にされなくてもよい。
しかし、議論を更に進めるため、コア402内のユニットは同様にして動作するので、以下、コア401内に例示する機能ユニットを更に詳細に説明する。図示のように、コア401は、ハードウェアスレッドスロット401a及び401bとしても参照することがある2つのハードウェアスレッド401a及び401bを含んでいる。従って、例えばオペレーティングシステムなどのソフトウェアエンティティは、一実施形態において、プロセッサ400を4つの別々のプロセッサ、すなわち、4つのソフトウェアスレッドを同時に実行することが可能な4つの論理プロセッサ又は処理要素として見ることが可能である。上で示唆したように、第1のスレッドはアーキテクチャ状態レジスタ401aと関連付けられ、第2のスレッドはアーキテクチャ状態レジスタ401bと関連付けられ、第3のスレッドはアーキテクチャ状態レジスタ402aと関連付けられ、そして、第4のスレッドはアーキテクチャ状態レジスタ402bと関連付けられ得る。ここで、アーキテクチャ状態レジスタ(401a、401b、402a、及び402b)の各々は、上述のように、処理要素、スレッドスロット、又はスレッドユニットと称されることがある。図示のように、アーキテクチャ状態レジスタ(Arch Reg)401aは、アーキテクチャ状態レジスタ401b内に複製され、故に、個々のアーキテクチャ状態/コンテキストは、論理プロセッサ401a及び論理プロセッサ401bのために格納されることが可能である。コア401内で、例えばアロケータ・リネーマブロック430における命令ポインタ及びリネームロジックなどの、より小さい他のリソースも、スレッド401a及び401bに対して複製され得る。例えばリオーダ/リタイアメントユニット435内のリオーダバッファ、ILTB420、ロード/ストアバッファ、及びキューなどの、一部のリソースは、パーティショニングを通して共有され得る。例えば汎用内部レジスタ、(1つ以上の)ページテーブルベースレジスタ、低レベルデータキャッシュ及びデータTLB415、(1つ以上の)実行ユニット440、及びアウト・オブ・オーダユニット435の部分などの、他のリソースは完全に共有され得る。
プロセッサ400は、しばしば、完全に共有されるか、パーティションを通して共有されるか、又は処理要素によって/対して専用にされるかし得るものである他のリソースを含む。図4には、プロセッサの例示的な論理ユニット/リソースを有する純粋に例示的なプロセッサの一実施形態が示されている。なお、プロセッサは、これらの機能ユニットのうちのいずれかを含んだり省略したりすることができるとともに、図示されていない任意の他の知られた機能ユニット、ロジック、又はファームウェアを含むことができる。図示のように、コア401は、単純化された代表的なアウト・オブ・オーダ(OOO)プロセッサコアを含んでいる。しかし、異なる実施形態ではイン・オーダプロセッサが利用されてもよい。OOOコアは、実行される/採択される分岐を予測する分岐ターゲットバッファ420、及び命令に関するアドレス変換エントリを格納する命令-変換バッファ(I-TLB)420を含んでいる。
コア401は更に、フェッチされたエレメントを復号するためにフェッチユニット420に結合された復号モジュール425を含んでいる。フェッチロジックは、一実施形態において、それぞれスレッドスロット401a、401bと関連付けられた個々のシーケンサを含む。通常、コア401は、プロセッサ400上で実行可能な命令を定義/規定するものである第1のISAと関連付けられる。しばしば、第1のISAの一部であるマシンコード命令が、実行されるべき命令又は演算を参照/指定するものである命令の一部(オペコードと呼ばれる)を含む。復号ロジック425は、以下の回路を含み、すなわち、それらのオペコードからこれらの命令を認識し、復号した命令を、第1のISAによって定められる処理用のパイプラインに渡す回路を含む。例えば、デコーダ425は、一実施形態において、例えばトランザクション命令などの特定の命令を認識するように設計又は適応されたロジックを含む。デコーダ425による認識の結果として、アーキテクチャ又はコア401は、特定の予め定められたアクションをとって、その適切な命令に関連するタスクを実行する。言及しておくことが重要なことには、ここに記載されるタスク、ブロック、演算、及び方法のいずれも、単一又は複数の命令に応答して実行されることができ、それらのうちの一部は新規の命令であることもあるし、旧来の命令であることもある。
一例において、アロケータ・リネーマブロック430は、例えば命令処理結果を記憶するためのレジスタファイルなどのリソースを予約するアロケータを含む。しかしながら、スレッド401a及び401bは、アウト・オブ・オーダ実行が可能であってもよく、その場合、アロケータ・リネーマブロック430は、例えば命令結果を追跡するためのリオーダバッファなどの他のリソースも予約する。ユニット430はまた、プログラム/命令参照レジスタをプロセッサ400の内部の他のレジスタにリネームするレジスタリネーマを含み得る。リオーダ/リタイアメントユニット435は、アウト・オブ・オーダ実行と、後の、アウト・オブ・オーダ実行された命令のイン・オーダリタイアメントとをサポートするために、例えば上述のリオーダバッファ、ロードバッファ、及びストアバッファなどのコンポーネントを含む。
スケジューラ及び(1つ以上の)実行ユニットのブロック440は、一実施形態において、実行ユニット上の命令/演算をスケジュールするスケジューラユニットを含む。例えば、浮動小数点命令が、利用可能な浮動小数点実行ユニットを有する実行ユニットのポート上にスケジュールされる。情報命令処理結果を格納するために、実行ユニットに関連付けられたレジスタファイルも含められる。例示的な実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、ストア実行ユニット、及び他の知られた実行ユニットを含む。
下位データキャッシュ及びデータ変換バッファ(D-TLB)450が、(1つ以上の)実行ユニット440に結合される。データキャッシュは、メモリコヒーレンシ状態に保持され得るものである例えばデータオペランドなどの最近使用/演算されたエレメントを格納する。D-TLBは、最近の仮想/線形-物理アドレス変換を格納する。一具体例として、プロセッサは、物理メモリを複数の仮想ページに分割するページテーブル構造を含み得る。
ここで、コア401及び402は、最近フェッチされたエレメントをキャッシュするものである、より上位の又は更に外のキャッシュ410へのアクセスを共有する。なお、より上位又は更に外は、キャッシュレベルが増すこと又は(1つ以上の)実行ユニットから更に遠ざかることを指す。一実施形態において、より上位のキャッシュ410は、例えば第2レベル又は第3レベルのデータキャッシュなど、プロセッサ400のメモリ階層内の最後のキャッシュである最終レベルデータキャッシュである。しかしながら、より上位のキャッシュ410は、命令キャッシュと関連付けられたり、それを含んだりしてもよいものであるので、そのように限定されるものではない。代わりに、最近復号されたトレースを格納するために、デコーダ425の後に、一種の命令キャッシュであるトレースキャッシュが結合されてもよい。
図示した構成において、プロセッサ400はまた、バスインタフェースモジュール405と、本発明の一実施形態に従って電力管理を実行し得るものである及び電力コントローラ460とを含んでいる。このシナリオでは、バスインタフェース405は、例えばシステムメモリ及び他のコンポーネントなどの、プロセッサ400の外部の装置と通信する。
メモリコントローラ470は、例えば1つ以上のメモリなどの他の装置とインタフェースをとり得る。一例において、バスインタフェース405は、メモリとインタフェースをとるためのメモリコントローラ及びグラフィックスプロセッサとインタフェースをとるためのグラフィックスコントローラとのリングインターコネクトを含む。SoC環境では、高い機能性及び低い消費電力の小さなフォームファクタを提供するよう、例えばネットワークインタフェース、コプロセッサ、メモリ、グラフィックスプロセッサ、及び任意の他の知られたコンピュータデバイス/インタフェースなどの、もっと多くのデバイスが、単一のダイ又は集積回路上に集積され得る。
次に図5を参照するに、本発明の一実施形態に従ったプロセッサコアのマイクロアーキテクチャのブロック図が示されている。図5に示すように、プロセッサコア500は、多段パイプライン型アウト・オブ・オーダプロセッサとし得る。コア500は、集積電圧レギュレータ又は外部電圧レギュレータから受け取り得るものである受けた動作電圧に基づいて、様々な電圧で動作し得る。
図5にて見てとれるように、コア500はフロントエンドユニット510を含んでおり、これは、実行すべき命令をフェッチし、それら命令をプロセッサパイプラインでの後の使用のために準備するために使用され得るものである。例えば、フロントエンドユニット510は、フェッチユニット501、命令キャッシュ503、及び命令デコーダ505を含み得る。一部の実装において、フロントエンドユニット510は更に、マイクロコードストレージ及びマイクロ演算ストレージと共に、トレースキャッシュを含んでもよい。フェッチユニット501は、例えばメモリ又は命令キャッシュ503から、マクロ命令をフェッチし、それらマクロ命令を、それらをプリミティブへと、すなわち、プロセッサによる実行のためのマイクロ演算へと復号する命令デコーダ505に送り得る。
フロントエンドユニット510と実行ユニット520との間に、マイクロ命令を受け取って、それらを実行のために準備するために使用され得るアウト・オブ・オーダ(OOO)エンジン515が結合される。より具体的には、OOOエンジン515は、マイクロ命令フローを並べ替えて、実行に必要な様々なリソースを割り当てるために、及び、例えばレジスタファイル530及び拡張レジスタファイル535などの様々なレジスタファイル内のストレージ位置に対する論理レジスタのリネームを提供するために、様々なバッファを含み得る。レジスタファイル530は、整数演算及び浮動小数点演算のための別々のレジスタファイルを含み得る。拡張レジスタファイル535は、レジスタ当たり例えば256又は512ビットといった、ベクトルサイズのユニット向けのストレージを提供し得る。設定、制御、及び追加演算の目的のために、一組のマシン固有レジスタ(MSR)538も存在してコア500内の(及びコア外部の)様々なロジックにアクセス可能にされ得る。なお、マルチスレッド化をサポートする目的で、様々なレジスタファイル内の複数セットのレジスタが、それらが異なるスレッドによって同時に使用され得るように提供されてもよい。しかし、フロントエンドユニット510及び実行ユニット520を含め、コア500の残りの構造は複製されないことに留意されたい。
実行ユニット520内には、例えば、数多の特殊化されたハードウェアの中でもとりわけ、様々な整数、浮動小数点、及び単一命令複数データ(SIMD)の論理ユニットを含め、様々なリソースが存在し得る。例えば、そのような実行ユニットは、とりわけ、数多のそのような実行ユニットの中でもとりわけ、1つ以上の算術論理ユニット(ALU)522及び1つ以上のベクトル実行ユニット524を含み得る。
実行ユニットからの結果は、リオーダバッファ(ROB)540というリタイアメントロジックに提供され得る。より具体的には、ROB540は、実行される命令に関連する情報を受信する様々なアレイ及びロジックを含み得る。この情報は、次いで、命令が正当に退去させられて結果データがプロセッサのアーキテクチャ状態にコミットされるかを判定するため、又は命令の適切な退去を妨げる1つ以上の例外が発生したかを判定するために、ROB540によって検査される。当然ながら、ROB540は、リタイアメントに関連する他の操作も取り扱い得る。
図5に示すように、ROB540はキャッシュ550に結合され、キャッシュ550は、一実施形態において低レベルキャッシュ(例えば、L1キャッシュ)とし得るが、本発明の範囲は、これに関して限定されるものではない。また、実行ユニット520は、キャッシュ550に直接的に結合されることができる。キャッシュ550から、より上位のキャッシュ、システムメモリなどとのデータ通信が行われ得る。図5の実施形態においてはこのハイレベルで示されているが、理解されたいことには、本発明の範囲はこれに関して限定されるものではない。例えば、図5の実装は、例えばIntel(登録商標)x86命令セットアーキテクチャ(ISA)のものなどのアウト・オブ・オーダマシンに関するものであるが、本発明の範囲は、これに関して限定されるものではない。すなわち、他の実施形態は、イン・オーダプロセッサにて実装されてもよいし、例えばARMベースのプロセッサなどの縮小命令セットコンピューティング(RISC)プロセッサにて実装されてもよいし、あるいは、エミュレーションエンジン及び関連論理回路を介して異なるISAの命令及び演算をエミュレートすることができる別のタイプのISAのプロセッサにて実装されてもよい。
次に図6を参照するに、他の一実施形態に従ったプロセッサコアのマイクロアーキテクチャのブロック図が示されている。図6の実施形態において、コア600は、電力消費を低減させるように設計された比較的限られたパイプライン深さを持った、例えばIntel(登録商標)AtomTMベースのプロセッサなどの、異なるマイクロアーキテクチャの低電力コアとし得る。見てとれるように、コア600は、命令デコーダ615に命令を提供するように結合された命令キャッシュ610を含んでいる。分岐予測器605が命令キャッシュ610に結合され得る。なお、命令キャッシュ610は更に、例えばL2キャッシュなどの別レベルのキャッシュメモリ(図6では図示の容易さのために示していない)に結合されてもよい。代わって、命令デコーダ615は、復号した命令を、保管及び所与の実行パイプラインへの送達のために、発行(イシュー)キュー620に提供する。マイクロコードROM618が命令デコーダ615に結合される。
浮動小数点パイプライン630は、例えば128、256又は512ビットなどの所与のビットの複数のアーキテクチャレジスタを含み得る浮動小数点レジスタファイル632を含む。パイプライン630は、パイプラインの複数の実行ユニットのうちの1つで実行する命令をスケジュールする浮動小数点スケジューラ634を含む。図示した実施形態において、そのような実行ユニットは、ALU635、シャッフルユニット636、及び浮動小数点加算器638を含んでいる。次いで、これらの実行ユニットで生成された結果を、レジスタファイル632のバッファ及び/又はレジスタに提供し返すことができる。理解されたいことには、これら僅かな例の実行ユニットを有するように示されているが、当然ながら、他の一実施形態では追加の又は異なる浮動小数点実行ユニットが存在し得る。
整数パイプライン640も設けられ得る。図示した実施形態において、パイプライン640は、例えば128又は256ビットなどの所与のビットの複数のアーキテクチャレジスタを含み得る整数レジスタファイル642を含んでいる。パイプライン640は、パイプラインの複数の実行ユニットのうちの1つで実行する命令をスケジュールする整数スケジューラ644を含む。図示した実施形態において、そのような実行ユニットは、ALU645、シフタユニット646、及びジャンプ実行ユニット648を含んでいる。次いで、これらの実行ユニットで生成された結果を、レジスタファイル642のバッファ及び/又はレジスタに提供し返すことができる。理解されたいことには、これら僅かな例の実行ユニットを有するように示されているが、当然ながら、他の一実施形態では追加の又は異なる整数実行ユニットが存在し得る。
メモリ実行スケジューラ650が、TLB654にも結合されるアドレス生成ユニット652における実行のためのメモリ動作をスケジュールし得る。見てとれるように、これらの構造はデータキャッシュ660に結合することができ、データキャッシュ660は、次いでL2キャッシュメモリを含むキャッシュメモリ階層の更なるレベルに結合するL0及び/又はL1データキャッシュとし得る。
アウト・オブ・オーダ実行のサポートを提供するため、アウト・オブ・オーダ実行された命令をリタイアメントのために順序通りに並べ替えるように構成されるものであるリオーダバッファ680に加えて、アロケータ/リネーマ670を設けられ得る。図6の例示ではこの特定のパイプラインアーキテクチャを有するように示されているが、理解されたいことには、数多くの変形及び代替が可能である。
なお、例えば図5及び図6のマイクロアーキテクチャに従ってなど、非対称コアを有するプロセッサにおいては、電力管理の理由で、コア間でワークロードが動的に交換され得る。何故なら、それらのコアは、異なるパイプライン設計及び深さを持つが、同一又は関連するISAのものとし得るからである。そのような動的なコアスワッピングは、ユーザアプリケーションに対して(及び恐らくはカーネルに対しても)トランスペアレントなやり方で実行され得る。
図7を参照するに、更なる他の一実施形態に従ったプロセッサコアのマイクロアーキテクチャのブロック図が示されている。図7に例示するように、コア700は、非常に低い電力消費レベルで実行するための多段インオーダパイプラインを含み得る。そのような一例として、プロセッサ700は、カリフォルニア州サニーベールのアームホールディング社から入手可能なARM Cortex A53設計に従ったマイクロアーキテクチャを有し得る。一実装において、32ビット及び64ビットの両方のコードを実行するように構成された8段パイプラインが設けられ得る。コア700は、命令をフェッチしてそれらを復号ユニット715に提供するように構成されたフェッチユニット710を含んでおり、復号ユニット715は、例えばARMv8 ISAなどの所与のISAのマクロ命令といった命令を復号し得るものである。更に言及しておくことには、復号された命令を格納するために、キュー730が復号ユニット715に結合し得る。復号された命令は発行ロジック725に提供され、そこで、復号された命令が、複数の実行ユニットのうちの所与の1つに発行され得る。
図7を更に参照するに、発行ロジック725は、複数の実行ユニットのうちの1つに命令を発行し得る。図示した実施形態では、それらの実行ユニットは、整数ユニット735、乗算ユニット740、浮動小数点/ベクトルユニット750、デュアル発行ユニット760、及びロード/ストアユニット770を含んでいる。これら様々な実行ユニットの結果は、ライトバックユニット780に提供され得る。理解されたいことには、図示の容易さのために単一のライトバックユニットが示されているが、一部の実装では、実行ユニットの各々に別々のライトバックユニットが付随してもよい。さらに、理解されたいことには、図7に示したユニット及びロジックの各々はハイレベルで表されているが、特定の一実装は、より多くの又は異なる構造を含み得る。図7においてのようにパイプラインを有する1つ以上のコアを用いて設計されるプロセッサは、モバイル装置からサーバシステムにまでわたる数多くの異なる最終製品にて実装され得る。
図8を参照するに、より更なる一実施形態に従ったプロセッサコアのマイクロアーキテクチャのブロック図が示されている。図8に例示するように、コア800は、非常に高い性能レベル(図7のコア700よりも高い電力消費レベルで発生し得る)で実行するための多段マルチ発行アウト・オブ・オーダパイプラインを含み得る。そのような一例として、プロセッサ800は、ARM Cortex A57設計に従ったマイクロアーキテクチャを有し得る。一実装において、32ビット及び64ビットの両方のコードを実行するように構成された15(又はそれより多く)段パイプラインが設けられ得る。さらに、このパイプラインは、3(又はそれより多く)ワイド及び3(又はそれより多く)発行オペレーションを提供し得る。コア800は、命令をフェッチしてそれらをデコーダ/リネーマ/ディスパッチャ815に提供するように構成されたフェッチユニット810を含んでおり、デコーダ/リネーマ/ディスパッチャ815は、例えばARMv8命令セットアーキテクチャのマクロ命令といった命令を復号し、命令内のレジスタ参照をリネームし、そして、命令を(最終的には)選択された実行ユニットへとディスパッチし得る。復号された命令はキュー825に格納され得る。なお、図8では図示の容易さのために単一のキュー構造が示されているが、理解されたいことには、複数の異なるタイプの実行ユニットの各々に対して別々のキューが設けられてもよい。
発行ロジック830も図8に示されており、そこから、キュー825に格納された復号された命令が、選択された実行ユニットに発行され得る。発行ロジック830はまた、特定の一実施形態において、発行ロジック830が結合する複数の異なるタイプの実行ユニットの各々に対して別個の発行ロジックを有するように実施されてもよい。
復号された命令が、複数の実行ユニットのうちの所与の1つに発行され得る。図示した実施形態では、それらの実行ユニットは、1つ以上の整数ユニット835、乗算ユニット840、浮動小数点/ベクトルユニット850、分岐ユニット860、及びロード/ストアユニット870を含んでいる。一実施形態において、浮動小数点/ベクトルユニット850は、128ビット又は256ビットのSIMD又はベクトルデータを取り扱うように構成され得る。より更には、浮動小数点/ベクトル実行ユニット850は、IEEE-754倍精度浮動小数点演算を実行することができる。これら様々な実行ユニットの結果は、ライトバックユニット880に提供され得る。なお、一部の実装では、実行ユニットの各々に別々のライトバックユニットが付随してもよい。さらに、理解されたいことには、図8に示したユニット及びロジックの各々はハイレベルで表されているが、特定の一実装は、より多くの又は異なる構造を含み得る。
なお、例えば図7及び図8のマイクロアーキテクチャに従ってなど、非対称コアを有するプロセッサにおいては、電力管理の理由でワークロードが動的に交換され得る。何故なら、それらのコアは、異なるパイプライン設計及び深さを持つが、同一又は関連するISAのものとし得るからである。そのような動的なコアスワッピングは、ユーザアプリケーションに対して(及び恐らくはカーネルに対しても)トランスペアレントなやり方で実行され得る。
図5-図8のいずれか1つ以上においてのようにパイプラインを有する1つ以上のコアを用いて設計されるプロセッサは、モバイル装置からサーバシステムにまでわたる数多くの異なる最終製品にて実装され得る。次に図9を参照するに、本発明の他の一実施形態に従ったプロセッサのブロック図が示されている。図9の実施形態において、プロセッサ900は、複数のドメインを含むSoCとすることができ、それらドメインの各々が、独立した動作電圧及び動作周波数で動作するように制御され得る。例示的な一具体例として、プロセッサ900は、例えばi3、i5、i7などのIntel(登録商標)Architecture CoreTMベースのプロセッサ、又はインテル社から入手可能な別のそのようなプロセッサとし得る。しかしながら、例えば、Apple A7プロセッサ、Qualcomm Snapdragonプロセッサ、又はTexas Instruments OMAPプロセッサなどの他の実施形態には、例えば、カリフォルニア州サニーベールのアドバンストマイクロデバイス社(AMD)から入手可能なもの、アームホールディング社又はそのライセンシーからのARMベースの設計、又はカリフォルニア州サニーベールのMIPSテクノロジーズ社又はそのライセンシー若しくは採用者からのMIPSベースの設計などの、他の低電力プロセッサが存在し得る。このようなSoCは、例えばスマートフォン、タブレットコンピュータ、ファブレットコンピュータ、UltrabookTMコンピュータ、又は他のポータブルコンピューティング装置若しくはコネクテッド装置などの低電力システムで使用され得る。
図9に示すハイレベル図において、プロセッサ900は、複数のコアユニット910-910を含んでいる。各コアユニットが、1つ以上のプロセッサコア、1つ以上のキャッシュメモリ、及び他の回路を含み得る。各コアユニット910は、1つ以上の命令セット(例えば、x86命令セット(より新しいバージョンで追加された幾つかの拡張を有する)、MIPS命令セット、ARM命令セット(例えばNEONなどのオプションの追加拡張を有する))若しくは他の命令セット、又はこれらの組み合わせをサポートし得る。なお、これらコアユニットの一部は、異種のリソース(例えば、異なる設計のもの)であってもよい。さらに、このようなコアは各々、一実施形態において共有レベル(L2)キャッシュメモリとし得るキャッシュメモリ(図示せず)に結合され得る。様々なプログラム及び他のデータを記憶するために、不揮発性ストレージ930が使用され得る。例えば、このストレージは、マイクロコードの少なくとも一部、例えばBIOSなどのブート情報、又は他のシステムソフトウェアなどを格納するために使用され得る。
各コアユニット910はまた、例えばプロセッサの更なる回路への相互接続を可能にするバスインタフェースユニットなどのインタフェースを含み得る。一実施形態において、各コアユニット910は、一次キャッシュコヒーレントなオンダイ相互接続として作用し得るコヒーレントファブリックに結合し、それが次に、メモリコントローラ935に結合する。そして、メモリコントローラ935が、例えばDRAMなどのメモリ(図9では図示の容易さのために示していない)との通信を制御する。
プロセッサ内に、コアユニットに加えて、少なくとも1つのグラフィックスユニット920を含む更なる処理エンジンが存在し、該更なる処理エンジンは、グラフィックス処理を実行するとともにグラフィックスプロセッサ上で汎用演算(いわゆるGPGPU演算)を実行し得る1つ以上のグラフィックス処理ユニット(GPU)を含み得る。さらに、少なくとも1つの画像信号プロセッサ925が存在し得る。信号プロセッサ925は、SoCの内部又はオフチップのいずれかの1つ以上のキャプチャデバイスから受信する入力画像データを処理するように構成され得る。
他のアクセラレータも存在し得る。図9の例示では、ビデオコーダ950が、ビデオ情報の符号化及び復号を含むコーディング操作を実行し、例えば、高精細度映像コンテンツに対するハードウェア加速サポートを提供する。システムの内部及び外部ディスプレイに対するサポートを提供することを含め、表示操作を加速するためにディスプレイコントローラ955が更に設けられ得る。加えて、例えばセキュアなブート動作及び様々な暗号化演算などのセキュリティ処理を実行するために、セキュリティプロセッサ945が存在してもよい。
これらのユニットの各々が、自身の電力消費を、電力マネジャ940を介して制御されてもよく、電力マネジャ940は、ここに記載される様々な電力管理技術及び選択的なMT設定制御を実行する制御ロジックを含み得る。
一部の実施形態において、SoC900は更に、様々な周辺デバイスが結合し得るコヒーレントファブリックに結合された非コヒーレントファブリックを含んでもよい。1つ以上のインタフェース960a-960dが、1つ以上のオフチップデバイスとの通信を可能にする。このような通信は、数多のタイプの通信プロトコルの中でもとりわけ、例えばPCIeTM、GPIO、USB、IC、UART、MIPI、SDIO、DDR、SPI、HDMI(登録商標)などの、多様な通信プロトコルを介し得る。図9の実施形態ではこのハイレベルで示されているが、理解されたいことには、本発明の範囲はこれに関して限定されるものではない。
次に図10を参照するに、代表的なSoCのブロック図が示されている。図示した実施形態において、SoC1000は、スマートフォン又は例えばタブレットコンピュータ若しくは他のポータブルコンピューティング装置などの他の低電力装置への組み込みのために最適化される低電力動作用に構成されたマルチコアSoCとし得る。一例として、SoC1000は、例えばアウト・オブ・オーダコア及びイン・オーダコアといった、高めの電力のコア及び/又は低電力コアの組み合わせなどの、非対称な又は異なるタイプのコアを用いて実装され得る。異なる実施形態において、これらのコアは、Intel(登録商標)ArchitectureTMコア設計又はARMアーキテクチャ設計に基づき得る。更なる他の実施形態において、Intel(登録商標)コアとARMコアとの混ぜ合わせが所与のSoC内に実装されてもよい。
図10にて見てとれるように、SoC1000は、複数の第1のコア1012-1012を有する第1のコアドメイン1010を含んでいる。一例において、これらのコアは、例えばイン・オーダコアなどの低電力コアとし得る。一実施形態において、これら第1のコアは、ARM Cortex A53コアとして実装され得る。そして、これらのコアは、コアドメイン1010のキャッシュメモリ1015に結合する。さらに、SoC1000は第2のコアドメイン1020を含んでいる。図10の例示において、第2のコアドメイン1020は、複数の第2のコア1022-1022を有している。一例において、これらのコアは、第1のコア1012よりも高電力消費のコアとし得る。一実施形態において、第2のコアは、ARM Cortex A57コアとして実装され得るものであるアウト・オブ・オーダコアとし得る。そして、これらのコアは、コアドメイン1020のキャッシュメモリ1025に結合する。なお、図10に示した例は各ドメイン内に4つのコアを含んでいるが、理解されたいことには、他の例では、より多数又は少数のコアが所与のドメイン内に存在し得る。
図10を更に参照するに、グラフィックスドメイン1030も設けられており、これは、例えば、コアドメイン1010及び1020の1つ以上のコアによって与えられるグラフィックスワークロードを独立して実行するように構成された1つ以上のグラフィックス処理ユニット(GPU)を含み得る。一例として、GPUドメイン1030は、グラフィックス及び表示レンダリング演算を提供することに加えて、多様なスクリーンサイズに対する表示サポートを提供するために使用され得る。
見てとれるように、これらの様々なドメインはコヒーレントインターコネクト1040に結合し、コヒーレントインターコネクト1040は、一実施形態において、次いで集積メモリコントローラ1050に結合するキャッシュコヒーレントな相互接続ファブリックとし得る。コヒーレントインターコネクト1040は、一部の例において、例えばL3キャッシュなどの共有キャッシュメモリを含み得る。一実施形態において、メモリコントローラ1050は、例えばDRAMの複数のチャネルなど、複数のチャネルでのオフチップメモリとの通信を提供するダイレクトメモリコントローラとし得る(図10では図示の容易さのために示していない)。
異なる例ではコアドメインの数が変わり得る。例えば、モバイルコンピューティング装置への組み込みに適した低電力SoCでは、図10に示すような限られた数のコアドメインが存在し得る。より更には、そのような低電力SoCにおいて、より高電力のコアを含むコアドメイン1020は、より少ない数のそのようなコアを有していてもよい。例えば、一実装において、低減された電力消費レベルでの動作を可能にするよう、2つのコア1022が設けられ得る。さらに、異なるコアドメインはまた、異なるドメイン間でのワークロードの動的スワッピングを可能にするために、割り込みコントローラに結合されてもよい。
更なる他の実施形態では、例えばデスクトップ、サーバ、高性能コンピューティングシステム、基地局などの他のコンピューティング装置への組み込みのために、SoCを、より高い性能(及び電力)レベルにスケーリングすることができるという点で、より多数のコアドメイン及び追加のオプションのIPロジックが存在してもよい。そのような一例として、各々が所与の数のアウト・オブ・オーダコアを持つ4つのコアドメインが設けられ得る。より更には、オプションのGPUサポート(一例としてGPGPUの形態をとり得る)に加えて、特定の機能(例えば、ウェブサービス、ネットワーク処理、又は交換など)に対して最適化されたハードウェアサポートを提供する1つ以上のアクセラレータも設けられ得る。さらに、そのようなアクセラレータをオフチップコンポーネントに結合するために入力/出力インタフェースが存在してもよい。
次に図11を参照するに、SoCの他の一例のブロック図が示されている。図11の実施形態において、SoC1100は、マルチメディアアプリケーション、通信、及び他の機能のために高い性能を可能にする様々な回路を含み得る。従って、SoC1100は、例えばスマートフォン、タブレットコンピュータ、及びスマートTVなどの多種多様なポータブル装置及び他の装置への組み込みに適している。図示した例において、SoC1100は中央プロセッサユニット(CPU)ドメイン1110を含んでいる。一実施形態において、CPUドメイン1110内に複数の個々のプロセッサコアが存在し得る。一例として、CPUドメイン1110は、4つのマルチスレッドコアを有するクワッドコアプロセッサとし得る。そのようなプロセッサは、同種のプロセッサであってもよいし、異種のプロセッサであってもよく、例えば、低電力プロセッサコアと高電力プロセッサコアとの混ぜ合わせとし得る。
次に、グラフィックスを扱うとともにAPIを計算するために、1つ以上のGPUで高度なグラフィックス処理を実行するようにGPUドメイン1120が設けられる。DSPユニット1130が、マルチメディア命令の実行中に生じ得る高度な計算に加えて、例えば音楽再生及びオーディオ/ビデオなどの低電力マルチメディアアプリケーションを扱うための1つ以上の低電力DSPを提供し得る。そして、通信ユニット1140が、例えばセルラー通信(3G/4G LTEを含む)や、BluetoothTM及びIEEE802.11などの無線ローカルエリアプロトコルなどの、様々な無線プロトコルを介した接続を提供する様々なコンポーネントを含み得る。
より更には、ユーザジェスチャの処理を含め、高精細度ビデオ及びオーディオコンテンツのキャプチャ及び再生を実行するために、マルチメディアプロセッサ1150が用いられ得る。センサユニット1160が、複数のセンサ、及び/又は所与のプラットフォーム内に存在する様々なオフチップセンサへのインタフェースをとるためのセンサコントローラを含み得る。静止画カメラ及びビデオカメラを含め、プラットフォームの1つ以上のカメラからのキャプチャコンテンツに関する画像処理を実行するために、画像信号プロセッサ1170が1つ以上の別個のISPを備え得る。
表示プロセッサ1180が、ディスプレイ上での再生のためにコンテンツを無線通信する能力を含め、所与のピクセル密度の高精細ディスプレイへの接続に対するサポートを提供し得る。より更には、位置特定ユニット1190が、複数のGPSコンステレーションに対するサポートを有するGPS受信器を含み、そのようなGPS受信器を用いて得られる高精度なポジショニング情報をアプリケーションに提供し得る。理解されたいことには、図11の例にはこの特定のコンポーネントセットを有するように示されているが、数多くの変形及び代替が可能である。
次に図12を参照するに、それとともに実施形態が使用され得るシステムの一例のブロック図が示されている。見てとれるように、システム1200は、スマートフォン又は他のワイヤレス通信機とし得る。ベースバンドプロセッサ1205が、当該システムから送信される又は当該システムによって受信される通信信号に関する様々な信号処理を実行するように構成される。そして、ベースバンドプロセッサ1205はアプリケーションプロセッサ1210に結合される。アプリケーションプロセッサ1210は、数多くの周知のソーシャルメディアアプリ及びマルチメディアアプリなどのユーザアプリケーションに加えて、OS及び他のシステムソフトウェアを実行するために、当該システムのメインCPUとし得る。アプリケーションプロセッサ1210は更に、装置に関する多様な他のコンピューティング演算を実行するように構成されることができ、また、ここに記載されるように、MT演算のためにコアのサブセットを選択的に有効にすることができる選択的MTサポートのために静的又は動的に構成されることができる。
そして、アプリケーションプロセッサ1210は、例えばタッチスクリーンディスプレイといったユーザインタフェース/ディスプレイ1220に結合することができる。さらに、アプリケーションプロセッサ1210は、フラッシュメモリ1230とする不揮発性メモリ及びダイナミックランダムアクセスメモリ(DRAM)1235とするシステムメモリを含むメモリシステムに結合し得る。更に見てとれるように、アプリケーションプロセッサ1210は更に、ビデオ及び/又は静止画像を記録することができる1つ以上の画像キャプチャデバイスなどのキャプチャデバイス1240に結合する。
なおも図12を参照するに、加入者識別モジュールと、場合によりセキュアストレージ及び暗号プロセッサと、を有するユニバーサル集積回路カード(UICC)1240も、アプリケーションプロセッサ1210に結合されている。システム1200は更に、アプリケーションプロセッサ1210に結合し得るセキュリティプロセッサ1250を含んでいてもよい。複数のセンサ1225がアプリケーションプロセッサ1210に結合して、例えば加速度計及び他の環境情報などの多様な検知情報の入力を可能にし得る。オーディオ出力装置1295が、例えば、音声通信や再生若しくはストリーミングオーディオデータといった形態で、音を出力するためのインタフェースを提供し得る。
更に図示するように、NFCアンテナ1265を介してNFC近距離場内で通信する近距離無線通信(NFC)非接触インタフェース1260が設けられている。図12には別個のアンテナが示されているが、理解されたいことには、一部の実装では、様々な無線機能を実現するために1つのアンテナ又は異なるアンテナセットが設けられてもよい。
プラットフォームレベルの電力管理を行うために、PMIC1215がアプリケーションプロセッサ1210に結合している。この目的のために、PMIC1215は、所望に応じた特定の低電力状態に入るようにアプリケーションプロセッサ1210に電力管理要求を発行し得る。さらに、プラットフォーム制約に基づいて、PMIC1215はまた、システム1200の他のコンポーネントの電力レベルも制御し得る。
通信が送受信されることを可能にするために、様々な回路がベースバンドプロセッサ1205とアンテナ1290との間に結合され得る。具体的には、無線周波数(RF)トランシーバ1270及び無線ローカルエリアネットワーク(WLAN)トランシーバ1275が存在し得る。一般に、RFトランシーバ1270は、例えば符号分割多元接続(CDMA)、グローバルシステムフォーモバイルコミュニケーション(GSM)、ロングタームエボリューション(LTE)、又は他のプロトコルに従ってなど、例えば3G又は4G無線通信プロトコルなどの所与の無線通信プロトコルに従って無線データ及びコールを送受信するために使用され得る。加えて、GPSセンサ1280が存在してもよい。例えばAM/FMといったラジオ信号及び他の信号の受信又は送信などの、他の無線通信も提供され得る。さらに、WLANトランシーバ1275を介して、ローカルな無線通信も実現されることができる。
次に図13を参照するに、それとともに実施形態が使用され得るシステムの他の一例のブロック図が示されている。図13の例示において、システム1300は、例えばタブレットコンピュータ、2:1タブレット、ファブレット、又は他のコンバーチブルな若しくはスタンドアロンのタブレットシステムなどの、モバイル低電力システムとし得る。図示のように、SoC1310が存在し、装置のアプリケーションプロセッサとして動作するように構成され得る。
多様なデバイスがSoC1310に結合し得る。図示の例では、メモリサブシステムが、SoC1310に結合されたフラッシュメモリ1340及びDRAM1345を含んでいる。さらに、タッチパネル1320がSoC1310に結合されて、タッチパネル1320のディスプレイ上に仮想キーボードを設けることを含め、表示能力及びタッチを介したユーザ入力を提供する。有線ネットワーク接続を提供するために、SoC1310は、イーサネット(登録商標)インタフェース1330に結合している。周辺ハブ1325がSoC1310に結合されて、例えば様々なポート又は他のコネクタのいずれかによってシステム1300に結合され得るようになど、様々な周辺装置とインタフェースをとることを可能にする。
SoC1310内の内部電力管理回路及び機能に加えて、PMIC1380がSoC1310に結合されて、例えば、当該システムがバッテリ1390によって電力供給されるのは、それともACアダプタ1395を介してAC電力によって電力供給されるのかに基づいて、プラットフォームベースの電力管理を提供する。この電源ベースの電力管理に加えて、PMIC1380は更に、環境及び使用条件に基づいてプラットフォーム電力管理活動を実行し得る。より更には、PMIC1380は、SoC1310内での様々な電力管理アクションを引き起こすために、制御及びステータス情報をSoC1310に通信し得る。
なおも図13を参照するに、無線能力を提供するために、WLANユニット1350がSoC1310に結合され、ひいてはアンテナ1355に結合される。様々な実装において、WLANユニット1350は、1つ以上の無線プロトコルに従って通信を提供し得る。
更に例示するように、複数のセンサ1360がSoC1310に結合し得る。これらのセンサは、ユーザジェスチャセンサを含め、様々な加速度計、環境センサ、及び他のセンサを含み得る。最後に、オーディオ出力装置1370へのインタフェースを提供するために、オーディオコーデック1365がSoC1310に結合されている。理解されたいことには、図13ではこの特定の実装を有するように示されているが、当然ながら、数多くの変形及び代替が可能である。
次に図14を参照するに、例えばノートブック、UltrabookTM又は他の小型フォームファクタシステムなどの代表的なコンピュータシステムのブロック図が示されている。プロセッサ1410は、一実施形態において、マイクロプロセッサ、マルチコアプロセッサ、マルチスレッドプロセッサ、超低電圧プロセッサ、埋め込みプロセッサ、又は他の知られた処理要素を含む。図示した実装では、プロセッサ1410は、メイン処理ユニットとして、及びシステム1400の様々なコンポーネントのうちの多くと通信する中央ハブとして機能する。一例として、プロセッサ1400は、SoCとして実装される。
プロセッサ1410は、一実施形態において、システムメモリ1415と通信する。例示的な一例として、システムメモリ1415は、所与の量のシステムメモリを提供するために、複数のメモリデバイス又はモジュールにより実装される。
例えばデータ、アプリケーション、及び1つ以上のオペレーティングシステムなどの情報の永続的な保管を提供するために、大容量ストレージ1420もプロセッサ1410に結合し得る。様々な実施形態において、より薄くて軽量なシステム設計を可能にするとともに、システム応答性を改善するために、この大容量ストレージはSSDにより実装されてもよく、あるいは、大容量ストレージは、システム活動の再始動時に高速パワーアップを行うことができるように、より少量のSSDストレージが、電力停止イベントの間コンテキスト状態及び他のそのような情報の不揮発性記憶を可能にするSSDキャッシュとして作用するようにして、主にハードディスクドライブ(HDD)を用いて実装されてもよい。これまた図14に示すように、フラッシュデバイス1422が、例えばシリアルペリフェラルインタフェース(SPI)を介してプロセッサ1410に結合され得る。このフラッシュデバイスは、システムの基本入出力ソフトウェア(BIOS)及び他のファームウェアを含むシステムソフトウェアの不揮発性記憶を提供し得る。
様々な入力/出力(I/O)装置がシステム1400内に存在し得る。図14の実施形態には、タッチスクリーン1425を更に提供する高精細LCD又はLEDパネルとし得るディスプレイ1424が具体的に示されている。一実施形態において、ディスプレイ1424は、高性能グラフィックスインターコネクトとして実装されることができるディスプレイインターコネクトを介してプロセッサ1410に結合され得る。タッチスクリーン1425は、別のインターコネクトを介してプロセッサ1410に結合されてもよく、それは、一実施形態においてICインターコネクトとすることができる。図14に更に示すように、タッチスクリーン1425に加えて、タッチによるユーザ入力はタッチパッド1430を介して行われることもできる。タッチパッド1430は、シャーシ内に構成されてもよく、これまた、タッチスクリーン1425と同じICインターコネクトに結合され得る。
知覚によるコンピューティング及び他の目的のために、様々なセンサが、システム内に存在し得るとともに、様々なやり方でプロセッサ1410に結合され得る。ある一定の慣性センサ及び環境センサは、例えばICインターコネクトを介してなどで、センサハブ1440を通じてプロセッサ1410に結合し得る。図14に示した実施形態において、これらのセンサは、加速度計1441、周辺光センサ(ALS)1442、方位計1443、及びジャイロスコープ1444を含み得る。他の環境センサは、一部の実施形態ではシステム管理バス(SMBus)を介してプロセッサ1410に結合する1つ以上の熱センサ1446を含み得る。
やはり図14にて見てとれるように、様々な周辺装置が、ローピンカウント(LPC)インターコネクトを介してプロセッサ1410に結合し得る。図示した実施形態では、様々なコンポーネントを、埋め込みコントローラ(EC)1435を通して結合することができる。そのようなコンポーネントは、キーボード1436(例えば、PS2インタフェースを介して結合される)、ファン1437、及び熱センサ1439を含むことができる。一部の実施形態において、タッチパッド1430はまた、PS2インタフェースを介してEC1435に結合してもよい。さらに、トラステッドプラットフォームモジュール(TPM)1438などのセキュリティプロセッサも、このLPCインターコネクトを介してプロセッサ1410に結合し得る。
システム1400は、無線によるものを含め、多様なやり方で外部装置と通信することができる。図14に示した実施形態には、それらの各々が特定の無線通信プロトコル用に構成された無線機に対応し得る様々な無線モジュールが存在している。例えば近距離などの短距離における無線通信のための一手法は、NFCユニット1445を介してとすることができ、これは、一実施形態において、SMBusを介してプロセッサ1410と通信し得る。なお、このNFCユニット1445を介して、互いに近接した装置同士が通信してもよい。
図14にて更に見てとれるように、更なる無線ユニットが、WLANユニット1450及びBluetoothユニット1452を含む他の短距離無線エンジンを含むことができる。WLANユニット1450を用いてWi-FiTM通信を実現することができる一方で、Bluetoothユニット1452を介して、短距離BluetoothTM通信を行うことができる。これらのユニットは、所与のリンクを介してプロセッサ1410と通信し得る。
さらに、例えばセルラー式又は他の無線広域プロトコルに従った無線広域通信を、WWANユニット1456を介して行うことができ、そして、WWANユニット1456は、加入者識別モジュール(SIM)1457に結合し得る。加えて、位置情報の受信及び使用を可能にするために、GPSモジュール1455も存在し得る。なお、図14に示した実施形態では、WWANユニット1456と、例えばカメラモジュール1454などの集積キャプチャデバイスとが、所与のリンクを介して通信し得る。
集積カメラモジュール1454は、蓋に組み込まれることができる。オーディオ入力及び出力を提供するために、デジタル信号プロセッサ(DSP)1460によりオーディオプロセッサを実装することができ、これは、ハイレゾリューションオーディオ(HDA)リンクを介してプロセッサ1410に結合し得る。同様に、DSP1460は、集積されたコーダ/デコーダ(CODEC)及び増幅器1462と通信することができ、そして、それは、シャーシ内に実装され得る出力スピーカ1463に結合し得る。同様に、増幅器及びCODEC1462は、マイクロフォン1465からのオーディオ入力を受信するように結合されることができ、マイクロフォン1465は、一実施形態において、デュアルアレイマイクロフォン(例えば、デジタルマイクロフォンアレイなど)により実装されることができ、高品質のオーディオ入力を提供して、システム内の様々な動作の音声作動制御を可能にする。なお、また、オーディオ出力は、増幅器/CODEC1462からヘッドフォンジャック1464に提供されることができる。図14の実施形態ではこれらの特定のコンポーネントを有するように示されているが、理解されたいことには、本発明の範囲は、これに関して限定されるものではない。
実施形態は、数多くの異なるシステムタイプで実施され得る。次に図15を参照するに、本発明の一実施形態に従ったシステムのブロック図が示されている。図15に示すように、マルチプロセッサシステム1500は、ポイント・ツー・ポイント相互接続システムであり、ポイント・ツー・ポイントインターコネクト1550を介して結合された第1のプロセッサ1570及び第2のプロセッサ1580を含んでいる。図15に示すように、プロセッサ1570及び1580の各々は、第1及び第2のプロセッサコア(すなわち、プロセッサ1574a及び1574b、並びにプロセッサコア1584a及び1584b)を含むマルチコアプロセッサとし得るが、可能性として、当該プロセッサ内にはもっと多くのコアが存在し得る。これらのプロセッサの各々が、プロセッサベースの電力管理を実行するPCU1575、1585を含むことができ、PCU1575、1585はまた、ここに記載されるように、動作電圧に少なくとも部分的に基づいて、レイテンシを制御するためにパイプ段を含めること及び除去することによって相互接続ルーティングを動的に制御する。
なおも図15を参照するに、第1のプロセッサ1570は更に、メモリコントローラハブ(MCH)1572と、ポイント・ツー・ポイント(P-P)インタフェース1576及び1578とを含んでいる。同様に、第2のプロセッサ1580は、MCH1582と、P-Pインタフェース1586及び1588とを含んでいる。図15に示すように、MCHの1572及び1582は、プロセッサを、それぞれのプロセッサにローカルに取り付けられるシステムメモリの部分とし得るものであるメモリ1532及びメモリ1534というそれぞれのメモリに結合する。第1のプロセッサ1570及び第2のプロセッサ1580は、それぞれ、P-Pインターコネクト1562及び1564を介してチップセット1590に結合され得る。図15に示すように、チップセット1590は、P-Pインタフェース1594及び1598を含んでいる。
さらに、チップセット1590は、P-Pインターコネクト1539によってチップセット1590を高性能グラフィックスエンジン1538と結合するインタフェース1592を含んでいる。そして、チップセット1590は、インタフェース1596を介して第1のバス1516に結合され得る。図15に示すように、第1のバス1516には、第1のバス1516を第2のバス1520に結合するバスブリッジ1518と共に、様々な入力/出力(I/O)装置1514が結合され得る。第2のバス1520には、一実施形態において、例えば、キーボード/マウス1522、通信装置1526、及びコード1530を含み得る例えばディスクドライブ若しくは他の大容量ストレージなどのデータストレージユニット1528を含む、様々な装置が結合され得る。さらに、オーディオI/O1524が第2のバス1520に結合されてもよい。実施形態は、例えばスマートセルラー電話、タブレットコンピュータ、ネットブック、又はUltrabookTMなどのモバイル装置を含め、他のタイプのシステムに組み込まれることができる。
図16は、一実施形態に従った動作を実行する集積回路を製造するために使用され得るIPコア開発システム1600を示すブロック図である。IPコア開発システム1600は、より大きな設計に組み込まれることが可能な、又は集積回路(例えば、SoC集積回路)全体を構築するために使用されることが可能な、モジュール式の再利用可能な設計を生成するために使用され得る。設計設備1630は、高水準プログラミング言語(例えば、C/C++)にてIPコア設計のソフトウェアシミュレーション1610を生成することができる。ソフトウェアシミュレーション1610は、IPコアの挙動を設計、テスト、及び検証するために使用されることができる。次いで、シミュレーションモデル1612から、レジスタ転送レベル(RTL)設計を作成又は合成することができる。RTL設計1615は、ハードウェアレジスタ間でのデジタル信号の流れをモデル化する集積回路の挙動の抽象概念であり、モデル化されたデジタル信号を用いて実行される関連ロジックを含む。RTL設計1615に加えて、論理レベル又はトランジスタレベルでのより低レベル設計も、作成、設計、又は合成され得る。従って、初期設計及びシミュレーションの特定の詳細は様々であり得る。
RTL設計1615又はそれと同等なものは、設計設備によってさらに、ハードウェア記述言語(HDL)、又は物理設計データの何らかの他の表現、とし得るものであるハードウェアモデル1620へと合成され得る。HDLは、IPコア設計を検証するために更にシミュレーション又はテストされ得る。IPコア設計は、第三者の製造設備1665への送達のために、不揮発性メモリ1640(例えば、ハードディスク、フラッシュメモリ、又は任意の不揮発性記憶媒体)を使用して格納されることができる。それに代えて、IPコア設計は、有線接続1650又は無線接続1660上で(例えば、インターネットを介して)伝送されてもよい。そして、製造設備1665は、少なくとも部分的にIPコア設計に基づく集積回路を製造することができる。製造される集積回路は、ここに記載される少なくとも1つの実施形態に従った動作を行うように構成されることができる。
次に図17を参照するに、本発明の一実施形態に従った制御可能なパイプ段回路のブロック図が示されている。図17に示すように、パイプ段回路1700は、例えばメッシュインターコネクトなどの相互接続内の様々な位置に実装され得る。パイプ段回路1700では、相互接続経路の長さの動的制御が可能にされる。斯くして、メッシュストップ間又はインターコネクト間での通信の動的なサイクル制御が実現され得る。
より具体的には、図17に示すように、パイプ段回路1700は、それに沿って信号が通信される入力信号ライン1705を含む。見てとれるように、信号はパイプ段1710に提供される。一実施形態において、パイプ段1710は、例えばD型ラッチといったラッチ回路として実装され得る。他のケースでは、例えばフリップフロップ又は他のシーケンシャル回路など、他のパイプ段がパイプ段コンポーネントとして使用されてもよい。一実施形態において、パイプ段1710は、パイプ段1710の入力で受信した入力信号が、ファブリッククロックの所与のサイクルにおいて、パイプ段1710の出力から第1の出力信号ライン1715を介して出力されるように、単一サイクルレイテンシを提供し得る。
図示のように、出力信号ライン1715は、一実施形態においてマルチプレクサとして実装され得るものである選択回路1720の第1の入力に結合している。更に図示するように、入力信号ライン1705から直接受信された信号が、バイパス経路1730を介して選択回路1720の別の入力に提供される。
動的制御に基づいて、例えば、電力コントローラから受信した制御信号の制御下で、選択回路1720は、単一サイクルレイテンシ(バイパス経路1730を用いて実現される)又は複数サイクルレイテンシ(パイプ段1710を通じて提供される信号を用いて実現される)のいずれかで、入力信号を第2の出力信号ライン1725を介して出力し得る。理解されたいことには、図17の実施形態ではこのハイレベルで示されているが、数多くの変形及び代替が可能である。
次に図18を参照するに、一実施形態に従った相互接続上でのサイクルレイテンシの動的制御を例示するブロック図が示されている。図18の左側に示すように、プロセッサ1800は相互接続1810を含む。図示の容易さのためにリングインターコネクトが示されているが、理解されたいことには、実施形態は、メッシュインターコネクト、トーラス又は他の2D若しくは3D相互接続構造、又は他の接続ファブリックを含め、数多くの他のタイプの相互接続構造に適用可能である。
図18の左側を参照するに、相互接続1810は、複数のコア1820-1820に結合している。図示の容易さのために6つの代表的なコアが示されているが、他の実施形態ではより多数又は少数のコアが存在し得る。さらに、より一般的に理解されたいことには、相互接続1810は、コア、グラフィックスプロセッサ、入力/出力装置、又は他の周辺装置などを含む多様な異なるタイプの処理回路に結合する。そして、多くのケースで、相互接続1810は、そのようなコンポーネントに、相互接続1810に沿った通信の出入りを可能にする回路を含む所謂メッシュストップによって結合し得る。そして、より一般的には、各コア1820は、相互接続1810を所与のメッシュストップに相互接続することを示している。
図18の左側に更に示すように、相互接続1810は、複数の追加のパイプ段1825-1825を含んでいる。図示のように、各パイプ段1825は、対応するコア1820間に適応され得る(従って、より具体的には、相互接続1810に沿った別々のメッシュストップ間に配置され得る)。一実施形態において、各パイプ段1825は、概して、図17のパイプ段回路1700の形態をとり得る(従って、パイプ段コンポーネント、バイパス経路、マルチプレクサ若しくは他の選択回路、及び制御入力を含み得る)。従って、図18の左側のプロセッサ1800は、パイプ段1825がメッシュストップ間に複数サイクルレイテンシを提供することが可能にされた、動的動作における場合を例示している。従って、この状態での動作中、パイプ段において発生される遅延の結果として、(パイプ段が非アクティブである状況と比較して)相互接続1810に沿った通信レイテンシが増加し得る。しかしながら、理解されたいことには、この場合における相互接続1810は、より低い電圧レベルで動作し得る。斯くして、より大きい電圧ヘッドルーム(従って、電力ヘッドルーム)が存在することができ、それを、プロセッサ1800の追加リソースに動的且つ柔軟に提供することができる。例えば、1つ以上のコア1820は、より高い電圧(及び周波数)で動作するように制御されて、高められた性能(例えば、1サイクル当たりの命令実行数に関して)を可能にし得る。アクティブなパイプ段1825を有するこの動作は、例えば、相互接続1810上の最小限のトラフィックとともに比較的高い計算ワークロードが発生しているときなど、ワークロードの分析に少なくとも部分的に基づいて始まり得る。
図18の左側を更に参照するに、バッファ1830が相互接続1810に結合している。バッファ1830は、性能状態遷移の間に、すなわち、動的な電圧/周波数変更が相互接続1810に対して為されるべきときに、相互接続1810に沿って進むメッセージを格納するための複数の個別のバッファ要素を含むキューとして実装され得るドレイン/リプレイバッファである。一実施形態において、バッファ1830は、メッシュストップの数に依存してもよく、一例として、メッシュストップと同じ数の個別のバッファを含み得る。例えば、垂直リング上に20個のメッシュストップが存在する場合、20というバッファ深さがあるとし得る。バッファ1830は、性能状態遷移の時点で相互接続1810に残っている例えばメッセージ又は他のパケットなどの通信を受信して格納する先入れ先出し(FIFO)構造として実装されることができ、その詳細については更に後述する。斯くして、バッファ1830は、そのような性能状態変化が、相互接続1810からその通信を排出しないやり方で行われることを可能にし、無排出の性能状態変化の遷移レイテンシを維持管理することによって、性能状態遷移それ自体のレイテンシ及び通信がダウンする時間を短縮する。
なおも図18を参照するに、右側にプロセッサ1800’が示されている。より具体的には、プロセッサ1800’は、プロセッサ1800と同じプロセッサであるが、メッシュストップ間に結合された追加のパイプ段が(例えば、そのようなパイプ段回路のマルチプレクサへの適切な制御信号によって)有効にされない異なる時点で示されている。従って、相互接続1810は、コア1820-1820のみに結合するように示されている。動作中のこの時点では、相互接続1810は単一サイクルレイテンシで動作し得る。相互接続1810は、より高い電圧レベルで動作して、メッシュストップ間に適応されたパイプ段回路を動的に除去する(例えば、バイパスする)ことによって、この単一サイクルレイテンシの実現を可能にし得る。理解されたいことには、図18の実施形態ではこのハイレベルで示されているが、数多くの変形及び代替が可能である。
次に図19A-19Bを参照するに、本発明の一実施形態に従った方法のフロー図が示されている。より具体的には、図19A及び19Bに示す方法1900は、ここに記載されているように低減されたレイテンシでファブリック構造への動的な性能状態変化を実行方法である。従って、方法1900は、例えばメッシュコントローラ又は他の相互接続コントローラなどの制御回路を用いて実行されることができ、該制御回路は、ハードウェア回路、ファームウェア、ソフトウェア、及び/又はこれらの組み合わせとして実装され得る。
図示のように、方法1900は、電力コントローラからパイプドレイン信号を受信することによって開始する(ブロック1910)。このパイプドレイン信号は、ファブリックへの性能状態変化が発生する(及び/又はパイプ段の挿入又は除去プロセスが発生する)という決定に応答して、相互接続内で受信され得る。このパイプドレイン信号に応答して、ブロック1920にて、相互接続への新たなメッセージの注入が阻止され得る。この目的のために、相互接続コントローラは、ブロック信号をメッシュストップに通信して、それらが新たなメッセージをファブリックに注入することを防止し得る。
その後、ファブリックは、ファブリックからメッセージを排出しようと、現在の周波数で動作し続け得る。この目的のために、相互接続に係属中のメッセージは、それらが宛先メッシュストップにシンクされ得るようにファブリックを横断し得る(そのようなメッシュストップ内に十分なクレジットが存在し、クレジットされたメッセージを受け入れることができると仮定して)。リングインターコネクトの場合、メッシュは、例えば2巡りといった複数回の周回の間、現在のクロック周波数に従って動作し続け得る。従って、この場合、リングインターコネクトに関するこの1回目のファブリック横断は、リング上での完全な周回とし得る(ブロック1930)。なおも図19Aを参照するに、ファブリックの2回目の横断において、1つ以上のデッドロック防止(anti-deadlock)スロットがクリアされ得る(ブロック1940)。そのようなスロットは、さもなければ、あるメッシュストップ又はファブリックの他の部分にデッドロックを生じさせてしまうことになるメッセージを輸送する。
なおも図19Aを参照するに、次にブロック1950にて、全てのバウンストラフィック(すなわち、相互接続になおも係属中のメッセージ)が、ドレイン-リプレイキューへと排出され得る。なお、この構成では、性能状態変化を実行するのに先立つファブリックからのメッセージの排出がなく、性能状態変化に入るまでの時間のレイテンシが改善される。
残存トラフィックがこのキューに排出されたこの時点で、性能状態変化が実行され得る(ブロック1960)。この目的のために、ファブリックの動作電圧及び周波数のうち一方以上を更新することができる。パイプ段における増加の目的では、この性能状態変化は、少なくともファブリックの電圧を低下させるためとし得る。そして、このようなパイプ段の除去の場合には、性能状態変化は、少なくとも電圧を上昇させるためとし得る。
いずれにせよ、この性能状態変化が発効された後の図19Bを次に参照するに、例えば所定数のクロックサイクルの間、メッシュストップからファブリックへの新たなメッセージの注入が阻止され得る(ブロック1970)。次に、ブロック1980にて、1つ以上のデッドロック防止スロットがクリアされ、更新されたファブリック構成のために再初期化され得る。例えば、パイプ段がファブリックに追加されるとき、1つ以上の追加のデッドロック防止スロットを設けることができ、同様に、パイプ段がファブリックから除去されるとき、1つ以上のデッドロック防止スロットを除去することができる。
次に、ブロック1990にて、バウンストラフィックが、デッドロック防止スロットではないスロットに注入され得る。このようなバウンストラフィックがドレイン-リプレイキューから取り出されて相互接続上に挿入されることで、これらのメッセージが自身の宛先に関連するメッシュストップに流れ込むことが可能になる。最後に、ブロック1995にて、ファブリックへの新たなメッセージの注入が阻止されなくされ得る。従って、この時点で、メッシュストップは、新たなメッセージ又は他のパケットをファブリックに自由に注入することができる。理解されたいことには、図19A-19Bにおいてのような実施形態では、ファブリックの電圧及び/又は周波数に関する性能状態変化を、短縮されたレイテンシで行うことができ、性能が向上される。さらに、ドレイン-リプレイキューの存在を所与として、この性能状態変化に先立ってファブリックからメッセージを完全に排出する必要が回避されるので、複雑さも低減され得る。従って、方法1900では、クレジットされた全てのメッセージがファブリックから排出されるとともに、バウンスメッセージが性能状態遷移前にドレイン-リプレイキューに格納される。性能状態遷移後に、バウンスメッセージがドレイン-リプレイキューからファブリックに再生される。理解されたいことには、図19A-19Bの実施形態ではこのハイレベルで示されているが、数多くの変形及び代替が可能である。
次に図20を参照するに、本発明の他の一実施形態に従った方法のフロー図が示されている。より具体的には、方法2000は、相互接続のパイプ段構造への動的変化がいつ適切であるかを決定する方法である。一実施形態において、方法2000は、例えばPCUなどの電力コントローラによって実行され得る。従って、方法2000は、ハードウェア回路、ファームウェア、ソフトウェア、及び/又はこれらの組み合わせによって実行され得る。
図示のように、方法2000は、相互接続の動作電圧が第1の閾値未満であるかを判定することによって開始する(菱形2010)。一実施形態において、この第1の閾値は、相互接続が低性能レベルで動作するように、比較的低い動作電圧に対応し得る。この状況では、相互接続は、通信経路にパイプ段コンポーネントを含めることによって増大されたレイテンシで動作し得る。この目的のために、制御がブロック2020に移り、そこで、相互接続のパイプ段回路がパイプ段コンポーネントを通信経路に挿入することが可能にされ得る。より具体的には、例えば図17及び図18に関して上述したように、電力コントローラが、パイプ段回路のマルチプレクサ又は他の選択回路に制御信号を送信して、それらに、メッシュストップ間又は他のインターコネクト続点ポイント間で、複数サイクルレイテンシで動作させることができる。なお、相互接続が複数サイクルレイテンシで動作することができる低減された電圧レベルでは、追加の電圧ヘッドルームが存在することができ、それを、電力コントローラによって、例えばこのヘッドルームを活用し得るコア又は他の処理ユニットなどの、プロセッサの他のリソースに分配することができる。
なおも図20を参照するに、そうでなく、相互接続電圧がこの第1の閾値レベルを超えていると判定された場合、制御が菱形2030に移り、電圧が第2の閾値レベル未満であるかを判定する。そうである場合、制御がオプションの菱形2040に移り、コアワークロードが所与のワークロード閾値を超えているかを判定する。なお、このオプションの判定を用いることで、相互接続を複数サイクル動作で制御すべきか、それとも単一サイクル動作で制御すべきかについて、柔軟な決定が為され得る。コア活動がワークロード閾値未満である状況では、恐らくは、相互接続内にパイプ段コンポーネントを含めることで生じる追加のレイテンシは懸念されることでなく、それ故に、制御がブロック2020に移り、そこで、相互接続はそれらのパイプ段コンポーネントを挿入するように制御されることができ、上述のように、相互接続の動作電圧を低下が可能にされる。
そうでなく、ワークロードが所与のワークロード閾値を超えていると菱形2040で判定された場合には(又は、この判定が行われない状況においては)、制御がブロック2050に移り、そこで、パイプ段コンポーネントを除去するようにパイプ段回路が制御され得る。従って、電力コントローラは、マルチプレクサ又は他の選択回路に制御信号を送信して、それらに、1つ以上のパイプ段コンポーネントを通して受信した信号ではなく、バイパス経路を介して受信した信号を通すようにさせ得る。
さらに図20を参照するに、相互接続電圧がこの第2の閾値レベルを超えていると判定された場合、制御が菱形2060に移り、電圧が、より高い第3の閾値未満であるかを判定する。そうである場合、制御が上述のブロック2050に移り、そこで、相互接続上のレイテンシを低減させるよう、パイプ段コンポーネントが除去されるように相互接続が制御される。
なおも図20を参照するに、そうでなく、相互接続電圧がこの第3の閾値を超えていると判定された場合、制御がブロック2070に移り、そこで、パイプ段コンポーネントが相互接続に挿入されるように相互接続を制御することができる。斯くして、相互接続は複数サイクルレイテンシで動作し得る。しかしながら、このような動作は、そうでなくて単一サイクルレイテンシで動作しようとする場合に動作することになるよりも低い電圧レベルでのものである。理解されたいことには、図20の実施形態ではこのハイレベルで示されているが、数多くの変形及び代替が可能である。例えば、他の実施形態では、より多数又は少数の閾値及び判定が存在することができる。
一実施形態において、ハイレベルでは、F/Vカーブ上に、以下の2つの遷移タイプ、すなわち、パイプ段がそれらのゾーン内で静止して保たれ、それらのゾーン間で変化される複数の静的ゾーンと、パイプ段がそのゾーン内で(性能状態遷移プロセスの間に)変化されることができる少なくとも1つの動的ゾーンとの、2つの遷移タイプが存在する。
次に図21を参照するに、相互接続の相互接続回路に関する周波数-電圧カーブのグラフが示されている。図示のように、第1のカーブ2110は通信ファブリックに関するカーブであり、カーブ2120は相互接続のメッシュストップ及び他の処理回路に関するカーブである。図示のように、これらのカーブは4つの動作ゾーンに分割される。ほとんどの電圧点にわたって、IPロジックは、より低い電圧で同じ動作周波数を達成することができる。SCF IPのような高度にマルチインスタンスのIPでは、同じ周波数でのこの電圧低減は、かなりの電力低減を実現することができ、それが性能改善となる。
図21に更に示されるように、電力管理(PM)制御の観点からの動作は、これらのF/Vカーブを複数のゾーン(このケースでは4つのゾーンZ1-Z4が示されている)に分割することによって示される。このゾーン分けは、異なるワークロードに対して、SCF IPのF/V動作範囲を調整する。4つのゾーンZ1-Z4を区分する3つの閾値が存在し、それらの各々が、図20に関して上述した判定が行われる閾値電圧のうちの異なる1つに対応し得る。低電圧動作(Z1)では、ワークロード性能はメッシュレイテンシに敏感でなく、それ故に、パイプ段をファブリックに追加して、電圧を低下させ、電力をコアドメインに移すことができる。例えば図21のゾーンZ1といった低メッシュ電圧モードで動作するとき、メッシュレイテンシは性能に影響せず、電力節減が性能(例えば、コア束縛ワークロードに関して)を向上させることができる。
電圧低下に伴って動的電力及びリーク電力の両方が減少する。電圧の関数としての回路の動的及びリーク電力は、動的電力=CVF(V:電圧、F:周波数、C:キャパシタンス)、及びリーク電力=IVであり、ここで、Iはサブスレッショルドリークであり、電圧(V)の関数である。高電圧動作(Z4)では、ワークロードが低レイテンシのためにメッシュ周波数に敏感であり且つ電圧を上げるための電力ヘッドルームが存在する場合、より高い周波数動作が可能にされる。従って、このシナリオでは、閾値Z4より上で、メッシュ上の最小パイプ段で動作が行われる。
実施形態は、レイテンシを損なうことなく、より良い電力及びより良いメッシュファブリック帯域幅プロファイルを届け得る。このような利点が実現され得るのは、メッシュファブリック自体がSCFドメイン電力のうちの小さい部分であり得るから(ファブリックデータ経路シーケンシャルが、全体のSCFドメインシーケンシャル/ゲートカウント/面積のうちの極めて小さな部分であり得るから)である。従って、従来のように、ファブリックのニーズのために全体のSCFドメイン電圧を固定することは最適でない。実施形態は、この従属性を除去し、より高い電圧で電力を節約する。さらに、ファブリックは(コアドメインと比較して)RC支配的であるので、ファブリックは、後述するように、より高い周波数動作に関して、SCF IPと比較していっそう高い電圧で動作し得る。高電圧では、選択回路がパイプ段コンポーネントを挿入し、ファブリックを、タイミングクリティカルでないものにし得る。当然ながら、電圧周波数カーブ及び閾値の両方についてのこれらの代表的な値は、単に例示的なものであり、他の実施形態では数多くの異なる値が可能である。
以下の例は、更なる実施形態に関する。
一例において、装置は、各々が命令を実行する複数の処理回路と、前記複数の処理回路を結合する相互接続とを含む。該相互接続は、前記複数の処理回路のうちの第1の処理回路と前記複数の処理回路のうちの第2の処理回路との間に結合されるパイプ段回路を有する。該パイプ段回路は、前記相互接続を介して信号を受信する第1の入力と、前記信号を出力する第1の出力とを持つパイプ段コンポーネントと、前記パイプ段コンポーネントの前記第1の出力から前記信号を受信する第1の入力と、バイパス経路を介して前記信号を受信する第2の入力とを持つ選択回路とを有し、該選択回路は、制御信号に基づいて、前記パイプ段コンポーネントの前記第1の出力から受信される前記信号又は前記バイパス経路を介して受信される前記信号を出力するように、動的に制御可能である。
一例において、前記選択回路は、前記バイパス経路を介して受信される前記信号に対して遅延された前記信号を前記パイプ段コンポーネントから受信する。
一例において、前記相互接続は、複数のメッシュストップを持つメッシュインターコネクトと、前記複数のメッシュストップのうちの少なくとも一部の間に介在する複数のパイプ段回路とを有する。
一例において、前記複数のパイプ段回路は、前記メッシュインターコネクトの垂直部分に結合された前記複数のメッシュストップのうちの前記少なくとも一部の間に介在し、前記メッシュインターコネクトの水平部分に結合された前記複数のメッシュストップの部分は、パイプ段回路の介在なしに互いに結合される。
一例において、当該装置は更に、前記相互接続の動作電圧に少なくとも部分的に基づいて前記選択回路に前記制御信号を提供する電力コントローラ、を有する。
一例において、前記電力コントローラは、前記相互接続の前記動作電圧が閾値レベル未満であるとき、前記制御信号を提供して、前記選択回路に、前記パイプ段コンポーネントから受信される前記信号を出力させる。
一例において、前記電力コントローラは、前記複数の処理回路のうちの少なくとも1つのワークロードに更に基づいて前記制御信号を提供して、前記選択回路に、前記パイプ段コンポーネントから受信される前記信号を出力させる。
一例において、当該装置は更に、相互接続コントローラと、前記相互接続に結合されたキューとを有し、前記相互接続コントローラが、前記相互接続への性能状態変化に先立って、前記相互接続上に係属中の1つ以上のメッセージが当該キューに格納されるようにする。
一例において、前記性能状態変化の後、前記相互接続コントローラは、前記複数の処理回路が新たなメッセージを前記相互接続に注入することを可能にするのに先立って、前記キューに前記1つ以上のメッセージを前記相互接続に出力させる。
一例において、前記パイプ段コンポーネントは、前記相互接続の動作電圧が閾値レベルを超えるときに、前記相互接続の通信経路に動的に挿入され、前記パイプ段コンポーネントは、シーケンシャル回路を有する。
他の一例において、方法は、プロセッサの相互接続のコントローラにて、前記プロセッサの電力コントローラからのパイプドレイン信号を受信し、前記パイプドレイン信号に応答して、前記相互接続上の1つ以上の係属中のメッセージが、前記相互接続に結合されたキューに格納されるようにし、前記相互接続に性能状態変化を生じさせ、その後、前記1つ以上の係属中のメッセージが前記キューから排出されて前記相互接続上に注入されるようにする、ことを有する。
一例において、当該方法は更に、前記性能状態変化に先立ち、単一サイクル構成で動作するように1つ以上のパイプ段回路を制御し、前記性能状態変化の後に、複数サイクル構成で動作するように前記1つ以上のパイプ段回路を制御する、ことを有する。
一例において、当該方法は更に、前記相互接続の動作電圧が閾値レベルを超えているときに、前記単一サイクル構成で動作するように前記1つ以上のパイプ段回路を制御し、前記相互接続の動作電圧が閾値レベル未満であるときに、前記複数サイクル構成で動作するように前記1つ以上のパイプ段回路を制御する、ことを有する。
一例において、当該方法は更に、前記1つ以上の係属中のメッセージの前記相互接続を排出することなく、前記相互接続への前記性能状態変化を実行する、ことを有する。
一例において、当該方法は更に、前記パイプドレイン信号に応答して、前記相互接続に結合された1つ以上のエージェントがメッセージを前記相互接続上に注入することを防止し、前記1つ以上のメッセージが前記キューから排出された後に、前記1つ以上のエージェントが前記メッセージを前記相互接続上に注入することを可能にする、ことを有する。
一例において、当該方法は更に、第1の性能状態で動作するように前記相互接続の通信経路回路を制御し、第2の性能状態で動作するように前記相互接続の論理回路を制御し、前記第1の性能状態は前記第2の性能状態よりも低い、ことを有する。
他の一例において、命令を含んだコンピュータ読み取り可能媒体が、上の例のうちのいずれかの方法を実行する。
他の一例において、データを含んだコンピュータ読み取り可能媒体が、少なくとも1つの機械によって使用されて、上の例のうちのいずれか1つの方法を実行する少なくとも1つの集積回路を製造する。
他の一例において、装置が、上の例のうちのいずれか1つの方法を実行する手段を有する。
他の一例において、システムは、チップ・オン・チップと、該システム・オン・チップに結合されたシステムメモリとを含む。前記システム・オン・チップは、各々が命令を実行する複数のコアと、該複数のコアを結合するメッシュインターコネクトとを有する。該メッシュインターコネクトは、複数のメッシュストップが結合された垂直メッシュであり、当該垂直メッシュに沿って複数のパイプ段回路が介在し、該複数のパイプ段回路の各々が、当該垂直メッシュから信号を受信する第1の入力と、前記信号を出力する第1の出力とを持つパイプ段コンポーネントと、前記パイプ段コンポーネントの前記第1の出力から前記信号を受信する第1の入力と、当該垂直メッシュから前記信号を受信する第2の入力とを持つ選択回路であり、当該選択回路は、前記パイプ段コンポーネントの前記第1の出力から受信される前記信号又は当該垂直メッシュから受信される前記信号を出力するように動的に制御可能である、選択回路と、を有する、垂直メッシュと、前記複数のメッシュストップが結合された水平メッシュと、を有する。前記システム・オン・チップは更に、前記メッシュインターコネクトの動作電圧に少なくとも部分的に基づいて前記選択回路を制御する電力コントローラ、を含む。
一例において、当該システムは更に、前記メッシュインターコネクトに結合され、前記メッシュインターコネクトへの性能状態変化に先立って前記メッシュインターコネクト上に係属中の1つ以上のメッセージを格納するキュー、を含む。
一例において、前記電力コントローラは、前記メッシュインターコネクトの前記動作電圧が閾値レベルを超えるときには、前記複数のパイプ段回路に単一サイクル構成で動作させ、前記メッシュインターコネクトの前記動作電圧が前記閾値レベル未満であるときには、前記複数のパイプ段回路に複数サイクル構成で動作させる。
一例において、前記電力コントローラは、前記垂直メッシュ及び前記水平メッシュに第1性能状態で動作させ、前記複数のメッシュストップに第2性能状態で動作させ、前記第1性能状態は前記第2性能状態よりも低い。
理解されたいことには、上の例の様々な組み合わせが可能である。
なお、用語“circuit(回路)”及び“circuitry(回路)”は、ここでは交換可能に使用される。ここで使用されるとき、これらの用語及び用語“ロジック”は、単独で又は任意の組み合わせで、アナログ回路、デジタル回路、ハードワイヤード回路、プログラマブル回路、プロセッサ回路、マイクロコントローラ回路、ハードウェア論理回路、状態マシン回路、及び/又は他のタイプの物理的ハードウェアコンポーネントを指すように使用される。実施形態は、数多くの異なるタイプのシステムにおいて使用され得る。例えば、一実施形態において、ここに記載される様々な方法及び技術を実行するように通信装置を構成することができる。当然ながら、本発明の範囲は通信装置に限定されず、代わりに、他の実施形態は、命令を処理する他のタイプの装置に向けられてもよいし、あるいは、コンピューティング装置上で実行されることに応答して、該装置にここに記載される1つ以上の方法及び技術を実行させる命令を含んだ1つ以上の機械読み取り可能媒体に向けられてもよい。
実施形態は、コードにて実装されて、命令を格納する非一時的な記憶媒体に格納されてもよく、それを用いて、システムを、当該命令を実行するようにプログラムすることができる。実施形態はまた、データにて実装されて、非一時的な記憶媒体に格納されてもよく、それが少なくとも1つのマシンによって使用される場合に、該少なくとも1つのマシンに、1つ以上の動作を実行する少なくとも1つの集積回路を製造させる。より更なる実施形態は、命令を含んだコンピュータ読み取り可能記憶媒体にて実装されてもよく、それがSoC又は他のプロセッサに製造されるときに、該SoC又は他のプロセッサを、1つ以上の動作を実行するように構成する。記憶媒体は、以下に限られないが、フロッピーディスク(登録商標)、光ディスク、ソリッドステートドライブ(SSD)、コンパクトディスク読み出し専用メモリ(CD-ROM)、書き換え可能コンパクトディスク(CD-RW)、及び光磁気ディスクを含む任意のタイプのディスク、例えば読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、消去可能プログラム可能読み出し専用メモリ(EPROM)、フラッシュメモリ、電気的消去可能プログラム可能読み出し専用メモリ(EEPROM)、磁気カード若しくは光カード、又は電子命令を格納するのに適した任意の他のタイプの媒体を含み得る。
限られた数の実施形態に関して本発明を説明したが、当業者は、それらから数多の変更及び変形を理解することになる。意図されることには、添付の請求項は、本発明の真の精神及び範囲に入る全てのそのような変更及び変形に及ぶものである。

Claims (23)

  1. プロセッサであって、
    各々が命令を実行する複数の処理回路と、
    前記複数の処理回路を結合する相互接続であり、当該相互接続は、
    前記複数の処理回路のうちの第1の処理回路と前記複数の処理回路のうちの第2の処理回路との間に結合されるパイプ段回路であり、
    当該相互接続を介して信号を受信する第1の入力と、前記信号を出力する第1の出力とを持つパイプ段コンポーネントと、
    前記パイプ段コンポーネントの前記第1の出力から前記信号を受信する第1の入力と、バイパス経路を介して前記信号を受信する第2の入力とを持つ選択回路であり、当該選択回路は、制御信号に基づいて、前記パイプ段コンポーネントの前記第1の出力から受信される前記信号と、前記バイパス経路を介して受信される前記信号とのうちの一方を出力するように、動的に制御可能である、選択回路と、
    を有するパイプ段回路、
    を有する相互接続と、
    電力コントローラであり、前記相互接続の動作電圧が、前記相互接続が低動作電圧で動作することに対応する第1の閾値レベル未満である、ことに応答して、前記選択回路に、前記パイプ段コンポーネントから受信される前記信号を出力させ、且つ利用可能な電力を当該プロセッサの少なくとも1つの他のリソースに分配する電力コントローラと、
    を有するプロセッサ
  2. 前記選択回路は、前記バイパス経路を介して受信される前記信号に対して遅延された前記信号を前記パイプ段コンポーネントから受信する、請求項1に記載のプロセッサ
  3. 前記相互接続は、
    複数のメッシュストップを持つメッシュインターコネクトと、
    前記複数のメッシュストップのうちの少なくとも一部の間に介在する複数のパイプ段回路と、
    を有する、請求項2に記載のプロセッサ
  4. 前記複数のパイプ段回路は、前記メッシュインターコネクトの垂直部分に結合された前記複数のメッシュストップのうちの前記少なくとも一部の間に介在し、前記メッシュインターコネクトの水平部分に結合された前記複数のメッシュストップの部分は、パイプ段回路の介在なしに互いに結合される、請求項3に記載のプロセッサ
  5. 前記電力コントローラは、前記相互接続の前記動作電圧に少なくとも部分的に基づいて前記選択回路に前記制御信号を提供する、請求項1乃至4のいずれか一項に記載のプロセッサ
  6. 前記電力コントローラは、前記動作電圧が前記第1の閾値レベルよりも高いときに、前記複数の処理回路のうちの少なくとも1つのワークロードに更に基づいて前記制御信号を提供して、前記選択回路に、前記パイプ段コンポーネントから受信される前記信号を出力させる、請求項5に記載のプロセッサ
  7. 相互接続コントローラと、
    前記相互接続に結合されたキューであり、前記相互接続コントローラが、前記相互接続への性能状態変化に先立って、前記相互接続上に残っている1つ以上のメッセージが当該キューに格納されるようにし、前記性能状態変化は動作電圧及び/又は周波数の変化を有する、キューと、
    を更に有する請求項1乃至6のいずれか一項に記載のプロセッサ
  8. 前記性能状態変化の後、前記相互接続コントローラは、前記複数の処理回路が新たなメッセージを前記相互接続に注入することを可能にするのに先立って、前記キューに前記1つ以上のメッセージを前記相互接続に出力させる、請求項7に記載のプロセッサ
  9. 前記パイプ段コンポーネントは、前記相互接続の動作電圧が、前記第1の閾値レベルよりも高いの閾値レベルを超えるときに、前記相互接続の通信経路に動的に挿入され、前記パイプ段コンポーネントは、シーケンシャル回路を有する、請求項1乃至8のいずれか一項に記載のプロセッサ
  10. プロセッサの相互接続のコントローラにて、前記プロセッサの電力コントローラからのパイプドレイン信号を受信し、
    前記パイプドレイン信号に応答して、前記相互接続上に残っている1つ以上のメッセージが、前記相互接続に結合されたキューに格納されるようにし、
    前記相互接続に性能状態変化を生じさせ、前記性能状態変化は動作電圧及び/又は周波数の変化を有し、
    その後、前記1つ以上のメッセージが前記キューから排出されて前記相互接続上に注入されるようにし、
    前記相互接続の動作電圧が第3の閾値レベル未満であるとき、前記性能状態変化に先立ち、単一サイクル構成で動作するように1つ以上のパイプ段回路を制御し、前記パイプ段回路のうち少なくとも1つがパイプ段コンポーネントを有し、
    前記相互接続の前記動作電圧が前記第3の閾値レベルよりも高いとき、前記性能状態変化の後に、複数サイクル構成で動作するように前記1つ以上のパイプ段回路を制御する
    ことを有する方法。
  11. 前記相互接続の動作電圧が、前記第3の閾値レベルよりも低い第2の閾値レベルを超えているときに、前記単一サイクル構成で動作するように前記1つ以上のパイプ段回路を制御し、
    前記相互接続の動作電圧が前記第2の閾値レベル未満であるときに、前記複数サイクル構成で動作するように前記1つ以上のパイプ段回路を制御する、
    ことを更に有する請求項10に記載の方法。
  12. 少なくとも1つのメッセージ前記相互接続から排出することなく、前記相互接続への前記性能状態変化を実行する、ことを更に有する請求項10又は11に記載の方法。
  13. 前記パイプドレイン信号に応答して、前記相互接続に結合された1つ以上のエージェントがメッセージを前記相互接続上に注入することを防止し、
    前記1つ以上のメッセージが前記キューから排出された後に、前記1つ以上のエージェントが前記メッセージを前記相互接続上に注入することを可能にする、
    ことを更に有する請求項10乃至12のいずれか一項に記載の方法。
  14. 第1の性能状態で動作するように前記相互接続の通信経路回路を制御し、
    第2の性能状態で動作するように前記相互接続の論理回路を制御し、前記第1の性能状態は前記第2の性能状態よりも低い、
    ことを更に有する請求項10乃至13のいずれか一項に記載の方法。
  15. 実行されるときに請求項10乃至14のいずれか一項に記載の方法を実行するコンピュータ読み取り可能命令を含んだコンピュータ読み取り可能記憶媒体。
  16. 請求項10乃至14のいずれか一項に記載の方法を実行する手段を有する装置。
  17. チップ・オン・チップであり、
    各々が命令を実行する複数のコアと、
    前記複数のコアを結合するメッシュインターコネクトであり、当該メッシュインターコネクトは、
    複数のメッシュストップが結合された垂直メッシュであり、当該垂直メッシュに沿って複数のパイプ段回路が介在し、該複数のパイプ段回路の各々が、
    当該垂直メッシュから信号を受信する第1の入力と、前記信号を出力する第1の出力とを持つパイプ段コンポーネントと、
    前記パイプ段コンポーネントの前記第1の出力から前記信号を受信する第1の入力と、当該垂直メッシュから前記信号を受信する第2の入力とを持つ選択回路であり、当該選択回路は、複数サイクル構成を介して前記パイプ段コンポーネントの前記第1の出力から受信される前記信号又は単一サイクル構成を介して当該垂直メッシュから受信される前記信号を出力するように動的に制御可能である、選択回路と、
    を有する、垂直メッシュと、
    前記複数のメッシュストップが結合された水平メッシュと、
    を有する、メッシュインターコネクトと、
    前記メッシュインターコネクトの動作電圧に少なくとも部分的に基づいて前記選択回路を制御する電力コントローラであり、前記複数サイクル構成における前記パイプ段コンポーネントの動作は、前記単一サイクル構成における前記パイプ段コンポーネントの動作よりも低い電圧レベルにおいてである、電力コントローラと、
    を有するシステム・オン・チップ、及び
    前記システム・オン・チップに結合されたシステムメモリ、
    を有するシステム。
  18. 前記メッシュインターコネクトに結合され、前記メッシュインターコネクトへの性能状態変化に先立って前記メッシュインターコネクト上に残っている1つ以上のメッセージを格納するキューであり、前記性能状態変化は動作電圧及び/又は周波数の変化を有する、を更に有する請求項17に記載のシステム。
  19. 前記電力コントローラは、前記メッシュインターコネクトの前記動作電圧が第2の閾値レベルを超えるときには、前記複数のパイプ段回路に単一サイクル構成で動作させ、前記メッシュインターコネクトの前記動作電圧が前記第2の閾値レベル未満であるときには、前記複数のパイプ段回路に複数サイクル構成で動作させる、請求項17又は18に記載のシステム。
  20. 前記電力コントローラは、前記垂直メッシュ及び前記水平メッシュに第1性能状態で動作させ、前記複数のメッシュストップに第2性能状態で動作させ、前記第1性能状態は前記第2性能状態よりも低い、請求項17乃至19のいずれか一項に記載のシステム。
  21. 各々が命令を実行するための複数の処理手段と、
    前記複数の処理手段を結合するための相互接続手段であり、当該相互接続手段は、
    前記複数の処理手段のうちの第1の処理手段と前記複数の処理手段のうちの第2の処理手段との間に結合されるパイプ段手段であり、
    当該相互接続手段を介して信号を受信する第1の入力と、前記信号を出力する第1の出力とを持つパイプ段コンポーネントと、
    前記パイプ段コンポーネントの前記第1の出力から前記信号を受信するための第1の入力と、バイパス経路を介して前記信号を受信するための第2の入力とを持つ選択手段であり、当該選択手段は、制御信号に基づいて、複数サイクル構成を介して前記パイプ段コンポーネントの前記第1の出力から受信される前記信号又は単一サイクル構成を介して前記バイパス経路を介して受信される前記信号を出力するように、動的に制御可能であり、前記複数サイクル構成における前記パイプ段コンポーネントの動作は、前記単一サイクル構成における前記パイプ段コンポーネントの動作よりも低い電圧レベルにおいてである、選択手段と、
    を有するパイプ段手段、
    を有する、
    装置。
  22. 前記選択手段は、前記バイパス経路を介して受信される前記信号に対して遅延された前記信号を前記パイプ段コンポーネントから受信する、請求項21に記載の装置。
  23. 前記相互接続手段は、
    複数のメッシュストップを持つメッシュインターコネクト手段と、
    前記複数のメッシュストップのうちの少なくとも一部の間に介在する複数のパイプ段手段と、
    を有する、請求項22に記載の装置。
JP2021549813A 2019-03-26 2020-03-04 適応的な相互接続ルーティングのためのシステム、装置及び方法 Active JP7495422B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/364,619 2019-03-26
US16/364,619 US11256657B2 (en) 2019-03-26 2019-03-26 System, apparatus and method for adaptive interconnect routing
PCT/US2020/020927 WO2020197725A1 (en) 2019-03-26 2020-03-04 System, apparatus and method for adaptive interconnect routing

Publications (2)

Publication Number Publication Date
JP2022526224A JP2022526224A (ja) 2022-05-24
JP7495422B2 true JP7495422B2 (ja) 2024-06-04

Family

ID=72607837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021549813A Active JP7495422B2 (ja) 2019-03-26 2020-03-04 適応的な相互接続ルーティングのためのシステム、装置及び方法

Country Status (7)

Country Link
US (1) US11256657B2 (ja)
EP (1) EP3948553A4 (ja)
JP (1) JP7495422B2 (ja)
KR (1) KR20210133221A (ja)
CN (1) CN113366458A (ja)
BR (1) BR112021016708A2 (ja)
WO (1) WO2020197725A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210168578A1 (en) * 2020-12-23 2021-06-03 Intel Corporation Apparatus, system and method of communicating audio traffic over a bluetooth link
CN117235007B (zh) * 2023-11-13 2024-01-26 中科芯磁科技(珠海)有限责任公司 互连模块控制方法、互连模块及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161943A1 (en) 2008-12-19 2010-06-24 Electronics And Telecommunications Research Institute Processor capable of power consumption scaling
US20150134870A1 (en) 2013-11-08 2015-05-14 Altera Corporation Clocking for pipelined routing
JP2016502700A (ja) 2012-10-18 2016-01-28 クアルコム,インコーポレイテッド プロセッサベースシステムハイブリッドリングバス相互接続、ならびに関連デバイス、プロセッサベースシステム、および方法

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163153A (en) 1989-06-12 1992-11-10 Grid Systems Corporation Low-power, standby mode computer
JP3159345B2 (ja) * 1993-07-02 2001-04-23 日本電気株式会社 パイプライン演算処理装置
US5522087A (en) 1994-03-22 1996-05-28 Verifone Inc. System for selectively operating in different modes depending upon receiving signal from a host computer within a time window upon power up
US5590341A (en) 1994-09-30 1996-12-31 Intel Corporation Method and apparatus for reducing power consumption in a computer system using ready delay
US5621250A (en) 1995-07-31 1997-04-15 Ford Motor Company Wake-up interface and method for awakening an automotive electronics module
US5931950A (en) 1997-06-17 1999-08-03 Pc-Tel, Inc. Wake-up-on-ring power conservation for host signal processing communication system
JP3449186B2 (ja) 1997-08-19 2003-09-22 富士通株式会社 パイプラインバイパス機能を有するデータ処理装置
US6823516B1 (en) 1999-08-10 2004-11-23 Intel Corporation System and method for dynamically adjusting to CPU performance changes
US7539885B2 (en) 2000-01-13 2009-05-26 Broadcom Corporation Method and apparatus for adaptive CPU power management
US7010708B2 (en) 2002-05-15 2006-03-07 Broadcom Corporation Method and apparatus for adaptive CPU power management
JP2001318742A (ja) 2000-05-08 2001-11-16 Mitsubishi Electric Corp コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
KR100361340B1 (ko) 2000-05-15 2002-12-05 엘지전자 주식회사 씨피유 클럭 제어 방법
US6792392B1 (en) 2000-06-30 2004-09-14 Intel Corporation Method and apparatus for configuring and collecting performance counter data
US6748546B1 (en) 2000-09-26 2004-06-08 Sun Microsystems, Inc. Method and apparatus for reducing power consumption
US7093107B2 (en) 2000-12-29 2006-08-15 Stmicroelectronics, Inc. Bypass circuitry for use in a pipelined processor
US6829713B2 (en) 2000-12-30 2004-12-07 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US7058824B2 (en) 2001-06-15 2006-06-06 Microsoft Corporation Method and system for using idle threads to adaptively throttle a computer
US20030061383A1 (en) 2001-09-25 2003-03-27 Zilka Anthony M. Predicting processor inactivity for a controlled transition of power states
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US6996728B2 (en) 2002-04-26 2006-02-07 Hewlett-Packard Development Company, L.P. Managing power consumption based on utilization statistics
US7051227B2 (en) 2002-09-30 2006-05-23 Intel Corporation Method and apparatus for reducing clock frequency during low workload periods
US6898689B2 (en) 2002-11-15 2005-05-24 Silicon Labs Cp, Inc. Paging scheme for a microcontroller for extending available register space
US7043649B2 (en) 2002-11-20 2006-05-09 Portalplayer, Inc. System clock power management for chips with multiple processing modules
US6971033B2 (en) 2003-01-10 2005-11-29 Broadcom Corporation Method and apparatus for improving bus master performance
KR20050115227A (ko) 2003-01-23 2005-12-07 유니버시티 오브 로체스터 다중 클록 도메인 마이크로프로세서
JP4061492B2 (ja) 2003-02-10 2008-03-19 ソニー株式会社 情報処理装置および消費電力制御方法
US7730284B2 (en) 2003-03-19 2010-06-01 Koninklijke Philips Electronics N.V. Pipelined instruction processor with data bypassing and disabling circuit
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US7272732B2 (en) 2003-06-30 2007-09-18 Hewlett-Packard Development Company, L.P. Controlling power consumption of at least one computer system
TW200502847A (en) 2003-07-08 2005-01-16 Benq Corp Control device and method for reducing number of interrupts in a processor
US7146514B2 (en) 2003-07-23 2006-12-05 Intel Corporation Determining target operating frequencies for a multiprocessor system
US7272730B1 (en) 2003-07-31 2007-09-18 Hewlett-Packard Development Company, L.P. Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform
US7194643B2 (en) 2003-09-29 2007-03-20 Intel Corporation Apparatus and method for an energy efficient clustered micro-architecture
US7770034B2 (en) 2003-12-16 2010-08-03 Intel Corporation Performance monitoring based dynamic voltage and frequency scaling
US7451333B2 (en) 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US20070156992A1 (en) 2005-12-30 2007-07-05 Intel Corporation Method and system for optimizing latency of dynamic memory sizing
US9001801B2 (en) 2004-09-07 2015-04-07 Broadcom Corporation Method and system for low power mode management for complex Bluetooth devices
US7941585B2 (en) 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US7426648B2 (en) 2004-09-30 2008-09-16 Intel Corporation Global and pseudo power state management for multiple processing elements
US7434073B2 (en) 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US8041967B2 (en) 2005-02-15 2011-10-18 Hewlett-Packard Development Company, L.P. System and method for controlling power to resources based on historical utilization data
US7454632B2 (en) 2005-06-16 2008-11-18 Intel Corporation Reducing computing system power through idle synchronization
US7430673B2 (en) 2005-06-30 2008-09-30 Intel Corporation Power management system for computing platform
US8301868B2 (en) 2005-09-23 2012-10-30 Intel Corporation System to profile and optimize user software in a managed run-time environment
US20070079294A1 (en) 2005-09-30 2007-04-05 Robert Knight Profiling using a user-level control mechanism
US20070106827A1 (en) 2005-11-08 2007-05-10 Boatright Bryan D Centralized interrupt controller
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US7437270B2 (en) 2006-03-30 2008-10-14 Intel Corporation Performance state management
US8086832B2 (en) * 2006-05-19 2011-12-27 International Business Machines Corporation Structure for dynamically adjusting pipelined data paths for improved power management
US7752468B2 (en) 2006-06-06 2010-07-06 Intel Corporation Predict computing platform memory power utilization
US9323311B2 (en) * 2006-06-22 2016-04-26 Broadcom Corporation Method and system for packet based signaling between A Mac and A PHY to manage energy efficient network devices and/or protocols
US7529956B2 (en) 2006-07-17 2009-05-05 Microsoft Corporation Granular reduction in power consumption
US7930564B2 (en) 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
JP2008107983A (ja) 2006-10-24 2008-05-08 Nec Electronics Corp キャッシュメモリ
US7730340B2 (en) 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
WO2008117133A1 (en) 2007-03-26 2008-10-02 Freescale Semiconductor, Inc. Anticipation of power on of a mobile device
JP2008257578A (ja) 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
US7971074B2 (en) 2007-06-28 2011-06-28 Intel Corporation Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system
US7971043B2 (en) * 2007-11-22 2011-06-28 Andes Technology Corporation Electronic system and method for changing number of operation stages of a pipeline
US20090150696A1 (en) 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US7966506B2 (en) 2007-12-12 2011-06-21 Intel Corporation Saving power in a computer system
US8442697B2 (en) 2007-12-18 2013-05-14 Packet Digital Method and apparatus for on-demand power management
KR101459140B1 (ko) 2007-12-26 2014-11-07 엘지전자 주식회사 전원관리 제어 장치 및 방법
US7945765B2 (en) * 2008-01-31 2011-05-17 International Business Machines Corporation Method and structure for asynchronous skip-ahead in synchronous pipelines
US8156362B2 (en) 2008-03-11 2012-04-10 Globalfoundries Inc. Hardware monitoring and decision making for transitioning in and out of low-power state
US8954977B2 (en) 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
US8700943B2 (en) 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US8949637B2 (en) 2011-03-24 2015-02-03 Intel Corporation Obtaining power profile information with low overhead
US8769316B2 (en) 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
US8954770B2 (en) 2011-09-28 2015-02-10 Intel Corporation Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin
US8914650B2 (en) 2011-09-28 2014-12-16 Intel Corporation Dynamically adjusting power of non-core processor circuitry including buffer circuitry
US9074947B2 (en) 2011-09-28 2015-07-07 Intel Corporation Estimating temperature of a processor core in a low power state without thermal sensor information
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US8832478B2 (en) 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
US9436245B2 (en) 2012-03-13 2016-09-06 Intel Corporation Dynamically computing an electrical design point (EDP) for a multicore processor
WO2013137859A1 (en) 2012-03-13 2013-09-19 Intel Corporation Providing energy efficient turbo operation of a processor
WO2013137862A1 (en) 2012-03-13 2013-09-19 Intel Corporation Dynamically controlling interconnect frequency in a processor
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US8935578B2 (en) * 2012-09-29 2015-01-13 Intel Corporation Method and apparatus for optimizing power and latency on a link
WO2017203656A1 (ja) * 2016-05-26 2017-11-30 オリンパス株式会社 演算装置、画像処理装置および画像処理方法
US10320386B1 (en) * 2017-12-08 2019-06-11 Xilinx, Inc. Programmable pipeline interface circuit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161943A1 (en) 2008-12-19 2010-06-24 Electronics And Telecommunications Research Institute Processor capable of power consumption scaling
JP2016502700A (ja) 2012-10-18 2016-01-28 クアルコム,インコーポレイテッド プロセッサベースシステムハイブリッドリングバス相互接続、ならびに関連デバイス、プロセッサベースシステム、および方法
US20150134870A1 (en) 2013-11-08 2015-05-14 Altera Corporation Clocking for pipelined routing

Also Published As

Publication number Publication date
EP3948553A4 (en) 2022-12-14
WO2020197725A1 (en) 2020-10-01
KR20210133221A (ko) 2021-11-05
EP3948553A1 (en) 2022-02-09
US20200311018A1 (en) 2020-10-01
BR112021016708A2 (pt) 2021-10-13
CN113366458A (zh) 2021-09-07
JP2022526224A (ja) 2022-05-24
US11256657B2 (en) 2022-02-22

Similar Documents

Publication Publication Date Title
US11435816B2 (en) Processor having accelerated user responsiveness in constrained environment
CN109564526B (zh) 使用封装和线程提示信息的组合来控制处理器的性能状态
JP7553182B2 (ja) プロセッサのパワーライセンス制御のためのシステム、装置、および方法
US11481013B2 (en) Multi-level loops for computer processor control
US20180314289A1 (en) Modifying an operating frequency in a processor
US11669146B2 (en) System, apparatus and method for responsive autonomous hardware performance state control of a processor
US20160224090A1 (en) Performing context save and restore operations in a processor
CN109791427B (zh) 使用滑动平均值的处理器电压控制
CN109661637B (zh) 用于可变功率轨的补偿控制
EP3340039A1 (en) Processor prefetch throttling based on short streams
JP7495422B2 (ja) 適応的な相互接続ルーティングのためのシステム、装置及び方法
CN108694154B (zh) 用于选择数据元素的硬件加速器
US11593544B2 (en) System, apparatus and method for adaptive operating voltage in a field programmable gate array (FPGA)
CN109478086B (zh) 至少部分地基于平台电容来控制处理器的电流消耗
CN108228484B (zh) 针对处理器中的高速缓存利用的无效读取

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240523

R150 Certificate of patent or registration of utility model

Ref document number: 7495422

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150