JP2017511529A - リンクインタフェースの使用されていないハードウェアの電力消費を制御するための方法、装置及びシステム - Google Patents

リンクインタフェースの使用されていないハードウェアの電力消費を制御するための方法、装置及びシステム Download PDF

Info

Publication number
JP2017511529A
JP2017511529A JP2016553359A JP2016553359A JP2017511529A JP 2017511529 A JP2017511529 A JP 2017511529A JP 2016553359 A JP2016553359 A JP 2016553359A JP 2016553359 A JP2016553359 A JP 2016553359A JP 2017511529 A JP2017511529 A JP 2017511529A
Authority
JP
Japan
Prior art keywords
hardware
link
maximum
logic
value
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.)
Granted
Application number
JP2016553359A
Other languages
English (en)
Other versions
JP6321194B2 (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 JP2017511529A publication Critical patent/JP2017511529A/ja
Application granted granted Critical
Publication of JP6321194B2 publication Critical patent/JP6321194B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

一実施形態では、複数のハードウェアバッファは各々が、1以上の仮想チャネルに関連付けられた情報を記憶することができる。そして、構成ロジックは、リンクを介して結合される第1のデバイス及び第2のデバイスによって共通してサポートされる仮想チャネルの最大数に対応する識別子を決定し、この識別子に基づいて制御値を得る。構成ロジックに結合されたゲートロジックは、制御値に基づいて、ハードウェアバッファのうちの対応するものに動作電圧を供給する。このようにして、動作電圧は、仮想チャネルの最大数が複数のハードウェアバッファ未満であるとき、ハードウェアバッファのうちの少なくとも1つに対し動作電圧を差し止めることができる。他の実施形態が説明され、特許請求される。

Description

本開示は、コンピューティングシステムに関し、(限定ではないが)特に、そのようなシステムにおけるリンクインタフェース(link interface)の電力管理に関する。
マルチコアプロセッサを含むコンピューティングシステムのためのブロック図の一実施形態である。 1組のコンポーネントを相互接続するポイントツーポイントリンクで構成されるファブリックの一実施形態である。 階層化プロトコルスタックの一実施形態である。 PCIeトランザクション記述子の一実施形態である。 PCIeシリアルポイントツーポイントファブリックの一実施形態である。 一実施形態によるSoC設計のブロック図である。 本発明の一実施形態によるシステムのブロック図である。 本発明の一実施形態による構成方法の流れ図である。 一実施形態による構成ストレージのブロック図である。 一実施形態による電圧制御回路の一部分のブロック図である。 一実施形態によるシステムの一部分のブロック図である。
以下の説明において、本発明の完全な理解をもたらすために、特定のタイプのプロセッサ及びシステム構成、特定のハードウェア構造、特定のアーキテクチャ及びマイクロアーキテクチャの詳細、特定のレジスタ構成、特定の命令タイプ、特定のシステムコンポーネント、特定の測定値/高さ、特定のプロセッサパイプラインステージ及び動作の例等の多数の特定の詳細が示される。しかしながら、当業者には、これらの特定の詳細が、本発明を実施するのに用いられる必要がないことが明らかであろう。他の例では、特定の及び代替的なプロセッサアーキテクチャ、説明されるアルゴリズムのための特定の論理回路/コード、特定のファームウェアコード、特定のインターコネクト動作、特定の論理構成、特定の製造技法及び材料、特定のコンパイラ実装、コードでのアルゴリズムの特定の表現、特定のパワーダウン及びパワーゲーティング技法/ロジック、並びにコンピューティングシステムの他の特定の動作の詳細等の、よく知られたコンポーネント又は方法は、本発明を不要に曖昧にすることを回避するために、詳細に説明されていない。
以下の実施形態は、コンピューティングプラットフォーム又はマイクロプロセッサ等の特定の集積回路におけるエネルギー節減(energy conservation)及びエネルギー効率(energy efficiency)を参照して説明される場合があるが、他の実施形態は、他のタイプの集積回路及び論理デバイスに適用可能である。本明細書において説明される実施形態の同様の技法及び教示は、より良好なエネルギー効率及びエネルギー節減から同様に利益を受けることができる他のタイプの回路又は半導体デバイスに適用することができる。例えば、開示される実施形態は、デスクトップコンピュータシステム又はUltrabook(商標)に限定されない。また、ハンドヘルドデバイス、タブレット、他の薄型ノートブック、システムオンチップ(SOC)デバイス及び埋込みアプリケーション等の他のデバイスにおいて用いられる場合もある。ハンドヘルドデバイスのいくつかの例は、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末(PDA)及びハンドヘルドPCを含む。埋込みアプリケーションは通常、マイクロコントローラ、デジタル信号プロセッサ(DSP)、システムオンチップ、ネットワークコンピュータ(NetPC)、セットトップボックス、ネットワークハブ、広域ネットワーク(WAN)スイッチ、又は以下で教示する機能及び動作を実行することができる任意の他のシステムを含む。更に、本明細書において記載される装置、方法及びシステムは、物理的なコンピューティングデバイスに限定されず、エネルギー節減及びエネルギー効率のためのソフトウェア最適化にも関係することができる。以下の説明において容易に明らかとなるように、本明細書に記載される方法、装置及びシステムの実施形態は(ハードウェア、ファームウェア、ソフトウェア又はそれらの組合せのいずれにおいて参照されていようと)、性能の懸案事項とバランスをとられた「グリーンテクノロジー(green technology)」に不可欠である。
コンピューティングシステムの進歩に伴い、コンピューティングシステム内のコンポーネントがより複雑になっている。結果として、最適なコンポーネント動作のための帯域幅要件が満たされることを確実にするために、コンポーネント間で結合し通信するためのインターコネクトアーキテクチャもますます複雑になっている。更に、様々な市場区分は、インターコネクトアーキテクチャの様々な態様が市場の需要に適合することを求める。例えば、サーバはより高い性能を要求する一方、モバイルエコシステムは、場合によっては、電力節減のために全体性能を犠牲にすることができる。しかし、電力節減を最大にしながら、可能な限り最高の性能を提供することがほとんどのファブリックの単一の目的である。以下において、本明細書において記載される本発明の態様から潜在的に利益を得る複数のインターコネクト(interconnect)が検討される。
図1を参照すると、マルチコアプロセッサを含むコンピューティングシステムのためのブロック図の一実施形態が示されている。プロセッサ100は、マイクロプロセッサ、埋込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システムオンチップ(SOC)又はコードを実行する他のデバイス等の任意のプロセッサ又は処理デバイスを含む。1つの実施形態では、プロセッサ100は、少なくとも2つのコア、コア101及び102を含む。これは、非対称コア又は対称コア(示す実施形態)を含むことができる。一方、プロセッサ100は、対称又は非対称とすることができる任意の数の処理要素を含むことができる。
1つの実施形態では、処理要素は、ソフトウェアスレッドをサポートするハードウェア又はロジックを指す。ハードウェア処理要素の例は、スレッドユニット、スレッドスロット、スレッド、プロセスユニット、コンテキスト、コンテキストユニット、論理プロセッサ、ハードウェアスレッド、コア、及び/又は、実行状態若しくは構造的状態等のプロセッサの状態を保持することが可能な任意の他の要素を含む。換言すれば、1つの実施形態では、処理要素は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション又は他のコード等のコードに独立して関連付けられることが可能な任意のハードウェアを指す。物理プロセッサ(又はプロセッサソケット)は通常、コア又はハードウェアスレッド等の潜在的に任意の数の他の処理要素を含む集積回路を指す。
コアは、多くの場合、独立した構造的状態を維持することが可能な集積回路上に位置するロジックを指す。独立して維持される各構造的状態は、少なくともいくつかの専用実行リソースに関連付けられる。コアと対照的に、ハードウェアスレッドは通常、独立した構造的状態を維持することが可能な集積回路上に位置する任意のロジックを指し、独立して維持される構造的状態は、実行リソースへのアクセスを共有する。見てわかるように、一定のリソースが共有され、他のリソースが構造的状態に専用であるとき、ハードウェアスレッド及びコアの用語間の境界線は重複する。更に多くの場合に、コア及びハードウェアスレッドは、オペレーティングシステムによって、個々の論理プロセッサとみなされ、ここで、オペレーティングシステムは、各論理プロセッサにおいて動作を個々にスケジューリングすることが可能である。
図1に示すように、物理プロセッサ100は、2つのコア、コア101及び102を含む。ここで、コア101及び102は、対称コア、すなわち、同じ構成、機能ユニット及び/又はロジックを有するコアとみなされる。別の実施形態では、コア101はアウトオブオーダプロセッサコアを含むのに対し、コア102はインオーダプロセッサコアを含む。一方、コア101及び102は、ネイティブコア、ソフトウェア管理コア、ネイティブ命令セットアーキテクチャ(ISA:Instruction Set Architecture)を実行するように適合されたコア、変換された命令セットアーキテクチャ(ISA)を実行するように適合されたコア、共同設計されたコア、又は他の既知のコア等の任意のタイプのコアから個々に選択することができる。異種のコア環境(すなわち、非対称コア)において、バイナリ変換等の、ある形態の変換を利用して、一方又は双方のコアにおいてコードをスケジューリング又は実行することができる。また更に検討を進めて、コア101に示す機能ユニットが以下で更に詳細に説明され、コア102内のユニットは示される実施形態において同様に動作する。
示されるように、コア101は、ハードウェアスレッドスロット101a及び101bと呼ばれる場合もある2つのハードウェアスレッド101a及び101bを含む。したがって、1つの実施形態において、オペレーティングシステム等のソフトウェアエンティティは、潜在的に、プロセッサ100を4つの別個のプロセッサ、すなわち、4つのソフトウェアスレッドを同時に実行することが可能な4つの論理プロセッサ又は処理要素とみなす。上記で示唆したように、第1のスレッドは、アーキテクチャ状態レジスタ101aに関連付けられ、第2のスレッドはアーキテクチャ状態レジスタ101bに関連付けられ、第3のスレッドはアーキテクチャ状態レジスタ102aに関連付けることができ、第4のスレッドはアーキテクチャ状態レジスタ102bに関連付けることができる。ここで、上記で説明したように、アーキテクチャ状態レジスタ(101a、101b、102a及び102b)の各々を、処理要素、スレッドスロット又はスレッドユニットと呼ぶことができる。示すように、アーキテクチャ状態レジスタ101aは、アーキテクチャ状態レジスタ101bにおいて複製され、このため、個々のアーキテクチャ状態/コンテキストが、論理プロセッサ101a及び論理プロセッサ101bのために記憶されることが可能である。コア101において、アロケータ及びリネーマブロック130における命令ポインタ及びリネームロジック等の他のより小さなリソースも、スレッド101a及び101bのために複製することができる。リオーダ/リタイアメントユニット135におけるリオーダバッファ、ILTB120、ロード/記憶バッファ及びキュー等のいくつかのリソースを、分割を通じて共有することができる。汎用内部レジスタ、ページテーブルベースレジスタ、低レベルデータキャッシュ及びデータTLB115、実行ユニット140、及びアウトオブオーダユニット135の部分等の他のリソースが潜在的に完全に共有される。
プロセッサ100は、多くの場合に他のリソースを含み、これらは完全に共有されるか、分割を通じて共有されるか、又は処理要素によって/に専用にすることができる。図1において、プロセッサの例示的な論理ユニット/リソースを有する単なる例示的なプロセッサの一実施形態が示されている。プロセッサは、これらの機能ユニットのうちの任意のものを含むか又は省くことができ、示されていない任意の他の既知の機能ユニット、ロジック又はファームウェアを含むことができることに留意されたい。示されるように、コア101は、単純化された、代表的なアウトオブオーダ(OOO)プロセッサコアを含む。しかし、様々な実施形態においてインオーダプロセッサを利用することができる。OOOコアは、実行/取得されるブランチを予測するブランチターゲットバッファ120を含み、命令のアドレス変換エントリを記憶する命令変換バッファ(I−TLB)120を含む。
コア101は、フェッチされた要素をデコードするためにフェッチユニット120に結合されたデコードモジュール125を更に含む。フェッチロジックは、1つの実施形態では、それぞれスレッドスロット101a、101bに関連付けられた個々のシーケンサを含む。通常、コア101は第1のISAに関連付けられている。第1のISAは、プロセッサ100上で実行可能な命令を定義/指定する。第1のISAの一部であるマシンコード命令は、多くの場合、実行される命令又は動作を参照/指定する命令の一部分(opcodeと呼ばれる)を含む。デコードロジック125は、これらの命令をopcodeから認識し、デコードされた命令を第1のISAによって定義されているように処理のためのパイプラインに通す回路部を含む。例えば、以下で更に詳細に検討するように、デコーダ125は、1つの実施形態では、トランザクション命令等の特定の命令を認識するように設計又は適合されたロジックを含む。デコーダ125による認識の結果として、アーキテクチャ又はコア101は、適切な命令に関連付けられたタスクを実行する特定の予め定められた行動を行う。本明細書において説明されるタスク、ブロック、動作及び方法のうちの任意のものを、単一の又は複数の命令に応答して実行することができることに留意することが重要である。それらの命令のうちのいくつかは、新たな命令又は古い命令である場合がある。デコーダ126は、1つの実施形態では、同じISA(又はそのサブセット)を認識することに留意されたい。代替的に、異種のコア環境では、デコーダ126は第2のISA(第1のISAのサブセット又は別個のISA)を認識する。
1つの例では、アロケータ又はリネーマブロック130は、命令処理結果を記憶するレジスタファイル等のリソースを予約するためのアロケータを含む。一方、スレッド101a及び101bは、潜在的に、アウトオブオーダ実行が可能であり、この場合、アロケータ及びリネーマブロック130も、命令結果を追跡するためのリオーダバッファ等の他のリソースを予約する。ユニット130も、プロセッサ100の内部の他のレジスタに対するプログラム/命令基準レジスタをリネームするレジスタリネーマを含むことができる。リオーダ/リタイアメントユニット135は、アウトオブオーダ実行、及び後の、アウトオブオーダ実行された命令のインオーダリタイアメントをサポートするための、上述したリオーダバッファ、ロードバッファ及びストアバッファ等のコンポーネントを含む。
スケジューラ及び実行ユニットブロック140は、1つの実施形態では、実行ユニット上で命令/動作をスケジューリングするスケジューラユニットを含む。例えば、浮動小数点命令が、利用可能な浮動小数点実行ユニットを有する実行ユニットのポート上でスケジューリングされる。実行ユニットに関連付けられたレジスタファイルも、情報命令処理結果を記憶するために含まれる。例示的な実行ユニットは、浮動小数点実行ユニットと、整数実行ユニットと、ジャンプ実行ユニットと、ロード実行ユニットと、ストア実行ユニットと、他の既知の実行ユニットとを含む。
低レベルデータキャッシュ及びデータ変換バッファ(D−TLB)150は実行ユニット140に結合される。データキャッシュは、潜在的にメモリコヒーレンシ状態に保持されているデータオペランド等の最近使用/操作された要素を記憶するためのものである。D−TLBは、最近の仮想/リニア対物理アドレス変換を記憶するためのものである。特定の例として、プロセッサは、物理メモリを複数の仮想ページに分割するページテーブル構造を含むことができる。
ここで、コア101及び102は、オンチップインタフェース110に関連付けられた第2のレベルのキャッシュ等のより高レベルの又は更に外側のキャッシュへのアクセスを共有する。より高レベル又は更に外側とは、キャッシュレベルが実行ユニットから増大するか又は離れることを指すことに留意されたい。1つの実施形態では、より高レベルのキャッシュは、第2の又は第3のレベルのデータキャッシュ等の、最終レベルデータキャッシュ、すなわち、プロセッサ100におけるメモリ階層における最後のキャッシュである。一方、より高いレベルのキャッシュはそれほど限定されていない。なぜなら、このキャッシュは命令キャッシュに関連付けられるか又は命令キャッシュを含むことができるためである。代わりに、トレースキャッシュ、すなわち命令キャッシュの一タイプをデコーダ125が最近デコードされたトレースを記憶した後に結合することができる。ここで、命令は、潜在的にマクロ命令(すなわち、デコーダによって認識される一般的な命令)を指す。マクロ命令は、複数のマイクロ命令(マイクロ演算)にデコードすることができる。
示される構成では、プロセッサ100は、オンチップインタフェースモジュール110も含む。従来から、以下でより詳細に説明されるメモリコントローラが、プロセッサ100の外部のコンピューティングシステムに含まれていた。このシナリオでは、オンチップインタフェース110が、システムメモリ175、チップセット(多くの場合、メモリ175に接続するためのメモリコントローラハブ及び周辺デバイスに接続するためのI/Oコントローラハブを含む)、メモリコントローラハブ、ノースブリッジ又は他の集積回路等の、プロセッサ100の外部のデバイスと通信するためのものである。そしてこのシナリオでは、バス105は、マルチドロップバス、ポイントツーポイントインターコネクト、シリアルインターコネクト、パラレルバス、コヒーレント(例えば、キャッシュコヒーレント)バス、階層化プロトコルアーキテクチャ、差動バス及びGTLバス等の任意の既知のインターコネクトを含むことができる。
メモリ175は、プロセッサ100に専用とすることもできるし、又はシステム内の他のデバイスと共有することもできる。メモリ175のタイプの一般的な例は、DRAM、SRAM、不揮発性メモリ(NVメモリ)及び他の既知のストレージデバイスを含む。デバイス180は、グラフィックアクセラレータ、メモリコントローラハブに結合されたプロセッサ若しくはカード、I/Oコントローラハブに結合されたデータストレージ、無線送受信機、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ又は他の既知のデバイスを含むことができることに留意されたい。
一方、最近、より多くのロジック及びデバイスがSOC等の単一のダイ上に集積されているため、これらのデバイスの各々をプロセッサ100上に組み込むことができる。例えば、1つの実施形態では、メモリコントローラハブは、プロセッサ100と同じパッケージ及び/又はダイ上にある。ここで、コアの一部分(オンコア部分)110は、メモリ175又はグラフィックデバイス180等の他のデバイスとインタフェースするための1以上のコントローラを含む。そのようなデバイスとインタフェースするためのインターコネクト及びコントローラを含む構成は、多くの場合、オンコア(又はアンコア構成)と呼ばれる。例として、オンチップインタフェース110は、オンチップ通信のためのリングインターコネクト及びオフチップ通信のための高速シリアルポイントツーポイントリンク105を含む。しかし、SOC環境では、ネットワークインタフェース、コプロセッサ、メモリ175、グラフィックプロセッサ180及び任意の他の既知のコンピュータデバイス/インタフェース等の更に多くのデバイスを単一のダイ又は集積回路上に集積し、高い機能性及び低電力消費で小さなフォームファクタを提供することができる。
1つの実施形態では、プロセッサ100は、コンパイラ、最適化及び/又は変換器コード177を実行して、本明細書に記載される装置及び方法並びにそれらとのインタフェースをサポートするためのアプリケーションコード176をコンパイル、変換及び/又は最適化することができる。コンパイラは、多くの場合、ソーステキスト/コードをターゲットテキスト/コードに変換するプログラム又は1組のプログラムを含む。通例、コンパイラを用いたプログラム/アプリケーションコードのコンパイルは、複数のフェーズ及びパスで行われ、高レベルプログラミング言語コードを低レベルのマシン又はアセンブリ言語コードに変換する。しかし、単純なコンパイルのために依然としてシングルパスコンパイラが用いられる場合がある。コンパイラは、任意の既知のコンパイル技法を利用して、語彙解析、前処理、パース、意味解析、コード生成、コード変換及びコード最適化等の任意の既知のコンパイラ動作を実行することができる。
より大型のコンパイラは、多くの場合、複数のフェーズを含むが、最も多くの場合、これらのフェーズは大まかな2つのフェーズ、すなわち、(1)フロントエンド、すなわち、通常、構文処理、意味処理及びいくつかの変換/最適化を行うことができるところと、(2)バックエンド、すなわち、解析、変換、最適化及びコード生成を行うところと、に含まれる。いくつかのコンパイラは、コンパイラのフロントエンドとバックエンドとの間の境界が曖昧であることを示す中間を指す。結果として、コンパイラの挿入、関連付け、生成又は他の動作の参照を、上述したフェーズ又はパスのうちの任意のもの、及びコンパイラの任意の他の既知のフェーズ又はパスにおいて行うことができる。説明のための例として、コンパイラは、コンパイルのフロントエンドフェーズにおけるコール/オペレーション(call/operation)の挿入等、コンパイルの1以上のフェーズにおける動作、コール、機能等を潜在的に挿入し、次に、変換フェーズ中にコール/オペレーションをより低レベルのコードに変換する。動的コンパイル中、コンパイラコード又は動的最適化コードは、そのようなオペレーション/コールを挿入し、ランタイム中の実行のためにコードを最適化することができることに留意されたい。説明のための特定の例として、バイナリコード(既にコンパイルされたコード)は、ランタイム中に動的に最適化することができる。ここで、プログラムコードは、動的最適化コード、バイナリコード又はこれらの組合せを含むことができる。
コンパイラと同様に、バイナリ変換器等の変換器は、コードを静的又は動的に変換してコードを最適化及び/又は変換する。したがって、コード、アプリケーションコード、プログラムコード又は他のソフトウェア環境の実行の参照は、(1)コンパイラプログラム、最適化コードオプティマイザ又は変換器を動的又は静的に実行して、プログラムコードをコンパイルするか、ソフトウェア構造を維持するか、他の動作を実行するか、コードを最適化するか若しくはコードを変換すること、(2)最適化/コンパイルされたアプリケーションコード等のオペレーション/コールを含むメインプログラムコードを実行すること、(3)メインプログラムコードに関連付けられたライブラリ等の他のプログラムコードを実行して、ソフトウェア構造を維持するか、他のソフトウェア関連動作を実行するか若しくはコードを最適化すること、又は(4)それらの組合せ、を指すことができる。
1つのインターコネクトファブリックアーキテクチャは、PCIeアーキテクチャを備える。PCIeの主な目標は、複数の市場区分、すなわち、クライアント(デスクトップ及びモバイル)、サーバ(標準及び企業)、並びに埋込みデバイス及び通信デバイスにまたがって、様々なベンダからのコンポーネント及びデバイスがオープンアーキテクチャにおいて相互運用することを可能にすることである。PCI Expressは、多岐にわたる未来の計算及び通信プラットフォームについて定義される高性能の汎用I/Oインターコネクトである。使用モデル、ロード−ストアアーキテクチャ及びソフトウェアインタフェース等のいくつかのPCI属性がその改訂を通じて維持されているのに対し、以前のパラレルバス実装は、高度にスケーリング可能で完全にシリアルのインタフェースに置き換えられている。PCI Expressのより近時のバージョンは、ポイントツーポイントインターコネクト、スイッチベースの技術及びパケット化されたプロトコルにおける進歩を利用して、新たなレベルの性能及び特徴をもたらしている。電力管理、サービス品質(QoS)、ホットプラグ/ホットスワップサポート、データ完全性、エラーハンドリングが、PCI Expressによってサポートされる進化した数ある特徴のうちのいくつかである。
図2を参照すると、1組のコンポーネントをインターコネクトするポイントツーポイントリンクから構成されるファブリックの一実施形態が示されている。システム200は、コントローラハブ215に結合されたプロセッサ205及びシステムメモリ210を備える。プロセッサ205は、マイクロプロセッサ、ホストプロセッサ、埋込みプロセッサ、コプロセッサ又は他のプロセッサ等の任意の処理要素を含む。プロセッサ205は、フロントサイドバス(FSB)206を通じてコントローラハブ215に結合される。1つの実施形態では、FSB206は以下で説明するようなシリアルポイントツーポイントインターコネクトである。別の実施形態では、リンク206は、異なるインターコネクト規格に準拠する、シリアルの、異なるインターコネクトアーキテクチャを含む。
システムメモリ210は、ランダムアクセスメモリ(RAM)、不揮発性(NV)メモリ、又はシステム200内のデバイスによってアクセス可能な他のメモリ等の任意のメモリデバイスを含む。システムメモリ210は、メモリインタフェース216を通じてコントローラハブ215に結合される。メモリインタフェースの例は、ダブルデータレート(DDR)メモリインタフェース、デュアルチャネルDDRメモリインタフェース、及びダイナミックRAM(DRAM)メモリインタフェースを含む。
1つの実施形態では、コントローラハブ215は、周辺コンポーネントインターコネクトエクスプレス(PCIe又はPCIE)相互接続階層におけるルートハブ、ルートコンプレックス、又はルートコントローラである。コントローラハブ215の例は、チップセット、メモリコントローラハブ(MCH)、ノースブリッジ、インターコネクトコントローラハブ(ICH)、サウスブリッジ及びルートコントローラ/ハブを含む。多くの場合、チップセットという用語は、2つの物理的に別個のコントローラハブ、すなわち、インターコネクトコントローラハブ(ICH)に結合されたメモリコントローラハブ(MCH)を指す。現行のシステムは、多くの場合、プロセッサ205に一体化されたMCHを含む一方、コントローラ215は、以下で説明するのと同様の方式でI/Oデバイスと通信することに留意されたい。いくつかの実施形態では、ピアツーピアルーティングは、オプションでルートコンプレックス215を通じてサポートされる。
ここで、コントローラハブ215は、シリアルリンク219を通じてスイッチ/ブリッジ220に結合される。インタフェース/ポート217及び221とも呼ばれる場合がある入出力モジュール217及び221は、コントローラハブ215とスイッチ220との間で通信を提供するための階層化プロトコルスタックを含む/実装する。1つの実施形態では、複数のデバイスがスイッチに220結合されることが可能である。
スイッチ/ブリッジ220は、パケット/メッセージを、デバイス225からアップストリームに、すなわちルートコンプレックスに向かって階層を上がってコントローラハブ215へ、及びダウンストリームに、すなわち、ルートコントローラから離れるように階層を下がって、プロセッサ205又はシステムメモリ210からデバイス225へルーティングする。1つの実施形態において、スイッチ220は、複数の仮想PCI間ブリッジデバイスの論理アセンブリと呼ばれる。デバイス225は、I/Oデバイス、ネットワークインタフェースコントローラ(NIC)、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、ストレージデバイス、CD/DVD ROM、モニタ、プリンタ、マウス、キーボード、ルータ、ポータブルストレージデバイス、Firewireデバイス、ユニバーサルシリアルバス(USB)デバイス、スキャナ及び他の入出力デバイス等の電子システムに結合される任意の内部又は外部のデバイス又はコンポーネントを含む。PCIeにおいて多くの場合、デバイス等の専門語はエンドポイントと呼ばれる。詳細に示されていないが、デバイス225は、レガシPCIデバイス又は他のバージョンのPCIデバイスをサポートするためのPCIe対PCI/PCI−Xブリッジを含むことができる。PCIeにおけるエンドポイントデバイスは、多くの場合に、レガシ、PCIe又はルートコンプレックスが一体化されたエンドポイントとして分類される。
グラフィックアクセラレータ230もシリアルリンク232を通じてコントローラハブ215に結合される。1つの実施形態では、グラフィックアクセラレータ230はMCHに結合され、MCHはICHに結合される。そして、スイッチ220、及びこれに応じてI/Oデバイス225はICHに結合される。I/Oモジュール231及び218はまた、階層化プロトコルスタックを実装してグラフィックアクセラレータ230とコントローラハブ215との間で通信する。上記のMCHの検討と同様に、グラフィックコントローラ又はグラフィックアクセラレータ230自体がプロセッサ205に一体化されてもよい。
図3を参照すると、階層化プロトコルスタックの一実施形態が示されている。階層化プロトコルスタック300は、クイックパスインターコネクト(QPI)スタック、PCIeスタック、次世代高性能コンピューティングインターコネクトスタック又は他の階層化スタック等の任意の形態の階層化通信スタックを含む。図2〜図5を参照してすぐ下で行う検討は、PCIeスタックに関係しているが、同じ概念を他のインターコネクトスタックに適用してもよい。1つの実施形態では、プロトコルスタック300は、トランザクション層305、リンク層310及び物理層320を含むPCIeプロトコルスタックである。インタフェースは、通信プロトコルスタック300として表すことができる。通信プロトコルスタックとしての表現は、プロトコルスタックを実装する/含むモジュール又はインタフェースと呼ぶこともできる。
PCI Expressは、パケットを用いてコンポーネント間で情報を通信する。パケットは、送信コンポーネントから受信コンポーネントに情報を搬送するように、トランザクション層305及びデータリンク層310において形成される。送信されたパケットが他の層を通じて流れるとき、これらのパケットは、これらの層においてパケットを処理するのに必要な追加情報を用いて拡張される。受信側において、逆のプロセスが行われ、パケットは、それらの物理層320表現からデータリンク層310表現に変換され、最終的に(トランザクション層パケットの場合)、受信デバイスのトランザクション層305によって処理することができる形態に変換される。
1つの実施形態では、トランザクション層305は、デバイスの処理コアと、データリンク層310及び物理層320等のインターコネクトアーキテクチャとの間のインタフェースを提供する。これに関して、トランザクション層305の主な役割は、パケット(すなわち、トランザクション層パケット又はTLP)の組立て及び分解である。トランザクション層305は、通常、TLPのためのクレジットベースのフロー制御を管理する。PCIeは分割トランザクション、すなわち、時間で分かれたリクエスト及び応答を用いたトランザクションを実施し、ターゲットデバイスが応答のためのデータを収集する間にリンクが他のトラフィックを搬送することを可能にする。
加えて、PCIeはクレジットベースのフロー制御を利用する。この方式において、デバイスは、トランザクション層305内の受信バッファごとに初期クレジット量を公表する(advertise)。コントローラハブ等の、リンクの反対端の外部デバイスが、各TLPによって消費されるクレジット数をカウントする。トランザクションがクレジット限界を超えない場合、トランザクションを送信することができる。応答の受信時、クレジット量がリストアされる。クレジット方式の利点は、クレジット限界に達していないならば、クレジットの戻りのレイテンシが性能に影響を及ぼさないことである。
1つの実施形態では、4つのトランザクションアドレス空間が、構成アドレス空間、メモリアドレス空間、入出力アドレス空間及びメッセージアドレス区間を含む。メモリ空間トランザクションは、メモリによりマッピングされたロケーションに/からデータを転送するための読出しリクエスト及び書込みリクエストのうちの1以上を含む。1つの実施形態では、メモリ空間トランザクションは、2つの異なるアドレスフォーマット、例えば、32ビットアドレス等の短いアドレスフォーマット、又は64ビットアドレス等の長いアドレスフォーマットを用いることが可能である。構成空間トランザクションが、PCIeデバイスの構成空間にアクセスするために用いられる。構成空間へのトランザクションは、読出しリクエスト及び書込みリクエストを含む。メッセージ空間トランザクション(又は、単にメッセージ)は、PCIeエージェント間の帯域内通信をサポートするように定義される。
したがって、1つの実施形態では、トランザクション層805がパケットヘッダ/ペイロード806を組み立てる。現在のパケットヘッダ/ペイロードのためのフォーマットは、PCIe仕様ウェブサイトにおけるPCIe仕様において得ることができる。
図4を簡単に参照すると、PCIeトランザクション記述子の一実施形態が示されている。1つの実施形態において、トランザクション記述子(transaction descriptor)400は、トランザクション情報を搬送するためのメカニズムである。これに関して、トランザクション記述子400は、システム内のトランザクションの識別をサポートする。他の潜在的な使用は、デフォルトのトランザクション順序及びトランザクションとチャネルとの関連付けの変更の追跡を含む。
トランザクション記述子400は、グローバル識別子フィールド(global identifier field)402と、属性フィールド(attributes field)404と、チャネル識別子フィールド(channel identifier field)406とを含む。示される例において、ローカルトランザクション識別子フィールド(local transaction identifier field)408と、ソース識別子フィールド(source identifier field)410とを含むグローバル識別子フィールド402が示される。1つの実施形態において、グローバルトランザクション識別子402は全ての未処理のリクエストについて一意である。
1つの実施態様によれば、ローカルトランザクション識別子フィールド408は、リクエスト側エージェントによって生成されるフィールドであり、そのリクエスト側エージェントに対し完了を要求する全ての未処理のリクエストについて一意である。更に、この例では、ソース識別子410はPCIe階層内のリクエスト元エージェントを一意に識別する。したがって、ソースID410と共に、ローカルトランザクション識別子408フィールドは、階層ドメイン内のトランザクションのグローバル識別を提供する。
属性フィールド404は、トランザクションの特性及び関係を指定する。これに関して、属性フィールド404は、トランザクションのデフォルトのハンドリングの変更を可能にする追加の情報を提供するのに潜在的に用いられる。1つの実施形態では、属性フィールド404は、優先度フィールド(priority field)412と、予約済みフィールド(reserved field)414と、順序付けフィールド(ordering field)416と、非スヌープフィールド(no-snoop field)418とを含む。ここで、優先度サブフィールド412は、トランザクションに優先度を割り当てるようにイニシエータによって変更され得る。予約済み属性フィールド414は、未来のために、又はベンダが定義した使用のために予約済みのままにされる。優先度又はセキュリティ属性を用いた可能な使用モデルは、予約済み属性フィールドを用いて実施され得る。
この例では、順序付け属性フィールド416は、デフォルトの順序付け規則を変更することができる、順序付けタイプを伝達するオプション情報を供給するために用いられる。1つの実施態様によれば、順序付け属性「0」はデフォルトの順序付け規則が適用されることを示し、順序属性「1」は、緩和された順序付けを表す。緩和された順序付けでは、書込みは同じ方向の書込みをパスすることができ、読出し完了は同じ方向の書込みをパスすることができる。スヌープ属性フィールド418は、トランザクションがスヌープされているか否かを判断するのに利用される。示すように、チャネルIDフィールド406は、トランザクションが関連付けられているチャネルを識別する。
データリンク層310とも呼ばれるリンク層310は、トランザクション層305と物理層320との間の中間ステージとしての役割を果たす。1つの実施形態では、データリンク層310の役割は、リンクとして2つのコンポーネント間でトランザクション層パケット(TLP)を交換するための信頼性の高いメカニズムを提供することである。データリンク層310の一方の側は、トランザクション層305によって組み立てられたTLPを受容し、パケットシーケンス識別子311、すなわち識別番号又はパケット番号を適用し、誤り検出コード、すなわちCRC312を計算し適用し、変更されたTLPを、物理層を越えて外部デバイスに送信するために物理層320に提出する。
1つの実施形態では、物理層320は、パケットを外部デバイスに物理的に送信するための論理サブブロック321及び電気サブブロック322を備える。ここで、論理サブブロック321は、物理層321の「デジタル」機能を担当する。これに関して、論理サブブロックは、物理的サブブロック322による送信のために発信情報を準備する送信部と、受信した情報を識別及び準備し、その後リンク層310に渡す受信機部とを含む。
物理ブロック322は、送信機及び受信機を含む。送信機は、論理サブブロック321によってシンボルを供給され、送信機がこのシンボルをシリアル化し、外部デバイスに送信する。受信機は、外部デバイスからのシリアル化されたシンボルを供給され、受信した信号をビットストリームに変換する。ビットストリームはシリアル化解除され、論理サブブロック321に供給される。1つの実施形態では、8b/10b送信コードが用いられる。ここで、10ビットシンボルが送信/受信される。ここで、特殊なシンボルを用いて、パケットがフレーム323を用いてフレーム化される。加えて、1つの例では、受信機は着信シリアルストリームからリカバリされたシンボルクロックも提供する。
上記で示したように、トランザクション層305、リンク層310及び物理層320はPCIeプロトコルスタックの特殊な実施形態を参照して検討されているが、階層化プロトコルスタックはそのように限定されない。実際、任意の階層化プロトコルを含める/実装することができる。例として、階層化プロトコルとして表されるポート/インタフェースは、(1)パケットを組み立てる第1の層、すなわち、トランザクション層と、パケットを配列する第2の層、すなわちリンク層と、パケットを送信する第3の層、すなわち物理層とを含む。特殊な例として、QPI階層化プロトコルが利用される。
次に図5を参照すると、PCIeシリアルポイントツーポイントファブリックの一実施形態が示されている。PCIeシリアルポイントツーポイントリンクの一実施形態が示されているが、シリアルポイントツーポイントリンクはシリアルデータを送信するための任意の送信パスを含むので、シリアルポイントツーポイントリンクはそのように限定されない。示す実施形態では、基本PCIeリンクは、2つの低電圧の差動駆動信号対、すなわち送信対506/511及び受信対512/507を含む。したがって、デバイス505は、データをデバイス510に送信するための送信ロジック506と、デバイス510からデータを受信するための受信ロジック507とを含む。換言すれば、2つの送信経路、すなわち、経路516及び517、並びに2つの受信経路、すなわち経路518及び515がPCIeリンクに含まれる。
送信パスは、伝送線、銅線、光回線、無線通信チャネル、赤外線通信リンク又は他の通信パス等の、データを伝送するための任意のパスを指す。デバイス505及びデバイス510等の2つのデバイス間の接続は、リンク415等のリンクと呼ばれる。リンクは、1つのレーンをサポートすることができ、各レーンは、1組の差動信号対(送信用の1対、受信用の1対)を表す。帯域幅をスケーリングするために、リンクはxNによって表される複数のレーンを集約することができ、ここで、Nは、1、2、4、8、12、16、32、64又はそれより広いもの等の任意のサポートされるリンク幅である。
差動対は、差動信号を伝送するための、線516及び517等の2つの伝送パスを指す。例として、線516が低電圧レベルから高電圧レベルに切り替わるとき、すなわち立ち上がりエッジのとき、線517は高い論理レベルから低い論理レベルに駆動し、すなわち立ち下がりエッジとなる。差動信号は、潜在的に、より良好なシグナルインテグリティ、すなわち、相互結合、電圧オーバシュート/アンダーシュート、リンギング等のような、より良好な電気特性を実証する。これによって、より高速な送信周波数を可能にするより良好なタイミングウィンドウが可能になる。
次に図6を参照すると、本発明によるSoC設計の一実施形態が示される。説明のための特定の例として、SoC2000がユーザ機器(UE)に含まれる。1つの実施形態では、UEは、ハンドヘルドフォン、スマートフォン、タブレット、超薄型ノートブック、ブロードバンドアダプター付きノートブック、又は任意の他の同様の通信デバイス等の、エンドユーザによって通信に用いられる任意のデバイスを指す。多くの場合、UEは基地局又はノードに接続する。基地局又はノードは、潜在的に、GSM(登録商標)ネットワークにおける移動局(MS)に性質が対応する。
ここで、SoC2000は2つのコア、すなわち2006及び2007を含む。上記の検討と同様に、コア2006及び2007は、Intel(登録商標)アーキテクチャCore(商標)ベースプロセッサ、Advanced Micro Devices、Inc.(AMD)プロセッサ、MIPSベースのプロセッサ、ARMベースのプロセッサ設計等、命令セットアーキテクチャ、又はそれらの顧客、及びそれらのライセンス又は利用者に適合することができる。コア2006及び2007は、システム2000の他の部分と通信するためのバスインタフェースユニット2009及びL2キャッシュ2011に関連付けられたキャッシュコントロール2008に結合される。インターコネクト2010は、上記で検討したIOSF、AMBA又は他のインターコネクト等のオンチップインターコネクトを含む。これらは潜在的に、本明細書において説明した1以上の態様を実施する。
インターコネクト2010は、加入者アイデンティティモジュール(SIM)カードとインタフェースするためのSIM2030、SOC2000を初期化及びブートするためのコア2006及び2007によって実行されるブートコードを保持するブートROM2035、外部メモリ(例えば、DRAM2060)とインタフェースするためのSDRAMコントローラ2040、不揮発性メモリ(例えば、フラッシュ2065)とインタフェースするためのフラッシュコントローラ2045、周辺機器とインタフェースするための周辺制御2050(例えば、シリアル周辺インタフェース)、ビデオコーデック2020、及び入力(例えば、タッチ有効入力)を表示し受信するためのビデオインタフェース2025、グラフィック関連計算を実行するためのGPU2015等の、他のコンポーネントへの通信チャネルを提供する。これらのインタフェースの任意のものが、本明細書に記載の本発明の態様を組み込むことができる。
更に、システムは、Bluetooth(登録商標)モジュール2070、3Gモデム2075、GPS2085及びWiFi2085等の通信のための周辺機器を示す。システムには電力制御装置2055も含まれる。上記で示したように、UEは通信のための無線機を含むことに留意されたい。結果として、これらの周辺通信モジュールは全てが必要とされるわけではない。一方、UEにおいて、外部通信のための何らかの形態の無線機が含まれる。
様々な実施形態において、所与のインターコネクトによって結合される1以上のデバイスの回路部の少なくとも一部は、デバイスの構成によってそのような回路部が用いられないと判断されるとき、電力制御(例えば、パワーゲーティング)され得る。本明細書において説明される実施形態の一例として、インターコネクトを介する通信を提供する1以上の仮想チャネル(virtual channel)に関連付けられた回路部は、システムの構成によって、そのような仮想チャネルが通信に用いられないと判断されるとき、(例えば、そのような回路部に動作電圧を供給しないことによって)電源が切られた状態に入れられ得る。当然ながら、実施形態はこの例に限定されず、本明細書に記載される技法は、他の回路部の電力制御に等しく適用される。
図7は、本発明の一実施形態によるシステムのブロック図である。図7に示すように、システム700は、スイッチ720に結合された様々なデバイスを有するPCIe(商標)システムの実施態様である。デバイスの各々は、対応するリンク(それぞれ、リンク1〜4)によってスイッチ720に結合する。一実施形態において、リンクの各々が、異なる特性及び動作パラメータを有することができることに留意されたい。
例として、デバイス730、740及び750は、異なるタイプの周辺デバイスとすることができる。1つのそのような例として、デバイス730はグラフィックアクセラレータデバイスとすることができ、デバイス740はストレージデバイスとすることができ、デバイス750は別のタイプのポータブルデバイス、例えば、キャプチャデバイスとすることができる。スイッチ720は、別のリンク(リンク4)によってルートコンプレックス710に更に結合する。1つの例として、ルートコンプレックス710は、マルチコアプロセッサ等の、システムの主要なデータプロセッサとすることができる。当然ながら、コンプレックスの他の例が可能である。
特に、スイッチ720とデバイス730との間の接続を参照すると、異なるデバイスに様々な数の仮想チャネルが提供されることに留意されたい。示されるように、スイッチ720は、この例では8つの仮想チャネルを含み、各々が、リンクインタフェース725における対応するハードウェアバッファを有する。代わりに、デバイス730は、4つの仮想チャネルのみを含み、このため、4つのハードウェアバッファのみを含むリンクインタフェース735を有する。これらのデバイスは全く異なる数の仮想チャネル及びバッファを有するので、スイッチ720のリンクインタフェース725内のバッファのうちの少なくともいくつかは用いられない。したがって、本発明の一実施形態を用いて、ハードウェアにおいてこれらのバッファを無効にすることができ、それによってこれらのバッファの電力消費が回避される。図7の実施形態ではこの特定の実施態様で示されているが、多くの変形が可能であることを理解されたい。
ここで図8を参照すると、本発明の一実施形態による構成方法の流れ図が示されている。特定の実施形態では、方法800は、リンクを介して共に結合されたデバイスの構成ロジックによるデバイス初期化中に実行され得る。更に、本方法は、デバイス、又はリンクを介してデバイスに結合されたハードウェアに対する何らかの変更が存在するときはいつでも動的に実行され得る。例えば、新たなデバイスがエンドポイントに結合される場合、リンクは再トレーニングし、構成ロジックはこれに応じてある決められた値を再度割り当てることになる。図8を参照すると、方法800は、構成ストレージの拡張されたVCカウントフィールドを読み出すことによって開始する。ローカルデバイス又はローカルエンドポイント、及びリモートデバイス又はリモートエンドポイントの双方は、これらの2つのデバイスを結合するリンクの遠位端に位置する(ブロック810及びブロック820)。1つの実施形態において、この拡張されたVCカウントフィールドは、対応するデバイスのストレージ内、例えば、PCIe(商標)構成空間内に記憶することができる。論考の目的で、ローカルデバイス(エンドポイント1)が図7のスイッチ720に対応し、遠隔デバイス(エンドポイント2)が図7のデバイス730に対応すると仮定する。
上述した表現(スイッチ720に8個の仮想チャネル及びバッファが存在し、デバイス730に4個の仮想チャネル及びバッファが存在する)では、スイッチデバイス720から拡張されたVCカウントフィールドのために返される値は8であり、デバイス730から返される値は4である。より詳細には、このカウントフィールドが3ビットフィールドである一実施形態では、0の値はサポートされる単一の仮想チャネル(例えば、VC0)に対応し、この3ビットバイナリ値の値1〜7は、サポートされる更なる数のVCに対応する。このため、この実施形態では、スイッチ720のための拡張されるVCカウントフィールドは、111bの値を有し、デバイス730のための拡張されるVCカウントフィールドは011bのカウントを有する。当然ながら、他の表現が可能である。
更に図8を参照すると、次の制御がひし形830に移り、ひし形830において、ローカルデバイスのためのVCカウントが、リモートデバイスのためのVCカウントよりも大きいか否かを判断することができる。大きい場合、制御はブロック835に移り、ブロック835において、リンク最大VC値を、リモートデバイスからの拡張されたVCカウントフィールドに設定することができる。このリンク最大VC値又はVC ID値が、接続されたエンドポイントの拡張されたVCカウントフィールドの最小値に対応することに留意されたい。したがって、この例では、このリンク最大VC値は011bの値に設定される。
一方、これが当てはまらない場合、制御は代わりに、ひし形830からひし形840に移り、ひし形840において、ローカルデバイスのためのVCカウントがリモートデバイスのためのVCカウントに等しいか否かを判断することができる。等しい場合、制御はブロック845に移り、ブロック845において、リンク最大VC値を、ローカルデバイスからの拡張されたVCカウントフィールドに設定することができる。そうでない場合、制御はひし形850に移り、ひし形850において、ローカルデバイスのためのVCカウントが、リモートデバイスのためのVCカウント未満であるか否かが判断される。未満である場合、制御はブロック855に移り、ブロック855において、リンク最大VC値を、ローカルデバイスからの拡張されたVCカウントフィールドに設定することができる。
ブロック835、845及び855のうちの1つにおいて設定されるリンク最大VCにかかわらず、制御は次にブロック860に移り、ブロック860において、これらのリンク最大VC値を有するテーブルストレージ等の構成ストレージにアクセスすることができる。より詳細には、このテーブルにアクセスすることによって、選択されたリンク最大VC値の別の表現を得ることができる。図9Aに関して更に示されるように、テーブルは、最大リンクVC値の3ビット表現及び同じ値の対応する8ビット表現を各々が提供する複数のエントリを含むことができる。そして、このため、制御はブロック870に移り、ブロック870において、アクセスされたエントリの個々のビットを得ることができる。ここで、各ビットは利用可能な数の仮想チャネルのうちの1つに対応し、対応するハードウェアバッファの有効にされた状態を表す。すなわち、一例において、論理1値は、アクティブバッファを示し、これに応じて、対応する有効にされた状態を示し、論理0値は、非アクティブバッファを示し、これに応じて、対応する無効にされた状態を表す。当然ながら他の表現が可能である。
ここで、図9Aを参照すると、一実施形態による構成ストレージのブロック図が示されている。図9Aに示すように、ストレージ900は、システム内、例えば、別個の不揮発性ストレージ内の所望のロケーションに存在することができる。或いは、構成ストレージ900内の情報のコピーが、例えば、システムの各々のデバイスの構成空間に存在することができる。また更なる実施形態は、この情報を、外部レジスタ又は読出し専用メモリ等の更に別のロケーションに記憶することができる。示されるように、ストレージ900は、複数のエントリ910〜910を含む。各エントリは、第1のフィールド920及び第2のフィールド930を含む。第1のフィールド920は最大リンクVC値に対応することができ、このため、ストレージ900の選択されたエントリにアクセスするためのアドレス指定可能な手段として用いられる。そして、第2のフィールド930は、最大リンクVC値の対応する8ビット表現を提供する。一実施形態では、VC IDからマッピングされた8ビット値は、各ビットがそのエンドポイントの仮想チャネルバッファ又はエンドポイントの他のレーンマッピングに対応するようにすることができ、例えば、ビット0はVC0にマッピングし、ビット1はVC1にマッピングし、最終的にビット7はVC7にマッピングする。この実施形態では、バイナリ1は「電源オン」状態を示すのに対し、0は「電源オフ」を示す。一実施形態では、次に、これらの状態を、各バッファの電圧制御回路まで駆動し、バッファへの動作電圧の供給を(又は代替的に、動作電圧の供給を行わないように)制御する。
次に図9Bを参照すると、テーブルから得られた選択されたエントリ910x、及びデバイスの対応するハードウェアバッファへの動作電圧の供給を制御するためのこのエントリの使用が示されている。より詳細には、図9Bは、1組のANDゲート950〜950を示す。これらの論理ゲートの各々は、選択されたエントリからの対応するビット、及び例えばオフチップ電圧レギュレータから取得された対応する動作電圧を受信するように構成される。当然ながら、動作電圧は、代わりにオンチップ又はオフチップのいずれかの他のロケーションから受信されてもよい。所与のビットが論理高値であるとき、ANDゲートはアクティブであり、このため、動作電圧は、対応するハードウェアバッファに提供される。そうでない場合、ANDゲートは動作電圧をバッファに渡さず、バッファが通常動作中、無効にされ、このため電力消費を低減する。図9Bの実施形態ではこの高レベルで示されているが、変形が可能であることを理解されたい。
ここで図10を参照すると、一実施形態によるシステムの一部のブロック図が示されている。図10に示すように、システム1000は、様々なコンポーネントを含むことができる。ここで論考の目的で、単に2つのコンポーネント、すなわち、リンク1005を介して別の回路(図示せず)に結合される任意のタイプの集積回路とすることができるデバイス1010と、リンク1090を介して結合される不揮発性ストレージ1080とが示される。示す実施形態では、リンク1005は、送信方向及び受信方向において単方向のシリアルリンクを有するPCIe(商標)リンクとすることができる。
デバイス1010は、ルートコンプレックス、スイッチ、周辺デバイス等を含む任意のタイプのデバイスとすることができる。説明を容易にするために、デバイス1010の一部のみが示される。より詳細には、1組の受信バッファ1025〜1025が提供される。これらのハードウェアバッファはそれぞれ、所与の仮想チャネルVC〜VCに対応することができる。更に、1組の送信バッファ1020〜1020も提供される。ここでもまた、各バッファは特定の仮想チャネルに関連付けられている。様々なトラフィッククラス(TC)を、所与のVC及び対応するハードウェアバッファを通じてルーティングされるように割り当てることができることに留意されたい。本発明の一実施形態を用いて、これらの仮想チャネルハードウェアバッファのうちの有効にされたもののみが、ゲートウェイロジック1060を介して動作電圧を与えられ、そして、構成ロジック1050から制御情報を受信する。これらの詳細は以下で更に論考される。
更にデバイス1010を参照すると、バッファ1020及び1025は、物理層の他の回路部と通信することができる(説明を容易にするために図10には示されていない)。ここから、通信は、リンクロジック1030により進行し、様々なリンク層処理を行うことができる。その後、通信は、トランザクションレイヤ処理を実行することができるトランザクションロジック1035により進行することができる。したがって、通信は、コアロジック1040により行うことができ、コアロジック1040は、デバイス1010の主要論理回路部とすることができる。例えば、マルチコアプロセッサとの関連で、コアロジック1040は、1以上のプロセッサコア又は他の処理ユニットとすることができる。デバイス1010がグラフィックアクセラレータデバイスである別の例として、コアロジック1040は、グラフィック処理ユニットとすることができる。
図10には、システム1000が電源オンにされるとき、デバイス1010がリセットされるとき、又は動作中に他の動的変化が生じるときに、構成動作を実行するのに用いられるハードウェア、ソフトウェア及び/又はファームウェア(又はそれらの組合せ)とすることができる構成ロジック1050も示されている。一実施形態では、構成ロジック1050は、本明細書において説明される電力管理制御を実行するロジックを含むことができる。このため、図10に示す実施形態では、構成ロジック1050は、上記で論考された方法800等の方法を実行するように構成することができる電力管理ロジック1055を含む。
このために、構成ロジック1050は、構成ストレージ1070と通信することができる。様々な実施形態において、構成ストレージ1070は、PCIe(商標)構成ストレージ空間を含むデバイス1010の不揮発性ストレージとすることができる。ここで記憶される様々な構成情報の中には、本明細書において説明されるような拡張されたVCカウントフィールド1075がある。当然ながら、更なる構成情報もストレージ1070内に記憶されることを理解されたい。
特定の実施形態では、3ビット最大VCカウント値を対応する8ビット値に関連付けるマッピングテーブルを提供することができる。当然ながら、可能な仮想チャネルの量に応じて、ハードウェアバッファ、又は制御される他の回路部、コーディングされるビット数、及び個々のビット表現は変動する場合がある。示す実施形態では、別個の不揮発性ストレージ1080は、マッピングテーブル1085を含むことができる。このため、マッピングテーブル1085は、最大VCカウント値をレーンマッピングに関連付けることができる。換言すれば、サポートされる仮想チャネルの最大数の数の表示は、動作電圧が、対応する仮想チャネルに各々が関連付けられた1以上のハードウェアバッファに提供されるか否かを制御するのに用いることができるイネーブルインジケータの対応する組にマッピングすることができる。この実施形態では、有効にされた仮想チャネルに基づくハードウェアバッファの制御として論考されたが、当然ながら、デバイス内の追加のハードウェアを同様に制御することができることを理解されたい。例として、レーンごと又は仮想チャネル単位で制御することができる追加のハードウェアは、グラフィックカード、USB−to−PCIe(商標)若しくはSATA−to−PCIe(商標)カード等のドーターカード、又は他のそのようなデバイスを含むことができる。
このため、実施形態は、VCハードウェアバッファ等の使用されていないハードウェアが、構成制御下で、例えば構成ロジックによって電源を切られることを可能にする。このようにして、システム電力は、実際に用いられているハードウェアのみが電源オンにされるように低減することができる。
以下の例は、更なる実施形態に関係する。
一例において、装置は、1以上の仮想チャネルに関連付けられた情報を各々が記憶するための複数のハードウェアバッファと、リンクを介して結合された第1のデバイス及び第2のデバイスによって共通でサポートされる仮想チャネルの最大数に対応する識別子を決定し、この識別子に基づいて制御値を得るための構成ロジックと、制御値に基づいて複数のハードウェアバッファのうちの対応するものに動作電圧を供給するためのゲートロジックとを備える。
一実施形態では、ゲートロジックは、仮想チャネルの最大数が、複数のハードウェアバッファ未満であるとき、複数のハードウェアバッファのうちの少なくとも1つに動作電圧を供給することを防ぐように構成することができる。
一例では、構成ロジックは、第1のデバイスに関連付けられた第1の仮想チャネルカウント及び第2のデバイスに関連付けられた第2の仮想チャネルカウントに基づいて仮想チャネルの最大数を決定する。
一例では、構成ロジックは、第1のデバイスの構成ストレージの仮想チャネルカウントフィールドから第1の仮想チャネルカウントを得て、第2のデバイスの構成ストレージの仮想チャネルカウントフィールドから第2の仮想チャネルカウントを得る。
一例では、ゲートロジックは、複数の論理回路を含み、複数の論理回路は各々が、1ビットの制御値及び動作電圧を受信し、ビットの値に基づいて複数のハードウェアバッファのうちの1つに動作電圧を供給する。
一例では、不揮発性ストレージは、識別子を制御値に各々が関連付ける複数のエントリを有するマッピングテーブルを含み、装置に結合され得る。一実施形態では、構成ロジックは、識別子を用いてアクセスされるマッピングテーブルのエントリから制御値を得る。制御値は、複数のハードウェアバッファのうちの1つに各々が関連付けられた複数のビットを含むことができ、第1の状態のビットの各々は、関連付けられたハードウェアバッファが有効にされることを示し、第2の状態のビットの各々は、関連付けられたハードウェアバッファが無効にされることを示す。
一例では、第1のデバイスは、第1のデバイスによってサポートされる仮想チャネルの最大数のカウントを記憶し、マッピングテーブルの1以上のエントリのコピーを更に記憶するための構成ストレージを備える。一実施形態では、不揮発性ストレージは、第1のデバイスと別個のコンポーネントであり、第2のリンクを介して第1のデバイスに結合される。
上記のデバイスは様々な手段を用いて実施することができることに留意されたい。
一例では、プロセッサは、ユーザ機器タッチ対応デバイスに組み込まれたシステムオンチップ(SoC)を備える。
別の例では、システムはディスプレイ及びメモリを備え、上記の例のうちの1以上のデバイスを備える。
別の例では、方法が、リンクを介して結合された第1のエンドポイント及び第2のエンドポイントによってサポート可能な仮想チャネルの共通の数を決定することと、仮想チャネルの共通の数を用いてストレージにアクセスし、仮想チャネルの共通の数に対応する制御設定を得ることと、制御設定に基づいて、第1のエンドポイントの選択された第1のハードウェアバッファ及び第2のエンドポイントの選択された第2のハードウェアバッファに動作電圧を供給することとを含む。
一例では、動作電圧を供給することは、選択された第1のハードウェアバッファ及び選択された第2のハードウェアバッファに動作電圧を供給し、選択されていない第1のハードウェアバッファ及び選択されていない第2のハードウェアバッファに動作電圧を供給しないことを含む。
一例では、本方法は、選択された第1のハードウェアバッファ及び選択された第2のハードウェアバッファを用いて第1のエンドポイントと第2のエンドポイントとの間でデータを通信することを更に含む。
一例では、本方法は、リンクの構成中、仮想チャネルの共通の数を用いてストレージにアクセスすることを更に含み、ストレージは、第1のエンドポイント及び第2のエンドポイントと別個であり、仮想チャネルの共通の数及び制御設定を各々が記憶する複数のエントリを含む。
一例では、本方法は、リンクの再構成に応答して、第1のエンドポイント及び第2のエンドポイントによってサポート可能な仮想チャネルの第2の共通の数を決定することと、仮想チャネルの第2の共通の数を用いてストレージにアクセスし、第2の制御設定を得ることと、第2の制御設定に基づいて、第1のハードウェアバッファのうちの、選択された第1のハードウェアバッファと異なるもの、及び第2のハードウェアバッファのうちの、選択された第2のハードウェアバッファと異なるものに動作電圧を供給することとを更に含む。
別の例では、命令を含むコンピュータ可読媒体が、上記の例のうちの任意のものの方法を実行する。
別の例では、装置が、上記の例のうちの任意のものの方法を実行する手段を備える。
更に別の例では、装置が、この装置を、この装置と第2のデバイスとの間に結合されるリンクにインタフェースするための第1のリンクインタフェースであって、対応するトラフィッククラスのデータを各々が通信する複数の独立した回路を含む第1のリンクインタフェースと、複数の独立した回路の数に対応するサポート可能な最大値を記憶するための第1の構成ストレージと、第1の構成ストレージに記憶されたサポート可能な最大値及び第2のデバイスの第2の構成ストレージに記憶されたサポート可能な最大値のうちの最小値に対応するリンク最大値を決定し、リンク最大値の異なる表現を得るための構成ロジックと、リンク最大値が複数の独立した回路の数未満であるとき、複数の独立した回路の第1の組を有効にし、異なる表現に応答して複数の独立した回路の第2の組を無効にするための制御回路とを備える。
一例では、第1の構成ストレージに記憶されるサポート可能な最大値は、装置のための仮想チャネルカウント値に更に対応する。
一例では、装置に結合された不揮発性ストレージは、リンク最大値をリンク最大値の異なる表現に各々が関連付ける複数のエントリを有するマッピングテーブルを含む。マッピングテーブルには、構成ロジックによって決定されたリンク最大値を用いてアクセスすることができる。
一例では、異なる表現は、複数の独立した回路のうちの1つに各々が関連付けられた複数のビットを含み、第1の状態のビットの各々は、関連付けられた独立した回路が有効にされることを示し、第2の状態のビットの各々は、関連付けられた独立した回路が無効にされることを示す。
一例では、制御回路は、複数の論理回路を備え、複数の論理回路は各々が、異なる表現の複数のビットのうちの1ビット及び電圧レギュレータからの動作電圧を受信し、ビットの値に基づいて複数のハードウェアバッファのうちの1つに動作電圧を供給する。
一例では、複数の独立した回路は各々が、仮想チャネルに関連付けられたハードウェアバッファを備える。
また更なる例では、システムが、1以上の仮想チャネルに関連付けられた情報を各々が記憶する第1の複数のハードウェアバッファを有する第1のリンクインタフェースを備える第1のデバイスと、リンクを介して第1のデバイスに結合される第2のデバイスとを備える。一実施形態では、第2のデバイスは、1以上の仮想チャネルに関連付けられた情報を各々が記憶する第2の複数のハードウェアバッファを有する第2のリンクインタフェースであって、第1の複数のハードウェアバッファよりも多くの第2の複数のハードウェアバッファが存在する、第2のリンクインタフェースと、複数の第1のハードウェアバッファの数に対応する、第1のデバイス及び第2のデバイスによって共通してサポートされる仮想チャネルの最大数を決定し、最大数に基づいて制御値を得るコントローラと、制御値に応答して、全てよりも少ない複数の第2のハードウェアバッファを有効にするためのゲートロジックとを備える。
一例では、第1のデバイスは、第1の最大仮想チャネルカウントを含む第1の構成ストレージを備え、第2のデバイスは、第2の最大仮想チャネルカウントを含む第2の構成ストレージを備える。
一例では、コントローラは、第1の最大仮想チャネルカウント及び第2の最大仮想チャネルカウントを用いて、共通にサポートされる仮想チャネルの最大数を決定する。
一例では、不揮発性ストレージは、共通にサポートされる仮想チャネルの最大数を各々が関連付ける複数のエントリを有するマッピングテーブルを含む。
一例では、コントローラは、決定された共通してサポートされる仮想チャネルの最大数を用いてアクセスされるマッピングテーブルのエントリから制御値を得ることができる。一実施形態では、制御値は、第2の複数のハードウェアバッファのうちの1つに各々が関連付けられた複数のビットを含み、第1の状態のビットの各々が、関連付けられた第2のハードウェアバッファが有効にされることを示し、第2の状態のビットの各々が、関連付けられた第2のハードウェアバッファが無効にされることを示す。
一例では、ゲートロジックは、複数の論理回路を含み、複数の論理回路は各々が、制御値のビット及び動作電圧を受信し、ビットの値に基づいて複数の第2のハードウェアバッファのうちの1つに動作電圧を供給する。
上記の例の様々な組合せが可能であることを理解されたい。
実施形態は、多くの異なるタイプのシステムにおいて用いることができる。例えば、1つの実施形態では、通信デバイスは、本明細書において記載した様々な方法及び技法を実行するように構成することができる。当然ながら、本発明の範囲は通信デバイスに限定されず、代わりに、他の実施形態は、命令を処理するための他のタイプの装置、又は、コンピューティングデバイス上で実行されることに応答して、デバイスに、本明細書において記載した方法及び技法のうちの1以上を実行させる命令を含む1以上のマシン可読媒体を対象とすることができる。
実施形態は、コードで実施することができ、命令を実行するようにシステムをプログラムするのに用いることができる命令を記憶した非一時的ストレージ媒体に記憶することができる。ストレージ媒体は、限定ではないが、フロッピーディスク、光ディスク、ソリッドステートドライブ(SSD)、コンパクトディスク読出し専用メモリ(CD−ROM)、書き換え可能コンパクトディスク(CD−RW)及び磁気−光ディスク、読出し専用メモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)等のランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、消去可能プログラム可能読出し専用メモリ(EPROM)、フラッシュメモリ、電気的に消去可能なプログラム可能読出し専用メモリ(EEPROM)等の半導体デバイス、磁気若しくは光カード、又は電子命令を記憶するのに適した任意の他のタイプの媒体を含むことができる。
本発明を、限られた数の実施形態に関して説明してきたが、当業者であれば、ここからの多数の変更及び変形を理解するであろう。添付の特許請求の範囲は、本発明の真の趣旨及び範囲内にある全ての変更及び変形をカバーすることが意図される。

Claims (27)

  1. 1以上の仮想チャネルに関連付けられた情報を各々が記憶するための複数のハードウェアバッファと、
    リンクを介して結合された第1のデバイス及び第2のデバイスによって共通でサポートされる仮想チャネルの最大数に対応する識別子を決定し、前記識別子に基づいて制御値を得るための構成ロジックと、
    前記制御値に基づいて前記複数のハードウェアバッファのうちの対応するものに動作電圧を供給するためのゲートロジックであって、前記仮想チャネルの最大数が、前記複数のハードウェアバッファ未満であるとき、前記複数のハードウェアバッファのうちの少なくとも1つに前記動作電圧を供給することを防ぐ、ゲートロジックと、
    を備える、装置。
  2. 前記構成ロジックは、前記第1のデバイスに関連付けられた第1の仮想チャネルカウント及び前記第2のデバイスに関連付けられた第2の仮想チャネルカウントに基づいて前記仮想チャネルの最大数を決定する、請求項1に記載の装置。
  3. 前記構成ロジックは、前記第1のデバイスの構成ストレージの仮想チャネルカウントフィールドから前記第1の仮想チャネルカウントを得て、前記第2のデバイスの構成ストレージの仮想チャネルカウントフィールドから前記第2の仮想チャネルカウントを得る、請求項2に記載の装置。
  4. 前記ゲートロジックは、複数の論理回路を含み、前記複数の論理回路は各々が、1ビットの制御値及び前記動作電圧を受信し、前記ビットの値に基づいて前記複数のハードウェアバッファのうちの1つに前記動作電圧を供給する、請求項1に記載の装置。
  5. 識別子を制御値に各々が関連付ける複数のエントリを有するマッピングテーブルを含む不揮発性ストレージを更に備える、請求項1に記載の装置。
  6. 前記構成ロジックは、前記識別子を用いてアクセスされる前記マッピングテーブルのエントリから前記制御値を得る、請求項5に記載の装置。
  7. 前記制御値は、前記複数のハードウェアバッファのうちの1つに各々が関連付けられた複数のビットを含み、第1の状態の前記ビットの各々は、前記関連付けられたハードウェアバッファが有効にされることを示し、第2の状態のビットの各々は、前記関連付けられたハードウェアバッファが無効にされることを示す、請求項6に記載の装置。
  8. 前記第1のデバイスは、前記第1のデバイスによってサポートされる前記仮想チャネルの最大数のカウントを記憶するための構成ストレージを備え、前記構成ストレージは、前記マッピングテーブルの1以上のエントリのコピーを更に記憶する、請求項5に記載の装置。
  9. 前記不揮発性ストレージは、前記第1のデバイスと別個のコンポーネントであり、第2のリンクを介して前記第1のデバイスに結合される、請求項8に記載の装置。
  10. リンクを介して結合された第1のエンドポイント及び第2のエンドポイントによってサポート可能な仮想チャネルの共通の数を決定することと、
    前記仮想チャネルの共通の数を用いてストレージにアクセスし、前記仮想チャネルの共通の数に対応する制御設定を得ることと、
    前記制御設定に基づいて、前記第1のエンドポイントの選択された第1のハードウェアバッファ及び前記第2のエンドポイントの選択された第2のハードウェアバッファに動作電圧を供給することと、
    を含む方法。
  11. 前記動作電圧を供給することは、前記選択された第1のハードウェアバッファ及び前記選択された第2のハードウェアバッファに前記動作電圧を供給し、選択されていない第1のハードウェアバッファ及び選択されていない第2のハードウェアバッファに前記動作電圧を供給しないことを含む、請求項10に記載の方法。
  12. 前記選択された第1のハードウェアバッファ及び前記選択された第2のハードウェアバッファを用いて前記第1のエンドポイントと前記第2のエンドポイントとの間でデータを通信することを更に含む、請求項10に記載の方法。
  13. 前記リンクの構成中、前記仮想チャネルの共通の数を用いて前記ストレージにアクセスすることを更に含み、前記ストレージは、前記第1のエンドポイント及び前記第2のエンドポイントと別個であり、仮想チャネルの共通の数及び制御設定を各々が記憶する複数のエントリを含む、請求項10に記載の方法。
  14. 前記リンクの再構成に応答して、
    前記第1のエンドポイント及び前記第2のエンドポイントによってサポート可能な仮想チャネルの第2の共通の数を決定することと、
    前記仮想チャネルの第2の共通の数を用いて前記ストレージにアクセスし、第2の制御設定を得ることと、
    前記第2の制御設定に基づいて、前記第1のハードウェアバッファのうちの、前記選択された第1のハードウェアバッファと異なるもの、及び前記第2のハードウェアバッファのうちの、前記選択された第2のハードウェアバッファと異なるものに前記動作電圧を供給することと、
    を更に含む、請求項13に記載の方法。
  15. 装置を、前記装置と第2のデバイスとの間に結合されるリンクにインタフェースするための第1のリンクインタフェースであって、対応するトラフィッククラスのデータを各々が通信する複数の独立した回路を含む第1のリンクインタフェースと、
    前記複数の独立した回路の数に対応するサポート可能な最大値を記憶するための第1の構成ストレージと、
    前記第1の構成ストレージに記憶された前記サポート可能な最大値及び前記第2のデバイスの第2の構成ストレージに記憶されたサポート可能な最大値のうちの最小値に対応するリンク最大値を決定し、前記リンク最大値の異なる表現を得るための構成ロジックと、
    前記リンク最大値が前記複数の独立した回路の数未満であるとき、前記複数の独立した回路の第1の組を有効にし、前記異なる表現に応答して前記複数の独立した回路の第2の組を無効にするための制御回路と、
    を備える、装置。
  16. 前記第1の構成ストレージに記憶される前記サポート可能な最大数は、前記装置のための仮想チャネルカウント値に更に対応する、請求項15に記載の装置。
  17. 前記装置に結合された不揮発性ストレージを更に備え、前記不揮発性ストレージは、リンク最大値を前記リンク最大値の異なる表現に各々が関連付ける複数のエントリを有するマッピングテーブルを含み、前記マッピングテーブルは、前記構成ロジックによって決定された前記リンク最大値を用いてアクセスされる、請求項15に記載の装置。
  18. 前記異なる表現は、前記複数の独立した回路のうちの1つに各々が関連付けられた複数のビットを含み、第1の状態の前記ビットの各々は、前記関連付けられた独立した回路が有効にされることを示し、第2の状態のビットの各々は、前記関連付けられた独立した回路が無効にされることを示す、請求項17に記載の装置。
  19. 前記制御回路は、複数の論理回路を備え、前記複数の論理回路は各々が、前記異なる表現の前記複数のビットのうちの1ビット及び電圧レギュレータからの動作電圧を受信し、前記ビットの値に基づいて前記複数の独立した回路のうちの1つに前記動作電圧を供給する、請求項18に記載の装置。
  20. 前記複数の独立した回路は各々が、仮想チャネルに関連付けられたハードウェアバッファを備える、請求項15に記載の装置。
  21. 1以上の仮想チャネルに関連付けられた情報を各々が記憶する第1の複数のハードウェアバッファを有する第1のリンクインタフェースを備える第1のデバイスと、
    リンクを介して前記第1のデバイスに結合される第2のデバイスと、
    を備え、前記第2のデバイスは、
    1以上の前記仮想チャネルに関連付けられた情報を各々が記憶する第2の複数のハードウェアバッファを有する第2のリンクインタフェースであって、前記第1の複数のハードウェアバッファよりも多くの前記第2の複数のハードウェアバッファが存在する、第2のリンクインタフェースと、
    前記複数の第1のハードウェアバッファの数に対応する、前記第1のデバイス及び前記第2のデバイスによって共通してサポートされる仮想チャネルの最大数を決定し、前記最大数に基づいて制御値を得るコントローラと、
    前記制御値に応答して、全てよりも少ない前記複数の第2のハードウェアバッファを有効にするためのゲートロジックと、
    を備える、システム。
  22. 前記第1のデバイスは、第1の最大仮想チャネルカウントを含む第1の構成ストレージを備え、前記第2のデバイスは、第2の最大仮想チャネルカウントを含む第2の構成ストレージを備える、請求項21に記載のシステム。
  23. 前記コントローラは、前記第1の最大仮想チャネルカウント及び前記第2の最大仮想チャネルカウントを用いて、共通にサポートされる仮想チャネルの前記最大数を決定する、請求項22に記載のシステム。
  24. 共通にサポートされる仮想チャネルの最大数を各々が関連付ける複数のエントリを有するマッピングテーブルを含む不揮発性ストレージを更に備える、請求項21に記載のシステム。
  25. 前記コントローラは、前記決定された共通してサポートされる仮想チャネルの最大数を用いてアクセスされる前記マッピングテーブルのエントリから前記制御値を得る、請求項24に記載のシステム。
  26. 前記制御値は、前記第2の複数のハードウェアバッファのうちの1つに各々が関連付けられた複数のビットを含み、第1の状態の前記ビットの各々が、前記関連付けられた第2のハードウェアバッファが有効にされることを示し、第2の状態の前記ビットの各々が、前記関連付けられた第2のハードウェアバッファが無効にされることを示す、請求項25に記載のシステム。
  27. 前記ゲートロジックは、複数の論理回路を含み、前記複数の論理回路は各々が、前記制御値のビット及び動作電圧を受信し、前記ビットの値に基づいて前記複数の第2のハードウェアバッファのうちの1つに前記動作電圧を供給する、請求項26に記載のシステム。
JP2016553359A 2014-03-20 2014-03-20 リンクインタフェースの使用されていないハードウェアの電力消費を制御するための方法、装置及びシステム Active JP6321194B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/031304 WO2015142336A1 (en) 2014-03-20 2014-03-20 A method, apparatus, and system for controlling power consumption of unused hardware of a link interface

Publications (2)

Publication Number Publication Date
JP2017511529A true JP2017511529A (ja) 2017-04-20
JP6321194B2 JP6321194B2 (ja) 2018-05-09

Family

ID=54120167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016553359A Active JP6321194B2 (ja) 2014-03-20 2014-03-20 リンクインタフェースの使用されていないハードウェアの電力消費を制御するための方法、装置及びシステム

Country Status (9)

Country Link
US (1) US9552045B2 (ja)
EP (1) EP3120216B1 (ja)
JP (1) JP6321194B2 (ja)
KR (1) KR101867435B1 (ja)
CN (1) CN104932996B (ja)
DE (1) DE112014006490T5 (ja)
RU (1) RU2653306C1 (ja)
TW (1) TWI556094B (ja)
WO (1) WO2015142336A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10515032B2 (en) * 2016-07-01 2019-12-24 Intel Corporation Asymmetric transmission (TX) and receive (RX) lanes in a point-to-point interconnect using a peripheral component interconnect express (PCIE) resources in a computer system
US20190303344A1 (en) * 2016-12-23 2019-10-03 Intel Corporation Virtual channels for hardware acceleration
US10372657B2 (en) * 2016-12-26 2019-08-06 Intel Corporation Bimodal PHY for low latency in high speed interconnects
KR20180095765A (ko) 2017-02-17 2018-08-28 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US20190095554A1 (en) * 2017-09-28 2019-03-28 Intel Corporation Root complex integrated endpoint emulation of a discreet pcie endpoint
US11630480B2 (en) * 2017-10-05 2023-04-18 Intel Corporation System, method, and apparatus for SRIS mode selection for PCIe
CN110139063B (zh) * 2018-02-09 2020-12-18 杭州海康威视数字技术股份有限公司 一种确定设备支持视频流路数的方法、装置及设备
CN108495362B (zh) * 2018-03-09 2021-06-01 广东小天才科技有限公司 一种信号传输方法及通信电路
US12034633B2 (en) 2019-05-23 2024-07-09 Hewlett Packard Enterprise Development Lp System and method for facilitating tracer packets in a data-driven intelligent network
KR20210012439A (ko) * 2019-07-25 2021-02-03 삼성전자주식회사 마스터 지능 소자 및 이의 제어 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010044569A (ja) * 2008-08-12 2010-02-25 Ricoh Co Ltd 情報転送回路、情報処理装置、情報転送回路の制御方法、制御プログラム及び記録媒体
JP2013025416A (ja) * 2011-07-15 2013-02-04 Ricoh Co Ltd データ転送装置及び画像形成システム
JP2013528970A (ja) * 2010-03-29 2013-07-11 インテル コーポレイション ネットワークで使用される方法、装置及びシステム

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396635A (en) 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
JPH04359335A (ja) 1991-06-06 1992-12-11 Fujitsu Ltd メモリアクセス方式
US5781784A (en) 1992-07-09 1998-07-14 Zilog, Inc. Dynamic power management of solid state memories
US6222825B1 (en) 1997-01-23 2001-04-24 Advanced Micro Devices, Inc. Arrangement for determining link latency for maintaining flow control in full-duplex networks
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
DE19822259C2 (de) 1998-05-18 2000-07-06 Siemens Ag Sendeeinrichtung und Bussystem zur Datenübertragung
US6938094B1 (en) * 1999-09-17 2005-08-30 Advanced Micro Devices, Inc. Virtual channels and corresponding buffer allocations for deadlock-free computer system operation
US6597689B1 (en) * 1998-12-30 2003-07-22 Nortel Networks Limited SVC signaling system and method
US6950438B1 (en) * 1999-09-17 2005-09-27 Advanced Micro Devices, Inc. System and method for implementing a separate virtual channel for posted requests in a multiprocessor computer system
US6526469B1 (en) 1999-11-12 2003-02-25 International Business Machines Corporation Bus architecture employing varying width uni-directional command bus
US20020087716A1 (en) 2000-07-25 2002-07-04 Shakeel Mustafa System and method for transmitting customized multi priority services on a single or multiple links over data link layer frames
JP4906226B2 (ja) 2000-08-17 2012-03-28 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド マルチプロセッサコンピュータシステムにおいて、ポストされたリクエストのための別個のバーチャルチャネルを実現するためのシステムおよび方法
US6665742B2 (en) 2001-01-31 2003-12-16 Advanced Micro Devices, Inc. System for reconfiguring a first device and/or a second device to use a maximum compatible communication parameters based on transmitting a communication to the first and second devices of a point-to-point link
JP2002259327A (ja) 2001-02-28 2002-09-13 Hitachi Ltd バス制御回路
JP3523616B2 (ja) 2001-07-24 2004-04-26 松下電器産業株式会社 バス最適化方法及び通信ノード
US6715055B1 (en) * 2001-10-15 2004-03-30 Advanced Micro Devices, Inc. Apparatus and method for allocating buffer space
US6681274B2 (en) * 2001-10-15 2004-01-20 Advanced Micro Devices, Inc. Virtual channel buffer bypass for an I/O node of a computer system
US20030088799A1 (en) 2001-11-05 2003-05-08 Bodas Devadatta V. Method and apparatus for regulation of electrical component temperature and power consumption rate through bus width reconfiguration
US8819253B2 (en) 2001-11-13 2014-08-26 Oracle America, Inc. Network message generation for automated authentication
US7200186B2 (en) 2002-03-14 2007-04-03 Intel Corporation Methods and apparatus for reducing power usage of a transmitter and receiver coupled via a differential serial data link
GB0211764D0 (en) * 2002-05-22 2002-07-03 3Com Corp Automatic power saving facility for network devices
US8103788B1 (en) * 2002-11-19 2012-01-24 Advanced Micro Devices, Inc. Method and apparatus for dynamically reallocating buffers for use in a packet transmission
US7137018B2 (en) 2002-12-31 2006-11-14 Intel Corporation Active state link power management
US7047475B2 (en) 2003-02-04 2006-05-16 Hewlett-Packard Development Company, L.P. CRC encoding scheme for conveying status information
US7188263B1 (en) 2003-05-07 2007-03-06 Nvidia Corporation Method and apparatus for controlling power state of a multi-lane serial bus link having a plurality of state transition detectors wherein powering down all the state transition detectors except one
US7136953B1 (en) 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
US7706282B2 (en) 2003-06-25 2010-04-27 Leping Huang Bluetooth personal area network routing protocol optimization using connectivity metric
TWI273789B (en) 2004-02-24 2007-02-11 Via Tech Inc Method for adjusting the power consumption of a network interface
US7844767B2 (en) 2004-05-21 2010-11-30 Intel Corporation Method for identifying bad lanes and exchanging width capabilities of two CSI agents connected across a link
US7957428B2 (en) 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
US7313712B2 (en) 2004-05-21 2007-12-25 Intel Corporation Link power saving state
US8046488B2 (en) 2004-05-21 2011-10-25 Intel Corporation Dynamically modulating link width
US7197591B2 (en) 2004-06-30 2007-03-27 Intel Corporation Dynamic lane, voltage and frequency adjustment for serial interconnect
US7522520B2 (en) * 2004-09-03 2009-04-21 Intel Corporation Flow control credit updates for virtual channels in the Advanced Switching (AS) architecture
US7472299B2 (en) * 2005-09-30 2008-12-30 Intel Corporation Low power arbiters in interconnection routers
US7484110B2 (en) * 2006-03-16 2009-01-27 Microsoft Corporation Adaptive power management
US7660261B2 (en) 2006-11-14 2010-02-09 The Trustees Of Columbia University In The City Of New York Systems and methods for computing data transmission characteristics of a network path based on single-ended measurements
JP5233360B2 (ja) 2008-03-27 2013-07-10 富士通株式会社 メモリ制御装置,メモリ制御装置の制御方法および情報処理装置
TW201008234A (en) * 2008-08-12 2010-02-16 Acer Inc Energy-saving method for handheld Internet accessing device, the handheld Internet accessing device, and the real-time message system
US8954635B2 (en) * 2011-08-31 2015-02-10 Advanced Micro Devices, Inc. Buffer management using freelist buffers
US9385962B2 (en) * 2013-12-20 2016-07-05 Intel Corporation Method and system for flexible credit exchange within high performance fabrics

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010044569A (ja) * 2008-08-12 2010-02-25 Ricoh Co Ltd 情報転送回路、情報処理装置、情報転送回路の制御方法、制御プログラム及び記録媒体
JP2013528970A (ja) * 2010-03-29 2013-07-11 インテル コーポレイション ネットワークで使用される方法、装置及びシステム
JP2013025416A (ja) * 2011-07-15 2013-02-04 Ricoh Co Ltd データ転送装置及び画像形成システム

Also Published As

Publication number Publication date
US9552045B2 (en) 2017-01-24
TW201602770A (zh) 2016-01-16
EP3120216A1 (en) 2017-01-25
JP6321194B2 (ja) 2018-05-09
EP3120216B1 (en) 2020-11-04
KR101867435B1 (ko) 2018-07-23
CN104932996A (zh) 2015-09-23
KR20160111464A (ko) 2016-09-26
DE112014006490T5 (de) 2016-12-08
RU2653306C1 (ru) 2018-05-07
EP3120216A4 (en) 2017-11-29
US20160259394A1 (en) 2016-09-08
TWI556094B (zh) 2016-11-01
CN104932996B (zh) 2018-04-13
WO2015142336A1 (en) 2015-09-24

Similar Documents

Publication Publication Date Title
US20220012189A1 (en) Sharing memory and i/o services between nodes
JP6321194B2 (ja) リンクインタフェースの使用されていないハードウェアの電力消費を制御するための方法、装置及びシステム
JP6147840B2 (ja) ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム
US10515032B2 (en) Asymmetric transmission (TX) and receive (RX) lanes in a point-to-point interconnect using a peripheral component interconnect express (PCIE) resources in a computer system
US9954792B2 (en) Shared flow control credits
US10061707B2 (en) Speculative enumeration of bus-device-function address space
US11347673B2 (en) Method, apparatus, system for thunderbolt-based display topology for dual graphics systems
JP2017503245A (ja) 高速構成機構のための装置、方法、およびシステム
US11726927B2 (en) Method, apparatus, system for early page granular hints from a PCIe device
CN110633241A (zh) 用于非对称接口的动态高速通道方向切换的系统、方法和装置
US10817454B2 (en) Dynamic lane access switching between PCIe root spaces
US20190095554A1 (en) Root complex integrated endpoint emulation of a discreet pcie endpoint
US20230089863A1 (en) Executable passing using mailbox registers

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170905

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180202

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: 20180306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180404

R150 Certificate of patent or registration of utility model

Ref document number: 6321194

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250