(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-13
(54)【発明の名称】データ処理装置における性能レベル制御
(51)【国際特許分類】
G06F 15/173 20060101AFI20230906BHJP
【FI】
G06F15/173 660Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022572595
(86)(22)【出願日】2020-06-26
(85)【翻訳文提出日】2022-11-25
(86)【国際出願番号】 US2020039974
(87)【国際公開番号】W WO2021262197
(87)【国際公開日】2021-12-30
(81)【指定国・地域】
(71)【出願人】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】グプタ,ウッジワール
(72)【発明者】
【氏名】ヴェルマ,アンクシュ
(72)【発明者】
【氏名】セシャン,ラクシュミプリヤ
(72)【発明者】
【氏名】バリガー,ニケタン シヴァナンド
(72)【発明者】
【氏名】グプタ,ニヒル
(72)【発明者】
【氏名】チョーダリー,スワデシュ
(72)【発明者】
【氏名】バンサル,ヨーゲシ
【テーマコード(参考)】
5B045
【Fターム(参考)】
5B045BB35
(57)【要約】
データ処理装置のためのシングル通信ファブリックが提供される。
ファブリックは複数のデータ処理機能ユニット間のデータ通信チャネルのトポロジを提供する相互接続ネットワークを有する。
相互接続ネットワークは、データ処理機能ユニットの第1サブセット間のデータ通信を提供する第1相互接続ドメイン、及び、データ処理機能ユニットの第2サブセット間のデータ通信を提供する第2相互接続ドメインを有する。
パワーマネジメント回路は、第2相互接続ドメインの第2性能レベルの制御とは独立して、第1相互接続ドメインの第1性能レベルを制御するようにアレンジされている。
2つの異なるファブリックドメインのパフォーマンスレベルをそれぞれの異なる動作周波数に同時に設定するための機械可読命令及び方法が提供される。
【特許請求の範囲】
【請求項1】
データ処理装置のためのシングル通信ファブリックであって、前記シングル通信ファブリックは:
複数のデータ処理機能ユニットの間のデータ通信チャネルのトポロジを提供する相互接続ネットワークであって、前記相互接続ネットワークは、前記データ処理機能ユニットの第1サブセットの間のデータ通信を提供する第1相互接続ドメイン、及び、前記データ処理機能ユニットの第2サブセットの間のデータ通信を提供する第2相互接続ドメインを有する、相互接続ネットワークと;
前記第2相互接続ドメインの第2性能レベルの制御とは独立して、前記第1相互接続ドメインの第1性能レベルを制御するパワーマネジメント回路と;
を備える、シングル通信ファブリック。
【請求項2】
前記第1相互接続ドメイン及び前記第2相互接続ドメインのうちの、より高い周波数に設定された一方から、前記第1相互接続ドメイン及び前記第2相互接続ドメインのうちの、より低い周波数に設定された他方へのデータの通信をスロットリングするバックフロー制御回路を備える、
請求項1記載のシングル通信ファブリック。
【請求項3】
前記バックフロー制御回路は、前記より高い動作周波数と前記より低い動作周波数との間の差分、及び、前記第1相互接続ドメインと前記第2相互接続ドメインとの間の伝送方向の両方に依存して、前記第1相互接続ドメインと前記第2相互接続ドメインとの間で通信されるべきデータの制御を実行する、
請求項2記載のシングル通信ファブリック。
【請求項4】
前記バックフロー制御回路は、ONサイクルで示されるデューティサイクル内の前記より高い動作周波数のクロックサイクルの所定の第1サブセットに対して、前記第1相互接続ドメインと前記第2相互接続ドメインとの間のデータ通信が許可され、かつ、OFFサイクルで示されるデューティサイクル内の前記より高い動作周波数の前記第1サブセット以外のクロックサイクルに対して、データ通信が停止するように、デューティサイクルを実装することによって、通信されるべきデータの制御を実行する、
請求項3記載のシングル通信ファブリック。
【請求項5】
前記相互接続ネットワークは、デューティ期間の停止した通信クロックサイクルに対応するデータ損失が防止されるように、そうでなければデータ通信が停止されたデューティサイクルのクロックサイクルで送信されるはずのデータを送信側の前記相互接続ドメイン内で再循環させる、
請求項4記載のシングル通信ファブリック。
【請求項6】
前記パワーマネジメント回路は、適切な送信側の前記相互接続ドメインの動作周波数を増加させて、送信のために停止したデータの再循環をサポートし、前記データ損失から保護する、
請求項5記載のシングル通信ファブリック。
【請求項7】
前記バックフロー制御回路は、前記パワーマネジメント回路によって選択された、前記より高い動作周波数と前記より低い動作周波数との両方の値に依存して、デューティサイクルのOFFサイクルに対するONサイクルの相対比を決定する、
請求項4乃至6いずれか1項記載のシングル通信ファブリック。
【請求項8】
前記バックフロー制御回路は、(ft-fr)/frの比に依存して、デューティサイクル毎のOFFサイクル数を決定し、
ここで、ftは、送信側の前記相互接続ドメインが動作する前記より高い動作周波数であり、frは受信側の前記相互接続ドメインが動作する前記より低い動作周波数である、
請求項4乃至7いずれか1項記載のシングル通信ファブリック。
【請求項9】
前記バックフロー制御回路は、デューティサイクル比を決定するためのスロットリング回路ハードウェアを含み、前記スロットリング回路ハードウェアは、前記デューティサイクル比を近似するためのシフタを含む、
請求項8記載のシングル通信ファブリック。
【請求項10】
スロットリング回路ハードウェアは、第1入力として前記シフタの出力を受信し、第2入力として送信側の前記相互接続ドメインと受信側の前記相互接続ドメインとの間のクロックスキューのための補償を可能にするオフセット値を受信する加算器を備える、
請求項9記載のシングル通信ファブリック。
【請求項11】
前記データ処理機能ユニットの前記第1サブセット及び前記第1相互接続ドメインの両方を含む第1ダイレットを有し、
前記複数のデータ処理機能ユニットの前記第2サブセット及び前記第2相互接続ドメインの両方を有する第2ダイレットを有する、
請求項1乃至10いずれか1項記載のシングル通信ファブリック。
【請求項12】
前記第1ダイレットは演算ダイレットであり、
前記第1相互接続ドメインは演算相互接続ドメインであり、
前記第2ダイレットは入力/出力、I/O、ダイレットであり、
前記第2相互接続ドメインはI/O相互接続ドメインである、
請求項11記載のシングル通信ファブリック。
【請求項13】
前記演算相互接続ドメインは演算相互接続テレメトリ回路を有し、
前記I/O相互接続ドメインは前記演算相互接続テレメトリ回路から独立したI/O相互接続テレメトリ回路を有する、
請求項12記載のシングル通信ファブリック。
【請求項14】
前記パワーマネジメント回路は、
前記演算相互接続テレメトリ回路からの入力に依存して、前記演算相互接続ドメインに要求される性能レベルを決定し、及び
前記I/O相互接続テレメトリ回路からの入力に依存して、前記I/O相互接続ドメインに要求されるパフォーマンスレベルを決定する、
のうちの少なくともいずれかである、
請求項13記載のシングル通信ファブリック。
【請求項15】
前記パワーマネジメント回路は、少なくともそれぞれの要求された性能レベル及び1つ以上の制約に基づいて、異なる相互接続ドメインのそれぞれについて目標性能レベルを設定する、
請求項12乃至14いずれか1項記載のシングル通信ファブリック。
【請求項16】
前記1つ以上の制約は最小限界周波数及び最大限界周波数のうちの少なくとも1つを含む、
請求項15記載のシングル通信ファブリック。
【請求項17】
前記I/O相互接続ドメインは複数のサブドメインを有し、
前記パワーマネジメント回路は前記複数のサブドメインのそれぞれの性能レベルを独立して制御する、
請求項12乃至16いずれか1項記載のシングル通信ファブリック。
【請求項18】
演算ドメインは複数のサブドメインを有し、
前記パワーマネジメント回路は各演算サブドメインの要求された性能レベルを決定する、
請求項12乃至16いずれか1項記載のシングル通信ファブリック。
【請求項19】
前記演算ダイレットは、分散最終レベルキャッシュを含み、
前記パワーマネジメント回路は、全ての前記演算サブドメインの目標性能レベルを、要求された性能レベルのうちの最高のものに設定する、
請求項18記載のシングル通信ファブリック。
【請求項20】
請求項1乃至19いずれか1項記載のシングル通信ファブリックと、
前記複数のデータ処理機能ユニットと、
を備える、システムオンチップ。
【請求項21】
請求項1から19のいずれか1項に記載のシングル通信ファブリックと、
前記複数のデータ処理機能ユニットと、を備え、
前記複数のデータ処理機能ユニットは少なくとも2つの異なる半導体ダイ上に設けられる、
データ処理装置。
【請求項22】
機械可読媒体上に提供される機械可読命令であって、
前記命令は、シングル通信ファブリックのパワーマネジメントを実行するために処理回路によって実行され、
前記シングル通信ファブリックは、複数のデータ処理機能ユニットの間の通信を可能にする相互接続ネットワークを有し、
前記相互接続ネットワークは、前記データ処理機能ユニットの第1サブセット間のデータ通信を提供する第1相互接続ドメインと、前記データ処理機能ユニットの第2サブセット間のデータ通信を提供する第2相互接続ドメインとを有し、
前記機械可読命令は:
前記第2相互接続ドメインの第2性能レベルの制御とは独立して、前記第1相互接続ドメインの第1性能レベルを制御するためのコードであって、性能レベルは少なくとも動作周波数を含む、コードを含む、
機械可読命令。
【請求項23】
前記第1性能レベルと前記第2性能レベルとの間の任意の差に依存して、かつ、データの伝送方向に依存して、前記第1相互接続ドメインと前記第2相互接続ドメインとの間のデータの通信をスロットリングするコードを含む、
請求項22記載の機械可読命令。
【請求項24】
シングル通信ファブリックへのパワーを制御する方法であって、
シングル通信ファブリックは、 複数のデータ処理機能ユニット間の通信を可能にする相互接続ネットワークを有し、
相互接続ネットワークは、データ処理機能ユニットの第1サブセット間のデータ通信を提供する第1相互接続ドメイン、及び、データ処理機能ユニットの第2サブセット間のデータ通信を提供する第2相互接続ドメインを有し、
前記方法は、
前記第1相互接続ドメインのための第1性能レベルを制御するステップと、
前記第2相互接続ドメインのための第2性能レベルを制御するステップと、
前記性能レベルは少なくとも動作周波数を含み、
前記第1性能レベル及び前記第2性能レベルは、同時にそれぞれの異なる動作周波数にセットされることができる、
方法。
【請求項25】
前記第1性能レベルと前記第2性能レベルとの間の任意の差に依存して、かつ、データの伝送方向に依存して、前記第1相互接続ドメインと前記第2相互接続ドメインとの間のデータの通信をスロットリングするステップであって、
スロットリングされたデータは再循環され伝送が保留される、ステップを含む、
請求項24記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書で説明する実施形態は、概して、データ処理装置における性能レベル制御の分野に関するものであり、より具体的には、データ処理装置の通信ファブリックにおける性能レベル制御の実装に関するものである。
【背景技術】
【0002】
処理プラットフォームでは、電圧及び周波数の少なくとも1つを動的にスケーリングすることによってアクティブなパワーマネジメントを実行でき、この技術は、動的電圧周波数スケーリング(DVFS:Dynamic Voltage and Frequency Scaling)として知られている。DVFSは、プロセッサ又はその他のデータ処理機能ユニットがより高い(又はより低い)性能状態を要求する場合に実行されることがあり、ユニット使用率の変化に基づくことがある。より高い性能状態(より高い周波数状態)は、処理中の熱違反やピーク電流違反の検出など、より高い周波数の選択を緩和する他の制約または制限がない限り、しばしばDVFSコントローラによって付与される。サーバなどの処理プラットフォームは、それぞれが複数のコア、IOコントローラ、メモリコントローラ、及び画像処理ユニット(GPU)を含む複数の演算ユニットなどの複数のデータ処理機能ユニットをホストすることができるシステムオンチップ(SoC)として提供されることがある。SoC上のデータ処理機能ユニット間の通信は、データ通信チャネルの「ファブリック」を介して実行される。通信ファブリックには、リング、バス、又はメッシュトポロジを有することがあり、ファブリック全体で所与のパフォーマンスレベル(電圧と周波数の組み合わせ)で動作する。1つのファブリックがSoC全体にまたがることがある。データ処理機能ユニットの例は、演算ダイ、メモリダイ、入出力(IO)ダイなどを含む。
【0003】
サーバなどのデータ処理プラットフォームでは、全てのデータ処理機能ユニット間のシングル通信ファブリックとして、単一のコヒーレントサブシステムを使用することがある。このようなサーバのDVFSアルゴリズムは、ファブリックの性能レベルをグローバルに同一に設定し、性能カウンタと、SoC全体にまたがるデータ処理機能ユニットからの制約とに基づいているため、ファブリックの動作周波数は、ファブリックの一部が適切よりも高い電圧と周波数の組み合わせで動作するように制約されるように設定されることがある。これによりパワー浪費が発生する可能性がある。さらに、SoC上のそれぞれのデータ処理機能ユニットに対して、複数の位相ロックループ(PL)と完全統合電圧調整器(FIVR)を緊密に連携させると、複雑なグローバルアーキテクチャフローが発生する可能性がある。異なる周波数で動作する異なるファブリックを渡ってデータをバッファリングすると、数クロックサイクルのレイテンシが発生する可能性があり、送信中にデータが失われる可能性が高くなるため、パフォーマンスに悪影響を与える可能性がある。データ処理装置では、パワー最適化と性能最適化のバランスを取ることが難しい場合があることは認識されるであろう。最近では、サーバなどのデータ処理装置において、ファブリックの消費パワーが、主なパワー、性能及び設計上のボトルネックとなっている。
【図面の簡単な説明】
【0004】
本明細書に記載の実施形態は、添付の図面の図において限定ではなく例として図示され、同様の参照番号は同様の要素を指す。
【
図1】
図1は、データ処理装置用のシングル通信ファブリックであって、相互接続領域を有するシングル通信ファブリックを模式的に示す図である。
【
図2】
図2は、シミュレーション結果に基づいて、ワット単位のメッシュパワー及びギガヘルツ(GHz)単位のファブリック動作周波数による活動係数のそれぞれの変動を模式的に示すグラフである。
【
図3】
図3は、インターコネクト境界によって接続された6つの「ダイレット」を有するサーバシステムオンチップ(SoC)、及び、ダイレット境界に沿ってドメインに分割されたシングルファブリックを有するサーバシステムオンチップ(SoC)の設計図を模式的に示す図である。
【
図4】
図4は、少なくとも2つの性能レベルドメインを有するシングルファブリックにおいて、ローカルダイのTx周波数の範囲及びリモートダイのRx周波数の範囲に対してデータスロットリングを実行するためのDC OFFの計算値を示す表である。
【
図5】
図5は、異なる周波数で動作する2つの異なるファブリックドメイン間のインタフェースを提供するバックフロー制御回路の実装例を模式的に示す図である。
【
図6】
図6は、
図4の表に示されているローカルダイとリモートダイの周波数値の同じ所定範囲について、正確に計算された値とスロットリングデューティサイクルのDC OFFの近似値との違いを模式的に示した表である。
【
図7】
図7は、ドメイン境界の片側でファブリック動作周波数の周波数変更を実装するために、ダイ境界などのファブリックドメイン境界で実行されるシグナリングを模式的に示す信号図である。
【
図8】
図8は、性能レベル設定に関連付けられたデータのテレメトリが、ファブリックのドメインごとにドメイン上でどのように実行されるかを図式的に示す図である。
【
図9A】
図9Aは、階層型パワーマネジメントアルゴリズムを模式的に示すフローチャートを示す図である。
【
図9B】
図9Bは、パワーマネジメントユニットの通信シーケンスを模式的に示す図である。
【
図10】
図10は、複数の性能レベルドメインを有するシングル通信ファブリックのパワー制約を設定するためのユーザインタフェースの実施例を模式的に示す図である。
【発明を実施するための形態】
【0005】
本開示の例示的な実施形態には、データ処理装置におけるシングル通信ファブリックのパワーマネジメントのための方法、システム及び装置、及び機械可読命令が含まれるが、これらに限定されない。
【0006】
図1は、データ処理装置のシングル通信ファブリック100を模式的に示す。ファブリックは、送信元(sources)、宛先(destinations)、ルーティングルール、トポロジ、及びその他のプロパティの既知のセットを有するように定義され得る。送信元と宛先は、任意のタイプのデータ処理機能ユニットにすることができる。この実施例のシングル通信ファブリックは、第1ダイ120と物理的に分離された第2ダイ120を含む。第1ダイ110は、コンポーネントノード116と、さらに8つのコンポーネントノードとを有する。コンポーネントノードの実施例は、コアエージェント、メモリコントローラ、及び入力出力エージェントを有する。9つのうちの3つのコンポーネントノード112,114,116は、第1ダイ110の周辺にあり、第2ダイ120とのインタフェースを形成する。第1ダイ110上のコンポーネントノード112は、ダイ境界150に設けられた第1相互接続130aを介して第2ダイ120上の対応するコンポーネントノード122と通信する。ダイ境界150にはさらに2つの相互接続130b及び130cが設けられている。この実施例では、2つのダイ110,120は同じサイズであり、各ダイ境界コンポーネントノード112,114,116は対応する相互接続を有するが、代替的実施例では、ダイ境界の周辺コンポーネントノードのうちの1つ又は2つ(すなわちサブセット)だけに相互接続が提供され得る。各ダイ110,120は、対応する完全統合電圧調整器(FIVR:Fully Integrated Voltage Regulator)142a、142b及び位相同期ループ(PLL:Phase Locked Loop)144a、144bを有することができる。動作周波数がファブリック100の全てのコンポーネントノードとデータ通信チャネル(例えばワイヤー)に対して同じになるように、ファブリック100全体にシングルクロックソースがあり得る。ただし、ファブリックの動作周波数及び電圧をドメインごとに制御できるシングルファブリック内に異なる相互接続ドメインを作成するために個別のPLLを使用し得る。ファブリックのメッシュ及びノードの動作周波数と電圧は、メッシュを介して接続されたコア及びメモリの動作周波数と電圧に関係しない場合があることに留意されたい。
【0007】
インターコネクト130a、130b、130cは、物理的に別個の2つのダイ110,120間をそれらの境界で電気的に接続し、少なくともデータレーンとクロックレーン、及びオプションで制御レーンを提供することができる。一方のダイの送信機回路(図示されない)は、1つ以上の相互接続130a、130b、130cを介して隣接するダイの受信機回路(図示されない)に接続し得る。シングルファブリックを介した2つのダイ間の通信は、単方向、双方向、又はその両方があり得る。(1つ以上の)送信機及び(1つ以上の)受信機は、1つ以上のダイ110,120及び/又は相互接続130a、130b、130cに設けることができる。
【0008】
シングル通信ファブリック100の任意のコンポーネントノードに接続してハードウェアプロセッサを形成できるエージェントの実施例は、メモリコントローラ、プロセッサ、最終レベルキャッシュ(LLC)、キャッシュ回路、デコードユニットなどである。
図1の実施例では、第1ダイ及び第2ダイ110,120は同じサイズであるが、代替的実施例では、相互接続されたダイのサイズが異なり得る。さらに、2つ以上のダイを相互接続して処理パッケージを形成し得る。シングルSoCは、複数のコア及び関連するメモリなどの複数のコンポーネントを有する1つのダイを備え得るか、或いは、SoCは、
図3の例に示すように、2つ以上の異なるダイを使用して多数のコンポーネントをホストし得る。本技術によるデータ処理装置は、
図3のSoCのような2つ以上の演算ソケットを含むことができる。データは、例えば、パケットが最初に送信元コンポーネントからファブリック上の別の場所にある宛先コンポーネントに垂直にルーティングされ得、その後水平にルーティングされ得るような、ルーティングアルゴリズムに従ってパケットを介してファブリック100にわたって通信され得る。ファブリックの各コンポーネント112は、コア又はメモリコントローラ又は入力出力エージェントなどのエージェントとファブリック100との間のインタフェースを容易にする収束/共通メッシュストップ(CMS)に対応し得る。
【0009】
ダイ110,120は、プログラム命令を実行するための実行回路を含むことができ、最終レベルキャッシュ(LLC)コンポーネントをさらに含むことができる。LLCは、メモリにアクセスする前に呼び出すことができる共有の最高レベルのキャッシュであり、複数の、独立してアクセス可能なコンポーネントにスライスされ得る。LLCは、
図3を参照して以下に記載するように、複数のダイから形成される演算ソケット上の複数のコア間で共有することができる。
【0010】
この例では、シングル通信ファブリック100のダイ110,120はそれぞれ、データ通信チャネルの二次元(2D)メッシュ相互接続トポロジを有する。ファブリックは、リングトポロジ又はバストポロジなどの代替的トポロジを有し得る。
図1のメッシュは、データ通信チャネルのシステムワイド(system wide)(例:SoCワイド)の相互接続グリッドを形成するハーフリングの2D配列を含むファブリックである。コンポーネントの全ての垂直な列は双方向の半環を形成し、同様に、すべての水平な行は双方向の半環を形成する。このようにして、コンポーネント112などのコンポーネントは、メッシュの行と列のいずれかを経由してファブリック100の他のコンポーネントに接続でき、任意の2つのコンポーネント間の最短パスが可能になる。このようにして、リングトポロジなどの代替的ファブリックトポロジと比較して、レイテンシを低減し、帯域幅を向上させることができる。
【0011】
例えば、コンポーネントノード114がコアエージェント(シングルコア)に接続されたCMSを有し、かつ、コンポーネントノード124がメモリコントローラエージェントに接続されたCMSを有する場合、コアエージェントからのデータパケットは、相互接続130bを介して、コンポーネント116に垂直に、その後コンポーネントノード124に水平に、メモリコントローラエージェントにルーティングされ得る。この例では、水平ルーティングの前に垂直ルーティングが実行されるため、リターンパスは外向きパスとは異なり得る。なお、シングルダイ110は、演算、I/O及びメモリ制御に関する複数のエージェントを含み得る。
【0012】
プロセッサコアは、他のコアと並行して一度に1つのプログラムスレッドを実行できる独立した実行ユニットである。ダイは、プロセッサコアを構成するトランジスタ又はその他のコンポーネントが存在し得る、半導体材料(例えばシリコン)の単一の連続したピースである。マルチコアプロセッサは、単一のダイに2つ以上のプロセッサを有することもできるが、2つ以上のプロセッサを2つ以上のそれぞれのダイ上に設けることもできる。単一のファブリックが複数のダイにまたがる場合もあるが、この場合、ダイ境界は、ダイ境界を越えるコンポーネントノード112,122間のデータ通信のレイテンシを提供するように配置された相互接続機構がダイに設けられており、これはメッシュを介して同じダイ上の異なるコンポーネント間で達成可能なレイテンシに少なくとも近い。この説明では、「ダイレット(dielet)」という用語は、物理的に別個の半導体ダイであることができるが、ダイ境界を越えるファブリックが、2つの別個のファブリックとしてではなく、単一のファブリックのように機能することを可能にする方法で、隣接するダイに接続されたダイであることもできる。したがって、少なくとも一部のダイはダイレットであり得る。これは、例えば、2つの異なるファブリックが、単一のパッケージ内でブリッジを介して接続されているデュアルプロセッサシステムとは対照的であり、ブリッジはポイントツーポイントの相互接続ブリッジ(point-to-point interconnect bridge)であり、その遅延は2つの異なるファブリックのいずれかのイントラメッシュレイテンシ(intra-mesh latency)よりも低くなる。イントラファブリックレイテンシ(intra-fabric latency)は、物理的に別個の2つのファブリックを接続するブリッジ(又は同様のもの)を介して実現できるレイテンシと比較して非常に低くなる。ダイ境界にまたがる「単一ファブリック」がある場合、相互接続のレイテンシはイントラファブリックレイテンシと同じかそれに近いことが予想される。イントラファブリック帯域幅は、ブリッジを介したインターファブリックの帯域幅よりも高くなる可能性もあるところ、帯域幅も接続ワイヤの数に依存するが、レイテンシは依存しない。
【0013】
図2は、シミュレーション結果に基づいて、ワット単位のメッシュパワー及びギガヘルツ(GHz)単位のファブリック動作周波数による活動係数のそれぞれの変動を模式的に示すグラフである。活動係数(Activity Factor)は、SoC内のトランジスタで発生するスイッチングイベントの平均数を示し、無次元量である。三角形のデータポイントを伴う曲線222は、GHzの周波数 による、ワットのIOメッシュパワーの変動を示し、パワーについて1GHzのファブリック動作周波数に対する約3Wから、2GHzのファブリック動作周波数に対する約4.2Wまで、非線形に増加する傾向が見られる。正方形のデータ点を通る曲線224は、活動係数が1GHzの動作周波数で約6、2GHzで約3であるように、ファブリック動作周波数による動作係数の変化を示す。活動係数は、周波数が増加するにつれて非線形に減少することが
図2に示されている。活動係数は、ファブリックの使用率を示す。
【0014】
2.2GHzの周波数でのSPEC(SPEC:Standard Performance Evaluation Corporation)ワークロードに対するIOダイ(データ処理機能ユニットの一種)内のファブリックの消費パワーは約4.8Wである。SPECワークロードは、コンピュータシステムの性能を評価するために広く使用されている。同じ周波数では、IOダイ内のファブリックに対する活動係数は0.3未満である。これは、ファブリックの動作周波数を2.2GHzから800MHzに下げることで、パワー消費を約2Wだけ削減できることを意味する。この同じ周波数の減少は活動係数を増加させる。ただし、800MHzの低周波数でも、活動係数は0.8未満である。したがって、これらのシミュレーション結果によると、性能への悪影響をほとんど又はまったく受けずに2Wのパワーを節約することが可能である。活動係数がさらに低いワークロードでは、
図2の800 MHz制限よりも周波数を低くすることで、2W以上のパワーを節約できる。消費パワーと活動係数は、周波数に依存するだけでなく、ワークロードにも依存する。
【0015】
図3は、相互接続境界によって接続された6つの「ダイレット」を有するサーバSoC300の設計図を模式的に示しており、これは、イントラダイレット通信と同様のレイテンシでインターダイレット通信を可能にする。単一のダイレットは、複数のそれぞれのファブリックノードに設けられる1つ以上のコアを構成し、メモリ、ファブリックなどの「CPUシステム」の他のコンポーネントをさらに備えることができる。第1ダイレット310は二つのIOコア314,316と第1パワーマネジメントユニット312から構成される。第2ダイレット320は、ダイレット内のメッシュファブリックのそれぞれのノードにある5つのプロセッサコア(図示されていない)と、ダイレットに隣接して示されているメモリ328へのアクセスを提供するための、異なるノードにある少なくとも1つのメモリコントローラエージェントを備え、第2パワーマネジメントユニット322をさらに備える。代替的実施例では、任意の数のコアを、ファブリックのノードのさらなるエージェントとともに、第1ダイレット又は第2ダイレットなどのプロセッサ(又は演算)ダイレット上に設けることができる。第2ダイレットと同様に、この実施例では、第3ダイレット330、第4ダイレット340、第5ダイレット350はそれぞれ、5つのプロセッサコアとメモリコントローラエージェントを備え、各ダイレットはそれぞれ、ローカルパワーマネジメントユニット322,332,342,352を有する。4つのプロセッサダイレット320,330,340,350のそれぞれは、隣接するプロセッサダイレット又はIOダイレット310,360と相互接続しない、その4つの境界のいずれかにそれぞれのメモリダイレット328,338,348,358を有する。設計図の下部にある第6ダイレット360は、第1ダイレット310の鏡像であり、また、2つのIOコアと第6パワーマネジメントユニット362を備える。6つの各ダイレットには、それぞれのダイレットに設けられた関連するローカルパワーマネジメントユニット362を有する。
【0016】
6つのダイレットのそれぞれは、DVFSを介して対応するダイレットのファブリックの動作周波数を動的に変更するために、1つ以上のパワーコントロールユニットによって制御され得る専用のFIVR及びPLL(
図1に示すダイと同様)を有することができる。各プロセッサダイレットは、メモリのダイレット328,338,348,358とインタフェースしないダイレットの四辺のうちの三辺にファブリック相互接続とバッファが設けられている。
【0017】
既知のサーバSoCでは、個々のダイレット上でPLLとFIVRが利用可能であるにもかかわらず、単一の通信ファブリックが複数の物理ダイレットにわたって分散した所与の動作周波数(f)及び電圧(V)で動作する。複数の物理的ダイレットにまたがる単一の電圧と周波数(V-f)ドメインが、ハードウェアアーキテクチャの依存性によって選択された。グローバルV-fは、SoC全体にわたる複数の入力を監視するパワーマネジメントユニットに基づいて選択される。グローバル性能レベルを決定するために使用される入力の実施例は、1つ以上の性能カウンタ、perf-p制限、モデル固有レジスタ(MSR)カスタマーオーバーライド、ソケット温度制限、及びRAPL(RAPL:Running Average Power Limit)を含むことができる。目標周波数は、SoC上の全てのプロセッサコアにわたる最大要求周波数に基づいて選択される得るが、温度やパワーなどの他の制約により、要求された目標周波数がパワーマネジメントユニットによって許可されない場合がある。ただし、SoCファブリック全体で単一のV-fで動作するということは、緊密に結合されたアーキテクチャフローを実装して、SoCの全てのダイレットにまたがってV-fを調整された方法で変更することを意味する。ファブリックパーティションにまたがって全てのPLLとFIVRを緊密に調整すると、複雑なグローバルアーキテクチャフローが発生する。さらに、単一のV-fドメインは、それぞれのファブリック部分の優勢な(prevailing)ワークロードに基づいて、ファブリックの大部分を必要以上に高いV-fで実行するように制約する可能性があり、パワー浪費と性能の低下を引き起こす。不均一なファブリックトラフィック分散で複数の異なるV-fドメインを使用することにより、SoCの最適化されたパワーと性能を得ることができる。例示的シナリオは以下を含む。
【0018】
ただし、単一の通信ファブリック上で異なる性能レベル(V-f)ドメインを許すことに対する1つの阻害要因は、高い動作周波数のダイレットから低い動作周波数のダイレットにデータを通信するとき(すなわち、周波数の不一致がある場合)に発生する可能性のあるレイテンシを管理するという課題による。異なるダイレット間の動作周波数の不一致による不用意なデータ損失を防ぐというさらなる課題がある。異なるファブリックドメイン間の周波数不一致を補正する1つのオプションは、ダイレットインタフェースに非同期FIFO(先入れ先出し)バッファを実装することです。ただし、このような非同期FIFOは2~3サイクルのレイテンシにつながる可能性があり、単一の共有ファブリックの性能低下の結果として許容できないほど高くなる可能性がある。非同期FIFOとは、1つのクロックドメインからFIFOバッファにデータ値が書き込まれ、別のクロックドメインから同じFIFOバッファからデータ値が読み取られるFIFO設計を指し、2つのクロックドメインは互いに非同期である。
【0019】
現在の技術では、単一のファブリックを2つ以上のファブリックドメインに分割でき、その性能レベル(例えば動作周波数)を独立して設定し、不一致の値に設定できる。例えば、第1ファブリックドメインは、データ処理機能ユニットの第1サブセット間のデータ通信チャネルを提供し、異なる第2ファブリックドメインは、データ処理装置のデータ処理機能ユニットの異なる第2セットを提供することができる。単一のファブリックドメインが、演算ダイ上の全てのデータ処理機能ユニットを備えることができ、別のファブリックドメインがIOダイ上の全てのデータ処理機能ユニットを備えることができる。或いは、異なる物理的ダイレットのデータ処理機能ユニットを同じファブリックドメインの一部としてグループ化することもできる。このマルチドメインファブリックは、レイテンシを低減しながら、ファブリックドメインの境界にわたる周波数の不一致によって発生する可能性のあるデータの不用意な損失を回避する方法で実装できる。
図3のサーバSoCの各ダイレット境界では、ファブリック相互接続とバッファユニット324に、より高い周波数で動作するダイレットからより低い周波数で動作するダイレットへの伝送のためのデータのバッファリングを可能にするバックフロー制御回路(図示されない)が提供されている。バックフロー制御回路の一例の実装を
図5に模式的に示す。
【0020】
図3のSoCでは、6つのダイレット310,320,330,340,350,360のそれぞれが、対応するファブリックドメインの適切な動作周波数(又は他の性能レベル)で動作するように独立して設定され得る。したがって、例えば、第5ダイレット350の現在のワークロードレベル(current workload level)が第3ダイレット330のワークロードよりも低い場合、第5パワー制御ユニット352は、第5ダイレット350の動作周波数を第3ダイレット330の動作周波数よりも高く設定することができる。したがって、第5(より高い周波数の)ダイレットから第3(より低い周波数の)ダイレットまでファブリックを介してデータを伝送する場合、ファブリックI/C及びバッファユニット356のバックフロー制御回路は、伝送データフローレートを制御し、データ損失を防ぐために第5ダイレット350のファブリック内でデータを再循環させることによって、伝送保留中のデータ(data pending transmission)をバッファする。
【0021】
図3は、6つのそれぞれのダイレット境界に一致する個別の性能レベル(Vi-fi)を有するファブリックの6つの異なる相互接続ドメインを示す。ただし、代替的配置では、ファブリックの相互接続ドメインは、単一のダイレット内に形成される場合もあれば、異なるドメインを画定するパーティションがダイレット境界と一致しない方法で2つ以上のダイレットにまたがる場合もある。異なる相互接続ドメインは、各相互接続ドメインの周波数と電圧を独立して設定するための回路が利用可能であれば、さまざまな異なる方法で形成され得る。異なるファブリックドメインは、単一のファブリックによって接続されたデータ処理機能ユニットのそれぞれの異なるサブセットにデータ通信チャネルを提供し得る。サブセットは、メッシュトポロジを有するファブリックなどのファブリックのコンポーネントノードにインストールされた1つ以上のデータ処理機能ユニットを備え得る。
【0022】
複数の異なるダイレット上に複数のコア、メモリ、ファブリック、及びI/Oを有するSoC300は、「演算ソケット(compute socket)」と表記することができる。2つ以上の演算ソケットを銅線などの電気コネクタで接続して、データ処理装置を形成することができる。演算ソケット間の接続は、所与の演算ソケットの単一ファブリック内の通信チャネルと比較して、高いレイテンシが発生する可能性がある。
【0023】
図3のSoC300の単一の通信ファブリックを流れるデータトラフィックは、6つの異なるファブリックドメインを認識しない場合がある。隣接する2つのファブリックドメインが異なる周波数で動作する場合、より高速なファブリックドメインからより低速なファブリックドメインにあまりにも高速にあまりにも多くのトラフィックを伝送することで、低速なファブリックドメインでトラフィックボトルネックが発生する可能性がある。このことは、伝送されても受信時に十分な速度で処理できないデータが失われる可能性がある。かかるデータ損失を改善するために、より高速なファブリックドメインからより低速なファブリックドメインに向かうトラフィックを制御するために、本技術(the present technique)に従って動的バックプレッシングスロットリング機構が実装されている。スロットリング機構の制御パラメータは、2つのファブリックドメイン間の周波数の差分の大きさに依存して決定される。
【0024】
2つの異なるファブリックドメインを考慮すると、1つは送信機(Tx)である「ローカルダイ」を表し、もう1つは受信機(Rx)である「リモートダイ」を表す。トラフィック損失の可能性がある興味深いケースとして、TxファブリックがRxファブリックよりも高速に動作している場合があります。本技術によるバックフロー制御回路を使用して、伝送中のデータのスロットリング(throttling)を実行し、トランザクションのON/OFFビッド(N/OFF bidding)を実装し、「デューティサイクル」波形に基づいてカウンタを設定する。これにより、データトランザクションはオンフェーズでビッド(bid)できるが、オフフェーズではビッドできない。換言すると、データパケットはONフェーズではローカルダイからリモートダイに通信されるが、OFFフェーズではデータパケットの通信は許可されない。したがって:
デューティサイクル(DC)オン(DC ON):これらのクロックサイクルでデータパケットを送信する。
デューティサイクル(DC)オフ(DC OFF):これらのクロックサイクルでデータパケットを送信しない。
【0025】
パケットが1サイクルでTxからRxに送信される場合(DC ON=1)、DC OFF、つまり、1サイクルのトラフィックを送信した後で、送信トラフィックが抑制されるサイクル数が決定される場合があります。DC ONとDC OFFのクロックサイクルは、ローカル(より高い周波数)ダイのクロックサイクルである。例えば、DC ONが1でDC OFFが2の場合、パケットを送信する時間の割合は1/3、パケットを送信しない時間の割合は2/3になる。Tx周波数とRx周波数の新しい組み合わせごとに、新しいデューティサイクル値を計算することが適切であることに留意されたい。これにより、デューティサイクルの決定は非自明となる。本技術によれば、例示的な実装デューティサイクル値の決定が提供され、デューティサイクル決定の同じものの低オーバーヘッドハードウェア近似も提供される。ハードウェア近似は、
図5に示すバックフロー制御回路によって実装される。
【0026】
デューティサイクル値を決定するには、ファブリックの周波数を「xratio」で表すことを考慮する。一実施例では、比の単位は100MHzの周波数を意味する。したがって、比が20の場合、周波数は2000MHz、つまり等価で2GHzを意味する。
【0027】
図4の表は、「理想的な」スロットリング機構のDC OFFサイクルの10進数を示している。
x
ratioRx≧ x
ratio_Txの場合、パケットを不用意にドロップしないようにする必要がある(
図4の表にデータクロスポイントとして示される)。これは、DC OFFを0にする必要があることを示してる。ただし、x
ratioRx<x
ratioTxの場合、Txダイは、DC ON=1サイクルごとにパケットを伝送し、その後、DC OFFサイクル数の間、伝送を停止するのが適切であり、次のように演算できる。
【数1】
【0028】
ただし、伝送のためのデータのスロットリングはクロックサイクルの全数のデータの塊でのみ実装できるため、DC OFFの小数は完全な整数に丸められる。
図4は、4から35までのx
ratioTxからのローカルダイのTx周波数の範囲と、4から35までのx
ratioRxからのリモートダイRx周波数の範囲について、上記の式(1)に基づいて計算されたDC OFFの値を模式的に示す表である。
図4の下対角領域のテーブルエントリはすべて、Rx周波数を超えるTx周波数に対応しており、左下対角の数値エントリは、最も近い整数に丸める前に式(1)から計算されたDC OFFサイクルの数に対応している。Tx周波数とRx周波数との間のずれが大きいほど、適切なDC OFFサイクル数が多くなる。
【0029】
式(1)は、データの適切なスロットリングを実行するためにハードウェアで実装できるが、ハードウェアで除算を実装すると、演算コストが高くなる。さらに、式(1)に従ってTxをRxダイ周波数比にマッピングするために実装されるデコーダロジックは複雑になる可能性がある。さらに、式(1)をハードウェアで実装すると、RxとTxが増加するにつれてスケーラビリティが低下する可能性がある。除算の代わりに右シフトを使用して式(1)のDC OFF計算を近似することで、より効率的でより複雑でない演算をハードウェアで実行できる。これは、シフト操作が適切な近似を提供し、除算よりも演算コストが低いため、理にかなっている。1つの実装によれば、式(1)は次の式に従って近似される。
DC OFF=(xratioTx-xratioRx)≫y+offset (2)
ここで、y= floor(log2xratioRx)である。
【0030】
図5は、式(2)のハードウェア実装を表すバックフロー制御回路を模式的に示す。
図5の回路は、減算器510、優先エンコーダ520、シフタ回路ユニット530、加算器540、調停回路550から構成される。優先エンコーダは、2進数で「1」となる最上位ビットのインデックスを選択するデジタル回路である。たとえば、2進数の01001では、プライオリティエンコーダは3を出力する。したがって、y=3の場合、式(2)のTx比とRx比の差を右シフトして2
3による除算を行う。減算器510は、第1入力として6ビットのTx比(x
ratioTx)を受信し、その値から6ビットのRx比(x
ratioRx)を減算し、減算結果をシフタ回路530への入力として出力する。シフタ回路530は、ビット位置の整数yだけ減算結果に右シフトを実行し、シフトした差分値を加算器540に供給する。右シフトの大きさに対応する整数yは、優先エンコーダへの入力として供給される6ビットRx比(x
ratioRx)に依存して、優先エンコーダ520によって計算される。加算器540は、シフタ回路530によって出力された右シフトされた差分値に対応する第1入力を受信し、加算器への第2入力は1つ以上の値を有する8ビットオフセットである。オフセット値は、所与のソースからのクロック信号が異なる時間に異なる回路コンポーネントに到着し得る現象であるクロックスキューの補償を可能にするために提供される。クロックスキューは、DC OFF値に1サイクルの一部を追加する可能性があり、計算されたDC OFF時間を最大1クロックサイクル増加させる可能性がある。チューニングフェーズでは、offset=2の値を初期設定して、SoCの異なる機能ユニット(Stock Keeping Unit、SKUなど)の最悪の場合のクロックスキューを考慮することができる。クロックスキューを補償するためにチューニングした後、近似が機能的に正しいようにオフセットを1に設定することができる。調停回路への2つの入力のうちの1つとして供給されるイネーブルビットは、スロットリングを無効にするのに役立ち、これは、x
ratioRx≧x
ratioTxの場合に適切である可能性がある。調停回路550への他の入力は、計算されたDUTY CYCLE OFF値に対応する加算器540の出力である。イネーブルビットと同様に、一連の「チキンビットロジック(chicken bit logic)」回路を使用して調停回路に入力を提供することができ、所与のスロットリングの実装が他の理由で、集積回路で使用されない場合に、スロットリングを無効にするために使用できる。
【0031】
バックフロー制御回路500は、異なるファブリックドメイン間の境界で相互接続の一部として実装することができる。
図3のサーバSoCの例のように、ファブリックドメインがダイレット境界と一致する例では、バックフロー制御回路500を1つ以上のファブリック相互接続及びバッファユニット336,356に設けることができる。あるいは、イントラメッシュドメイン境界に近接したファブリックのイントラメッシュ領域にバックフロー制御回路を設けることもできる。
【0032】
図 5 のバックフロー制御回路によって提供されるファブリックバックプレッシャ機構(The fabric backpressure mechanism)は、式(2)及び(3)と共に、データパスでの余分なレイテンシを伴うことなくデータ損失を防止することによって、それぞれ異なる性能レベルを持つ2つ以上の異なるドメインを有する単一のファブリックの性能を強化する。さらに、提案されたバックプレッシャ機構は、最小のハードウェアロジックを使用して、隣接するドメイン間の広い範囲の周波数ミスマッチにわたって作用する。
【0033】
図6は、式(2)から導出される、
図4の表に示されるローカルダイ周波数値及びリモートダイ周波数値の範囲の同じ所定の範囲についてのDC OFFの値と、式(2)から導出される近似DC OFF値との差を模式的に示す表である。
図6のテーブルでは、テーブルエントリの0は完全な近似を示し(この場合、
図4のテーブルDC OFF値と式3の近似が一致する)、理想的なケースである。
図6の表では正の値は発生せず、良好であり、これはDC OFF値の過小評価につながり、パケットのドロップという潜在的な結果をもたらす可能性があるためである。
図6のテーブルの負の値のエントリは、
図5のバックフロー制御回路500の近似ロジックが、
図4に示すテーブルのより正確な計算によって厳密に必要とされるよりも高いスロットリングを予測することを示している。これにより、性能が若干低下する可能性があるが、少なくとも以下に列挙する理由により、これは許容される。
【0034】
i. テーブルに負の値のエントリが表示されるほとんどの場合、リモートダイの動作が遅すぎる(
図6の表を参照)。これは、実行時には可能性が低いシナリオである(例:35のx
ratioTxと、9のx
ratioRx。可能性が高いのは、周波数の差分があまり大きくない場合である。
【0035】
ii. 差分が大きい場合でも、リモートダイの方がより遅いため、Txダイ(より速い)からRxダイ(より遅い)へのフローに必要なトラフィックは少なくて済むはずである。
【0036】
iii. 推定誤差は、小さい絶対時間値である(送信ダイの動作周波数に基づく)より高速な周波数サイクルに関するものである。たとえば、3.5GHzでの4サイクルペナルティは、0.8GHzでの1サイクルレイテンシよりも時間が短くなる。
【0037】
iv. ある程度の推定誤差があっても、すべてのTx比とRx比でDC OFF=8という固定の最悪ケース値を選択するよりは優れており、性能のペナルティが比較的高くなる。
【0038】
ダイレット境界のファブリックI/C及びバッファユニットs336,356より前のデータパスは、ダイレット内のイントラメッシュパスであることが保証される。これは、2つのファブリックドメイン間の境界がダイレット境界と一致しない場合でも当てはまる。したがって、DC OFF期間であってもデータが失われてはならない。相互接続領域のバッファがそれ以上のデータを受け入れられない場合、送信側ファブリックドメインのファブリック上のデータは単にバウンスされ、ローカルファブリックドメインに再循環される。このバウンスされたトラフィックは、ローカルファブリックドメインのファブリック使用率を高め、対応するローカルパワー制御ユニットに対して、バウンスされたデータトラフィックの再循環に対応するためにローカルファブリックドメインの周波数を増やす必要があることを、ハードウェアカウンタを通じて示す。要約すると、ファブリックドメインインタフェースのバッファがより多くのデータを受け入れることができない場合、トラフィックはバウンスされるが、本技術によれば、伝送を待機しているデータがドロップされることはない。対照的に、
図5のバックフロー制御回路を使用して送信のデューティサイクルを決定する代わりに、ファブリックドメインの境界で非同期FIFOを実装すると、ローカルファブリックドメインの動作周波数がリモートファブリックドメインの動作周波数を超える場合に許容できないレイテンシと潜在的なデータ損失につながる可能性が非常に高くなる。
【0039】
図7は、ドメイン境界の片側でファブリック動作周波数の周波数変更を実装するために、ダイ境界などのファブリックドメイン境界で実行されるシグナリングを概略的に示す信号図である。簡単にするため、
図7では、低レベルの実装の詳細は2つの主要コンポーネント(パワーマネジメントユニットと相互接続インタフェース)に抽象化されている。周波数の変更は、周波数の増減である。
図7の例では、第1ファブリックドメインに対応する第1パワーマネジメントユニット710及び第1相互接続720と、第2ファブリックドメインに対応する第2パワーマネジメントユニット770及び第2相互接続760と、のタイムラインの信号フローが示されている。この例では、ファブリックドメイン境界750は、同一のSoC上の隣接する2つのダイ間のダイ境界と一致しており、第1パワーマネジメントユニット710はSoCのダイ0に対応し、第2パワーマネジメントユニットはSoCのダイ1に対応する。ただし、他の例では、ファブリックのドメイン境界がダイ境界と一致しない場合もある。
【0040】
ボックス712で、第1パワーマネジメントユニット710は、ダイ0のファブリックドメインの動作周波数をf1からf1*に変更する周波数変更要求を生成し、f1*への周波数変更を要求する信号713を第1相互接続720に送信する。周波数変更要求信号712に応答して、第1相互接続720は、(i) 内部信号723を介してダイ1へのトラフィックを一時的にブロックし、かつ(ii) 第2相互接続760に信号725を送信して、ダイ1からの着信トラフィックを一時的にブロックする。第1相互接続720からの信号725に応答して、第2相互接続760は、内部信号763を介してダイ0への発信トラフィックのブロッキングを実装する。各方向のトラフィックがブロックされた後、2番目の相互接続720は、それぞれの相互接続がダイ0に実装される要求された周波数変更の準備ができていることを示す信号715を最初の電源管理ユニット710に送信する。
【0041】
次にボックス714で、第1パワーマネジメントユニット710は、ローカルPLLを新しく要求された周波数f1
*に再ロックし、信号717を第1相互接続に送信します。周波数変更f1→f1
*がダイ0に実装された後、第1相互接続720は
図5の回路を使用してスロットリングを実装し、内部信号727を介して適切なデューティサイクルを決定する。スロットリングの設定がダイ0上の第1相互接続720でローカルに実装されると、第1相互接続720は第2相互接続に信号729を送信し、変更された周波数値f1
*をダイ1に通知する。その後、第2相互接続760は内部シグナリング765を使用して、f1
*とf2との間の周波数差分に基づいてスロットリングを実装する。ダイ0及びダイ1のうち送信ダイでのみスロットリングを設定する必要があると仮定できるかもしれないが、f1
*とf2との関係がわからない場合があるので、仮定はなされない。2つの方向のどちらかでトラフィックフローのスロットリングを設定する可能性がある場合、ダイ境界をわたる両方のダイがスロットリング用に構成され得る。相互接続の両側(すなわち、ファブリックドメイン境界)で周波数不一致(f1
*-f2)に対する適切なスロットリングデューティサイクルが構成された後、第1相互接続720は信号733を第2相互接続760に送信し、ダイ0へのトラフィックのブロックを解除する。最終的に信号719でフローが完了し、ダイ0のファブリックドメインの周波数変更がファブリックドメイン境界に実装された。
【0042】
スロットリングデューティサイクルに対するこの変更のこの実装は、ダイ0のファブリック周波数の変更が影響する異なるファブリックドメイン境界の数に応じて、1つより多いファブリックドメイン境界で実行できる。
図3の実施例では、V1-f1への変更は、第2ダイレット320及び第3ダイレット330のそれぞれと同様の信号交換シーケンスをトリガーし得る。さらなる実施例として、V3-f3への変更は、第1ダイレット310、第2ダイレット320及びダイ5ダイレット350のそれぞれでシグナルシーケンスをトリガーし得るが、第4ダイレット340はトリガーしない。
図7の信号フローによると、2つのインタフェースファブリックドメイン間のDVFSの単純化された非協調フロー(non-coordinated flows)が実現されている。つまり、一方のダイ上のファブリックが周波数を変更しても、もう一方のダイ上のファブリックも周波数を変更するようにトリガーされることはない。
【0043】
図8は、データ処理装置において、性能レベル設定に関連するデータのテレメトリが、本技術の一実施例に従って、個々のファブリックパーティション(ドメイン)単位でどのように行われるかを模式的に示している。
図8は、IOダイ(又はドメイン)810と演算ダイ(又はドメイン)850に細分化された(sub-divided)テレメトリシステム800を示している。IOダイ810は、IOパワー制御ユニット812、IOファブリックドメイン帯域幅モニタ814、IO帯域幅モニタ816を有する。演算ダイ850は、演算パワー制御ユニット852を有し、演算パワー制御ユニット852、演算ファブリックドメイン帯域幅モニタ854、ストールモニタ又は停止モニタ(a stall monitor)856、非アイドル状態常駐モニタ858を有する。
【0044】
単一のファブリック全体で単一の性能レベルを実装するシステムでは、単一のパワー制御ユニットが、SoCの少なくとも複数のダイレットからワークロード情報を受信し、その照合されたワークロード情報を使用して適切な性能レベルを決定する場合がある。この場合、1つのファブリックドメイン帯域幅モニタのみが設けられる可能性があります。対照的に、本技術によれば、異なるファブリックドメインごとに異なるファブリックドメイン帯域幅モニタを設けることができる。専用IOパワー制御ユニット812は、IO帯域幅モニタ816からの情報に基づいて、IOダイの性能レベルを要求する。
【0045】
演算パワー制御ユニット852は、ストールモニタ856と非アイドル状態常駐モニタ858を使用して優先的な(prevailing)ワークロードを監視し、IOワークロードを考慮せずに、その入力に基づいて演算ファブリックの性能レベルを要求する。非アイドル状態常駐モニタ858は、コアが実行中でアイドル状態でない期間をモニタリングすることができる。プロセッサの各コアは、コアまたはプロセッサの速度及び消費パワーを設定する多数の電圧-周波数ペア(Pステート)と、多数のアイドル状態(C ステート)のコアとを有する。プロセッサの動作電圧が低いと、パワー消費も低くなる。異なるCステートは、SoCの、ますますより多くの(progressively more)コンポーネントのクロックゲーティングに対応する場合がある。周波数は電圧と連動して低下するため、周波数が低いと演算が遅くなる。パワー制御ユニット852は、プロセッサの使用率を定期的にモニタリングする。その使用率が特定のしきい値未満の場合、P状態が増加し得る。つまり、データ機能ユニットは次により高いパワー効率状態になり得る。理想的には、使用率は可能な限り100%に近くする必要がある。
【0046】
図9A及び9Bは、ファブリックDVFSのパワーマネジメントの実行方法を模式的に示す。要求される性能レベルは、それぞれのドメインの処理ワークロード及びメッシュ帯域幅のそれぞれを特定の考慮に入れるために、個別のファブリックドメインごとに独立して決定され得る。要求された性能レベルは、少なくとも1つの制約に依存してファブリックドメインの要求された性能レベルを許可するかどうかを決定するパワー制御マスターユニットによって照合され得る。制約の例には、最大総パワー制限、最小総パワー制限、最小性能レベル、熱的制約などが含まれる。代替的例では、単一のマスターパワー制御ユニットは、単一のファブリックによって接続された2つ以上のダイからテレメトリを受信し、そのテレメトリに基づいて異なる性能レベルを有するようにファブリックの異なるドメインを制御するし得る。いくつかのかかる例では、マスターパワー制御ユニットがパワー制御を行い、スレーブパワーユニットを設ける必要はない。
【0047】
本技術によれば、1つのファブリック内に2つ以上の異なるドメインを含み、異なるドメインが異なるファブリック動作周波数で同時に動作するファブリックDVFSに階層的パワーマネジメントアルゴリズムを実装することができる。階層型パワーマネジメントアルゴリズムの例を
図9Aに模式的に示す。プロセス要素910で、Pユニット(パワーマネジメントユニット)コントローラは、一連の発見的アルゴリズム(heuristic algorithms)を適用して、ダイレットのテレメトリデータセットを処理した後に、ローカルダイレットファブリック部分(ドメイン)に必要な周波数を発見する。この周波数は、ファブリックドメインのトラフィックが大きい場合に増加し、小さい場合に減少し得る(vice versa)。
【0048】
次に、プロセス要素920で、各Pユニットコントローラーは、ローカルテレメトリに基づいて計算された要求周波数をマスターPユニット952に送信する(
図9B参照)。マスターPユニット952は、perf-p制限、RAPL制限、システムのアーキテクチャなど、ユーザが適用した制限に基づいて周波数を解く又は解決する(resolves)。
【0049】
プロセス要素940では、Pユニットマスター952によって決定された解周波数又は解決済み周波数(resolved frequency)がスレーブPユニット954,956,958に通信して戻され、Pユニットマスター952から受信した解性能レベル又は解決済み性能レベル(resolved performance level)に従って、決定を強制し、ローカルダイのPLLが再設定される。
【0050】
一実施例の実装では、データ処理装置の独立したファブリック制御には2つのモードが使用可能である。これらのモードは、
図10に示すように、ユーザから視認可能なインタフェースから選択できる。
【0051】
モード1:レガシーモード(サーバファブリック全体が単一のドメインとして取り扱われ、同一周波数を有するようになる)
【数2】
ここで、f
r,iは、N個の異なるファブリックドメインごとに、マスターパワー制御ユニットによって解かれた又は解決された周波数である。本実施例では、グローバル周波数は、各ファブリックドメインから着信する性能レベル要求の最大周波数値として選択され得る。
【0052】
モード2:各ファブリックドメインが性能レベル設定の目的で個別のエンティティとして取り扱われる独立ファブリックDVFSモード。また、LLCがデータ処理装置に分散されている例では、同じ演算ダイ上にあるファブリックドメインについして異なる周波数を有することは不所望である可能性があることに留意されたい。ただし、SNCモードが有効でない限り。
fr,compute=max(fi) ただし、i∈演算ダイレット(Compute dielet)
fr,HSIO=fj ただし、j∈HSIOダイレット(HSIO dielet)(両IOは異なる周波数を有することができる。)
【0053】
図10は、本技術によるマルチドメイン単一ファブリックデータ処理装置のユーザインタフェース例を模式的に図示する。ユーザインタフェースを提供して、SoC上の異なるファブリックドメインごとに周波数(さらに電圧)をユーザが選択できるようにし得る。
【0054】
図10に示すユーザインタフェースの例には、次4タイプの変数がある。
【0055】
i. ファブリックドメイン比ステータスN -ファブリックドメインNFの現在の周波数を示す
ii. ファブリックドメイン比MAX LIMIT N -ファブリックドメインNの周波数にこの制限を適用する
iii. ファブリックドメイン比MIN LIMIT N -ファブリックドメインNの周波数にこの制限を適用する
iv. ファブリックDVFSモードの選択
【0056】
このユーザインタフェースを介して、ユーザは、たとえば、特定のファブリックドメインのMAX LIMITとMIN LIMITを同じに設定し、特定の要件に従ってファブリックドメインの周波数を強制的に設定できる。
【0057】
本技術によれば、不均一なファブリックのトラフィック分布下で複数のV-Fドメインを使用してより良いパワー及び性能の最適化を得ることが可能である。実装シナリオの例は次のようなものを含む:
【0058】
- 高速IO(High Speed IO:HSIO)のDVFSでのタイルファブリックの分解
- 複数ソケットレベルのクラスタ構成
- メインコアダイファブリックと同じ周波数で動作できないコンパニオンダイファブリック
- サブNUMA(不均一メモリアクセス:Non Uniform Memory Access) クラスタリングモード
- ピアツーピア(Peer-peer)コンパニオンファブリックの最適化
【0059】
ただし、2つ(又は複数)の異なるファブリックが単一のパッケージ内のブリッジ(パス相互接続)を介して接続されているデュアル(又はマルチ)プロセッサシステムもある。例えば、
図3に図示するタイプの2つの演算ソケットを接続して、データ処理装置を形成することができる。トポロジ的には、かかるデュアルプロセッサシステムは、表面的には2つのファブリックドメインに分割された1つのファブリックのように見えるかもしれない。しかしながら、ブリッジによって接続された2つの独立したファブリックは、単一の大きなファブリックと比較して性能が非常に低くなる。これは、ブリッジのレイテンシが固有の(native)ファブリックレイテンシと一致しないためです。単一のファブリックの性能に対する要求は、ファブリックのベースラインパフォーマンスに影響を与えることなく、ファブリックのPnP(パワー及び性能:Power and Performance)の最適化を可能にするメカニズムを必要する。本技術の例は、この分割を可能にする機構に起因する顕著なレイテンシを発生させることなく、単一の大きなファブリックを複数のV/Fドメインに分割することを含む。実装例では、単一のファブリック内の複数のV/Fドメインに対して、0又は少なくとも非常に低い追加レイテンシを実現できる。
【0060】
非同期FIFOなどの単純なバックプレッシャ機構は原理的にはファブリックドメイン間で使用されることができ、2つのファブリックドメインが非対称周波数で動作している場合に損失のないデータ伝送を提供することができる。しかしながら、これによりデータパスに2~3サイクルのレイテンシが発生する可能性が高く、単一の共有ファブリック性能では許容されないことがよくある。対照的に、周波数ミスマッチ量に基づいてデューティサイクルを実装する本技術によるファブリックバックプレッシャ機構は、非現実的な余分なレイテンシを生じさせず、したがってファブリック分割の実行可能な実装を容易にする。さらに、このバックプレッシャ機構の近似が提供され、単一ファブリックの2つの異なるファブリックドメイン間の広範囲の周波数ミスマッチに対応しながら、最小限のハードウェアロジックを使用しする。
【0061】
この明細書において、「A又はBのうちの少なくとも1つ」及び「A及びBのうちの少なくとも1つ」 とは、A、B等の記載項目のうち、任意の全ての順列において、複数の項目が、連帯して取り出されたいずれか1つ以上を意味するものと解釈されるべきである。
【0062】
機能ユニットが回路として記述されている場合、回路は、指定された処理機能を実行するためにプログラムコードによって構成された汎用プロセッサ回路であり得る。回路は、処理ハードウェアを変更して構成され得る。指定された機能を実行するための回路の構成は、完全にハードウェアで、完全にソフトウェアで、又はハードウェアの変更及びソフトウェアの実行の組み合わせを使用して行うことができる。プログラム命令を使用して、汎用又は特殊用途のプロセッサ回路の論理ゲートを構成し、処理機能を実行することができる。
【0063】
回路は、例えば、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗器、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含むハードウェア回路として実装することができる。
【0064】
プロセッサは、汎用プロセッサ、コンピュータネットワークを介して通信されるデータを処理するネットワークプロセッサ、又は縮小命令セットコンピュータRISC又は複合命令セットコンピュータCISCを含む他のタイプのプロセッサを含むことができる。プロセッサは、シングルコア又はマルチコア設計を有し得る。複数のコアプロセッサは、同じ集積回路ダイ上に異なるプロセッサコアタイプを統合することができる。データ処理装置は、サーバSoCのようなSoCである場合もあれば、別の種類の集積回路で構成される場合もある。
【0065】
機械可読プログラム命令は、伝送媒体などの一時的な媒体で提供されることもあれば、記憶媒体などの一時的でない媒体で提供されることもある。かかる機械可読な命令(コンピュータプログラムコード)は、高レベル手続き型プログラミング言語やオブジェクト指向プログラミング言語で実装することができる。ただし、必要に応じて、(1つ以上の)プログラムをアセンブリ言語又は機械語で実装することができる。いずれの場合も、言語はコンパイル言語又はインタプリタ言語であり、ハードウェア実装と組み合わせることができる。
【0066】
本発明の実施形態は、あらゆるタイプの半導体集積回路(「IC」)チップでの使用に適用できる。これらのICチップの例としては、プロセッサ、コントローラ、チップセットコンポーネント、プログラマブルロジックアレイ(PLA)、メモリチップ、ネットワークチップなどがあるが、これらに限定されない。いくつかの実施形態では、ここに記載されているコンポーネントの1つ以上をシステムオンチップ(SOC)デバイスとして具体化することができる。SOCには、たとえば、1つ以上の中央処理装置(CPU)コア、1つ以上のグラフィックス処理装置(GPU)コア、入出力インタフェース、及びメモリコントローラが含まれ得る。いくつかの実施形態では、SOCとそのコンポーネントは、例えば1つの半導体デバイスにパッケージされた1つ以上の集積回路ダイ上に提供される。
【0067】
実施例
以下の実施例は、さらなる実施形態に関係する。第1実施例は、データ処理装置のためのシングル通信ファブリックを提供し、シングル通信ファブリックは:
複数のデータ処理機能ユニット間のデータ通信チャネルのトポロジを提供する相互接続ネットワークであって、相互接続ネットワークは、データ処理機能ユニットの第1サブセット間のデータ通信を提供する第1相互接続ドメイン、及び、データ処理機能ユニットの第2サブセット間のデータ通信を提供する第2相互接続ドメインを有する、相互接続機能ネットワークと;
第2相互接続ドメインの第2性能レベルの制御とは独立して、第1相互接続ドメインの第1性能レベルを制御するパワーマネジメント回路と;
を備える。
【0068】
実施例2は、実施例1又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、所与の性能レベルは、少なくとも1つの動作周波数によって特徴づけられ、第1性能レベル及び第2性能レベルは、パワーマネジメント回路によって設定されて、それぞれの異なる動作周波数で動作する。
【0069】
実施例3は、実施例2又は本明細書の他の任意の実施例の集積回路であり得、第1相互接続ドメイン及び第2相互接続ドメインのうちで、異なる動作周波数のうちのより高い周波数に設定された一方から、第1相互接続ドメイン及び第2相互接続ドメインのうちで、異なる動作周波数のうちのより低い動作周波数に設定された他方へのデータの通信をスロットリングするバックフロー制御回路を備える。
【0070】
実施例4は、実施例3又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、バックフロー制御回路は、より高い動作周波数とより低い動作周波数との間の差、及び、第1相互接続ドメインと第2相互接続との間の伝送方向の両方に依存して、第1相互接続ドメインと第2相互接続ドメインとの間で通信されるべきデータの制御を実行する。
【0071】
実施例5は、実施例4又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、バックフロー制御回路は、第1相互接続ドメインと第2相互接続ドメインと間の伝送方向がより高い動作周波数ドメインからより低い動作周波数ドメインに向かう場合、通信されるべきデータの通信をスロットリングするものである。
【0072】
実施例6は、実施例5又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、バックフロー制御回路は、ONサイクルで示されるデューティサイクル内のより高い動作周波数のクロックサイクルの所定の第1サブセットに対して、第1相互接続ドメインと第2相互接続ドメインとの間のデータ通信が許可され、かつ、OFFサイクルで示されるデューティサイクル内のより高い動作周波数のクロックサイクルの第1サブセット以外のクロックサイクルに対して、データ通信が停止する又はストールする(stalled)ように、デューティサイクルを実装することによって、通信されるべきデータの制御を実行する。
【0073】
実施例7は、実施例6又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、相互接続ネットワークは、デューティ期間の、停止した通信クロックサイクルに対応するデータ損失が防止されるように、そうでなければデータ通信が停止されたデューティサイクルのクロックサイクルで送信されるデータを送信側の相互接続ドメイン(the transmitting interconnection domain)内で再循環させる。
【0074】
実施例8は、実施例1又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、パワーマネジメント回路は、適切な(where appropriate)送信側の相互接続ドメインの動作周波数を増加させて、送信のために停止したデータの再循環をサポートし、データ損失から保護する。
【0075】
実施例9は、実施例6若しくは7又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、バックフロー制御回路は、パワーマネジメント回路によって選択された、より高い動作周波数とより低い動作周波数との両方の値に依存して、デューティサイクルのOFFサイクルに対するOAサイクルの相対比を決定する。
【0076】
実施例10は、実施例8又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、バックフロー制御回路は、(ft-fr)/frの比に依存して、デューティサイクル毎のOFFサイクル数を決定し、ここで、ftは送信側の相互接続ドメインが動作するより高い動作周波数であり、frは受信側の相互接続ドメインが動作するより低い動作周波数である。
【0077】
実施例11は、実施例9又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、バックフロー制御回路は、デューティサイクル比を決定するためのスロットリング回路ハードウェアを含み、スロットリング回路ハードウェアは、デューティサイクル比を近似する(approximate)ためのシフタを含む。
【0078】
実施例12は、実施例10又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、スロットリング回路ハードウェアは、第1入力としてシフタの出力を受信し、第2入力として送信側の相互接続ドメインと受信側の相互接続ドメインとの間のクロックスキューのための補償を可能にするオフセット値を受信する加算器を備える。
【0079】
実施例13は、実施例11又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、オフセット値は、スロットリング回路ハードウェアをスロットリングしてクロックスキューを補償するための第1値に設定可能であり、オフセット値は、機能上の正確さのための、異なる第2値に設定可能である。
【0080】
実施例14は、実施例10乃至12のいずれか又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、スロットリング回路ハードウェアは、受信側の相互接続ドメインが、パワーマネジメント回路によって送信側の相互接続ドメイン以上の周波数で動作するように設定されると、スロットリングを無効にするイネーブルビットを含む。
【0081】
実施例15は、実施例1乃至14のいずれか又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、パワーマネジメント回路は、相互接続ネットワークのパワーをグローバルに管理するマスタパワーマネジメントユニットを備える。
【0082】
実施例16は、実施例1乃至15のいずれか又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、データ処理機能ユニットの第1サブセット及び第1相互接続ドメインの両方を含む第1ダイレットを有し、複数のデータ処理機能ユニットの第2サブセット及び第2相互接続ドメインの両方を有する第2ダイレットを有する。
【0083】
実施例17は、実施例16又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、第1ダイレットは演算ダイレットであり、第1相互接続ドメインは演算相互接続ドメインであり、第2ダイレットは入力/出力、I/O、ダイレットであり、第2相互接続ドメインはI/O相互接続ドメインである。
【0084】
実施例18は、実施例17又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、演算相互接続ドメインは演算相互接続テレメトリ回路を有し、I/O相互接続ドメインは演算相互接続テレメトリ回路から独立したI/O相互接続テレメトリ回路を有する。
【0085】
実施例19は、実施例18又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、前記パワーマネジメント回路は、以下の少なくとも1つである:演算相互接続テレメトリ回路からの入力に依存して、演算相互接続ドメインに要求される性能レベルを決定するもの、及びI/O相互接続テレメトリ回路からの入力に依存して、I/O相互接続ドメインに要求されるパフォーマンスレベルを決定するもの。
【0086】
実施例20は、実施例19又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、パワーマネジメント回路は、少なくともそれぞれの要求された性能レベル及び1つ以上の制約に基づいて、異なる相互接続ドメインのそれぞれについて目標性能レベルを設定するものである。
【0087】
実施例21は、実施例20又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、1つ以上の制約は最小限界周波数及び最大限界周波数のうちの少なくとも1つを含む。
【0088】
実施例22は、実施例20又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、I/O相互接続ドメインは複数のサブドメインを有し、パワーマネジメント回路は複数のサブドメインのそれぞれの性能レベルを独立して制御する。
【0089】
実施例23は、実施例20乃至22のいずれか又は本明細書の任意の他の実施例のシングル通信ファブリックであり得、演算ドメインは複数のサブドメインを有し、パワーマネジメント回路は各演算サブドメインの要求された性能レベルを決定する。
【0090】
実施例24は、実施例23又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、演算ダイレットは、分散最終レベルキャッシュを含み、パワーマネジメント回路は、全ての演算サブドメインの目標性能レベルを、要求された性能レベルのうちの最高のものに設定する、
【0091】
実施例25は集積回路であり得、実施例1乃至19のいずれかのシングル通信ファブリックと、複数のデータ処理機能ユニットと、を有する。
【0092】
実施例26はデータ処理装置であり得、実施例1又は本明細書の他の任意の実施例のシングル通信ファブリックと、複数のデータ処理機能ユニットと、を備え、複数のデータ処理機能ユニットは少なくとも2つの異なる半導体ダイ上に設けられている。プロセッサパッケージは、サーバであり得る。
【0093】
実施例27は、シングル通信ファブリックのパワーマネジメントを実行するためのハードウェア処理回路によって実行される機械可読命令を提供し、シングル通信ファブリックは、複数のデータ処理機能ユニット間の通信を可能にする相互接続ネットワークを有し、相互接続ネットワークは、データ処理機能ユニットの第1サブセット間のデータ通信を提供する第1相互接続ドメインと、データ処理機能ユニットの第2サブセット間のデータ通信を提供する第2相互接続ドメインとを有し、機械可読命令は:第2相互接続ドメインの第2性能レベルの制御とは独立して、第1相互接続ドメインの第1性能レベルを制御するためのコードであって、性能レベルは少なくとも動作周波数を含む、コードを含む。
【0094】
実施例28は、実施例27又は本明細書の他の任意の実施例の機械可読命令でもあり得、第1性能レベルと第2性能レベルとの間の任意の差に依存して、かつ、データの伝送方向に依存して、第1相互接続ドメインと第2相互接続ドメインとの間のデータの通信をスロットリングするコードを含む。
【0095】
実施例29は、シングル通信ファブリックへのパワーを制御する方法であって、シングル通信ファブリックは、複数のデータ処理機能ユニット間の通信を可能にする相互接続ネットワークを有し、相互接続ネットワークは、データ処理機能ユニットの第1サブセット間のデータ通信を提供する第1相互接続ドメイン、及び、データ処理機能ユニットの第2サブセット間のデータ通信を提供する第2相互接続ドメインを有し、方法は:第1相互接続ドメインのための第1性能レベルを制御するステップと、第2相互接続ドメインのための第2性能レベルを制御するステップと、を含み、性能レベルは少なくとも動作周波数を含み、第1性能レベル及び第2性能レベルは、同時にそれぞれの異なる動作周波数にセットされることができる。
【0096】
実施例30は、実施例29又は本明細書の他の任意の実施例の方法であり得、第1性能レベルと第2性能レベルとの間の任意の差に依存して、かつ、データの伝送方向に依存して、第1相互接続ドメインと第2相互接続ドメインとの間のデータの通信をスロットリングするステップであって、スロットリングされたデータは再循環され伝送が保留される、ステップを含む。
【0097】
実施例31は、データ処理装置のためのシングル通信ファブリックであって、シングル通信ファブリックは:複数のデータ処理機能ユニット間のデータ通信チャネルのトポロジを提供する手段であって、相互接続ネットワークは、データ処理機能ユニットの第1サブセット間のデータ通信を提供する第1相互接続ドメイン、及び、データ処理機能ユニットの第2サブセット間のデータ通信を提供する第2相互接続ドメインを有する、手段と;前記第2相互接続ドメインの第2性能レベルの制御とは独立して、前記第1相互接続ドメインの第1性能レベルを制御するパワーマネジメントする手段と;を備える。
【0098】
実施例32は、実施例31又は本明細書の他の任意の実施例のシングル通信ファブリックであり得、第1性能レベルと前記第2性能レベルとの間の任意の差に依存して、かつ、データの伝送方向に依存して、第1相互接続ドメインと第2相互接続ドメインとの間のデータの通信をスロットリングする手段であって、スロットリングされたデータは再循環され伝送が保留される、手段を備える。
【国際調査報告】