(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024102855
(43)【公開日】2024-07-31
(54)【発明の名称】統合キャッシュを有するアクティブブリッジチップレット
(51)【国際特許分類】
G06F 12/0806 20160101AFI20240724BHJP
G06F 12/0811 20160101ALI20240724BHJP
G06F 12/0815 20160101ALI20240724BHJP
G06F 15/78 20060101ALI20240724BHJP
G06F 9/38 20180101ALI20240724BHJP
G06F 15/80 20060101ALI20240724BHJP
G06F 15/17 20060101ALI20240724BHJP
G06F 15/173 20060101ALI20240724BHJP
G06F 12/06 20060101ALI20240724BHJP
G06F 13/16 20060101ALI20240724BHJP
【FI】
G06F12/0806 100
G06F12/0811
G06F12/0815
G06F15/78 530
G06F9/38 370C
G06F15/80
G06F15/17 620A
G06F15/173 665F
G06F12/06 515H
G06F13/16 510C
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024068210
(22)【出願日】2024-04-19
(62)【分割の表示】P 2022516307の分割
【原出願日】2020-09-24
(31)【優先権主張番号】16/585,452
(32)【優先日】2019-09-27
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】スカイラー ジェイ. サレハ
(72)【発明者】
【氏名】ルイジン ウー
(57)【要約】 (修正有)
【課題】GPUチップレットを結合するためにアクティブブリッジチップレットを利用してシステム性能を向上させるシステム及び方法を提供する。
【解決手段】GPUチップレットを結合するためのアクティブブリッジチップレットを採用したプロセシングシステム100は、GPUチップレットのアレイ104の第1のGPUチップレット106-1に通信可能に結合された中央処理ユニット102を含む。複数のGPUチップレットアレイは、バス108を介してCPUに通信可能に結合された第1のGPUチップレットと、アクティブブリッジチップレット118を介して第1のGPUチップレットに通信可能に結合された第2のGPUチップレット106-2と、を含む。アクティブブリッジチップレットは、GPUチップレットをブリッジするアクティブシリコンダイであり、システムオンチップの機能をより小さな機能チップレットグループに分割することを可能にする。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プロセッサであって、
第1のチップレットと、第2のチップレットと、前記第1のチップレット及び前記第2のチップレットによって共有されるアクティブブリッジチップレットと、を含むチップレットアレイを備え、
前記第1のチップレットは、
メモリアクセス要求を受信することと、
前記メモリアクセス要求が前記第2のチップレット又は前記アクティブブリッジチップレットの何れかによってサービス可能であると判別したことに応じて、前記メモリアクセス要求を、サービスするために前記第2のチップレット又は前記アクティブブリッジチップレットにルーティングすることと、
を行うように構成されている、
プロセッサ。
【請求項2】
前記第1のチップレットは、プロセッサから前記メモリアクセス要求を受信するように構成されている、
請求項1のプロセッサ。
【請求項3】
前記第1のチップレットは、前記メモリアクセス要求に関連するデータを前記プロセッサに返信するように構成されている、
請求項2のプロセッサ。
【請求項4】
前記第1のチップレットは、前記プロセッサから前記メモリアクセス要求を受信するように構成されたスケーラブルデータファブリックを備える、
請求項2のプロセッサ。
【請求項5】
前記第1のチップレットは、前記メモリアクセス要求を、前記アクティブブリッジチップレットを介して前記第2のチップレットにルーティングすることによって、前記メモリアクセス要求をルーティングするように構成されている、
請求項1のプロセッサ。
【請求項6】
前記第1のチップレットは、前記メモリアクセス要求に関連するデータが前記第2のチップレットに関連するメモリに記憶されていると判定したことに応じて、前記メモリアクセス要求を前記第2のチップレットにルーティングするように構成されている、
請求項5のプロセッサ。
【請求項7】
前記第1のチップレットは、前記メモリアクセス要求を、前記アクティブブリッジチップレットにおける、前記第1のチップレット及び前記第2のチップレットによって共有されるレベルのキャッシュメモリにルーティングすることによって、前記メモリアクセス要求をルーティングするように構成されている、
請求項1のプロセッサ。
【請求項8】
前記レベルのキャッシュメモリは、前記第1のチップレット及び前記第2のチップレットにわたってコヒーレントである、統合されたキャッシュメモリを備える、
請求項7のプロセッサ。
【請求項9】
前記第1のチップレットは、前記メモリアクセス要求に関連するデータを前記アクティブブリッジチップレットに要求するように構成されている、
請求項1のプロセッサ。
【請求項10】
前記アクティブブリッジチップレットは、前記チップアレイ内のチップレットを通信可能に結合する、
請求項1のプロセッサ。
【請求項11】
システムであって、
チップレットアレイの第1のチップレットに通信可能に結合されたプロセッサを備え、
前記チップレットアレイは、
バスを介して前記プロセッサに通信可能に結合された第1のチップレットと、
アクティブブリッジチップレットを介して前記第1のチップレットに通信可能に結合された第2のチップレットと、を備え、
前記第1のチップレットは、前記チップアレイに関連するメモリアクセス要求であって、前記プロセッサから受信されたメモリアクセス要求を管理するように構成されており、
前記メモリアクセス要求は、前記アクティブブリッジチップレット又は前記第2のチップレットによってサービス可能なメモリアクセス要求を含む、
システム。
【請求項12】
前記第1のチップレットは、前記プロセッサから受信されたメモリアクセス要求に関連するデータが、前記第1のチップレット内でのみコヒーレントなメモリにローカルにキャッシュされていると判定したことに応じて、前記メモリアクセス要求をサービスするように構成されている、
請求項11のシステム。
【請求項13】
前記第1のチップレットは、前記プロセッサから受信されたメモリアクセス要求に関連するデータが、前記第1のチップレット及び前記第2のチップレットに共有されるレベルのキャッシュメモリにキャッシュされていると判定したことに応じて、前記メモリアクセス要求を、サービスするために前記アクティブブリッジチップレットにルーティングするように構成されている、
請求項11のシステム。
【請求項14】
前記第1のチップレットは、前記プロセッサから受信されたメモリアクセス要求に関連するデータが、前記第2のチップレットに関連するメモリに記憶されていると判定したことに応じて、前記メモリアクセス要求を、サービスするために前記アクティブブリッジチップレットを介して前記第2のチップレットにルーティングするように構成されている、
請求項11のシステム。
【請求項15】
前記アクティブブリッジチップレットは、前記第1のチップレット及び前記第2のチップレットによって共有されるレベルのキャッシュメモリを備える、
請求項11のシステム。
【請求項16】
方法であって、
チップレットアレイの第1のチップレットにおいて、プロセッサからメモリアクセス要求を受信することと、
前記第1のチップレットのアクティブブリッジチップレットコントローラにおいて、前記メモリアクセス要求が、前記チップレットアレイの第2のチップレット、又は、前記第1のチップレット及び前記第2のチップレットによって共有されるアクティブブリッジチップレットの何れかによってサービス可能であると判定したことに応じて、前記メモリアクセス要求を、前記第2のチップレット又は前記アクティブブリッジチップレットにルーティングすることと、
前記メモリアクセス要求に関連するデータを前記プロセッサに返信することと、を含む、
方法。
【請求項17】
前記メモリアクセス要求を前記第2のチップレットにルーティングすることは、前記メモリアクセス要求に関連するデータが、前記第2のチップレットに関連するメモリに記憶されていると判定したことに応じて行われる、
請求項16の方法。
【請求項18】
前記メモリアクセス要求をルーティングすることは、前記メモリアクセス要求を、前記アクティブブリッジチップレットを介して前記第2のチップレットにルーティングすることを含む、
請求項16の方法。
【請求項19】
前記メモリアクセス要求をルーティングすることは、前記メモリアクセス要求を、前記アクティブブリッジチップレットにおける、前記第1のチップレット及び前記第2のチップレットによって共有されるレベルのキャッシュメモリにルーティングすることを含む、
請求項16の方法。
【請求項20】
前記レベルのキャッシュメモリは、前記アクティブブリッジチップレットの統合された最終レベルキャッシュである、
請求項19の方法。
【発明の詳細な説明】
【背景技術】
【0001】
携帯電話、携帯情報端末(PDA)、デジタルカメラ、ポータブルプレイヤ、ゲーミング及び他のデバイス等のコンピューティングデバイスでは、より多くの性能及び特徴を、より小さなスペースに集積することが要求されている。その結果、単一の集積回路(IC)パッケージ内に集積されるプロセッサダイの密度及びダイの数が増加している。一部の従来のマルチチップモジュールは、2つ以上の半導体チップをキャリア基板上に並べて搭載したものや、場合によってはキャリア基板上に搭載されたインタポーザ(いわゆる「2.5D」)上に搭載したものがある。
【0002】
添付図面を参照することによって、本開示をより良好に理解することができ、その多数の特徴及び利点が当業者に明らかになる。異なる図面で同じ符号が使用されている場合、類似又は同一のアイテムを示している。
【図面の簡単な説明】
【0003】
【
図1】いくつかの実施形態による、GPUチップレットを結合するためのアクティブブリッジチップレットを採用したプロセシングシステムを示すブロック図である。
【
図2】いくつかの実施形態による、アクティブブリッジチップレットによって結合されたGPUチップレットのキャッシュ階層を示すブロック図である。
【
図3】いくつかの実施形態による、GPUチップレット及びアクティブブリッジチップレットの断面図を示すブロック図である。
【
図4】いくつかの実施形態による、GPUチップレット及びアクティブブリッジチップレットの別の断面図を示すブロック図である。
【
図5】いくつかの実施形態による、3つのチップレット構成を利用したプロセシングシステムを示すブロック図である。
【
図6】いくつかの実施形態による、チップレット間通信を実行する方法を示すフローチャートである。
【発明を実施するための形態】
【0004】
従来のモノシリックダイ設計は、製造コストがますます高くなってきている。CPUアーキテクチャでは、相互通信をあまり必要としない別のユニットにCPUコアを分ける方がCPUの異種的な計算的性質に適しているので、製造コストの低減及び歩留まりの向上のためにチップレットがうまく利用されている。対照的に、GPUの作業は、その性質上、並列作業を含む。しかしながら、GPUが処理するジオメトリは、完全な並列作業の部分だけでなく、異なる部分間で同期的な順序付けが必要な作業も含む。したがって、複数のGPUに作業の一部を分散させるGPUプログラミングモデルは、システム全体で共有リソースのメモリコンテンツを同期させて、アプリケーションにメモリのコヒーレントなビューを提供することが困難であり、計算的コストがかかるので、非効率になりがちである。さらに、論理的な観点から、アプリケーションは、システムが単一のGPUしか有していないことを想定して記述される。すなわち、従来のGPUが多くのGPUコアを含む場合でさえ、アプリケーションは、単一のデバイスをアドレス指定するようにプログラムされる。少なくともこれらの理由から、チップレット設計手法をGPUアーキテクチャに持ち込むことは、歴史的に困難とされてきた。
【0005】
比較的単純なプログラミングモデルを変更することなく、GPUチップレットを使用してシステム性能を向上させるために、
図1~
図6は、GPUチップレットを結合するためにアクティブブリッジチップレットを利用するシステム及び方法を示す。様々な実施形態では、アクティブブリッジチップレットは、チップレット間通信のためのアクティブシリコンダイである。様々な実施形態では、システムは、グラフィックプロセシングユニット(GPU)チップレットアレイの第1のGPUチップレットに通信可能に結合された中央処理ユニット(CPU)を含む。GPUチップレットアレイは、バスCPUを介してCPUに通信可能に結合された第1のGPUチップレットと、アクティブブリッジチップレットを介して第1のGPUチップレットに通信可能に結合された第2のGPUチップレットと、を含み、それによって、システムオンチップ(SoC)を、「チップレット」又は「GPUチップレット」と呼ばれる小さな機能グループに分解し、「チップレット」又は「GPUチップレット」は、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)チップレットが全ての問題を解決するために使用される計算ロジックの少なくとも一部を包含したアクティブシリコンダイを含むこと(すなわち、計算作業負荷が複数のアクティブシリコンダイにわたって分散される)、2)チップレットが同一の基板上のモノシリックユニットとして共にパッケージ化されること、及び、3)それらの個別の計算ダイ(すなわち、GPUチップレット)の組み合わせが単一のモノシリックユニットであるという概念をプログラミングモデルが保存すること(すなわち、各チップレットが計算作業負荷を処理するためにチップレットを使用するアプリケーションに対して個別のデバイスとして公開しない)、を含む任意のデバイスを指す。
【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つ以上のグラフィックプリミティブのセットを定義する命令を含む。
【0010】
いくつかの実施形態では、アプリケーション112は、ユーザモードドライバ116(又は、同様のGPUドライバ)を呼び出すために、グラフィックアプリケーションプログラミングインタフェース(API)114を利用する。ユーザモードドライバ116は、表示可能なグラフィック画像に1つ以上のグラフィックプリミティブをレンダリングするための1つ以上のコマンドを、1つ以上のGPUチップレットのアレイ104に発行する。アプリケーション112がユーザモードドライバ116に発行したグラフィック命令に基づいて、ユーザモードドライバ116は、グラフィックをレンダリングするためにGPUチップレットが実行する1つ以上の動作を指定する1つ以上のグラフィックコマンドを策定する。いくつかの実施形態では、ユーザモードドライバ116は、CPU102上で実行されるアプリケーション112の一部である。例えば、いくつかの実施形態では、ユーザモードドライバ116は、CPU102上で実行されるゲーミングアプリケーションの一部である。同様に、いくつかの実施形態では、カーネルモードドライバ(図示省略)は、CPU102上で実行されるオペレーティングシステムの一部である。
【0011】
図1に示す実施形態では、アクティブブリッジチップレット118は、GPUチップレット106(すなわち、GPUチップレット106-1~106-N)を相互通信可能に結合する。3つのGPUチップレット106が
図1に示されているが、チップレットアレイ104内のGPUチップレットの数は、設計上の選択の問題であり、以下により詳細に説明するような他の実施形態において変化する。
図2に関してより詳細に後述するような様々な実施形態では、アクティブブリッジチップレット118は、GPUチップレットダイ間の高帯域幅ダイ間相互接続として機能するアクティブシリコンブリッジを含む。さらに、アクティブブリッジチップレット118は、チップレット間通信を提供し、クロスチップレット同期信号をルーティング(経路指定)するために、共有された、統合された最終レベルキャッシュ(LLC)を有するメモリクロスバーとして動作する。キャッシュは、本質的にアクティブなコンポーネント(すなわち、動作のために電力を必要とする)であるため、メモリクロスバー(例えば、アクティブブリッジチップレット118)は、それらのキャッシュメモリを保持するためにアクティブである。したがって、キャッシュサイジングは、アクティブブリッジチップレット118の物理サイズに応じて、異なるチップレット構成に従う異なるアプリケーションに対して構成可能であり、アクティブブリッジチップレット118(例えば、GPUチップレット106)が通信可能に結合されたベースチップレット(複数可)(例えば、GPUチップレット106)は、アクティブブリッジチップレット118上のこの外部キャッシュにコスト(例えば、物理スペース及び電力制約等に関連するコスト)を払わない。
【0012】
全体的な動作の概要として、CPU102は、バス108を介して単一のGPUチップレット(すなわち、GPUチップレット106-1)に通信可能に結合される。CPUからチップレット106のアレイ104へのトランザクション又は通信は、GPUチップレット106-1において受信される。その後、任意のチップレット間通信は、他のGPUチップレット106上のメモリチャネルにアクセスするために、必要に応じてアクティブブリッジチップレット118を介してルーティングされる。このようにして、GPUチップレットベースのシステム100は、ソフトウェア開発者の観点から、単一のモノシリックGPUとしてアドレス指定可能な(例えば、CPU102及び任意の関連するアプリケーション/ドライバがチップレットベースのアーキテクチャを意識しない)GPUチップレット106を含み、したがって、プログラマ又は開発者の側で任意のチップレット特有の考慮事項を必要としないようにすることが可能である。
【0013】
図2は、いくつかの実施形態による、アクティブブリッジチップレットによって結合されたGPUチップレットのキャッシュ階層を示すブロック図である。ビュー200は、
図1のGPUチップレット106-1,106-2と、アクティブブリッジチップレット118の階層ビューと、を提供する。GPUチップレット106-1,106-2の各々は、複数のワークグループプロセッサ202(WGP)と、所定のチャネルのL1キャッシュメモリ206と通信する複数の固定機能ブロック204(GFX)と、を含む。各GPUチップレット106は、個々にアクセス可能な複数のL2キャッシュメモリ208バンクと、L3チャネルにマッピングされた複数のメモリPHY212(グラフィックダブルデータレート(GDDR)メモリへの接続を示すための、
図2におけるGDDRとして表される)チャネルと、を含む。L2レベルのキャッシュは、単一のチップレット内でコヒーレントであり、L3レベル(L3キャッシュメモリ210又は他の最終レベル)のキャッシュは、統合され、GPUチップレット106の全てにわたってコヒーレントである。言い換えると、アクティブブリッジチップレット118は、GPUチップレット106とは別のダイ上にある統合されたキャッシュ(例えば、
図2のL3/LLC)を含み、2つ以上のGPUチップレット106を共に通信可能にリンク付けする外部の統合されたメモリインタフェースを提供する。したがって、GPUチップレット106は、レジスタ転送レベル(RTL)の観点から始まって、モノシリックシリコンダイとして作用し、完全なコヒーレントメモリアクセスをもたらす。
【0014】
様々な実施形態では、L3レベル210のキャッシュは、メモリアタッチ型(memory-attached)最終レベルである。従来のキャッシュ階層では、ルーティングは、L1レベルのキャッシュとL2レベルのキャッシュとの間で行われ、また、L2レベルとメモリチャネルとの間で行われる。このルーティングは、単一のGPUコア内でL2キャッシュがコヒーレントであることを可能にする。しかしながら、GDDRメモリへのアクセスを有する異なるGPUコア(ディスプレイエンジン、マルチメディアコア又はCPU等)が、GPUコアによって操作されるデータにアクセスしたい場合に、他のGPUコアが最新データにアクセスできるようにL2レベルのキャッシュをGDDRメモリにフラッシュする必要があるため、ルーティングは、同期ポイントを導入する。そのような動作は、計算コストがかかり、非効率である。対照的に、メモリコントローラとGPUチップレット106との間にあるメモリアタッチ型最終レベルL3 210は、全てのアタッチコアにキャッシュ及びメモリの一貫した「ビュー」を提供することによって、これらの問題を回避する。
【0015】
メモリアタッチ型最終レベルL3 210は、キャッシュ階層のL3レベルを、GPUチップレット106ではなく、アクティブブリッジチップレット118に配置する。したがって、別のクライアントがデータ(例えば、CPUがアクセスするDRAM内のデータ)にアクセスする場合、CPU102は、SDFファブリック216を通過及び接続して、L3レベル210から読み出す。さらに、要求されたデータがL3レベル210にキャッシュされていない場合、L3レベル210は、GDDRメモリから読み込む(図示しないが、メモリPHY212を介して)。したがって、L2レベル208は、データを含み、フラッシュされない。他の実施形態では、L3レベル210がメモリアタッチ型最終レベルである代わりに、L3レベルのキャッシュは、キャッシュ階層内でSDFファブリック216の上に配置される。しかしながら、このような構成では、L3レベル(及び、メモリPHYS212)は、各GPUチップレット106に対してローカル(局所的)であり、したがって、アクティブブリッジチップレット118において統合されたキャッシュの一部ではない。
【0016】
各GPUチップレット106のグラフィックデータファブリック214(GDF)は、L1キャッシュメモリ206の全てをL2キャッシュメモリ208のチャネルの各々に接続し、それによって、ワークグループプロセッサ202及び固定機能ブロック204の各々がL2キャッシュメモリ208の何れかのバンクに記憶されたデータにアクセスすることを可能にする。各GPUチップレット106も、グラフィックコア(GC)及びシステムオンチップ(SOC)IPコアにわたってアクティブブリッジチップレット118にルーティングするスケーラブルデータファブリック216(SDF)(SOCメモリファブリックとしても知られる)を含む。GCは、CU/WGP、固定機能グラフィックブロック、及び、L3の上のキャッシュ等を含む。従来のグラフィック及び計算に対して使用されるGPUの一部(すなわち、GC)は、ビデオ復号、ディスプレイ出力、及び、同一のダイ上に包含される様々なシステムサポート構造等の補助的GPU機能を処理するために使用されるGPUの他の部分と区別可能である。
【0017】
アクティブブリッジチップレット118は、GPUチップレットの全て(例えば、
図2におけるGPUチップレット106-1及び106-2)にルーティングする複数のL3キャッシュメモリ210チャネルを含む。このようにして、メモリアドレス要求は、統合されたL3キャッシュメモリ210にアクセスするように、アクティブブリッジチップレット118上の適切なレーンにルーティングされる。さらに、複数のGPUチップレット106に及ぶ等のように、アクティブブリッジチップレット118の物理的サイズが大きいので、当業者は、スケーラブルな量の(異なる実施形態では、メモリ及びロジックの量を増大又は減少させるようにスケーラブルされる)L3/LLCキャッシュメモリ及びロジックが、いくつかの実施形態では、アクティブブリッジチップレット118上に配置されることを認識するであろう。アクティブブリッジチップレット118は、複数のGPUチップレット106をブリッジし、したがって、ブリッジチップレット、アクティブブリッジダイ、又は、アクティブシリコンブリッジと交換可能に呼ばれる。
【0018】
図3を参照して、チップレットベースのアーキテクチャの追加の詳細を理解することができ、
図3は、いくつかの実施形態による、アクティブブリッジ結合GPUチップレットの断面図を示すブロック図である。ビュー300は、セクションA-Aにおいて取られた
図1のGPUチップレット106-1,106-2及びアクティブブリッジチップレット118の断面図を提供する。様々な実施形態では、各GPUチップレット106は、シリコン貫通ビア(TSV)無しに構成される。上述したように、GPUチップレット106は、アクティブブリッジチップレット118によって通信可能に結合される。様々な実施形態では、アクティブブリッジチップレット118は、シリコン、ゲルマニウム又は他の半導体材料から構成され、異なる実施形態では、バルク半導体、絶縁体上の半導体又は他の設計から構成された相互接続チップである。
【0019】
アクティブブリッジチップレット118は、異なる実施形態では、単一のレベル又は複数のレベル上にある複数の内部導体トレース(図示省略)を含む。トレースは、導電路を介して、例えば、GPUチップレット106のPHY領域の導体構造(例えば、
図2のメモリPHY212)と電気的に連結する。このようにして、アクティブブリッジチップレット118は、GPUチップレット106間の通信を通信可能に結合し、ルーティングし、それによって、アクティブルーティングネットワークを形成するアクティブブリッジダイである。
【0020】
図3に示すように、キャリアウェーハ302は、GPUチップレット106-1,106-2に結合されている。この実施形態の構成では、TSV304は、アクティブブリッジチップレットを通過してGPUチップレット106に至るが、グラフィックコアダイ(複数可)自体は、何れのTSVでも構成されない。代わりに、信号データを通すために、誘電体貫通ビア(TDV)306は、ギャップフィル誘電体層308を通じてトンネルする。ギャップフィル誘電体層308(又は、他のギャップフィル材料)は、ブリッジチップレットダイ及びグラフィックコアダイ(複数可)が存在しないエリア(例えば、GPUチップレット106とアクティブブリッジチップレット118との間の垂直方向の不一致を有するエリア)を占有する。図示するように、TDV306は、GPUチップレット106の入力/出力(I/O)パワーを、異なる実施形態では半田バンプ及びマイクロバンプ等を含む半田相互接続310に下向きに接続する。このようにして、ギャップフィル誘電体層308は、GPUチップレット106及びアクティブブリッジチップレット118の両方のバンプ(例えば、バンプ312)の両方の平面を同じ平面にする。
【0021】
様々な実施形態では、
図3に示すようなコンポーネントは、相互接続構造310,312(例えば、半田ボール等)を介して、回路基板又は他の構造等の他の電気構造と電気的に連結する。しかしながら、当業者は、他の実施形態において、本開示の範囲から逸脱することなく、ピン、ランドリッドアレイ構造及び他の相互接続等の様々なタイプの相互接続構造が使用されることを認識するであろう。
【0022】
図4は、いくつかの実施形態による、GPUチップレット及びアクティブブリッジチップレットの別の断面図を示すブロック図である。ビュー400は、セクションA-Aにおいて取られた
図1のGPUチップレット106-1,106-2及びアクティブブリッジチップレット118の断面図を提供する。上述したように、GPUチップレット106は、アクティブブリッジチップレット118によって通信可能に結合される。様々な実施形態では、アクティブブリッジチップレット118は、異なる実施形態では、シリコン、ゲルマニウム又は他の半導体材料から構成され、異なる実施形態では、バルク半導体、絶縁体上の半導体又は他の設計から構成された相互接続チップである。
【0023】
アクティブブリッジチップレット118は、異なる実施形態では単一のレベル又は複数のレベル上にある複数の内部導体(図示省略)を含む。トレースは、導電路を介して、例えば、GPUチップレット106のPHY領域の導体構造(例えば、
図2のメモリPHY212)と電気的に連結する。このようにして、アクティブブリッジチップレット118は、GPUチップレット106間の通信を通信可能に結合し、ルーティングし、それによって、アクティブルーティングネットワークを形成するアクティブブリッジダイである。
【0024】
図4に示すように、及び、
図3のコンポーネントと同様の方法で、キャリアウェーハ402は、GPUチップレット106-1,106-2に結合されている。しかしながら、
図3の実施形態とは対照的に、各GPUチップレット106は、シリコン貫通ビア(TSV)404を含む。この実施形態の構成では、TSV404は、GPUチップレット106を貫通するが、アクティブブリッジチップレット118自体は、如何なるTSVも用いて構成されない。さらに、TSV404は、異なる実施形態では半田バンプ及びマイクロバンプ等を含む半田相互接続406にアクティブブリッジチップレット入力/出力(I/O)パワーを下方に接続するので、アクティブブリッジ結合GPUチップレットは、如何なるTDVも含まない。相互接続構造408は、GPUチップレット106に電気的に結合する。様々な実施形態では、ダミーシリコンの層410(又は、他のギャップフィル材料)は、ブリッジチップレットダイ及びグラフィックコアダイ(複数可)が存在しないエリア(例えば、GPUチップレット106とアクティブブリッジチップレット118との間で垂直方向の不一致を有するエリア)を占有する。このようにして、ダミーシリコンの層410は、GPUチップレット106及びアクティブブリッジチップレット118を通信可能及び電気的に結合することに関連する相互接続バンプの両方を同じ平面にし、モノシリックチップを形成する。
【0025】
様々な実施形態では、
図4に示すようなコンポーネントは、相互接続構造406,408(例えば、半田ボール等)を介して、回路板、基板又は他の構造等の他の電気構造と電気的に連結する。しかしながら、当業者は、他の実施形態では、ピン、ランドリッドアレイ構造及び他の相互接続等の様々なタイプの相互接続構造が使用されることを認識するであろう。
【0026】
図1~
図4に関して上述したようなアクティブブリッジチップレット118は、2つ以上のダイのルーティングファブリック間の通信を提供し、コヒーレントなL3メモリアクセスに均一なメモリアクセス動作(又は、ほとんど均一なメモリアクセス動作)を提供する。当業者は、物理的複製の性質によって利用されるGPUチップレットの数に基づいて、プロセシングシステムの性能が線形的にスケールする(例えば、GPUチップレットの数が増加すると、メモリPHY212及びWGP202等の数も増加する)ことを認識するであろう。
【0027】
図5を参照すると、いくつかの実施形態による、3つのチップレット構成を利用するプロセシングシステムのブロック図が示されている。プロセシングシステム500は、
図1のプロセシングシステム100と同様であるが、説明を容易にするために特定の要素を省略する。図示するように、システム500は、CPU102と、例示されるGPUチップレット106-1,106-2,106-3等の3つのGPUチップレットと、を含む。CPU102は、バス108を介してGPUチップレット106-1と通信する。全体的な動作の概要として、プロセシングシステム500は、マスタ-スレーブトポロジを利用し、マスタ-スレーブトポロジでは、CPU102(すなわち、GPUチップレット106-1)と直接通信する単一のGPUチップレットは、マスタチップレット(以下では、プライマリチップレット又はホストGPUチップレット)として指定される。他のGPUチップレットは、アクティブブリッジチップレット118を介してCPU102と間接的に通信し、スレーブチップレット(以下では、セカンダリGPUチップレット(複数可))として指定される。したがって、プライマリGPUチップレット106-1は、CPU102からGPUチップレットアレイ104の全体への単数エントリポイントとして機能する。
【0028】
図5に示すように、一例では、CPU102は、プライマリGPUチップレット106-1にアクセス要求(例えば、読み込み要求、書き込み要求、及び、GPUチップレットにおいて作業を実行する命令等)を送信する。
図2に関してより詳細に上述したように、GPUチップレット106-1は、複数のワークグループプロセッサ(図示省略)及び複数の固定機能ブロック(図示省略)を含む。プライマリGPUチップレットコントローラ502は、GPUチップレットアレイ104の最終レベルキャッシュ(LLC)(例えば、本明細書で説明するようなL3キャッシュメモリ)に接続し、LLCとデータファブリッククロスバーのロジックの電気的にアクティブな部分(例えば、
図2のSDF216)との間のルーティングを処理する。
【0029】
プライマリGPUチップレットコントローラ502は、アクセス要求に関連するデータが、単一のプライマリGPUチップレット106-1内でのみコヒーレントなメモリにローカルにキャッシュされるかどうか、又は、データが、アクティブブリッジチップレット118において統合されたL3キャッシュメモリ210にキャッシュされるかどうかを判別する。アクセス要求に関連するデータが、単一のプライマリGPUチップレット106-1内でコヒーレントなメモリにローカルにキャッシュされると判別したことに基づいて、プライマリGPUチップレットコントローラ502は、プライマリGPUチップレット106-1においてアクセス要求をサービスする。しかしながら、アクセス要求に関連するデータが、共通して共有されるL3キャッシュメモリ210にキャッシュされると判別したことに基づいて、プライマリGPUチップレットコントローラ502は、サービスするためにアクティブブリッジチップレット118にアクセス要求をルーティングする。アクティブブリッジチップレット118は、プライマリGPUチップレット106-1に結果を返し、プライマリGPUチップレット106-1は、発信リクエスタ(すなわち、CPU102)に、要求されたデータを返す。このようにして、CPU102は、単一の外部ビューのみを有し、バス108を介した2つ以上のGPUチップレットへの直接通信を必要としない。
【0030】
当業者は、
図5では、3つのGPUチップレットの中央を横切る矩形のアクティブブリッジチップレットダイ118の特定のコンテキストが説明されているが、他の実施形態では、様々な他の構成、ダイ形状及びジオメトリが様々な実施形態において利用されることを認識するであろう。例えば、いくつかの実施形態では、チップレットは、正方形のGPUチップレットの1つ以上のコーナーにおいてアクティブブリッジチップレットを含み、その結果、複数のGPUチップレットがチップレットアレイ内で共にタイル状に配置される。同様に、他の実施形態では、GPUチップレットは、GPUチップレットの側面全体に及ぶアクティブブリッジチップレットを含み、その結果、複数のGPUチップレットは、長い行/列構成で、介在するアクティブブリッジチップレットと共に並べられる。
【0031】
図6は、いくつかの実施形態による、チップレット間通信を実行する方法600を示すフローチャートである。ブロック602において、GPUチップレットアレイのプライマリGPUチップレットは、要求CPUからメモリアクセス要求を受信する。例えば、
図5を参照すると、プライマリGPUチップレット106-1は、CPU102からアクセス要求を受信する。いくつかの実施形態では、プライマリGPUチップレット106-1は、バス108を介してそのスケーラブルデータファブリック216においてアクセス要求を受信する。
【0032】
ブロック604において、プライマリGPUチップレット106-1は、要求されたデータがキャッシュされた位置を識別する。すなわち、プライマリGPUチップレット106-1は、データが、アクティブブリッジチップレット118における統合されたL3キャッシュメモリ210にキャッシュされるかどうかを判別する。例えば、
図5を参照すると、プライマリGPUチップレット106-1のプライマリGPUチップレットコントローラ502は、アクセス要求に関連するデータが、単一のプライマリGPUチップレット106-1内でのみコヒーレントなメモリにローカルにキャッシュされるかどうかを判別する。アクセス要求に関連するデータが、単一のプライマリGPUチップレット106-1内でコヒーレントなメモリにローカルにキャッシュされるとプライマリGPUチップレットコントローラ502が判別した場合、ブロック606において、プライマリGPUチップレットコントローラ502は、プライマリGPUチップレット106-1においてアクセス要求をサービスする。その後、ブロック612において、プライマリGPUチップレットは、バス108を介して発信リクエスタ(すなわち、CPU102)に、要求されたデータを返す。いくつかの実施形態では、要求されたデータをCPU102に返すことは、プライマリGPUチップレット(すなわち、GPUチップレット106-1)のスケーラブルデータファブリック216において要求されたデータを受信することと、要求されたデータを、バス108を介してCPU102に送信することと、を含む。
【0033】
ブロック604に再度戻すると、アクセス要求に関連するデータが、共通して共有されるL3キャッシュメモリ210にキャッシュされるとプライマリGPUチップレットコントローラ502が判別した場合、ブロック608において、プライマリGPUチップレットコントローラ502は、サービスするためにアクティブブリッジチップレット118にアクセス要求をルーティングする。いくつかの実施形態では、メモリアクセス要求をルーティングすることは、スケーラブルデータファブリック216が、アクティブブリッジチップレット118と通信することと、スケーラブルデータファブリック216が、メモリアクセス要求に関連するデータをアクティブブリッジチップレット118に要求することと、を含む。さらに、要求するデータが、アクティブブリッジチップレット118のL3にキャッシュされていない場合、メモリアクセス要求は、L3ミスとして扱われ、アクティブブリッジチップレット118は、GDDRメモリにアタッチされ、要求をサービスすることを担当するGPUチップレットに要求をルーティングする。要求がルーティングされたGPUチップレットは、要求されたデータをGDDRメモリからフェッチし、要求されたデータをアクティブブリッジチップレットに返す。
【0034】
ブロック610において、アクティブブリッジチップレット118は、プライマリGPUチップレット106-1に結果を返す。特に、戻り通信は、ブロック608においてメモリアクセス要求がルーティングされたアクティブブリッジチップレット118の同じ信号経路を介してルーティングされる。他の実施形態では、要求データポート及び戻りデータポートは、同じ物理経路を共有しない。
【0035】
ブロック612において、プライマリGPUチップレットは、要求されたデータを、バス108を介して発信リクエスタ(すなわち、CPU102)に返す。いくつかの実施形態では、要求されたデータをCPU102に返すことは、要求されたデータを、プライマリGPUチップレット(すなわち、GPUチップレット106-1)のスケーラブルデータファブリック216においてアクティブブリッジチップレット118から受信することと、要求されたデータを、バス108を介してCPU102に送信することと、を含む。このようにして、CPU102は、単一の外部ビューのみを有し、バス108を介した2つ以上のGPUチップレット106への直接通信を必要としない。
【0036】
したがって、本明細書で説明するように、アクティブブリッジチップレットは、プログラマモデル/開発者の観点から、GPUチップレットの実装が従来のモノシリックGPUとして見えるように、相互接続されたGPUチップレットのセットを使用してモノシリックGPU機能を展開する。1つのGPUチップレットのスケーラブルデータファブリックは、アクティブブリッジチップレット上の下位レベルキャッシュ(複数可)にアクセスするのとほぼ同時に、同じチップレット上の下位レベルキャッシュにアクセスすることが可能であるため、追加のチップレット間コヒーレンシプロトコルを必要とすることなく、GPUチップレットがキャッシュコヒーレンシを維持することを可能にする。この低レイテンシのチップレット間キャッシュコヒーレンシは、ソフトウェア開発者の観点から、チップレットベースのシステムがモノシリックGPUとして動作することを可能にし、よって、プログラマ又は開発者の側でチップレット特有の考慮事項を回避することができる。
【0037】
本明細書で開示されるように、いくつかの実施形態では、システムは、グラフィックプロセシングユニット(GPU)チップレットアレイの第1のGPUチップレットに通信可能に結合された中央処理ユニット(CPU)を含み、GPUチップレットアレイは、バスを介してCPUに通信可能に結合された第1のGPUチップレットと、アクティブブリッジチップレットを介して第1のGPUチップレットに通信可能に結合された第2のGPUチップレットと、を含み、アクティブブリッジチップレットは、GPUチップレットアレイの第1のチップレット及び第2のGPUチップレットによって共有されるレベルのキャッシュメモリを含む。一態様では、前記レベルのキャッシュメモリは、GPUチップレットアレイの第1のGPUチップレット及び第2のGPUチップレットにわたってコヒーレントである統合されたキャッシュメモリを含む。別の態様では、前記レベルのキャッシュメモリは、第1のGPUチップレットのメモリコントローラとオフダイメモリとの間に配置されたメモリアタッチ型最終レベルのキャッシュを含む。さらに別の態様では、アクティブブリッジチップレットは、GPUチップレットアレイ内のGPUチップレットを通信可能に結合する。
【0038】
一態様では、第1のGPUチップレットは、CPUからメモリアクセス要求を受信するように構成されたスケーラブルデータファブリックをさらに含む。別の態様では、スケーラブルデータファブリックは、メモリアクセス要求に関連するデータをアクティブブリッジチップレットに要求するようにさらに構成される。さらに別の態様では、アクティブブリッジチップレットは、GPUチップレットアレイのGPUチップレット間のチップレットツーチップレット通信のためのメモリクロスバーを含む。さらに別の態様では、システムは、第1のGPUチップレットにおける第1のキャッシュメモリ階層であって、第1のキャッシュメモリ階層の第1のレベルは、第1のGPUチップレット内でコヒーレントである、第1のキャッシュメモリ階層と、第2のGPUチップレットにおける第2のキャッシュメモリ階層であって、第2のキャッシュメモリ階層の第1のレベルは、第2のGPUチップレット内でコヒーレントである、第2のキャッシュメモリ階層と、を含む。別の態様では、アクティブブリッジチップレットにおけるレベルのキャッシュメモリは、第1のキャッシュメモリ階層の最終レベル及び第2のキャッシュメモリ階層の最終レベルの両方を含む統合されたキャッシュメモリを含み、統合されたキャッシュメモリは、GPUチップレットアレイの第1のGPUチップレット及び第2のGPUチップレットにわたってコヒーレントである。
【0039】
いくつかの実施形態では、方法は、GPUチップレットアレイ第1のGPUチップレットにおいて、中央処理ユニット(CPU)からメモリアクセス要求を受信することと、第1のGPUチップレットのアクティブブリッジチップレットコントローラにおいて、メモリアクセス要求に関連するデータが、第1のGPUチップレット及びGPUチップレットアレイの第2のGPUチップレットによって共有されるアクティブブリッジチップレットにキャッシュされると判別することと、アクティブブリッジチップレットにおける統合された最終レベルキャッシュにメモリアクセス要求をルーティングすることと、CPUに、メモリアクセス要求に関連するデータを返すことと、を含む。一態様では、メモリアクセス要求をルーティングすることは、スケーラブルデータファブリックが、メモリアクセス要求に関連するデータをアクティブブリッジチップレットに要求することをさらに含む。別の態様では、方法は、スケーラブルデータファブリックを介して、第1のGPUチップレットに、メモリアクセス要求に関連するデータを返すことを含む。
【0040】
一態様では、メモリアクセス要求を受信することは、スケーラブルデータファブリックが、CPUからメモリアクセス要求を受信することを含む。別の態様では、方法は、スケーラブルデータファブリックを介して、アクティブブリッジチップレットから、メモリアクセス要求に関連するデータを受信することを含む。さらに別の態様では、方法は、アクティブブリッジチップレットの統合されたキャッシュメモリにデータをキャッシュすることを含み、統合されたキャッシュメモリは、第1のGPUチップレットにおける第1のキャッシュメモリ階層の最終レベルであって、第1のキャッシュメモリ階層の第1のレベルは、第1のGPUチップレット内でコヒーレントである、第1のキャッシュメモリ階層の最終レベルと、GPUチップレットアレイの第2のGPUチップレットにおける第2のキャッシュメモリ階層の最終レベルであって、第2のキャッシュメモリ階層の第1のレベルは、第2のGPUチップレット内でコヒーレントである、第2のキャッシュメモリ階層の最終レベルと、を含む。
【0041】
いくつかの実施形態では、プロセッサは、中央処理ユニット(CPU)と、第1のGPUチップレットを含むGPUチップレットアレイであって、第1のGPUチップレットは、アクティブブリッジチップレットコントローラを含む、GPUチップレットアレイと、統合された最終レベルキャッシュと、を含み、プロセッサは、第1のGPUチップレットにおいて、CPUからメモリアクセス要求を受信し、第1のGPUチップレットのアクティブブリッジチップレットコントローラにおいて、メモリアクセス要求に関連するデータが、第1のGPUチップレット及びGPUチップレットアレイの第2のGPUチップレットによって共有されるアクティブブリッジチップレットにキャッシュされることを判別し、アクティブブリッジチップレットにおける統合された最終レベルキャッシュにメモリアクセス要求をルーティングし、CPUに、メモリアクセス要求に関連するデータをルーティングする、ように構成されている。一態様では、プロセッサは、スケーラブルデータファブリックを介して、メモリアクセス要求に関連するデータをアクティブブリッジチップレットに要求するように構成されている。別の態様では、プロセッサは、スケーラブルデータファブリックを介して、第1のGPUチップレットに、メモリアクセス要求に関連するデータを返すように構成されている。さらに別の態様では、プロセッサは、スケーラブルデータファブリックを介して、CPUからメモリアクセス要求を受信するように構成されている。さらに別の態様では、第1のGPUチップレットは、スケーラブルデータファブリックを介して、アクティブブリッジチップレットから、メモリアクセス要求に関連するデータを受信するように構成されている。
【0042】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。このような記憶媒体には、限定されないが、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体(例えば、システムRAM又はROM)はコンピューティングシステムに内蔵されてもよいし、コンピュータ可読記憶媒体(例えば、磁気ハードドライブ)はコンピューティングシステムに固定的に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)はコンピューティングシステムに着脱可能に取り付けられてもよいし、コンピュータ可読記憶媒体(例えば、ネットワークアクセス可能ストレージ(NAS))は有線又は無線ネットワークを介してコンピュータシステムに結合されてもよい。
【0043】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行するプロセッシングシステムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)等のソリッドステート記憶デバイス、又は、他の1つ以上の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【0044】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0045】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。