(58)【調査した分野】(Int.Cl.,DB名)
前記第1のプロトコルロジックブロックと、前記第2のプロトコルロジックブロックと、前記3のプロトコルロジックブロックと、前記第4のプロトコルロジックブロックとは、すべてフィールドプログラマブルである、請求項4に記載のマルチチップモジュール。
前記第1のトランシーバダイと、前記第2のトランシーバダイと、前記第3のトランシーバダイと、前記第4のトランシーバダイとは、それぞれ、前記第1のプロトコルロジックブロックダイと、前記第2のプロトコルロジックブロックダイと、前記第3のプロトコルロジックブロックダイと、前記第4のプロトコルロジックブロックダイとよりも実質的に長い、請求項6に記載のマルチチップモジュール。
【発明を実施するための形態】
【0012】
以下の説明において、多数の具体的な詳細が、本発明の特定の実施形態のより完全な説明を与えるために述べられる。しかしながら、当業者にとっては、本発明は、以下に与えられる、すべての特定的な詳細がなくても実現可能であることが明らかであるべきである。別の例において、発明を曖昧にしないために、周知の特徴は詳細には説明されていない。図示を容易にするために、同一の符号が、異なる図において、同じ要素を参照するために用いられる。しかしながら、代替的な実施形態において、要素は異なっていてもよい。さらに、対象の1つの例は、明確さのために、その複数の例を示すために用いられてもよい。
【0013】
プログラマブルロジックデバイス(「PLD」)は、特定の論理機能を実行するようにプログラム可能な周知の種類の集積回路である。PLDの一種である、フィールドプログラマブルゲートアレイ(「FPGA」)は、典型的にはプログラマブルタイルのアレイを含む。これらのプログラマブルタイルは、たとえば、入力/出力ブロック(「IOB」)、コンフィギュラブルロジックブロック(「CLB」)、専用のランダムアクセスメモリブロック(「BRAM」)、乗算器、デジタル信号処理ブロック(「DSP」)、プロセッサ、クロックマネージャ、遅延ロックループ(「DLL」)などを含むことができる。本明細書で用いられるように、「含む」および「含んでいる」は、限定のない含むことを意味する。
【0014】
各々のプログラマブルタイルは、典型的にはプログラマブルインターコネクトおよびプログラマブルロジックの両方を含む。プログラマブルインターコネクトは、典型的には、プログラマブルインターコネクトポイント(「PIP」)によって相互接続された多数の可変長のインターコネクトラインを含む。プログラマブルロジックは、たとえば、関数発生器、レジスタ、演算ロジックなどを含むことができるプログラマブル要素を用いてユーザ設計のロジックを実現する。
【0015】
プログラマブルインターコネクトおよびプログラマブルロジックは、典型的には、プログラマブル要素がどのようにして構成されるかを定義するコンフィギュレーションデータのストリームを内部コンフィギュレーションメモリセルにロードすることによってプログラムされる。コンフィギュレーションデータは、メモリ(たとえば外部のPROM)から読出されたり、外部装置によってFPGAに書込まれたりすることができる。個別のメモリセルの集合的な状態が、したがってFPGAの機能を決定する。
【0016】
別の種類のPLDは、複合プログラマブルロジックデバイスすなわちCPLDである。CPLDは、インターコネクトスイッチマトリックスによって相互に、かつ入力/出力(「I/O」)リソースに接続された2以上の「機能ブロック」を含む。CPLDの各々の機能ブロックは、プログラマブルロジックアレイ(「PLA」)およびプログラマブルアレイロジック(「PAL」)装置において用いられるのと同様の2レベルのAND/OR構造を含む。CPLDにおいて、コンフィギュレーションデータは、典型的には不揮発性メモリにオンチップで記憶される。あるCPLDにおいて、コンフィギュレーションデータは、不揮発性メモリにオンチップで記憶され、次に初期コンフィギュレーション(プログラミング)シーケンスの一部として揮発性メモリにダウンロードされる。
【0017】
これらのプログラマブルロジックデバイス(「PLD」)のすべてについて、装置の機能性は、その目的のために装置に与えられるデータビットによって制御される。データビットは、揮発性メモリ(たとえばFPGAおよびあるCPLDにおけるスタティックメモリセル)、不揮発性メモリ(たとえばあるCPLDにおけるフラッシュメモリ)、または任意の他の種類のメモリセルに記憶されることができる。
【0018】
他のPLDは、さまざまな要素をプログラム可能に装置に相互接続する、金属層などの処理層を適用することによってプログラムされる。これらのPLDは、マスクプログラマブルデバイスとして知られる。PLDは、また、他の方法、たとえばフューズまたはアンチフューズ技術を用いて実現可能である。「PLD」および「プログラマブルロジックデバイス」との用語は、これらの例示的な装置を含むがそれらに限定されず、部分的にのみプログラマブルな装置も包含する。たとえば、一種のPLDは、ハードコードされたトランジスタロジックと、そのハードコードされたトランジスタロジックにプログラム可能に相互接続するプログラマブルスイッチファブリックとの組合せを含む。
【0019】
上記のように、高度なFPGAは、アレイ中に異なる数種類のプログラマブルロジックロックを含むことができる。たとえば、
図1は、マルチギガビットトランシーバ(「MGT」)101と、コンフィギュラブルロジックブロック(「CLB」)102と、ランダムアクセスメモリブロック(「BRAM」)103と、入力/出力ブロック(「IOB」)104と、コンフィギュレーションおよびクロックロジック(CONFIG/CLOCKS)105と、デジタル信号処理ブロック(「DSP」)106と、特殊入力/出力ブロック(「I/O」)107(たとえばコンフィギュレーションポートおよびクロックポート)と、デジタルクロックマネージャ、アナログデジタル変換器、システム監視ロジックなどといったその他のプログラマブルロジック108とを含む多数の異なるプログラマブルタイルを含むFPGAアーキテクチャ100を例証する。いくつかのFPGAはまた、専用のプロセッサブロック(「PROC」)110を含む。
【0020】
いくつかのFPGAにおいて、各プログラマブルタイルは、プログラマブルインターコネクト要素(「INT」)111を含み、そのプログラマブルインターコネクト要素は、各隣り合うタイル中の対応するインターコネクト要素への、およびそのインターコネクト要素からの標準化された接続を有する。したがって、集められたプログラマブルインターコネクト要素は、例証されたFPGAに対するプログラマブルインターコネクト構造を実現する。プログラマブルインターコネクト要素111はまた、
図1の上部に含まれる例によって示されるように、同じタイル内のプログラマブルロジック要素への、およびそのプログラマブルロジック要素からの接続を含む。
【0021】
たとえば、CLB102は、単一のプログラマブルインターコネクト要素(「INT」)111を加えたユーザロジックを実現するためにプログラムされることが可能なコンフィギュラブルロジック要素(「CLE」)112を含み得る。BRAM103は、1以上のプログラマブルインターコネクト要素に加えてBRAMロジック要素(「BRL」)113を含み得る。典型的には、タイルに含まれるインターコネクト要素の数はタイルの高さに依存する。図示された実施例においては、BRAMタイルは5つのCLBと同じ高さを有するが、他の数(たとえば4)もまた使用することができる。DSPタイル106は、適切な数のプログラマブルインターコネクト要素に加えてDSPロジック要素(「DSPL」)114を含むことができる。IOB104はたとえば、プログラマブルインターコネクト要素111の1つのインスタンスに加えて入力/出力ロジック要素(「IOL」)115の2つのインスタンスを含むことができる。当業者にとっては明らかであるように、たとえばI/Oロジック要素115に接続される実際のI/Oパッドは典型的に、入力/出力ロジック要素115の領域に限定されない。
【0022】
図示された実施例において、ダイの中心近くの水平領域(
図1に示す)は、コンフィギュレーション、クロックおよび他の制御ロジックのために用いられる。この列から延在する縦の列109は、クロックおよびコンフィギュレーション信号をFPGAの横幅にわたって分配するために用いられる。
【0023】
図1に例証されたアーキテクチャを利用するいくつかのFPGAは、FPGAの大部分を構築する規則的なコラムナ(columnar)構造を分断させる追加的なロジックブロックを含む。追加的なロジックブロックは、プログラマブルブロックおよび/または専用ロジックであり得る。たとえば、プロセッサブロック110は、CLBおよびBRAMの複数の列に及ぶ。
【0024】
なお、
図1は、単に例示的なFPGAアーキテクチャを例示するように意図されている。たとえば水平方向の列中のロジックブロックの数、列の相対的な幅、列の数および順序、列に含まれるロジックブロックの種類、ロジックブロックの相対的なサイズ、ならびに
図1の上部に含まれるインターコネクト/ロジック構成は、純粋に例示的なものである。たとえば、実際のFPGAにおいては、ユーザロジックの効率的な実現を容易にするために、CLBが現れるところではどこでも、2以上の隣り合うCLBの列が典型的に含まれるが、隣り合うCLBの列の数はFPGAの全体的なサイズによって変動する。
【0025】
高スループットスイッチ構造は、1以上のクロスバースイッチ(「XBAR」)を有するモノリシック集積回路であってもよい。そのようなモノリシック集積回路は、複数の繰り返しプロトコル素子(「PE」)を有していてもよい。ここで、各々のPEは、1以上の高スピードシリアルトランシーバ(「HST」)および1つのプロトコルロジックブロック(「PLB」)からなってもよい。そのようなモノリシック集積回路は、特定用途集積回路(「ASIC」)または、固定されたPEを有する特定用途向け標準品(「ASSP」)であってもよい。
【0026】
これに対して、以下において、さらに詳細に、高スループットのフィールドプログラマブルネットワークスイッチを与えるための、マルチチップモジュール(「MCM」)のようなスケーラブルシステムインパッケージのマルチプルダイ素子が説明される。そのようなスケーラブルシステムインパッケージマルチプルダイ素子は、複数の高速シリアルトランシーバを含むことができる。さらに、そのようなスケーラブルシステムインパッケージマルチプルダイ素子は、マルチプロトコルネットワークスイッチを与えるために用いられることができる。
【0027】
図2は、ネットワークスイッチ200の例示的な実施形態を示す斜視ブロック図である。ネットワークスイッチ200は、1以上のラインカード201と、バックプレーン202と、1以上のスイッチカード203とを含むことができる。そのようなネットワークスイッチ200は、さらに、筺体と、熱伝達素子または他の部品を含むことができるが、それらは明確さのためおよび限定しないために本明細書では示されずあるいは説明されない。
【0028】
図3は、スイッチングシステム300の例示的実施形態を示すブロック図である。スイッチングシステム300は、たとえば
図2のネットワークスイッチ200のような、ネットワークスイッチとして実現可能である。スイッチングシステム300は、筺体ベースのスイッチングシステムである。しかしながら、本明細書での記述に従って、他の種類のスイッチングシステムを用いることができる。
【0029】
スイッチングシステム300は、バックプレーン302と1以上のラインカードとを含む。1以上のラインカードは、たとえばラインカード301−1から301−P(「301」)である。ここでPは1以上の正の整数である。スイッチングシステム300は、さらに1以上のスイッチカードを含み、1以上のスイッチカードは、たとえばスイッチカード303−1から303−Q(「303」)である。ここで、Qは、1以上の正の整数である。少なくとも1つのラインカード301がバックプレーン302を横切って少なくとも1つのスイッチカード303に相互接続される。より特定的には、2以上のラインカード301は、バックプレーン302を横切って少なくとも1つのスイッチカード303に相互接続されることができる。
【0030】
各々のラインカード301は、たとえば、ラインカード301−1の物理層素子311のような、1以上の物理層素子(「PHY」)を含むことができる。物理層素子311は、ラインインターフェイスと直接に通信することができる。ここでそのようなラインインターフェイスは、信号を通信するための光ファイバ、同軸ケーブル、金属の伝達線または他の媒体とすることができる。そのようなラインインターフェイスは、一般的に知られており、
図3においては明確さのためおよび限定しないために示されていない。物理層素子311は、たとえばプロトコルプロセッサ312のような1以上のラインカードプロトコルプロセッサに接続されることができる。たとえば、遠隔通信システムにおいて、プロトコルプロセッサ312は、フレーマと呼ばれることがあるが、そのようなフレーマは、SONET,SDH,OTNまたは他の種類のフレームを処理するために用いられることができる。さらに、たとえば、イーサネット(登録商標)ベースのシステムにおいて、プロトコルプロセッサ312は、媒体アクセスコントローラ(「MAC」)と呼ばれることがある。
【0031】
ラインカードプロトコルプロセッサ312は、バックプレーン302を介してスイッチカード303と直接に通信することができる。任意選択的に、プロトコルプロセッサ312は、もう1つのラインカード素子または他のラインカード素子313を介してスイッチカード303と通信することができる。そのような素子313は、たとえば、ネットワークプロセッサ、トラフィックマネージャ、メモリモジュールおよび/またはバックプレーンインターフェイス素子を含むことができる。たとえば、メモリは、ルックアップテーブルにおいてパケットのバッファリングのために用いられることができる。繰り返すように、1以上のスイッチカード303が存在し得ることが明らかであるべきである。ここで、複数のスイッチカードは、スイッチングのスケーラビリティおよび/または冗長性のために用いられることができる。
【0032】
図3における両方向矢印341から343は、概して電気的結合を示し、それは複数のトレースを含むことができる。そのような結合の各々の場合、高速シリアル送信機は、リンクの一方端からリンクの他方端へとシンボルを駆動することができ、高速シリアル受信機は、そのようなシンボルを受け取るとともに解釈する。他の例において、ダイ間結合(die-to-die)が並列に駆動されることができる。
【0033】
スイッチカード303の各々は、たとえばバックプレーンスイッチ330−1から330−Q(「330」)のような少なくとも1つのバックプレーンスイッチを含む。バックプレーンスイッチ330は、以下においてさらに詳細に説明されるような、マルチチップモジュール(「MCM」)で実現可能である。
【0034】
図4は、シングルボードスイッチングシステム400の例示的実施形態を示すブロック図である。デスクトップスイッチ、スタック可能スイッチなどのように実現されるスイッチングシステムにおいて、概して単一のマザーボード、たとえばマザーボード401が用いられる。マザーボード401は、スイッチ素子402、メモリ403および物理層素子311を含むことができる。さらに他の部品は、明確さのためおよび限定しないために本明細書においては例示的には示されていない。
【0035】
スイッチ素子402は、以下においてさらに詳細に説明されるように、マルチチップモジュールで実現可能である。スイッチ素子402は、メモリ403と、通信のために結合されることができるとともに、物理層素子311と通信のために結合されることができる。
【0036】
図4の両方向矢印441は、概して電気的結合を表しているが、それは複数のトレースを含むことができる。そのような結合の各々の場合、高速シリアル送信機は、リンクの一方端からリンクの他方端にシンボルを駆動することができ、その場合、高速シリアル受信機はそのようなシンボルを受信するとともに解釈する。
【0037】
図5は、マルチチップモジュール500の例示的実施形態を示すブロック図である。マルチチップモジュール500は、3種類の集積回路ダイ、すなわちトランシーバダイと、プロトコルロジックブロックダイと、クロスバースイッチダイとを含むが、それらのすべてはインターポーザ510に結合される。マルチチップモジュール500は、たとえば、スイッチ素子402および
図4の物理層素子311のような、関連する物理層インターフェイスを有するスイッチ素子として用いられることができる。また、
図3のバックプレーンスイッチ330のようなバックプレーンスイッチ、および/または
図3のプロトコルプロセッサ312および物理層素子311のような関連する物理層インターフェイスを有するプロトコルプロセッサとして用いられることができる。
【0038】
この例示的な実施形態において、4つのトランシーバダイ501−1から501−4(「501」)は、インターポーザ510に実装されるか、そうでなければインターポーザ510に結合される。この例示的実施形態において、各々のトランシーバダイ501は、複数の高速シリアルトランシーバ(「HST」)511を有する。各々のHST511は、1以上の高速シリアル送信機、1以上の高速シリアル受信機、および以下に詳細にさらに説明されるような、1以上の関連するクロック逓倍回路およびクロック分配回路を含むことができる。トランシーバダイよりもむしろ別々の送信機ダイおよび別々の受信機ダイを用いることができることが理解されるべきである。したがって、トランシーバダイ501は、より一般的には、双方向または単一方向通信のための通信ダイとみなすことができる。
【0039】
この例示的実施形態において、4つのプロトコルロジックブロックダイ502−1から502−4(「502」)が、インターポーザ510に実装されるか、そうでなければインターポーザ510に結合される。プロトコルロジックブロックダイ502の各々のダイは、プロトコル処理ロジック機能を実現するための複数のプロトコルロジックブロック(「PLB」)を有する。しかしながら、プロトコルロジックブロックダイ502は、各々、PLDと関連し得る他の部品の中の、非HST I/Oのようなさらなる部品を含むことができる。この例示的実施形態において、プロトコルロジックブロックダイ502は、FPGAベースのPLB512である。すなわち、プロトコルロジックブロックダイ502は、プログラマブルリソースを含むが、それは、たとえば1以上のコンフィギュレーションビットストリームでプログラムされて、ハードウェア内でプロトコル処理ロジック機能を与えるということが理解されるべきである。
【0040】
ダイ501−1,501−2,502−1,502−2は、概して長方形または正方形であり得るが、すべてインターポーザ510に実装されて、「サイドバイサイド集積」または「2D集積」のために、互いに平行または実質的に平行とされる。同様に、ダイ501−3,501−4,502−3,502−4は、概して長方形または正方形であるが、すべてインターポーザ510に実装されて、「サイドバイサイド集積」または「2D集積」のために互いに平行または実質的に平行である。しかしながら、ダイ501−1,501−2,502−1,502−2は、インターポーザ510に実装されたときに、ダイ501−3,501−4,502−3,502−4に関して垂直または実質的に垂直方向である。
【0041】
この例示的実施形態において、単一のクロスバースイッチダイ503がインターポーザ510に実装されるか、そうでなければインターポーザ510に結合される。クロスバースイッチダイ503は、1以上のクロスバースイッチ(「XBAR」)513を含むことができる。さらに、別の実施形態において、クロスバースイッチ513は、より小さなクロスバー部品のアレイを含むことができ、そのようなクロスバー部品は、関連するグローバル制御信号を用いて制御されることができる。
【0042】
この例示的実施形態におけるインターポーザ510は、受動インターポーザである。すなわち、インターポーザ510は、以下においてさらに詳細に説明されるような、単なる相互接続を与える。インターポーザ510は、双方向通信のためにそれぞれのペアにおけるそれぞれのダイ501および502を相互接続するとともに、双方向通信のためにダイ502および503を相互接続する。
【0043】
トランシーバダイ501−1のHST511は、マルチチップモジュール500の左側物理層インターフェイスを与える。インターポーザ510は、トランシーバダイ501−1のHST511をプロトコルロジックブロックダイ501−1のPLB512に相互接続する。プロトコルロジックブロックダイ502−1のPLB512は、インターポーザ510によって、クロスバースイッチダイ503の少なくとも1つのクロスバースイッチ513に相互接続される。
【0044】
トランシーバダイ501−2のHST511は、マルチチップモジュール500の右側の物理層インターフェイスを与える。インターポーザ510は、トランシーバダイ501−2のHST511をプロトコルロジックブロック502−2のPLB512に相互接続する。プロトコルロジックブロックダイ502−2のPLB512は、インターポーザ510によって、クロスバースイッチダイ503の少なくとも1つのクロスバースイッチ513に相互接続される。
【0045】
トランシーバダイ501−3のHST511は、マルチチップモジュール500の上側物理層インターフェイスを与える。インターポーザ510は、トランシーバダイ501−3のHST511をプロトコルロジックブロック502−3のPLB512に相互接続する。プロトコルロジックブロックダイ502−3のPLB512は、インターポーザ510によって、クロスバースイッチダイ503の少なくとも1つのクロスバースイッチ513に相互接続される。
【0046】
トランシーバダイ501−4のHST511は、マルチチップモジュール500の下側物理層インターフェイスを与える。インターポーザ510は、トランシーバダイ501−4のHST511をプロトコルロジックブロック502−4のPLB512に相互接続する。プロトコルロジックブロックダイ502−4のPLB512は、インターポーザ510によって、クロスバースイッチダイ503の少なくとも1つのクロスバースイッチ513に相互接続される。
【0047】
トランシーバダイ501は、すべて同じマスキング層の組合せで製造されてもよいということが理解されるべきである。より一般的には、トランシーバダイ501は、同じように製造されてもよいが、同じウェハにおいてもダイの間でばらつきが存在するということが理解されるべきである。同様に、プロトコルロジックブロックダイ502は、同じように製造されてもよいことが理解されるべきである。さらに、クロスバースイッチダイは、複数のマルチチップモジュール500の場合に大量に製造されてもよいことが理解されるべきである。さらに、複数のマルチチップモジュール500の製造の場合、ダイ501から503は、インターポーザ510とともに大量に製造されることができる。
【0048】
ダイ501から503の各々のダイは、モノリシックダイであることが理解されるべきである。しかしながら、そのようなダイ501から503の各々のダイは、実質的に、
図3の全体のバックプレーンスイッチ330、
図4の物理層素子311を有するスイッチ素子402の全体、または
図3の物理層素子311を有するプロトコルプロセッサ312の全体(集合的におよび単に「モノリシックスイッチング素子」と呼ぶ)を与えるために用いられる単一のモノリシックダイよりも小さくあり得る。したがって、ウェハあたりのより多くのダイは、歩留まりのための候補であり得て、歩留まり率は、マルチチップモジュール500の場合には、そのようなモノリシックスイッチング素子全体よりも高くなり得る。
【0049】
これらの記載に従うと、限定された部品の多様性によってダイを繰り返し製造することができる能力は、モノリシックに混成されたダイにおけるそのような回路の対比される実現例、すなわち、たとえば送受信、プロトコル処理およびクロスバースイッチのような機能を含む実現例よりも、より高い歩留まりと、より小さいダイのサイズとをもたらすことができる。さらに、ダイ501から503は、異なる半導体プロセスを用いて製造可能であることが理解されるべきである。たとえば、ダイ501のHST511は、アナログ設計のための、より成熟して安定なプロセスによって製造されることができ、ダイ502のPLB512は、ダイ503のクロスバースイッチ513とともに、より先進的な半導体プロセス、すなわちより先進的なリソグラフィによる半導体プロセスを用いて製造されることができる。より先進的なリソグラフィによって、先進的な半導体プロセスは、概してあまり先進的でない半導体プロセスに比較して、より小さな最小寸法フィーチャサイズを有するということが一般的に理解されるべきである。
【0050】
例示および限定的でない方法によって明確にするために、マルチチップモジュール500によって与えられるスイッチ構造の例示的実施形態が説明される。しかしながら、この例示的な実施形態からの、多数の変形を含む多くの変形例を用いることができるということが理解されるべきである。1.28テラビット/秒(「Tbps」)の実施形態の場合、インターポーザ510は、たとえばシリコンインターポーザであり得るが、そこに以下のものを実装することができる。4つのトランシーバダイ501であり、各々のダイは、32個の10ギガビット/秒(「Gbps」)のHST511である。4つのプロトコルロジックブロックダイ502、および2つのクロスバースイッチ513を有する1つのクロスバースイッチ503。すなわち、概して4つのI/O−PLDのペアが、それぞれクロスバースイッチダイ503の一般的に「端」または「側方」である4つのインターフェイスに結合されてスイッチ構造製品となり得る。任意選択的には、そのようなスイッチ構造製品は、より少ないが高速トランシーバで実現可能である。たとえば、4つのトランシーバダイ501は、各々、16個の20GbpsのHST511を有することができる。さらに、HST511は、すべて同じくトランシーバダイ501の上にある必要はない。たとえば、同じトランシーバダイ501の上に25GbpsのHST511と10GbpsのHST511とがあり、それらのHSTの両方が、同じパラレルインターフェイス、すなわち、2つの異なる種類のHSTの間でデータを交換してPLB512と通信してもよい。
【0051】
さらに、HST511とPLB512との間のインターフェイスは、パラレルインターフェイスである必要がないということが理解されるべきである。たとえば、シリコンインターポーザワイヤを駆動するために用いられるような、低パワーシリアルトランシーバが、そのようなインターフェイスのために用いられてもよい。さらに、1つのHST511は、1よりも多いPLB512と結合されてもよい。同様に、1つのPLB512が、1よりも多いHST511に結合されてもよい。
【0052】
異なる内部構成を含む、ダイ501から503の異なる組合せが、異なるスイッチ構造製品を与えるために用いられることができるということが理解されるべきである。さらに、PLB512は、FPGAベースのプログラマブルリソースのようなプログラマブルリソースを含むことができるが、そのようなスイッチ構造製品は、工場での再構成とは対照的な、カスタマまたはフィールドでの再構成を含むそのPLBのハードウェア再構成を行なってもよい。
【0053】
したがって、プロトコル処理に関する柔軟性が、PLB512を再構成するそのような能力によって与えられ得るということが理解されるべきである。さらに、モノリシックスイッチング素子全体の複数の異なる再構成が、単一のマルチチップモジュール500で置き換えられ得るということが理解されるべきである。さらに、巨大でモノリシックな素子に関連する長い設計リードタイムを回避することができるが、それは、マルチチップモジュール500の製造が、あとの組み立てのためのさまざまな構成において、別々にダイ501から503の各々のダイを設計して、必要に応じたスイッチ構造製品を与えることができる、すなわち顧客が購入する、あるいは顧客がそのような製造設計を要求する場合にのみ設計可能であるということが明らかとなるべきである。
【0054】
80ナノメータ以下のリソグラフィを有する現在の半導体製造において、ダイのトランジスタは、単一の方向で従来形成されるということが理解されるべきである。複数の方向にトランジスタを形成することは、従来、低い歩留まりまたはその他に追加の製造コストをもたらす。たとえば、先進のリソグラフィ処理を用いる集積回路を製造するモノリシック半導体のレイアウトマクロは、同じ方向に走るすべてのトランジスタゲートを有し得る。集積回路のいくつかのベンダーは、2つのマクロ、すなわち1つは各々の方向またはゲートの方向を生成し得るが、これは既に述べたように著しいコストの追加をもたらし得る。しかしながら、たとえばダイ501および502のような、複数の長方形ダイを有することにより、ダイ全体は、たとえば90°のように回転されて、たとえばインターポーザ510の複数の側方に沿って集合的のように、異なる方向からより適切にデータを収容する。より特定的には、たとえば、トランシーバダイ501の各々のダイにおけるトランジスタが同じ配向を有し得るものの、トランシーバダイ501は、互いに異なって配向され得る。
【0055】
たとえば、トランシーバダイ501−1は、最も左側の外側のダイであるが、物理層インターフェイスは、インターポーザ510の最も左側の端に対応して位置し得る。トランシーバダイ501−3は、最も上側の外側のダイであり、その場合に物理層インターフェイスは、インターポーザ510の最も上側の端に対応して位置し得る。トランシーバダイ501−1とトランシーバダイ501−3とは、同じトランジスタ配向を有して同じウェハに形成され得るが、そのようなダイは、物理的インターフェイスの接続のためのよりよい位置決めを与えるために、互いに90°回転し得る。これらの記載に沿うと、トランシーバダイ501−2は、最も右側の外側のダイであり、その場合には物理層インターフェイスは、インターポーザ510の最も右側の端に対応して位置し得る。繰り返すように、トランシーバダイ501−1とトランシーバダイ501−2とは、同じトランジスタ配向を有して同じウェハに形成され得るが、そのようなダイは、物理的インターフェイスの接続のためのよりよい位置決めを与えるために、互いに180°回転し得る。最後に、トランシーバダイ501−4は、最も下側の外側のダイであり、その場合、物理層インターフェイスは、インターポーザ510の最も下側の端に対応して位置決めされ得る。繰り返すように、トランシーバダイ501−1とトランシーバダイ501−4とは、同じトランジスタ配向で同じウェハに形成され得るが、そのようなダイは、物理インターフェイスの接続のためのよりよい位置決めを与えるために、互いにマイナス90°回転し得る。同様に、プロトコルロジックブロックダイ502−1から502−4は、それぞれ、トランシーバダイ501−1から501−4に相互接続されるために対応して回転し得る。
【0056】
一般的に、クロスバースイッチの最大帯域幅は、そのようなクロスバースイッチに結合されるトランシーバの最大帯域幅に比べてかなり大きい。したがって、トランシーバは、マルチチップモジュール500の限定された帯域幅の部品であり得る。
【0057】
図6は、マルチチップモジュール500の別の例示的実施形態を示すブロック図である。この例示的実施形態において、トランシーバダイ501は、インターポーザ510の長さおよび幅の利点を最大に享受するために延在する。すなわち、トランシーバダイ501は、マルチチップモジュール500の帯域幅を高めるために、より多くの送信および受信リソースを有することができる。たとえばシリコン基板のような半導体基板を用いて製造された受動インターポーザが、相互接続を与えるために複数のトレースを収容するための実質的な空間を有し得る。しかしながら、延在するトランシーバダイ501は、いくつかの応用例において、製造するにはより難しいおよび/または物理的に適合しないという可能性がある。
【0058】
図7は、マルチチップモジュール500のさらに別の例示的実施形態を示すブロック図である。この例示的実施形態において、トランシーバダイ501は、インターポーザ510の長さおよび幅の利点を十分に享受するために短縮される。しかしながら、インターポーザ510の各々の端のための単一のトランシーバダイ501よりもむしろ、2つのトランシーバダイ501がインターポーザ510の各々の端のために用いられる。繰り返すように、各々のトランシーバダイ501は、同じウェハから製造可能であり、インターポーザ510に、実装のために回転される。2つのトランシーバダイ501の例が、各々の端の場合に用いられるが、2よりも多いダイを用いてもよいということが明らかである。
【0059】
図8は、マルチチップモジュール500の例示的実施形態を示す斜視ブロック図である。ダイ501から503は、マルチチップモジュール500の上位層の部品であり得て、インターポーザ510は、マルチチップモジュール500の下位層の部品であり得る。
【0060】
図9は、
図8のマルチチップモジュール500のインターポーザ510の例示的実施形態を示すための、ある透視での斜視ブロック図である。
図10は、上位層部品910および911を有する、
図9の斜視ブロック図であるが、
図10は、概してダイ501および502のペアまたはダイ502および503のペアを表している。インターポーザ510は、さらに、
図8および
図9を同時に参照して説明される。
【0061】
インターポーザ510は、たとえばスルーシリコンビア(「TSV」)901として一般的に表されるような、複数の貫通導電ビアによって形成され得る。インターポーザ510において、たとえば金属配線902のような導電トレースが形成され得る。インターポーザ510内に単一の導電層のみが例示的に示されているが、複数の導電層が実現可能であることが理解されるべきである。ビア903は、インターポーザ510の上部表面から金属配線902へ接続するために用いられ得る。マイクロバンプ904は、ビア901および903を、上位層部品910および911に相互接続するために用いられ得る。
【0062】
図11は、再構成可能なシステム1100の例示的実施形態を示すブロック図である。再構成可能なシステム1100は、記憶装置1101およびマルチチップモジュール500を含む。記憶装置1101は、PLB512を構成するためにダイ502に結合されるが、それは、後においてさらに詳細に説明されるように、入力処理機能および出力処理機能を提供するためである。記憶装置1101は、1以上のコンフィギュレーションビットストリーム1110を記憶することができる。再構成可能なシステム1100は、例示により、明確さのために、マルチチップモジュール500を用いてスイッチカードを有するように示されるが、本明細書で説明されるようなマルチチップモジュール500は、再構成可能なシステムの別の実施形態において、ラインカードまたは他の種類の回路基板であり得る。
【0063】
例示および限定しないことによる明確さのために、概して矢印1123によって示されるような、マルチチップモジュール500を左から右に横切る方向のみに、詳細に説明される。しかしながら、通信トラフィックは、マルチチップモジュール500の任意の側に沿って受信されるとともに、矢印1121から1124によって一般的に示されるように、マルチチップモジュール500の任意の別の側に切り換え可能であるということが理解されるべきである。
【0064】
パケット1125は、トランシーバダイ501−1によって受信可能である。そのようなパケットは、トランシーバダイ501−1からインターポーザ510を介してプロトコルロジックブロックダイ502−1へと通過することができる。プロトコルロジックブロックダイ502−1および502−2に与えられる1以上のコンフィギュレーションビットストリーム1110に応答して、入力処理ブロック1130および出力処理ブロック1131が、それぞれ、プロトコルロジックブロックダイ502−1および502−2のプログラム可能なリソースにおいてインスタンス化され得る。すなわち、入力処理ブロック1130および出力処理ブロック1131は、それぞれ、インスタンス化されて、「第1の」プロトコルに従って実行され得る。そのような第1のプロトコルは、たとえばネットワークスイッチの製造またはルータのような消費者によって特定されることができる。そのようなインスタンス化は、マルチチップモジュール500の製造またはマルチチップモジュール500のそのような消費者によって実行され得る。
【0065】
パケット1125は、トランシーバダイ501−1から入力処理ブロック1130へと与えられる。入力処理ブロック1130は、そのような第1のプロトコルに従ってパケット1125に入力処理を実行することができる。例示および限定しない方法によって明確にするために、そのような入力処理は、ラッパー(wrapper)においてそのようなパケット1125をラッピングされるものとしてもよい。そのようなラップされたパケット1125は、プロトコルロジックブロックダイ502−1からクロスバースイッチダイ503へ、およびクロスバースイッチダイ503から出力処理ブロック1131へと通過することができる。出力処理ブロック1131は、そのような入力処理パケット1125において出力処理を行なうことができる。繰り返すように、例示的および限定しない方法によって明確にするために、そのような出力処理は、そのようなラップされたパケット1125をアンラップして、そのアンラップされたパケット1125をトランシーバダイ501−2に与えることを含む。トランシーバダイ501−2は、マルチチップモジュール500のパケット1125と通信することができる。したがって、別の実施形態において、そのような入力処理および出力処理は、それぞれラッピングおよびアンラッピングを含んでも含まなくてもよいことが理解されるべきである。
【0066】
第1のプロトコルが変化した場合、入力処理ブロック1130および出力処理ブロック1131は、そのような変更されたプロトコルを収容するために再構成されることができる。別のプロトコル、すなわち第2のプロトコルが、第1のプロトコルに代えてあるいは第1のプロトコルに加えてサポートされるべき場合に、プロトコルロジックブロックダイ502−1および502−2のプログラマブルリソースは、そのようなサポートを与えるために再び構成されることができる。
【0067】
図11を参照して続けると、パケット1126は、概して矢印によって示されるように、マルチチップモジュール500を右から左に横切って処理するために、トランシーバダイ501−2によって受信されるように例示的に示される。したがって、入力処理ブロック1132は、プロトコルロジックブロックダイ502−2のプログラマブルリソースにおいてインスタンス化されて、第1のプロトコルとは異なる「第2の」プロトコルをサポートし、出力処理ブロック1133は、そのような第2のプロトコルをサポートするために、プロトコルロジックブロックダイ502−1においてインスタンス化され得る。したがって、そのような入力処理ブロック1132および出力処理ブロック1133は、マルチチップモジュール500の提供者またはその消費者によってインスタンス化されることができる。すなわち、プロトコルスタックは、1以上のクロスバースイッチ513にわたり複数のプロトコルをサポートするために、マルチチップモジュール500において実現可能であるということが理解されるべきである。
【0068】
マルチチップモジュール500は、フィールドプログラマブルスイッチ構成を与えるということが理解されるべきである。PLB部品はフィールドプログラマブルであるので、マルチチップモジュール500によって与えられるスイッチ構成は、異なるプロトコルに対して再構成可能であり、したがって、単一のスイッチ素子が、異なるアプリケーションにおいて用いられることができる。すなわち、さまざまなアプリケーションの内容のためのさまざまな全体的モノリシックスイッチング素子を有するよりも、多数のマルチチップモジュール500、すなわち、多数のそのようなさまざまな全体的モノリシックスイッチング素子のサブセットが、そのようなアプリケーションの内容を広げることができる。さらに、異なる数のHST,PLBおよびクロスバースイッチの組合せが、さまざまなアプリケーションの内容を収容するために異なるスイッチングスループットを生成することができる。
【0069】
マルチチップモジュール500は、トランシーバダイ501の2つのインスタンスおよびプログラマブルロジックブロックダイの2つのインスタンスで実現可能であるということが明らかであるべきである。さらに、より少ない接続および/または少ない帯域幅の消費の低パワーアプリケーションのために、トランシーバダイ501およびプロトコルロジックブロックダイ502の例が、単一のHST−PLBダイへと効果的に組合されることができるが、それは、ボックス1151および1152によって概して示される。別の実施形態において、トランシーバダイ501の単一の例およびプロトコルロジックブロックダイ502の単一の例が、インターポーザ510を介して相互に接続可能であるとともに、そのようなプロトコルロジックブロックダイ502の単一の例が、そのようなインターポーザ510を介してクロスバースイッチダイ503に相互接続可能である。この場合、ダイ501から503の単一の例は、インターポーザ510における場合と同様に、マルチチップモジュール500を与える。
【0070】
図12は、通信1200のための処理の例示的実施形態を示すフロー図である。1201において、パケットは、マルチチップモジュールの第1のトランシーバダイによって受信される。たとえば、マルチチップモジュール500は、本明細書において既に説明されたように、トランシーバダイ501へとパケットを受信する。1202において、そのようなパケットは、第1のトランシーバダイからマルチチップモジュールの第1のプロトコルロジックブロックダイへと、インターポーザを介して与えられる。たとえば、トランシーバダイ501は、本明細書において既に説明されるように、マルチチップモジュール500のインターポーザ510を介して、マルチチップモジュール500のプロトコルロジックブロックダイ502へとパケットを通過させることができる。
【0071】
1203において、第1のプロトコルロジックブロックダイからのパケットは、インターポーザを介してマルチチップモジュールのクロスバースイッチダイへと与えられる。たとえば、プロトコルロジックブロックダイ502は、本明細書において既に説明されるように、マルチチップモジュール500のインターポーザ510を介してクロスバースイッチダイ503へと通過することができる。1204において、クロスバースイッチダイからのパケットは、インターポーザを介いてマルチチップモジュールの第2のプロトコルロジックブロックダイへと与えられる。たとえば、そのようなパケットは、本明細書において既に説明されるように、マルチチップモジュール500のそのようなインターポーザを介して、クロスバースイッチダイ503から別のプロトコルロジックブロックダイ502へと通過することができる。
【0072】
1205において、第2のプロトコルロジックブロックダイからのパケットは、インターポーザを介してマルチチップモジュールの第2のトランシーバダイへと与えられる。たとえば、そのようなパケットは、本明細書において既に説明されるように、マルチチップモジュールのインターポーザを介して別のプロトコルロジックブロックダイから別のトランシーバダイ501へと通過することができる。1206において、第2のトランシーバダイからのパケットは、本明細書において既に説明されるように、マルチチップモジュールへと送られる。たとえば、そのようなパケットは、別のトランシーバダイ502を介して、そのようなマルチチップモジュール500へと送られることができる。
【0073】
別の実施形態において、パケットは、マルチチップモジュール500のインターポーザ510を介して、プロトコルロジックブロックダイ502へとクロスバースイッチダイ503から戻されるように通過することができる。そのような別の実施形態において、通過して戻されるパケットは、さらに、プロトコルロジックブロックダイ502からマルチチップモジュール500のインターポーザ510を介してトランシーバダイ501へと戻るように通過することができるが、それは
図17を参照して後でより詳細に説明する。そのような別の実施形態において、第1のトランシーバダイおよび第2のトランシーバダイは、1つであるとともに同一であり、第1のプロトコルロジックブロックダイと、第2のプロトコルロジックブロックダイとは、1つであるとともに同一であり得る。
【0074】
図13は、インスタンス化フロー1300の例示的実施形態を示すフロー図である。1301において、入力処理ブロックは、第1のプロトコルロジックブロックダイにおいてインスタンス化される。入力処理ブロックは、たとえばラッピングのような入力処理を、第1のプロトコルに従って1以上のパケットに対して実行する。そのようなインスタンス化は、本明細書において既に説明されるように、第1のプロトコルロジックブロックダイのプログラマブルリソースのフィールドプログラミングを含むことができる。1302において、出力処理ブロックは、第2のプロトコルロジックブロックダイにおいてインスタンス化される。そのような出力処理ブロックは、たとえばアンラッピングのような出力処理を、第1のプロトコルに従って、1301においてラッピングした後に実行する。そのようなインスタンス化は、本明細書において既に説明されるように、第2のプロトコルロジックブロックのプログラマブルリソースのフィールドプログラミングを含むことができる。
【0075】
1303において、別の入力処理ブロックが、第1のプロトコルロジックブロックダイにおいてインスタンス化される。他の入力処理ブロックは、第2のプロトコルに従って1以上のパケットを、たとえばラッピングのような入力処理を行なう。第2のプロトコルは、第1のプロトコルと異なる。そのようなインスタンス化は、本明細書において既に説明されるような、第2のプロトコルロジックブロックのプログラマブルリソースのフィールドプログラミングを含むことができる。1304において、別の出力処理ブロックは、第2のプロトコルロジックブロックダイにおいてインスタンス化される。他の出力処理ブロックは、第2のプロトコルに従って、1303におけるラッピングの後に、たとえばアンラッピングのような出力処理を1以上のパケットに対して行なう。そのようなインスタンス化は、本明細書において既に説明されるような、第2のプロトコルロジックブロックダイのプログラマブルリソースのフィールドプログラミングを含むことができる。
【0076】
図14は、HST511の例示的実施形態を示す回路図である。HST511は、メソクロノスシンクロナイザ1401と、パラレルシリアル変換器(「P/S」)1402と、1以上の差動送信機1403と、1以上のクロック逓倍器および分配ブロック1404と、1以上の差動受信機1405と、クロックデータ再生(「CDR」)ブロック1406と、シリアルパラレル変換器(「S/P」)1407と、バッファ1408から1410と、任意選択的に物理コーディングサブ層(「PCS」)ロジックブロック1411とを含むことができる。
【0077】
パラレルデータ1420は、メソクロノスシンクロナイザ1401のためにHST511に入力されることができる。パラレルデータ1420は、クロック逓倍分配ブロック1404からのクロック信号に応じてクロックされることができる。メソクロノスシンクロナイザ1401の出力は、P/S1402へと与えられ得る。ここで、P/S1402は、クロック逓倍および分配ブロック1404からのクロック信号に応じてクロックされる。P/S1402からのシリアルデータ出力は、差動送信機1403への入力として与えられて、高速差動シリアル出力1421を与えることができる。基準クロック信号1422は、クロック逓倍および分配ブロック1404への入力として与えられて、そこから出力されるクロック信号の生成のために用いられることができる。
【0078】
高速差動シリアルデータ1423は、CDRブロック1406への出力のために差動受信機1405によって受信可能であるが、CDRブロック1406は、クロック逓倍および分配ブロック1404からのクロック信号に応じてクロックされる。再生クロック信号は、バッファ1410の入力のためにCDRブロック1406から出力されて、再生クロック信号1424を出力として与えることができる。
【0079】
CDRブロック1406からの再生ビットストリーム出力は、S/P1407への入力となり得るが、それはCDRブロック1406からのクロック信号に応じてクロックされる。再生パラレルデータは、バッファ1409への入力のためのS/P1407からの出力とすることができる。バッファ1409の出力は、再生パラレルデータビットストリーム1425とすることができる。
【0080】
基準クロック信号は、バッファ1408への入力のために、クロック逓倍および分配ブロック1404から出力されることができるとともに、バッファ1408からの出力は、基準クロック信号1426として与えられることができる。電源およびグランドは、本明細書では、明確さおよび限定しないために示されていないが、基準クロック信号1422と同様に、HST511に接続されて、マルチチップモジュール500のパッケージピンのための例示的なTSVのために用いられる。
【0081】
再生パラレルデータビットストリーム1425および再生クロック信号1424は、続く処理のために1以上のプロトコルロジックブロックによって用いられることができる。インターフェイス1450は、
図5のプロトコルロジックブロックダイ502の1以上のPLB512に、インターポーザ510で相互接続されることができる。
【0082】
オプションのPCSロジックブロック1411は、前処理および通信トラフィックの後処理のためのロジックを含むことができる。PCSロジックブロック1411は、標準セルまたはプログラマブルリソース構造のようなプログラマブルリソースおよび/または専用回路を用いて実現可能である。標準セルを用いた固定化された実現例は、より少ない半導体領域を含むことができるが、フィールドにおいて再構成可能な能力を低減させる可能性がある。
【0083】
図15は、PLB512に結合されるHST511の例示的実施形態を示す回路図である。PLB512は、クロック逓倍分配ブロック1501と、レジスタ1502と、レジスタ1503とを含むことができる。パラレルデータ1420は、HST511への入力のためのパラレルデータ1420として、出力のためのレジスタ1502への入力として与えられる。レジスタ1502は、クロック逓倍分配ブロック1501からのクロック信号によってクロックされる。クロック逓倍分配ブロック1501は、基準クロックとして基準クロック信号1426を受けることができる。レジスタ1503は、再生パラレルデータビットストリーム1425を受けることができる。レジスタ1503は、再生パラレルデータビットストリーム1425の入力および出力のために、再生クロック信号1424に応答してクロックされることができる。
【0084】
1つの実施形態において、レジスタ1502および1503は、クロック逓倍分配ブロック1501と同様に、プログラマブルリソースを用いて実現可能である。しかしながら、別の実施形態において、たとえば性能の改善、電力の節約またはよりよい領域の効率を有するために、レジスタ1502および1503は、クロック逓倍分配ブロック1501と同様に、専用回路を用いて実現可能である。さらに、より現在では一般的なプロトコルが、プロトコルロジックブロックダイ502において固定可能であるが、一方で他のプロトコルに対してはプログラマブルリソースを有していてもよい。
【0085】
図16は、クロスバースイッチ513の例示的実施形態を示すブロック/回路図である。クロスバースイッチ513は、単一クロック領域、すなわち同期クロスバースイッチとして動作可能である。しかしながら、異なるクロック領域で動作する1以上のクロスバースイッチを用いることができる。さらに、クロスバースイッチ513は、同期バッファクロスバースイッチ、すなわち各々の交差点において比較的小さいFIFOを有するクロスバースイッチであってもよい。別の実施形態において、しばしば、クロスポイントスイッチと呼ばれる非同期クロスバースイッチを用いることができる。非同期クロスバースイッチは、各々の入力データストリームのための組み込みクロックを運ぶ。非同期クロスバースイッチは、たとえば、光スイッチングおよび映像スイッチングにおいて用いられることができる。
【0086】
クロスバースイッチ513は、出力マルチプレクサブロック1601−1から1601−M(「1601」)を含む。ここで、Mは1より大きい正の整数である。出力マルチプレクサブロック1601の各々は、複数のマルチプレクサ1602を含む。各々のマルチプレクサ1602が、ポートとして指定される場合、それぞれの入力ポート1610が存在し得る。すなわち、各々の出力マルチプレクサブロック1601は、入力ポート1610−1から1610−Nを有する。ここで、Nは、1より大きい正の整数であり、各々のポートは、Bビットである。Bは、1以上の正の整数である。
【0088】
1つの実施形態において、Bは、1に設定され、それにより、任意のバス幅がバランスするマルチプレクサ選択信号の数でサポートされる。そのような実施形態において、データ信号よりも多くのマルチプレクサ選択信号が存在し得る。
【0089】
プログラマブルリソースにおいてインスタンス化される、HSTとPLBとの間の各々の配線におけるデータレートの間の大きな違いにより、HSTのパラレル側のデータ経路の幅は、たとえば、32,40,64,80,128または160であり得る。もちろん、他のデータ経路幅を用いることができる。エラー訂正コーディング(「ECC」)のオーバーヘッドを、単一でエラー訂正および二重エラー訂正検出(「SECDET」)で考慮すると、対応するHSTデータ経路幅は、39,47,72,88,137および169となる。すなわち、スイッチングの混雑を低減するために、各々のクロスバースイッチ513は、たとえば、二重データ経路幅の場合に実現可能であるような、入力データのスピードを参照して各々のポートをほぼ2倍あるいはそれ以上のスピードで実行させることができる。クロスバースイッチ513は、明確さおよび非限定の目的のために示されていないものの、ECCおよび/またはSECDETを含むことができるということが理解されるべきである。
【0090】
図17は、再構成可能なシステム1700の別の例示的実施形態を示すブロック図である。再構成可能なシステム1700は、
図11の再構成可能なシステム1100と同様であり、したがって、相違点のみが明確さおよび非限定の目的のために示されている。マルチチップモジュール500のこの例示的実施形態において、単一のトランシーバダイ501−1と、単一のプロトコルロジックブロックダイ502−1と、単一のクロスバースイッチダイ503とが用いられる。したがって、パケット1125は、入力処理ブロック1130からクロスバースイッチダイ503のクロスバースイッチへと与えられて、そのパケット1125は、クロスバースイッチダイ503からプロトコルロジックブロックダイ502−1へと通過して戻されることができる。より特定的には、出力処理ブロック1131は、クロスバースイッチダイ503から入力処理パケット1125の受信のためにプロトコルロジックブロックダイ502−1においてインスタンス化されることができる。入力処理ブロック1130と出力処理ブロック1131との両方が、1以上のコンフィギュレーションビットストリーム1110に応答してプロトコルロジックブロックダイ502−1においてインスタンス化されることができるということが理解されるべきである。
【0091】
以上において、本発明の1以上の局面に従う例示的実施形態を説明したが、本発明の1以上の局面に従う他のおよびさらなる実施形態が、本発明の範囲から逸脱することなく実現することができ、それは、以下に続く請求項およびその均等の範囲において決定される。ステップを記述する請求項は、そのステップのいかなる順番も含むものではない。商標は、そのそれぞれの所有者の財産である。