(57)【要約】  半導体集積回路は、相互結合網を介して互いに接続された複数のコアと、相互結合網上に配置された複数のルータとを備える。各ルータは転送テーブルを備え、転送テーブルの各エントリは、マッチ条件にマッチするパケットの出力先を指定する。各ルータは、パケットを受け取ると転送テーブルの検索を行い、受信パケットにマッチするヒットエントリが転送テーブルに有れば、当該ヒットエントリで指定される出力先に受信パケットを転送する。経路制御回路は、送信元コアから宛先コアへのパケットの伝送経路を動的に決定し、且つ、当該決定経路上の各ルータに対して、当該決定経路に沿ってパケット伝送が行われるように転送テーブルを設定するよう指示する。
2011125889.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路と、
経路制御回路と
を具備し、
前記半導体集積回路は、
相互結合網を介して互いに接続された複数のコアと、
前記相互結合網上に配置された複数のルータと
を備え、
前記複数のルータの各々は、転送テーブルを備え、
前記転送テーブルの各エントリは、マッチ条件にマッチするパケットの出力先を指定し、
前記各ルータは、受信パケットを受け取ると前記転送テーブルの検索を行い、前記受信パケットにマッチするヒットエントリが前記転送テーブルに有る場合、前記ヒットエントリで指定される前記出力先に前記受信パケットを転送し、
前記複数のコアは、送信元コア及び宛先コアを含み、
前記経路制御回路は、前記送信元コアから前記宛先コアへのパケットの伝送経路を動的に決定し、且つ、前記決定された伝送経路上の各ルータに対して、前記決定された伝送経路に沿ってパケット伝送が行われるように前記転送テーブルを設定するよう指示する
半導体集積回路システム。
【請求項２】
請求項１に記載の半導体集積回路システムであって、
前記経路制御回路は、前記送信元コアから前記宛先コアへパケットを送信するアプリケーションの特性に応じて前記伝送経路を決定し、
前記転送テーブルの前記マッチ条件は、前記アプリケーションの特性を含む
半導体集積回路システム。
【請求項３】
請求項１又は２に記載の半導体集積回路システムであって、
前記宛先コアは、アクセスアドレスで指定可能な領域を有し、
前記経路制御回路は、前記伝送経路を決定する際に、所定の範囲の前記アクセスアドレスをグループ化し、
前記転送テーブルの前記マッチ条件は、前記グループ化されたアクセスアドレスを含む
半導体集積回路システム。
【請求項４】
請求項１乃至３のいずれか一項に記載の半導体集積回路システムであって、
前記経路制御回路は、前記半導体集積回路の内部に組み込まれている
半導体集積回路システム。
【請求項５】
請求項１乃至４のいずれか一項に記載の半導体集積回路システムであって、
前記送信元コアから前記宛先コアに第１パケットの伝送が行われる際、
前記経路制御回路は、前記第１パケットの前記伝送経路を決定し、前記決定された伝送経路上の設定対象ルータに対して第１転送エントリを前記転送テーブルに設定するよう指示し、
前記第１転送エントリの前記マッチ条件は、前記第１パケットにマッチするように設定され、
前記第１転送エントリの前記出力先は、前記決定された伝送経路に沿って前記第１パケットが転送されるように設定される
半導体集積回路システム。
【請求項６】
請求項５に記載の半導体集積回路システムであって、
前記複数のルータのうち第１ルータは、前記第１パケットを受け取ると前記転送テーブルの検索を行い、
前記第１パケットにマッチするヒットエントリが前記転送テーブルに未だ無い場合、前記第１ルータは、前記第１パケットの情報を含む経路設定要求を前記経路制御回路に向けて送信し、
前記経路制御回路は、前記経路設定要求に応答して、前記第１パケットの前記伝送経路を決定し、前記第１転送エントリの設定を指示する経路設定指示を前記設定対象ルータに向けて送信し、
前記設定対象ルータに含まれる前記第１ルータは、前記経路設定指示に従って、前記第１転送エントリを前記転送テーブルに設定する
半導体集積回路システム。
【請求項７】
請求項６に記載の半導体集積回路システムであって、
前記設定対象ルータは、前記決定された伝送経路上の全てのルータであり、
前記経路制御回路は、前記設定対象ルータに対して、前記経路設定指示を一括して送信し、
前記設定対象ルータの各々は、前記経路設定指示に従って、前記第１転送エントリを前記転送テーブルに設定する
半導体集積回路システム。
【請求項８】
請求項６又は７に記載の半導体集積回路システムであって、
前記経路制御回路は、前記複数のルータのそれぞれと制御リンクを介して直接接続されており、
前記経路設定要求及び前記経路設定指示は、前記制御リンクを介して伝送される
半導体集積回路システム。
【請求項９】
請求項６又は７に記載の半導体集積回路システムであって、
前記各ルータの前記転送テーブルは、
前記経路設定要求にマッチし、前記経路設定要求を前記経路制御回路に向けて転送するような第１デフォルトエントリと、
前記経路設定指示にマッチし、前記経路設定指示を所定のルータに向けて転送するような第２デフォルトエントリと
を有し、
前記各ルータは、前記経路設定要求を受け取ると、前記第１デフォルトエントリで指定される前記出力先に前記経路設定要求を転送し、
前記各ルータは、前記経路設定指示を受け取ると、前記第２デフォルトエントリで指定される前記出力先に前記経路設定指示を転送する
半導体集積回路システム。
【請求項１０】
半導体集積回路におけるパケット伝送制御方法であって、
前記半導体集積回路は、
相互結合網を介して互いに接続された複数のコアと、
前記相互結合網上に配置された複数のルータと
を備え、
前記複数のルータの各々は、転送テーブルを備え、
前記転送テーブルの各エントリは、マッチ条件にマッチするパケットの出力先を指定し、
前記各ルータは、受信パケットを受け取ると前記転送テーブルの検索を行い、前記受信パケットにマッチするヒットエントリが前記転送テーブルに有る場合、前記ヒットエントリで指定される前記出力先に前記受信パケットを転送し、
前記複数のコアは、送信元コア及び宛先コアを含み、
前記パケット伝送方法は、
前記送信元コアから前記宛先コアへのパケットの伝送経路を動的に決定するステップと、
前記決定された伝送経路上の各ルータに対して、前記決定された伝送経路に沿ってパケット伝送が行われるように前記転送テーブルを設定するよう指示するステップと、
前記各ルータが前記転送テーブルに従ってパケット転送を行うステップと
を含む
半導体集積回路におけるパケット伝送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、相互結合網を介して互いに接続された複数のコアを備える半導体集積回路におけるパケット伝送制御技術に関する。
【背景技術】
【０００２】
相互結合網を介して互いに接続された複数のコアを備える半導体集積回路が知られている（例えば、特許文献１（特開平５−３４２１８４号公報）、特許文献２（特表２００７−５０５３８３号公報）、特許文献３（特開２００９−１１６８７２号公報）を参照）。相互結合網の場合、バス方式の場合とは異なり、ルータと呼ばれるスイッチ装置を用いることにより、コア間のパケット伝送が実現される。コア間のパケット伝送経路は予め決定され、固定されてしまうことが多い。その場合、ルータは、当該予め決定された固定経路に従って、パケット転送を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−３４２１８４号公報
【特許文献２】特表２００７−５０５３８３号公報
【特許文献３】特開２００９−１１６８７２号公報
【発明の概要】
【０００４】
相互結合網においてパケット伝送経路が予め固定されてしまうと、相互結合網の能力を十分に生かすことができない。相互結合網の能力を十分に生かすためには、パケット伝送経路が動的に、柔軟に制御可能であることが望ましい。
【０００５】
本発明の１つの目的は、相互結合網を介して互いに接続された複数のコアを備える半導体集積回路において、パケット伝送経路を動的に制御することができる有用な技術を提供することにある。
【０００６】
本発明の１つの観点において、半導体集積回路システムが提供される。その半導体集積回路システムは、半導体集積回路と、経路制御回路と、を具備する。半導体集積回路は、相互結合網を介して互いに接続された複数のコアと、相互結合網上に配置された複数のルータと、を備える。複数のルータの各々は、転送テーブルを備え、その転送テーブルの各エントリは、マッチ条件にマッチするパケットの出力先を指定する。各ルータは、受信パケットを受け取ると転送テーブルの検索を行い、受信パケットにマッチするヒットエントリが転送テーブルに有る場合、当該ヒットエントリで指定される出力先に受信パケットを転送する。複数のコアは、送信元コア及び宛先コアを含む。経路制御回路は、送信元コアから宛先コアへのパケットの伝送経路を動的に決定し、且つ、当該決定された伝送経路上の各ルータに対して、当該決定された伝送経路に沿ってパケット伝送が行われるように転送テーブルを設定するよう指示する。
【０００７】
本発明の他の観点において、半導体集積回路におけるパケット伝送制御方法が提供される。半導体集積回路は、相互結合網を介して互いに接続された複数のコアと、相互結合網上に配置された複数のルータと、を備える。複数のルータの各々は、転送テーブルを備え、その転送テーブルの各エントリは、マッチ条件にマッチするパケットの出力先を指定する。各ルータは、受信パケットを受け取ると転送テーブルの検索を行い、受信パケットにマッチするヒットエントリが転送テーブルに有る場合、当該ヒットエントリで指定される出力先に受信パケットを転送する。複数のコアは、送信元コア及び宛先コアを含む。本発明に係るパケット伝送方法は、（Ａ）送信元コアから宛先コアへのパケットの伝送経路を動的に決定するステップと、（Ｂ）決定された伝送経路上の各ルータに対して、決定された伝送経路に沿ってパケット伝送が行われるように転送テーブルを設定するよう指示するステップと、（Ｃ）各ルータが転送テーブルに従ってパケット転送を行うステップと、を含む。
【０００８】
本発明によれば、相互結合網を介して互いに接続された複数のコアを備える半導体集積回路において、パケット伝送経路を動的に制御することが可能となる。
【図面の簡単な説明】
【０００９】
上記及び他の目的、長所、特徴は、次の図面と共に説明される本発明の実施の形態により明らかになるであろう。【００１０】
【図１】図１は、本発明の実施の形態に係る半導体集積回路システムの構成を概略的に示すブロック図である。
【図２】図２は、本発明の実施の形態に係る半導体集積回路システムの動作を示すフローチャートである。
【図３】図３は、本発明の第１の実施の形態に係る半導体集積回路システムの構成例を示すブロック図である。
【図４】図４は、第１の実施の形態におけるパケットの構成例を示す概念図である。
【図５】図５は、第１の実施の形態におけるルータの構成例を示すブロック図である。
【図６】図６は、第１の実施の形態における転送テーブルの一例を示す概念図である。
【図７】図７は、第１の実施の形態における経路制御回路の構成例を示すブロック図である。
【図８】図８は、第１の実施の形態における設定エントリテーブルの一例を示す概念図である。
【図９】図９は、第１の実施の形態におけるルータの動作の一例を概念的に示している。
【図１０】図１０は、第１の実施の形態におけるルータの動作の他の例を概念的に示している。
【図１１】図１１は、第１の実施の形態におけるルータの動作の更に他の例を概念的に示している。
【図１２】図１２は、第１の実施の形態における半導体集積回路システムの動作の一例を概念的に示している。
【図１３】図１３は、第１の実施の形態における半導体集積回路システムの動作の他の例を概念的に示している。
【図１４】図１４は、本発明の第２の実施の形態に係る半導体集積回路システムの構成例を示すブロック図である。
【図１５】図１５は、第２の実施の形態における転送テーブルの一例を示す概念図である。
【発明を実施するための形態】
【００１１】
添付図面を参照して、本発明の実施の形態を説明する。
【００１２】
１．概要
図１は、本発明の実施の形態に係る半導体集積回路システム１の構成を概略的に示している。半導体集積回路システム１は、半導体集積回路１０及び経路制御回路１００を備えている。半導体集積回路１０は、ひと固まりの半導体チップあるいは半導体パッケージである。経路制御回路１００は、半導体集積回路１０内部でのパケット伝送経路を動的に制御する。この経路制御回路１００は、半導体集積回路１０の内部に組み込まれていてもよいし、半導体集積回路１０とは別に設けられていてもよい。
【００１３】
より詳細には、半導体集積回路１０は、相互結合網ＮＥＴ、複数のコア２０、及び複数のルータ３０を備えている。複数のコア２０は、相互結合網ＮＥＴを介して互いに接続されている。複数のルータ３０は、相互結合網ＮＥＴ上に配置されている。各ルータ３０は、リンクを介して、隣接ルータ３０やコア２０に接続されている。
【００１４】
コア２０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、演算回路、メモリ制御回路、メモリ、Ｉ／Ｏ制御回路、Ｉ／Ｏ、チップ内メモリ制御回路、チップ内メモリ、電源・クロック制御回路などの機能回路である。
【００１５】
各ルータ３０は、受信したパケットを転送する機能を有している。より詳細には、各ルータ３０は、転送テーブルＴＢＬを備えている。転送テーブルＴＢＬは、０以上の転送エントリを有する。各転送エントリは、「マッチ条件」と「出力リンク」との対応関係を示す。「マッチ条件」は、パケットを識別するためのパケット識別情報を含む。例えば、パケット識別情報は、パケット送信元の情報、パケット宛先の情報、パケットの種別などを含む。「出力リンク」は、「マッチ条件」にマッチするパケットが出力されるべきリンク（出力先）を示す。すなわち、各転送エントリは、マッチ条件にマッチするパケットの出力先を指定している。ルータ３０は、パケットを受け取ると、受信パケットの情報を検索キーとして用いることにより、転送テーブルＴＢＬの検索を行う。受信パケットにマッチする転送エントリ（ヒットエントリ）が転送テーブルＴＢＬに有る場合、ルータ３０は、当該ヒットエントリで指定される出力先に受信パケットを転送する。このように、ルータ３０は、自身の転送テーブルＴＢＬに従って、パケット転送処理を行うことができる。
【００１６】
本実施の形態において、相互結合網ＮＥＴにおけるパケット伝送経路は、固定的ではなく、動的及び柔軟に設定され得る。そのため、各ルータ３０の転送テーブルＴＢＬは書き換え可能であり、その内容は動的及び柔軟に設定される。そのような転送テーブルＴＢＬの内容の設計・設定を行うのが、経路制御回路１００である。経路制御回路１００は、全ルータ３０の転送テーブルＴＢＬを集中的に管理する。そして、経路制御回路１００は、各ルータ３０の転送テーブルＴＢＬの内容を、状況に応じて動的に設定することができる。
【００１７】
以下、本実施の形態に係る半導体集積回路システム１の動作の概要を説明する。図１において、送信元コア２０Ａから宛先コア２０Ｂへのパケット伝送を考える。送信元コア２０Ａはパケットの送信元であり、宛先コア２０Ｂは当該パケットの送信先である。図２は、本実施の形態に係る半導体集積回路システム１の動作を示すフローチャートである。
【００１８】
送信元コア２０Ａは、宛先コア２０Ｂに向けて第１パケットを送信する。相互結合網ＮＥＴ中のあるルータ３０（以下、「第１ルータ」と参照される）が、その第１パケットを受け取る（ステップＳ１０）。第１ルータ３０は、受け取った第１パケットの情報を検索キーとして用いることにより、転送テーブルＴＢＬの検索を行う（ステップＳ２０）。
【００１９】
第１パケットにマッチするヒットエントリが転送テーブルＴＢＬに有る場合（ステップＳ３０；Ｙｅｓ）、第１ルータ３０は、パケット転送処理を行う（ステップＳ４０）。具体的には、第１ルータ３０は、当該ヒットエントリで指定される出力先に第１パケットを転送する。
【００２０】
一方、第１パケットにマッチするヒットエントリが転送テーブルＴＢＬに未だ無い場合（ステップＳ３０；Ｎｏ）、第１ルータ３０は、「経路設定要求ＲＥＱ」を経路制御回路１００に向けて送信する（ステップＳ５０）。経路設定要求ＲＥＱは、第１パケットそのもの、あるいは、第１パケットに含まれるパケット識別情報を含んでいる。その後、処理は、経路制御回路１００による処理（ステップＳ１００）に進む。
【００２１】
まず、経路制御回路１００は、第１ルータ３０から送出された経路設定要求ＲＥＱを受信する（ステップＳ１１０）。その経路設定要求ＲＥＱに応答して、経路制御回路１００は、第１パケットの伝送経路を決定する（ステップＳ１２０）。このとき、経路制御回路１００は、相互結合網ＮＥＴ全体の状況や第１パケットの特性に応じて、当該第１パケットの伝送経路を柔軟に決定することができる。
【００２２】
続いて、経路制御回路１００は、決定された伝送経路を相互結合網ＮＥＴに反映させる。すなわち、経路制御回路１００は、決定された伝送経路に沿ったパケット伝送が実現されるように、必要なルータ３０の転送テーブル３０を制御する。このときに転送テーブル３０に追加されるべき新エントリは、以下「第１転送エントリ」と参照される。第１転送エントリの「マッチ条件」は、経路設定要求ＲＥＱに含まれる第１パケットのパケット識別情報に基いて、第１パケットにマッチするように設定される。一方、第１転送エントリの「出力リンク」は、決定された伝送経路に沿って第１パケットが転送されるように設定される。そして、経路制御回路１００は、第１転送エントリを転送テーブルＴＢＬに設定するよう指示する「経路設定指示ＳＥＴ」を、当該伝送経路上の設定対象ルータ３０に向けて送信する（ステップＳ１３０）。設定対象ルータ３０は、少なくとも第１ルータ３０を含む。設定対象ルータ３０は、上記決定された伝送経路上の全てのルータ３０であってもよい。
【００２３】
設定対象ルータ３０は、経路設定指示ＳＥＴを受け取る。そして、設定対象ルータ３０は、受け取った経路設定指示ＳＥＴに従って、第１転送エントリを自身の転送テーブルＴＢＬに設定する（ステップＳ６０）。その後は、この第１転送エントリが、第１パケットにマッチするヒットエントリとなる。従って、設定対象ルータ３０は、経路制御回路１００に経路設定要求ＲＥＱを送信することなく、転送テーブルＴＢＬに従ってパケット転送処理を実施する。
【００２４】
以上に説明されたように、本実施の形態によれば、経路制御回路１００が、送信元コア２０Ａから宛先コア２０Ｂへのパケット伝送経路を決定する。そして、経路制御回路１００は、決定された伝送経路上の各ルータ３０に対して、当該伝送経路に沿ってパケット伝送が行われるように転送テーブルＴＢＬを設定するよう指示する。これにより、決定されたパケット伝送経路が、相互結合網ＮＥＴに反映される。このように、相互結合網ＮＥＴにおけるパケット伝送経路は、固定的ではなく、経路制御回路１００によって動的及び柔軟に制御され得る。例えば、経路制御回路１００は、パケットを送信するアプリケーションの特性（例：ＱｏＳやＳｅｃｕｒｅといった種別）に応じて、パケット伝送経路を適切に決定することができる。その結果、ＱｏＳの向上や安全性の向上など、アプリケーションの特性を大きく引き出すことが可能となる。
【００２５】
また、本実施の形態では、ルータ３０がパケット伝送経路の探索・決定を行うわけではない。パケット伝送経路の決定は、それぞれのルータ３０によって個別に実施されるわけではなく、１つの経路制御回路１００によって集中的に行われる。このような集中制御により、回路面積は大幅に削減され、また、回路構成が単純化される。このことは、インターネット等の大規模ネットワークとは異なり面積制約が厳しい半導体集積回路１０内での相互結合網ＮＥＴにとって、特に好適である。本実施の形態では、回路面積や回路複雑度を抑制しながら、パケット伝送経路を動的に制御することが可能であると言える。
【００２６】
尚、経路制御回路１００は、典型的には、半導体集積回路１０（半導体チップ、半導体パッケージ）内に組み込まれる。但し、経路制御回路１００を、半導体集積回路１０の外部に設けることも可能である。その場合、外部の経路制御回路１００は、半導体集積回路１０と通信可能に接続され、半導体集積回路１０内の各ルータ３０と上述の経路設定要求ＲＥＱ及び経路設定指示ＳＥＴをやりとりする。
【００２７】
２．第１の実施の形態
２−１．全体構成
図３は、第１の実施の形態に係る半導体集積回路システム１の構成例を示すブロック図である。図３に示されるように、本実施の形態では、ルータ３０−００〜３０−３３がマトリックス状に配置され、相互結合網ＮＥＴが構成されている。ルータ３０−００〜３０−３３（ルータ３０−３０を除く）には、それぞれ、コア２０−００〜２０−３３（コア２０−３０を除く）が接続されている。経路制御回路１００は、ルータ３０−３０に接続されている。尚、図３に示される構成はあくまで一例であり、コア数、ルータ数、相互結合網のトポロジーは任意である。
【００２８】
図４は、半導体集積回路１０内の相互結合網ＮＥＴで伝送されるパケットの典型的な構成を示している。パケットは、制御情報としての「ヘッダ」、宛先コアに対するアクセス情報としての「ボディ」、及び当該パケットの正当性を保証する「テイラ」の３パートに区分される。各パートは更に、フリットと呼ばれるより細かい単位に分割され得る。例えば、「ヘッダ」は、「宛先ノード」、「パケットサイズ」、「送信元ノード」、「パケット種別」等をフリットとして含む。「パケット種別」は、ＱｏＳ重視型やセキュア型といったアプリケーションパケットの特性を示す情報である。宛先コア２０Ｂがアクセスアドレスで指定可能な領域を有する場合、例えば、宛先コア２０Ｂがメモリである場合、「ボディ」は、「アクセスアドレス」、「アクセス種別（リード／ライト）」、「書き込みデータ」等をフリットとして含む。「テイラ」は、例えば、パケット全体の「ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）」をフリットとして含む。
【００２９】
２−２．ルータ３０
図５は、本実施の形態に係るルータ３０の構成例を示すブロック図である。ルータ３０は、複数のリンク入力部３１、複数のリンク出力部３２、スイッチ部３３、及びスイッチ制御部３４を備えている。
【００３０】
リンク入力部３１は、外部リンクと接続された入力ポートであり、隣接ノード（隣接コア２０や隣接ルータ３０）からデータを受け取る。リンク出力部３２は、外部リンクと接続された出力ポートであり、隣接ノードにデータを出力する。図５の例では、リンク入力部３１ｉ及びリンク出力部３２ｉ（ｉ＝Ａ，Ｂ，Ｃ，Ｄ）が隣接ルータ３０−ｉに接続されており、リンク入力部３１Ｅ及びリンク出力部３２Ｅがコア２０に接続されている。
【００３１】
スイッチ部３３は、全てのリンク入力部３１及びリンク出力部３２と接続されている。このスイッチ部３３は、指定されたリンク入力部３１とリンク出力部３２とを互いに接続し、当該リンク入力部３１から当該リンク出力部３２にパケットを転送する。その指定を行うのが、スイッチ制御部３４である。
【００３２】
スイッチ制御部３４は、上述の転送テーブルＴＢＬを保持している。あるリンク入力部３１にパケットが入力されると、スイッチ制御部３４は、そのパケットを受け取る。そして、スイッチ制御部３４は、当該受信パケットの情報を検索キーとして用いることにより、転送テーブルＴＢＬの検索を行う（ステップＳ２０）。受信パケットにマッチするヒットエントリが転送テーブルＴＢＬに有る場合（ステップＳ３０；Ｙｅｓ）、スイッチ制御部３４は、当該ヒットエントリで指定されるリンク出力部３２に、上記パケットが入力されたリンク入力部３１を接続する。その結果、当該受信パケットが、指定されたリンク出力部３２に転送される（ステップＳ４０）。一方、ヒットエントリが転送テーブルＴＢＬに無い場合（ステップＳ３０；Ｎｏ）、スイッチ制御部３４は、経路設定要求ＲＥＱを経路制御回路１００に向けて送出する（ステップＳ５０）。また、経路設定指示ＳＥＴを受け取った場合、スイッチ制御部３４は、受け取った経路設定指示ＳＥＴに従って転送テーブルＴＢＬの設定を行う（ステップＳ６０）。
【００３３】
図６は、本実施の形態における転送テーブルＴＢＬの一例を示している。図６の例において、マッチ条件は、「送信元コアＩＤ（送信元コア２０Ａの識別子）」、「アプリＩＤ（送信元コア２０Ａ上のパケット送信元であるアプリケーションの識別子）」、「アクセス種別（リード／ライト）」、「宛先コアＩＤ（宛先コア２０Ｂの識別子）」、「アドレスグループ」、及び「パケット種別」を含んでいる。
【００３４】
「アドレスグループ」は、グループ化された所定の範囲のアクセスアドレスである。アクセスアドレスは、例えば宛先コア２０Ｂがメモリの場合に、パケット内で指定される（図４参照）。このようなアクセスアドレスは、インターネットの場合とは異なる半導体集積回路１０の相互結合網ならではの情報である。但し、メモリアクセスアドレスの数は膨大であるため、図６に示されるように、所定の範囲のアクセスアドレスが“グループ化”されている。これにより、情報量が削減され、メモリ資源がセーブされる。
【００３５】
「パケット種別」は、ＱｏＳ重視型やセキュア型といったアプリケーションパケットの特性を示す情報である（図４参照）。転送テーブルＴＢＬのマッチ条件にこのようなパケット種別が含まれていることは、アプリケーションの特性に応じてパケット伝送経路が決定されていることを意味する（後述される）。
【００３６】
また、本実施の形態において、各ルータ３０の転送テーブルＴＢＬは、上述の経路設定要求ＲＥＱ及び経路設定指示ＳＥＴを転送するための「デフォルトエントリ」を有している。より詳細には、第１デフォルトエントリＥＮＴ−ＤＥＦ１は、経路設定要求ＲＥＱにマッチし、経路設定要求ＲＥＱを転送するために用いられる。各ルータ３０において、この第１デフォルトエントリＥＮＴ−ＤＥＦ１は、経路設定要求ＲＥＱを経路制御回路１００に向けて転送するように設定されている。これにより、あるルータ３０から送出された経路設定要求ＲＥＱが経路制御回路１００に届くようになる。一方、第２デフォルトエントリＥＮＴ−ＤＥＦ２は、経路設定指示ＳＥＴにマッチし、経路設定指示ＳＥＴを転送するために用いられる。各ルータ３０において、この第２デフォルトエントリＥＮＴ−ＤＥＦ２は、経路設定指示ＳＥＴを所定のルータ３０に向けて転送するように設定されている。これにより、経路制御回路１００から送出された経路設定指示ＳＥＴが所望のルータ３０に届くようになる。尚、これらデフォルトエントリは、相互結合網ＮＥＴ上の全ルータ３０に対してあらかじめ設定されているとよい。
【００３７】
２−３．経路制御回路１００
図７は、本実施の形態に係る経路制御回路１００の構成例を示すブロック図である。経路制御回路１００は、受信部１１０、経路決定部１２０、送信部１３０、及び記憶部（記憶装置）１４０を備えている。記憶部１４０には、設定エントリテーブル１５０が格納されている。
【００３８】
受信部１１０は、経路設定要求ＲＥＱを受け取り、その経路設定要求ＲＥＱを経路決定部１２０にわたす（ステップＳ１１０）。その経路設定要求ＲＥＱに応答して、経路決定部１２０は、パケット伝送経路を決定し、また、それに応じて設定対象ルータ３０に設定すべき転送エントリを設計する（ステップＳ１２０）。更に、経路決定部１２０は、その転送エントリの設定を指示する経路設定指示ＳＥＴを作成し、その経路設定指示ＳＥＴを送信部１３０にわたす。送信部１３０は、経路設定指示ＳＥＴを設定対象ルータ３０に向けて送信する（ステップＳ１３０）。
【００３９】
また、経路決定部１２０は、設計した転送エントリを、記憶部１４０中の設定エントリテーブル１５０に格納する。図８は、設定エントリテーブル１５０の一例を示している。図８に示されるように、設定エントリテーブル１５０は、図６で示されたルータ３０の転送テーブルＴＢＬと同様の情報を有している。但し、転送エントリが設定されるルータ３０の識別子（ルータＩＤ）が追加されている。また、デフォルトエントリＥＮＴ−ＤＥＦ１、ＥＮＤ−ＤＥＦ２は省略されてもよい。
【００４０】
図６及び図８に示されるように、本実施の形態によれば、宛先コア２０Ｂにおけるアクセスアドレス（例：メモリアクセスアドレス）が、マッチ条件の一部として用いられる。但し、経路決定部１２０は、パケット伝送経路を決定する際、所定の範囲のアクセスアドレスをグループ化し、グループ化されたアクセスアドレスを「アドレスグループ」としてマッチ条件に組み込む。それは、半導体集積回路１０におけるアクセスアドレスの数は膨大であり、そのまま用いると情報量の爆発が起こってしまうためである。アドレスグループに縮約することにより、情報量が削減され、メモリ資源がセーブされる。
【００４１】
また、本実施の形態によれば、経路決定部１２０は、パケットを送信するアプリケーションの特性（ＱｏＳやＳｅｃｕｒｅといったパケット種別）に応じて、パケット伝送経路を適切に決定する。その結果、ＱｏＳの向上、安全性の向上、リアルタイム性の向上など、アプリケーションの特性を大きく引き出すことが可能となる。
【００４２】
２−４．動作例
図９は、ヒットエントリが転送テーブルＴＢＬに有る場合のルータ３０の動作の一例を概念的に示している。リンク入力部３１Ａは、隣接ルータ３０−Ａからパケットを受信する。リンク入力部３１Ａは、その受信パケットを、スイッチ部３３及びスイッチ制御部３４に送る。スイッチ制御部３４は、転送テーブルＴＢＬの検索を行い、受信パケットにマッチするヒットエントリを見つける。例えば、図６中の第１エントリＥＮＴ１がヒットエントリであるとする。この第１エントリＥＮＴ１は、リンク出力部３２Ｂを出力先として指定している。この場合、スイッチ制御部３４は、指定されたリンク出力部３２Ｂにリンク入力部３１Ａを接続するよう、スイッチ部３３を制御する。スイッチ部３３は、リンク入力部３１Ａから受け取ったパケットを、リンク出力部３２Ｂに出力する。当該パケットは、リンク出力部３２Ｂから隣接ルータ３０−Ｂに出力される。
【００４３】
図１０は、ヒットエントリが転送テーブルＴＢＬに有る場合のルータ３０の動作の他の例を、概念的に示している。リンク入力部３１Ａは、隣接ルータ３０−Ａからパケットを受信する。リンク入力部３１Ａは、その受信パケットを、スイッチ部３３及びスイッチ制御部３４に送る。スイッチ制御部３４は、転送テーブルＴＢＬの検索を行い、受信パケットにマッチするヒットエントリを見つける。本例では、ヒットエントリは、コア２０につながるリンク出力部３２Ｅを出力先として指定している。この場合、スイッチ制御部３４は、指定されたリンク出力部３２Ｅにリンク入力部３１Ａを接続するよう、スイッチ部３３を制御する。スイッチ部３３は、リンク入力部３１Ａから受け取ったパケットを、リンク出力部３２Ｅに出力する。当該パケットは、リンク出力部３２Ｅからコア２０に出力される。
【００４４】
図１１は、ヒットエントリが転送テーブルＴＢＬに無い場合のルータ３０の動作の一例を概念的に示している。リンク入力部３１Ａは、隣接ルータ３０−Ａからパケットを受信する。リンク入力部３１Ａは、その受信パケットを、スイッチ部３３及びスイッチ制御部３４に送る。スイッチ制御部３４は、転送テーブルＴＢＬの検索を行うが、ヒットエントリが無いため、経路設定要求ＲＥＱを出力する。その経路設定要求ＲＥＱは、例えば、リンク出力部３２Ｄを通して隣接ルータ３０−Ｄに出力される。
【００４５】
ルータ３０−Ｄは、経路設定要求ＲＥＱを受け取ると、第１デフォルトエントリＥＮＴ−ＤＥＦ１に従って、その経路設定要求ＲＥＱを転送する。同様の転送処理が繰り返されることにより、経路設定要求ＲＥＱはリレーされ、最終的には経路制御回路１００に到達する。その経路設定要求ＲＥＱに応答して、経路制御回路１００は、パケット伝送経路を決定し、経路設定指示ＳＥＴを隣接ルータ３０に送出する。経路設定指示ＳＥＴを受け取ったルータ３０は、第２デフォルトエントリＥＮＴ−ＤＥＦ２に従って、その経路設定指示ＳＥＴを転送する。同様の転送処理が繰り返されることにより、経路設定指示ＳＥＴは、最初に経路設定要求ＲＥＱを送出したルータ３０に到達する。
【００４６】
例えば、図１１に示されるように、経路設定指示ＳＥＴがリンク入力部３１Ｄに入力される。リンク入力部３１Ｄは、受け取った経路設定指示ＳＥＴをスイッチ制御部３４に送る。スイッチ制御部３４は、その経路設定指示ＳＥＴに従って、転送テーブルＴＢＬの設定を行う。その後は、既出の図９や図１０で示された場合と同様に、経路制御回路１００への問い合わせを行うことなく、パケット転送が行われる。
【００４７】
図１２は、送信元コア２０−００から宛先コア２０−３３へパケットＰＫＴ１が伝送される場合の一例を示している。図１２の例では、パケットＰＫＴ１を受け取った各ルータ３０が、逐一、経路制御回路１００へ問い合わせを行う。例えば、ルータ３０−３２がパケットＰＫＴ１を最初に受け取った際、そのパケットＰＫＴ１にヒットするヒットエントリはルータ３０−３２には未だ設定されていない。従って、ルータ３０−３２は、経路設定要求ＲＥＱを経路制御回路１００に向けて送信する。その経路設定要求ＲＥＱは、ルータ３０−３１及び３０−３０を経由して、経路制御回路１００に到達する。その経路設定要求ＲＥＱに応答する経路設定指示ＳＥＴは、ルータ３０−３０及び３０−３１を経由して、ルータ３０−３２に到達する。ルータ３０−３２は、その経路設定指示ＳＥＴに従って、パケットＰＫＴ１に関する転送エントリを自身の転送テーブルＴＢＬに設定する。他のルータ３０に関しても同様である。このようにして、送信元コア２０−００から送出されるパケットＰＫＴ１が、ルータ３０−００、３０−１０、３０−１１、３０−２１、３０−２２、３０−３２及び３０−３３を経由して、宛先コア２０−３３に到達する。このパケット伝送経路は、固定的ではなく、経路制御回路１００によってパケットＰＫＴ１の種別等に応じて柔軟に決定されている。
【００４８】
図１３は、送信元コア２０−００から宛先コア２０−３３へパケットＰＫＴ１が伝送される場合の他の例を示している。図１３の例では、転送テーブルＴＢＬの設定が、パケットＰＫＴ１の伝送経路上の全てのルータ３０に対して一括して実施される。具体的には、まず、ルータ３０−００が送信元コア２０−００からパケットＰＫＴ１を受け取る。ヒットエントリが無いため、ルータ３０−００は、経路設定要求ＲＥＱを経路制御回路１００に向けて送信する。その経路設定要求ＲＥＱは、ルータ３０−１０、３０−２０及び３０−３０を経由して、経路制御回路１００に到達する。経路制御回路１００は、ルータ３０−００から宛先コア２０−３３までのパケット伝送経路を決定する。本例では、経路制御回路１００は、決定したパケット伝送経路上の全てのルータ３０−００、３０−１０、３０−１１、３０−２１、３０−２２、３０−３２及び３０−３３を「設定対象ルータ」とする。そして、経路制御回路１００は、それら設定対象ルータ３０のそれぞれに対して、経路設定指示ＳＥＴを一括して送信する。それぞれの経路設定指示ＳＥＴは、それぞれの返信経路を経由して設定対象ルータ３０に到達する。設定対象ルータ３０の各々は、受け取った経路設定指示ＳＥＴに従って、パケットＰＫＴ１に関する転送エントリを自身の転送テーブルＴＢＬに設定する。本例は、経路制御回路１００による経路設定処理が一回で済むため、経路制御回路１００やネットワークの負荷が軽減され、好適である。
【００４９】
３．第２の実施の形態
図１４は、第２の実施の形態に係る半導体集積回路システム１の構成例を示すブロック図である。既出の第１の実施の形態と重複する説明は省略される。本実施の形態によれば、経路制御回路１００は、専用の制御リンク５を介して、ルータ３０−００〜３０−３３のそれぞれと直接接続されている。この場合、上述の経路設定要求ＲＥＱは、各ルータ３０から経路制御回路１００に制御リンク５を介して直接送られる。また、上述の経路設定指示ＳＥＴは、経路制御回路１００から設定対象ルータ３０に制御リンク５を介して直接送られる。
【００５０】
従って、本実施の形態では、図１５に示されるように、転送テーブルＴＢＬからデフォルトエントリＥＮＴ−ＤＥＦ１、ＥＮＴ−ＤＥＦ２を省くことが可能となる。これにより、各ルータ３０の転送テーブルＴＢＬのサイズが縮小される。また、経路設定要求ＲＥＱや経路設定指示ＳＥＴの転送が不要となるため、各ルータ３０にかかる処理負荷も軽減される。尚、このような構成が実現可能なのは、大規模インターネットの場合とは異なり、半導体集積回路１０の場合は配線コストが少ないためである。
【００５１】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【００５２】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００５３】
（付記１）
半導体集積回路と、
経路制御回路と
を具備し、
前記半導体集積回路は、
相互結合網を介して互いに接続された複数のコアと、
前記相互結合網上に配置された複数のルータと
を備え、
前記複数のルータの各々は、転送テーブルを備え、
前記転送テーブルの各エントリは、マッチ条件にマッチするパケットの出力先を指定し、
前記各ルータは、受信パケットを受け取ると前記転送テーブルの検索を行い、前記受信パケットにマッチするヒットエントリが前記転送テーブルに有る場合、前記ヒットエントリで指定される前記出力先に前記受信パケットを転送し、
前記複数のコアは、送信元コア及び宛先コアを含み、
前記経路制御回路は、前記送信元コアから前記宛先コアへのパケットの伝送経路を動的に決定し、且つ、前記決定された伝送経路上の各ルータに対して、前記決定された伝送経路に沿ってパケット伝送が行われるように前記転送テーブルを設定するよう指示する
半導体集積回路システム。
【００５４】
（付記２）
付記１に記載の半導体集積回路システムであって、
前記経路制御回路は、前記送信元コアから前記宛先コアへパケットを送信するアプリケーションの特性に応じて前記伝送経路を決定し、
前記転送テーブルの前記マッチ条件は、前記アプリケーションの特性を含む
半導体集積回路システム。
【００５５】
（付記３）
付記１又は２に記載の半導体集積回路システムであって、
前記宛先コアは、アクセスアドレスで指定可能な領域を有し、
前記経路制御回路は、前記伝送経路を決定する際に、所定の範囲の前記アクセスアドレスをグループ化し、
前記転送テーブルの前記マッチ条件は、前記グループ化されたアクセスアドレスを含む
半導体集積回路システム。
【００５６】
（付記４）
付記１乃至３のいずれか一項に記載の半導体集積回路システムであって、
前記経路制御回路は、前記半導体集積回路の内部に組み込まれている
半導体集積回路システム。
【００５７】
（付記５）
付記１乃至４のいずれか一項に記載の半導体集積回路システムであって、
前記送信元コアから前記宛先コアに第１パケットの伝送が行われる際、
前記経路制御回路は、前記第１パケットの前記伝送経路を決定し、前記決定された伝送経路上の設定対象ルータに対して第１転送エントリを前記転送テーブルに設定するよう指示し、
前記第１転送エントリの前記マッチ条件は、前記第１パケットにマッチするように設定され、
前記第１転送エントリの前記出力先は、前記決定された伝送経路に沿って前記第１パケットが転送されるように設定される
半導体集積回路システム。
【００５８】
（付記６）
付記５に記載の半導体集積回路システムであって、
前記複数のルータのうち第１ルータは、前記第１パケットを受け取ると前記転送テーブルの検索を行い、
前記第１パケットにマッチするヒットエントリが前記転送テーブルに未だ無い場合、前記第１ルータは、前記第１パケットの情報を含む経路設定要求を前記経路制御回路に向けて送信し、
前記経路制御回路は、前記経路設定要求に応答して、前記第１パケットの前記伝送経路を決定し、前記第１転送エントリの設定を指示する経路設定指示を前記設定対象ルータに向けて送信し、
前記設定対象ルータに含まれる前記第１ルータは、前記経路設定指示に従って、前記第１転送エントリを前記転送テーブルに設定する
半導体集積回路システム。
【００５９】
（付記７）
付記６に記載の半導体集積回路システムであって、
前記設定対象ルータは、前記決定された伝送経路上の全てのルータであり、
前記経路制御回路は、前記設定対象ルータに対して、前記経路設定指示を一括して送信し、
前記設定対象ルータの各々は、前記経路設定指示に従って、前記第１転送エントリを前記転送テーブルに設定する
半導体集積回路システム。
【００６０】
（付記８）
付記６又は７に記載の半導体集積回路システムであって、
前記経路制御回路は、前記複数のルータのそれぞれと制御リンクを介して直接接続されており、
前記経路設定要求及び前記経路設定指示は、前記制御リンクを介して伝送される
半導体集積回路システム。
【００６１】
（付記９）
付記６又は７に記載の半導体集積回路システムであって、
前記各ルータの前記転送テーブルは、
前記経路設定要求にマッチし、前記経路設定要求を前記経路制御回路に向けて転送するような第１デフォルトエントリと、
前記経路設定指示にマッチし、前記経路設定指示を所定のルータに向けて転送するような第２デフォルトエントリと
を有し、
前記各ルータは、前記経路設定要求を受け取ると、前記第１デフォルトエントリで指定される前記出力先に前記経路設定要求を転送し、
前記各ルータは、前記経路設定指示を受け取ると、前記第２デフォルトエントリで指定される前記出力先に前記経路設定指示を転送する
半導体集積回路システム。
【００６２】
（付記１０）
半導体集積回路におけるパケット伝送制御方法であって、
前記半導体集積回路は、
相互結合網を介して互いに接続された複数のコアと、
前記相互結合網上に配置された複数のルータと
を備え、
前記複数のルータの各々は、転送テーブルを備え、
前記転送テーブルの各エントリは、マッチ条件にマッチするパケットの出力先を指定し、
前記各ルータは、受信パケットを受け取ると前記転送テーブルの検索を行い、前記受信パケットにマッチするヒットエントリが前記転送テーブルに有る場合、前記ヒットエントリで指定される前記出力先に前記受信パケットを転送し、
前記複数のコアは、送信元コア及び宛先コアを含み、
前記パケット伝送方法は、
前記送信元コアから前記宛先コアへのパケットの伝送経路を動的に決定するステップと、
前記決定された伝送経路上の各ルータに対して、前記決定された伝送経路に沿ってパケット伝送が行われるように前記転送テーブルを設定するよう指示するステップと、
前記各ルータが前記転送テーブルに従ってパケット転送を行うステップと
を含む
半導体集積回路におけるパケット伝送制御方法。
【００６３】
本出願は、２０１０年４月６日に出願された日本国特許出願２０１０−０８７８７６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2011125889.tif 000003
【図２】
2011125889.tif 000004
【図３】
2011125889.tif 000005
【図４】
2011125889.tif 000006
【図５】
2011125889.tif 000007
【図６】
2011125889.tif 000008
【図７】
2011125889.tif 000009
【図８】
2011125889.tif 000010
【図９】
2011125889.tif 000011
【図１０】
2011125889.tif 000012
【図１１】
2011125889.tif 000013
【図１２】
2011125889.tif 000014
【図１３】
2011125889.tif 000015
【図１４】
2011125889.tif 000016
【図１５】
2011125889.tif 000017
【国際調査報告】
2011125889.tif 000018
2011125889.tif 000019