(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-05
(45)【発行日】2024-07-16
(54)【発明の名称】高帯域クロスリンクを使用したGPUチップレット
(51)【国際特許分類】
G06F 15/173 20060101AFI20240708BHJP
G06F 12/0811 20160101ALI20240708BHJP
G06F 12/084 20160101ALI20240708BHJP
G06F 9/38 20180101ALI20240708BHJP
G06F 15/80 20060101ALI20240708BHJP
G06F 15/78 20060101ALI20240708BHJP
H01L 25/00 20060101ALI20240708BHJP
G06F 12/0815 20160101ALI20240708BHJP
【FI】
G06F15/173 665C
G06F12/0811
G06F12/084
G06F9/38 370C
G06F15/80
G06F15/78 570
H01L25/00 B
G06F12/0815
(21)【出願番号】P 2021576314
(86)(22)【出願日】2020-06-24
(86)【国際出願番号】 US2020039326
(87)【国際公開番号】W WO2020263952
(87)【国際公開日】2020-12-30
【審査請求日】2023-06-15
(32)【優先日】2019-06-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】スカイラー ジェイ. サレハ
(72)【発明者】
【氏名】サミュエル ナフザイガー
(72)【発明者】
【氏名】ミリンド エス. バガヴァット
(72)【発明者】
【氏名】ラフール アガルワル
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2007-316859(JP,A)
【文献】国際公開第2019/032322(WO,A1)
【文献】特表2014-508353(JP,A)
【文献】米国特許出願公開第2015/0363356(US,A1)
【文献】米国特許出願公開第2018/0308272(US,A1)
【文献】米国特許出願公開第2018/0246814(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/173
G06F 12/0811
G06F 12/084
G06F 9/38
G06F 15/80
G06F 15/78
H01L 25/00
G06F 12/0815
(57)【特許請求の範囲】
【請求項1】
グラフィック処理ユニット(GPU)チップレットアレイの第1のGPU[104]チップレットに通信可能に結合された中央処理ユニット(CPU)[102]を備え、
前記GPUチップレットアレイは、
バス[108]を介して前記CPUに通信可能に結合された第1のGPUチップレット[106-1]と、
チップレット間の通信専用のパッシブクロスリンク[118]を介して前記第1のGPUチップレットに通信可能に結合された第2のGPUチップレット[106-2]と、を含む、
システム。
【請求項2】
前記パッシブクロスリンクは、パッシブインターポーザダイを備える、
請求項1のシステム。
【請求項3】
前記第1のGPUチップレットは、チップレット間通信のための導体構造を含む第1のPHY領域[202]を備え、
前記第2のGPUチップレットは、チップレット間通信のための導体構造を含む第2のPHY領域を備える、
請求項1のシステム。
【請求項4】
チップレット間の通信専用のパッシブクロスリンクを介して前記第1のGPUチップレットに通信可能に結合された第3のGPUチップレットであって、チップレット間通信のための導体構造を含む第3のPHY領域を備える第3のGPUチップレットをさらに備える、
請求項3のシステム。
【請求項5】
前記第1のGPUチップレットの前記第1のPHY領域は、前記パッシブクロスリンクと前記第1のGPUチップレットの最終レベルのキャッシュ[310]との間の通信のみのための導体トレースを含む第1のパッシブクロスリンクPHYを備える、
請求項4のシステム。
【請求項6】
前記第2のGPUチップレットの前記第2のPHY領域は、前記パッシブクロスリンクと前記第2のGPUチップレットの最終レベルのキャッシュとの間の通信のみのための導体トレースを含む第2のパッシブクロスリンクPHYを備え、
前記第3のGPUチップレットの前記第3のPHY領域は、前記パッシブクロスリンクと前記第3のGPUチップレットの最終レベルのキャッシュとの間の通信のみのための導体トレースを含む第3のパッシブクロスリンクPHYを備える、
請求項4のシステム。
【請求項7】
前記パッシブクロスリンクは、前記GPUチップレットアレイ内の全てのGPUチップレットを通信可能に結合する、
請求項1のシステム。
【請求項8】
前記第1のGPUチップレットにおける第1のキャッシュメモリ階層であって、前記第1のキャッシュメモリ階層の第1のレベル[306]が前記第1のGPUチップレット内でコヒーレントである、第1のキャッシュメモリ階層と、
前記第2のGPUチップレットにおける第2のキャッシュメモリ階層であって、前記第2のキャッシュメモリ階層の第1のレベルが前記第2のGPUチップレット内でコヒーレントである、第2のキャッシュメモリ階層と、をさらに備える、
請求項1のシステム。
【請求項9】
前記第1のキャッシュメモリ階層の最終レベルと、前記第2のキャッシュメモリ階層の最終レベルと、の両方を含む統合されたキャッシュメモリであって、前記統合されたキャッシュメモリが前記GPUチップレットアレイの全てのチップレットに亘ってコヒーレントである、統合されたキャッシュメモリをさらに備える、
請求項8のシステム。
【請求項10】
回路基板を前記第1のGPUチップレットの第1の非PHY領域[204]及び前記第2のGPUチップレットの第2の非PHY領域に結合する複数の導電性ピラー[212]をさらに備える、
請求項1のシステム。
【請求項11】
GPUチップレットアレイの第1のGPUチップレット[106-1]において、中央処理ユニット(CPU)[102]からメモリアクセス要求を受信することと、
前記第1のGPUチップレットのパッシブクロスリンクコントローラ[404]において、前記メモリアクセス要求に関連するデータが記憶される位置に対応するキャッシュGPUチップレットを判別することと、
前記GPUチップレットアレイ内のチップレット間の通信専用のパッシブクロスリンク[118]を介して、前記メモリアクセス要求を、前記キャッシュGPUチップレットの最終レベルのキャッシュ[310]にルーティングすることと、
前記メモリアクセス要求に関連するデータを前記CPUに返信することと、を含む、
方法。
【請求項12】
前記メモリアクセス要求をルーティングすることは、スケーラブルデータファブリック[314]が、前記キャッシュGPUチップレットの前記メモリアクセス要求に関連するデータを要求することをさらに含む、
請求項11の方法。
【請求項13】
前記メモリアクセス要求をキャッシュGPUチップレットの最終レベルのキャッシュにルーティングすることは、
前記第1のGPUチップレットが前記キャッシュGPUチップレットであると判別したことに基づいて、前記メモリアクセス要求を、前記パッシブクロスリンクと前記第1のGPUチップレットの最終レベルのキャッシュとの間の通信のみのための導体トレースを含む第1のパッシブクロスリンクPHY[406-1]を介してルーティングすることをさらに含む、
請求項11の方法。
【請求項14】
前記メモリアクセス要求をキャッシュGPUチップレットの最終レベルのキャッシュにルーティングすることは、
第2のGPUチップレット[106-2]が前記キャッシュGPUチップレットであると判別したことに基づいて、前記メモリアクセス要求を、前記パッシブクロスリンクと前記第2のGPUチップレットの最終レベルのキャッシュとの間の通信のみのための導体トレースを含む第2のパッシブクロスリンクPHY[406-2]を介してルーティングすることをさらに含む、
請求項11の方法。
【請求項15】
前記メモリアクセス要求に関連するデータを、前記パッシブクロスリンクと前記キャッシュGPUチップレットとの間の通信のみのための導体トレースを含むパッシブクロスリンクPHYを介して前記第1のGPUチップレットに返信することをさらに含む、
請求項11の方法。
【発明の詳細な説明】
【背景技術】
【0001】
移動電話、パーソナルデジタルアシスタント(PDA)、デジタルカメラ、ポータブルプレーヤ、ゲーミング及び他のデバイス等のコンピュータデバイスでは、より多くの性能及び機能を小さな空間に集積することが求められている。その結果、単一の集積回路(IC)パッケージに集積されるプロセッサダイの密度及びダイの数が増大している。従来のマルチチップモジュールの中には、2つ以上の半導体チップを、キャリア基板上に並べて搭載したものや、場合によっては、キャリア基板上に搭載されたインターポーザ(いわゆる、「2.5D」)上に搭載したものがある。
【0002】
本開示は、添付図面を参照することによって、より良く理解することができ、その多くの特徴及び利点が当業者に明らかになる。異なる図面における同じ符号の使用は、類似又は同じアイテムを示している。
【図面の簡単な説明】
【0003】
【
図1】いくつかの実施形態による、GPUチップレットを結合するための高帯域のパッシブクロスリンクを採用する処理システムを示すブロック図である。
【
図2】いくつかの実施形態による、GPUチップレット及びパッシブクロスリンクの断面図を示すブロック図である。
【
図3】いくつかの実施形態による、パッシブクロスリンクによって結合されたGPUチップレットのキャッシュ階層を示すブロック図である。
【
図4】いくつかの実施形態による、GPUチップレットのフロア平面図を示すブロック図である。
【
図5】いくつかの実施形態による、4チップレット構成を利用する処理システムを示すブロック図である。
【
図6】いくつかの実施形態による、チップレット間の通信を実施する方法を示すフロー図である。
【発明を実施するための形態】
【0004】
従来のモノリシックなダイの設計は、製造コストが高くなる傾向にある。CPUアーキテクチャでは、相互通信をあまり必要としない別個のユニットにCPUコアを分離するヘテロジニアスな計算特性がより自然に適しているため、製造コストを低減させ、生産量を向上させるために、チップレットがうまく利用されている。GPUのワークには、その性質上、並列したワークが含まれる。しかし、GPUが処理するジオメトリには、完全に並列なワークのセクションだけでなく、異なるセクション間で同期した順序付けを必要とするワークも含まれる。したがって、ワークのセクションを異なるスレッド上に分散させるGPUプログラミングモデルは、複数の異なるワーキンググループ及びチップレットに亘って並列処理を分散させることが困難であることから、しばしば非効率である。この困難であることの理由は、メモリのコヒーレントなビュー(coherent view)をアプリケーションに提供するために、システム全体で共有されたリソースのメモリコンテンツを同期させることが困難であるとともに費用がかかるためである。さらに、論理的な観点から、アプリケーションは、システムが単一のGPUのみを有する視点で書かれている。すなわち、従来のGPUが多くのGPUコアを含んでいたとしても、アプリケーションは、単一のデバイスに対処するようにプログラムされる。そのため、チップレット設計手法をGPUアーキテクチャに取り入れることが歴史的に困難とされている。
【0005】
現在のプログラミングモデルを維持しながらGPUチップレットを使用してシステムの性能を向上させるために、
図1~
図6は、GPUチップレットの結合のために高帯域幅のパッシブクロスリンクを利用するシステム及び方法を示している。様々な実施形態では、システムは、グラフィック処理ユニット(GPU)チップレットアレイの第1のGPUチップレットに通信可能に結合された中央処理ユニット(CPU)を含んでいる。GPUチップレットアレイは、バスを介してCPUに通信可能に結合された第1のGPUチップレットと、パッシブクロスリンクを介して第1のGPUチップレットに通信可能に結合された第2のGPUチップレットと、を含む。様々な実施形態では、パッシブクロスリンクは、チップレット間の通信専用のパッシブインターポーザダイである。GPUチップレットは、システムオンチップ(SoC)を、SoCの様々なコア(例えば、GPU)の機能を実施する「チップレット」と呼ばれるより小さな機能グループに分割する。
【0006】
現在、様々なアーキテクチャが、従来のGPUダイ全体に亘ってコヒーレントな少なくとも1つのレベルのキャッシュ(例えば、L3又は他の最終レベルのキャッシュ(LLC))を既に有している。ここで、チップレットベースのGPUアーキテクチャは、これらの物理的リソース(例えば、LLC)を異なるダイ上に配置し、LLCレベルが統合され、全てのGPUチップレットに亘ってキャッシュコヒーレントを維持するように、これらの物理的リソースを通信可能に結合する。したがって、超並列環境(massively parallel environment)で動作しているにもかかわらず、L3キャッシュレベルがコヒーレントになる。動作中、CPUからGPUへのメモリアドレス要求は、単一のGPUチップレットのみに送信され、GPUチップレットは、高帯域パッシブクロスリンクで通信して、要求されたデータを探す。CPUから見ると、このことは、単一のダイのモノリシックなGPUを扱っているように見える。これにより、大容量のマルチチップレットGPUを、アプリケーションからは単一のデバイスに見えるように使用することが可能になる。
【0007】
図1は、いくつかの実施形態による、GPUチップレットの結合のための高帯域パッシブクロスリンクを採用する処理システム100を示すブロック図である。図示した例では、システム100は、命令を実行するための中央処理ユニット(CPU)102と、3つの図示したGPUチップレット106-1,106-2,106-Nまで(まとめて、GPUチップレット106)等の1つ以上のGPUチップレットのアレイ104と、を含む。様々な実施形態では、本明細書で使用される場合、「チップレット」という用語は、限定ではないが、以下の機能を含む任意のデバイスを指す。1)チップレットは、完全な問題を解決するために使用されるコンピュータロジックの一部を包むアクティブシリコンダイを含む(すなわち、計算ワークロード(computational workload)が、これらのアクティブシリコンダイの複数に亘って分散される)。2)チップレットは、同じ基板上にモノリシックなユニットとして共にパッケージングされている。3)プログラミングモデルは、これら別々の計算ダイ(computational dies)が単一のモノリシックなユニットであるというコンセプトを維持する(すなわち、計算ワークロードを処理するためにチップレットを使用するアプリケーションには、各チップレットが別々のデバイスとして現れない)。
【0008】
様々な実施形態では、CPU102は、バス108を介して、ダイナミックランダムアクセスメモリ(DRAM)等のシステムメモリ110に接続されている。様々な実施形態では、システムメモリ110は、スタティックランダムアクセスメモリ(SRAM)、不揮発性RAM等を含む他のタイプのメモリを使用して実装することも可能である。図示した実施形態では、CPU102は、ペリフェラルコンポーネントインターコネクト(PCI)バス、PCI-Eバス又は他のタイプのバスとして実装されるバス108を介して、システムメモリ110及びGPUチップレット106-1と通信する。しかし、システム100のいくつかの実施形態は、直接の通信を介して又は他のバス、ブリッジ、スイッチ、ルータ等を介してCPU102と通信するGPUチップレット106-1を含む。
【0009】
図示したように、CPU102は、グラフィックコマンドを生成する1つ以上のアプリケーション(複数可)112やユーザモードドライバ116(又は、カーネルモードドライバ等の他のドライバ)を実行する等の複数のプロセスを含む。様々な実施形態では、1つ以上のアプリケーション112は、システム100又はオペレーティングシステム(OS)においてワークを生成するアプリケーション等のように、GPUチップレット106の機能を利用するアプリケーションを含む。アプリケーション112は、グラフィックユーザインターフェース(GUI)及び/又はグラフィックシーンをレンダリングするようにGPUチップレット106に指示する1つ以上のグラフィック命令を含んでもよい。例えば、グラフィック命令は、GPUチップレット106によってレンダリングされる1つ以上のグラフィックプリミティブ(graphics primitives)のセットを定義する命令を含んでもよい。
【0010】
いくつかの実施形態では、アプリケーション112は、ユーザモードドライバ116(又は、同様のGPUドライバ)を呼び出すためにグラフィックアプリケーションプログラミングインターフェース(API)114を利用する。ユーザモードドライバ116は、1つ以上のグラフィックプリミティブを、表示可能なグラフィック画像にレンダリングするために、1つ以上のコマンドを1つ以上のGPUチップレットのアレイ104に発行する。アプリケーション112によってユーザモードドライバ116に発行されたグラフィック命令に基づいて、ユーザモードドライバ116は、グラフィックをレンダリングするためにGPUチップレットが実施する1つ以上のオペレーションを指定する1つ以上のグラフィックコマンドを組み立てる(formulates)。いくつかの実施形態では、ユーザモードドライバ116は、CPU102上で実行されるアプリケーション112の一部である。例えば、ユーザモードドライバ116は、CPU102上で実行されるゲーミングアプリケーションの一部であってもよい。同様に、カーネルモードドライバ(図示省略)は、CPU102上で実行されるオペレーティングシステムの一部であってもよい。
【0011】
図1に示す実施形態では、パッシブクロスリンク118は、GPUチップレット106(すなわち、GPUチップレット106-1~106-N)を互いに通信可能に結合する。3つのGPUチップレット106が
図1に示されているが、チップレットアレイ104内のGPUチップレットの数は、設計上の選択の問題であり、以下により詳細に説明するように、他の実施形態では変化する場合がある。様々な実施形態では、パッシブクロスリンク118は、高密度クロスリンク(HDCL)ダイインターポーザ、又は、チップレット間の通信のための他の同様の技術等の相互接続チップを含む。一般的な動作概要として、CPU102は、バス108を介して単一のGPUチップレット(すなわち、GPUチップレット106-1)に通信可能に結合される。CPU102からチップレット106のアレイ104へのCPU対GPU(CPU-to-GPU)トランザクション又は通信は、GPUチップレット106-1で受信される。次に、任意のチップレット間の通信が、他のGPUチップレット106上のメモリチャネルにアクセスするために、必要に応じて、パッシブクロスリンク118を介してルーティングされる。このように、GPUチップレットベースのシステム100は、ソフトウェア開発者の視点から単一のモノリシックなGPUとしてアドレス可能なGPUチップレット106を含み(例えば、CPU102及び任意の関連するアプリケーション/ドライバは、チップレットベースのアーキテクチャを認識していない)、したがって、プログラマー又は開発者の側で任意のチップレット固有の考慮事項を必要としないようにすることが可能である。
【0012】
チップレットベースのアーキテクチャの更なる詳細は、
図2を参照して理解することができる。
図2は、いくつかの実施形態による、GPUチップレット及びパッシブクロスリンクの断面図を示すブロック図である。ビュー200は、断面A-Aで得られた
図1のGPUチップレット106-1,106-2,パッシブクロスリンク118の断面図を提供する。様々な実施形態では、各GPUチップレット106は、チップレット間信号の伝達専用の様々な内部及び外部の導電体構造を有する物理デバイス(PHY)領域202と、電力及び接地並びに/又はチップレット対回路基板の信号の伝達のためにより調整された導電体構造を有する非PHY領域204と、を用いて構築されている。
【0013】
上述したように、GPUチップレット106は、パッシブクロスリンク118によって通信可能に結合されている。様々な実施形態では、パッシブクロスリンク118は、シリコン、ゲルマニウム又は他の半導体材料で構成された相互接続チップであり、バルク半導体、絶縁体上の半導体、又は、他の設計であってもよい。パッシブクロスリンク118は、所望により単一レベル又は複数レベルであってもよい複数の内部導電体トレースを含む。3つのトレースが
図2に示されており、トレース206として集合的にラベルが付されている。トレース206は、導電経路によってGPUチップレット106のPHY領域202の導電体構造と電気的にインターフェースする。パッシブクロスリンク118は、如何なるシリコン貫通電極(TSV)も含まないことに留意されたい。このように、パッシブクロスリンク118は、GPUチップレット106間を通信可能に結合し、通信をルーティングすることにより、パッシブルーティングネットワークを形成するパッシブインターポーザダイである。
【0014】
GPUチップレット106の非PHY領域204は、複数の導電性ピラー212によって、回路基板210(又は、任意の他の基板)と電気的にインターフェースする。各導電性ピラー212は、はんだ相互接続208によってGPUチップレット106に電気的に接続されている。このはんだ相互接続208は、はんだバンプ、マイクロバンプ等を含むことができる。様々な実施形態では、回路基板210は、複数の相互接続構造214(例えば、はんだボール等)を介して他の電機構造(別の回路基板や他の構造等)と電気的にインターフェースする。しかし、当業者は、ピン、ランドグリッドアレイ構造、他の相互接続等の様々なタイプの相互接続構造が本開示の範囲から逸脱することなく使用され得ることを理解されたい。
【0015】
導電性ピラー212は、HDCLダイが存在しない領域(例えば、GPUチップレット106と回路基板210との間に垂直方向のずれがある領域)において、GPUチップレット106と基板との間の信号を接続し、空の空間がエポキシ又は他のギャップ充填材料で充填される。このようにして、非PHY領域204の電源及び入力/出力(I/O)ラインが、再配線(RDL)技術を使用してインターポーザダイ(すなわち、パッシブクロスリンク118)の周りにルーティングされ、それにより、従来のTSVの使用を置き換えることができる。例えば、
図2の実施形態に示すように、GPUチップレット106及びパッシブクロスリンク118は、
図2の2つの成型層218,220等の成型材料内に少なくとも部分的に包含されている。導電性ピラー212は、成型層220及びポリマー層222等の複数の絶縁層を横断する。様々な実施形態では、ポリマー層222は、再配線層のルーティングを可能にするための応力緩衝材及び/又は絶縁フィルムとして作用するように設計されたRDL層である。導電性ピラー212は、銅等の様々な導電性材料を含む。同様に、はんだ相互接続208及び相互接続構造214は、スズ-銀、スズ-銀-銅等の様々なはんだ組成を使用する材料を含む。
【0016】
回路基板210は、有機又はセラミック、及び、単一層若しくはより一般的には複数層の材料を含んでもよい。熱膨張係数の不一致の影響を緩和するために、アンダーフィル材料224(例えば、高分子アンダーフィル)が成型層220と回路基板210の上面との間に配置されてもよい。アンダーフィル材料224は、所望により、成型層220の左右の縁部(及び、
図2では見えない他の縁部)を越えて横方向に延在してもよい。
【0017】
図3は、いくつかの実施形態による、パッシブクロスリンクによって結合されたGPUチップレットのキャッシュ階層を示すブロック図である。ビュー300は、
図1のGPUチップレット106-1,106-2及びパッシブクロスリンク118の階層的なビューである。GPUチップレット106-1,106-2の各々は、複数のワークグループプロセッサ302(WGP)と、所定のチャネルのL1キャッシュメモリ306と通信する複数の固定機能(fixed function)ブロック304(GFX)と、を含む。各GPUチップレット106は、個別にアクセス可能な複数のL2キャッシュメモリ308のバンクと、複数のL3キャッシュメモリ310のチャネルと、L3チャネルにマッピングされた複数のメモリPHY312(グラフィックダブルデータレート(GDDR)メモリへの接続を示すために、
図3ではGDDRとして示されている)のチャネルと、を含む。L2レベルのキャッシュは、単一のチップレット内でコヒーレントであり、L3レベル(又は、他の最終レベル)のキャッシュは、GPUチップレット106の全てに亘って統合されており、コヒーレントである。
【0018】
各GPUチップレット106のグラフィックデータファブリック314(GDF)は、L1キャッシュメモリ306の全てをL2キャッシュメモリ308の各チャネルに接続し、それにより、ワークグループプロセッサ302及び固定機能ブロック304の各々が、L2キャッシュメモリ308の任意のバンクに記憶されているデータにアクセスすることを可能にする。各GPUチップレット106は、グラフィックコア(GC)及びシステムオンチップ(SOC)のIPコアを通ってパッシブクロスリンク118にルーティングするスケーラブルなデータファブリック316(SDF)(SOCメモリファブリックとしても知られている)を含む。GCは、CU/WGP、固定機能グラフィックブロック、L3以上のキャッシュ等を含む。従来のグラフィック及び計算のために使用されるGPUの部分(すなわち、GC)は、ビデオデコード、ディスプレイ出力、及び、同じダイに含まれる様々なシステムサポート構造等の補助GPU機能を扱うために使用されるGPUの他の部分と区別可能である。パッシブクロスリンク118は、チップレット(例えば、GPUチップレット106-1)のローカルL3キャッシュメモリ310と、他の全ての外部のGPUチップレット(例えば、
図3のGPUチップレット106-2)のL3キャッシュメモリ310と、の両方にルーティングする。このようにして、メモリアドレス要求が、パッシブクロスリンク118の適切なレーンにルーティングされ、L3キャッシュメモリ310にローカルにアクセスし、又は、(
図5に関してより詳細に説明するように)異なるGPUチップレット106のL3キャッシュメモリ310にアクセスする。
【0019】
図4は、いくつかの実施形態による、GPUチップレットのフロア平面図を示すブロック図である。ビュー400は、
図1及び
図2のGPUチップレット106-1のフロア平面図を提供する。
図3に関してより詳細に上述したように、GPUチップレット106-1は、複数のワークグループプロセッサ302(WGP)と、複数の固定機能ブロック304(GFX)と、を含む。また、GPUチップレット106-1は、階層的なキャッシュメモリ402(例えば、
図3のL1キャッシュメモリ306、L2キャッシュメモリ308及びL3キャッシュメモリ310)と、メモリPHY312と、を含む。GPUチップレット106-1は、第1のコーナー(例えば、
図4のGPUチップレット106-1の右上のコーナー)に、パッシブクロスリンクコントローラ404と、図示した4つのパッシブクロスリンクPHY406-1,406-2,406-3,406-4(まとめて、パッシブクロスリンクPHY406)等の1つ以上のパッシブクロスリンクPHYタイルと、をさらに含む。
【0020】
パッシブクロスリンクコントローラ404は、GPUチップレット106-1の最終レベルのキャッシュ(LLC)(例えば、本明細書で説明するようなL3キャッシュメモリ)に接続し、LLCと、データファブリッククロスバー(例えば、
図3のSDF316)のロジックの電気的にアクティブな部分と、の間のルーティングを処理する。パッシブクロスリンクPHY406(例えば、パッシブクロスリンクPHY406-1,406-2,406-3,406-4)は、様々なGPUチップレット106に亘るデータのワイヤトランスポートを含む。具体的には、パッシブクロスリンクPHY406は、GPUチップレット106-1が相互接続するGPUチップレット106間の専用の通信チャネルを形成する、
図2のトレース206に対応している。
【0021】
様々な実施形態では、パッシブクロスリンクPHY406-1は、GPUチップレット106-1のローカルL3キャッシュメモリ310にルーティングする専用の通信チャネルに対応している。対照的に、パッシブクロスリンクPHY406-2は、異なるチップレットダイ上の外部のGPUチップレット(例えば、
図1のGPUチップレット106-2)のL3キャッシュメモリ310にルーティングする専用の通信チャネルに対応している。すなわち、パッシブクロスリンクPHY406-2の専用の通信チャネルは、GPUチップレット106-2以外の何れのチップレットとも通信しない。同様に、パッシブクロスリンクPHY406-3,406-4は、それぞれGPUチップレット106-3,106-4のL3キャッシュメモリ310にルーティングする専用の通信チャネルに対応している。すなわち、パッシブクロスリンクPHY406-3,406-4の専用の通信チャネルは、それぞれGPUチップレット106-3,106-4以外の何れのチップレットとも通信しない。
【0022】
いくつかの実施形態では、GPUチップレット106-1は、さらなるGPUチップレット106と通信するために、GPUチップレット106-1の第2のコーナーに、オプションの(破線で示す)クロスリンクPHY408の第2のセットをさらに含む。このように、パッシブクロスリンク118は、2つ以上のダイのルーティングファブリック間の延長コードとして動作し、均一なメモリアクセス動作(又は、ほぼ均一なメモリアクセス動作)を有するコヒーレントなL3メモリアクセスを提供する。当業者は、処理システムの性能が、物理的複製(physical duplication)の性質によって利用されるGPUチップレットの数に基づいて、概して線形的に拡縮することを理解するであろう(例えば、GPUチップレットの数が増大すると、メモリPHY312,WGP302等の数が増大する)。
【0023】
図5を参照すると、いくつかの実施形態による、4チップレット構成を利用する処理システムのブロック図が示されている。処理システム500は、
図1の処理システム100と同様であるが、説明を容易にするために、特定の要素を省略している。図示したように、システム500は、CPU102と、図示したGPUチップレット106-1,106-2,106-3,106-4等の4つのGPUチップレットと、を含む。CPU102は、バス108を介してGPUチップレット106-1と通信する。
図4を再度参照すると、パッシブクロスリンクPHY406-1は、GPUチップレット106-1(図示省略)のローカルL3キャッシュメモリ310にルーティングする専用の通信チャネルに対応している。パッシブクロスリンクPHY406-2は、GPUチップレット106-2のL3キャッシュメモリ310にルーティングする専用の通信チャネルに対応している(
図5では、信号ルート502とラベルが付されている)。パッシブクロスリンクPHY406-3は、GPUチップレット106-3のL3キャッシュメモリ310にルーティングする専用の通信チャネルに対応している(
図5では、信号ルート504とラベルが付されている)。パッシブクロスリンクPHY406-4は、GPUチップレット106-4のL3キャッシュメモリ310にルーティングする専用の通信チャネルに対応している(
図5では、信号ルート506とラベルが付されている)。
【0024】
概略的な動作概要として、処理システム500は、マスタースレーブトポロジを利用する。マスタースレーブトポロジでは、CPU102と直接通信する単一のGPUチップレット(すなわち、GPUチップレット106-1)が、マスターチップレット(以下、プライマリGPUチップレット又はホストGPUチップレット)として指定される。他のGPUチップレットは、パッシブクロスリンク118を介して間接的にCPU102と通信し、スレーブチップレット(以下、セカンダリGPUチップレット(複数可))と指定される。したがって、プライマリGPUチップレット106-1は、CPU102からGPUチップレットアレイ全体への単独のエントリポイントとして機能する。
【0025】
図5に示すように、一例では、CPU102は、メモリアドレスXYZに対するアクセス要求(例えば、読み出し要求)をプライマリGPUチップレット106-1に送信する。パッシブクロスリンクコントローラ404は、メモリアドレスXYZに関連するデータが、セカンダリGPUチップレット106-4のL3キャッシュメモリ310にキャッシュされていると判別する。その判別に基づいて、アクセス要求が、パッシブクロスリンク118の信号ルート506を介してセカンダリGPUチップレット106-4にルーティングされる。セカンダリGPUチップレット106-4は、結果をプライマリGPUチップレット106-1に戻し、プライマリGPUチップレット106-1は、要求されたデータを要求元(すなわち、CPU102)に返信する。このようにして、CPU102は、単一の外部ビューのみを有し、バス108を介して2つ以上のGPUチップレット106と直接通信する必要がない。
【0026】
当業者は、
図5が、正方形のGPUチップレットダイとパッシブクロスリンクのためのコーナーとが位置しているという特定の状況で記載されているが、様々な他の構成、ダイ形状及び幾何学形状が、本開示の範囲から逸脱することなく様々な実施形態で利用され得ることを理解することができる。例えば、いくつかの実施形態では、GPUチップレットは、5つのGPUチップレットがチップレットアレイにおいて共に結合され得るように、五角形状のダイとして構築されてもよい。他の実施形態では、GPUチップレットは、複数のGPUチップレットがチップレットアレイにおいて共にタイル状にされるように、正方形のGPUチップレットの2つ以上のコーナーにパッシブクロスリンク(例えば、
図4のクロスリンクPHY408のオプションの第2のセット)を含んでもよい。同様に、他の実施形態では、GPUチップレットは、複数のGPUチップレットが、長い列/行構成で、介在するパッシブクロスリンクに共に並べられ得るように、正方形のGPUチップレットの側部全体に亘るパッシブクロスリンクを含んでもよい。
【0027】
図6は、いくつかの実施形態による、チップレット間の通信を実施する方法600を示すフロー図である。ブロック602では、GPUチップレットアレイのプライマリGPUチップレットが、要求元のCPUからメモリアクセス要求を受信する。例えば、
図5を参照すると、プライマリGPUチップレット106-1は、CPU102からメモリアドレスXYZに関するアクセス要求を受信する。いくつかの実施形態では、プライマリGPUチップレット106-1は、そのスケーラブルデータファブリック316において、バス108を介してアクセス要求を受信する。
【0028】
ブロック604では、プライマリGPUチップレット106-1は、要求されたデータがキャッシュされるGPUチップレットに対応するキャッシュチップレット(交換可能に「セカンダリチップレット」とも呼ばれる)を識別する。例えば、
図5を参照すると、プライマリGPUチップレット106-1のパッシブクロスリンクコントローラ404は、メモリアドレスXYZに関連するデータが、セカンダリGPUチップレット106-4のL3キャッシュメモリ310にキャッシュされていることを判別する。いくつかの実施形態では、メモリアドレスの範囲は、複数のGPUチップレット106に亘ってアドレスで分けられている(address-sliced)。他の実施形態では、処理システム100は、他のアドレッシングトポロジ(例えば、フラットアドレスパーティショニング(flat address partitioning)、仮想アドレスから物理アドレスへの変換のページ設定に基づくアドレッシング等)を利用する。要求データがセカンダリチップレット(すなわち、メモリアドレスXYZに関連するデータをキャッシュする機能を果たすキャッシュチップレット)のL3にキャッシュされていない場合、メモリアクセス要求はL3ミスとして処理され、セカンダリチップレットは、そのセカンダリチップレットに取り付けられたGDDRメモリから要求データをフェッチする。
【0029】
ブロック606では、プライマリGPUチップレット106-1は、ブロック604の決定に基づいて、パッシブクロスリンク118を介して、メモリアクセス要求を、要求データがキャッシュされているGPUチップレットに対応するキャッシュチップレットにルーティングする。例えば、
図5を参照すると、アクセス要求は、パッシブクロスリンク118の信号ルート506を介して、セカンダリGPUチップレット106-4にルーティングされる。いくつかの実施形態では、メモリアクセス要求をルーティングすることは、スケーラブルデータファブリック316が、パッシブクロスリンク118と通信することと、スケーラブルデータファブリック316が、キャッシュチップレット(例えば、セカンダリGPUチップレット106-4)のメモリアクセス要求に関連するデータを要求することと、を含む。
【0030】
他の実施形態では、要求データが、プライマリGPUチップレット106-1のL3キャッシュ310でローカルにキャッシュされていると判別した後に、スケーラブルデータファブリック316は、アクセス要求を、パッシブクロスリンク118を介してプライマリGPUチップレット106-1のL3キャッシュ310にルーティングする。例えば、
図4を参照すると、スケーラブルデータファブリック316は、メモリアクセス要求を、GPUチップレット106-1のローカルL3キャッシュメモリ310とパッシブクロスリンク118との間の専用の通信チャネルに対応するパッシブクロスリンクPHY406-1を介してルーティングする。
【0031】
ブロック608では、キャッシュチップレットは、メモリアクセス要求に対応するデータを、パッシブクロスリンク118を介してプライマリGPUチップレットに返信する。例えば、
図5を参照すると、セカンダリGPUチップレット106-4は、結果をプライマリGPUチップレット106-1に返信する(リターンする)。具体的には、リターン通信は、ブロック606においてメモリアクセス要求がルーティングされたパッシブクロスリンク118の同じ信号ルート506を介してルーティングされる。同様に、
図4を参照すると、リターン通信は、キャッシュチップレットがプライマリGPUチップレットと同じである場合に、GPUチップレット106-1のローカルL3キャッシュメモリ310とパッシブクロスリンク118との間の専用の通信チャネルに対応するパッシブクロスリンクPHY406-1を介してルーティングされる。他の実施形態では、要求データポート及びリターンデータポートは、同じ物理ルートを共有しない。
【0032】
ブロック610では、プライマリGPUチップレットは、バス108を介して、要求データを要求元(すなわち、CPU102)に返信する。いくつかの実施形態では、要求データをCPU102に返信することは、要求データを、プライマリGPUチップレット(すなわち、GPUチップレット106-1)のスケーラブルデータファブリック316においてキャッシュチップレットから受信することと、要求データを、バス108を介してCPU102に送信することと、を含む。
【0033】
本明細書に記載されるように、いくつかの実施形態では、システムは、グラフィック処理ユニット(GPU)チップレットアレイの第1のGPUチップレットに通信可能に結合された中央処理ユニット(CPU)を備え、GPUチップレットアレイは、バスを介してCPUに通信可能に結合された第1のGPUチップレットと、チップレット間(inter-chiplet)の通信専用のパッシブクロスリンクを介して第1のGPUチップレットに通信可能に結合された第2のGPUチップレットと、を含む。一態様では、パッシブクロスリンクは、パッシブインターポーザダイを含む。別の態様では、第1のGPUチップレットは、チップレット間(chiplet-to-chiplet)通信のための導体構造を含む第1のPHY領域を含み、第2のGPUチップレットは、チップレット間通信のための導体構造を含む第2のPHY領域を含む。
【0034】
一態様では、システムは、チップレット間の通信専用のパッシブクロスリンクを介して第1のGPUチップレットに通信可能に結合された第3のGPUチップレットであって、チップレット間通信のための導体構造を含む第3のPHY領域を含む、第3のGPUチップレットを含む。別の態様では、第1のGPUチップレットの第1のPHY領域は、パッシブクロスリンクと第1のGPUチップレットの最終レベルのキャッシュとの間の通信のみのための導体トレースを含む第1のパッシブクロスリンクPHYを含む。さらに別の態様では、第2のGPUチップレットの第2のPHY領域は、パッシブクロスリンクと第2のGPUチップレットの最終レベルのキャッシュとの間の通信のみのための導体トレースを含む第2のパッシブクロスリンクPHYを含み、第3のGPUチップレットの第3のPHY領域は、パッシブクロスリンクと第3のGPUチップレットの最終レベルのキャッシュとの間の通信のみのための導体トレースを含む第3のパッシブクロスリンクPHYを含む。
【0035】
別の態様では、パッシブクロスリンクは、GPUチップレットアレイ内の全てのGPUチップレットを通信可能に結合する。さらに別の態様では、システムは、第1のGPUチップレットにおける第1のキャッシュメモリ階層であって、第1のキャッシュメモリ階層の第1のレベルが第1のGPUチップレット内でコヒーレントである、第1のキャッシュメモリ階層と、第2のGPUチップレットにおける第2のキャッシュメモリ階層であって、第2のキャッシュメモリ階層の第1のレベルは第2のGPUチップレット内でコヒーレントである、第2のキャッシュメモリ階層と、を含む。さらに別の態様では、システムは、第1のキャッシュメモリ階層の最終レベルと、第2のキャッシュメモリ階層の最終レベルと、の両方を含む統合されたキャッシュメモリであって、統合されたキャッシュメモリがGPUチップレットアレイの全てのチップレットに亘ってコヒーレントである、統合されたキャッシュメモリを含む。別の態様では、システムは、回路基板を第1のGPUチップレットの第1の非PHY領域及び第2のGPUチップレットの第2の非PHY領域に結合する複数の導電性ピラーを含む。
【0036】
いくつかの実施形態では、方法は、GPUチップレットアレイの第1のGPUチップレットにおいて、中央処理ユニット(CPU)からメモリアクセス要求を受信することと、第1のGPUチップレットのパッシブクロスリンクコントローラにおいて、メモリアクセス要求に関連するデータが記憶される位置に対応するキャッシュGPUチップレットを判別することと、GPUチップレットアレイ内のチップレット間の通信専用のパッシブクロスリンクを介して、メモリアクセス要求を、キャッシュGPUチップレットの最終レベルのキャッシュにルーティングすることと、メモリアクセス要求に関連するデータをCPUに返信することと、を含む。一態様では、メモリアクセス要求をルーティングすることは、スケーラブルデータファブリックが、キャッシュGPUチップレットのメモリアクセス要求に関連するデータを要求することをさらに含む。
【0037】
一態様では、メモリアクセス要求をキャッシュGPUチップレットの最終レベルのキャッシュにルーティングすることは、第1のGPUチップレットがキャッシュGPUチップレットであると判別したことに基づいて、メモリアクセス要求を、パッシブクロスリンクと第1のGPUチップレットの最終レベルのキャッシュとの間の通信のみのための導体トレースを含む第1のパッシブクロスリンクPHYを介してルーティングすることをさらに含む。別の態様では、メモリアクセス要求をキャッシュGPUチップレットの最終レベルのキャッシュにルーティングすることは、第2のGPUチップレットがキャッシュGPUチップレットであると判別したことに基づいて、メモリアクセス要求を、パッシブクロスリンクと第2のGPUチップレットの最終レベルのキャッシュとの間の通信のみのための導体トレースを含む第2のパッシブクロスリンクPHYを介してルーティングすることをさらに含む。さらに別の態様では、方法は、メモリアクセス要求に関連するデータを、パッシブクロスリンクとキャッシュGPUチップレットとの間の通信のみのための導体トレースを含むパッシブクロスリンクPHYを介して第1のGPUチップレットに返信することを含む。
【0038】
いくつかの実施形態では、非一時的なコンピュータ可読記憶媒体は、実行可能な命令のセットを具現化し、実行可能な命令のセットは、GPUチップレットアレイの第1のGPUチップレットにおいて、中央処理ユニット(CPU)からメモリアクセス要求を受信することと、第1のGPUチップレットのパッシブクロスリンクコントローラにおいて、メモリアクセス要求に関連するデータが記憶される位置に対応するキャッシュGPUチップレットを判別することと、GPUチップレットアレイ内のチップレット間の通信専用のパッシブクロスリンクを介して、メモリアクセス要求をキャッシュGPUチップレットの最終レベルのキャッシュにルーティングすることと、メモリアクセス要求に関連するデータをCPUに返信することと、を少なくとも1つのプロセッサに行わせる。一態様では、実行可能な命令のセットは、スケーラブルデータファブリックを介して、キャッシュGPUチップレットのメモリアクセス要求に関連するデータを要求することを少なくとも1つのプロセッサに行わせる。
【0039】
別の態様では、実行可能な命令のセットは、第1のGPUチップレットがキャッシュGPUチップレットであると判別したことに基づいて、メモリアクセス要求を、パッシブクロスリンクと第1のGPUチップレットの最終レベルのキャッシュとの間の通信のみのための導体トレースを含む第1のパッシブクロスリンクPHYを介してルーティングすることを少なくとも1つのプロセッサに行わせる。さらに別の態様では、実行可能な命令のセットは、第2のGPUチップレットがキャッシュGPUチップレットであると判別したことに基づいて、メモリアクセス要求を、パッシブクロスリンクと第2のGPUチップレットの最終レベルのキャッシュとの間の通信のみのための導体トレースを含む第2のパッシブクロスリンクPHYを介してルーティングすることを少なくとも1つのプロセッサに行わせる。さらに別の態様では、実行可能な命令のセットは、メモリアクセス要求に関連するデータを、パッシブクロスリンクとキャッシュGPUチップレットとの間の通信のみのための導体トレースを含むパッシブクロスリンクPHYを介して第1のGPUチップレットに返信することを少なくとも1つのプロセッサに行わせる。
【0040】
したがって、本明細書で説明するように、パッシブダイインターポーザは、プログラマーモデル/開発者の視点から、チップレットの実装が従来のモノリシックなGPUとして見えるようにする方法で、相互接続されたGPUチップレットのセットを使用してモノリシックなGPU機能を配備する。1つのGPUチップレットのスケーラブルデータファブリックは、同じチップレット上の低いレベルのキャッシュにアクセスするのとほぼ同時に、他のGPUチップレット上の低いレベルのキャッシュ(複数可)にアクセスすることが可能になるので、GPUチップレットが、チップレット間のコヒーレントなプロトコルをさらに必要とすることなく、キャッシュのコヒーレンシを維持することが可能になる。この低いレイテンシ及びチップレット間のキャッシュのコヒーレンシにより、チップレットベースのシステムが、ソフトウェア開発者の視点から、モノリシックなGPUとして動作することを可能になり、プログラマーや開発者の側でのチップレット固有の考慮事項を回避することができる。
【0041】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。このような記憶媒体には、限定されないが、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体(例えば、システムRAM又はROM)はコンピューティングシステムに内蔵されてもよいし、コンピュータ可読記憶媒体(例えば、磁気ハードドライブ)はコンピューティングシステムに固定的に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)はコンピューティングシステムに着脱可能に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、ネットワークアクセス可能ストレージ(NAS))は有線又は無線ネットワークを介してコンピュータシステムに結合されてもよい。
【0042】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行するプロセッシングシステムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)等のソリッドステート記憶デバイス、又は、他の1つ以上の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【0043】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0044】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。