(57)【要約】  集積回路（ＩＣ）システムの一例は、パッケージ基板（２０２）を備え、パッケージ基板は、パッケージ基板上に設けられたプログラマブル集積回路（ＩＣ）（１０１Ａ）とコンパニオンＩＣ（１０３Ａ）とを有する。プログラマブルＩＣはプログラマブルファブリック（４０４）を含み、コンパニオンＩＣはアプリケーション回路（１０７Ａ）を含む。ＩＣシステムはシステムインパッケージ（ＳｉＰ）ブリッジ（１４４）をさらに備え、ＳｉＰブリッジは、プログラマブルＩＣ内に配置された第１のＳｉＰ  ＩＯ回路（１４０Ａ）と、コンパニオンＩＣ内に配置された第２のＳｉＰ  ＩＯ回路（１４２）と、パッケージ基板上において第１のＳｉＰ  ＩＯ回路と第２のＳｉＰ  ＩＯ回路とを電気的に結合する導電性相互接続（１３８）とを含む。ＩＣシステムはさらに、プログラマブルＩＣ内においてプログラマブルファブリックと第１のＳｉＰ  ＩＯ回路との間に結合された第１の集約回路および第１の分散回路（１１０，１１２）を備える。ＩＣシステムはさらに、コンパニオンＩＣ内においてアプリケーション回路と第２のＳｉＰ  ＩＯ回路との間に結合された第２の集約回路および第２の分散回路（１２６，１２８）を備える。
2019507452.tif 000002
【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）システムであって、
パッケージ基板を備え、前記パッケージ基板は、前記パッケージ基板上に設けられたプログラマブル集積回路（ＩＣ）チップとコンパニオンＩＣチップとを有し、前記プログラマブルＩＣチップはプログラマブルファブリックを含み、前記コンパニオンＩＣチップはアプリケーション回路を含み、前記ＩＣシステムはさらに、
システムインパッケージ（ＳｉＰ）ブリッジを備え、前記システムインパッケージブリッジは、前記プログラマブルＩＣチップ内に配置された第１のＳｉＰ  ＩＯ回路と、前記コンパニオンＩＣチップ内に配置された第２のＳｉＰ  ＩＯ回路と、前記パッケージ基板上において前記第１のＳｉＰ  ＩＯ回路と前記第２のＳｉＰ  ＩＯ回路とを電気的に結合する導電性相互接続とを含み、前記ＩＣシステムはさらに、
前記プログラマブルＩＣチップ内において前記プログラマブルファブリックと前記第１のＳｉＰ  ＩＯ回路との間に結合された第１の集約回路および第１の分散回路と、
前記コンパニオンＩＣチップ内において前記アプリケーションＩＯと前記第２のＳｉＰ  ＩＯ回路との間に結合された第２の集約回路および第２の分散回路とを備える、集積回路システム。
【請求項２】
前記第１のＳｉＰ  ＩＯ回路および前記第２のＳｉＰ  ＩＯ回路はそれぞれ、
前記第１の集約回路および前記第２の集約回路のマルチチャネル出力を、前記導電性相互接続において実現された第１の複数の物理チャネル上に多重化するように構成され、
前記導電性相互接続において実現された第２の複数のチャネルからの入力を、前記第１の分散回路および前記第２の分散回路のマルチチャネル入力上に多重分離するように構成される、請求項１に記載のＩＣシステム。
【請求項３】
前記第１の集約回路および前記第１の分散回路は、前記プログラマブルファブリックのプログラマブル相互接続と前記ＳｉＰ  ＩＯ回路との間に結合されたシステムレベル相互接続を含む、請求項１に記載のＩＣシステム。
【請求項４】
前記システムレベル相互接続はネットワークオンチップ（ＮｏＣ）を含む、請求項３に記載のＩＣシステム。
【請求項５】
前記プログラマブルＩＣチップは、前記ＳｉＰブリッジとは別に、前記コンパニオンＩＣチップへの直接接続を含む、請求項１に記載のＩＣシステム。
【請求項６】
前記プログラマブルＩＣチップは調停ロジックを含み、前記第１のＳｉＰ  ＩＯ回路はデータリンク回路とトランシーバ回路とを含み、
前記データリンク回路の内部インターフェイスは前記第１の集約回路および前記第１の分散回路に結合され、
前記データリンク回路の外部インターフェイスは前記トランシーバ回路の内部インターフェイスに結合され、
前記トランシーバ回路の外部インターフェイスは前記導電性相互接続に結合され、
前記データリンク回路の制御インターフェイスは前記調停ロジックに結合される、請求項１に記載のＩＣシステム。
【請求項７】
前記調停ロジックは、前記プログラマブルＩＣチップの前記プログラマブルファブリック内で実現される、請求項６に記載のＩＣシステム。
【請求項８】
前記プログラマブルＩＣチップは、前記第１の集約回路に送信されるデータをパケット化し前記第１の分散回路から受信されたデータをデパケット化するように構成されたトランスポートロジックを含む、請求項１に記載のＩＣシステム。
【請求項９】
前記トランスポートロジックは、前記プログラマブルＩＣチップの前記プログラマブルファブリック内で実現される、請求項８に記載のＩＣシステム。
【請求項１０】
ＩＣシステム内のプログラマブル集積回路（ＩＣ）からデータを送信する方法であって、前記方法は、
前記プログラマブルＩＣ内の集約回路の複数のチャネルを通して第１のシステムインパッケージ（ＳｉＰ）ＩＯ回路にデータを結合するステップと、
前記複数のチャネルからのデータを、前記プログラマブルＩＣとコンパニオンＩＣとの間のより少ない数の物理チャネルを通して送信するステップと、
前記データを、前記コンパニオンＩＣ内の第２のＳｉＰ  ＩＯ回路において前記複数の物理チャネルから受信するステップと、
前記コンパニオンＩＣ内の分散回路の複数のチャネルを通して、前記コンパニオンＩＣ内のアプリケーション回路に対し、前記第２のＳｉＰ  ＩＯ回路からのデータを結合するステップとを含む、方法。
【請求項１１】
前記データはパケットに分割される、請求項１０に記載の方法。
【請求項１２】
前記第２のＳｉＰ  ＩＯ回路は、前記分散回路の複数のチャネルそれぞれに結合された複数の内部出力ポートを含み、前記パケットは各々、前記複数の内部出力ポートのうちの１つから選択された宛先ポートを有する、請求項１１に記載の方法。
【請求項１３】
前記送信するステップは、
前記集約回路の複数のチャネルからのデータを、複数の送信キューそれぞれに入れるステップと、
前記複数の物理チャネルを通して並列に送信されるパケットが異なる宛先ポートを有するように、前記送信キューの出力を前記複数の物理チャネルに多重化するステップとを含む、請求項１２に記載の方法。
【請求項１４】
前記多重化するステップはさらに、
前記複数の送信キュー各々に重みを割当てるステップと、
前記重みに基づいて、前記複数の物理チャネルを通して送信するパケットを前記送信キューから選択するステップとを含む、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の例は、概して電子回路に関し、特にアクティブ・バイ・アクティブプログラマブルデバイスに関する
【背景技術】
【０００２】
背景
フィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）といった現代のプログラマブルデバイスは、大型化が進み、異種性が増している。これらのデバイスのコストも急速に増加している。コスト増加の原因は、異種の回路ブロックすべてを必要とする訳ではない大多数のアプリケーションのプログラミング性のオーバヘッドの増加とプロセス技術の高コスト化との両方にある。汎用入出力（ＩＯ）またはマルチギガビットシリアルトランシーバ（multi-gigabit serial transceiver：ＭＧＴ）といったこれらの大型回路ブロックの多くは、新たなプロセス技術の恩恵を必要としていない。このため、従来のモノリシックアーキテクチャはもはや市場のコスト要求を満たしておらず、結果としてシステム・イン・パッケージ（system-in-package：ＳｉＰ）デバイスの開発に至っている。しかしながら、大多数のＳｉＰソリューションは、高価なインターポーザまたは複雑な３次元チップ積層の利用といった高度なパッケージング技術に依存している。そのため、これらのＳｉＰソリューションのコストの増加が、生産量が少ないハイエンドのまたは特殊なアプリケーションにとっての利益を制限している。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
アクティブ・バイ・アクティブプログラマブルデバイスを提供する技術を説明する。一例において、集積回路（ＩＣ）システムはパッケージ基板を備え、パッケージ基板は、パッケージ基板上に設けられたプログラマブル集積回路（ＩＣ）チップとコンパニオンＩＣチップとを有する。プログラマブルＩＣチップはプログラマブルファブリックを含み、コンパニオンＩＣチップはアプリケーション回路を含む。ＩＣシステムはさらに、システムインパッケージ（ＳｉＰ）ブリッジを備え、システムインパッケージブリッジは、プログラマブルＩＣチップ内に配置された第１のＳｉＰ  ＩＯ回路と、コンパニオンＩＣチップ内に配置された第２のＳｉＰ  ＩＯ回路と、パッケージ基板上において第１のＳｉＰ  ＩＯ回路と第２のＳｉＰ  ＩＯ回路とを電気的に結合する導電性相互接続とを含む。ＩＣシステムは、プログラマブルＩＣチップ内においてプログラマブルファブリックと第１のＳｉＰ  ＩＯ回路との間に結合された第１の集約回路および第１の分散回路をさらに備える。ＩＣシステムは、コンパニオンＩＣチップ内においてアプリケーションＩＯと第２のＳｉＰ  ＩＯ回路との間に結合された第２の集約回路および第２の分散回路をさらに備える。
【０００４】
別の例において、プログラマブル集積回路（ＩＣ）は、外部導電性相互接続を通してコンパニオンＩＣに結合されたシステムインパッケージ（ＳｉＰ）入出力（ＩＯ）回路と、アプリケーション回路のうちの少なくとも一部を含まないプログラマブルファブリックと、プログラマブルファブリックとＳｉＰ  ＩＯ回路との間に結合された集約回路および分散回路とを備える。
【０００５】
別の例において、ＩＣシステム内のプログラマブル集積回路（ＩＣ）からデータを送信する方法は、プログラマブルＩＣ内の集約回路の複数のチャネルを通して第１のシステムインパッケージ（ＳｉＰ）ＩＯ回路にデータを結合するステップを含む。この方法はさらに、上記複数のチャネルからのデータを、プログラマブルＩＣとコンパニオンＩＣとの間のより少ない数の物理チャネルを通して送信するステップを含む。この方法はさらに、このデータを、コンパニオンＩＣ内の第２のＳｉＰ  ＩＯ回路において上記複数の物理チャネルから受信するステップを含む。この方法は、コンパニオンＩＣ内の分散回路の複数のチャネルを通して、コンパニオンＩＣ内のアプリケーション回路に対し、第２のＳｉＰ  ＩＯ回路からのデータを結合するステップを含む。この方法はさらに、上記データをアプリケーションＩＯ回路から送信するステップを含む。
【０００６】
別の例において、プログラマブル集積回路用のシステムレベル相互接続リングを提供するための技術を説明する。一例において、プログラマブル集積回路（ＩＣ）はプログラマブルファブリックを備え、プログラマブルファブリックは、プログラマブル相互接続と、プログラマブルファブリックの少なくとも１つのエッジに隣接するワイヤトラックとを有する。プログラマブルＩＣはさらに、プログラマブルファブリックの少なくとも１つのエッジと一体化された少なくとも１つのリングノードを備える。少なくとも１つのリングノードは、プログラマブル相互接続とワイヤトラックとの間に結合されている。プログラマブルＩＣはさらに、ワイヤトラックに結合されたシステムインパッケージ（ＳｉＰ）入出力（ＩＯ）回路を備える。
【０００７】
別の例において、集積回路（ＩＣ）システムはパッケージ基板を備え、パッケージ基板は、パッケージ基板上に設けられたプログラマブル集積回路（ＩＣ）チップとコンパニオンＩＣチップとを有する。プログラマブルＩＣチップはプログラマブルファブリックを含み、コンパニオンＩＣはアプリケーション回路を含む。ＩＣシステムはシステムインパッケージ（ＳｉＰ）ブリッジをさらに備え、システムインパッケージブリッジは、プログラマブルＩＣチップ内に配置された第１のＳｉＰ  ＩＯ回路と、コンパニオンＩＣチップ内に配置された第２のＳｉＰ  ＩＯ回路と、パッケージ基板上において第１のＳｉＰ  ＩＯ回路と第２のＳｉＰ  ＩＯ回路とを電気的に結合する導電性相互接続とを含む。プログラマブルＩＣチップはプログラマブルファブリックを含み、プログラマブルファブリックは、プログラマブル相互接続と、プログラマブルファブリックの少なくとも１つのエッジに隣接するワイヤトラックと、少なくとも１つのリングノードとを有し、ワイヤトラックは第１のＳｉＰ  ＩＯ回路に接続され、少なくとも１つのリングノードはプログラマブル相互接続とワイヤトラックとの間に結合されている。
【０００８】
別の例において、ＩＣシステム内においてプログラマブル集積回路（ＩＣ）からデータを送信する方法は、このデータをリングノードに結合するステップを含む。リングノードはプログラマブルＩＣのプログラマブルファブリックのエッジと一体化されている。リングノードは、プログラマブルファブリックのプログラマブル相互接続と、上記エッジに隣接するワイヤトラックとの間に結合されている。上記方法はさらに、リングノードからのデータを、ワイヤトラックの複数のチャネルを通して第１のシステムインパッケージ（ＳｉＰ）ＩＯ回路に結合するステップを含む。上記方法はさらに、上記複数のチャネルからのデータを、プログラマブルＩＣとコンパニオンＩＣとの間のより少ない数の物理チャネルで送信するステップを含む。
【０００９】
上記およびその他の局面は、以下の詳細な説明を参照することによって理解し得る。
上記特徴が詳細に理解されるよう、先に簡単に概要を述べた、より具体的な説明を、例示としての実装例を参照しながら提供する。これらの実装例のうちのいくつかは添付の図面に示されている。しかしながら、添付の図面は、典型的な実装例を示しており、故に、その範囲を限定するとみなされてはならない。
【図面の簡単な説明】
【００１０】
【図１】一例に係る集積回路（ＩＣ）システムを示すブロック図である。
【図２】一例に係るマルチチップモジュール（ＭＣＭ）の断面図である。
【図３】フィールドプログラマブルゲートアレイ（ＦＰＧＡ）アーキテクチャの一例を示す。
【図４】別の例に係るＩＣシステムを示すブロック図である。
【図５】一例に係る図４のＩＣチップのより詳細な図を示すブロック図である。
【図６】一例に係るシステムインパッケージ（ＳｉＰ）積層体を示すブロック図である。
【図７】一例に係るデータリンク層をより詳細に示すブロック図である。
【図８】一例に係るＳｉＰブリッジのデータリンク層内における調停方法を示すフロー図である。
【図９】別の例に係るＳｉＰブリッジのデータリンク層内における調停方法を示すフロー図である。
【図１０】一例に係るＩＣシステム内のプログラマブルＩＣからデータを送信する方法を示すフロー図である。
【図１１】一例に係るＩＣシステム内のプログラマブルＩＣへのデータを受信する方法を示すフロー図である。
【図１２】一実装例に係る物理層ロジックを示すブロック図である。
【図１３】一例に係るプログラマブルファブリックの横方向エッジに対するシステムレベル相互接続の一体化を示すブロック図である。
【図１４】一例に係るプログラマブルファブリックの縦方向エッジに対するシステムレベル相互接続の一体化を示すブロック図である。
【図１５】一例に係るシステムレベル相互接続のリングサブノードを示すブロック図である。
【図１６Ａ】システムレベル相互接続リング（ＳＩＲ）の実装例を示す。
【図１６Ｂ】システムレベル相互接続リング（ＳＩＲ）の実装例を示す。
【図１６Ｃ】システムレベル相互接続リング（ＳＩＲ）の実装例を示す。
【図１６Ｄ】システムレベル相互接続リング（ＳＩＲ）の実装例を示す。
【図１６Ｅ】システムレベル相互接続リング（ＳＩＲ）の実装例を示す。
【図１６Ｆ】システムレベル相互接続リング（ＳＩＲ）の実装例を示す。
【図１７】一例に係るＩＣシステム内のプログラマブルＩＣからデータを送信する方法を示すフロー図である。
【発明を実施するための形態】
【００１１】
理解を助けるために、複数の図面に共通する同一の要素には、可能であれば同一の参照符号を付しているが、１つの例の要素がその他の例に好適に含まれ得ることが意図されている。
【００１２】
詳細な説明
以下、さまざまな特徴を図面を参照しながら説明する。図面は必ずしも正しい縮尺で描かれているとは限らないこと、および、上記図面において同様の構造または機能には同様の参照番号が付されていることに注意されたい。これらの図面は、特徴を説明し易くすることを意図しているに過ぎない。これらは、クレームされている発明を余すところなく説明することを意図している訳でも、クレームされている発明を限定することを意図している訳でもない。加えて、説明される例は、示されている局面または利点すべてを有する必要はない。特定の例との関連で説明されるある局面またはある利点は、必ずしもその例に限定される訳ではなく、そのように示されていなくても、またはそれほど明確に説明されていなくても、その他いずれの例でも実施することが可能である。
【００１３】
アクティブ・バイ・アクティブプログラマブルデバイスについて説明する。一例において、システムインパッケージ（ＳｉＰ）に基づくプログラマブルデバイスは、マルチチップモジュール（multi-chip module：ＭＣＭ）パッケージを採用する。ＭＣＭパッケージは、パッケージ基板上に配置された、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のプログラマブル集積回路（ＩＣ）と、１つ以上のコンパニオン集積回路（ＩＣ）デバイスとを含む。プログラマブルＩＣおよびコンパニオンＩＣは、パッケージ基板上において隣合うように（たとえばアクティブ・バイ・アクティブ）配置される。プログラマブルＩＣと各コンパニオンＩＣデバイスとの間の接続は、高帯域幅ＳｉＰブリッジを用いて実現する。ＳｉＰブリッジは、少数のワイヤを用いて実現することができるので、高価なインターポーザではなくＭＣＭパッケージを使用することができる。あるデバイスから別のデバイスに送信すべきデータは、集合的な帯域幅に集約され、ＳｉＰブリッジを通して送られる。ＳｉＰブリッジ上で受けられた集約データは、体系化された分散機構を通して送られる。本明細書に記載の例において、ＳｉＰブリッジは、少なくとも物理層とデータリンク層とを含むプロトコルスタックを用いて実現する。トランスポート層等の、より高位の層を用いることもできる。物理層は、本明細書において詳述する特定の要求を満たすいずれかの超短距離（ultra-short reach：ＵＳＲ）シリアライザ／デシリアライザ（serializer/deserializer：ＳｅｒＤｅｓ）技術であってもよい。本明細書においてさらに説明するように、データリンク層は、宛先において輻輳が生じないように、利用できる物理チャネルにおいて集約データを時間多重化するように構成される。各デバイスは、アプリケーション回路とＳｉＰブリッジとの間におけるデータの集約と分散とを容易にするシステムレベル相互接続を含み得る。
【００１４】
複数の例において、コンパニオンＩＣチップは、ＳｉＰデバイスのアプリケーション入出力（ＩＯ）回路のうちのいくつかまたはすべてを含む。よって、プログラマブルＩＣはこのようなアプリケーションＩＯ回路なしで構成できる。プログラマブルＩＣからアプリケーションＩＯ回路を取除くことにより、他の回路用のチップ面積が得られる。また、プログラマブルＩＣは、より新しいプロセス技術を用いかつより新しいプロセス技術の特徴を利用して製造することができる。一方、アプリケーションＩＯ回路を有するコンパニオンＩＣは、それよりも古くコストが低いプロセス技術を用いて製造することができる。結果として、この総合的なソリューションが、同じ機能をより低いコストで提供することになる。プログラマブルＩＣおよびコンパニオンＩＣデバイスは、ＳｉＰブリッジによって接続される。プログラマブルＩＣおよびコンパニオンＩＣデバイスは各々、ＳｉＰブリッジの終点を定めるＳｉＰ  ＩＯ回路を含む。プログラマブルＩＣおよびコンパニオンＩＣは各々、システムレベル相互接続を含むことにより、アプリケーション回路とＳｉＰ  ＩＯ回路との間におけるデータの集約および分散を提供することができる。プログラマブルＩＣにおいて使用するシステムレベル相互接続の一例は、システムレベル相互接続リング（system-level interconnect ring：ＳＩＲ）である。本明細書においてさらに説明するように、ＳＩＲにより、プログラマブルＩＣのための回路を実現するために使用する設計ツールおよびプログラマブルファブリックの増大を最小に抑えることができる。上記およびその他の局面は以下の図面を参照することで理解できる。
【００１５】
図１は、一例に係る集積回路（ＩＣ）システム１００を示すブロック図である。ＩＣシステム１００は、ＩＣチップ１０３に結合されたＩＣチップ１０１を含む。一例において、ＩＣチップ１０１およびＩＣチップ１０３は、システムインパッケージ（ＳｉＰ）を形成するマルチチップモジュールの一部である。ＩＣチップ１０１は、アプリケーション回路１０５と、集約回路１１０と、分散回路１１２と、ＳｉＰ入出力回路（ＳｉＰ  ＩＯ１４０）とを含む。一例において、アプリケーション回路１０５は、１つ以上の処理素子（ＰＥ１０２）、メモリ（ｍｅｍ１０４）、サポート回路（ＳＣ１０６）、および入出力回路（ＩＯ１０８）等のさまざまな構成要素を含む。その他の例において、構成要素１０２〜１０８のうちの１つ以上がアプリケーション回路１０５から省略されてもよい。アプリケーション回路１０５の構成要素１０２〜１０８は各々、集約回路１１０および分散回路１１２双方に結合することができる。これに代えて、構成要素１０２〜１０８のうちの１つ以上を、集約回路１１０または分散回路１１２のうちの一方のみに結合してもよい。集約回路１１０および分散回路１１２は各々、ＳｉＰ  ＩＯ１４０の内部インターフェイスに結合される。
【００１６】
一例において、ＳｉＰ  ＩＯ１４０は、トランスポートロジック１１４と、データリンクロジック１１６と、物理ロジック１１８とを有する多重化されたＩＯロジックを実現する。示されている例において、多重化されたＩＯロジックはその全体がＳｉＰ  ＩＯ１４０内で実現される。その他の例において、多重化されたＩＯロジックの所定の層またはその一部をアプリケーション回路１０５内で実現することができる。一例において、トランスポートロジック１１４はアプリケーション回路１０５内で実現され、データリンクロジック１１６および物理ロジック１１８はＳｉＰ  ＩＯ１４０内で実現される。一例において、データリンクロジック１１６の調停部分がアプリケーション回路１０５内で実現され、データリンクロジック１１６のための多重化ロジックがＳｉＰ  ＩＯ１４０内で実現される。
【００１７】
ＩＣチップ１０３はＩＣチップ１０１と同様の回路を含む。図１に示す例において、ＩＣチップ１０３は、アプリケーション回路１０７と、集約回路１２６と、分散回路１２８と、ＳｉＰ  ＩＯ１４２とを含む。一例において、アプリケーション回路１０７は、ＰＥ１２０、メモリ（ｍｅｍ１３２）、サポート回路（ＳＣ１３４）、および入出力回路（ＩＯ１３６）等のさまざまな構成要素を含む。その他の例において、構成要素１３０〜１３６のうちの１つ以上がアプリケーション回路１０７から省略されてもよい。アプリケーション回路１０７の構成要素１３０〜１３６は各々、集約回路１２６および分散回路１２８双方に結合することができる。これに代えて、構成要素１３０〜１３６のうちの１つ以上を、集約回路１２６または分散回路１２８のうちの一方のみに結合してもよい。集約回路１２６および分散回路１２８は各々、ＳｉＰ  ＩＯ１４２の内部インターフェイスに結合される。ＳｉＰ  ＩＯ１４０と同様に、ＳｉＰ  ＩＯ１４２は、トランスポートロジック１２４、データリンクロジック１２２、および物理ロジック１２０を有する多重化されたＩＯロジックを実現する。示されている例において、多重化されたＩＯロジックはその全体がＳｉＰ  ＩＯ１４２内で実現される。その他の例においては、ＩＣチップ１０１に関連して説明したように、多重化されたＩＯロジックの所定のロジック層またはその一部をアプリケーション回路１０７内で実現することができる。
【００１８】
ＩＣチップ１０１とＩＣチップ１０３とはＳｉＰブリッジ１４４によって結合される。ＳｉＰブリッジ１４４は、ＳｉＰ  ＩＯ１４０と、ＳｉＰ  ＩＯ１４２と、信号経路１３８とを含む。ＳｉＰ  ＩＯ１４０の外部インターフェイスが、信号経路１３８によってＳｉＰ  ＩＯ１４２の外部インターフェイスに結合される。物理ロジック１１８／１２０は、ＳｉＰブリッジ１４４の物理層を実現し、複数の物理チャネルをサポートする。データリンクロジック１１６／１２２は、ＳｉＰブリッジ１４４のデータリンク層を実現し、ＳｉＰブリッジ１４４の各側における複数のチャネル（集約チャネルおよび分散チャネルと呼ぶ）をサポートする。トランスポートロジック１１４／１２４は、ＳｉＰブリッジ１４４のトランスポート層を実現する。接続なしのまたは接続ベースのトランスポート層を含むさまざまなトランスポート層を用いることができる。トランスポート層は、当該技術では周知のパケット化（packetization）、デパケット化（depacketization）、エラー訂正、パケットの順序付け等を提供することができる。
【００１９】
アプリケーション回路１０５は、集約回路１１０のチャネルに結合された多数の出力を含み得る。集約回路１１０は、アプリケーション回路１０５の出力を、ＳｉＰ  ＩＯ１４０の内部入力（ソースポートと呼ぶ）に選択的に結合する。たとえば、ＳｉＰ  ＩＯ１４０は、集約回路１１０のＭ個の集約チャネルに結合されたＭ個のソースポートを含み得る。ここでＭは正の整数である。集約回路１１０は、アプリケーション回路１０５の出力を、Ｍ個の集約チャネルを通してＳｉＰ  ＩＯ１４０のＭ個のソースポートに選択的に結合することができる。ＳｉＰ  ＩＯ１４０は、信号経路１３８を通して実現されるＫ個の物理チャネルを駆動するＫ個の外部出力を含み得る。ここでＫは正の整数である。一例において、ＫはＭよりも小さく、ＳｉＰ  ＩＯ１４０は、Ｍ個のソースポートをＫ個の外部出力に多重化する。ＳｉＰ  ＩＯ１４２は、Ｋ個の物理チャネルから受信するＫ個の外部入力を含み得る。ＳｉＰ  ＩＯ１４２は、Ｋ個の外部入力をＮ個の内部出力（宛先ポートと呼ぶ）に多重分離する。ここでＮは正の整数である。一例において、ＮはＫよりも大きい。分散回路１２８は、ＳｉＰ  ＩＯ１４２のＮ個の宛先ポートを、Ｎ個の分散チャネルを通してアプリケーション回路１０７の入力に選択的に結合する。
【００２０】
同様に、アプリケーション回路１０７は、集約回路１２６の集約チャネルに結合された多数の出力を含み得る。集約回路１２６は、アプリケーション回路１０７の出力を、ＳｉＰ  ＩＯ１４２のソースポートに選択的に結合する、たとえば、ＳｉＰ  ＩＯ１４２は、集約回路１２６のＮ’個の集約チャネルに結合されたＮ’個のソースポートを含み得る。集約回路１２６は、アプリケーション回路１０７の出力を、Ｎ’個の集約チャネルを通してＳｉＰ  ＩＯ１４２のＮ’個のソースポートに選択的に結合することができる。ＳｉＰ  １４２は、信号経路１３８を通して実現されるＫ’個の物理チャネルを駆動するＫ’個の外部出力を含み得る。ここでＫ’は正の整数である。一例において、Ｋ’はＮ’よりも小さく、ＳｉＰ  ＩＯ１４２は、Ｎ’個のソースポートをＫ’個の外部出力に多重化する。ＳｉＰ  ＩＯ１４０は、Ｋ’個の物理チャネルから受信するＫ’個の外部入力を含み得る。ＳｉＰ  ＩＯ１４０は、Ｋ’個の外部入力をＭ’個の宛先ポートに多重分離する。ここでＭ’は正の整数である。一例において、Ｍ’はＫ’よりも大きい。分散回路１１２は、ＳｉＰ  ＩＯ１４０のＭ’個の宛先ポートを、Ｍ’個の分散チャネルを通してアプリケーション回路１０５のＭ’個の入力に選択的に結合する。
【００２１】
いくつかの例において、ＳｉＰブリッジ１４４がＩＣチップ１０１とＩＣチップ１０３との間の各方向において同数の物理チャネルをサポートするよう、Ｋ＝Ｋ’である。ＩＣチップ１０１からデータを送信する場合、集約回路１１０は、アプリケーション回路１０５の出力をＭ個の集約チャネルに集約し、ＳｉＰ  ＩＯ１４０はＭ個の集約チャネルをＫ個の物理チャネルに多重化する。ＩＣチップ１０３からデータを受信する場合、ＳｉＰ  ＩＯ１４２はＫ個の物理チャネルをＮ個のチャネルに多重分離し、分散回路１２８はＮ個の分散チャネルをアプリケーション回路１０７の入力に分散させる。同様に、ＩＣチップ１０３からデータを送信する場合、集約回路１２６は、アプリケーション回路１０７の出力をＮ’個の集約チャネルに集約し、ＳｉＰ  ＩＯ１４２はＮ’個の集約チャネルをＫ’個の物理チャネルに多重化する。ＩＣチップ１０１においてこのデータを受信するために、ＳｉＰ１４０はＫ’個の物理チャネルから受信したＫ’個の物理チャネルをＭ’個の分散チャネルに多重分離し、分散回路１１２はＭ’個の分散チャネルをアプリケーション回路１０５の入力に分散させる。いくつかの例において、集約回路１１０および分散回路１１２がアプリケーション回路１０５に対して合計２＊Ｍ個のチャネルを提供しかつ集約回路１２６および分散回路１２８がアプリケーション回路１０７に対して合計２＊Ｎ個のチャネルを提供するように、Ｍ＝Ｍ’およびＮ＝Ｎ’である。いくつかの例において、Ｍ＝Ｍ’＝Ｎ＝Ｎ’である。
【００２２】
一例において、アプリケーション回路１０５およびアプリケーション回路１０７は、パケット化されたデータをＳｉＰブリッジ１１４を通してやり取りする。トランスポートロジック１１４はアプリケーション回路１０５の出力をパケットにする。このパケットは各々ｗビットを含み、ｗは正の整数である。トランスポートロジック１１４も、分散回路１１２から受けたデータをデパケット化する。トランスポートロジック１２４はトランスポートロジック１１４と同様に機能し得る。
【００２３】
データリンクロジック１１６は、集約回路１１０の出力を複数の集約チャネル（たとえばＭ個の集約チャネル）に編成し、ここで各集約チャネルは、ｗビットのパケットを提供するためにｗビット幅を有する。すなわち、集約回路１１０はマルチチャネル出力を含む。同様に、データリンクロジック１１６は分散回路１１２の入力を複数の分散チャネル（たとえばＭ’個の分散チャネル）に分割し、ここで各分散チャネルはｗビットのパケットを受信するためにｗビット幅である。すなわち、分散回路１１２はマルチチャネル入力を含む。データリンクロジック１１６は集約チャネルごとに送信キューを管理する。データロジック１１６は、送信キュー間の調停を実行することにより、利用できる物理チャネルを通して物理ロジック１１８によって送信するパケットを選択する。データリンクロジック１１６はまた、物理チャネルを、分散回路１１２の利用できる分散チャネルに多重分離する。データリンクロジック１２２はデータリンクロジック１１６と同様に機能し得る。
【００２４】
物理ロジック１１８は、パケットを、信号経路１３８を通して信号として送信するために、利用できる出力物理チャネルにおいてシリアライズすることができる。物理ロジック１１８はまた、信号経路１３８から受信した信号を、利用できる入力物理チャネルにデシリアライズすることができる。物理ロジック１２０は物理ロジック１１８と同様に機能し得る。
【００２５】
一例において、アプリケーション回路１０５は、１つ以上の直接信号経路１４６を通してアプリケーション回路１０７に直接結合することができる。すなわち、ＩＣチップ１０１とＩＣチップ１０３との間にはＳｉＰブリッジ１４４を通らない何らかの通信がある。さらに、ＩＣチップ１０１は、信号をその他の外部回路との間で送受信するためならびに電源および接地を受けるために使用できる外部インターフェイス１４７を含み得る。同様に、ＩＣチップ１０３は、信号をその他の外部回路との間で送受信するためならびに電源および接地を受けるために使用できる外部インターフェイス１４８を含み得る。
【００２６】
図１に示す例において、ＩＣチップ１０１は、１つの他のＩＣチップへの１つのＳｉＰブリッジのためのＳｉＰ  ＩＯを含む。その他の例において、ＩＣチップは、複数のＩＣチップへの複数のＳｉＰブリッジのための複数のＳｉＰ  ＩＯを含み得る。このような実施形態において、ＩＣチップは、その内部のアプリケーション回路を複数のＳｉＰブリッジに結合するための集約および分散回路の複数のインスタンスを含み得る。
【００２７】
図２は、一例に係るＭＣＭ２００の断面図である。ＭＣＭ２００は上記ＩＣシステム１００を実現することができる。ＭＣＭ２００は、パッケージ基板２０２上に設けられたＩＣチップ１０１とＩＣチップ１０３とを含む。ＩＣチップ１０１は、コンタクト２１４によってパッケージ基板２０２に電気的かつ機械的に結合される。ＩＣチップ１０３は、コンタクト２１６によってパッケージ基板２０２に電気的かつ機械的に結合される。コンタクト２１４およびコンタクト２１６は、はんだボール、はんだバンプ等であればよい。パッケージ基板２０２は、ＩＣチップ１０１およびＩＣチップ１０３が設けられている表面にまたはその近傍に配置された導電性相互接続２０８を含む。パッケージ基板２０２は、反対側の表面にまたはその近傍に配置された導電性相互接続２０６を含む。導電性相互接続２０８および導電性相互接続２０６は各々、特定のパターンを有する１つ以上の金属層を含む。ＩＣチップ１０１のコンタクト２１４のうちのいくつかは導電性相互接続２０８に電気的に結合される。ＩＣチップ１０３のコンタクト２１６のうちのいくつかは導電性相互接続２０８に電気的に結合される。その他のコンタクト２１４はビア２１８を通して導電性相互接続２０６に電気的に結合される。その他のコンタクト２１６はビア２２０を通して導電性相互接続２０６に電気的に結合される。導電性相互接続２０６はコンタクト２０４に電気的に結合される。コンタクト２０４は、はんだボール、はんだバンプ等であればよい。
【００２８】
コンタクト２０４はＭＣＭ２００の外部ピンを含む。ＭＣＭ２００は回路基板に設けることができる。回路基板上の導体は、パッケージ基板２０２のコンタクト２０４を通してＩＣチップ１０１およびＩＣチップ１０３に電気的に結合することができる。ＭＣＭ２００の内部において、ＩＣチップ１０１は導電性相互接続２０８を通してＩＣチップ１０３に電気的に結合される。上記ＩＣシステム１００を実現するために、導電性相互接続２０８をパターニングすることにより、ＩＣチップ１０１とＩＣチップ１０３との間の信号経路１３８を形成する。一例において、導電性相互接続２０８をパターニングして専用信号経路１４６（存在するのであれば）も形成する。ＳｉＰ  ＩＯ１４０の外部インターフェイスは、コンタクト２１４のうちのいくつかを通して、導電性相互接続２０８内に形成された信号経路１３８に結合される。同様に、ＳｉＰ  ＩＯ１４２の外部インターフェイスは、コンタクト２１６のうちのいくつかを通して、導電性相互接続２０８内に形成された信号経路１３８に結合される。
【００２９】
一例において、ＩＣチップ１０１およびＩＣチップ１０３のうちの少なくとも一方は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のプログラマブルＩＣを含む。図３は、多数の異なるプログラマブルタイルを含むＦＰＧＡアーキテクチャ３００を示す。上記プログラマブルタイルは、マルチギガビットトランシーバ（「ＭＧＴ」）３０１、コンフィギュラブルロジックブロック（「ＣＬＢ」）３０２、ランダムアクセスメモリブロック（「ＢＲＡＭ」）３０３、入出力ブロック（「ＩＯＢ」）３０４、コンフィギュレーションおよびクロッキングロジック（「ＣＯＮＦＩＧ／ＣＬＯＣＫＳ」）３０５、デジタル信号処理ブロック（「ＤＳＰ」）３０６、特化された入出力ブロック（「Ｉ／Ｏ」）３０７（たとえばコンフィギュレーションポートおよびクロックポート）、および、デジタルクロックマネージャ、アナログデジタル変換器、システムモニタリングロジック等のその他のプログラマブルロジック３０８を含む。いくつかのＦＰＧＡは、専用プロセッサブロック（「ＰＲＯＣ」）３１０も含む。
【００３０】
いくつかのＦＰＧＡにおいて、図３の上部に含まれる例によって示されるように、各プログラマブルタイルは、同一タイル内のプログラマブルロジック素子の入力および出力端子３２０への接続を有する少なくとも１つのプログラマブル相互接続素子（「ＩＮＴ」）３１１を含む。各プログラマブル相互接続素子３１１はまた、同一タイルまたはその他のタイル（１つまたは複数）における隣接するプログラマブル相互接続素子（１つまたは複数）の相互接続セグメント３２２への接続を含み得る。各プログラマブル相互接続素子３１１はまた、ロジックブロック（図示せず）間の包括ルーティングリソースの相互接続セグメント３２４への接続を含み得る。包括ルーティングリソースは、相互接続セグメント（たとえば相互接続セグメント３２４）のトラックを含むロジックブロック（図示せず）と、相互接続セグメントを接続するためのスイッチブロック（図示せず）との間のルーティングチャネルを含み得る。包括ルーティングリソースの相互接続セグメント（たとえば相互接続セグメント３２４）は１つ以上のロジックブロックに跨り得る。プログラマブル相互接続素子３１１は包括ルーティングリソースとともに、例示されているＦＰＧＡのためのプログラマブル相互接続構造（「プログラマブル相互接続」）を実現する。
【００３１】
ある実装例において、ＣＬＢ３０２は、ユーザロジックを実装するようにプログラムすることができるコンフィギュラブルロジック素子（「ＣＬＥ」）３１２と、１つのプログラマブル相互接続素子（「ＩＮＴ」）３１１とを含み得る。ＢＲＡＭ３０３は、１つ以上のプログラマブル相互接続素子に加えてＢＲＡＭロジック素子（「ＢＲＬ」）３１３を含み得る。一般的に、１つのタイルに含まれる相互接続素子の数は、このタイルの高さによって決まる。図示されている例では、１つのＢＲＡＭタイルは、５つのＣＬＢの高さと同一の高さを有するが、他の数（たとえば４）を用いることもできる。ＤＳＰタイル３０６は、適切な数のプログラマブル相互接続素子に加えてＤＳＰロジック素子（「ＤＳＰＬ」）３１４を含み得る。ＩＯＢ３０４は、たとえば、プログラマブル相互接続素子３１１の１つのインスタンスに加えて、入出力ロジック素子（「ＩＯＬ」）３１５の２つのインスタンスを含み得る。当業者にとっては明らかであるように、たとえば入出力ロジック素子３１５に接続される実際の入出力パッドは、一般的に、入出力ロジック素子３１５の領域に限られない。
【００３２】
図示されている例において、（図３に示される）チップの中心近くの横方向の領域は、コンフィギュレーション、クロック、およびその他の制御ロジックのために使用される。この横方向の領域または列から延びる縦方向の列３０９は、ＦＰＧＡの幅全体にわたってクロックおよびコンフィギュレーション信号を分配するために使用される。
【００３３】
図３に示されるアーキテクチャを使用するいくつかのＦＰＧＡは、ＦＰＧＡのかなりの部分を構成している規則的な列状構造を壊しているその他のロジックブロックを含む。その他のロジックブロックは、プログラマブルブロックおよび／または専用ロジックであってもよい。たとえば、プロセッサブロック３１０は、ＣＬＢおよびＢＲＡＭの数個の列に跨っている。プロセッサブロック３１０は、単一のマイクロプロセッサから、マイクロプロセッサ（１つまたは複数）、メモリコントローラ、周辺機器等の包括的なプログラマブル処理システムまでの範囲にわたるさまざまな構成要素であり得る。
【００３４】
なお、図３は、典型的なＦＰＧＡアーキテクチャのみを示すことを意図している。たとえば、１行のロジックブロックの数、行の相対的な幅、行の数および順序、行に含まれるロジックブロックの種類、ロジックブロックの相対的なサイズ、および図３の上部に含まれている相互接続／ロジックの実装は、代表的なものに過ぎない。たとえば、実際のＦＰＧＡでは一般的に、ＣＬＢがどこにあっても隣接する２行以上のＣＬＢを含むことによってユーザロジックを効率的に実装し易くしているが、隣接するＣＬＢ行の数はＦＰＧＡの全体のサイズに応じて変化する。
【００３５】
一例において、ＩＣチップ１０１は、ＦＰＧＡアーキテクチャ３００を有するプログラマブルファブリックを含む。よって、ＩＣチップ１０１はさらに、ＳｉＰ  ＩＯ１４０とシステムレベル相互接続３５０とを含む。システムレベル相互接続３５０は、集約回路１１０と分散回路１１２とを含む。一例において、システムレベル相互接続３５０はシステムレベル相互接続リング（ＳＩＲ）を含む。ＳＩＲのさまざまな例は以下で説明する。一般的に、システムレベル相互接続３５０は、プログラマブルファブリックとＳｉＰ  ＩＯ１４０との間のインターフェイスを提供する。一例において、システムレベル相互接続３５０は、プログラマブルファブリックと同様のやり方で（たとえばコンフィギュレーションビットストリームをロードすることによって）構成することができる。その他の例において、システムレベル相互接続３５０は、ＩＣチップ１０１の動作中に動的にプログラミングしてもよい。
【００３６】
一例において、ＳｉＰ  ＩＯ１４０はＩＯインターフェイスを提供する。プログラマブルファブリック内で構成されている回路は、このＩＯインターフェイスを用いて、ＳｉＰブリッジ１４４を通してＩＣチップ１０３と通信することができる。回路は、その他の外部回路に対するさらに他のＩＯとして、ＩＯＢ３０４、ＭＧＴ３０１、およびその他のＩＯ（たとえばメモリＩＯ、カスタムＩＯ等）といったＦＰＧＡアーキテクチャ３００のアプリケーションＩＯを使用することができる。図３の例において、ＦＰＧＡアーキテクチャ３００は、ＳｉＰ  ＩＯ１４０およびアプリケーションＩＯ双方を含む。
【００３７】
以下でより詳細に説明するその他の例において、アプリケーションＩＯの少なくとも一部を、ＭＣＭのコンパニオンＩＣのように、ＦＰＧＡの外部に配置してもよい。たとえば、ＦＰＧＡアーキテクチャを有するＩＣチップ１０１は、ＳｉＰ  ＩＯ１４０のみを有するように構成することができる。すなわち、ＩＯＢ３０４およびＭＧＴ３０１はＦＰＧＡアーキテクチャ３００から取除く。アプリケーションＩＯすべてをＩＣチップ１０３上に配置することができる。ＩＣチップ１０１内のプログラマブルファブリックは、ＳｉＰブリッジ１４４を用いてＩＣチップ１０３におけるアプリケーションＩＯにアクセスできる。いくつかの例において、ＦＰＧＡアーキテクチャを有するＩＣチップ１０１は、コンフィギュレーションＩＯ、ＪＴＡＧ  ＩＯ等の何らかの専用ＩＯ  を、ＳｉＰ  ＩＯに加えて含み得る。この専用ＩＯはＦＰＧＡのプログラミングおよび／またはテストのために使用されるのであって、プログラマブルファブリック内に構成された回路のためのアプリケーションＩＯとして使用されるのではない。
【００３８】
図４は、別の例に係るＩＣシステム４００を示すブロック図である。図４において、図１および図３の要素と同一または同様の要素は同一の参照番号で示している。ＩＣシステム４００において、ＩＣチップ１０１Ａは、システムレベル相互接続３５０に結合されたプログラマブルファブリック４０４を有するＦＰＧＡチップである。ＩＣチップ１０３Ａは、アプリケーションＩＯ１０７Ａを含む特定用途向け集積回路（ＡＳＩＣ）チップ（「コンパニオンＩＣ」とも呼ぶ）である。ＩＣチップ１０３ＡはアプリケーションＩＯ１０７Ａを有するものとして説明しているが、一般的に、ＩＣチップ１０３Ａは、ＩＯ回路および／またはその他の種類の回路を含み得るアプリケーション回路を含むことができる。システムレベル相互接続３５０は、ＳｉＰ  ＩＯ１４０Ａの内部インターフェイスに結合される。システムレベル相互接続３５０は、上記集約回路１１０および分散回路１１２の機能を果たす。ＳｉＰ  ＩＯ１４０Ａは、上記ＳｉＰ  ＩＯ１４０と似ているが、トランスポートロジック１１４およびデータリンクロジック１１６の一部がない。トランスポートロジック１１４はプログラマブルファブリック４０４内において実現される。たとえば、プログラマブルファブリック４０４は、トランスポートロジック１１４を実現できるＰＥ１０２等の回路で構成することができる。ＰＥ１０２は、メモリ１０４（たとえばＢＲＡＭ３０３）および／またはサポート回路１０６（たとえばＤＳＰ３０６）に結合されてこれを使用することができる。別の例において、ＰＥ１０２、メモリ１０４、およびサポート回路１０６は、データリンクロジック１１６のための調停ロジック４０６を実現することもできる。ＳｉＰ  ＩＯ１４０Ａは、データリンクロジック１１６および物理ロジック１１８の多重化ロジックを含む。さらに他の例において、プログラマブルファブリック４０４は、調停ロジック４０６およびトランスポートロジック１１４双方を実現することができる。
【００３９】
図４の例において、システムレベル相互接続３５０は、プログラマブルファブリック４０４の４辺すべてを囲むリングとして示されている。プログラマブルファブリック４０４は、その上辺、下辺、左辺、および右辺においてシステムレベル相互接続３５０に結合される。以下でさらに説明するその他の例において、システムレベル相互接続３５０は、ＳＩＲの各種実装例と言ったその他の形態を有していてもよい。別の例において、システムレベル相互接続３５０はネットワークオンチップ（network-on-chip：ＮｏＣ）等を含み得る。
【００４０】
一例において、プログラマブルファブリック４０４はアプリケーションＩＯを含まない。ＩＣチップ１０３Ａ内のアプリケーションＩＯ１０７Ａは、ＩＯＢ３０４、ＭＧＴ３０１、およびその他のＩＯ４０２（たとえばメモリＩＯ、カスタムＩＯ等）といったアプリケーションＩＯを含む。アプリケーションＩＯ１０７Ａは集約回路１２６および分散回路１２８に結合される。プログラマブルファブリック４０４内に構成された回路は、システムレベル相互接続３５０およびＳｉＰブリッジ１４４を通して、アプリケーションＩＯ１０７Ａとデータをやり取りすることができる。いくつかの例において、ＩＣチップ１０１Ａはまた、コンフィギュレーションＩＯ、ＪＴＡＧ  ＩＯ等といった専用ＩＯ１０８を含む。この専用ＩＯ１０８の一部またはすべてがＩＣチップ１０３Ａに結合されてもよい。
【００４１】
図５は、一例に係るＩＣチップ１０４Ａのより詳細な図を示すブロック図である。特に、示されているプログラマブルファブリック４０４は９個のファブリックサブ領域（fabric sub-region：ＦＳＲ）５０８Ａ、５０８Ｂ、...、５０８Ｉ（まとめてＦＳＲ５０８）を含む。一般的に、プログラマブルファブリック４０４は任意の数のＦＳＲを含み得る。各ＦＳＲ４０８は、図３に示すプログラマブルファブリックと同様に、ＣＬＢ、ＢＲＡＭ、ＤＳＰ等の列を含む。さらに、ＦＳＲ５０８は各々、ゼロ以上のリングノード（ring node：ＲＮ）５０４を含む。このファブリックの中心にあるＦＳＲ５０８（たとえばＦＳＲ５０８Ｅ）はＲＮ５０４を含んでいない。このファブリックの内側のエッジに沿うＦＳＲ５０８（たとえばＦＳＲ５０８Ｂ、５０８Ｄ、５０８Ｆ、および５０８Ｈ）は１つのＲＮ５０４を含む。このファブリックの角にあるＦＳＲ５０８は２つのＲＮ５０４を含む。各ＲＮ５０４は複数のリングサブノード（ring sub-node：ＲＳＮ）５０６を含む。以下でさらに説明するように、ＲＮ５０４はそれぞれのＦＳＲ５０８内のファブリックコンポーネントのうちのいくつかに置換えて設けられている。
【００４２】
ＲＮ５０４はワイヤトラック５０２に結合される。この例において、ワイヤトラック５０２はプログラマブルファブリック４０４の周囲にリングを形成する。以下で説明するようにその他の相互接続構造を使用できる。ＲＮ５０４とワイヤトラック５０２とが合わさって、システムレベル相互接続３５０を実現できるシステムレベル相互接続を形成する。一例において、システムレベル相互接続は２つのチャネルセットをサポートする。この２つのチャネルセットのうちの一方は当該ファブリックからデータを送信するためのものであり他方は当該ファブリックへのデータを受信するためのものである。たとえば、ワイヤトラック５０２を２５６のトラックに構成することにより、各々の幅が１２８トラックである１つの受信チャネルセットと１つの送信チャネルセットとを実現できる。当然、これらのワイヤトラック５０２は２５６トラックよりも多いまたは少ないトラックに構成することができる。各ＲＮ５０４はワイヤトラック５０２に結合される。各ＲＮ５０４は、プログラマブルファブリック４０４とシステムレベル相互接続との間に双方向インターフェイスを提供するルータスイッチを含む。プログラマブルファブリック４０４内に構成された回路は、ＲＮ５０４をプログラミングすることによって特定のワイヤトラック５０２に結合できる。ＲＮ５０４は、ＦＰＧＡにロードされたコンフィギュレーションデータを用いて、または、ＦＰＧＡの動作中に動的に、プログラミングすることができる。
【００４３】
各ＲＳＮ５０６は、ＲＮ５０４の繰返し可能な部分を含む。たとえば、ワイヤトラック５０２が２５６トラックになるように構成された場合、ＲＮ５０４は、各々が３２のワイヤトラックを制御する８個のＲＳＮ５０６を含み得る。当然、１つのＲＮ５０４はそれよりも多いまたは少ないＲＳＮ５０６を含み得るものであり、ＲＳＮ５０６は３２よりも多いまたは少ないワイヤトラックを制御できる。各ＲＳＮ５０６は、プログラマブルファブリック４０４の横方向のエッジに沿うＲＮ５０４の一部であるかプログラマブルファブリック４０４の縦方向のエッジに沿うＲＮ５０４の一部であるかに関係なく、同一のレイアウトを有し得る。このように、ＦＰＧＡにおける実装のための設計回路に使用する設計ツールは、横方向のエッジに沿うＲＮ５０４と縦方向のエッジに沿うＲＮ５０４とを区別する必要はない。以下、ＲＳＮ５０６の構造例を説明する。
【００４４】
図６は、一例に係るＳｉＰスタック６０１および６０３を示すブロック図である。ＳｉＰスタック６０１はＳｉＰ  ＩＯ（たとえばＳｉＰ  ＩＯ１４０または１４０Ａ）の一部であってもよく、ＳｉＰスタック６０３は別のＳｉＰ  ＩＯ（たとえばＳｉＰ  ＩＯ１４２または１４２Ａ）の一部であってもよい。明確にするために、例としてトランスポートロジック１１４／１２４は示されていない。
【００４５】
ＳｉＰスタック６０１は、データリンク回路６０２と物理回路６０４とを含む。ＳｉＰスタック６０３は、データリンクロジックを実現するデータリンク回路６０８と、物理ロジックを実現する物理回路６０６とを含む。物理回路６０４および６０６は物理層を形成する。データリンク回路６０２および６０８はデータリンク層を形成する。
【００４６】
この例において、ＳｉＰスタック６０１はＭ＊ｗのソースポートとＭ＊ｗの宛先ポートとを含む。データリンク回路６０２のソースポートおよび宛先ポートはそれぞれ集約回路１１０および分散回路１１２に結合される（たとえばシステムレベル相互接続３５０）。データリンク回路６０２は、Ｋ＊ｗの外部出力とＫ＊ｗの外部入力とを含む。データリンク回路６０２の外部出力および外部入力は物理回路６０４に結合される。物理回路６０４は、信号経路１３８によって物理回路６０６に結合される。物理層に応じて、信号経路１３８はおよそ２＊Ｋの信号経路を含み得る。データリンク回路６０８はＫ＊ｗの外部入力とＫ＊ｗの外部出力とを含む。データリンク回路６０８の外部入力および出力は物理回路６０６に結合される。データリンク回路６０８はＮ＊ｗの宛先ポートとＮ＊ｗのソースポートとを含む。データリンク回路６０８のソースポートおよび宛先ポートはそれぞれ集約回路１２６および分散回路１２８に結合される。
【００４７】
動作時において、データリンク回路６０２は、幅ｗのＭ個の集約チャネルを、幅ｗのＫ個の物理チャネルに多重化する。物理回路６０４は、Ｋ個の物理チャネル上のパケットを信号経路１３８上にシリアライズする。物理回路６０６は、信号経路１３８からの信号を幅ｗのＫ個の物理チャネルにデシリアライズする。データリンク回路６０８は、Ｋ個の物理チャネルを幅ｗのＮ個の分散チャネルに多重分離する。データリンク回路６０８からデータリンク回路６０２への（すなわち逆方向の）送信時の動作も同じである。
【００４８】
図７は、一例に係るデータリンク層をより詳細に示すブロック図である。図７の例において、Ｍ＝Ｎ＝３でありＫ＝２である。データリンク回路６０２は、送信キュー７０２−１〜７０２−３（まとめて送信キュー７０２）と、マルチプレクサ７０４−１および７０４−２（まとめてマルチプレクサ７０４）と、調停ロジック４０６とを含む。データリンク回路６０８はマルチプレクサ７０６−１〜７０６−３（まとめてマルチプレクサ７０６）を含む。送信キュー７０２−１〜７０２−３の入力はそれぞれソースポート７０８−１〜７０８−３（まとめてソースポート７０８）に結合される。マルチプレクサ７０６−１〜７０６−３の出力はそれぞれ宛先ポート７１０−１〜７１０−３（まとめて宛先ポート７１０）に結合される。マルチプレクサ７０４の制御入力は調停ロジック４０６の出力に結合される。調停ロジック４０６の入力は送信キュー７０２の出力に結合される。一例において、調停ロジック４０６は、プログラマブルファブリック４０４におけるようにＳｉＰ  ＩＯとは別に実現される。
【００４９】
動作時において、調停ロジック４０６は、Ｋ個の物理チャネルを通して送信されるパケットに宛先コンフリクトが生じないようにマルチプレクサ７０４を制御する。送信されている各パケットは宛先ポートを含む。調停ロジック４０６は、調停アルゴリズムを実行することにより、確実に、Ｋ個の物理チャネルを通して並列に送信されている２つのパケットが同一の宛先ポートを有することがないようにする。以下、調停アルゴリズムの例を説明する。
【００５０】
図８は、一例に係るＳｉＰブリッジのデータリンク層内における調停方法８００を示すフロー図である。方法８００は調停ロジック４０６によって実行することができる。方法８００はステップ８０２から始まり、ステップ８０２において、調停ロジック４０６はすべての宛先ポートを未使用としてマークする。図７の例において、宛先ポートは出力７１０−１〜７１０−３を含む。一般的には合計Ｎ個の宛先ポートがあればよく、対応する分散回路の入力チャネルごとに１つの宛先ポートがある。
【００５１】
ステップ８０４において、調停ロジック４０６は、スケジュール用のマルチプレクサを選択する。図７の例では、調停ロジック４０６によってスケジュールされることになる２つのマルチプレクサ７０４−１および７０４−２がある。一般的にはＫ個のマルチプレクサ７０４があればよく、物理チャネルごとに１つのマルチプレクサがある。
【００５２】
ステップ８０６において、調停ロジック４０６は送信準備ができている送信キューごとに宛先ポートを特定する。図７の例では３つの送信キュー７０２−１〜７０２−３がある。一般的にはＭ個の送信キューがあればよく、対応する集約回路の出力チャネルごとに１つの送信キューがある。送信キューが空でない場合、調停ロジック４０６はこの送信キューを送信準備ができているとみなすことができる。各送信キュー７０２は、特定の宛先ポートを有する１つ以上のパケットを格納する。調停ロジック４０６はこの（これらの）パケットを解析することによって宛先ポートを特定する。
【００５３】
ステップ８０８において、調停ロジック４０６は、送信のために未使用の宛先ポートをターゲットとする１つ以上の送信キューをスケジュールする。一例において、スケジュールは、最大マッチングアルゴリズムの変形を用いて並列に行なうことができる。送信キューが未使用の宛先ポートをターゲットとするパケットを含む場合、調停ロジック４０６は送信キューをホールドする。ステップ８１０において、調停ロジック４０６は、特定した宛先ポートを使用中としてマークする。ステップ８１２において、調停ロジックはスケジュールすべきマルチプレクサが他にあるか否かを判断する。ある場合、方法８００はステップ８０４に戻り次のマルチプレクサを選択する。そうでなければ、方法８００はステップ８０２に戻りすべての宛先ポートを未使用としてマークする。よって、調停ロジック４０６はスケジュールすべきマルチプレクサごとに（たとえば各マルチプレクサ７０４）ステップ８０４〜８１２を実行する。調停ロジック４０６は、ステップ８０２〜８１２を複数回のスケジュールラウンドにおいて実行する。このようにして、調停ロジック４０６は、物理チャネルを通して並列に送信されるパケットが異なる宛先ポートを有しマルチプレクサ７０６において輻輳またはコンフリクトが生じないようにするために、送信キュー７０２の出力をマルチプレクサ７０４が多重化するようマルチプレクサ７０４を制御するためのスケジュールを生成して実現する。
【００５４】
図９は、別の例に係るＳｉＰブリッジのデータリンク層内における調停方法９００を示すフロー図である。方法９００は調停ロジック４０６によって実行することができる。方法９００が方法８００と異なる点は、調停ロジック４０６が、宛先ポートのコンフリクトを処理することに加えて、送信キュー７０２各々に重みを割当て、この重みに基づいて、物理チャネルを通して送信するために送信キューからパケットを選択する点にある。
【００５５】
方法９００はステップ９０２から始まり、ステップ９０２において、調停ロジック４０６はすべての宛先ポートを未使用としてマークする。図７の例において、宛先ポートは出力７１０−１〜７１０−３を含む。一般的にはＮ個の宛先ポートがあればよく、対応する分散回路の入力チャネルごとに１つの宛先ポートがある。
【００５６】
ステップ９０４において、調停ロジック４０６は割当てた重みに基づいて各送信キューの不足カウントを更新する。即ち、調停ロジック４０６は重みを各送信キューに割当てることができる。送信キューのうちのいくつかはその他の送信キューと比べてより大きな重み（より高い優先順位）を有し得る。不足カウントを用いることにより、スケジューリング中の所定の時点で所定の送信キューから選択するパケットの数を制御する。
【００５７】
ステップ９０６において、調停ロジック４０６はスケジュール用のマルチプレクサを選択する。図７の例では、調停ロジック４０６によってスケジュールされることになる２つのマルチプレクサ７０４−１および７０４−２がある。一般的にはＫ個のマルチプレクサ７０４があればよく、物理チャネルごとに１つのマルチプレクサがある。
【００５８】
ステップ９０８において、調停ロジック４０６は送信キュー（たとえば送信キュー７０２のうちの１つ）を選択する。ステップ９１０において、調停ロジック４０６は、選択した送信キューの中のパケットがターゲットとする宛先ポートが未使用か否かを判断する。未使用でなければ、方法９００はステップ９０８に戻り調停ロジック４０６は次の送信キューを選択する。そうでなければ、方法９００はステップ９１２に進む。
【００５９】
ステップ９１２において、調停ロジック４０６は、特定した宛先ポートを使用中であるとしてマークする。ステップ９１４において、調停ロジック４０６は、送信のために選択した送信キューを、空になるまで、または対応する不足カウントがしきい値を満たすまで、スケジュールする。不足カウントが大きい場合、不足カウントが小さい場合よりも多くのパケットを所定の送信キューから選択することができる。
【００６０】
ステップ９１６において、調停ロジック４０６は、選択した送信キューが空か否かを判断する。空であれば、方法９００はステップ９１８に進み調停ロジック４０６は、選択した送信キューの不足カウントを初期値にリセットする。選択した送信キューが空でなければ、方法９００は代わりにステップ９２０に進む。
【００６１】
ステップ９２０において、調停ロジック４０６は、今回の繰返しにおいて処理すべき他の送信キューがあるか否かを判断する。すべての送信キューが処理済であれば、方法９００はステップ９２２に進む。そうでなければ、方法９００はステップ９０８に戻り次の送信キューを選択する。ステップ９２２において、調停ロジック４０６は、スケジュールすべきマルチプレクサが他にあるか否かを判断する。あれば、方法９００はステップ９０６に戻り次のマルチプレクサを選択する。そうでなければ、方法９００はステップ９０２に戻りすべての宛先ポートを未使用としてマークする。このように、調停ロジック４０６は、スケジュールすべきマルチプレクサごとに（たとえば各マルチプレクサ７０４）ステップ９０６〜９２２を実行する。調停ロジック４０６は、選択したマルチプレクサについて、送信キューごとにステップ９０２〜９２２を実行する。このようにして、調停ロジック４０６は、物理チャネルを通して並列に送信されるパケットが異なる宛先ポートを有しマルチプレクサ７０６において輻輳またはコンフリクトが生じないようにするために、送信キュー７０２の出力をマルチプレクサ７０４が多重化するようマルチプレクサ７０４を制御するためのスケジュールを生成して実現する。また、調停ロジック４０６は、重み付け手法を用いて、キューの優先順位および公平性を考慮する。
【００６２】
図１０は、一例に係るＩＣシステム内のプログラムＩＣからデータを送信する方法１０００を示すフロー図である。方法１０００をＩＣチップ１０１が実行することによってＩＣシステム４００のプログラマブルファブリック４０４からデータを送信してもよい。方法１０００はステップ１００２から始まり、ステップ１００２において、システムレベル相互接続３５０は、その集約チャネルを通してデータをＳｉＰ  ＩＯ１４０Ａに結合する。一例において、プログラマブルファブリック４０４は、このデータをパケットに分割する（ステップ１００４）に構成されたトランスポートロジック１１４を含む。
【００６３】
ステップ１００６において、ＳｉＰ  ＩＯ１４０Ａはこの集約チャネルからのデータを、ＳｉＰブリッジ１４４のより少ない数の物理チャネルを通して送信する。たとえば、ステップ１００８において、データリンクロジック１１６は、集約チャネルからのデータを送信キューに入れる。ステップ１０１０において、データリンクロジック１１６は、これらの送信キューを物理チャネルに多重化し、一方、調停ロジック４０６は宛先コンフリクトを処理する。ステップ１０１２において、調停ロジック４０６はまた、送信キューに重みを割当て、この重みに基づいて送信するパケットを選択してもよい。
【００６４】
ステップ１０１４において、ＩＣチップ１０３内のＳｉＰ  ＩＯ１４２はＳｉＰブリッジ１４４からデータを受信する。ステップ１０１６において、分散回路１２８は、ＳｉＰ  ＩＯ１４２からのデータを、分散チャネルを通してアプリケーションＩＯ１０７Ａに結合する。ステップ１０１８において、アプリケーションＩＯ１０７Ａは、このデータを消費するおよび／またはこのデータを外部回路に送信する。
【００６５】
図１１は、一例に係るＩＣシステム内のプログラマブルＩＣへのデータを受信する方法１１００を示すフロー図である。方法１１００をＩＣチップ１０１が実行することによってアプリケーション回路１０７からデータを受信してもよい。方法１１００はステップ１１０２から始まり、ステップ１１０２において、集約回路１２６は、アプリケーション回路１０７からのデータを、集約チャネルを通してＳｉＰ  ＩＯ１４２に結合する。この例において、ＳｉＰ  ＩＯ１４２は、データをパケットに分割する（ステップ１１０４）ように構成されたトランスポートロジック１２４を含む。
【００６６】
ステップ１１０６において、ＳｉＰ  ＩＯ１４２は、集約チャネルからのデータを、ＳｉＰブリッジ１４４のより少ない数の物理チャネルを通して送信する。たとえば、ステップ１１０８において、データリンクロジック１２２は、集約チャネルからのデータを送信キューに入れる。ステップ１１１０において、データリンクロジック１２２は、これらの送信キューを物理チャネルに多重化する一方で、宛先コンフリクトを処理する。ステップ１１１２において、データリンクロジック１２２はまた、送信キューに重みを割当て、この重みに基づいて送信するパケットを選択することができる。すなわち、データリンクロジック１２２は、調停ロジック４０６と同様の調停ロジックを含み得る。
【００６７】
ステップ１１１４において、ＩＣチップ１０１内のＳｉＰ  ＩＯ１４０Ａは、ＳｉＰブリッジ１４４からデータを受信する。ステップ１１１６において、システムレベル相互接続３５０は、ＳｉＰ  ＩＯ１４０Ａからのデータを、分散チャネルを通してプログラマブルファブリック４０４に結合する。ステップ１１１８において、プログラマブルファブリック４０４はこのデータを消費する。
【００６８】
図１２は、一実装例に係る物理層ロジック１２００を示すブロック図である。物理ロジック１２００は、複数のＳｅｒＤｅｓトランシーバ１２０１、たとえばＳｅｒＤｅｓトランシーバ１２０１−１〜１２０１Ｋを含む。各ＳｅｒＤｅｓトランシーバ１２０１は、Ｋ個の出力物理チャネルとＫ個の入力物理チャネルとをサポートする。各ＳｅｒＤｅｓトランシーバ１２０１は、複数の信号線、たとえば信号線１２０４−１〜１２０４−ｗを含むパラレルインターフェイス１２０４を含む。各ＳｅｒＤｅｓトランシーバ１２０１はシリアルインターフェイス１２０２を含む。パラレルインターフェイス１２０４は、上記のようにデータリンク回路の外部ポートに結合される。各ＳｅｒＤｅｓトランシーバ１２０１は、そのパラレル入力をシリアライズするかまたはそのシリアル入力をデシリアライズするように構成される。
【００６９】
先に述べたように、本明細書に記載のＩＣシステムは、特定の要求を満たす何らかの種類のＵＳＲ  ＳｅｒＤｅｓ技術を使用することができる。考慮すべき物理層のパラメータが３つあり、優先順位の順で、（１）１ピン当たりの帯域幅、（２）１ビット当たりの電力、および（３）面積である。性能指数（figure of merit：ＦｏＭ）を、最初の２つのファクタを含むいずれかの物理ロジックに対して定めることができる、すなわち、ＦｏＭ＝（１ピン当たりの帯域幅）／（１ビット当たりの電力）。一例において、本明細書に記載の物理ロジックは、２０（Ｇｂ／ｓ）（ｐＪ／ビット）以上のＦｏＭを含み得る。
【００７０】
図１３は、一例に係るプログラマブルファブリック４０４の横方向エッジに対するシステムレベル相互接続３５０の一体化を示すブロック図である。この例において、プログラマブルファブリック４０４は、相互接続素子３１１およびＣＬＥ３１２のファブリックを含む。各ＣＬＥ３１２はスライス３１２Ｌとスライス３１２Ｍとを含む。ＣＬＥスライス３１２Ｌおよび３１２Ｍは、ルックアップテーブル（lookup table：ＬＵＴ）、マルチプレクサ、フリップフロップ、組合わせロジック等を含み得る。相互絶族素子１１１は、（図３に示し先に説明した）ＣＬＥ３１２をプログラマブル相互接続に結合するように構成される。
【００７１】
システムレベル相互接続３５０は、プログラマブルファブリック４０４の横方向エッジ（横方向のファブリックエッジ１３０８）と、ワイヤトラック５０２とを含む。横方向のファブリックエッジ１３０８は、相互接続素子３１１ＡとＲＳＮ５０６とを含む。各ＲＳＮ５０６は、一対のＣＬＥ３１２Ｌおよび３１２Ｍに匹敵する領域を占める。各ＲＳＮ５０６は、ワイヤトラック５０２の一部に結合されたスイッチ回路を含む。具体的には、各ＲＳＮ５０６は、ワイヤトラック５０２を経由する隣りの回路への時計回り（clockwise：ＣＷ）リンク１３０４を含む。各ＲＳＮ５０６はまた、ワイヤトラック５０２を経由する隣りの回路への反時計回り（counter-clockwise：ＣＣＷ）リンク１３０２を含む。隣りの回路は、ＲＳＮ５０６の位置に応じて、別のＲＮ内のＲＳＮであるかまたはＳｉＰ  ＩＯ１４０Ａとなり得る。相互接続素子３１１Ａは、ＲＳＮ５０６をプログラマブルファブリック４０４のプログラマブル相互接続に結合するように構成される。
【００７２】
一例において、ワイヤトラック５０２は、上述の例で説明したように２５６のトラックを含む。１つのＲＳＮ５０６は、ＣＷ方向およびＣＣＷ方向の両方においてワイヤトラック５０２の一部に結合される。たとえば、ＲＳＮ５０６は、ＣＷ方向およびＣＣＷ方向の各々においてワイヤトラック５０２のうちの３２のトラックに結合することができる（たとえば合計６４リンク）。複数のＲＳＮ５０６は結合されてＲＮ５０４を形成し、ＲＮ５０４はワイヤトラック５０２すべてに結合される。たとえば、ＲＳＮ５０６が３２のワイヤトラックを制御するのであれば、ＲＮ５０４は８個のＲＳＮ５０６を含む。
【００７３】
図１３に示すように、ＲＳＮ５０６の１つ以上のセットをプログラマブルファブリック４０４に統合することにより、横方向のエッジに沿って１つ以上のＲＮを構成してもよい。たとえば、プログラマブルファブリック４０４の各ＦＳＲ５０８は１つのＲＮ５０４を含む。ＣＬＥ３１２の一部をファブリックエッジ１３０８から取除いてＲＳＮ５０６の回路に置換える。プログラマブル相互接続の一部（たとえば横方向の長いワイヤ）を取除いてワイヤトラック５０２を収容する。
【００７４】
図１４は、一例に係るプログラマブルファブリック４０４の縦方向エッジに対するシステムレベル相互接続３５０の一体化を示すブロック図である。この例において、プログラマブルファブリック４０４は、相互接続素子１１１およびＣＬＥ３１２のファブリックを含む。各ＣＬＥ３１２はスライス３１２Ｌとスライス３１２Ｍとを含む。ＣＬＥスライス３１２Ｌおよび３１２Ｍは、ルックアップテーブル（ＬＵＴ）、マルチプレクサ、フリップフロップ、組合わせロジック等を含み得る。相互絶族素子３１１は、（図３に示し先に説明した）ＣＬＥ３１２をプログラマブル相互接続に結合するように構成される。
【００７５】
システムレベル相互接続３５０は、プログラマブルファブリック４０４の縦方向エッジ（縦方向のファブリックエッジ１４０８）と、ワイヤトラック５０２とを含む。縦方向のファブリックエッジ１４０８は、相互接続素子３１１ＡとＲＳＮ５０６とを含む。各ＲＳＮ５０６は、一対のＣＬＥ３１２Ｌおよび３１２Ｍに匹敵する領域を占める。各ＲＳＮ５０６は、ワイヤトラック５０２の一部に結合されたスイッチ回路を含む。具体的には、各ＲＳＮ５０６は、ワイヤトラック５０２を経由する隣りの回路へのＣＷリンク１４０４を含む。各ＲＳＮ５０６はまた、ワイヤトラック５０２を経由する隣りの回路へのＣＣＷリンク１４０２を含む。隣りの回路は、ＲＳＮ５０６の位置に応じて、別のＲＮ内のＲＳＮであるかまたはＳｉＰ  ＩＯ１４０Ａとなり得る。相互接続素子３１１Ａは、ＲＳＮ５０６をプログラマブルファブリック４０４のプログラマブル相互接続に結合するように構成される。
【００７６】
一例において、ワイヤトラック５０２は、上述の例で説明したように２５６のトラックを含み得る。１つのＲＳＮ５０６は、ＣＷ方向およびＣＣＷ方向の両方においてワイヤトラック５０２の一部に結合される。たとえば、ＲＳＮ５０６は、ＣＷ方向およびＣＣＷ方向の各々においてワイヤトラック５０２のうちの３２のトラックに結合することができる（たとえば合計６４リンク）。複数のＲＳＮ５０６は結合されてＲＮ５０４を形成し、ＲＮ５０４はワイヤトラック５０２すべてに結合される。たとえば、ＲＳＮ５０６が３２のワイヤトラックを制御するのであれば、ＲＮ５０４は８個のＲＳＮ５０６を含む。
【００７７】
図１４に示すように、ＲＳＮ５０６の１つ以上のセットをプログラマブルファブリック４０４に統合することにより、縦方向のエッジに沿って１つ以上のＲＮを構成してもよい。たとえば、プログラマブルファブリック４０４の各ＦＳＲ５０８は、その縦方向エッジのうちの一方または双方に沿って１つのＲＮ５０４を含む。ＣＬＥ３１２の一部を縦方向のファブリックエッジ１４０８から取除いてＲＳＮ５０６の回路に置換える。プログラマブル相互接続の一部（たとえば縦方向の長いワイヤ）を取除いてワイヤトラック５０２を収容する。
【００７８】
図１５は、一例に係るＲＳＮ５０６を示すブロック図である。ＲＳＮ５０６は、アービタ１５０２と、バッファ１５０４と、フリップフロップ１５０６と、フリップフロップ１５０８と、バッファ１５１０と、バッファ１５１２と、フリップフロップ１５１４と、マルチプレクサ１５１６と、マルチプレクサ１５１８と、マルチプレクサ１５２０とを含む。バッファ１５１０は、（たとえば同一のＲＮまたは隣接するＲＮのいずれかにおける）左側ＲＳＮから１６ビット入力を受ける。同様に、バッファ１５０４は、（たとえば同一のＲＮまたは隣接するＲＮのいずれかにおける）右側ＲＳＮから、またはＳｉＰ  ＩＯ１４０から、１６ビット入力を受ける。バッファ１５１０およびバッファ１５０４の出力はマルチプレクサ１５１８の入力に結合される。マルチプレクサ１５１８の出力はフリップフロップ１５１４の入力に結合される。フリップフロップ１５１４は相互接続素子３１１Ａに結合された１６ビット出力を含む。
【００７９】
バッファ１５１２は相互接続素子３１１Ａに結合された１６ビット入力を含む。バッファ１５１２の出力は、マルチプレクサ１５２０の入力およびマルチプレクサ１５１６の入力に結合される。マルチプレクサ１５２０のもう１つの入力はバッファ１５０４の出力に結合される。マルチプレクサ１５１６のもう１つの入力はバッファ１５１０の出力に結合される。マルチプレクサ１５２０の出力はフリップフロップ１５０８の入力に結合される。マルチプレクサ１５１６の出力はフリップフロップ１５０６の入力に結合される。フリップフロップ１５０８は左側のＲＳＮに結合された１６ビット出力を含む。フリップフロップ１５０６は右側のＲＳＮまたはＳｉＰ  ＩＯ１４０Ａに結合された１６ビット出力を含む。マルチプレクサ１５１６、１５１８、および１５２０の制御入力はアービタ１５０２の出力に結合される。アービタ１５０２の入力はバッファ１５０４、１５１０、および１５１２の出力に結合される。
【００８０】
動作時において、ＲＳＮ５０６は、バッファ１５１２を用いて相互接続素子３１１Ａを通してプログラマブルファブリック４０４から与えられた入力をバッファする。アービタ１５０２は、バッファされた入力を、フリップフロップ１５０８またはフリップフロップ１５０６いずれかにルーティングする。フリップフロップ１５０６はＣＷリンクを通してワイヤトラック５０２に結合される。フリップフロップ１５０８はＣＣＷリンクを通してワイヤトラック５０２に結合される。フリップフロップ１５０６および１５０８は、送信するデータを隣接する回路（たとえば隣接するＲＳＮまたはＳｉＰ  ＩＯ１４０Ａ）に登録する。ＲＳＮ５０６はまた、バッファ１５０４および１５１０を用いて隣接する回路（たとえば隣接するＲＳＮまたはＳｉＰ  ＩＯ１４０Ａ）からの入力をバッファする。バッファ１５０４はＣＣＷリンクを通してワイヤトラック５０２に結合される。バッファ１５１０はＣＷリンクを通してワイヤトラック５０２に結合される。アービタ１５０２は、バッファされた入力を、バッファ１５０４またはバッファ１５１０いずれかからフリップフロップ１５１４にルーティングする。フリップフロップ１５１４は、相互接続素子３１１Ａを通して、登録された出力をプログラマブルファブリック４０４に与える。このように、ＲＳＮ５０６は１６ビットスイッチを実現する。その他の例において、ＲＳＮ５０４は、幅が１６ビットよりも小さいまたは大きいスイッチを実現することができる。図１５に示すＲＳＮ５０６のレイアウトにより、プログラマブルファブリック４０４の横方向エッジまたは縦方向エッジいずれかに沿って同じＲＳＮの実装が可能である。
【００８１】
図１６Ａ〜図１６Ｆは、システムレベル相互接続３５０のＳＩＲ実装の例を示す。図１６Ａに示すように、ワイヤトラック５０２は、プログラマブルファブリック４０４の周囲のトラックのリングを含む。ＲＮ５０４は、プログラマブルファブリック４０４の横方向の２つのエッジと縦方向の２つのエッジとに沿って一体化されている。ワイヤトラック５０２はＲＮ５０４とＳｉＰ  ＩＯ１４０Ａとの間に結合される。プログラマブルファブリック４０４内で構成されている回路１６０２は、上記エッジのうちのいずれかに沿って配置されたＲＮ５０４のうちのいずれかを通してＳｉＰ  ＩＯ１５０Ａに結合することができる。
【００８２】
図１６Ｂに示すように、ワイヤトラックの別の実装例（ワイヤトラック５０２Ａ）は、プログラマブルファブリックの周りのトラックの部分的なリングを含む。示されている例において、ワイヤトラック５０２Ａは、プログラマブルファブリック４０４の横方向の２つのエッジおよび縦方向のエッジを囲んでいる。その他の例において、ワイヤトラック５０２Ａは、プログラマブルファブリック４０４の縦方向の２つのエッジと横方向のエッジとを囲んでいてもよい。さらに他の例において、ワイヤトラック５０２Ａは、縦方向の１つのエッジおよび横方向の１つのエッジに隣接していてもよい。ワイヤトラック５０２ＡはＲＮ５０４とＳｉＰ  ＩＯ１４０Ａとの間に結合される。プログラマブルファブリック４０４内で構成されている回路１６０４は、ＲＮ５０４のうちのいずれかを通してＳｉＰ  ＩＯ１４０Ａに結合することができる。
【００８３】
図１６Ｃに示すように、ワイヤトラックの別の実装例（ワイヤトラック５０２Ｂ）は、プログラマブルファブリック４０４の横方向の１つのエッジに隣接するトラックを含む。ワイヤトラック５０２ＢはＲＮ５０４とＳｉＰ  ＩＯ１４０Ａとの間に結合される。プログラマブルファブリック４０４内で構成されている回路１６０６は、ＲＮ５０４のうちのいずれかを通してＳｉＰ  ＩＯ１４０Ａに結合することができる。
【００８４】
図１６Ｄに示すように、ワイヤトラックの別の実装例（ワイヤトラック５０２Ｃ）は、プログラマブルファブリック４０４の縦方向の１つのエッジに隣接するトラックを含む。ワイヤトラック５０２ＣはＲＮ５０４とＳｉＰ  ＩＯ１４０Ａとの間に結合される。プログラマブルファブリック４０４内で構成されている回路１６０８は、ＲＮ５０４のうちのいずれかを通してＳｉＰ  ＩＯ１４０Ａに結合することができる。
【００８５】
図１６Ｅに示すように、ＳＩＲの別の実装例は２セットのワイヤトラック５０２Ａおよび５０２Ｃを含む。ワイヤトラック５０２Ａは、プログラマブルファブリック４０４の１つ以上の辺（たとえば図示のように横方向の２つの辺および縦方向の１つの辺）に隣接している。ワイヤトラック５０２Ｃは、プログラマブルファブリック４０４の１つ以上の辺（たとえば図示のように縦方向の１つの辺）に隣接している。ワイヤトラック５０２ＡはＲＮ５０４とＳｉＰ  ＩＯ１４０Ａとの間に結合される。ワイヤトラック５０２Ｃは別の１セットのＲＮ５０４と別のＳｉＰ  ＩＯ回路１０４Ｂとの間に結合される。プログラマブルファブリック４０４内で構成されている回路１６１０は、ワイヤトラック５０２Ａに結合されているＲＮ５０４のうちのいずれかを通してＳｉＰ  ＩＯ１４０Ａに結合することができる。プログラマブルファブリック４０４内で構成されている回路１６１２は、ワイヤトラック５０２Ｃに結合されているＲＮ５０４のうちのいずれかを通してＳｉＰ  ＩＯ１４０Ｂに結合することができる。
【００８６】
図１６Ｆに示すように、ＳＩＲの別の実装例はワイヤトラック５０２（たとえばワイヤトラック５０２−１〜５０２−４）のメッシュを含む。各セットのワイヤトラック５０２はプログラマブルファブリック４０４の１つ以上のＦＳＲ５０８を囲んでいる。各ＦＳＲ５０８は、その１つ以上のエッジに沿って配置されたＲＮ５０４を含む。ＲＮ５０４はそれぞれのワイヤトラック５０２−１〜５０２−４に結合される。ワイヤトラック５０２のメッシュはＳｉＰ  ＩＯ１４０Ａに結合される。ＦＳＲ５０８のうちのいずれかの内部で構成されている回路（図示せず）は、１つ以上のＲＮ５０４と１つ以上のワイヤトラック５０２−１〜５０２−４とを通してＳｉＰ  ＩＯ１４０Ａに結合することができる。４つのワイヤトラックリングが示されているが、ＳＩＲは４つよりも多いまたは少ないワイヤトラックリングを含み得る。
【００８７】
図１７は、一例に係るＩＣシステム内のプログラマブルＩＣからデータを送信する方法１７００を示すフロー図である。方法１７００をＩＣチップ１０１が実行することによってＩＣシステム４００のプログラマブルファブリック４０４からデータを送信してもよい。方法１７００はステップ１７０２から始まり、ステップ１７０２において、プログラマブルファブリック内の回路は、プログラマブルファブリックのエッジと一体化されたリングノード５０４にデータを結合する。ステップ１７０３において、リングノード５０４はこのデータをワイヤトラック５０２のチャネルを通してＳｉＰ  ＩＯ１４０Ａに結合する。一例において、プログラマブルファブリック４０４は、データをパケットに分割する（ステップ１７０４）ように構成されたトランスポートロジック１１４を含む。
【００８８】
ステップ１７０６において、ＳｉＰ  ＩＯ１４０Ａは、バスチャネルからのデータを、ＳｉＰブリッジ１４４のより少ない数の物理チャネルを通して送信する。たとえば、ステップ１７０８において、データリンクロジック１１６はバスチャネルからのデータを送信キューに入れる。ステップ１７１０において、データリンクロジック１１６がこれらの送信キューを物理チャネルに多重化する一方で、調停ロジック４０６は宛先コンフリクトを処理する。ステップ１７１２において、調停ロジック４０６はまた、送信キューに重みを割当て、この重みに基づいて送信するパケットを選択する。
【００８９】
ステップ１７１４において、ＩＣチップ１０３内のＳｉＰ  ＩＯ１４２はＳｉＰブリッジ１４４からデータを受信する。ステップ１７１６において、分散回路１２８はＳｉＰ  ＩＯ１４２からのデータを分散チャネルを通してアプリケーションＩＯ１０７Ａに結合する。ステップ１７１８において、アプリケーションＩＯ１０７Ａはデータを外部回路に送信する。
【００９０】
その他いくつかの例は次の通りである。
一例において、集積回路（ＩＣ）システムを提供することができる。このようなシステムはパッケージ基板を含み得る。パッケージ基板は、この基板上に設けられたプログラマブル集積回路（ＩＣ）チップとコンパニオンＩＣチップとを有する。プログラマブルＩＣチップはプログラマブルファブリックを含み、コンパニオンＩＣチップはアプリケーション回路を含む。上記システムはさらにシステムインパッケージ（ＳｉＰ）ブリッジを含み得る。ＳｉＰブリッジは、プログラマブルＩＣチップ内に配置された第１のＳｉＰ  ＩＯ回路と、コンパニオンＩＣチップ内に配置された第２のＳｉＰ  ＩＯ回路と、パッケージ基板上において第１のＳｉＰ  ＩＯ回路と第２のＳｉＰ  ＩＯ回路とを電気的に結合する導電性相互接続とを含む。システムはさらに、プログラマブルＩＣチップ内においてプログラマグルファブリックと第１のＳｉＰ  ＩＯ回路との間に配置された第１の集約回路および第２の分散回路と、コンパニオンＩＣチップ内においてアプリケーションＩＯと第２のＳｉＰ  ＩＯ回路との間に配置された第２の集約回路および第２の分散回路とを含む。
【００９１】
このようなＩＣシステムにおいて、第１および第２のＳｉＰ  ＩＯ回路は、第１および第２の集約回路のマルチチャネル出力をそれぞれ、導電性相互接続において実現された第１の複数の物理チャネルに多重化し、導電性相互接続において実現された第２の複数の物理チャネルからの入力をそれぞれ、第１および第２の分散回路のマルチチャネル入力に多重分離するように構成されてもよい。
【００９２】
このようなＩＣシステムにおいて、第１の集約回路および第１の分散回路は、プログラマブルファブリックのプログラマブル相互接続とＳｉＰ  ＩＯ回路との間に結合されたシステムレベル相互接続を含み得る。
【００９３】
このようなＩＣシステムにおいて、システムレベル相互接続はネットワークオンチップ（ＮｏＣ）を含み得る。
【００９４】
このようなＩＣシステムにおいて、プログラマブルＩＣチップは、ＳｉＰブリッジとは別に、コンパニオンＩＣチップへの直接接続を含み得る。
【００９５】
このようなＩＣシステムにおいて、プログラマブルＩＣチップは調停ロジックを含み得るものであり、第１のＳｉＰ  ＩＯ回路はデータリンク回路とトランシーバ回路とを含み得る。データリンク回路の内部インターフェイスは第１の集約回路および第１の分散回路に結合されてもよく、データリンク回路の外部インターフェイスはトランシーバ回路の内部インターフェイスに結合されてもよく、トランシーバ回路の外部インターフェイスは導電性相互接続に結合されてもよく、データリンク回路の制御インターフェイスは調停ロジックに結合されてもよい。
【００９６】
このようなＩＣシステムにおいて、調停ロジックはプログラマブルＩＣチップのプログラマブルファブリック内で実現されてもよい。
【００９７】
このようなＩＣシステムにおいて、プログラマブルＩＣチップは、第１の集約回路に送信されるデータをパケット化し第１の分散回路から受信したデータをデパケット化するように構成されたトランスポートロジックを含み得る。
【００９８】
このようなＩＣシステムにおいて、トランスポートロジックはプログラマブルＩＣチップのプログラマブルファブリック内で実現されてもよい。
【００９９】
別の例においてプログラマブルＩＣを提供することができる。このようなプログラマブルＩＣは、外部導電性相互接続を通してコンパニオンＩＣに結合されるように構成されたシステムインパッケージ（ＳｉＰ）入出力（ＩＯ）回路と、アプリケーション回路のうちの少なくとも一部分を含まないプログラマブルファブリックと、プログラマブルファブリックとＳｉＰ  ＩＯ回路との間に結合された集約回路および分散回路とを含み得る。
【０１００】
このようなプログラマブルＩＣにおいて、集約回路および分散回路は、プログラマブルファブリックのプログラマブル相互接続とＳｉＰ  ＩＯ回路との間に結合されたシステムレベル相互接続を含み得る。
【０１０１】
このようなプログラマブルＩＣにおいて、システムレベル相互接続はネットワークオンチップ（ＮｏＣ）を含み得る。
【０１０２】
このようなプログラマブルＩＣにおいて、プログラマブルファブリックは、ＳｉＰ  ＩＯ回路とは別に、コンパニオンＩＣに直接接続されてもよい。
【０１０３】
このようなＩＣにおいて、プログラマブルファブリックは調停ロジックを実現するように構成されてもよく、ＳｉＰ  ＩＯ回路はデータリンク回路とトランシーバ回路とを含み得る。データリンク回路の内部インターフェイスは、集約回路および分散回路に結合されてもよく、データリンク回路の外部インターフェイスはトランシーバ回路の内部インターフェイスに結合されてもよく、トランシーバ回路の外部インターフェイスは外部導電性相互接続に結合されてもよく、データリンク回路の制御インターフェイスは調停ロジックに結合されてもよい。
【０１０４】
このようなプログラマブルＩＣにおいて、プログラマブルファブリックは、集約回路に送信されるデータをパケット化し分散回路から受信されたデータをデパケット化するトランスポートロジックを実現するように構成されてもよい。
【０１０５】
別の例において、ＩＣシステム内のプログラマブルＩＣからデータを送信する方法を提供することができる。この方法は、プログラマブルＩＣ内の集約回路の複数のチャネルを通してデータを第１のシステムインパッケージ（ＳｉＰ）ＩＯ回路に結合するステップと、これら複数のチャネルからのデータを、プログラマブルＩＣとコンパニオンＩＣとの間のより少ない数の物理チャネルを通して送信するステップと、コンパニオンＩＣの第２のＳｉＰ  ＩＯ回路において複数の物理チャネルからデータを受信するステップと、第２のＳｉＰ  ＩＯ回路からのデータを、コンパニオンＩＣ内の分散回路の複数のチャネルを通してコンパニオンＩＣ内のアプリケーション回路に結合するステップとを含み得る。
【０１０６】
あるこのような方法において、データはパケットに分割されてもよい。
あるこのような方法において、第２のＳｉＰ  ＩＯ回路は、分散回路の複数のチャネルそれぞれに結合された複数の内部出力ポートを含み得る。パケットは各々、複数の内部出力ポートから選択された宛先ポートを有する。
【０１０７】
あるこのような方法において、送信するステップは、集約回路の複数のチャネルからのデータを、複数の送信キューそれぞれに入れるステップと、複数の物理チャネルを通して並列に送信されるパケットが異なる宛先ポートを有するように、送信キューの出力を複数の物理チャネルに多重化するステップとを含み得る。
【０１０８】
あるこのような方法において、多重化するステップはさらに、複数の送信キュー各々に重みを割当てるステップと、この重みに基づいて、複数の物理チャネルを通して送信するパケットを送信キューから選択するステップとを含み得る。
【０１０９】
別の例において、プログラマブルＩＣを提供することができる。このようなプログラマブルＩＣは、プログラマブル相互接続を有するプログラマブルファブリックと、プログラマグルファブリックの少なくとも１つのエッジに隣接するワイヤトラックと、プログラマブルファブリックの少なくとも１つのエッジと一体化された少なくとも１つのリングノードとを含み、上記少なくとも１つのリングノードはプログラマブル相互接続とワイヤトラックとの間に結合され、さらに、ワイヤトラックに結合されたシステムインパッケージ（ＳｉＰ）入出力（ＩＯ）回路を含む。
【０１１０】
このようなプログラマブルＩＣにおいて、ワイヤトラックは、プログラマブルファブリックの２つの横方向エッジと２つの縦方向エッジとに隣接し、上記少なくとも１つのリングノードは、プログラマブルファブリックの２つの横方向エッジおよび２つの縦方向エッジと一体化された複数のリングノードを含み得る。
【０１１１】
このようなプログラマブルＩＣにおいて、ワイヤトラックはプログラマブルファブリックの３つのエッジに隣接していてもよく、上記少なくとも１つのリングノードは、プログラマブルファブリックの上記３つのエッジと一体化された複数のリングノードを含み得る。
【０１１２】
このようなプログラマブルＩＣにおいて、ワイヤトラックは第１のワイヤトラックを含み得る。上記少なくとも１つのリングノードは少なくとも１つの第１のリングノードを含み得る。プログラマブルＩＣはさらに、プログラマブルファブリックの少なくとも１つのエッジに隣接する第２のワイヤトラックと、プログラマブルファブリックの少なくとも１つのエッジと一体化された少なくとも１つの第２のリングノードとを含み得る。上記少なくとも１つの第２のリングノードはプログラマブル相互接続と第２のワイヤトラックとの間に結合される。
【０１１３】
このようなプログラマブルＩＣにおいて、ＳｉＰ  ＩＯ回路は第１のＳｉＰ  ＩＯ回路を含み得る。プログラマブルＩＣはさらに、第２のワイヤトラックに結合された第２のＳｉＰ  ＩＯ回路を含み得る。
【０１１４】
このようなプログラマブルＩＣにおいて、少なくとも１つのリングノードは各々、複数のリングサブノードを含み得る。各リングサブノードはプログラマブルファブリック内において同一のレイアウトを有する。
【０１１５】
このようなプログラマブルＩＣにおいて、複数のリングサブノードは各々、プログラマブルファブリックの相互接続素子に結合されたスイッチ回路を含み得る。
【０１１６】
別の例において、別のＩＣシステムを提供することができる。このようなＩＣはパッケージ基板を含み得る。パッケージ基板は、この基板上に設けられたプログラマブル集積回路（ＩＣ）チップとコンパニオンＩＣチップとを有する。プログラマブルＩＣチップはプログラマブルファブリックを含み、コンパニオンＩＣチップはアプリケーション回路を含む。ＩＣシステムはさらにシステムインパッケージ（ＳｉＰ）ブリッジを含み得る。ＳＩＰブリッジは、プログラマブルＩＣチップに配置された第１のＳｉＰ  ＩＯ回路と、コンパニオンＩＣチップに配置された第２のＳｉＰ  ＩＯ回路と、パッケージ基板上におい第１のＳｉＰ  ＩＯ回路と第２のＳｉＰ  ＩＯ回路とを電気的に結合する導電性相互接続とを含む。プログラマブルＩＣチップは、プログラマブル相互接続を有するプログラマブルファブリックと、プログラマブルファブリックの少なくとも１つのエッジに隣接するワイヤトラックとを含み、ワイヤトラックは第１のＳｉＰ  ＩＯ回路に結合される。プログラマブルＩＣチップはさらに、プログラマブルファブリックの少なくとも１つのエッジと一体化された少なくとも１つのリングノードを含む。この少なくとも１つのリングノードはプログラマブル相互接続とワイヤトラックとの間に結合される。
【０１１７】
あるこのようなＩＣにおいて、ワイヤトラックは、プログラマブルファブリックの２つの横方向エッジと２つの縦方向エッジとに隣接していてもよく、上記少なくとも１つのリングノードは、プログラマブルファブリックの２つの横方向エッジおよび２つの縦方向エッジと一体化された複数のリングノードを含み得る。
【０１１８】
あるこのようなＩＣにおいて、ワイヤトラックはプログラマブルファブリックの３つのエッジに隣接していてもよく、上記少なくとも１つのリングノードは、プログラマブルファブリックの上記３つのエッジと一体化された複数のリングノードを含み得る。
【０１１９】
あるこのようなＩＣにおいて、ワイヤトラックは第１のワイヤトラックを含み得る。上記少なくとも１つのリングノードは少なくとも１つの第１のリングノードを含み得る。プログラマブルＩＣはさらに、プログラマブルファブリックの少なくとも１つのエッジに隣接する第２のワイヤトラックと、プログラマブルファブリックの少なくとも１つのエッジと一体化された少なくとも１つの第２のリングノードとを含み得る。上記少なくとも１つの第２のリングノードはプログラマブル相互接続と第２のワイヤトラックとの間に結合される。
【０１２０】
あるこのようなＩＣにおいて、ＳｉＰ  ＩＯ回路は第１のＳｉＰ  ＩＯ回路を含み得る。プログラマブルＩＣはさらに、第２のワイヤトラックに結合された第２のＳｉＰ  ＩＯ回路を含み得る。
【０１２１】
あるこのようなＩＣにおいて、少なくとも１つのリングノードは各々、複数のリングサブノードを含み得る。各リングサブノードはプログラマブルファブリック内において同一のレイアウトを有する。
【０１２２】
あるこのようなＩＣにおいて、複数のリングサブノードは各々、プログラマブルファブリックの相互接続素子に結合されたスイッチ回路を含み得る。
【０１２３】
別の例において、プログラマブルＩＣからデータを送信する方法を提供することができる。このような方法は、プログラマブルＩＣのプログラマブルファブリックのエッジと一体化されたリングノードにデータを結合するステップを含み得る。このリングノードはプログラマブルファブリックのプログラマブル相互接続と、上記エッジに隣接するワイヤトラックとの間に結合される。上記方法はさらに、ワイヤトラックの複数のチャネルを通してリングノードからのデータを第１のシステムインパッケージ（ＳｉＰ）ＩＯ回路に結合するステップと、上記複数のチャネルからのデータを、プログラマブルＩＣとコンパニオンＩＣとの間のより少ない数の物理チャネルを通して送信するステップとを含み得る。
【０１２４】
このような方法は、コンパニオンＩＣ内の第２のＳｉＰ  ＩＯ回路において上記複数の物理チャネルからのデータを受信するステップと、第２のＳｉＰ  ＩＯ回路からのデータを、コンパニオンＩＣ内の分散回路の複数のチャネルを通してコンパニオンＩＣ内のアプリケーション回路に結合するステップとを含み得る。
【０１２５】
あるこのような方法において、データはパケットに分割されてもよい。
あるこのような方法において、第２のＳｉＰ  ＩＯ回路は、分散回路の複数のチャネルそれぞれに結合された複数の内部出力ポートを含み得る。各パケットは、上記複数の内部出力ポートから選択された宛先ポートを有する。
【０１２６】
あるこのような方法において、送信するステップは、上記複数のチャネルからのデータを複数の送信キューそれぞれに入れるステップと、複数の物理チャネルを通して並列に送信されるパケットが異なる宛先ポートを有するように、上記送信キューの出力を複数の物理チャネルに多重化するステップを含み得る。
【０１２７】
あるこのような方法において、多重化するステップはさらに、複数の送信キュー各々に重みを割当てるステップと、この重みに基づいて複数の物理チャネルを通して送信するパケットを送信キューから選択するステップとを含み得る。
【０１２８】
これまでの説明は特定の例に向けられているが、その他のおよびさらに追加の例がその基本的な範囲から逸脱することなく考案され得る。その範囲は以下の特許請求の範囲によって定められる。
【図１】
2019507452.tif 000003
【図２】
2019507452.tif 000004
【図３】
2019507452.tif 000005
【図４】
2019507452.tif 000006
【図５】
2019507452.tif 000007
【図６】
2019507452.tif 000008
【図７】
2019507452.tif 000009
【図８】
2019507452.tif 000010
【図９】
2019507452.tif 000011
【図１０】
2019507452.tif 000012
【図１１】
2019507452.tif 000013
【図１２】
2019507452.tif 000014
【図１３】
2019507452.tif 000015
【図１４】
2019507452.tif 000016
【図１５】
2019507452.tif 000017
【図１６Ａ】
2019507452.tif 000018
【図１６Ｂ】
2019507452.tif 000019
【図１６Ｃ】
2019507452.tif 000020
【図１６Ｄ】
2019507452.tif 000021
【図１６Ｅ】
2019507452.tif 000022
【図１６Ｆ】
2019507452.tif 000023
【図１７】
2019507452.tif 000024
【手続補正書】
【提出日】平成30年10月2日(2018.10.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）システムであって、
パッケージ基板を備え、前記パッケージ基板は、前記パッケージ基板上に設けられたプログラマブル集積回路（ＩＣ）チップとコンパニオンＩＣチップとを有し、前記プログラマブルＩＣチップはアプリケーション回路を有するプログラマブルファブリックを含み、前記コンパニオンＩＣチップはアプリケーション回路を含み、前記ＩＣシステムはさらに、
システムインパッケージ（ＳｉＰ）ブリッジを備え、前記システムインパッケージブリッジは、前記プログラマブルＩＣチップ内に配置された第１のＳｉＰ  ＩＯ回路と、前記コンパニオンＩＣチップ内に配置された第２のＳｉＰ  ＩＯ回路と、前記パッケージ基板上において前記第１のＳｉＰ  ＩＯ回路と前記第２のＳｉＰ  ＩＯ回路とを電気的に結合する導電性相互接続とを含み、前記ＩＣシステムはさらに、
前記プログラマブルＩＣチップ内において前記プログラマブルファブリックと前記第１のＳｉＰ  ＩＯ回路との間に結合された第１の集約回路および第１の分散回路を備え、前記第１の集約回路は、前記プログラマブルファブリック内の前記アプリケーション回路の出力を前記第１のＳｉＰ  ＩＯ回路の内部入力に選択的に結合し、前記第１の分散回路は、前記第１のＳｉＰ ＩＯ回路の内部出力を前記プログラマブルファブリック内の前記アプリケーション回路の入力に選択的に結合し、前記ＩＣシステムはさらに、
前記コンパニオンＩＣチップ内において前記アプリケーションＩＯと前記第２のＳｉＰ  ＩＯ回路との間に結合された第２の集約回路および第２の分散回路を備え、前記第２の集約回路は、前記アプリケーションＩＯの出力を前記第２のＳｉＰ  ＩＯ回路の内部入力に選択的に結合し、前記第２の分散回路は、前記第２のＳｉＰ  ＩＯ回路の内部出力を前記アプリケーションＩＯの入力に結合し、
前記第１のＳｉＰ  ＩＯ回路および前記第２のＳｉＰ  ＩＯ回路は、
それぞれ前記第１の集約回路および前記第２の集約回路のマルチチャネル出力を、前記導電性相互接続において実現された第１の複数の物理チャネル上に多重化するように構成され、かつ、
前記導電性相互接続において実現された第２の複数のチャネルからの入力を、それぞれ前記第１の分散回路および前記第２の分散回路のマルチチャネル入力上に多重分離するように構成される、集積回路システム。
【請求項２】
前記第１の集約回路および前記第１の分散回路は、前記プログラマブルファブリックのプログラマブル相互接続と前記ＳｉＰ  ＩＯ回路との間に結合されたシステムレベル相互接続を含む、請求項１に記載のＩＣシステム。
【請求項３】
前記システムレベル相互接続はネットワークオンチップ（ＮｏＣ）を含む、請求項２に記載のＩＣシステム。
【請求項４】
前記プログラマブルＩＣチップは、前記ＳｉＰブリッジとは別に、前記コンパニオンＩＣチップへの直接接続を含む、請求項１に記載のＩＣシステム。
【手続補正書】
【提出日】平成30年10月25日(2018.10.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）システムであって、
パッケージ基板を備え、前記パッケージ基板は、前記パッケージ基板上に設けられたプログラマブル集積回路（ＩＣ）チップとコンパニオンＩＣチップとを有し、前記プログラマブルＩＣチップはアプリケーション回路を有するプログラマブルファブリックを含み、前記コンパニオンＩＣチップはアプリケーション回路を含み、前記ＩＣシステムはさらに、
システムインパッケージ（ＳｉＰ）ブリッジを備え、前記システムインパッケージブリッジは、前記プログラマブルＩＣチップ内に配置された第１のＳｉＰ  ＩＯ回路と、前記コンパニオンＩＣチップ内に配置された第２のＳｉＰ  ＩＯ回路と、前記パッケージ基板上において前記第１のＳｉＰ  ＩＯ回路と前記第２のＳｉＰ  ＩＯ回路とを電気的に結合する導電性相互接続とを含み、前記ＩＣシステムはさらに、
前記プログラマブルＩＣチップ内において前記プログラマブルファブリックと前記第１のＳｉＰ  ＩＯ回路との間に結合された第１の集約回路および第１の分散回路を備え、前記第１の集約回路は、前記プログラマブルファブリック内の前記アプリケーション回路の出力を前記第１のＳｉＰ  ＩＯ回路の内部入力に選択的に結合し、前記第１の分散回路は、前記第１のＳｉＰ  ＩＯ回路の内部出力を前記プログラマブルファブリック内の前記アプリケーション回路の入力に選択的に結合し、前記ＩＣシステムはさらに、
前記コンパニオンＩＣチップ内において前記アプリケーション回路と前記第２のＳｉＰ  ＩＯ回路との間に結合された第２の集約回路および第２の分散回路を備え、前記第２の集約回路は、前記アプリケーション回路の出力を前記第２のＳｉＰ  ＩＯ回路の内部入力に選択的に結合し、前記第２の分散回路は、前記第２のＳｉＰ  ＩＯ回路の内部出力を前記アプリケーション回路の入力に選択的に結合し、
前記第１のＳｉＰ  ＩＯ回路および前記第２のＳｉＰ  ＩＯ回路は、
それぞれ前記第１の集約回路および前記第２の集約回路のマルチチャネル出力を、前記導電性相互接続において実現された第１の複数の物理チャネル上に多重化するように構成され、かつ、
前記導電性相互接続において実現された第２の複数の物理チャネルからの入力を、それぞれ前記第１の分散回路および前記第２の分散回路のマルチチャネル入力上に多重分離するように構成される、集積回路システム。
【請求項２】
前記第１の集約回路および前記第１の分散回路は、前記プログラマブルファブリックのプログラマブル相互接続と前記第１のＳｉＰ  ＩＯ回路との間に結合されたシステムレベル相互接続を含む、請求項１に記載のＩＣシステム。
【請求項３】
前記システムレベル相互接続はネットワークオンチップ（ＮｏＣ）を含む、請求項２に記載のＩＣシステム。
【請求項４】
前記プログラマブルＩＣチップは、前記ＳｉＰブリッジとは別に、前記コンパニオンＩＣチップへの直接接続を含む、請求項１に記載のＩＣシステム。
【国際調査報告】
2019507452.tif 000025
2019507452.tif 000026
2019507452.tif 000027
2019507452.tif 000028
2019507452.tif 000029