(57)【要約】  プログラマブルデバイスにおけるネットワーク・オン・チップ（ＮｏＣ）の構成を生成する例示の方法は、複数のトラフィックフローに対するトラフィックフロー要件を受信すること（５０２）と、トラフィックフロー要件に基づいて、各トラフィックフローに対してＮｏＣを通して経路を割り当てること（５０８）と、割り当てられた経路に沿ったトラフィックフローの調停設定を決定すること（５１４）と、ＮｏＣのプログラミングデータを生成すること（５１６）と、プログラミングデータをプログラマブルデバイスにロードしてＮｏＣを構成すること（５１８）と、を含む。【選択図】図５
2021513241.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルデバイスにおけるネットワーク・オン・チップ（ＮｏＣ）の構成を生成する方法であって、
複数のトラフィックフローに対するトラフィックフロー要件を受信することと、
前記トラフィックフロー要件に基づいて、各トラフィックフローに対して前記ＮｏＣを通して経路を割り当てることと、
前記割り当てられた経路に沿った前記トラフィックフローの調停設定を決定することと、
前記ＮｏＣのプログラミングデータを生成することと、
前記プログラミングデータを前記プログラマブルデバイスにロードして前記ＮｏＣを構成することと、
を含む、方法。
【請求項２】
前記トラフィックフロー要件を受信する前記ステップが、
前記複数のトラフィックフローのそれぞれに関するソースおよび宛先情報を受信すること
を含む、請求項１に記載の方法。
【請求項３】
前記トラフィックフロー要件を受信する前記ステップが、
前記複数のトラフィックフローのそれぞれに関するクラス情報を受信することであって、前記クラス情報は、前記複数のトラフィックフローのそれぞれに対する複数のトラフィッククラスのうちの１つの割当てを含む、受信すること
を更に含む、請求項２に記載の方法。
【請求項４】
前記経路を割り当てる前記ステップが、
割り当てられたソースおよび宛先に基づいて、前記複数のトラフィックフローのそれぞれに対して物理的チャネルを選択することと、
割り当てられたトラフィッククラスに基づいて、前記複数のトラフィックフローのそれぞれに対して仮想チャネルを選択することと、
を含む、請求項３に記載の方法。
【請求項５】
前記ソースおよび宛先情報が、前記複数のトラフィックフローのそれぞれに対するマスタ回路およびスレーブ回路を含む、請求項３に記載の方法。
【請求項６】
前記経路がそれぞれ、１つまたは複数のスイッチをその間に有する、マスタ回路とスレーブ回路との間である、請求項３に記載の方法。
【請求項７】
前記１つまたは複数のスイッチのそれぞれが、調停器を含み、前記調停設定を決定する前記ステップが、前記１つまたは複数のスイッチのそれぞれにおける前記調停器に入力される１つまたは複数の仮想チャネルに対する重みを割り当てることを含む、請求項６に記載の方法。
【請求項８】
処理システムと、
プログラマブル論理領域と、
前記処理システムと前記プログラマブル論理領域とを結合するネットワーク・オン・チップ（ＮｏＣ）であって、前記ＮｏＣが、１つまたは複数の物理的チャネルを通してスレーブ回路に結合されたマスタ回路を含み、第１の物理的チャネルが、複数の仮想チャネルを有する、ネットワーク・オン・チップ（ＮｏＣ）と、
を備える、集積回路。
【請求項９】
前記複数の仮想チャネルがそれぞれ、異なるクラスのトラフィックを伝達するように構成される、請求項８に記載の集積回路。
【請求項１０】
前記複数の仮想チャネルのうちの１つを超える仮想チャネルが、同じクラスのトラフィックを伝達するように構成される、請求項８に記載の集積回路。
【請求項１１】
前記１つまたは複数の物理的チャネルがそれぞれ、前記ＮｏＣの１つまたは複数のスイッチを通る経路を含む、請求項８から１０のいずれか一項に記載の集積回路。
【請求項１２】
前記スイッチがそれぞれ、前記調停器に入力される１つまたは複数の仮想チャネルに対する重みを有する調停器を含む、請求項８から１１のいずれか一項に記載の集積回路。
【請求項１３】
前記ＮｏＣが、前記マスタ回路、前記スレーブ回路、前記物理的チャネル、および前記仮想チャネルをプログラムするように構成された周辺相互接続部を含む、請求項８から１２のいずれか一項に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実施例は、一般に、電子回路に関し、特に、ネットワーク・オン・チップにおけるエンド・ツー・エンドのサービス品質に関する。
【背景技術】
【０００２】
バス構造は、一部のシステム・オン・チップ（ＳｏＣ）集積回路（ＳｏＣ）には適していないことが見出されている。回路の集積度が増大すると、トランザクションがブロックされる場合があり、容量の増加がシグナリングの問題をもたらす場合がある。バス構造の代わりに、ＳｏＣのコンポーネント間でのデータ通信をサポートするのに、ネットワーク・オン・チップ（ＮｏＣ）を使用することができる。
【０００３】
ＮｏＣは、一般に、パケットをチップ上のソース回路（「ソース」）からチップ上の宛先回路（「宛先」）へとルーティングするスイッチの集合体を含む。チップにおけるスイッチのレイアウトは、所望のソースから所望の宛先へのパケット送信をサポートする。パケットは、ソースから宛先への送信時に複数のスイッチを横断することがある。各スイッチは、ネットワーク内の１つまたは複数の他のスイッチに接続することができ、入力パケットを、接続されたスイッチのうちの１つまたは宛先へとルーティングする。
【発明の概要】
【０００４】
ネットワーク・オン・チップにおけるエンド・ツー・エンドのサービス品質の技術。一例では、プログラマブルデバイスにおけるネットワーク・オン・チップ（ＮｏＣ）の構成を生成する方法は、複数のトラフィックフローに対するトラフィックフロー要件を受信することと、トラフィックフロー要件に基づいて、各トラフィックフローに対してＮｏＣを通して経路を割り当てることと、割り当てられた経路に沿ったトラフィックフローの調停設定（ａｒｂｉｔｒａｔｉｏｎ  ｓｅｔｔｉｎｇｓ）を決定することと、ＮｏＣのプログラミングデータを生成することと、プログラミングデータをプログラマブルデバイスにロードしてＮｏＣを構成することと、を含む。
【０００５】
別の例では、プログラマブルデバイスにおけるネットワーク・オン・チップ（ＮｏＣ）の構成を生成する方法を実施するように、プロセッサによって実行可能な命令が格納された非一時的コンピュータ可読媒体は、複数のトラフィックフローに対するトラフィックフロー要件を受信することと、トラフィックフロー要件に基づいて、各トラフィックフローに対してＮｏＣを通して経路を割り当てることと、割り当てられた経路に沿ったトラフィックフローの調停設定を決定することと、ＮｏＣのプログラミングデータを生成することと、プログラミングデータをプログラマブルデバイスにロードしてＮｏＣを構成することと、を含む。
【０００６】
別の例では、集積回路は、処理システムと、プログラマブル論理領域と、処理システムとプログラマブル論理領域とを結合するネットワーク・オン・チップ（ＮｏＣ）であって、ＮｏＣが、１つまたは複数の物理的チャネルを通してスレーブ回路に結合されたマスタ回路を含み、第１の物理的チャネルが、複数の仮想チャネルを有する、ネットワーク・オン・チップ（ＮｏＣ）と、を含む。
【０００７】
これらおよび他の態様は、以下の詳細な説明を参照して理解することができる。
【０００８】
上記に列挙した特徴を詳細に理解することができるような形式で、上記で簡潔に概要を述べた、更に詳細な説明が、実装例を参照することによって行われ得、それらのうちのいくつかは、添付の図面に例示されている。しかしながら、添付の図面は、典型的な実装例のみを例示しており、したがって、その範囲を限定するものと見なされるべきではないことが留意されるべきである。
【図面の簡単な説明】
【０００９】
【図１】一実施例によるシステム・オン・チップ（ＳｏＣ）を示すブロック図である。
【図２】一実施例によるネットワーク・オン・チップ（ＮｏＣ）を示すブロック図である。
【図３】一実施例によるＮｏＣを通したエンドポイント回路間の接続を示すブロック図である。
【図４】一実施例によるコンピュータシステムを示すブロック図である。
【図５】一実施例によるＮｏＣのコンフィギュレーションデータを生成する方法を示すフローチャートである。
【図６】一実施例による通信システムを示すブロック図である。
【図７】一実施例によるＮｏＣのスイッチにおける調停を示すブロック図である。
【図８】一実施例による仮想チャネルに対する重みの割当てを示すブロック図である。
【図９】本明細書に記載する技術を用いることができるプログラマブル集積回路（ＩＣ）を示すブロック図である。
【図１０】本明細書に記載する技術を用いることができるフィールドプログラマブルゲートアレイ（ＦＰＧＡ）アーキテクチャの概略図である。
【発明を実施するための形態】
【００１０】
理解を容易にするため、可能な場合は、図面に共通している同一の要素を指定するのに同一の参照番号が使用されている。１つの実施例の要素が、他の実施例に有益に組み込まれ得ることが想定される。
【００１１】
以下、様々な特徴について図面を参照して記載する。図面は縮尺通りに描かれていることも描かれていないこともあり、類似の構造または機能の要素は、図面全体を通して同様の参照番号で表されることに留意すべきである。図面は単に特徴の説明を容易にするためのものであることに留意すべきである。図面は、請求される発明の包括的な説明として、または請求される発明の範囲に対する限定として意図されるものではない。加えて、図示される実施例は、図示される態様または利点の全てを有するとは限らない。特定の実施例と関連して記載される態様または利点は、必ずしもその実施例に限定されるものではなく、例示されていない場合でも、または明示的に記載されていない場合でも、他のいずれかの実施例において実施されることが可能である。
【００１２】
図１は、一実施例によるシステム・オン・チップ（ＳｏＣ）１０２を示すブロック図である。ＳｏＣ  １０２は、処理システム１０４と、ネットワーク・オン・チップ（ＮｏＣ）１０６と、１つまたは複数のプログラマブル領域１０８とを備える集積回路（ＩＣ）である。ＳｏＣ  １０２は、不揮発性メモリ（ＮＶＭ）１１０および／またはランダムアクセスメモリ（ＲＡＭ）１１２などの外部回路に結合することができる。ＮＶＭ  １１０はデータを格納することができ、そのデータをＳｏＣ  １０２にロードして、ＮｏＣ  １０６およびプログラマブル論理領域１０８を構成するなど、ＳｏＣ  １０２を構成することができる。処理システム１０４およびプログラマブル論理領域１０８の例については後述する。一般に、処理システム１０４は、ＮｏＣ  １０６を通してプログラマブル論理領域１０８に接続される。
【００１３】
ＮｏＣ  １０６は、内部のデータフローを制御するエンド・ツー・エンドのサービス品質（ＱｏＳ）機構を含む。実施例では、ＮｏＣ  １０６は最初に、データフローを指定されたトラフィッククラスへと分離する。同じトラフィッククラスのデータフローは、仮想送信経路もしくは物理的送信経路を共有するか、または独立した仮想送信経路もしくは物理的送信経路を有することができる。ＱｏＳスキームは、トラフィッククラス全体に２つの優先順位レベルを適用する。トラフィッククラス内全体にわたって、ＮｏＣ  １０６は、重み付き調停スキームを適用して、トラフィックフローを整形し、ユーザ要件を満たす帯域幅およびレイテンシを提供する。ＮｏＣ  １０６の例については更に後述する。
【００１４】
図２は、一実施例によるＮｏＣ  １０６を示すブロック図である。ＮｏＣ  １０６は、ＮｏＣマスタユニット（ＮＭＵ）２０２と、ＮｏＣスレーブユニット（ＮＳＵ）２０４と、ネットワーク２１４と、ＮｏＣ周辺相互接続部（ＮＰＩ）２１０と、レジスタ（Ｒｅｇ）２１２とを含む。各ＮＭＵ  ２０２は、マスタエンドポイントをＮｏＣ  １０６に接続する入力回路（ｉｎｇｒｅｓｓ  ｃｉｒｃｕｉｔ）である。各ＮＳＵ  ２０４は、ＮｏＣ  １０６をスレーブエンドポイントに接続する出力回路（ｅｇｒｅｓｓ  ｃｉｒｃｕｉｔ）である。ＮＭＵ  ２０２はネットワーク２１４を通してＮＳＵ  ２０４に接続される。一例では、ネットワーク２１４は、ＮｏＣパケットスイッチ２０６と、ＮｏＣパケットスイッチ２０６の間のルーティング２０８とを含む。各ＮｏＣパケットスイッチ２０６はＮｏＣパケットの切替えを実施する。ＮｏＣパケットスイッチ２０６は、互いに、またルーティング２０８を通してＮＭＵ  ２０２およびＮＳＵ  ２０４に接続されて、複数の物理的チャネルを実現する。ＮｏＣパケットスイッチ２０６はまた、物理的チャネル１つ当たり複数の仮想チャネルに対応する。ＮＰＩ  ２１０は、ＮＭＵ  ２０２、ＮＳＵ  ２０４、およびＮｏＣパケットスイッチ２０６をプログラムする回路構成を含む。例えば、ＮＭＵ  ２０２、ＮＳＵ  ２０４、およびＮｏＣパケットスイッチ２０６は、それらの機能性を決定するレジスタ２１２を含むことができる。ＮＰＩ  ２１０は、レジスタ２１２に結合されてそれらをプログラムして機能性を設定する、相互接続部を含む。ＮｏＣ  １０６のコンフィギュレーションデータは、ＮＶＭ  １１０に格納され、ＮＰＩ  ２１０に提供されて、ＮｏＣ  １０６をプログラムすることができる。
【００１５】
図３は、一実施例によるＮｏＣ  １０６を通したエンドポイント回路間の接続を示すブロック図である。この例では、エンドポイント回路３０２は、ＮｏＣ  １０６を通してエンドポイント回路３０４に接続される。エンドポイント回路３０２は、ＮｏＣ  １０６のＮＭＵ  ２０２に結合されるマスタ回路である。エンドポイント回路３０４は、ＮｏＣ  １０６のＮＳＵ  ２０４に結合されるスレーブ回路である。各エンドポイント回路３０２および３０４は、処理システム１０４の回路、またはプログラマブル論理領域１０８の回路とすることができる。プログラマブル論理領域１０８の各エンドポイント回路は、専用回路（例えば、硬化回路）またはプログラマブル論理で構成された回路とすることができる。
【００１６】
ネットワーク２１４は複数の物理的チャネル３０６を含む。物理的チャネル３０６は、ＮｏＣ  １０６をプログラムすることによって実現される。各物理的チャネル３０６は、１つまたは複数のＮｏＣパケットスイッチ２０６と、関連するルーティング２０８とを含む。ＮＭＵ  ２０２は、少なくとも１つの物理的チャネル３０６を通してＮＳＵ  ２０４と接続する。物理的チャネル３０６はまた、１つまたは複数の仮想チャネル３０８を有することができる。
【００１７】
図４は、一実施例によるコンピュータシステム４００を示すブロック図である。コンピュータシステム４００は、コンピュータ４０１と、入出力（ＩＯ）デバイス４１２と、ディスプレイ４１４とを含む。コンピュータ４０１は、ハードウェアプラットフォーム４１８と、オペレーティングシステム（ＯＳ）４２０および電子機器設計自動化（ＥＤＡ）ソフトウェア４１０など、ハードウェアプラットフォーム４１８上で実行するソフトウェアとを含む。ハードウェアプラットフォーム４１８は、中央処理装置（ＣＰＵ）４０２と、システムメモリ４０８と、記憶デバイス（「記憶装置４２１」）と、サポート回路４０４と、ＩＯインターフェース４０６とを含む。
【００１８】
ＣＰＵ  ４０２は、ｘ８６ベースプロセッサ、ＡＲＭ（登録商標）ベースプロセッサなど、任意のタイプの汎用中央処理装置（ＣＰＵ）であることができる。ＣＰＵ  ４０２は、１つまたは複数のコアおよび関連回路構成（例えば、キャッシュメモリ、メモリ管理装置（ＭＭＵ）、割込みコントローラなど）を含むことができる。ＣＰＵ  ４０２は、本明細書に記載する１つまたは複数の動作を実施し、システムメモリ４０８および／または記憶装置４２１に格納することができる、プログラムコードを実行するように構成される。サポート回路４０４は、ＣＰＵ  ４０２と協働して、ＣＰＵ  ４０２、システムメモリ４０８、記憶装置４２１、ＩＯインターフェース４０６、または他の任意の周辺デバイスの間のデータフローを管理する、様々なデバイスを含むことができる。例えば、サポート回路４０４は、チップセット（例えば、ノースブリッジ、サウスブリッジ、プラットフォームホストコントローラなど）、電圧調整器、ファームウェア（例えば、ＢＩＯＳ）などを含むことができる。いくつかの例では、ＣＰＵ  ４０２は、システム・イン・パッケージ（ＳｉＰ）、システム・オン・チップ（ＳｏＣ）などとすることができ、サポート回路４０４（例えば、ノースブリッジ、サウスブリッジなど）の機能性の全部または大部分を吸収する。
【００１９】
システムメモリ４０８は、実行可能命令およびデータなどの情報を格納し検索することを可能にするデバイスである。システムメモリ４０８は、例えば、ダブルデータレート（ＤＤＲ）ダイナミックＲＡＭ（ＤＲＡＭ）など、１つまたは複数のランダムアクセスメモリ（ＲＡＭ）モジュールを含むことができる。記憶装置４２１は、ローカル記憶デバイス（例えば、１つもしくは複数のハードディスク、フラッシュメモリモジュール、固体状態ディスク、および光学ディスク）、ならびに／またはコンピュータ４０１が１つもしくは複数のネットワークデータ記憶システムと通信できるようにする、記憶装置インターフェースを含む。ＩＯインターフェース４０６は、ＩＯデバイス４１２およびディスプレイ４１４に結合することができる。
【００２０】
ＯＳ  ４２０は、Ｌｉｎｕｘ（登録商標）、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ｍａｃ  ＯＳ（登録商標）など、当該分野で知られている任意のコモディティオペレーティングシステムであることができる。ユーザは、ＥＤＡソフトウェア４１０と相互作用して、ＳｏＣ  １０２のコンフィギュレーションデータを生成することができる。特に、ＥＤＡソフトウェア４１０は、エンドポイント回路を接続する様々な物理的および仮想チャネルを実現するため、ＮｏＣ  １０６をプログラムするためのコンフィギュレーションデータを生成するように構成される。
【００２１】
図５は、一実施例によるＮｏＣ  １０６のコンフィギュレーションデータを生成する方法５００を示すフローチャートである。方法５００は、ＥＤＡソフトウェア４１０によって実施することができる。方法５００は、ステップ５０２で始まり、ＥＤＡソフトウェア４１０はトラフィックフロー要件をユーザから受信する。一例では、ステップ５０４で、ＥＤＡソフトウェア４１０は、ユーザによって指定された各トラフィックフローに関するソースおよび宛先情報（例えば、各トラフィックフローのソースエンドポイントおよび宛先エンドポイント）を受信する。トラフィックフローは、エンドポイント間でデータ（「トラフィック」）を伝達する接続である。ステップ５０６で、ＥＤＡソフトウェア４１０は、ユーザによって指定された各トラフィックフローに関するクラス情報を受信する。例示のトラフィッククラスは、低レイテンシトラフィック、等時性トラフィック、ベストエフォート（ＢＥ）トラフィック（例えば、帯域幅保証トラフィック）などを含む。
【００２２】
ステップ５０８で、ＥＤＡソフトウェア４１０は、トラフィックフロー要件に基づいて、各トラフィックフローに対してＮｏＣ  １０６を通して経路を割り当てる。一例では、ステップ５１０で、ＥＤＡソフトウェア４１０は、各トラフィックフローのソースおよび宛先に基づいて、それらの物理的チャネルを選択する。ＮｏＣ  １０６は、それぞれのソースと宛先との間で利用可能な複数の物理的経路を有することができる。ステップ５１２で、ＥＤＡソフトウェア４１０は、１つまたは複数の仮想チャネルのトラフィッククラスに基づいて、それらの仮想チャネルに対する仮想チャネルを選択する。つまり、所与の物理的チャネルは、複数の仮想チャネルを有することができ、トラフィッククラスによって分離された複数のトラフィックフローを伝達することができる。物理的チャネル内の各仮想チャネルは、１つのトラフィッククラスのみを保持するが、同じトラフィッククラス内に複数のトラフィックフローがある。例えば、所与の物理的チャネルは、低レイテンシトラフィッククラスのトラフィックフローと、等時性トラフィッククラスの別のトラフィックフローとを、一対の仮想チャネルで伝達することができる。ステップ５１０および５１２は、方法５００では同時に行うことができることに留意されたい。
【００２３】
ステップ５１４で、ＥＤＡソフトウェア４１０は、ユーザによって指定されたトラフィックフローの調停設定を決定する。一例では、ＥＤＡソフトウェア４１０は、高い優先順位のトラフィックを有する仮想チャネルを、スイッチ２０６を通る優先順位がより高くなるように設定し、低い優先順位のトラフィックを有する仮想チャネルを、スイッチ２０６を通る優先順位がより低くなるように設定する。例えば、等時性または低レイテンシトラフィックは、他のトラフィックタイプよりも高い優先順位を有することができる。一例では、調停は不足スキーム（ｄｅｆｉｃｉｔ  ｓｃｈｅｍｅ）を使用する。各調停器出力（例えば、スイッチ２０６の出力）では、全ての入力ポートから１つの出力ポートへの全ての仮想チャネルに対する調停が組み合わされる。各入力ポートからの各仮想チャネルは、指定数の調停トークンを提供する独立した重み値を有する。トークンは、調停を整形し、トラフィックフロー全体の帯域幅割当てを制御するのに使用される。このスキームは、トークンがリフレッシュ／リロードされる前に、トークンを有する全ての要求側（例えば、エンドポイント）にサービスすることを担保する。これにより、新しいグループを開始できるより前に、１つのグループにおける全ての要求にサービスしなければならないので、調停が枯渇を引き起こさないことが担保される。ステップ５１４で決定された調停設定は、ブート時間にプログラムすることができ、または動作中に動的に調節することができる。
【００２４】
ステップ５１６で、ＥＤＡソフトウェア４１０は、ＮｏＣ  １０６のプログラミングデータを生成する。プログラミングデータは、ＮｏＣ  １０６を構成して、物理的チャネル、仮想チャネル、および任意で調停設定を実現するように設定される。いくつかの例では、調停設定は、ＮｏＣ  １０６の構成後に動的にプログラムすることができる。ステップ５１８で、ＥＤＡソフトウェア４１０は、プログラミングデータをＳｏＣ  １０２にロードする（例えば、プログラミングデータをＮＶＭ  １１０に格納するか、またはプログラミングデータをＳｏＣ  １０２に直接提供することによる）。
【００２５】
方法５００は、ＮｏＣ  １０６を使用して、完全にプログラム可能な、エンド・ツー・エンドＱｏＳを提供する。一部のＳｏＣは、調停スキームにおける柔軟性が限定された比較的固定の相互接続部を有する。他のＳｏＣは、選択可能な経路および限定されたＱｏＳ優先順位決定を有するが、別個のトラフィッククラス、およびトラフィックフロー全体にわたる正確な帯域幅の振分けは有さない。方法５００は、独立したフロー制御、構成可能な物理的チャネルルーティング、グループにおける不足調停、およびトラフィッククラスの割当てのため、仮想チャネルの組み合わせを提供する。
【００２６】
図６は、一実施例による通信システム６００を示すブロック図である。通信システム６００は、ＮｏＣ  １０６を通してスレーブデバイス６０４０および６０４１（スレーブデバイス６０４）に結合された、マスタデバイス６０２０…６０２４（マスタデバイス６０２）を含む。マスタデバイス６０２およびスレーブデバイス６０４は、ＮＭＵ  ２０２およびＮＳＵ  ２０４それぞれに結合されたＳｏＣ  １０２にエンドポイント回路を備える。ＮｏＣ  １０６は、ＮｏＣパケットスイッチ（ＮＰＳ）２０６（例えば、ＮＰＳ  ２０６０，０…２０６０，３およびＮＰＳ  ２０６１，０…２０６１，３）を含む。
【００２７】
マスタデバイス６０２０およびマスタデバイス６０２１は、ＮＰＳ  ２０６０，０に結合される。マスタデバイス６０２０は、低レイテンシ（ＬＬ）仮想チャネルを通してＮＰＳ  ２０６０，０に結合される。マスタデバイス６０２１は、ベストエフォート（ＢＥ）仮想チャネルを通してＮＰＳ  ２０６０，０に結合される。マスタデバイス６０２３は、ＢＥ仮想チャネルを通してＮＰＳ  ２０６０，１に結合される。マスタデバイス６０２３は、等時性（ＩＳＯＣ）仮想チャネルを通してＮＰＳ  ２０６０，３に結合される。マスタデバイス６０２４は、ＩＳＯＣ仮想チャネルを通してＮＰＳ  ２０６０，３に結合される。ＮＰＳ  ２０６０，１はＮＰＳ  ２０６０，２に結合される。ＮＰＳ  ２０６０，２はＮＰＳ  ２０６０，３に結合される。
【００２８】
ＮＰＳ  ２０６０，０はＮＰＳ  ２０６１，０に結合される。ＮＰＳ  ２０６０，１はＮＰＳ  ２０６１，１に結合される。ＮＰＳ  ２０６１，２およびＮＰＳ  ２０６１，３は接続されず、通信システム６００のこの構成では使用されない。ＮＰＳ  ２０６１，０はスレーブ６０４０に結合される。ＮＰＳ  ２０６１，１はスレーブ６０２１に結合される。ＮＰＳ  ２０６１，０はＮＰＳ  ２０６１，１に結合される。
【００２９】
動作の際、マスタデバイス６０２０は、低レイテンシであるトラフィックをスレーブデバイス６０４０に伝送する。マスタ６０２１および６０２２は両方とも、ベストエフォートトラフィックをスレーブデバイス６０４０に伝送する。マスタ６０２３および６０２４は、等時性トラフィックをスレーブデバイス６０４１に伝送する。各トラフィックフローは別個の物理的チャネルで各スイッチに入る。ＮＰＳ  ２０６０，０とＮＰＳ  ２０６１，０との間、ＮＰＳ  ２０６０．１とＮＰＳ  ２０６１，１との間、およびＮＰＳ  ２０６１，０とスレーブデバイス６０４０との間には、２つの仮想チャネル（一対の線によって指定されている）がある。他の経路は、物理的チャネルの単一の仮想チャネルのみを使用する（例えば、ＮＰＳ  ２０６０．１とＮＰＳ  ２０６０，２との間、およびＮＰＳ  ２０６１，１とスレーブデバイス６０２１との間）。各ＮＰＳ  ２０６は、更に後述するように、入力ポートから出力ポートへのトラフィックの混合を制御する、出力ポート調停を有する。
【００３０】
図７は、一実施例によるＮｏＣ  １０６のスイッチ２０６における調停を示すブロック図である。各スイッチ２０６は調停器７０２を含む。この例では、調停器７０２は、入力ポート０、入力ポート１、および入力ポート２と指定される３つの入力ポートを含む。しかしながら、スイッチ２０６および調停器７０２は任意の数の入力ポートを含むことができる。調停器７０２は「ｏｕｔ」と指定される出力ポートを含む。
【００３１】
図７に示されるように、この例では、入力ポート２は入力トラフィックストリームを有さない。入力ポート０は、２つのトラフィックストリーム（例えば、１つの低レイテンシトラフィックストリームおよび１つの等時性トラフィックストリーム）を受信する２つの仮想チャネルを有する。入力ポート１は、１つのトラフィックストリーム（例えば、ベストエフォートトラフィック）を保持する単一の仮想チャネルを有する。調停器７０２の各入力ポートは割り当てられた重みを有する。重みは、各トラフィックフローに割り当てられた調停帯域幅の相対的共有を制御する。この例では、ポート０はそれぞれの仮想チャネルに対して４および８の調停重みを有し、ポート１は単一の仮想チャネルに対して４の調停重みを有する。つまり、出力ポートで利用可能な帯域幅のうち、ポート０の第１のトラフィックストリームは帯域幅の２５％を確保し、ポート０の第２のトラフィックストリームは帯域幅の５０％を確保し、ポート１のトラフィックストリームは帯域幅の２５％を確保する。例えば、ポート０の低レイテンシトラフィックには、ベストエフォートトラフィック（優先順位は低い）よりも大きい帯域幅（優先順位が高いことによる）を割り当てることができる。つまり、全ての要求側が伝送を行っている場合、調停器７０２は、調停トークンを有する限り、低レイテンシトラフィックにサービスする。ベストエフォートトラフィックは、トークンを有する場合にサービスを受け、同じくトークンを有する他の高優先順位の要求側は存在しない。要求側が存在し、要求側に調停トークンが残っていない場合、指定された重みにしたがって調停トークンがリロードされる。調停器７０２はまた、全ての要求側のトークンがなくなった場合に調停トークンをリロードする。
【００３２】
上述の説明は１つの調停地点に関するものである。所与の物理的経路における各調停地点のプログラミングによって、エンド・ツー・エンドで十分な帯域幅があることが担保される。いくつかの仮想チャネルに対する高優先順位割当ての使用によって、トランザクションがより低レイテンシ／より低ジッタのサービスを受信することが担保される。調停重みおよび不足調停の使用によって、全ての調停重みの合計に対応する期間内で、全ての要求側がその調停重みにしたがってある量の帯域幅を受信することが担保される。一部の要求側がトラフィックを伝送していない場合、かかるグループのサービス時間はより短くてもよい。
【００３３】
図８は、一実施例による仮想チャネルに対する重みの割当てを示すブロック図である。この例は、２つの調停器７０２１および７０２２を含む。調停器７０２１は、物理的チャネル８０２、８０４、および８０６の間で調停を行う。調停器７０２２は、物理的チャネル８０６、８０８、および８１０の間で調停を行う。各物理的チャネル８０２、８０４、８０６、および８０８は、ｖｃ０およびｖｃ１と指定される２つの仮想チャネルを含む。この実施例では、ｓｒｃ０…ｓｒｃ５と指定される６つの異なるソース（例えば、マスタデバイス）がある。ソースｓｒｃ０は物理的チャネル８０８のｖｃ０にある。ソースｓｒｃ１は物理的チャネル８０８のｖｃ１にある。ソースｓｒｃ２は物理的チャネル８０２のｖｃ０にある。ソースｓｒｃ３は物理的チャネル８０２のｖｃ１にある。ソースｓｒｃ４は物理的チャネル８０４のｖｃ０にある。ソースｓｒｃ５は物理的チャネル８０４のｖｃ１にある。調停器７０２２は、物理的チャネル８０８のｖｃ０に重み１０を、物理的チャネル８０８のｖｃ１に重み２０を提供するようにプログラムされる。調停器７０２２は、物理的チャネル８０６のｖｃ０に重み３０を、物理的チャネル８０６のｖｃ１に重み４０を提供するようにプログラムされる。調停器７０２１は、物理的チャネル８０２のｖｃ０に重み１０を、物理的チャネル８０２のｖｃ１に重み３０を提供するようにプログラムされる。調停器７０２１は、物理的チャネル８０４のｖｃ０に重み２０を、物理的チャネル８０４のｖｃ１に重み１０を提供するようにプログラムされる。この重み付けスキームにより、調停器７０２２の出力側において、ｓｒｃ０は重み１０を、ｓｒｃ１は重み２０を、ｓｒｃ２は重み１０を、ｓｒｃ３は重み３０を、ｓｒｃ４は重み２０を、ｓｒｃ５は重み１０を有するようになる。各ソースはその重みに比例して帯域幅を得る。当業者であれば、同様の手法で、任意の数のソースに対する任意の数の調停器にわたって、他の様々な重み付けスキームを用いることができることを認識するであろう。
【００３４】
図９は、図１に示されるＳｏＣ  １０２の実装として使用することができる、一実施例によるプログラマブルＩＣ  １を示すブロック図である。プログラマブルＩＣ  １は、プログラマブル論理３と、コンフィギュレーション論理２５と、コンフィギュレーションメモリ２６とを含む。プログラマブルＩＣ  １は、不揮発性メモリ２７、ＤＲＡＭ  ２８、および他の回路２９など、外部回路に結合することができる。プログラマブル論理３は、論理セル３０と、サポート回路３１と、プログラマブル相互接続部３２とを含む。論理セル３０は、複数の入力の一般論理関数を実現するように構成することができる回路を含む。サポート回路３１は、送受信機、入出力ブロック、デジタル信号プロセッサ、メモリなどの専用回路を含む。論理セルおよびサポート回路３１は、プログラマブル相互接続部３２を使用して相互接続することができる。論理セル３０をプログラムするための情報、サポート回路３１のパラメータを設定するための情報、およびプログラマブル相互接続部３２をプログラムするための情報は、コンフィギュレーション論理２５によってコンフィギュレーションメモリ２６に格納される。コンフィギュレーション論理２５は、コンフィギュレーションデータを、不揮発性メモリ２７または他の任意のソース（例えば、ＤＲＡＭ  ２８もしくは他の回路２９）から取得することができる。いくつかの例では、プログラマブルＩＣ  １は処理システム２を含む。処理システム２は、マイクロプロセッサ、メモリ、サポート回路、入出力回路などを含むことができる。
【００３５】
図１０は、プログラマブルＩＣ  １のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）実装例を含み、送受信機３７と、構成可能論理ブロック（「ＣＬＢ」）３３と、ランダムアクセスメモリブロック（「ＢＲＡＭ」）３４と、入出力ブロック（「ＩＯＢ」）３６と、構成および計時論理（「ＣＯＮＦＩＧ／ＣＬＯＣＫＳ」）４２と、デジタル信号処理ブロック（「ＤＳＰ」）３５と、専用入出力ブロック（「Ｉ／Ｏ」）４１（例えば、構成ポートおよびクロックポート）と、デジタルクロックマネージャ、アナログ・デジタル変換器、システムモニタリング論理など、他のプログラマブル論理３９とを含む、多数の異なるプログラマブルタイルを含む。ＦＰＧＡはまた、ＰＣＩｅインターフェース４０、アナログ・デジタル変換器（ＡＤＣ）３８などを含むことができる。
【００３６】
一部のＦＰＧＡでは、各プログラマブルタイルは、図１０の上部に含まれる例によって示されるように、同じタイル内のプログラマブル論理素子の入力および出力端子４８への接続を有する、少なくとも１つのプログラマブル相互接続素子（「ＩＮＴ」）４３を含むことができる。各プログラマブル相互接続素子４３はまた、同じタイルまたは他のタイル内の隣接したプログラマブル相互接続素子の相互接続セグメント４９への接続を含むことができる。各プログラマブル相互接続素子４３はまた、論理ブロック間の一般的なルーティングリソース（図示なし）の相互接続セグメント５０への接続を含むことができる。一般的なルーティングリソースとしては、相互接続セグメント（例えば、相互接続セグメント５０）のトラックと、相互接続セグメントを接続するスイッチブロック（図示なし）とを含む、論理ブロック間のルーティングチャネル（図示なし）を挙げることができる。一般的なルーティングリソースの相互接続セグメント（例えば、相互接続セグメント５０）は、１つまたは複数の論理ブロックにまたがることができる。プログラマブル相互接続素子４３は、一般的なルーティングリソースと併せて、図示されるＦＰＧＡのプログラマブル相互接続構造（「プログラマブル相互接続」）を実現する。
【００３７】
１つの実装例では、ＣＬＢ  ３３は、ユーザ論理を実現するようにプログラムすることができる構成可能論理素子（「ＣＬＥ」）４４と、それに加えて単一のプログラマブル相互接続素子（「ＩＮＴ」）４３とを含むことができる。ＢＲＡＭ  ３４は、１つまたは複数のプログラマブル相互接続素子に加えて、ＢＲＡＭ論理素子（「ＢＲＬ」）４５を含むことができる。一般的に、タイルに含まれる相互接続素子の数はタイルの高さに応じて決まる。図示される例では、ＢＲＡＭタイルは５つのＣＬＢと同じ高さを有するが、他の数（例えば、４つ）を使用することもできる。ＤＳＰタイル３５は、適切な数のプログラマブル相互接続素子に加えて、ＤＳＰ論理素子（「ＤＳＰＬ」）４６を含むことができる。ＩＯＢ  ３６は、例えば、プログラマブル相互接続素子４３の１つの例に加えて、入力／出力論理素子（「ＩＯＬ」）４７の２つの例を含むことができる。当業者には明白となるように、例えば、Ｉ／Ｏ論理素子４７に接続された実際のＩ／Ｏパッドは、一般的に、入力／出力論理素子４７の範囲に制限されない。
【００３８】
図示される例では、ダイ（図１０に図示）の中央付近の水平範囲は、コンフィギュレーション、クロック、および他の制御論理に使用される。この水平範囲または列から延在する垂直列５１は、ＦＰＧＡの横幅にわたってクロックおよびコンフィギュレーション信号を分配させるのに使用される。
【００３９】
図１０に示されるアーキテクチャを利用する一部のＦＰＧＡは、ＦＰＧＡの大きな部分を占める規則的な列状構造を破壊する追加の論理ブロックを含む。追加の論理ブロックは、プログラマブルブロックおよび／または専用論理であることができる。
【００４０】
図１０は、単に例示のＦＰＧＡアーキテクチャを例証するためのものであることに留意することである。例えば、行内の論理ブロックの数、行の相対幅、行の数および順序、行に含まれる論理ブロックのタイプ、論理ブロックの相対サイズ、ならびに図６の上部に含まれる、相互接続／論理の実現は、単なる例示である。例えば、実際のＦＰＧＡでは、一般的に、ユーザ論理の効率的な実現を容易にするため、ＣＬＢがどこに現れても、ＣＬＢの１つを超える隣接列が含まれるが、隣接したＣＬＢ行の数はＦＰＧＡの全体サイズに伴って変動する。
【００４１】
一例では、プログラマブルデバイスにおけるネットワーク・オン・チップ（ＮｏＣ）の構成を生成する方法を提供することができる。かかる方法は、複数のトラフィックフローに対するトラフィックフロー要件を受信することと、トラフィックフロー要件に基づいて、各トラフィックフローに対してＮｏＣを通して経路を割り当てることと、割り当てられた経路に沿ったトラフィックフローの調停設定を決定することと、ＮｏＣのプログラミングデータを生成することと、プログラミングデータをプログラマブルデバイスにロードしてＮｏＣを構成することと、を含んでもよい。
【００４２】
かかる方法では、トラフィックフロー要件を受信するステップは、複数のトラフィックフローのそれぞれに関するソースおよび宛先情報を受信することを含んでもよい。
【００４３】
かかる方法では、トラフィックフロー要件を受信するステップは、複数のトラフィックフローのそれぞれに関するクラス情報を受信することであって、クラス情報が、複数のトラフィックフローのそれぞれに対する複数のトラフィッククラスのうちの１つの割当てを含む、受信することを更に含んでもよい。
【００４４】
かかる方法では、経路を割り当てるステップは、割り当てられたソースおよび宛先に基づいて、複数のトラフィックフローのそれぞれに対して物理的チャネルを選択することと、割り当てられたトラフィッククラスに基づいて、複数のトラフィックフローのそれぞれに対して仮想チャネルを選択することと、を含んでもよい。
【００４５】
かかる方法では、ソースおよび宛先情報は、複数のトラフィックフローのそれぞれに対するマスタ回路およびスレーブ回路を含んでもよい。
【００４６】
かかる方法では、経路はそれぞれ、１つまたは複数のスイッチをその間に有する、マスタ回路とスレーブ回路との間であってもよい。
【００４７】
かかる方法では、１つまたは複数のスイッチはそれぞれ調停器を含んでもよく、調停設定を決定するステップは、１つまたは複数のスイッチのそれぞれにおける調停器に入力される１つまたは複数の仮想チャネルに対する重みを割り当てることを含む。
【００４８】
別の例では、プログラマブルデバイスにおけるネットワーク・オン・チップ（ＮｏＣ）の構成を生成する方法を実施するように、プロセッサによって実行可能な命令が格納された非一時的コンピュータ可読媒体が提供されてもよい。プログラマブルデバイスにおけるネットワーク・オン・チップ（ＮｏＣ）の構成を生成する方法を実施するように、プロセッサによって実行可能な命令が格納された、かかる非一時的コンピュータ可読媒体は、複数のトラフィックフローに対するトラフィックフロー要件を受信することと、トラフィックフロー要件に基づいて、各トラフィックフローに対してＮｏＣを通して経路を割り当てることと、割り当てられた経路に沿ったトラフィックフローの調停設定を決定することと、ＮｏＣのプログラミングデータを生成することと、プログラミングデータをプログラマブルデバイスにロードしてＮｏＣを構成することと、を含んでもよい。
【００４９】
かかる非一時的コンピュータ可読媒体では、トラフィックフロー要件を受信するステップは、複数のトラフィックフローのそれぞれに関するソースおよび宛先情報を受信することを含んでもよい。
【００５０】
かかる非一時的コンピュータ可読媒体では、トラフィックフロー要件を受信するステップは、複数のトラフィックフローのそれぞれに関するクラス情報を受信することであって、クラス情報が、複数のトラフィックフローのそれぞれに対する複数のトラフィッククラスのうちの１つの割当てを更に含む、受信することを含んでもよい。
【００５１】
かかる非一時的コンピュータ可読媒体では、経路を割り当てるステップは、割り当てられたソースおよび宛先に基づいて、複数のトラフィックフローのそれぞれに対して物理的チャネルを選択することと、割り当てられたトラフィッククラスに基づいて、複数のトラフィックフローのそれぞれに対して仮想チャネルを選択することと、を含んでもよい。
【００５２】
かかる非一時的コンピュータ可読媒体では、ソースおよび宛先情報は、複数のトラフィックフローのそれぞれに対するマスタ回路およびスレーブ回路を含んでもよい。
【００５３】
かかる非一時的コンピュータ可読媒体では、経路はそれぞれ、１つまたは複数のスイッチをその間に有する、マスタ回路とスレーブ回路との間であってもよい。
【００５４】
かかる非一時的コンピュータ可読媒体では、１つまたは複数のスイッチはそれぞれ調停器を含んでもよく、調停設定を決定するステップは、１つまたは複数のスイッチのそれぞれにおける調停器に入力される１つまたは複数の仮想チャネルに対する重みを割り当てることを含んでもよい。
【００５５】
別の例では、集積回路が提供されてもよい。かかる集積回路は、処理システムと、プログラマブル論理領域と、処理システムとプログラマブル論理領域とを結合するネットワーク・オン・チップ（ＮｏＣ）であって、ＮｏＣが、１つまたは複数の物理的チャネルを通してスレーブ回路に結合されたマスタ回路を含み、第１の物理的チャネルが、複数の仮想チャネルを有する、ネットワーク・オン・チップ（ＮｏＣ）と、を含んでもよい。
【００５６】
かかる集積回路では、複数の仮想チャネルはそれぞれ異なるクラスのトラフィックを伝達するように構成されてもよい。
【００５７】
かかる集積回路では、複数の仮想チャネルのうちの１つを超える仮想チャネルは同じクラスのトラフィックを伝達するように構成されてもよい。
【００５８】
かかる集積回路では、１つまたは複数の物理的チャネルはそれぞれ、ＮｏＣの１つまたは複数のスイッチを通る経路を含んでもよい。
【００５９】
かかる集積回路では、スイッチはそれぞれ、調停器に入力される１つまたは複数の仮想チャネルに対する重みを有する調停器を含む。
【００６０】
かかる集積回路では、ＮｏＣは、マスタ回路、スレーブ回路、物理的チャネル、および仮想チャネルをプログラムするように構成された、周辺相互接続部を含んでもよい。
【００６１】
上記は特定の実施例を対象としているが、実施例の基本的範囲から逸脱することなく他の実施例および更なる実施例を案出することができ、それらの範囲は以下の特許請求の範囲によって決定される。
【図１】
2021513241.tif 000003
【図２】
2021513241.tif 000004
【図３】
2021513241.tif 000005
【図４】
2021513241.tif 000006
【図５】
2021513241.tif 000007
【図６】
2021513241.tif 000008
【図７】
2021513241.tif 000009
【図８】
2021513241.tif 000010
【図９】
2021513241.tif 000011
【図１０】
2021513241.tif 000012
【手続補正書】
【提出日】令和1年11月27日(2019.11.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラマブルデバイスにおけるネットワーク・オン・チップ（ＮｏＣ）の構成を生成する方法であって、
複数のトラフィックフローに対するトラフィックフロー要件を受信することと、
前記トラフィックフロー要件に基づいて、各トラフィックフローに対して前記ＮｏＣのネットワークを通して経路を割り当てることであって、前記ＮｏＣの前記ネットワークが、相互接続されたプログラマブルスイッチを備え、前記経路がそれぞれ、マスタ回路とスレーブ回路との間にあり、入力回路が、それぞれのマスタ回路と前記ＮｏＣの前記ネットワークとの間に結合され、出力回路が、それぞれのスレーブ回路と前記ＮｏＣの前記ネットワークとの間に結合される、経路を割り当てることと、
割り当てられた前記経路に沿った前記トラフィックフローの調停設定を決定することと、
前記経路および前記調停設定に基づいて、前記ＮｏＣのプログラミングデータを生成することと、
前記プログラミングデータを前記プログラマブルデバイスにロードして、前記ＮｏＣの前記ネットワークの前記プログラマブルスイッチのうち少なくともいくつかをプログラムすることと
を含み、プログラムされると、前記プログラマブルスイッチのプログラムされた各スイッチが、前記プログラマブルスイッチのうち一対のプログラマブルスイッチ間で、またはそれぞれの入力回路もしくはそれぞれの入力回路と前記プログラマブルスイッチのうち別のプログラマブルスイッチとの間で、通信をルーティングするように動作可能である、方法。
【請求項２】
前記トラフィックフロー要件を受信するステップが、
前記複数のトラフィックフローのそれぞれに関する、それぞれのマスタ回路のソース情報およびそれぞれのスレーブ回路の宛先情報を受信すること
を含む、請求項１に記載の方法。
【請求項３】
前記トラフィックフロー要件を受信するステップが、
前記複数のトラフィックフローのそれぞれに関するクラス情報を受信することを更に含み、前記クラス情報は、前記複数のトラフィックフローのそれぞれに対する複数のトラフィッククラスのうちの１つの割当てを含む、請求項２に記載の方法。
【請求項４】
前記経路を割り当てるステップが、
割り当てられたソースおよび宛先に基づいて、前記複数のトラフィックフローのそれぞれに対して物理的チャネルを選択することと、
割り当てられたトラフィッククラスに基づいて、前記複数のトラフィックフローのそれぞれに対して仮想チャネルを選択することと
を含む、請求項３に記載の方法。
【請求項５】
前記プログラマブルスイッチのそれぞれが、調停器を含み、前記調停設定を決定するステップが、前記プログラマブルスイッチのそれぞれにおける前記調停器に入力される１つまたは複数の仮想チャネルに対する重みを割り当てることを含む、請求項１に記載の方法。
【請求項６】
プログラマブルデバイスにおけるネットワーク・オン・チップ（ＮｏＣ）の構成を生成する方法を実施するように、プロセッサによって実行可能な命令が格納された、非一時的コンピュータ可読媒体であって、
複数のトラフィックフローに対するトラフィックフロー要件を受信することと、
前記トラフィックフロー要件に基づいて、各トラフィックフローに対して前記ＮｏＣのネットワークを通して経路を割り当てることであって、前記ＮｏＣの前記ネットワークが、相互接続されたプログラマブルスイッチを備え、前記経路がそれぞれ、マスタ回路とスレーブ回路との間にあり、入力回路が、それぞれのマスタ回路と前記ＮｏＣの前記ネットワークとの間に結合され、出力回路が、それぞれのスレーブ回路と前記ＮｏＣの前記ネットワークとの間に結合される、経路を割り当てることと、
割り当てられた前記経路に沿った前記トラフィックフローの調停設定を決定することと、
前記経路および前記調停設定に基づいて、前記ＮｏＣのプログラミングデータを生成することと、
前記プログラミングデータを前記プログラマブルデバイスにロードして、前記ＮｏＣの前記ネットワークの前記プログラマブルスイッチのうち少なくともいくつかをプログラムすることと
を含み、プログラムされると、前記プログラマブルスイッチのプログラムされた各スイッチが、前記プログラマブルスイッチのうち一対のプログラマブルスイッチ間で、またはそれぞれの入力回路もしくはそれぞれの入力回路と前記プログラマブルスイッチのうち別のプログラマブルスイッチとの間で、通信をルーティングするように動作可能である、非一時的コンピュータ可読媒体。
【請求項７】
前記トラフィックフロー要件を受信するステップが、
前記複数のトラフィックフローのそれぞれに関する、それぞれのマスタ回路のソース情報およびそれぞれのスレーブ回路の宛先情報を受信すること
を含む、請求項６に記載の非一時的コンピュータ可読媒体。
【請求項８】
前記トラフィックフロー要件を受信するステップが、
前記複数のトラフィックフローのそれぞれに関するクラス情報を受信すること
を更に含み、前記クラス情報が、前記複数のトラフィックフローのそれぞれに対する複数のトラフィッククラスのうちの１つの割当てを含む、請求項７に記載の非一時的コンピュータ可読媒体。
【請求項９】
前記経路を割り当てるステップが、
割り当てられたソースおよび宛先に基づいて、前記複数のトラフィックフローのそれぞれに対して物理的チャネルを選択することと、
割り当てられたトラフィッククラスに基づいて、前記複数のトラフィックフローのそれぞれに対して仮想チャネルを選択することと
を含む、請求項８に記載の非一時的コンピュータ可読媒体。
【請求項１０】
前記プログラマブルスイッチのそれぞれが、調停器を含み、前記調停設定を決定するステップが、前記プログラマブルスイッチのそれぞれにおける前記調停器に入力される１つまたは複数の仮想チャネルに対する重みを割り当てることを含む、請求項６に記載の非一時的コンピュータ可読媒体。
【国際調査報告】
2021513241.tif 000013
2021513241.tif 000014
2021513241.tif 000015
2021513241.tif 000016