IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドの特許一覧

特表2024-513675隣接するプロセッサのための光ブリッジ相互接続ユニット
<>
  • 特表-隣接するプロセッサのための光ブリッジ相互接続ユニット 図1
  • 特表-隣接するプロセッサのための光ブリッジ相互接続ユニット 図2
  • 特表-隣接するプロセッサのための光ブリッジ相互接続ユニット 図3
  • 特表-隣接するプロセッサのための光ブリッジ相互接続ユニット 図4
  • 特表-隣接するプロセッサのための光ブリッジ相互接続ユニット 図5
  • 特表-隣接するプロセッサのための光ブリッジ相互接続ユニット 図6
  • 特表-隣接するプロセッサのための光ブリッジ相互接続ユニット 図7
  • 特表-隣接するプロセッサのための光ブリッジ相互接続ユニット 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-27
(54)【発明の名称】隣接するプロセッサのための光ブリッジ相互接続ユニット
(51)【国際特許分類】
   G06F 15/173 20060101AFI20240319BHJP
【FI】
G06F15/173 685A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023555150
(86)(22)【出願日】2022-03-30
(85)【翻訳文提出日】2023-09-27
(86)【国際出願番号】 US2022022685
(87)【国際公開番号】W WO2022212603
(87)【国際公開日】2022-10-06
(31)【優先権主張番号】17/218,793
(32)【優先日】2021-03-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.VERILOG
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ロバート イー. ラドク
(72)【発明者】
【氏名】クリストファー エム. ジャガーズ
【テーマコード(参考)】
5B045
【Fターム(参考)】
5B045AA07
5B045BB06
5B045BB07
5B045BB24
5B045GG14
5B045GG17
5B045JJ46
5B045KK02
(57)【要約】
コンピューティングシステムにおける効率的なデータ転送のためのシステム及び方法が記載される。コンピューティングシステムは、タスクを受信して処理する複数のノードを含む。ブリッジ相互接続は、マザーボード上のシステムバスの助けを借りずに2つの処理ノード間でデータを転送する。コンピューティングシステムの複数のブリッジ相互接続のうち何れかは、2つのノード間の光ブリッジ相互接続を横断して光情報を伝送する光ブリッジ相互接続である。受信ノードは、フォトニック集積回路を使用して、光情報を電気集積回路による処理のための電気情報に変換する。1つ以上のノードは、測定された電力消費及び測定されたデータ伝送誤り率等の1つ以上の要因に基づいて、光ブリッジ相互接続の使用と非光ブリッジ相互接続の使用とを切り替える。
【選択図】図3
【特許請求の範囲】
【請求項1】
装置であって、
通信ブリッジに結合されるように構成された複数のコネクタであって、前記複数のコネクタは、第1のタイプの第1のコネクタと、前記第1のタイプとは異なる第2のタイプの第2のコネクタと、を有しており、前記第1のコネクタ及び前記第2のコネクタの両方が第1のデータを転送可能である、複数のコネクタと、
前記第1のコネクタが前記第1のタイプであると判定したことに応じて、前記第1のコネクタを介して前記第1のデータを転送するように構成された制御ユニットと、を備える、
装置。
【請求項2】
前記第1のコネクタは光コネクタであり、前記第2のコネクタは非光コネクタである、
請求項1の装置。
【請求項3】
前記制御ユニットは、プログラマブルレジスタに格納された指標に応じて、前記第1のコネクタを介して前記第1のデータを転送するように構成されている、
請求項2の装置。
【請求項4】
前記指標は、前記第1のコネクタに対応しており、前記第1のデータに対応するデータのタイプを識別する、
請求項3の装置。
【請求項5】
前記制御ユニットは、
前記第1のコネクタを介して前記第1のデータを、前記第2のコネクタを介して前記第1のデータと異なる第2のデータを、同時に転送するように構成されている、
請求項2の装置。
【請求項6】
前記制御ユニットは、電力消費が閾値を超えたことに応じて、前記第1のデータの転送を前記第1のコネクタから前記第2のコネクタに切り替えるように構成されている、
請求項1の装置。
【請求項7】
前記制御ユニットは、電力消費、測定されたデータ伝送誤り率、及び、アプリケーションからのヒントのうち1つ以上に少なくとも部分的に基づいて、前記第1のデータを転送するために前記第1のコネクタを選択するように構成されている、
請求項1の装置。
【請求項8】
方法であって、
システムの複数のノードのうち何れかのノードによってタスクを処理することと、
前記ノードの前記複数のコネクタのうち第1のコネクタが第1のタイプであると判定したことに応じて、前記第1のコネクタを介して第1のデータを転送することであって、前記ノードの前記複数のコネクタは、通信ブリッジに結合されるように構成されており、前記第1のタイプの第1のコネクタと、前記第1のタイプとは異なる第2のタイプの第2のコネクタと、を有しており、前記第1のコネクタ及び前記第2のコネクタの両方が前記第1のデータを転送可能である、ことと、を含む、
方法。
【請求項9】
前記第1のコネクタは光コネクタであり、前記第2のコネクタは非光コネクタである、
請求項8の方法。
【請求項10】
プログラマブルレジスタに格納された指標に応じて、前記第1のコネクタを介して前記第1のデータを転送することを含む、
請求項9の方法。
【請求項11】
前記指標は、前記第1のコネクタに対応しており、前記第1のデータに対応するデータのタイプを識別する、
請求項10の方法。
【請求項12】
前記第1のコネクタを介して前記第1のデータを、前記第2のコネクタを介して前記第1のデータと異なる第2のデータを、同時に転送することを含む、
請求項9の方法。
【請求項13】
電力消費が閾値を超えたことに応じて、前記第1のデータの転送を前記第1のコネクタから前記第2のコネクタに切り替えることを含む、
請求項8の方法。
【請求項14】
電力消費、測定されたデータ伝送誤り率、及び、アプリケーションからのヒントのうち1つ以上に少なくとも部分的に基づいて、前記第1のデータの転送のために前記第1のコネクタを選択することを含む、
請求項8の方法。
【請求項15】
コンピューティングシステムであって、
タスクを処理するように構成された複数のノードと、
各々が前記複数のノードのうち少なくとも2つのノードの間にある、複数のブリッジ相互接続を有する通信ブリッジと、を備え、
前記複数のノードのうち第1のノードは、前記通信ブリッジに結合されるように構成された複数のコネクタであって、前記複数のコネクタは、第1のタイプの第1のコネクタと、前記第1のタイプとは異なる第2のタイプの第2のコネクタと、を有し、前記第1のコネクタ及び前記第2のコネクタの両方が第1のデータを転送可能である、複数のコネクタを有しており、
前記第1のノードは、前記第1のコネクタが前記第1のタイプであると判定したことに応じて、前記第1のコネクタを介して前記第1のデータを転送するように構成されている、
コンピューティングシステム。
【請求項16】
前記第1のコネクタは光コネクタであり、前記第2のコネクタは非光コネクタである、
請求項15のコンピューティングシステム。
【請求項17】
前記第1のノードは、プログラマブルレジスタに格納された指標に応じて、前記第1のコネクタを介して前記第1のデータを転送するように構成されている、
請求項16のコンピューティングシステム。
【請求項18】
前記指標は、前記第1のコネクタに対応しており、前記第1のデータに対応するデータのタイプを識別する、
請求項17のコンピューティングシステム。
【請求項19】
前記第1のノードは、
前記第1のコネクタを介して前記第1のデータを、前記第2のコネクタを介して前記第1のデータと異なる第2のデータを、同時に転送するように構成されている、
請求項16のコンピューティングシステム。
【請求項20】
前記第1のノードは、電力消費が閾値を超えたことに応じて、前記第1のデータの転送を前記第1のコネクタから前記第2のコネクタに切り替えるように構成されている、
請求項15のコンピューティングシステム。
【発明の詳細な説明】
【背景技術】
【0001】
(関連技術の説明)
コンピューティングシステムでは、複数のアプリケーションが並列処理及び大量の共有メモリを利用する。これらのアプリケーションの例は、機械学習アプリケーション、娯楽及びリアルタイムアプリケーション、並びに、いくつかのビジネス、科学、医療及び他のアプリケーションである。これらのコンピューティングシステムは、2つ以上の処理コアを有する処理ユニット(例えば、CPU、GPU等)を使用し、場合によっては、より多くの計算能力及び/又はより多くのデータストレージを提供するために、並べて積み重ねられたチップを使用する。これらのコンピューティングシステムの処理ユニットは、互いの間で、且つ、システムメモリと大量のデータを送受信する。データは、特定の通信プロトコル基づいて、通信ファブリック等の相互接続を介してこのようにして転送される。
【0002】
多くの場合、相互接続は、多数の物理ワイヤが利用可能であるため、比較的広いパケットをサポートしながらデータを転送する。しかしながら、相互接続を介して別々のダイを一緒に接続する場合、及び、別々の処理ノードを一緒に接続する場合、データが著しく少ない数の物理ワイヤを介して転送され、このことは、利用可能な帯域幅を制限する。場合によっては、リンク物理ワイヤは、ダイ上の物理ワイヤデータレートの倍数であるデータレートでデータを転送する。しかしながら、ダイ間及びノード間で通信する場合、依然として帯域幅が大幅に低減される。
【0003】
加えて、処理ユニット内のグラフィックス処理ユニット(GPU)等の送信機が、相互接続等の受信機がパケットを受信することができる速度よりも速い速度でパケットを送信する場合、受信機におけるデータ衝突を介してデータ破損が発生する。送信機からのパケットの送信データレートを低減する保守的な手法は、データ破損を防止するが、リンク帯域幅効率も更に低減させる。
【0004】
上記に鑑みて、コンピューティングシステムにおいて効率的なデータ転送を実行するための効率的な方法及びシステムが望まれている。
【図面の簡単な説明】
【0005】
図1】コンピューティングシステムのパーティションの一実施形態の一般化された図である。
図2】コンピューティングシステムの一実施形態の一般化された図である。
図3】処理ノードの一実施形態の一般化された図である。
図4】ブリッジ相互接続ユニットの一実施形態の一般化された図である。
図5】コンピューティングシステムのパーティションの一実施形態の一般化された図である。
図6】コンピューティングシステムにおける効率的なデータ転送のための方法の一実施形態の一般化された図である。
図7】コンピューティングシステムにおける効率的なデータ転送のための方法の一実施形態の一般化された図である。
図8】コンピューティングシステムにおける効率的なデータ転送のための方法の一実施形態の一般化された図である。
【発明を実施するための形態】
【0006】
本発明は、様々な変更及び代替形態の余地があるが、具体的な実施形態が例として図面に示されており、本明細書で詳細に説明される。しかしながら、図面及びその詳細な説明は、開示された特定の形態に本発明を限定することを意図するものではなく、逆に、本発明は、添付の特許請求の範囲によって定義される本発明の範囲内に入る全ての変更、均等物及び代替物を包含するものであることを理解されたい。
【0007】
以下の説明では、本発明の十分な理解を提供するために、多数の具体的な詳細が記載されている。しかしながら、当業者は、これらの具体的な詳細なしに、本発明が実施され得ることを認識するべきである。いくつかの例では、本発明を不明瞭にすることを避けるために、周知の回路、構造及び技術が詳細に示されていない。更に、説明の簡略化及び明確化のために、図に示される要素が必ずしも縮尺どおりに描画されていないことが理解されよう。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている。
【0008】
コンピューティングシステムにおいて効率的なデータ転送を実行するための様々なシステム、装置及び方法が開示される。様々な実施形態において、コンピューティングシステムは、マルチノードパーティションの処理ノードにタスクを割り当てるホストプロセッサを含む。本明細書では、「処理ノード」は「ノード」とも呼ばれる。ノードは、少なくとも1つ以上のプロセッサ及びローカルメモリを含む。一実施形態では、ホストプロセッサは中央処理装置(CPU)であり、ノードプロセッサはグラフィック処理装置(GPU)である。いくつかの実施形態では、ノードは、並列データタスクを処理するためにGPUを利用する非均一メモリアクセス(NUMA)ノードである。例えば、処理ノードは、ビデオグラフィックレンダリング、暗号、ガベージコレクション、並びに、いくつかのビジネス、科学、医療及び他のアプリケーションを使用して、機械学習アプリケーション、娯楽及びリアルタイムアプリケーションのためのタスクを実行する。コンパイラは、プログラムコードから並列化されたタスクを取り出して、システムハードウェア上で並列に実行する。
【0009】
様々な実施形態において、ノードは、マザーボード上の拡張ソケット又はスロットに挿入される拡張カードである。一実施形態では、1つ以上のノードは、マザーボード上の対応するソケット又はスロットに挿入されたビデオグラフィックカードである。拡張カード及びグラフィックカードの各々は、マザーボード上の対応するソケット又はスロットに挿入される半導体チップ、銅線相互接続、インターフェース及び信号ピンの列を含むプリント回路基板である。
【0010】
また、コンピューティングシステムは、マザーボード上のシステムバスの助けを借りずに2つの処理ノード間でデータを転送するために1つ以上のブリッジ相互接続を使用する通信ブリッジを含む。例えば、ホストプロセッサ、1つ以上の周辺デバイス及びシステムメモリは、マザーボード上のシステムバスを介して処理ノードとデータを転送する。しかしながら、処理ノードは、マザーボード上で信号を送信することなく、ブリッジ相互接続を介して別の処理ノードとデータを直接転送することが可能である。様々な実施形態では、通信ブリッジはブリッジカードである。拡張カード又はビデオカードと同様に、ブリッジカードはプリント回路基板である。しかしながら、ブリッジカードは、マザーボード上のソケット又はスロットに挿入するためのピンの列を含まない。
【0011】
いくつかの実施形態では、ブリッジカードは半導体チップを含まず、むしろブリッジカードの両側のコネクタ間の相互接続のみを含む。各コネクタは処理ノードに接続し、処理ノードがブリッジカードの相互接続を介して互いに通信することを可能にする。他の実施形態では、ブリッジカードは、2つ以上の処理ノード間でデータを行き来させて転送する場合にハードウェアによって提供される相互接続ロジックを提供するための1つ以上の半導体チップを含む。
【0012】
様々な実施形態では、ブリッジカードのブリッジ相互接続の1つは光ブリッジ相互接続である。2つの対になった処理ノードの各々は、対応する光コネクタでフォトニック集積回路を使用して、電気データ(信号)と光データ(信号)との間で変換する。光データは、2つの処理ノード間の光ブリッジ相互接続を横断して伝送される。光データに対応する電気データは、2つの処理ノードにおける電気集積回路によって処理される。
【0013】
マザーボード、及び、拡張カード、ネットワークカード、ビデオカード等の他のプリント回路基板と同様に、ブリッジカードは、ガラス強化エポキシ積層材料を利用する。この材料は、相互接続と半導体チップとの間の電気的絶縁を提供しつつ、比較的高い機械的強度を提供する。ガラス強化エポキシ積層材料の一例は、FR-4(又はFR4)ガラスエポキシである。ブリッジカードは、プリント回路基板の上層又は下層のFR-4材料に埋め込まれた1つ以上の信号経路を含む。ブリッジカードは、これらの埋め込まれた1つ以上の信号経路に銅線を使用するのではなく、FR-4材料に埋め込まれた光ファイバケーブルを使用する。埋め込まれた光ファイバケーブルは、ブリッジカードの2つの端部の間で光波として光データを転送する。いくつかの実施形態では、ブリッジカードのこの光ブリッジ相互接続は、単一の埋め込み光ファイバケーブルを使用して、2つの処理ノード間で信号を転送するための80個以上の埋め込み銅トレースを置き換える。
【0014】
一実施形態では、1つ以上のブリッジカードは、2つの処理ノード間で直接データを転送するための1つ以上の光ブリッジ相互接続及び1つ以上の非光ブリッジ相互接続を有するハイブリッドブリッジカードである。マルチノードパーティションのノードは、ブリッジカードの1つ以上のブリッジ相互接続(例えば、光ブリッジ相互接続及び非光ブリッジ相互接続)を横断するデータ転送を管理する。いくつかの実施形態では、ブリッジカード上の1つ以上の処理ノード及び回路は、1つ以上の要因に基づいて、ブリッジカードの光ブリッジ相互接続の使用と、ブリッジカードの非光ブリッジ相互接続の使用と、を切り替える。要因の例は、測定された電力消費、測定されたデータ伝送誤り率、アプリケーションからのヒント等である。
【0015】
図1を参照すると、マルチノードパーティション100の一実施形態の一般化されたブロック図が示されている。図示した実施形態では、パーティション100は、処理ノード間のデータ転送をサポートするブリッジ相互接続120~132を有する複数の処理ノード110A~110Dを含む。処理ノード110A~110Dの各々は、少なくとも1つ以上のプロセッサ及びローカルメモリを含む。本明細書で使用される場合、対応するコンピューティングシステムがハードウェアの仮想化を利用する場合、「処理ノード」は「ノード」とも呼ばれ、「パーティション」は「ハイブ」とも呼ばれる。一実施形態では、パーティション100は、デスクトップコンピュータ又はサーバのマルチソケットマザーボードのソケットに配置されたマルチチップモジュール(MCM)である。他の実施形態では、ノード110A~110Dのうち1つ以上は、マザーボード上の対応するソケット又はスロットに挿入された個別の拡張カードである。一実施形態では、ノード110A~110Dのうち1つ以上は、マザーボード上の対応するソケット又はスロットに挿入されたビデオグラフィックカードである。ホストプロセッサ、電力コントローラ、割り込みコントローラ、及び、位相ロックループ(PLL)又は他のクロック生成回路等は、説明を容易にするために示されていない。4つのノード110A~110D及び7つのブリッジ相互接続120~132が示されているが、他の実施形態では、別の数のノード及びブリッジ相互接続が使用される。
【0016】
いくつかの実施形態では、ホストプロセッサは、マルチノードパーティション100にタスクを割り当てるが、他の実施形態では、パーティション100は、互いにタスクを割り当てて転送するためにノード110A~110D内のプロセッサに依存する。いくつかの実施形態では、ノード110A~110Dは、ビデオグラフィックレンダリング、暗号、ガベージコレクション、並びに、いくつかのビジネス、科学、医療及び他のアプリケーションを使用して、機械学習アプリケーション、娯楽及びリアルタイムアプリケーションのためのタスクを実行する。コンパイラは、プログラムコードから並列化されたタスクを取り出して、パーティション100のハードウェア上で並列に実行する。ノード110A~110Dは、マザーボード上の通信ファブリック及び/又はシステムバス等のインターコネクト(図示せず)を介して、任意のホストプロセッサ、システムメモリ及び入出力(I/O)デバイスと通信する。しかしながら、ノード110A~110Dは、マザーボード上で信号を転送せずに、通信ブリッジを介して互いに直接通信することが可能である。
【0017】
ブリッジ相互接続120~132の各々は、マザーボード上のシステムバスの助けを借りずに2つの処理ノード間でデータを転送する。例えば、任意のホストプロセッサ、1つ以上の周辺デバイス及びシステムメモリ等のパーティション100の外部の他の構成要素は、マザーボード上のシステムバス、様々なユニバーサルシリアルバス(USB)ポートのうち何れか又は専用ディスプレイポートを介してノード110A~110Dとデータを転送する。しかしながら、ノード110A~110Dのノードは、ブリッジ相互接続120~132のうち何れかを介してノード110A~110Dの別のノードとデータを直接転送する。いくつかの実施形態では、マザーボード上のバスは、PCIe(Peripheral Component Interconnect Express)、Advanced Micro Devices社製のInfinity Fabric、及び、Advanced Micro Devices社製のInfinity Architecture等の通信プロトコルを使用する。いくつかの実施形態では、ブリッジ相互接続120~132のためのインターフェース回路は、Advanced Micro Devices社製のGPU間の相互接続のためのxGMI(チップ間グローバルメモリ相互接続)等の通信プロトコルをサポートする。しかしながら、他のタイプの通信プロトコルも可能であり、企図されている。
【0018】
いくつかの実施形態では、ノード110A~110Dは完全に接続されるが、他の実施形態では、7つよりも少ないブリッジ相互接続が存在し、ノード110A~110Dのうちいくつかは、何らかのブリッジ相互接続を通して他のノードに接続されていない。拡張カード又はビデオカードと同様に、ブリッジ相互接続120~132を含む1つ以上のブリッジカードは、プリント回路基板である。しかしながら、1つ以上のブリッジカードは、マザーボード上のソケット又はスロットに挿入するためのピンの列を含まない。むしろ、1つ以上のブリッジカードは、コネクタを介してノード110A~110Dのうち対応するノードに直接接続される。1つ以上のブリッジカードは、ガラス強化エポキシ積層材料を利用して、このエポキシ積層材料の溝に埋め込まれた銅トレースを有するプリント回路基板を上層及び/又は下層に実装して非光相互接続122、128及び132を実装する。1つ以上のブリッジカードは、光相互接続120、124、126、130を実装するために、上層及び/又は下層上のこのエポキシ積層材料の溝に埋め込まれた光ファイバケーブルを有する。したがって、光相互接続120、124、126、130に加えて、非光相互接続122、128、132は、2つの処理ノード間の剛性の相互接続を提供する。したがって、パーティション100は、ブリッジ相互接続120~132を実装するために、ブリッジカードの外部に配置された可撓性の信号ケーブルに依存しない。
【0019】
光ブリッジ相互接続120の場合、ノード110A及びノード110Bは、対応する光コネクタにおけるフォトニック集積回路を使用して、電気データ(信号)と光データ(信号)との間で変換する。光データ(信号)は、ノード110Aと110Bとの間の光ブリッジ相互接続120を横断して送信される。変換された電気データ(信号)は、ノード110A及び110B内の電気集積回路によって処理される。光ブリッジ相互接続120、124、126、130は、典型的には、非光ブリッジ相互接続122、128、132よりも速いデータ転送速度を提供する。加えて、光ブリッジ相互接続120、124、126、130は、典型的には、非光ブリッジ相互接続122、128、132よりもデータ伝送中に消費する電力が少ない。
【0020】
上述したように、ブリッジカードは、ガラス強化エポキシ積層材料を利用して、上層及び/又は下層のこのエポキシ積層材料の溝に埋め込まれた1つ以上の光ファイバケーブルに加えて、上層及び/又は下層のこのエポキシ積層材料の溝に埋め込まれた1つ以上の銅トレースを有するプリント回路基板を実装する。このようなブリッジカードは、ハイブリッドブリッジカードである。他のブリッジカードは、上層及び/又は下層のこのエポキシ積層材料の溝に埋め込まれた光ファイバケーブルのみを使用し、これらのブリッジカードは光ブリッジカードである。更に他のブリッジカードは、上層及び/又は下層上のこのエポキシ積層材料の溝に埋め込まれた銅トレースのみを使用し、これらのブリッジカードは非光ブリッジカードである。一例では、ノード110Aとノード110Bとの間でハイブリッドブリッジカードが使用される。このハイブリッドブリッジカードは、光ブリッジ相互接続120及び非光ブリッジ相互接続122を使用する。同様に、ノード110Bとノード110Dとの間でハイブリッドブリッジカードが使用される。このハイブリッドブリッジカードは、光ブリッジ相互接続130及び非光ブリッジ相互接続132を使用する。いくつかの実施形態では、ブリッジカードは3方向ブリッジカードである。示されていないが、いくつかの実施形態では、光ブリッジ相互接続をサポートする3方向ブリッジカードは、第1のノードが、第1の光ブリッジ相互接続を介して第2のノードに、及び、第2の光ブリッジ相互接続を介して第3のノードにデータを同時に転送することを可能にする。
【0021】
一例では、ノード110Aは、ブリッジ相互接続120を介してノード110Bとデータを直接転送することが可能である。ノード110A及び110Bの各々は、光ブリッジ相互接続120を介したデータ転送をサポートするためのコネクタ及び対応するインターフェース回路を含む。ノード110A~110D内の「IF」とマークされたボックスは、ノード110A~110Dの2つのノード間の光データ伝送及び非光データ伝送のうち1つ以上をサポートするインターフェースである。更に、特定の要因に基づいて、「IF」とマークされたインターフェースは、光ブリッジ相互接続と非光ブリッジ相互接続との間のステアリングデータ伝送を、両方の相互接続が利用可能である場合にサポートする。特定の要因の例は、閾値と比較したノードの電力消費の測定値、及び、閾値と比較したデータ伝送誤り率の測定値である。特定の要因の別の例は、利用可能な光ブリッジ相互接続及び利用可能な非光ブリッジ相互接続のうち特定の何れかによって伝送されるデータタイプの指標を格納するプログラマブル構成レジスタである。一例では、オーディオファイルの情報は、利用可能な非光ブリッジ相互接続を介して伝送されるが、ビデオフレーム及び他のデータの情報は、利用可能な非光ブリッジ相互接続を介して伝送される。
【0022】
図2を参照すると、マルチノードコンピューティングシステム200の一実施形態の一般化されたブロック図が示されている。図示した実施形態では、ホストプロセッサ202は、相互接続260を介してマルチノードパーティション210にコマンド、メッセージ及びペイロードデータを転送する。いくつかの設計では、ホストプロセッサ202は、汎用中央処理ユニット(CPU)である。パーティション210は、複数の処理ノード230A~230D(又はノード230A~230D)を含む。他の実施形態では、コンピューティングシステム200は、個別のホストプロセッサ202を持たず、タスクを互いに割り当てて転送するためにノード230A~230D内のCPU又は他のプロセッサに依存する。電力コントローラ、割り込みコントローラ、ネットワークインターフェース、位相ロックループ(PLL)又は他のクロック生成回路、ファンを有する冷却システム、及び、周辺デバイス等の入力/出力(I/O)デバイスは、説明を容易にするために示されていない。
【0023】
一実施形態では、パーティション210は、デスクトップコンピュータ又はサーバのマルチソケットマザーボードのソケット内に配置されたマルチチップモジュール(MCM)である。他の実施形態では、ノード230A~230Dのうち1つ以上は、マザーボード上の対応するソケット又はスロット内に配置された個別の拡張カードである。一実施形態では、ノード230A~230Dのうち1つ以上は、マザーボード上の対応するソケット又はスロット内に配置されたビデオグラフィックスカードである。様々な実施形態において、ノード230A~230Dは、リンク250~256を介して通信ブリッジ220によって、及び/又は、相互接続260によって互いに接続される。ノード230A~230Dは、相互接続260を介してメモリコントローラ270に接続され、メモリコントローラ270を使用してメモリ272にアクセスする。
【0024】
単一のメモリコントローラ270が示されているが、他の実施形態では、コンピューティングシステム200において別の数のメモリコントローラが使用される。様々な実施形態において、メモリコントローラ270は、ホストプロセッサ202及びパーティション210のうち1つ以上からメモリ要求を受信し、調停ロジックを使用してメモリ要求をスケジューリングし、スケジューリングされたメモリ要求をメモリ272に送信する。一実施形態では、メモリ272は、コンピューティングシステム200用のシステムメモリであり、メモリ272は、メモリコントローラ270によってサポートされる対応する通信プロトコルを有する多様なダイナミックランダムアクセスメモリ(DRAM)のうち何れかである。この通信プロトコルは、クロックサイクル当たりのデータ転送の数、信号電圧レベル、信号タイミング、信号及びクロック位相、並びに、クロック周波数等のように、情報転送のために使用される値を判定する。いくつかの実施形態では、コンピューティングシステム200は、階層メモリサブシステム内のシステムメモリ272よりも下位レベルである主メモリに接続される。主メモリは、多様なタイプの不揮発性ランダムアクセス二次データ記憶装置のうち何れかで実装される。主メモリの例としては、ハードディスクドライブ(hard disk drive、HDD)及びソリッドステートディスク(solid-state disk、SSD)がある。
【0025】
様々な実施形態において、相互接続260は、共有バス構成、クロスバー構成及びブリッジを有する階層バスを含む、ポイントツーポイント、パケットベース、バスベースを使用する通信をサポートする。いくつかの実施形態では、相互接続260は、通信ファブリック(又はファブリック)を利用する。いくつかの実施形態では、コンピューティングシステム200及び相互接続260にわたるリンクインターフェースは、要求及び応答を格納するためのキューと、相互接続260を横断して要求を送信する前に受信した要求間で調停することが可能なハードウェア回路によって実装される選択ロジックと、を含む。また、相互接続260は、パケットを構築及び復号し、パケットの経路を選択することが可能な回路を含む。相互接続260は、パーティション210とホストプロセッサ202とメモリコントローラ270との間で、要求、応答、コマンド、メッセージ及びペイロードデータ等のデータを行き来させて転送する。コンピューティングシステム200及び相互接続260にわたるリンクインターフェースは、コマンド及びデータを転送するための通信プロトコルをサポートする。メモリ通信プロトコルと同様に、相互接続260のサポートされる通信プロトコルは、クロックサイクル当たりのデータ転送の数、信号電圧レベル、信号タイミング、信号及びクロック位相、並びに、クロック周波数等の値を決定する。相互接続260の通信プロトコルの例としては、PCIe(Peripheral Component Interconnect Express)、Advanced Micro Devices社製のInfinity Fabric、Advanced Micro Devices社製のInfinity Architecture、InfiniBand、RapidIO、HyperTransport等が挙げられる。また、通信プロトコルの他の例も可能であり、企図される。
【0026】
単一の回線がリンク250を表すように示されているが、リンク250は、データを信号として転送することが可能な複数の回線、又は、物理的なワイヤ若しくはレーンを含む。これらの複数の回線の例としては、1つ以上のクロック回線、1つ以上の制御回線、1つ以上の高速データ回線、及び、1つ以上の低速データ回線がある。リンクインターフェースの物理ユニット内の回路は、1つ以上の低速回線のデータ伝送速度よりも大きい1つ以上の高速回線上のデータ伝送速度をサポートする。この1つ以上の高速データ回線は、リンク250の物理層と称される。1つ以上の制御回線及び1つ以上の低速回線は、リンク250の通信層と称される。リンク252~256は、リンク250と同様の回線を有する。4つのリンク250~256が示されているが、他の設計では、別の数のリンクが使用される。
【0027】
ノード230A~230Dの各々は、1つ以上のプロセッサ、ローカルメモリ、電力コントローラ等を含む。いくつかの設計では、ノード230A~230Dは、タスクを処理するためにGPUを利用する不均一メモリアクセス(NUMA)ノードである。4つのノード230A~230Dが示されているが、他の設計では、別の数のノードが使用される。一実施形態では、ノード230A~230D及び通信ブリッジ220内のインターフェース回路は、Advanced Micro Devices社製のGPU間相互接続のためのxGMI(チップ間グローバルメモリ相互接続)等の同じ通信プロトコルをサポートする。しかしながら、他のタイプの通信プロトコルも可能であり企図される。通信ブリッジ220は、マザーボード上で信号を転送せずに、ノード230A~230D間でデータを直接転送するために使用される1つ以上のブリッジカードを表す。上述したように、1つ以上のブリッジカードは、プリント回路基板の上層及び/又は下層に信号トレースが埋め込まれたFR-4ガラスエポキシ等のガラス強化エポキシ積層材料を利用する。
【0028】
非光ブリッジ相互接続224は、1つ以上のブリッジカード上の埋め込み銅トレースを表す。光ブリッジ相互接続222は、1つ以上のブリッジカード上の埋め込まれた光ファイバケーブルを表す。いくつかの実施形態では、通信ブリッジ220は、非光ブリッジ相互接続225、光ブリッジ相互接続226及び非光ブリッジ相互接続227の組み合わせを含む。そのような組み合わせは、一例で、ノード230Aと電気信号を転送するガラスエポキシ材料上に埋め込まれた銅トレースを含む。これらの銅トレースは、非光ブリッジ相互接続(NOBI)225と光ブリッジ相互接続(OBI)226との間のブリッジカード上に配置されたインターフェースユニット(図示せず)にルーティングされる。光データ伝送をサポートするノード230A~230Dのうち1つ以上のインターフェースユニットと同様に、ブリッジカード上のこのインターフェースユニットは、フォトニック集積回路を使用して電気信号を光信号に転換する。転換された光信号は、ガラスエポキシ材料に埋め込まれた光ファイバケーブル内のブリッジカードを横断して転送される。
【0029】
ブリッジカードの端部にある別のインターフェースユニットは、光信号を受信する。このインターフェースユニットは、光ブリッジ相互接続(OBI)226と非光ブリッジ相互接続(NOBI)227との間に位置する。このインターフェースユニットは、一例では、光信号を電気信号に転換し、この電気信号はノード230Dに送信される。いくつかの実施形態では、ノード230A及び230Dは光信号の処理をサポートするインターフェースを含まないが、高い転送速度が好ましい場合、ブリッジカードの一方の上のNOBI225、OBI226及びNOBI227の組み合わせが使用される。他の実施形態では、ブリッジカードのうち一方の上のNOBI225、OBI226及びNOBI227の組み合わせは、通信ブリッジ220の銅トレースのトレース長制限が満たされる場合に使用される。例えば、ノード230A及び230Dのうち1つ以上は、3インチの銅トレース長制限を有するが、ノード230A及び230Dは、パーティション210内で互いに6インチ離れて配置されている。この組み合わせを使用するための他の条件は、消費電力の低減、データ伝送の誤り率の改善等を含む。いくつかの実施形態では、ブリッジカード上の回路等のハードウェアは、これらの条件のうち1つ以上の指標を受信し、NOBI225、OBI226及びNOBI227の組み合わせを介して何れの信号を転送するかを決定する。ノード230A及び230Dは、ブリッジカード上で発生するデータ転換を認識していない可能性がある。
【0030】
図3を参照すると、処理ノード300の一実施形態の一般化されたブロック図が示されている。図示したように、処理ノード300は、クライアント310、1つ以上のレベルのキャッシュ316、電力コントローラ320、リンクインターフェース330、及び、ブリッジ相互接続ユニット340を含む。ブリッジ相互接続340は、コネクタ350と通信し、コネクタは、コネクタ352及び354を含む。光コネクタ352と非光コネクタ354の両方が示されているが、いくつかの実施形態では、コネクタ350はコネクタ352及び354のうち一方のみを含む。他の実施形態では、コネクタ350は、複数の光コネクタ及び/又は複数の非光コネクタを含む。いくつかの実施形態では、処理ノード300の構成要素は、システムオンチップ(SOC)等の集積回路(IC)上の個々のダイである。他の実施形態では、コンポーネントは、システムインパッケージ(SiP)又はマルチチップモジュール(MCM)における個々のダイである。割り込みコントローラ、メモリインターフェース、クロック発生回路、通信ファブリック等は、説明を容易にするために示されていない。
【0031】
クライアント310は、2つのプロセッサを含むように示されているが、他の実施形態では、クライアント310は、別の数のプロセッサ及び処理エンジンを含む。例示された実施形態では、クライアント310は、プロセッサ312及び並列データプロセッサ314を含む。いくつかの設計では、クライアント310は、プロセッサ312を含み、このプロセッサは、中央処理ユニット(CPU)、マルチメディアエンジンと通信するためのハブ、及び、ソフトウェアアプリケーションの命令を処理することができる回路を有する他のタイプのコンピューティングリソースのうち1つ以上である。一実施形態では、並列データプロセッサ314は、画像処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、又は、複数のデータ項目に対して同じ命令を同時に処理することができる他のタイプのプロセッサのうち何れかである。
【0032】
並列データプロセッサ314は、かなりの数の並列実行レーンを有する高並列データマイクロアーキテクチャを有する。この高並列データマイクロアーキテクチャは、計算集中型タスクに対して高い命令スループットを提供する。一実施形態では、マイクロアーキテクチャは、並列実行レーンのために、単一命令複数データ(single-instruction-multiple-data、SIMD)パイプラインを使用する。コンパイラは、プログラムコードから並列化されたタスクを取り出して、システムハードウェア上で並列に実行する。この並列化されたタスクは、少なくとも科学、医療及びビジネス(金融)の分野に由来し、いくつかは、ニューラルネットワーク訓練を利用する。タスクは、実行する命令のサブルーティンを含む。様々な実施形態では、並列データプロセッサ314の複数の実行レーンは、複数の仕事項目を含むウェーブフロントを同時に実行する。仕事項目は、異なるデータで実行するための同じ命令である。また、仕事項目は、スレッドとも称される。
【0033】
いくつかの設計では、処理ノード300は、汎用CPUを含まないが、外部CPUからの割り当てられたタスクを受信する。例えば、処理ノード300のリンクインターフェース330のうち何れかのインターフェースは、外部CPUにコマンド及びデータを転送するための通信プロトコル接続をサポートする。通信プロトコルの例としては、PCIe(Peripheral Component Interconnect Express)、Advanced Micro Devices社製のInfinity Fabric、Advanced Micro Devices社製のInfinity Architecture、InfiniBand、RapidIO、HyperTransport等が挙げられる。また、通信プロトコルの他の例も可能であり、企図される。
【0034】
一実施形態では、電力コントローラ320は、処理ノード300の構成要素からデータを収集する。いくつかの実施形態では、収集されたデータは、所定のサンプリングされた信号を含む。サンプリングされた信号の切り替えは、切り替えられた静電容量の量を示す。サンプリングする選択信号の例としては、クロックゲータイネーブル信号、バスドライバイネーブル信号、内容参照可能メモリ(content-addressable memories、CAM)内の不一致、CAMワード線(word-line、WL)ドライバ等が挙げられる。一実施形態では、電力コントローラ320は、所定のサンプル間隔(期間)中のノード300における電力消費を特徴付けるためのデータを収集する。
【0035】
いくつかの実施形態では、処理ノード300内のオンダイ電流センサ及び温度センサも、電力コントローラ320に情報を送信する。電力コントローラ320は、センサ情報、発行された命令又は発行されたスレッドの個数、及び、重み付けされたサンプリング信号の合計のうち1つ以上を使用して、処理ノード300の電力消費を推定する。電力コントローラ320は、ノード300が閾値限界を上回って(下回って)動作している場合、電力消費を減少(又は増加)させる。いくつかの実施形態では、電力コントローラ320は、処理ノード300内の構成要素の各々について、それぞれの電力管理状態を選択する。したがって、処理ノード300全体にわたる電力コントローラ320及び付随する回路は、ノード300の構成要素を電力ゲーティングすることが可能である、又は、構成要素の電力管理状態を低減することが可能である。また、電力コントローラ320は、ノード300の構成要素に制御信号を送信して、遷移クロック信号からの接続、及び、電力供給基準からの接続を解消することもできる。さらに、電力コントローラ320は、データを外部ノードに転送するためにコネクタ352及び354のうち何れを使用するかの選択に影響を及ぼす制御信号をブリッジ相互接続ユニット340に送信することも可能である。
【0036】
いくつかの実施形態では、処理ノード300のアドレス空間は、並列データプロセッサ314、1つ以上の他のコンピューティングリソース(図示せず)、処理ノード300に接続される1つ以上の他の外部処理ノード、任意の外部CPU、入/出力(I/O)周辺デバイス(図示せず)等の1つ以上の他の構成要素、及び、他のタイプのコンピューティングリソースの間で分割される。メモリマップは、何れのアドレスが何れの構成要素にマッピングされるか、したがって、特定のアドレスに対するメモリ要求が何れの構成要素にルーティングされるべきかを判定するために維持される。
【0037】
システムメモリから受信したキャッシュフィルデータは、キャッシュ316及び並列データプロセッサ314の内部キャッシュメモリのうち対応する1つ以上に伝達される。言い替えると、キャッシュフィルラインは、1つ以上のレベルのキャッシュ内に置かれる。いくつかの設計では、並列データプロセッサ314は、レベル1(L1)命令キャッシュ及びL1データキャッシュを含む。キャッシュ116は、階層型キャッシュメモリサブシステムで使用されるレベル2(L2)キャッシュ及びレベル3(L3)キャッシュのうち1つ以上を提供する。並列データプロセッサ314の内部にあるか外部にあるかにかかわらず、他の数のレベル及び他のキャッシュの配置が可能であり、企図される。
【0038】
ブリッジ相互接続ユニット340は、光コネクタ352及び非光コネクタ354にデータを送受信する。光学式及び非光学式の各々の1つのコネクタが示されているが、他の設計では、別の数のコネクタが使用される。いくつかの実施形態では、光コネクタは、電気情報と光情報との間で変換するためのフォトニック集積回路を含むが、他の実施形態では、フォトニック集積回路は、ブリッジ相互接続ユニット340内に配置される。ブリッジ相互接続ユニット340は、処理ノード300のための1つ以上のブリッジ相互接続(例えば、光ブリッジ相互接続及び非光ブリッジ相互接続)を横切るデータ転送を管理する。ブリッジ相互接続ユニット340は、そのノード300と外部ノードとの間で何れの1つ以上のブリッジ相互接続が動作可能であるかを決定する。例えば、ブリッジ相互接続ユニット340は、ブリッジカードがブリッジ相互接続ユニット340に利用可能な1つ以上の接続にプラグインされた又は挿入された接続を有するときを検出する。
【0039】
コネクタ352及び354の何れが利用可能であるか又はその両方が利用可能であるかに基づいて、ブリッジ相互接続ユニット340は、動作可能なブリッジ相互接続のタイプを決定する。例えば、ブリッジ相互接続ユニット340は、対応するブリッジカードのコネクタ352がブリッジ相互接続ユニット340内の光コネクタに接続されたことを検出すると、光データ接続が利用可能であると判定する。ノード300と外部ノードとの間に動作可能な光ブリッジ相互接続があると決定したことに基づいて、ブリッジ相互接続ユニット340は、光ブリッジ相互接続を使用して外部ノードとデータを転送する。いくつかの実施形態では、ブリッジ相互接続ユニット340は、測定された電力消費量及び測定されたデータ伝送誤り率等の1つ以上の要因に基づいて、コネクタ352を介した光ブリッジ相互接続の使用と、コネクタ354を介した非光ブリッジ相互接続の使用と、を切り替える。
【0040】
図4を参照すると、インターフェースユニット400の一実施形態の一般化されたブロック図が示されている。図示したように、インターフェースユニット400は、制御ユニット410、フォトニック集積回路450、光コネクタ460、及び、非光コネクタ462を含む。制御ユニット410は、1つ以上のクライアントとの間でデータを転送する。上述したように、クライアントの例は、CPU、マルチメディアエンジンと通信するためのハブ、GPU、DSP、FPGA、特定用途向け集積回路(ASIC)等である。転送されているデータには、読み取りアクセス要求、スヌープ要求、書き込みアクセス要求、読み取り応答、制御確認応答、制御コマンド、コマンド応答等が含まれる。いくつかの実施形態では、インターフェースユニット400は、(図3の)ブリッジ相互接続ユニット340、並びに、(図1の)ノード110A~110D及び(図2の)ノード230A~230Dのインターフェース(IF)と同じ機能を含む。インターフェースユニット400の機能は、ブリッジカードを横断する2つのノード間のデータ伝送をサポートするブリッジカード上の処理ノード及び処理ユニットのうち1つ以上に配置されることが可能である。
【0041】
いくつかの実施形態では、入力キュー412は、コネクタ460及び462から受信したパケットを格納し、これらのパケットは、1つ以上のクライアントに送信する前にパケット展開ユニット430によって後に展開される。出力キュー414は、パケットビルダユニット432によって生成されたパケットを格納し、これは、コネクタ460又は462のうち一方に送信するパケットである。2つのキュー412及び414が示されているが、他の設計では、別の数のキューが使用され、所定の基準に基づいてデータを格納する。
【0042】
パケットビルダユニット432(又はユニット432)は、伝送のために生成されているパケットに何れの候補の要求、応答及びコマンドが挿入されているかを判定する。いくつかの実施形態では、ユニット432は、データ圧縮を実行し、実行されたデータ圧縮を示すパケットヘッダにメタデータを挿入する。パケット展開ユニット430(又はユニット430)は、入力キュー412から選択されたパケットのパケットヘッダを解析し、パケットヘッダに格納された指標に基づいて、選択されたパケットを展開する。ユニット430及び432のうち1つ以上は、構成及びステータスレジスタ(CSR)440に格納された閾値及びパラメータを使用する。また、ユニット430及び432は、プログラム可能な優先順位及びCSR440に格納された値によって示される式に基づいて、キュー412及び414に格納されたデータを選択するための調停ロジックを含む。
【0043】
フォトニック集積回路(IC)450は、電気信号を光信号に変換又は転換する、及び、その逆に変換又は転換する。制御ユニット410及び対応する処理ノードの残りの部分は、受動素子(例えば、抵抗器、インダクタ、コンデンサ)及び能動素子(例えば、トランジスタ)及び電子束等の電気構成要素を使用して、電気情報を転送及び処理する。対照的に、フォトニックIC450は、光子又は光に依存するフォトニック構成要素を使用して、光学的情報を転送及び処理する。フォトニック構成要素の例は、光源又はレーザ、導波路、偏光子、位相シフタ、及び、変調器である。フォトニックIC450は、光コネクタ460及び光ブリッジ相互接続を介して光情報を送受信する。光ブリッジ相互接続は、2つの処理ノード間で光データを転送するために使用されるシリカ製の光ファイバを含む。いくつかの実施形態では、光コネクタ460は、チップ-ファイバインターフェースを提供するファイバカプラである。
【0044】
フォトニックIC450は、制御ユニット410の出力キュー414から電気信号を受け取り、これらの電気信号を使用して、電気-光ビット転換を実行する変調器内のフォトニックIC450の光源又はレーザを制御する。光源は、800ナノメートル~1,700ナノメートル等の可視スペクトルと赤外線との間の範囲の波長を使用して光を提供する。一実施形態では、光源及び変調器は、リン化インジウム(InP)チップ上に外部変調レーザ(EML)を実装するために分布帰還型レーザダイオード及び電界吸収変調器を使用する。リン化インジウム上にフォトニックICを組み立てることにより、同じチップ上に様々な光学的に能動的な機能及び受動的な機能を統合することができる。
【0045】
また、フォトニックIC450は、光コネクタ460のファイバカプラに光情報を送信する前に多重化及び逆多重化するためのフィルタを含む。電子束を駆動するためにコンデンサ、抵抗器及びトランジスタ等の電気構成要素をサイズ変更するのではなく、フォトニックIC450の光源(レーザ)によって提供(導入)される光の量は、制御ユニット410の出力キュー414から電気データを受信する変調器によって制御される(サイズ変更される)。フォトニック構成要素は、光ファイバケーブル等の光ブリッジ相互接続から光情報を受信し、この情報をデータ記憶のために入力キュー412に送信される電気信号に転換するために逆向きに動作される。電気信号等価物と比較して、光ブリッジ相互接続、光コネクタ460及びフォトニックIC450によって提供されるデータ伝送は、オンダイ面積の更なる低減、より高いデータレート及びより低い消費電力を提供する。
【0046】
いくつかの実施形態では、インターフェースユニット400は、非光コネクタ462も含む。先に説明したように、非光ブリッジ相互接続は、2つの処理ノード間の伝送線として使用されるエッチングされた銅線の複数の層を有する可撓性ケーブルである。非光コネクタ462は、利用可能な非光ブリッジ相互接続が提供される場合に、利用可能な非光ブリッジ相互接続上でのデータ伝送をサポートする。一例では、インターフェースユニット400を含む処理ノードに接続されたブリッジカードは、光ブリッジ相互接続と非光ブリッジ相互接続の両方をサポートするハイブリッドブリッジカードである。そのような場合、制御ユニット410は、何れのパケットを、光コネクタ460を介して光ブリッジ相互接続上で送信するか、及び、何れのパケットを、非光コネクタ462を介して非光ブリッジ相互接続上で送信するかを決定する。
【0047】
場合によっては、制御ユニット410は、特定のデータタイプに対応するパケットを非光コネクタ462に送信することを決定するが、他のデータタイプのパケットは光コネクタ460に送信される。一実施形態では、特定のデータタイプは、オーディオファイルに対応するデータである。しかしながら、他の実施形態では、別のデータタイプが非光コネクタ462に送信するために選択され、他のデータタイプのパケットは光コネクタ460に送信される。一実施形態では、CSR440の1つ以上のプログラマブルレジスタは、光コネクタ462が利用可能である場合に非光コネクタ460に送信される対応するパケットを有する特定の1つ以上のデータタイプの指標を格納する。
【0048】
いくつかの実施形態では、電力及びエラーモニタ420(又はモニタ420)は、インターフェースユニット400を含む処理ノードの特定の時間間隔(期間)の間に測定された電力消費の指標を受信する。いくつかの実施形態では、この測定された消費電力が閾値よりも大きい場合、制御ユニット410は、特定のデータタイプの非光コネクタ462への送信を、特定のデータタイプの光コネクタ460への送信に切り替える。上述したように、光ブリッジ相互接続上のデータ伝送のための電力消費は、非光ブリッジ相互接続上のデータ伝送よりも少ない。別の実施形態では、モニタ420が、コネクタ460及び462の特定のコネクタのデータ伝送誤り率が閾値より大きいと判定した場合、制御ユニット410は、特定のコネクタへのデータの送信からコネクタ460及び462の他方へのデータの送信に切り替える。
【0049】
図5を参照すると、コンピューティングシステムのパーティション500の一実施形態の一般化されたブロック図が示されている。図示したように、パーティション500は、通信ブリッジ520、ノード530A~530D、及び、インターフェース560を含む。一実施形態において、通信ブリッジ520は、(図2の)通信ブリッジ220の機能を含み、ノード530A~530Dは、(図1の)ノード110A~110D、(図2の)ノード230A~230D、(図4の)処理ノード400の機能を含む。更に、相互接続560は、(図1の)相互接続160及び(図2の)相互接続260の機能を含む。いくつかの実施形態では、パーティション500は、利用可能な光ブリッジ相互接続と利用可能な非光ブリッジ相互接続との間の光データ伝送及びステアリングデータ伝送を利用しながら、複数のグラフィックスカードをコンピューティングシステムに提供するために使用される。
【0050】
図6を参照すると、コンピューティングシステムにおける効率的なデータ転送のための方法600の一実施形態が示されている。説明のために、この実施形態(並びに、図7図8)におけるステップは順番に示されている。しかしながら、他の実施形態では、いくつかのステップは、示されるものとは異なる順序で行われ、いくつかのステップは、同時に実行され、いくつかのステップは、他のステップと組み合わされ、いくつかのステップは、存在しない。
【0051】
2つ以上のノードが、コンピューティングシステムのパーティション内に配置される。ノードは、少なくとも1つ以上のプロセッサと、ローカルメモリと、電力コントローラと、ブリッジ相互接続ユニットと、を含む。タスクが、ホストプロセッサ又はノード自体によってパーティションに割り当てられる。各ノードは、ダイレクトメモリアクセス(DMA)要求並びに他のコマンド、メッセージ、応答及びタスクを別のノードに送信することが可能である。第1のノードのインターフェースの制御ユニットは、何れのブリッジ相互接続が第1のノードのために動作可能であるかを決定するか、そうでなければ識別する(ブロック602)。例えば、制御ユニットは、ブリッジカードが第1のノードの対応するコネクタに接続されているかどうかを検出する。また、制御ユニットは、第1のタイプの第1のコネクタと、第1のタイプとは異なる第2のタイプの第2のコネクタと、を含む2つのコネクタとの間でデータを転送可能な2つ以上のコネクタを識別する。様々な実施形態では、第1のタイプのコネクタは、光相互接続を介してデータを転送することが可能であり、第2のタイプのコネクタは、非光相互接続を介してデータを転送することが可能である。制御ユニットは、動作可能ブリッジ相互接続のためのブリッジ相互接続のタイプを決定する(ブロック604)。例えば、動作可能なコネクタに基づいて、制御ユニットは、特定のブリッジ相互接続が光学式であるか、非光学式であるかを決定することが可能である。
【0052】
動作可能なタイプのうち何れかが、第2のノードとのデータ転送のための光ブリッジ相互接続である場合(条件ブロック606:「はい」)、制御ユニットは、データ転送のために光ブリッジ相互接続を選択する(ブロック608)。そうではなく、動作タイプの何れもが第2のノードとのデータ転送のための光ブリッジ相互接続ではない場合(条件ブロック606:「いいえ」)、制御ユニットは、データ転送のために非光ブリッジ相互接続を選択する(ブロック610)。したがって、そのような場合、光分岐相互接続は、第1のノードと第2のノードとの間のデータ転送に使用するためのデフォルトの又は好ましい分岐相互接続である。第1のノードは、選択されたブリッジ相互接続を使用して第2のノードとデータを転送する(ブロック612)。上述したように、少なくとも1つのブリッジカードは、ガラス強化エポキシ積層材料を利用して、1つ以上の光ファイバケーブルが上層及び/又は下層のこのエポキシ積層材料の溝に埋め込まれたプリント回路基板を実装する。このようなブリッジカードは、光信号を使用してデータを転送することが可能である。利用可能な光分岐相互接続又は非光分岐相互接続が存在しない等のように、分岐相互接続が利用可能でない場合、第1のノードは、直接ブリッジ相互接続を使用するのではなく、マザーボード上のシステムバスを使用して第2のノードとデータを転送することに留意されたい。
【0053】
図7を参照すると、コンピューティングシステムにおける効率的なデータ転送のための方法700の一実施形態が示されている。マルチノードパーティションにおいて、ブリッジ相互接続ユニットの制御ユニットは、第1のノードの動作可能なブリッジ相互接続のためのブリッジ相互接続のタイプを決定する(ブロック702)。制御ユニットは、構成データを読み取って、第1のノードのためのブリッジ相互接続の好ましいタイプを決定する(ブロック704)。一実施形態では、構成データは、データタイプに基づいて使用すべき好ましいタイプのブリッジ相互接続を決定する。一例では、ビデオフレームデータには光ブリッジ相互接続が好ましく、オーディオファイルのデータには非光ブリッジ相互接続が好ましい。他のデータタイプ及び好ましい割り当ても可能であり、企図される。一実施形態において、割り当ての指標は、プログラマブル構成レジスタに格納される。
【0054】
制御ユニットが、好ましいタイプのブリッジ相互接続が第2のノードとのデータ転送に利用可能であると決定した場合(条件ブロック706:「はい」)、制御ユニットは、データ転送のために好ましいタイプのブリッジ相互接続を選択する(ブロック708)。そうではなく、制御ユニットが、好ましいタイプのブリッジ相互接続が第2のノードとのデータ転送に利用不可能であると決定した場合(条件ブロック706:「いいえ」)、制御ユニットは、データ転送のために別のタイプのブリッジ相互接続を選択する(ブロック710)。第1のノードは、選択されたタイプのブリッジ相互接続を使用して第2のノードとデータを転送する(ブロック712)。様々な実施形態では、少なくとも1つのブリッジカードは、ガラス強化エポキシ積層材料を利用して、1つ以上の光ファイバケーブルが上層及び/又は下層のこのエポキシ積層材料の溝に埋め込まれたプリント回路基板を実装する。このようなブリッジカードは、光信号を使用してデータを転送することが可能である。上述したように、利用可能な光ブリッジ相互接続又は非光ブリッジ相互接続が存在しない等、ブリッジ相互接続が利用可能でない場合、第1のノードは、直接ブリッジ相互接続を使用するのではなく、マザーボード上のシステムバスを使用して第2のノードとデータを転送することに留意されたい。
【0055】
図8を参照すると、コンピューティングシステムにおける効率的なデータ転送のための方法800の一実施形態が示されている。マルチノードパーティションの第1のノードは、現在のタイプのブリッジ相互接続を使用して第2のノードとデータを転送する(ブロック802)。現在のタイプは、光ブリッジ相互接続及び非光ブリッジ相互接続のうち一方である。ブリッジ相互接続ユニットの制御ユニットは、第1のノードの電力消費を監視する。他の実施形態では、制御ユニットは、電力コントローラから第1のノードの電力消費の指標を受信する。制御ユニットが、測定された電力消費が現在のタイプの変更を示さないと判定した場合(条件ブロック804:「いいえ」)、制御ユニットは、測定された電力消費に基づいてブリッジ相互接続の現在のタイプを維持する。しかしながら、制御ユニットが、測定された電力消費が現在のタイプの変更を示すと判定した場合(条件ブロック804:「はい」)、制御ユニットは、測定された電力消費に基づいてブリッジ相互接続の現在のタイプを変更する(ブロック806)。一例では、現在のタイプは非光ブリッジ相互接続であり、測定された電力消費は第1の閾値よりも大きい。したがって、制御ユニットは、第2のノードとのデータ転送のために、利用可能であれば、現在のタイプを光ブリッジ相互接続に変更する。光ブリッジ相互接続は、非光ブリッジ相互接続よりもデータ伝送のために消費する電力が少ない。
【0056】
いくつかの実施形態では、制御ユニットは、第1のノードと第2のノードとの間のデータ転送の誤り率を監視する。他の実施形態では、制御ユニットは、別のユニットから誤り率の指標を受信する。制御ユニットが、測定された誤り率が現在のタイプの変更を示さないと判定した場合(条件ブロック808:「いいえ」)、制御ユニットは、測定された誤り率に基づいてブリッジ相互接続の現在のタイプを維持する。しかしながら、制御ユニットが、測定された誤り率が現在のタイプの変更を示すと決定した場合(条件ブロック808:「はい」)、制御ユニットは、測定された誤り率に基づいてブリッジ相互接続の現在のタイプを変更する(ブロック810)。その後、方法800の制御フローはブロック802に戻り、第1のノードは第2のノードとデータを転送する。
【0057】
上述した実施形態のうち1つ以上がソフトウェアを含むことに留意されたい。そのような実施形態では、方法及び/又は機構を実施するプログラム命令は、コンピュータ可読媒体上に伝達又は記憶される。プログラム命令を記憶するように構成されている多数のタイプの媒体が利用可能であり、ハードディスク、フロッピー(登録商標)ディスク、CD-ROM、DVD、フラッシュメモリ、プログラマブルROM(Programmable ROM、PROM)、ランダムアクセスメモリ(RAM)、及び、様々な他の形態の揮発性又は不揮発性記憶装置が挙げられる。一般的に言えば、コンピュータアクセス可能記憶媒体は、命令及び/又はデータをコンピュータに提供するために、使用中にコンピュータによってアクセス可能な任意の記憶媒体を含む。例えば、コンピュータアクセス可能記憶媒体としては、磁気又は光学媒体(例えば、ディスク(固定又は取り外し可能)、テープ、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW、Blu-Ray(登録商標)等の記憶媒体)が挙げられる。記憶媒体としては、RAM(例えば、同期ダイナミックRAM(synchronous dynamic RAM、SDRAM)、ダブルデータレート(double data rate、DDR、DDR2、DDR3等)SDRAM、低電力DDR(low-power DDR、LPDDR2等)SDRAM、ラムバスDRAM(Rambus DRAM、RDRAM)、スタティックRAM(static RAM、SRAM)等)、ROM、フラッシュメモリ等の揮発性又は不揮発性メモリ媒体、ユニバーサルシリアルバス(Universal Serial Bus、USB)インターフェース等の周辺インターフェースを介してアクセス可能な不揮発性メモリ(例えば、フラッシュメモリ)等が更に挙げられる。記憶媒体としては、微小電気機械システム(microelectromechanical system、MEMS)、並びに、ネットワーク及び/又はワイヤレスリンク等の通信媒体を介してアクセス可能な記憶媒体が挙げられる。
【0058】
追加的に、様々な実施形態では、プログラム命令は、C等の高レベルプログラミング言語、又は、Verilog、VHDL等の設計言語(design language、HDL)、又は、GDSIIストリームフォーマット(GDSII)等のデータベースフォーマットでのハードウェア機能の動作レベル記述又はレジスタ転送レベル(register-transfer level、RTL)記述を含む。場合によっては、記述は、合成ライブラリからゲートのリストを含むネットリストを生成するために記述を合成する合成ツールによって読み出される。ネットリストは、システムを含むハードウェアの機能も表すゲートのセットを含む。ネットリストは、次いで、マスクに適用される幾何学的形状を記述するデータセットを生成するために、配置及びルーティングされ得る。次に、マスクは、システムに対応する半導体回路又は回路を製造するために、様々な半導体製造ステップで使用され得る。代替的に、コンピュータアクセス可能記憶媒体上の命令は、必要に応じて、ネットリスト(合成ライブラリを有する、若しくは有しない)又はデータセットである。追加的に、命令は、Cadence(登録商標)、EVE(登録商標)及びMentor Graphics(登録商標)等のベンダからのハードウェアベースのタイプのエミュレータによるエミュレーションのために利用される。
【0059】
上記の実施形態は、かなり詳細に説明されているが、上記の開示が十分に理解されると、多数の変形及び修正が当業者に明らかになるであろう。以下の特許請求の範囲は、全てのそのような変形及び修正を包含すると解釈されることが意図されている。
図1
図2
図3
図4
図5
図6
図7
図8
【手続補正書】
【提出日】2024-02-09
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
装置であって、
通信ブリッジに結合されるように構成された複数のコネクタであって、前記複数のコネクタは、第1のタイプの第1のコネクタと、前記第1のタイプとは異なる第2のタイプの第2のコネクタと、を有しており、前記第1のコネクタ及び前記第2のコネクタの両方が第1のデータを転送可能である、複数のコネクタと、
前記第1のデータに対応するデータのタイプ及び前記第1のデータを使用するアプリケーションのタイプの識別に少なくとも部分的に基づいて、前記第1のコネクタ及び前記第2のコネクタのうち所定のコネクタを選択することと、前記所定のコネクタを介して前記第1のデータを転送することと、を行うように構成された制御回路と、を備える、
装置。
【請求項2】
前記第1のコネクタは光コネクタであり、前記第2のコネクタは非光コネクタである、
請求項1の装置。
【請求項3】
前記制御回路は、プログラマブルレジスタに格納された前記所定のコネクタに対応する指標に応じて、前記所定のコネクタを介して前記第1のデータを転送するように構成されており、
前記指標は、前記第1のデータに対応するデータのタイプ及び前記第1のデータを使用するアプリケーションのタイプの識別を提供する、
請求項2の装置。
【請求項4】
前記制御回路は、測定されたデータ伝送誤り率及び消費電力のうち1つ以上に少なくとも部分的に基づいて、前記第1のデータとは異なる第2のデータの転送のために前記所定のコネクタを選択するように構成されている、
請求項の装置。
【請求項5】
前記制御回路は、前記第1のコネクタを介して前記第1のデータを、前記第2のコネクタを介して前記第1のデータと異なる第2のデータを、同時に転送するように構成されている、
請求項2の装置。
【請求項6】
前記制御回路は、前記第2のタイプのコネクタを用いてデータを転送するように構成された第1の相互接続と、前記第1のタイプのコネクタを用いてデータを転送するように構成された第2の相互接続と、前記第2のタイプのコネクタを用いてデータを転送するように構成された前記通信ブリッジの第3の相互接続と、の組み合わせに結合された前記第2のコネクタを介して、第2のデータを転送するように構成されている、
請求項1の装置。
【請求項7】
前記制御回路、アプリケーションからのヒントに少なくとも部分的に基づいて、前記第1のデータとは異なる第2のデータを転送するために前記所定のコネクタを選択するように構成されている、
請求項1の装置。
【請求項8】
方法であって、
システムの複数のノードのうち何れかのノードによってタスクを処理することと、
前記何れかのノードの複数のコネクタから、第1のデータに対応するデータのタイプ及び前記第1のデータを使用するアプリケーションのタイプの識別に少なくとも部分的に基づいて、第1のタイプの第1のコネクタ及び前記第1のタイプとは異なる第2のタイプの第2のコネクタのうち所定のコネクタを選択することと、
前記所定のコネクタを介して前記第1のデータを転送することであって、前記何れかのノードの前記複数のコネクタは、通信ブリッジに結合されるように構成されており、前記第1のコネクタ及び前記第2のコネクタの両方が前記第1のデータを転送可能である、ことと、を含む、
方法。
【請求項9】
前記第1のコネクタは光コネクタであり、前記第2のコネクタは非光コネクタである、
請求項8の方法。
【請求項10】
プログラマブルレジスタに格納された前記所定のコネクタに対応する指標に応じて、前記所定のコネクタを介して前記第1のデータを転送することを含み、
前記指標は、前記第1のデータに対応するデータのタイプ及び前記第1のデータを使用するアプリケーションのタイプの識別を提供する、
請求項9の方法。
【請求項11】
測定されたデータ伝送誤り率及び消費電力のうち1つ以上に少なくとも部分的に基づいて、前記第1のデータとは異なる第2のデータの転送のために前記所定のコネクタを選択することを含む
請求項の方法。
【請求項12】
前記第1のコネクタを介して前記第1のデータを、前記第2のコネクタを介して前記第1のデータと異なる第2のデータを、同時に転送することを含む、
請求項9の方法。
【請求項13】
前記第2のタイプのコネクタを用いてデータを転送するように構成された第1の相互接続と、前記第1のタイプのコネクタを用いてデータを転送するように構成された第2の相互接続と、前記第2のタイプのコネクタを用いてデータを転送するように構成された前記通信ブリッジの第3の相互接続と、の組み合わせに結合された前記第2のコネクタを介して、第2のデータを転送することを含む、
請求項8の方法。
【請求項14】
プリケーションからのヒントに少なくとも部分的に基づいて、前記第1のデータとは異なる第2のデータを転送するために前記所定のコネクタを選択することを含む、
請求項8の方法。
【請求項15】
コンピューティングシステムであって、
タスクを処理するように構成された複数のノードと、
各々が前記複数のノードのうち少なくとも2つのノードの間にある、複数のブリッジ相互接続を有する通信ブリッジと、を備え、
前記複数のノードのうち第1のノードは、前記通信ブリッジに結合されるように構成された複数のコネクタであって、前記複数のコネクタは、第1のタイプの第1のコネクタと、前記第1のタイプとは異なる第2のタイプの第2のコネクタと、を有し、前記第1のコネクタ及び前記第2のコネクタの両方が第1のデータを転送可能である、複数のコネクタを有しており、
前記第1のノードは、前記第1のデータに対応するデータのタイプ及び前記第1のデータを使用するアプリケーションのタイプの識別に少なくとも部分的に基づいて、前記第1のコネクタ及び前記第2のコネクタのうち所定のコネクタを選択することと、前記所定のコネクタを介して前記第1のデータを転送することと、を行うように構成されている、
コンピューティングシステム。
【請求項16】
前記第1のコネクタは光コネクタであり、前記第2のコネクタは非光コネクタである、
請求項15のコンピューティングシステム。
【請求項17】
前記第1のノードは、プログラマブルレジスタに格納された前記所定のコネクタに対応する指標に応じて、前記所定のコネクタを介して前記第1のデータを転送するように構成されており、
前記指標は、前記第1のデータに対応するデータのタイプ及び前記第1のデータを使用するアプリケーションのタイプの識別を提供する、
請求項16のコンピューティングシステム。
【請求項18】
前記第1のノードは、測定されたデータ伝送誤り率及び消費電力のうち1つ以上に少なくとも部分的に基づいて、前記第1のデータとは異なる第2のデータの転送のために前記所定のコネクタを選択するように構成されている
請求項15のコンピューティングシステム。
【請求項19】
前記第1のノードは、前記第1のコネクタを介して前記第1のデータを、前記第2のコネクタを介して前記第1のデータと異なる第2のデータを、同時に転送するように構成されている、
請求項16のコンピューティングシステム。
【請求項20】
前記第1のノードは、前記第2のタイプのコネクタを用いてデータを転送するように構成された第1の相互接続と、前記第1のタイプのコネクタを用いてデータを転送するように構成された第2の相互接続と、前記第2のタイプのコネクタを用いてデータを転送するように構成された前記通信ブリッジの第3の相互接続と、の組み合わせに結合された前記第2のコネクタを介して、第2のデータを転送するように構成されている、
請求項15のコンピューティングシステム。
【国際調査報告】