ネットワークに含まれるノード間の経路を探索するためのシステムおよび方法
【課題】処理時間の短い経路探索システムを提供する。
【解決手段】再構成可能なデバイス1のPEマトリクス10に仮想ネットワーク35を構成し、経路探索を行うシステム30を提供する。システム30は、ネットワークの情報89に基づきPEマトリクス10に仮想ネットワーク35を構成するユニット31と、仮想宛先ノードブロックに到着した探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路を得て、それらの経路から所定の条件に合致する経路を選択する経路選択ユニット32とを有する。仮想ネットワーク構成ユニット31は、PEにより、複数の仮想ノードブロックを構成し、接続マトリクスにより、複数の仮想リンクを構成する。ソースノードに対応する仮想ソースノードブロックは、それに繋がった全ての仮想リンクに探索パケットを送信する。仮想ノードブロックは、受信した探索パケットに、経過情報を追加し送信する。
【解決手段】再構成可能なデバイス1のPEマトリクス10に仮想ネットワーク35を構成し、経路探索を行うシステム30を提供する。システム30は、ネットワークの情報89に基づきPEマトリクス10に仮想ネットワーク35を構成するユニット31と、仮想宛先ノードブロックに到着した探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路を得て、それらの経路から所定の条件に合致する経路を選択する経路選択ユニット32とを有する。仮想ネットワーク構成ユニット31は、PEにより、複数の仮想ノードブロックを構成し、接続マトリクスにより、複数の仮想リンクを構成する。ソースノードに対応する仮想ソースノードブロックは、それに繋がった全ての仮想リンクに探索パケットを送信する。仮想ノードブロックは、受信した探索パケットに、経過情報を追加し送信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークにおける種々の経路探索、特に、ディスジョイントな経路の探索に関するものである。
【背景技術】
【0002】
インターネットの爆発的な発展と普及とに伴い、仕事および日常生活においてコンピュータネットワークが頻繁に利用されるようになっている。コンピュータネットワークではルーティングプロトコルによって交換される情報に基づいてルーティングテーブルが作成され、そのルーティングテーブルに従いパケットが配送される。代表的なルーティングプロトコルとしては、単一の自律システム(AS(Autonomous System))内で用いられるOSPF(Open Shortest Path First)、RIP(Routing Information Protocol)、SI−SI(Intermediate System to Intermediate System)がある。また、P2Pおよび無線(ワイヤレス)端末によるネットワーク(マルチホップ無線ネットワーク、アドホックネットワーク(Ad hoc network))用として提唱されているDSR(Dynamic Source Routing)プロトコルがある。さらに、異なるAS間のルーティングプロトコルであるBGP(Border Gateway Protocol)がある。
【特許文献1】特開2007−159099号公報
【特許文献2】特開2006−285386号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
これらのルーティングプロトコルは、基本的には、ノード(典型的にはルータ)間の情報の交換により、ソース(ソースノード)から目的ノード(宛先ノード)までのネットワークの情報(ネットワークトポロジ)を取得する機能と、取得されたネットワークの情報に基づき適当なアルゴリズムにより、ソースノードと宛先ノードとの間の適当な経路を決定する機能を備えている。たとえば、OSPFでは、ネットワーク・トポロジーのデータベースを構築し、ダイクストラ法と呼ばれる最短経路探索アルゴリズムを用いて、ルーティングテーブルが作成される。最短経路の探索には、ホップ数だけではなく、経路のコスト、帯域幅、遅延などを含めた要素(ルーティングメトリック(routing metric))も考慮することが望ましい。
【0004】
インターネットに代表されるIPネットワークにおけるパケットのルーティングは、通過するルータにおいて、そのルータが保持するルーティングテーブルを参照することで行われる。ルーティングテーブルには、宛先ネットワークアドレスと対応するNHR(Next Hop Router(ネクストホップ))が記録され、各パケットの宛先アドレスと最長一致するネットワークアドレスに対応したNHRへパケットが転送される。それぞれのルータにおいて、以上の動作を繰り返すことで、宛先までパケットが転送される。
【0005】
今後、インターネットの更なる普及とともにネットワークの規模が拡大すると、経路探索処理の負担が増大すると考えられる。また、ノードの状態の変化により、新たな経路を探索する機会も増加する。典型的には、モバイルの端末がインターネットに参加することにより、ルーティングテーブルをさらに頻繁に更新することが要求される可能性がある。
【0006】
さらに、近年、光ネットワークにおいては、リンクコストとして、リンクの速度だけでなく、波長予約の成功率など複数の要因を考慮することが提案されている。また、リンクコストは、そのリンクを使用しているユーザ数、リンクを経由するデータ種類などの要因により変動するため、それらの要因の変動も考慮してルーティングテーブルが更新されることが望ましい。したがって、経路探索を行い、ルーティングテーブルを更新する頻度はさらに増大するものと考えられる。
【0007】
特許文献1には、複数のノードを含むアドホックネットワークにおいて、あるモバイルノードから、モバイルノードにサービスを提供することのできる複数のサービスノードへのディスジョイントなルートを発見する方法が記載されている。その方法は、モバイルノードからルート要求を送信するステップと、ネットワークのノードによりルート要求を配信するステップと、あるルート要求があるサービスノードへ到達すると、モバイルノードからサービスノードへのルート要求のトレースを含んだルート応答を返却するステップと、モバイルノードが受信したルート応答に基づいてディスジョイントなルートを決定するステップと、モバイルノードが受信したルート応答が、十分な数のディスジョイントなルートに対応していない場合に、インクリメントされたパス拡張パラメータを有する新たなルート要求を発行するステップとを含む。
【0008】
あるモバイルルートから、インターネットと接続するためのサービスノード(ゲートウェイノード)へのディスジョイントな経路を発見することが記載されている。アドホックネットワークをインターネットへ接続する際に、通信の信頼性を向上するために、現在通信しているゲートウェイへのルートが切断されると、別のゲートウェイへの高速マルチホップを実行することが記載されている。そのような事態に対応するように、常に複数のルートを確保するためには、ルート探索のプロセスを頻繁に行う必要があり、ルート探索に要する処理時間も短縮する必要がある。
【0009】
特許文献2には、複数種類のプロセッシングエレメント(PE)の機能およびそれらの接続を変えて種々のデータパスを動的に再構成するタイプの集積回路装置が記載されている。
【課題を解決するための手段】
【0010】
本発明の一態様は、複数のノードと、それらを接続する複数のリンクとを含むネットワークにおいて、ソースノードから、1または複数の宛先ノードへ至る経路を探索するためのシステムである。このシステムは、再構成ユニットと、再構成ユニットに仮想ネットワークを構成するユニットとを有する。再構成ユニットは、複数のプロセッシングエレメントと、複数のプロセッシングエレメントの接続を動的に変更可能な接続マトリクスとを含み、動的に回路を再構成可能なユニットである。
【0011】
仮想ネットワークを構成するユニットは、1または複数のルーティングプロトコルにより収集されたネットワークの情報に基づき、再構成ユニットに仮想ネットワークを構成する。さらに、仮想ネットワークを構成するユニットは、複数のプロセッシングエレメントにより、ネットワークに含まれる複数のノードにそれぞれ対応する複数の仮想ノードブロックを構成し、接続マトリクスにより、複数のリンクにそれぞれ対応する複数の仮想リンクを構成する。
【0012】
仮想ネットワークを構成するユニットは、さらに、複数の仮想ノードブロックのうち、ソースノードに対応する仮想ソースノードブロックを、仮想ソースノードブロックに繋がった全ての仮想リンクに探索パケットを送信するように構成する。仮想ネットワークを構成するユニットは、さらに、複数の仮想ノードブロックのそれぞれを、受信した探索パケットに、受信した探索パケットの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加し、受信した探索パケットを複製した探索パケットを、受信した探索パケットの到来した仮想リンクを除き、それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信するように構成する。
【0013】
当該システムは、さらに、複数の仮想ノードブロックのうち、宛先ノード(ディスティネーションノード)に対応する仮想宛先ノードブロック(仮想ディスティネーションノードブロック)に到着した複数の探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択する経路選択ユニットを有する。
【0014】
仮想ネットワークを構成するユニットおよび/または経路選択ユニットは、再構成ユニットに構成される回路により実現しても良く、あるいは再構成ユニットを制御するためのRISCなどのプロセッサにより実現しても良く、再構成ユニットを含むチップとは物理的に異なる外部のプロセッサにより実現しても良い。
【0015】
このシステムにおいては、回路を動的に再構成できる再構成ユニットに、探索パケットを転送する機能を備えた仮想ネットワークを再構成する。再構成ユニットに構成される仮想ノードブロックは、探索パケットを所定の条件で複写および転送する機能を有すればよいので、それぞれの仮想ノードブロックを1つまたは少ない数のプロセッシングエレメント(PE)で実装できる。このため、適当な数のPEをハードウェア資源として備えた再構成ユニットに、経路探索の対象となるネットワーク(ターゲットネットワーク)に対応する仮想ネットワークを再構成できる。また、チップ化された再構成ユニットのハードウェア資源が不足する場合は、複数のチップを接続したり、ターゲットネットワークに対応する仮想ネットワークをマルチコンテキスト化して時分割で再構成ユニットに再構成することが可能である。
【0016】
そして、再構成ユニットには回路を動的に再構成できるので、ルーティングプロトコルにより収集されたネットワーク(オリジナルのネットワークまたはターゲットのネットワーク)の情報が更新されると、それに基づき、再構成ユニットに更新された情報に基づく仮想ネットワークを再構成できる。
【0017】
このシステムにおいては、再構成ユニットに仮想ネットワークを再構成できる。このため、ダイクストラ法などの多くの計算時間を必要とする経路探索方法を用いずに、仮想ネットワークに探索パケットを流すことにより経路探索を実行できる。再構成ユニットに構成される仮想ネットワークにおいては、探索パケットの転送は再構成ユニットの動作速度(クロック速度)で行われる。したがって、特許文献1に示したような方法に比較し、短時間で経路を発見できる。
【0018】
さらに、このシステムにおいては、仮想ネットワークが構成された再構成ユニット内で探索パケットを処理できる。したがって、仮想宛先ノードに受信した探索パケットにより経路を選択でき、仮想ソースノードに応答を戻す必要はない。このため、オリジナルのネットワークに探索パケットを発信した場合において発生する、他のノードからのルート応答を待つ時間を省略できる。
【0019】
経過情報は、通過した仮想リンクおよび/または仮想ノードブロックをビット位置で識別できるビットマップデータを含むことが望ましい。経路選択ユニットは、複数の経過情報のビットマップデータのビット単位の論理積を演算することにより、ソースノードから宛先ノードに至る複数の経路から、ディスジョイントな経路を選択することができる。
【0020】
再構成ユニットの複数のプロセッシングエレメントは、遅延量を動的に設定できる複数の遅延エレメントを含むことが望ましい。仮想ネットワークを構成するユニットは、接続マトリクスと、複数の遅延エレメントとにより、複数の仮想リンクを構成することができる。それぞれの仮想リンクに含まれる遅延エレメントに、対応するリンクのコストに対応する遅延量を設定することにより、経路選択ユニットは、仮想宛先ノードブロックが受信したタイミングにより、探索パケットが通過した経路について、リンクコストも含めた情報を得ることができ、その情報を経路の選択に利用できる。
【0021】
経路選択ユニットは、仮想宛先ノードブロックに到着した順番の早い複数の探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択することが好ましい。このシステムにおいては、仮想ネットワークに探索パケットを送信するので、仮想宛先ノードブロックに到着した順番(先に到着するタイミングは)、ターゲットのネットワークにおけるルートのホップ数、その他のメトリックが反映された情報である。したがって、その情報を利用して経路をフィルタリングできる。さらに、経路の選択に要する処理時間を短縮できる。
【0022】
仮想ネットワークを構成するユニットは、それぞれの仮想ノードブロックを、それぞれの仮想ノードブロックに到着した順番の早いものから複数の探索パケットの複製のみを、受信した探索パケットの到来した仮想リンクを除き、それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信するように再構成することが望ましい。仮想宛先ノードブロックに到着する順番が早い探索パケットに絞って送信することができ、再構成ユニットにおける無用な資源の消費を防止できる。再構成ユニットにおいて、所定の数の探索パケットが通過した仮想ノードブロックを解放できるので、その仮想ノードブロックを構成しているPEを、次のネットワークにおける経路探索に用いたり、他のアプリケーションを処理するための回路に利用できる。
【0023】
また、仮想ネットワークを構成するユニットは、さらに、それぞれの仮想ノードブロックを、通過した仮想リンクおよび/または仮想ノードブロックについての同じ情報を持つ探索パケットを廃棄するように構成することが望ましい。ループした経路を辿っている探索パケットを廃棄することにより、無用な探索パケットが仮想ノードブロック間で交換される事態を防止し、処理速度を高めたり、消費電力を削減したりできる可能性がある。
【0024】
本発明の他の態様は、複数のノードと、それらを接続する複数のリンクとを含むネットワークにおいて、ソースノードから、1または複数の宛先ノードへ至る経路を、再構成ユニットを用いて探索する方法である。再構成ユニットは、複数のプロセッシングエレメントと、前記複数のプロセッシングエレメントの接続を動的に変更可能な接続マトリクスとを含み、動的に回路を再構成可能である。
【0025】
当該方法は、以下のステップを含む。
1.1または複数のルーティングプロトコルにより収集されたネットワークの情報に基づき、複数のプロセッシングエレメントにより、ネットワークに含まれる複数のノードにそれぞれ対応する複数の仮想ノードブロックを構成し、接続マトリクスにより、複数のリンクにそれぞれ対応する複数の仮想リンクを構成し、再構成ユニットに仮想ネットワークを構成すること。
2.複数の仮想ノードブロックのうち、ソースノードに対応する仮想ソースノードブロックが、仮想ソースノードブロックに繋がった全ての仮想リンクに探索パケットを送信すること。
3.複数の仮想ノードブロックのそれぞれが、受信した探索パケットに、受信した探索パケットの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加し、受信した探索パケットを複製した探索パケットを、受信した探索パケットの到来した仮想リンクを除き、それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信すること。
4.複数の仮想ノードブロックのうち、宛先ノードに対応する仮想宛先ノードブロックに到着した複数の探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択すること。
【0026】
経過情報は、通過した仮想リンクおよび/または仮想ノードブロックをビット位置で識別できるビットマップデータを含み、経路を選択すること(ステップ4)は、複数の経過情報のビットマップデータのビット単位の論理積を演算することにより、ソースノードから宛先ノードに至る複数の経路から、ディスジョイントな経路を選択することを含む。
【0027】
複数のプロセッシングエレメントは、遅延量を動的に設定できる複数の遅延エレメントを含み、仮想ネットワークを構成すること(ステップ1)は、接続マトリクスと、複数の遅延エレメントとにより、複数の仮想リンクを構成し、それぞれの仮想リンクに含まれる遅延エレメントには、対応するリンクのコストに対応する遅延量を設定することを含む。
【0028】
経路を選択すること(ステップ4)は、仮想宛先ノードブロックに到着した順番の早いものから複数の探索パケットの前記経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択することを含む。
【0029】
それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信すること(ステップ3)は、それぞれの仮想ノードブロックが、それぞれの仮想ノードブロックに到着した順番の早いものから複数の探索パケットの複製のみを、受信した探索パケットの到来した仮想リンクを除き、それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信することを含む。
【0030】
それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信すること(ステップ3)は、通過した仮想リンクおよび/または仮想ノードブロックについての同じ情報を持つ探索パケットを廃棄することを含む。
【発明を実施するための最良の形態】
【0031】
図1に、経路探索を行うシステムの一例として、ルーティングテーブルを更新する機能を備えたルータの概要を示している。このルータ100は、コンピュータネットワークの一つのノードを構成するデバイスであり、CPU、メモリ、回路を再構成可能なプロセッサなどを含む適当なハードウェア資源と、それらを制御するための適当なソフトウェア資源とを備えている。ルータ100は、有線または無線を含む適当な伝送経路により隣接するルータとの間でデータを交換可能なネットワークインターフェイス101と、このネットワークインターフェイス101を介して送受信するパケットデータ(パケット)を生成および解析する解析ユニット102と、パケットのIPヘッダーの情報に基づき、パケットを送出するネクストホップルータ(ネクストホップ)を選択する機能を備えたルーティングユニット80とを含む。
【0032】
ルーティングユニット80の機能は、専用のモジュール、あるいは他の機能と共用のハードウェア資源、例えば、CPUあるいは再構成可能なプロセッサとソフトウェアにより提供される。ルーティングユニット80は、ルーティングテーブル81を参照してパケットを送出するネクストホップを選択する機能82と、動的なルーティングテーブルの更新を可能とする適当なルーティングプロトコル、例えばOSPFにより、近隣のルータを含めたネットワークの情報、特に、ルーティングに関するネットワークの構成を示す情報を取得し、ルーティングテーブル81を更新する機能83とを含む。この更新する機能83は、ルーティングプロトコルにより取得したネットワークの情報を解析対象のネットワークとし、そのネットワークの構成を示すネットワーク行列89を生成する。
【0033】
OSPFのようなリンクステート型のルーティングアルゴリズムでは、ルータ間でリンク情報をLSA(Link-State Advertisement)で定期的に交換する。したがって、そのネットワークに属する各ノードはネットワーク中のすべてのリンク情報(コスト)を知っている。したがって、ネットワーク行列89には、LSAにより得られたネットワーク内のリンクコスト情報を含めることができる。ネットワーク行列89には、さらに、OSPFとともに、あるいはOSPFに替えて、他のルーティングプロトコルにより取得されたネットワークの情報を含めることができる。この例では、ネットワーク行列89には、ターゲットのネットワークに含まれる複数のノードと、複数のノードを接続する複数のリンクと、それぞれのリンクのコストとが含まれる。インターネットなどのコンピュータネットワークにおいて、ノード間のコスト(リンクコスト)を決定する典型的な要素は、通信速度の逆数である。その他に、光ネットワークにおいては波長予約の成功率、送信対象のデータ種別、QoSにより予約された帯域など複数の要因をリンクコストとして反映することができる。ネットワーク行列89には、コスト以外の他の、経路の優劣を比較できる要素(ルーティングメトリック)を含めても良い。
【0034】
図2(a)にネットワーク行列の一例を示している。このネットワーク行列MNは、図2(b)に示したネットワークNに対応するものであり、ネットワークNはノードA〜Fの6つのノードを含む。ネットワーク行列MNは、ネットワークNに含まれる各ノードを基端とし、基端のノードに繋がる他のノードを先端とする各リンクのコストをエレメントとして含む。無限大のエレメントは、ネットワーク行列MNに含まれるノードであって、直接のルートでは繋がっていないノードを示す。ノードが未接続であることを示す値は無限大に限らない。
【0035】
ルーティングユニット80は、ルーティングプロトコルを用いて収集されたネットワークの情報(ネットワーク行列)89に基づき、経路探索を行うシステム(経路探索システム)30を含む。この経路探索システム30は、内部に、回路を動的に再構成可能な領域(再構成ユニット)を備えたデバイス(再構成可能デバイス)1を含む。そして、経路探索システム30は、ネットワーク行列89に基づき、経路を発見しようとしているネットワーク(ターゲットのネットワーク)に対応するネットワーク構成を、経路探索を目的とした範囲で仮想的に再構成可能デバイス1に再構成し、経路探索を行う。
【0036】
図3(a)に、再構成可能なデバイスの一例を示している。このデバイス1は、本願の出願人が開発したDAPDNAと称する半導体集積回路装置である。このデバイス1は、DAPと呼ばれるRISCコアモジュール2と、DNAと呼ばれるダイナミックリコンフィグラブルデータフローアクセレレータ3とを含む。デバイス1は、DAP2およびDNA3に加え、DNA3のダイレクト入出力用のインターフェイス4と、PCIインターフェイス5と、SDRAMインターフェイス6と、DMAコントローラ7と、その他の周辺デバイス8と、これらを接続するための高速スイッチングバス(内部バス)9とを含む。DAP2は、デバッグインターフェイス42aと、RISCコア42bと、命令キャッシュ42cと、データキャッシュ42dとを含む。DNA3は、376個のPE(PEs、処理エレメント)が2次元に配置されたPEマトリクス10と、このPEマトリクス10に含まれるPEsの機能および/またはPEsの接続を変えてPEマトリクス10を再構成するためのコンフィグレーションデータ18が格納されるコンフィグレーションメモリ19とを含む。PE10は、複数のプロセッシングエレメントPE(PEs)と、複数のPEの接続を動的に変更可能な接続マトリクスとを含み、動的に回路を再構成可能な再構成ユニットに相当する。PEマトリクス10に配置されるPEの数は、上記に限定されるものではない。
【0037】
コンフィグレーションメモリ19は、複数バンクの構成になっている。例えば、図3(b)に示すように、PEマトリクス10には、フォアグラウンドバンクに格納されるコンフィグレーションデータ18により第1の機能(データフロー、回路デザイン)17aが構成される。また、異なるバックグラウンドバンクにそれぞれ格納されるコンフィグレーションデータにより、第2の機能17bおよび第3の機能17cがそれぞれ構成される。メモリ19のバンクを切り替えることにより、PEマトリクス10には、第1の機能17aに変わって第2の機能17bまたは第3の機能17cが再構成される。PEマトリクス10の再構成は、例えば、1サイクル(クロックサイクル)でダイナミックに行なわれる。
【0038】
図3(c)は、PEマトリクス10に回路を再構成する一例である。あるアプリケーション、例えば、MPEGデコーダを複数の機能(サブファンクション)に時分割し、それらの機能を、PEマトリクス10に時分割で動的に再構成し、MPEGデコーダの機能を専用回路(専用ハードウェア)で提供する。同様に、経路探索において、ターゲットのネットワークに含まれるノード数が膨大な場合は、ネットワークを複数のサブネットワークに分割し、それらのサブネットワークに対応する仮想ネットワークを時分割で動的に再構成することが可能である。したがって、このデバイス1を採用した経路探索システム30は、大規模ネットワークに対しても適用できる。このような使用により、再構成可能なデータ処理装置であるデバイス1を用いて、多くのハードウエア資源を必要とするアプリケーションを、少ないハードウエア資源で実行できる。
【0039】
図3(d)は、PEマトリクス10に回路を構成する他の例の一つである。たとえば、再生方式が異なるアプリケーションを実行するために、複数の機能がそれぞれ実現されるようにPEマトリクス10を再構成できる。同様に、ルータ100において、デバイス1は、経路探索システム30として機能させるだけではなく、ルーティングテーブル81を参照してパケットを送出するネクストホップを選択する機能82などとしても用いることができる。このような使用により、多くのアプリケーションを共通のハードウエア(デバイス)1を用いて実行できる。
【0040】
このデバイス1は、さらに、プログラムレベル(命令レベル)ではなく、データフローレベル(データパスレベル、ハードウエアレベル)で多数の機能を切り換えて実装できる。このため、専用のハードウエアに匹敵する速度で処理を行うことができる。したがって、経路探索のための仮想ネットワークをPEマトリクス10に再構成することにより、専用のハードウェアで構成したのに匹敵する処理速度を得ることができる。その一方で、PEマトリクス10は動的に再構成できるので、経路探索の対象となるネットワークの変動に対してもフレキシブルに、遅滞なく追従できる。
【0041】
また、PEマトリクス10に含まれるPEsは、クロックにより同期した処理を行うことが可能であり、パイプライン処理に適したデータフロー(データパス)をPEマトリクス10に再構成できる。さらに、多数のPEsにより並列処理を行う複数のデータフローを並列に再構成することも可能である。したがって、PEマトリクス10に仮想ネットワークを再構成し、経路探索用のパケット(探索パケット)を流すことにより、仮想ネットワーク内で、ターゲットのネットワークと同様に、複数の探索パケットを並列に送受信することが可能となる。さらに、探索パケットの送受信(流れ)が同期的に処理されるので、探索パケットが目的のノード(たとえば、宛先ノード)に到達したタイミングを、その探索パケットが通過した経路の質に関する情報として捉えて、経路を選択するための情報として利用することが可能となる。このように、PEマトリクス10に仮想ネットワークを回路として動的に再構成することにより、ハードウエアによる高速な処理速度と、ソフトウエアのような柔軟性とが融合された経路探索環境を提供できる。
【0042】
図4に、PEマトリクス10を拡大して示している。PEマトリクス10は、縦横に2次元に配置された複数のプロセッシングエレメント(PE)45と、それらの間に格子状に配置された配線47と、配線47の接続ポイントで縦横の配線47の接続を自由に切り替えることができるスイッチングユニット46とを備えている。配線47およびスイッチングユニット46が、複数のPE45の接続を自由に変えることができる接続マトリクス44を構成する。接続マトリクス44には、以下で説明する遅延用のPEなどの、接続環境を調整するためのPEが含まれていても良い。
【0043】
再構成可能なPEマトリクス(回路領域)10を構成するPE45の一例は、ルックアップテーブルなどにより自在に機能を設定可能なものである。この集積回路デバイス1のマトリクス10には、算術論理演算用のエレメント、遅延用のエレメント、メモリ用のエレメント、データを入力または出力するためにアドレスを発生させるエレメント、データの入力または出力用のエレメントなど、特定の機能あるいは処理に適した内部構成のエレメントが配置されている。ある程度の機能グループに分けたエレメントを配置することにより冗長性が減少し、AC特性および処理速度が向上できる。
【0044】
プロセッサ2から、またはコンフィグレーションメモリ19から、制御バス9aを介して、各PE45に対してコンフィグレーションデータが供給される。このコンフィグレーションデータにより、各々のPE45の機能と、配線群47の接続とが制御され、マトリクス10の内部に、種々のデータフロー(データパス)を自由に構成できる。さらに、PEマトリクス10は、外部メモリインターフェイス6などの外界との接続のため、処理対象のデータを入出力する入力バッファ48および出力バッファ49と、アクセス調停ユニットとして機能するバススイッチングユニット(バスインターフェイス、BSU)9bとを備えている。
【0045】
図5は、PE45の一例である。このPEは、算術演算および論理演算に適した構成の演算用である。PE45は、機能を変更可能な内部データパス領域45bと、その内部データパス領域45bの機能を設定する制御ユニット45aとを備えている。内部データパス部45bは、配線47から所望の入力データを抽出するためのシフト回路SHIFTおよびマスク回路MASKと、入力データdixおよびdiyをクロック信号によりラッチするための入力レジスタ(FF)と、論理演算ユニットALUと、配線47に出力する出力データdoをクロック信号によりラッチするための出力レジスタ(FF)とを備えている。
【0046】
各PEの制御ユニット45aは、プロセッサ2から制御バス9aを介してコンフィグレーションデータを受信し、内部データパス部45bの構成を制御する。したがって、コンフィグレーションデータにより、1つ、または複数のPE45により、探索パケットを、所定の条件で転送するような機能を備えたノードを再構成できる。
【0047】
図6は、PE45の他の例の1つである。このPEは、データが伝送されるタイミングを遅延する処理に適したものである。この内部データパス部45dは、複数のセレクタとフリップフロップの組み合わせで構成された遅延回路45eと、入力側のフリップフロップ(FF)と、出力側のフリップフロップ(FF)と、回路を選択するセレクタ45sとを備えている。遅延回路45eは、コンフィグレーションデータにより、本例では0〜5クロックの遅延をセットできる。したがって、入力毎に1〜7クロックの遅延を制御できる。さらに、コンフィグレーション情報により、2つの入力系統(X系統およびY系統)を直列に接続することが可能であり、2倍の遅延時間を制御できる。また、これらのデータと共にキャリー信号用の行配線群および列配線群で導かれるキャリー信号cixおよびciyも同様のデータパスにより遅延して出力される。
【0048】
この遅延用のPE45を、仮想ネットワークの仮想ノード間を接続する仮想リンクに含めるようにPEマトリクス10を再構成することが可能である。遅延用のPE45の遅延量はコンフィグレーションデータによりバリアブルに設定できるので、その遅延量により、リンクコストなどのリンクの優劣を決める要素を、探索パケットの遅延(転送時間の遅れ)として探索パケットの履歴(経過情報)に含めることができる。
【0049】
図1に示すように、経路探索システム30は、再構成ユニットであるPEマトリクス10に仮想ネットワーク35を構成する構成ユニット31と、仮想ネットワークを用いて探索された経路から所定の条件に合致する経路を選択する経路選択ユニット32とを含む。構成ユニット31は、ルータ100がサポートする1または複数のルーティングプロトコルにより収集されたネットワークの情報(ネットワーク行列)89に基づき、PEマトリクス10に仮想ネットワーク35を再構成する。経路選択ユニットは、仮想ネットワーク35に含める複数の仮想ノードブロックのうち、宛先ノード(ディスティネーションノード)に対応する仮想宛先ノードブロックに到着した複数の探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択する。この例では、これらのユニット31および32としての機能は、DAP2にロードされるプログラムにより提供されるようになっている。これらのユニット31および32は、PEマトリクス10に、仮想ネットワーク35とともに、あるいは時分割で再構成しても良い。
【0050】
図7に、経路探索の対象となるターゲットのネットワークの一例を示している。図8に、そのネットワークに対応するように、経路探索のためにPEマトリクス10に再構成された仮想ネットワークの一例を示している。ターゲットのネットワーク21はN1〜N11の11個のノードと、これらのノードを接続するL1〜L13の13個のリンクとを含む。仮想ネットワーク35は、ノードN1〜N11にそれぞれ対応する仮想ノードブロックPN1〜PN11と、リンクL1〜L13にそれぞれ対応する仮想リンクPL1〜PL13を含む。仮想ノードブロックPN1〜PN11は、1または複数のPE45により構成され、仮想リンクPL1〜PL13は、PE45を接続する接続マトリクス44により構成される。仮想リンクPL1〜PL13には、配線47およびスイッチングマトリクス46だけではなく、遅延用のエレメントが含まれていても良い。なお、以下では、仮想ノードブロックおよび仮想リンクを一般的に示す場合は、仮想ノードブロックPNおよび仮想リンクPLとして参照する。
【0051】
構成ユニット31は、ネットワーク行列89に基づいて、PEマトリクス10に仮想ネットワーク35を再構成するためのコンフィグレーションデータ18を生成し、そのコンフィグレーションデータ18をPEマトリクス10またはコンフィグレーションメモリに供給することにより仮想ネットワーク35として機能する回路(データフロー、データパス)をPEマトリクス10に再構成する。さらに、構成ユニット31は、仮想ノードブロックPN1〜PN11のうち、ソースノードN1に対応する仮想ソースノードブロックPN1が、仮想ソースノードブロックPN1に繋がった全ての仮想リンク、この場合は仮想リンクPL1およびPL2に探索パケットSPを送信するようにコンフィグレーションデータ18を生成し、仮想ソースノードブロックPNを再構成する。
【0052】
また、構成ユニット31は、複数の仮想ノードブロックPN1〜PN11のうち、仮想ソースノードブロックN1と、仮想宛先ノードブロックN8を除いたそれぞれの仮想ノードブロックPNを、受信した探索パケットSPに、受信した探索パケットSPの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加するようにコンフィグレーションデータ18を生成し、それぞれの仮想ソースノードブロックPNを再構成する。構成ユニット31は、さらに、受信した探索パケットSPを複製した探索パケットSPを、受信した探索パケットSPの到来した仮想リンクPLを除き、それぞれの仮想ノードブロックPNに繋がった全ての仮想リンクPLに送信するようにコンフィグレーションデータ18を生成し、それぞれの仮想ソースノードブロックPNを再構成する。
【0053】
構成ユニット31は、さらに、それぞれの仮想ノードブロックPNを、それぞれの仮想ノードブロックPNに到着した順番の早いものから複数の探索パケットSPの複製のみを、受信した探索パケットの到来した仮想リンクPLを除き、それぞれの仮想ノードブロックPNに繋がった全ての仮想リンクPLに送信するようにコンフィグレーションデータ18を生成し、仮想ソースノードブロックPNを再構成する。
【0054】
構成ユニット31は、さらに、それぞれの仮想ノードブロックPNを、通過した仮想リンクPLおよび/または仮想ノードブロックPNについての同じ情報を持つ探索パケットSPを廃棄するように構成するようにコンフィグレーションデータ18を生成し、仮想ソースノードブロックPNを再構成する。
【0055】
図9に、探索パケットSPの一例を示している。この探索パケットSPは、ヘッダー情報24と、経過情報25とを含む。経過情報25は、探索パケットSPが通過した仮想リンクPLおよび/または仮想ノードブロックPNをビット位置で識別できるビットマップデータを含む。以下の例では、経過情報25は、探索パケットSPが通過した仮想リンクPLをビット位置で識別できるビットマップデータとなっている。経過情報25に、探索パケットSPが通過した仮想ノードブロックPNをビット位置で識別できるビットマップデータを含めることは、仮想リンクと同様に可能である。仮想宛先ノードブロックPN8に到達した探索パケットSPの経過情報25には、仮想ソースノードブロックPN1から仮想宛先ノードブロックPN8に到達するまでに探索パケットSPが通過した仮想リンクPLの情報が収められている。したがって、経路選択ユニット32は、仮想宛先ノードブロックPN8に到達した探索パケットSPの経過情報25にアクセスすることにより仮想ソースノードPN1から仮想宛先ノードブロックPN8に至る経路を知ることができる。その経路は、ターゲットのネットワーク21における経路に相当するものであり、所定の条件に合った経路を見つけることにより、ルーティングテーブル81を更新できる。
【0056】
探索される経路の典型的なものの1つは、ソースノードN1から宛先ノードN8に至る最短経路である。たとえば、仮想リンクL1〜L13の遅延を一定にすることにより、最も早く仮想宛先ノードブロックPN8に到達した探索パケットSPの経路を最小ホップ数の経路として選択できる。また、仮想リンクL1〜L13の遅延をリンクコストに基づいて設定することにより、経路選択ユニット32は、最も早く仮想宛先ノードブロックPN8に到達した探索パケットSPの経路を最小コストの経路として選択できる。
【0057】
探索される経路の典型的なものの異なる例は、ソースノードN1から宛先ノードN8に至るディスジョイントな経路である。経路選択ユニット32は、仮想宛先ノードブロックPN8に到達した複数の探索パケットSPの経過情報25のビットマップデータのビット単位の論理積を演算することにより、ソースノードN1から宛先ノードN8に至る複数の経路から、ディスジョイントな経路を選択することができる。経過情報25のビットマップデータのビット単位の論理積が全て0であれば、比較した経過情報25に含まれる経路はディスジョイントな経路である。ビットマップ(ビット列)の比較は、PEマトリクス10に含まれる算術演算用のPEを用いることにより極めて短時間に処理できる。DAP2によりソフトウェアでビットマップの比較を行っても良い。
【0058】
さらに、仮想リンクL1〜L13の遅延を一定にすることにより、仮想宛先ノードブロックPN8に到達したタイミングにより、経路選択ユニット32は、最小ホップ数のディスジョイントな経路を選択できる。仮想リンクL1〜L13の遅延をリンクコストに基づいて設定することにより、経路選択ユニット32は、仮想宛先ノードブロックPN8に到達した探索パケットSPのタイミングにより、最小コストのディスジョイントな経路を選択できる。
【0059】
図10に、ソースノードから、1または複数の宛先ノードへ至る経路を、再構成ユニットであるPEマトリクス10を用いて探索する方法の一例を示している。ステップ71において、ルータ100が提供する1または複数のルーティングプロトコルによりネットワークの情報89を収集する。ステップ72において、構成ユニット31は、ネットワークの情報89に基づき、PEマトリクス10に仮想ネットワーク35を構成する。ステップ73において、ソースノードN1に対応する仮想ソースノードブロックPN1から、仮想ソースノードブロックPN1に繋がった全ての仮想リンクPL1およびPL2に探索パケットSPを送信する。この段階の経過情報25は、全てのビットが0である。
【0060】
ステップ74において、仮想ノードブロックPNは、探索パケットSPを受信すると、受信した探索パケットSPの通過した仮想リンクの情報を含む経過情報25に追加する。たとえば、仮想ノードブロックPN2は、経過情報25のビットマップの1番目のビットを1にセットすることにより、仮想リンクPL1を通過したことを経過情報25に追加する。そして、その経過情報25を含む探索パケットSPを複製し、受信した探索パケットSPの到来した仮想リンクPL1を除き、仮想ノードブロックPNに繋がった全ての仮想リンクPLに送信する。たとえば、仮想ノードブロックPN2は、経過情報25のビットマップの1番目のビットが1にセットされた探索パケットSPの複製を2つ生成し、それぞれを、仮想リンクPL3およびPL4に送信する。
【0061】
ステップ75において、十分な数の探索パケットSPが仮想宛先ノードブロックPN8に到達するまで仮想ノードブロックPN間において探索パケットSPを転送する。十分な数の探索パケットSPが仮想宛先ノードブロックPN8に到達すると、ステップ76において、経路選択ユニット32は、得られた複数の探索パケットSPの経過情報25により、ソースノードN1から宛先ノードN8に至る複数の経路を得ることができる。そして、得られた経路の中から、所定の条件に合致する経路を選択する。
【0062】
ステップ75において、ディスジョイントな経路を選択する場合は、上述したように、複数の経過情報25のビットマップデータの論理積を演算することが望ましい。最小ホップ数の最短経路、最小コストの最短経路の探索もディスジョイントな経路の探索とともに行うことができる。仮想宛先ノードブロックPN8に順番の早いものから(先に到着した)複数の探索パケットSPのみの(に限定した)経過情報25により、ディスジョイントな経路で、最短の経路を選択することが可能である。基本的には、種々の条件を加味して、最短な経路を選択することがルート探索の目的であり、全ての探索パケットSPが仮想宛先ノードブロックPN8に到達することを待つ必要はない。
【0063】
また、ステップ74において、それぞれの仮想ノードブロックPNは、到着した順番の早いものから複数の探索パケットSPの複製のみを転送することが望ましい。種々の条件を加味して、最短な経路を選択することがルート探索の目的であり、無駄にリンクをたどっている探索パケットSPを活かす必要は通常の場合はない。さらに、ステップ74において、通過した仮想リンク(または仮想ノードブロック)についての同じ情報を経過情報25に持つ探索パケットSPを廃棄することが望ましい。たとえば、仮想リンクPL3を経過した情報を持つ探索パケットSPが仮想リンクPL3を通して仮想ノードブロックPN4に到達したときは、その探索パケットSPは、仮想リンクPL3をループしていることを意味する。ループする経路を示す探索パケットSPは、経路探索には不要であり、そのような探索パケットSPは破棄し、仮想ネットワーク35を流れる探索パケットSPの数を減らすことが望ましい。
【0064】
図11から図17に、図7に示したネットワーク21について、経路探索システム30により経路が探索される様子を示している。まず、ネットワーク21内のすべてのリンクに、リンク番号(L1〜L13)を付与する。リンク番号は、SRLG(Shared Risk Link Group)番号のようなものにしてもよいが、本例ではリンク番号で独立性を促進する。
【0065】
図11に示したステップ1において、S(ソース)ノードN1(PN1)からソースノードN1につながっているすべてのノードに対して、探索パケットSPを流して探索を開始する。
【0066】
図12に示したステップ2において、探索パケットSPが到着したノードN(PN)は、当該ノードNに接続し、逆戻りとならないノードNすべてに1つずつ探索パケットSPを流して探索を行う。この際、それぞれの探索パケットSPは通過したリンク番号を含む経過情報25を保持する。
【0067】
図13〜図16に示すように、ステップ3〜ステップ6において、上記と同様に、1サイクルごとに次のノードN(PN)へ探索を行う。図15に示したステップ5では、ループを作った探索パケットSPを廃棄している。ループの検出方法としては、経過情報25の通過ノード番号から判断する方法と、探索パケットSPに適当な識別情報を付加して各仮想ノードブロックPNがすでに通過している探索パケットSPを把握し、仮想リンクPLを再度探索しようとした場合に廃棄する方法とが考えられる。各仮想リンクPLの遅延を同じに設定することが可能であり、その場合、PEマトリクス10に再構成された仮想ネットワーク35においては、仮想ノードブロックPNにおけるレイテンシを別にすれば、1サイクル毎に次の仮想ノードブロックPNの探索を行うことができる。したがって、多数のノードおよびリンクを含むネットワーク21の経路探索を短時間で行うことができる。
【0068】
遅延エレメントにより各仮想リンクPLにコストをセットした場合であっても、1つの仮想リンクPLについて数クロックの遅れが発生するだけであり、実際のネットワーク21にパケットを流して、各ノードにおいて、各種のネットワークプロトコルが処理するのを待って、ルート探索用のパケットが送受信されるのと比較すると、遙かに短時間でネットワーク21の経路探索を行うことができる。さらに、仮想ネットワーク35は、経路探索システム30の内部に存在しているので、仮想宛先ノードブロックPN8に到達した探索パケットSPをソースノードブロックPN1に戻さなくても、経過情報25に基づき経路を探索できる。この点でも、ターゲットのネットワーク21にパケットを流すことに比較すると、はるかに短時間で経路探索を行うことができる。
【0069】
図17に示したステップ7では、すべてのルートで探索が終了している。仮想宛先ノードブロックPN8に到達した探索パケットSPに含まれる経路情報25の例は、早く到着した順に以下の通りである。かっこ内は、リンク番号を、Lを除いて示す。
ルート1 (1,4,7) 3hop
ルート2 (2,5,12,7) 4hop
ルート3 (1,3,6,13) 4hop
ルート4 (2,5,8,9,10,11) 6hop
ルート5 (1,4,12,8,9,10,11) 7hop
ルート6 (2,5,12,4,3,6,13) 7hop
【0070】
したがって、経路選択ユニット32においては、ルート1が最小ホップ数の最短経路であることがわかる。さらに、経路選択ユニット32は、これら6つのルートの中でディスジョイントなルートの組合せを求めることができる。
【0071】
図18に、各ルートを辿って仮想宛先ノードブロックPN8に到達した探索パケットSPに含まれている経過情報25を示している。経過情報25は、少なくとも13ビット以上のビット幅を持つビットマップデータであり、通過した仮想リンクPLに相当する位置のビットが1になっている。経過情報25は、たとえば、100リンク程度を含むネットワークであれば100ビット幅が必要であり、13バイト程度のデータになる。
【0072】
ルート1に対してディスジョイントなルートを求める場合は、ルート1の経過情報25と、他のすべてのルート(ルート2〜6)の経過情報25とのビット単位の論理積(AND)を演算すれば良い。1つでも論理積が“1”であれば、ディスジョイントではない。
【0073】
図19に、ソフトウェアで論理積を求める方法の1つをフローチャートにより示している。まず、ルートi(1〜6)の使用しているリンク番号j(1〜13)をl(i,j)行列とする。次に1つのルート(例えばルート1)を選択し、他のすべてのルート(例えばルート2〜6)のリンク番号ごとに論理積(AND)をとり、1つでも論理積が“1”であれば、ディスジョイントではないと判断する。
【0074】
その結果、経路選択ユニット32においては、以下のようなディスジョイントなルートの組み合わせを得ることができる。
ルート1とルート4
ルート2とルート3
ルート3と、ルート2およびルート4
ルート4とルート3
ルート5および6にはディスジョイントなルートは存在しない。
【0075】
さらに、経路選択ユニット32は、以下の3つのディスジョイントルートの候補が計算できる。
ルート1(3hop)+ルート4(6hop)= 9hop
ルート2(4hop)+ルート3(4hop)= 8hop
ルート3(4hop)+ルート4(6hop)= 10hop
この場合、ルート2とルート3との組み合せが、もっともホップ数が少なくなることが分かる。したがって、このケースでは、経路選択ユニット32は、理想解としてルート2およびルート3との組み合わせを選択する。これらのルート2およびルート3は、図20に示すようにリンクディスジョイントであるとともに、ノードディスジョイントなルートである。ノードディスジョイントなルートを選択することにより、さらにリンクのみならず、ノードの欠陥に対して信頼性の高いルーティングテーブル81を提供できる。積極的にノードディスジョイントなルートを選択する場合は、経過情報25に通過したノード(仮想ノードブロック)の識別情報を含めることが望ましい。また、ディスジョイントなルートを選択する条件は、総ホップ数が最少に限定されず、コストが反映されている場合は、総コスト数が最少となる組み合わせであっても良い。あるいは、ディスジョイントなルートのコスト差あるいはホップ差が最少になるような組み合わせであっても良い。
【0076】
また、大規模ネットワークでは、すべてのルートを探索してくるのを待つのは、探索時間が大きくなってしまう問題がある。そこで、経路選択ユニット32は、仮想宛先ノードブロックPN8に到着した順番の早い探索パケットSPのベストm個のルートのみに制限して選択する。
【0077】
また、到着した順番の早いもののベストmを仮想宛先ノードブロックPN8で得るため、各中継ノードブロックPNでも、すべて到着した順番の早いものm個のみを処理して、残りは廃棄する。このことによって、ネットワーク内の探索は、最大m、n(nはノード数)で上限が決まる。
【0078】
さらに、PEマトリクス10のPEなどのハードウェア資源が不足する場合は、仮想ネットワーク35をマルチコンテキスト化し、時分割でPEマトリクス10に再構成することが可能である。また、複数のデバイス1のPEマトリクス10をダイレクト接続し、仮想的にPEマトリクス10のハードウェア資源を拡大しても良い。
【0079】
また、この経路探索システム30においては、再構成ユニットであるPEマトリクス10に仮想ネットワークが再構成できれば、ルート検索が可能となる。したがって、異なるルーティングプロトコルが適用される複数のネットワークあるいは複数のASをカバーする範囲のルート検索にも適用できる。
【図面の簡単な説明】
【0080】
【図1】ルータの概略構成を示す図。
【図2】図2(a)はネットワーク行列の一例、図2(b)は対応するネットワークの一例を示す図。
【図3】図3(a)は、再構成可能なデバイスの一例の概略構成を示し、図3(b)は、PEマトリクスの概略を示し、図3(c)および図3(d)は、PEマトリクスを動的に再構成する様子を示す図。
【図4】PEマトリクスの構成を示す図。
【図5】PEの一例の概略構成を示す図。
【図6】PEの他の例の概略構成を示す図。
【図7】ルート探索のターゲットのネットワークの一例を示す図。
【図8】仮想ネットワークの一例を示す図。
【図9】探索パケットの一例を示す図。
【図10】経路探索のプロセスを示すフローチャート。
【図11】経路探索の一例(ステップ1)を示す図。
【図12】経路探索のステップ2を示す図。
【図13】経路探索のステップ3を示す図。
【図14】経路探索のステップ4を示す図。
【図15】経路探索のステップ5を示す図。
【図16】経路探索のステップ6を示す図。
【図17】経路探索のステップ7を示す図。
【図18】経過情報のビットマップを示す図。
【図19】論理積を求めるプロセスの一例を示すフローチャート。
【図20】ディスジョイントなルートの組み合わせの一例を示す図。
【符号の説明】
【0081】
1 再構成可能デバイス、 10 PEマトリクス(再構成ユニット)
30 経路探索システム
31 仮想ネットワーク構成ユニット、 32 経路選択ユニット
35 仮想ネットワーク
80 ルーティングユニット
100 ルータ
【技術分野】
【0001】
本発明は、ネットワークにおける種々の経路探索、特に、ディスジョイントな経路の探索に関するものである。
【背景技術】
【0002】
インターネットの爆発的な発展と普及とに伴い、仕事および日常生活においてコンピュータネットワークが頻繁に利用されるようになっている。コンピュータネットワークではルーティングプロトコルによって交換される情報に基づいてルーティングテーブルが作成され、そのルーティングテーブルに従いパケットが配送される。代表的なルーティングプロトコルとしては、単一の自律システム(AS(Autonomous System))内で用いられるOSPF(Open Shortest Path First)、RIP(Routing Information Protocol)、SI−SI(Intermediate System to Intermediate System)がある。また、P2Pおよび無線(ワイヤレス)端末によるネットワーク(マルチホップ無線ネットワーク、アドホックネットワーク(Ad hoc network))用として提唱されているDSR(Dynamic Source Routing)プロトコルがある。さらに、異なるAS間のルーティングプロトコルであるBGP(Border Gateway Protocol)がある。
【特許文献1】特開2007−159099号公報
【特許文献2】特開2006−285386号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
これらのルーティングプロトコルは、基本的には、ノード(典型的にはルータ)間の情報の交換により、ソース(ソースノード)から目的ノード(宛先ノード)までのネットワークの情報(ネットワークトポロジ)を取得する機能と、取得されたネットワークの情報に基づき適当なアルゴリズムにより、ソースノードと宛先ノードとの間の適当な経路を決定する機能を備えている。たとえば、OSPFでは、ネットワーク・トポロジーのデータベースを構築し、ダイクストラ法と呼ばれる最短経路探索アルゴリズムを用いて、ルーティングテーブルが作成される。最短経路の探索には、ホップ数だけではなく、経路のコスト、帯域幅、遅延などを含めた要素(ルーティングメトリック(routing metric))も考慮することが望ましい。
【0004】
インターネットに代表されるIPネットワークにおけるパケットのルーティングは、通過するルータにおいて、そのルータが保持するルーティングテーブルを参照することで行われる。ルーティングテーブルには、宛先ネットワークアドレスと対応するNHR(Next Hop Router(ネクストホップ))が記録され、各パケットの宛先アドレスと最長一致するネットワークアドレスに対応したNHRへパケットが転送される。それぞれのルータにおいて、以上の動作を繰り返すことで、宛先までパケットが転送される。
【0005】
今後、インターネットの更なる普及とともにネットワークの規模が拡大すると、経路探索処理の負担が増大すると考えられる。また、ノードの状態の変化により、新たな経路を探索する機会も増加する。典型的には、モバイルの端末がインターネットに参加することにより、ルーティングテーブルをさらに頻繁に更新することが要求される可能性がある。
【0006】
さらに、近年、光ネットワークにおいては、リンクコストとして、リンクの速度だけでなく、波長予約の成功率など複数の要因を考慮することが提案されている。また、リンクコストは、そのリンクを使用しているユーザ数、リンクを経由するデータ種類などの要因により変動するため、それらの要因の変動も考慮してルーティングテーブルが更新されることが望ましい。したがって、経路探索を行い、ルーティングテーブルを更新する頻度はさらに増大するものと考えられる。
【0007】
特許文献1には、複数のノードを含むアドホックネットワークにおいて、あるモバイルノードから、モバイルノードにサービスを提供することのできる複数のサービスノードへのディスジョイントなルートを発見する方法が記載されている。その方法は、モバイルノードからルート要求を送信するステップと、ネットワークのノードによりルート要求を配信するステップと、あるルート要求があるサービスノードへ到達すると、モバイルノードからサービスノードへのルート要求のトレースを含んだルート応答を返却するステップと、モバイルノードが受信したルート応答に基づいてディスジョイントなルートを決定するステップと、モバイルノードが受信したルート応答が、十分な数のディスジョイントなルートに対応していない場合に、インクリメントされたパス拡張パラメータを有する新たなルート要求を発行するステップとを含む。
【0008】
あるモバイルルートから、インターネットと接続するためのサービスノード(ゲートウェイノード)へのディスジョイントな経路を発見することが記載されている。アドホックネットワークをインターネットへ接続する際に、通信の信頼性を向上するために、現在通信しているゲートウェイへのルートが切断されると、別のゲートウェイへの高速マルチホップを実行することが記載されている。そのような事態に対応するように、常に複数のルートを確保するためには、ルート探索のプロセスを頻繁に行う必要があり、ルート探索に要する処理時間も短縮する必要がある。
【0009】
特許文献2には、複数種類のプロセッシングエレメント(PE)の機能およびそれらの接続を変えて種々のデータパスを動的に再構成するタイプの集積回路装置が記載されている。
【課題を解決するための手段】
【0010】
本発明の一態様は、複数のノードと、それらを接続する複数のリンクとを含むネットワークにおいて、ソースノードから、1または複数の宛先ノードへ至る経路を探索するためのシステムである。このシステムは、再構成ユニットと、再構成ユニットに仮想ネットワークを構成するユニットとを有する。再構成ユニットは、複数のプロセッシングエレメントと、複数のプロセッシングエレメントの接続を動的に変更可能な接続マトリクスとを含み、動的に回路を再構成可能なユニットである。
【0011】
仮想ネットワークを構成するユニットは、1または複数のルーティングプロトコルにより収集されたネットワークの情報に基づき、再構成ユニットに仮想ネットワークを構成する。さらに、仮想ネットワークを構成するユニットは、複数のプロセッシングエレメントにより、ネットワークに含まれる複数のノードにそれぞれ対応する複数の仮想ノードブロックを構成し、接続マトリクスにより、複数のリンクにそれぞれ対応する複数の仮想リンクを構成する。
【0012】
仮想ネットワークを構成するユニットは、さらに、複数の仮想ノードブロックのうち、ソースノードに対応する仮想ソースノードブロックを、仮想ソースノードブロックに繋がった全ての仮想リンクに探索パケットを送信するように構成する。仮想ネットワークを構成するユニットは、さらに、複数の仮想ノードブロックのそれぞれを、受信した探索パケットに、受信した探索パケットの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加し、受信した探索パケットを複製した探索パケットを、受信した探索パケットの到来した仮想リンクを除き、それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信するように構成する。
【0013】
当該システムは、さらに、複数の仮想ノードブロックのうち、宛先ノード(ディスティネーションノード)に対応する仮想宛先ノードブロック(仮想ディスティネーションノードブロック)に到着した複数の探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択する経路選択ユニットを有する。
【0014】
仮想ネットワークを構成するユニットおよび/または経路選択ユニットは、再構成ユニットに構成される回路により実現しても良く、あるいは再構成ユニットを制御するためのRISCなどのプロセッサにより実現しても良く、再構成ユニットを含むチップとは物理的に異なる外部のプロセッサにより実現しても良い。
【0015】
このシステムにおいては、回路を動的に再構成できる再構成ユニットに、探索パケットを転送する機能を備えた仮想ネットワークを再構成する。再構成ユニットに構成される仮想ノードブロックは、探索パケットを所定の条件で複写および転送する機能を有すればよいので、それぞれの仮想ノードブロックを1つまたは少ない数のプロセッシングエレメント(PE)で実装できる。このため、適当な数のPEをハードウェア資源として備えた再構成ユニットに、経路探索の対象となるネットワーク(ターゲットネットワーク)に対応する仮想ネットワークを再構成できる。また、チップ化された再構成ユニットのハードウェア資源が不足する場合は、複数のチップを接続したり、ターゲットネットワークに対応する仮想ネットワークをマルチコンテキスト化して時分割で再構成ユニットに再構成することが可能である。
【0016】
そして、再構成ユニットには回路を動的に再構成できるので、ルーティングプロトコルにより収集されたネットワーク(オリジナルのネットワークまたはターゲットのネットワーク)の情報が更新されると、それに基づき、再構成ユニットに更新された情報に基づく仮想ネットワークを再構成できる。
【0017】
このシステムにおいては、再構成ユニットに仮想ネットワークを再構成できる。このため、ダイクストラ法などの多くの計算時間を必要とする経路探索方法を用いずに、仮想ネットワークに探索パケットを流すことにより経路探索を実行できる。再構成ユニットに構成される仮想ネットワークにおいては、探索パケットの転送は再構成ユニットの動作速度(クロック速度)で行われる。したがって、特許文献1に示したような方法に比較し、短時間で経路を発見できる。
【0018】
さらに、このシステムにおいては、仮想ネットワークが構成された再構成ユニット内で探索パケットを処理できる。したがって、仮想宛先ノードに受信した探索パケットにより経路を選択でき、仮想ソースノードに応答を戻す必要はない。このため、オリジナルのネットワークに探索パケットを発信した場合において発生する、他のノードからのルート応答を待つ時間を省略できる。
【0019】
経過情報は、通過した仮想リンクおよび/または仮想ノードブロックをビット位置で識別できるビットマップデータを含むことが望ましい。経路選択ユニットは、複数の経過情報のビットマップデータのビット単位の論理積を演算することにより、ソースノードから宛先ノードに至る複数の経路から、ディスジョイントな経路を選択することができる。
【0020】
再構成ユニットの複数のプロセッシングエレメントは、遅延量を動的に設定できる複数の遅延エレメントを含むことが望ましい。仮想ネットワークを構成するユニットは、接続マトリクスと、複数の遅延エレメントとにより、複数の仮想リンクを構成することができる。それぞれの仮想リンクに含まれる遅延エレメントに、対応するリンクのコストに対応する遅延量を設定することにより、経路選択ユニットは、仮想宛先ノードブロックが受信したタイミングにより、探索パケットが通過した経路について、リンクコストも含めた情報を得ることができ、その情報を経路の選択に利用できる。
【0021】
経路選択ユニットは、仮想宛先ノードブロックに到着した順番の早い複数の探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択することが好ましい。このシステムにおいては、仮想ネットワークに探索パケットを送信するので、仮想宛先ノードブロックに到着した順番(先に到着するタイミングは)、ターゲットのネットワークにおけるルートのホップ数、その他のメトリックが反映された情報である。したがって、その情報を利用して経路をフィルタリングできる。さらに、経路の選択に要する処理時間を短縮できる。
【0022】
仮想ネットワークを構成するユニットは、それぞれの仮想ノードブロックを、それぞれの仮想ノードブロックに到着した順番の早いものから複数の探索パケットの複製のみを、受信した探索パケットの到来した仮想リンクを除き、それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信するように再構成することが望ましい。仮想宛先ノードブロックに到着する順番が早い探索パケットに絞って送信することができ、再構成ユニットにおける無用な資源の消費を防止できる。再構成ユニットにおいて、所定の数の探索パケットが通過した仮想ノードブロックを解放できるので、その仮想ノードブロックを構成しているPEを、次のネットワークにおける経路探索に用いたり、他のアプリケーションを処理するための回路に利用できる。
【0023】
また、仮想ネットワークを構成するユニットは、さらに、それぞれの仮想ノードブロックを、通過した仮想リンクおよび/または仮想ノードブロックについての同じ情報を持つ探索パケットを廃棄するように構成することが望ましい。ループした経路を辿っている探索パケットを廃棄することにより、無用な探索パケットが仮想ノードブロック間で交換される事態を防止し、処理速度を高めたり、消費電力を削減したりできる可能性がある。
【0024】
本発明の他の態様は、複数のノードと、それらを接続する複数のリンクとを含むネットワークにおいて、ソースノードから、1または複数の宛先ノードへ至る経路を、再構成ユニットを用いて探索する方法である。再構成ユニットは、複数のプロセッシングエレメントと、前記複数のプロセッシングエレメントの接続を動的に変更可能な接続マトリクスとを含み、動的に回路を再構成可能である。
【0025】
当該方法は、以下のステップを含む。
1.1または複数のルーティングプロトコルにより収集されたネットワークの情報に基づき、複数のプロセッシングエレメントにより、ネットワークに含まれる複数のノードにそれぞれ対応する複数の仮想ノードブロックを構成し、接続マトリクスにより、複数のリンクにそれぞれ対応する複数の仮想リンクを構成し、再構成ユニットに仮想ネットワークを構成すること。
2.複数の仮想ノードブロックのうち、ソースノードに対応する仮想ソースノードブロックが、仮想ソースノードブロックに繋がった全ての仮想リンクに探索パケットを送信すること。
3.複数の仮想ノードブロックのそれぞれが、受信した探索パケットに、受信した探索パケットの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加し、受信した探索パケットを複製した探索パケットを、受信した探索パケットの到来した仮想リンクを除き、それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信すること。
4.複数の仮想ノードブロックのうち、宛先ノードに対応する仮想宛先ノードブロックに到着した複数の探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択すること。
【0026】
経過情報は、通過した仮想リンクおよび/または仮想ノードブロックをビット位置で識別できるビットマップデータを含み、経路を選択すること(ステップ4)は、複数の経過情報のビットマップデータのビット単位の論理積を演算することにより、ソースノードから宛先ノードに至る複数の経路から、ディスジョイントな経路を選択することを含む。
【0027】
複数のプロセッシングエレメントは、遅延量を動的に設定できる複数の遅延エレメントを含み、仮想ネットワークを構成すること(ステップ1)は、接続マトリクスと、複数の遅延エレメントとにより、複数の仮想リンクを構成し、それぞれの仮想リンクに含まれる遅延エレメントには、対応するリンクのコストに対応する遅延量を設定することを含む。
【0028】
経路を選択すること(ステップ4)は、仮想宛先ノードブロックに到着した順番の早いものから複数の探索パケットの前記経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択することを含む。
【0029】
それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信すること(ステップ3)は、それぞれの仮想ノードブロックが、それぞれの仮想ノードブロックに到着した順番の早いものから複数の探索パケットの複製のみを、受信した探索パケットの到来した仮想リンクを除き、それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信することを含む。
【0030】
それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信すること(ステップ3)は、通過した仮想リンクおよび/または仮想ノードブロックについての同じ情報を持つ探索パケットを廃棄することを含む。
【発明を実施するための最良の形態】
【0031】
図1に、経路探索を行うシステムの一例として、ルーティングテーブルを更新する機能を備えたルータの概要を示している。このルータ100は、コンピュータネットワークの一つのノードを構成するデバイスであり、CPU、メモリ、回路を再構成可能なプロセッサなどを含む適当なハードウェア資源と、それらを制御するための適当なソフトウェア資源とを備えている。ルータ100は、有線または無線を含む適当な伝送経路により隣接するルータとの間でデータを交換可能なネットワークインターフェイス101と、このネットワークインターフェイス101を介して送受信するパケットデータ(パケット)を生成および解析する解析ユニット102と、パケットのIPヘッダーの情報に基づき、パケットを送出するネクストホップルータ(ネクストホップ)を選択する機能を備えたルーティングユニット80とを含む。
【0032】
ルーティングユニット80の機能は、専用のモジュール、あるいは他の機能と共用のハードウェア資源、例えば、CPUあるいは再構成可能なプロセッサとソフトウェアにより提供される。ルーティングユニット80は、ルーティングテーブル81を参照してパケットを送出するネクストホップを選択する機能82と、動的なルーティングテーブルの更新を可能とする適当なルーティングプロトコル、例えばOSPFにより、近隣のルータを含めたネットワークの情報、特に、ルーティングに関するネットワークの構成を示す情報を取得し、ルーティングテーブル81を更新する機能83とを含む。この更新する機能83は、ルーティングプロトコルにより取得したネットワークの情報を解析対象のネットワークとし、そのネットワークの構成を示すネットワーク行列89を生成する。
【0033】
OSPFのようなリンクステート型のルーティングアルゴリズムでは、ルータ間でリンク情報をLSA(Link-State Advertisement)で定期的に交換する。したがって、そのネットワークに属する各ノードはネットワーク中のすべてのリンク情報(コスト)を知っている。したがって、ネットワーク行列89には、LSAにより得られたネットワーク内のリンクコスト情報を含めることができる。ネットワーク行列89には、さらに、OSPFとともに、あるいはOSPFに替えて、他のルーティングプロトコルにより取得されたネットワークの情報を含めることができる。この例では、ネットワーク行列89には、ターゲットのネットワークに含まれる複数のノードと、複数のノードを接続する複数のリンクと、それぞれのリンクのコストとが含まれる。インターネットなどのコンピュータネットワークにおいて、ノード間のコスト(リンクコスト)を決定する典型的な要素は、通信速度の逆数である。その他に、光ネットワークにおいては波長予約の成功率、送信対象のデータ種別、QoSにより予約された帯域など複数の要因をリンクコストとして反映することができる。ネットワーク行列89には、コスト以外の他の、経路の優劣を比較できる要素(ルーティングメトリック)を含めても良い。
【0034】
図2(a)にネットワーク行列の一例を示している。このネットワーク行列MNは、図2(b)に示したネットワークNに対応するものであり、ネットワークNはノードA〜Fの6つのノードを含む。ネットワーク行列MNは、ネットワークNに含まれる各ノードを基端とし、基端のノードに繋がる他のノードを先端とする各リンクのコストをエレメントとして含む。無限大のエレメントは、ネットワーク行列MNに含まれるノードであって、直接のルートでは繋がっていないノードを示す。ノードが未接続であることを示す値は無限大に限らない。
【0035】
ルーティングユニット80は、ルーティングプロトコルを用いて収集されたネットワークの情報(ネットワーク行列)89に基づき、経路探索を行うシステム(経路探索システム)30を含む。この経路探索システム30は、内部に、回路を動的に再構成可能な領域(再構成ユニット)を備えたデバイス(再構成可能デバイス)1を含む。そして、経路探索システム30は、ネットワーク行列89に基づき、経路を発見しようとしているネットワーク(ターゲットのネットワーク)に対応するネットワーク構成を、経路探索を目的とした範囲で仮想的に再構成可能デバイス1に再構成し、経路探索を行う。
【0036】
図3(a)に、再構成可能なデバイスの一例を示している。このデバイス1は、本願の出願人が開発したDAPDNAと称する半導体集積回路装置である。このデバイス1は、DAPと呼ばれるRISCコアモジュール2と、DNAと呼ばれるダイナミックリコンフィグラブルデータフローアクセレレータ3とを含む。デバイス1は、DAP2およびDNA3に加え、DNA3のダイレクト入出力用のインターフェイス4と、PCIインターフェイス5と、SDRAMインターフェイス6と、DMAコントローラ7と、その他の周辺デバイス8と、これらを接続するための高速スイッチングバス(内部バス)9とを含む。DAP2は、デバッグインターフェイス42aと、RISCコア42bと、命令キャッシュ42cと、データキャッシュ42dとを含む。DNA3は、376個のPE(PEs、処理エレメント)が2次元に配置されたPEマトリクス10と、このPEマトリクス10に含まれるPEsの機能および/またはPEsの接続を変えてPEマトリクス10を再構成するためのコンフィグレーションデータ18が格納されるコンフィグレーションメモリ19とを含む。PE10は、複数のプロセッシングエレメントPE(PEs)と、複数のPEの接続を動的に変更可能な接続マトリクスとを含み、動的に回路を再構成可能な再構成ユニットに相当する。PEマトリクス10に配置されるPEの数は、上記に限定されるものではない。
【0037】
コンフィグレーションメモリ19は、複数バンクの構成になっている。例えば、図3(b)に示すように、PEマトリクス10には、フォアグラウンドバンクに格納されるコンフィグレーションデータ18により第1の機能(データフロー、回路デザイン)17aが構成される。また、異なるバックグラウンドバンクにそれぞれ格納されるコンフィグレーションデータにより、第2の機能17bおよび第3の機能17cがそれぞれ構成される。メモリ19のバンクを切り替えることにより、PEマトリクス10には、第1の機能17aに変わって第2の機能17bまたは第3の機能17cが再構成される。PEマトリクス10の再構成は、例えば、1サイクル(クロックサイクル)でダイナミックに行なわれる。
【0038】
図3(c)は、PEマトリクス10に回路を再構成する一例である。あるアプリケーション、例えば、MPEGデコーダを複数の機能(サブファンクション)に時分割し、それらの機能を、PEマトリクス10に時分割で動的に再構成し、MPEGデコーダの機能を専用回路(専用ハードウェア)で提供する。同様に、経路探索において、ターゲットのネットワークに含まれるノード数が膨大な場合は、ネットワークを複数のサブネットワークに分割し、それらのサブネットワークに対応する仮想ネットワークを時分割で動的に再構成することが可能である。したがって、このデバイス1を採用した経路探索システム30は、大規模ネットワークに対しても適用できる。このような使用により、再構成可能なデータ処理装置であるデバイス1を用いて、多くのハードウエア資源を必要とするアプリケーションを、少ないハードウエア資源で実行できる。
【0039】
図3(d)は、PEマトリクス10に回路を構成する他の例の一つである。たとえば、再生方式が異なるアプリケーションを実行するために、複数の機能がそれぞれ実現されるようにPEマトリクス10を再構成できる。同様に、ルータ100において、デバイス1は、経路探索システム30として機能させるだけではなく、ルーティングテーブル81を参照してパケットを送出するネクストホップを選択する機能82などとしても用いることができる。このような使用により、多くのアプリケーションを共通のハードウエア(デバイス)1を用いて実行できる。
【0040】
このデバイス1は、さらに、プログラムレベル(命令レベル)ではなく、データフローレベル(データパスレベル、ハードウエアレベル)で多数の機能を切り換えて実装できる。このため、専用のハードウエアに匹敵する速度で処理を行うことができる。したがって、経路探索のための仮想ネットワークをPEマトリクス10に再構成することにより、専用のハードウェアで構成したのに匹敵する処理速度を得ることができる。その一方で、PEマトリクス10は動的に再構成できるので、経路探索の対象となるネットワークの変動に対してもフレキシブルに、遅滞なく追従できる。
【0041】
また、PEマトリクス10に含まれるPEsは、クロックにより同期した処理を行うことが可能であり、パイプライン処理に適したデータフロー(データパス)をPEマトリクス10に再構成できる。さらに、多数のPEsにより並列処理を行う複数のデータフローを並列に再構成することも可能である。したがって、PEマトリクス10に仮想ネットワークを再構成し、経路探索用のパケット(探索パケット)を流すことにより、仮想ネットワーク内で、ターゲットのネットワークと同様に、複数の探索パケットを並列に送受信することが可能となる。さらに、探索パケットの送受信(流れ)が同期的に処理されるので、探索パケットが目的のノード(たとえば、宛先ノード)に到達したタイミングを、その探索パケットが通過した経路の質に関する情報として捉えて、経路を選択するための情報として利用することが可能となる。このように、PEマトリクス10に仮想ネットワークを回路として動的に再構成することにより、ハードウエアによる高速な処理速度と、ソフトウエアのような柔軟性とが融合された経路探索環境を提供できる。
【0042】
図4に、PEマトリクス10を拡大して示している。PEマトリクス10は、縦横に2次元に配置された複数のプロセッシングエレメント(PE)45と、それらの間に格子状に配置された配線47と、配線47の接続ポイントで縦横の配線47の接続を自由に切り替えることができるスイッチングユニット46とを備えている。配線47およびスイッチングユニット46が、複数のPE45の接続を自由に変えることができる接続マトリクス44を構成する。接続マトリクス44には、以下で説明する遅延用のPEなどの、接続環境を調整するためのPEが含まれていても良い。
【0043】
再構成可能なPEマトリクス(回路領域)10を構成するPE45の一例は、ルックアップテーブルなどにより自在に機能を設定可能なものである。この集積回路デバイス1のマトリクス10には、算術論理演算用のエレメント、遅延用のエレメント、メモリ用のエレメント、データを入力または出力するためにアドレスを発生させるエレメント、データの入力または出力用のエレメントなど、特定の機能あるいは処理に適した内部構成のエレメントが配置されている。ある程度の機能グループに分けたエレメントを配置することにより冗長性が減少し、AC特性および処理速度が向上できる。
【0044】
プロセッサ2から、またはコンフィグレーションメモリ19から、制御バス9aを介して、各PE45に対してコンフィグレーションデータが供給される。このコンフィグレーションデータにより、各々のPE45の機能と、配線群47の接続とが制御され、マトリクス10の内部に、種々のデータフロー(データパス)を自由に構成できる。さらに、PEマトリクス10は、外部メモリインターフェイス6などの外界との接続のため、処理対象のデータを入出力する入力バッファ48および出力バッファ49と、アクセス調停ユニットとして機能するバススイッチングユニット(バスインターフェイス、BSU)9bとを備えている。
【0045】
図5は、PE45の一例である。このPEは、算術演算および論理演算に適した構成の演算用である。PE45は、機能を変更可能な内部データパス領域45bと、その内部データパス領域45bの機能を設定する制御ユニット45aとを備えている。内部データパス部45bは、配線47から所望の入力データを抽出するためのシフト回路SHIFTおよびマスク回路MASKと、入力データdixおよびdiyをクロック信号によりラッチするための入力レジスタ(FF)と、論理演算ユニットALUと、配線47に出力する出力データdoをクロック信号によりラッチするための出力レジスタ(FF)とを備えている。
【0046】
各PEの制御ユニット45aは、プロセッサ2から制御バス9aを介してコンフィグレーションデータを受信し、内部データパス部45bの構成を制御する。したがって、コンフィグレーションデータにより、1つ、または複数のPE45により、探索パケットを、所定の条件で転送するような機能を備えたノードを再構成できる。
【0047】
図6は、PE45の他の例の1つである。このPEは、データが伝送されるタイミングを遅延する処理に適したものである。この内部データパス部45dは、複数のセレクタとフリップフロップの組み合わせで構成された遅延回路45eと、入力側のフリップフロップ(FF)と、出力側のフリップフロップ(FF)と、回路を選択するセレクタ45sとを備えている。遅延回路45eは、コンフィグレーションデータにより、本例では0〜5クロックの遅延をセットできる。したがって、入力毎に1〜7クロックの遅延を制御できる。さらに、コンフィグレーション情報により、2つの入力系統(X系統およびY系統)を直列に接続することが可能であり、2倍の遅延時間を制御できる。また、これらのデータと共にキャリー信号用の行配線群および列配線群で導かれるキャリー信号cixおよびciyも同様のデータパスにより遅延して出力される。
【0048】
この遅延用のPE45を、仮想ネットワークの仮想ノード間を接続する仮想リンクに含めるようにPEマトリクス10を再構成することが可能である。遅延用のPE45の遅延量はコンフィグレーションデータによりバリアブルに設定できるので、その遅延量により、リンクコストなどのリンクの優劣を決める要素を、探索パケットの遅延(転送時間の遅れ)として探索パケットの履歴(経過情報)に含めることができる。
【0049】
図1に示すように、経路探索システム30は、再構成ユニットであるPEマトリクス10に仮想ネットワーク35を構成する構成ユニット31と、仮想ネットワークを用いて探索された経路から所定の条件に合致する経路を選択する経路選択ユニット32とを含む。構成ユニット31は、ルータ100がサポートする1または複数のルーティングプロトコルにより収集されたネットワークの情報(ネットワーク行列)89に基づき、PEマトリクス10に仮想ネットワーク35を再構成する。経路選択ユニットは、仮想ネットワーク35に含める複数の仮想ノードブロックのうち、宛先ノード(ディスティネーションノード)に対応する仮想宛先ノードブロックに到着した複数の探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択する。この例では、これらのユニット31および32としての機能は、DAP2にロードされるプログラムにより提供されるようになっている。これらのユニット31および32は、PEマトリクス10に、仮想ネットワーク35とともに、あるいは時分割で再構成しても良い。
【0050】
図7に、経路探索の対象となるターゲットのネットワークの一例を示している。図8に、そのネットワークに対応するように、経路探索のためにPEマトリクス10に再構成された仮想ネットワークの一例を示している。ターゲットのネットワーク21はN1〜N11の11個のノードと、これらのノードを接続するL1〜L13の13個のリンクとを含む。仮想ネットワーク35は、ノードN1〜N11にそれぞれ対応する仮想ノードブロックPN1〜PN11と、リンクL1〜L13にそれぞれ対応する仮想リンクPL1〜PL13を含む。仮想ノードブロックPN1〜PN11は、1または複数のPE45により構成され、仮想リンクPL1〜PL13は、PE45を接続する接続マトリクス44により構成される。仮想リンクPL1〜PL13には、配線47およびスイッチングマトリクス46だけではなく、遅延用のエレメントが含まれていても良い。なお、以下では、仮想ノードブロックおよび仮想リンクを一般的に示す場合は、仮想ノードブロックPNおよび仮想リンクPLとして参照する。
【0051】
構成ユニット31は、ネットワーク行列89に基づいて、PEマトリクス10に仮想ネットワーク35を再構成するためのコンフィグレーションデータ18を生成し、そのコンフィグレーションデータ18をPEマトリクス10またはコンフィグレーションメモリに供給することにより仮想ネットワーク35として機能する回路(データフロー、データパス)をPEマトリクス10に再構成する。さらに、構成ユニット31は、仮想ノードブロックPN1〜PN11のうち、ソースノードN1に対応する仮想ソースノードブロックPN1が、仮想ソースノードブロックPN1に繋がった全ての仮想リンク、この場合は仮想リンクPL1およびPL2に探索パケットSPを送信するようにコンフィグレーションデータ18を生成し、仮想ソースノードブロックPNを再構成する。
【0052】
また、構成ユニット31は、複数の仮想ノードブロックPN1〜PN11のうち、仮想ソースノードブロックN1と、仮想宛先ノードブロックN8を除いたそれぞれの仮想ノードブロックPNを、受信した探索パケットSPに、受信した探索パケットSPの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加するようにコンフィグレーションデータ18を生成し、それぞれの仮想ソースノードブロックPNを再構成する。構成ユニット31は、さらに、受信した探索パケットSPを複製した探索パケットSPを、受信した探索パケットSPの到来した仮想リンクPLを除き、それぞれの仮想ノードブロックPNに繋がった全ての仮想リンクPLに送信するようにコンフィグレーションデータ18を生成し、それぞれの仮想ソースノードブロックPNを再構成する。
【0053】
構成ユニット31は、さらに、それぞれの仮想ノードブロックPNを、それぞれの仮想ノードブロックPNに到着した順番の早いものから複数の探索パケットSPの複製のみを、受信した探索パケットの到来した仮想リンクPLを除き、それぞれの仮想ノードブロックPNに繋がった全ての仮想リンクPLに送信するようにコンフィグレーションデータ18を生成し、仮想ソースノードブロックPNを再構成する。
【0054】
構成ユニット31は、さらに、それぞれの仮想ノードブロックPNを、通過した仮想リンクPLおよび/または仮想ノードブロックPNについての同じ情報を持つ探索パケットSPを廃棄するように構成するようにコンフィグレーションデータ18を生成し、仮想ソースノードブロックPNを再構成する。
【0055】
図9に、探索パケットSPの一例を示している。この探索パケットSPは、ヘッダー情報24と、経過情報25とを含む。経過情報25は、探索パケットSPが通過した仮想リンクPLおよび/または仮想ノードブロックPNをビット位置で識別できるビットマップデータを含む。以下の例では、経過情報25は、探索パケットSPが通過した仮想リンクPLをビット位置で識別できるビットマップデータとなっている。経過情報25に、探索パケットSPが通過した仮想ノードブロックPNをビット位置で識別できるビットマップデータを含めることは、仮想リンクと同様に可能である。仮想宛先ノードブロックPN8に到達した探索パケットSPの経過情報25には、仮想ソースノードブロックPN1から仮想宛先ノードブロックPN8に到達するまでに探索パケットSPが通過した仮想リンクPLの情報が収められている。したがって、経路選択ユニット32は、仮想宛先ノードブロックPN8に到達した探索パケットSPの経過情報25にアクセスすることにより仮想ソースノードPN1から仮想宛先ノードブロックPN8に至る経路を知ることができる。その経路は、ターゲットのネットワーク21における経路に相当するものであり、所定の条件に合った経路を見つけることにより、ルーティングテーブル81を更新できる。
【0056】
探索される経路の典型的なものの1つは、ソースノードN1から宛先ノードN8に至る最短経路である。たとえば、仮想リンクL1〜L13の遅延を一定にすることにより、最も早く仮想宛先ノードブロックPN8に到達した探索パケットSPの経路を最小ホップ数の経路として選択できる。また、仮想リンクL1〜L13の遅延をリンクコストに基づいて設定することにより、経路選択ユニット32は、最も早く仮想宛先ノードブロックPN8に到達した探索パケットSPの経路を最小コストの経路として選択できる。
【0057】
探索される経路の典型的なものの異なる例は、ソースノードN1から宛先ノードN8に至るディスジョイントな経路である。経路選択ユニット32は、仮想宛先ノードブロックPN8に到達した複数の探索パケットSPの経過情報25のビットマップデータのビット単位の論理積を演算することにより、ソースノードN1から宛先ノードN8に至る複数の経路から、ディスジョイントな経路を選択することができる。経過情報25のビットマップデータのビット単位の論理積が全て0であれば、比較した経過情報25に含まれる経路はディスジョイントな経路である。ビットマップ(ビット列)の比較は、PEマトリクス10に含まれる算術演算用のPEを用いることにより極めて短時間に処理できる。DAP2によりソフトウェアでビットマップの比較を行っても良い。
【0058】
さらに、仮想リンクL1〜L13の遅延を一定にすることにより、仮想宛先ノードブロックPN8に到達したタイミングにより、経路選択ユニット32は、最小ホップ数のディスジョイントな経路を選択できる。仮想リンクL1〜L13の遅延をリンクコストに基づいて設定することにより、経路選択ユニット32は、仮想宛先ノードブロックPN8に到達した探索パケットSPのタイミングにより、最小コストのディスジョイントな経路を選択できる。
【0059】
図10に、ソースノードから、1または複数の宛先ノードへ至る経路を、再構成ユニットであるPEマトリクス10を用いて探索する方法の一例を示している。ステップ71において、ルータ100が提供する1または複数のルーティングプロトコルによりネットワークの情報89を収集する。ステップ72において、構成ユニット31は、ネットワークの情報89に基づき、PEマトリクス10に仮想ネットワーク35を構成する。ステップ73において、ソースノードN1に対応する仮想ソースノードブロックPN1から、仮想ソースノードブロックPN1に繋がった全ての仮想リンクPL1およびPL2に探索パケットSPを送信する。この段階の経過情報25は、全てのビットが0である。
【0060】
ステップ74において、仮想ノードブロックPNは、探索パケットSPを受信すると、受信した探索パケットSPの通過した仮想リンクの情報を含む経過情報25に追加する。たとえば、仮想ノードブロックPN2は、経過情報25のビットマップの1番目のビットを1にセットすることにより、仮想リンクPL1を通過したことを経過情報25に追加する。そして、その経過情報25を含む探索パケットSPを複製し、受信した探索パケットSPの到来した仮想リンクPL1を除き、仮想ノードブロックPNに繋がった全ての仮想リンクPLに送信する。たとえば、仮想ノードブロックPN2は、経過情報25のビットマップの1番目のビットが1にセットされた探索パケットSPの複製を2つ生成し、それぞれを、仮想リンクPL3およびPL4に送信する。
【0061】
ステップ75において、十分な数の探索パケットSPが仮想宛先ノードブロックPN8に到達するまで仮想ノードブロックPN間において探索パケットSPを転送する。十分な数の探索パケットSPが仮想宛先ノードブロックPN8に到達すると、ステップ76において、経路選択ユニット32は、得られた複数の探索パケットSPの経過情報25により、ソースノードN1から宛先ノードN8に至る複数の経路を得ることができる。そして、得られた経路の中から、所定の条件に合致する経路を選択する。
【0062】
ステップ75において、ディスジョイントな経路を選択する場合は、上述したように、複数の経過情報25のビットマップデータの論理積を演算することが望ましい。最小ホップ数の最短経路、最小コストの最短経路の探索もディスジョイントな経路の探索とともに行うことができる。仮想宛先ノードブロックPN8に順番の早いものから(先に到着した)複数の探索パケットSPのみの(に限定した)経過情報25により、ディスジョイントな経路で、最短の経路を選択することが可能である。基本的には、種々の条件を加味して、最短な経路を選択することがルート探索の目的であり、全ての探索パケットSPが仮想宛先ノードブロックPN8に到達することを待つ必要はない。
【0063】
また、ステップ74において、それぞれの仮想ノードブロックPNは、到着した順番の早いものから複数の探索パケットSPの複製のみを転送することが望ましい。種々の条件を加味して、最短な経路を選択することがルート探索の目的であり、無駄にリンクをたどっている探索パケットSPを活かす必要は通常の場合はない。さらに、ステップ74において、通過した仮想リンク(または仮想ノードブロック)についての同じ情報を経過情報25に持つ探索パケットSPを廃棄することが望ましい。たとえば、仮想リンクPL3を経過した情報を持つ探索パケットSPが仮想リンクPL3を通して仮想ノードブロックPN4に到達したときは、その探索パケットSPは、仮想リンクPL3をループしていることを意味する。ループする経路を示す探索パケットSPは、経路探索には不要であり、そのような探索パケットSPは破棄し、仮想ネットワーク35を流れる探索パケットSPの数を減らすことが望ましい。
【0064】
図11から図17に、図7に示したネットワーク21について、経路探索システム30により経路が探索される様子を示している。まず、ネットワーク21内のすべてのリンクに、リンク番号(L1〜L13)を付与する。リンク番号は、SRLG(Shared Risk Link Group)番号のようなものにしてもよいが、本例ではリンク番号で独立性を促進する。
【0065】
図11に示したステップ1において、S(ソース)ノードN1(PN1)からソースノードN1につながっているすべてのノードに対して、探索パケットSPを流して探索を開始する。
【0066】
図12に示したステップ2において、探索パケットSPが到着したノードN(PN)は、当該ノードNに接続し、逆戻りとならないノードNすべてに1つずつ探索パケットSPを流して探索を行う。この際、それぞれの探索パケットSPは通過したリンク番号を含む経過情報25を保持する。
【0067】
図13〜図16に示すように、ステップ3〜ステップ6において、上記と同様に、1サイクルごとに次のノードN(PN)へ探索を行う。図15に示したステップ5では、ループを作った探索パケットSPを廃棄している。ループの検出方法としては、経過情報25の通過ノード番号から判断する方法と、探索パケットSPに適当な識別情報を付加して各仮想ノードブロックPNがすでに通過している探索パケットSPを把握し、仮想リンクPLを再度探索しようとした場合に廃棄する方法とが考えられる。各仮想リンクPLの遅延を同じに設定することが可能であり、その場合、PEマトリクス10に再構成された仮想ネットワーク35においては、仮想ノードブロックPNにおけるレイテンシを別にすれば、1サイクル毎に次の仮想ノードブロックPNの探索を行うことができる。したがって、多数のノードおよびリンクを含むネットワーク21の経路探索を短時間で行うことができる。
【0068】
遅延エレメントにより各仮想リンクPLにコストをセットした場合であっても、1つの仮想リンクPLについて数クロックの遅れが発生するだけであり、実際のネットワーク21にパケットを流して、各ノードにおいて、各種のネットワークプロトコルが処理するのを待って、ルート探索用のパケットが送受信されるのと比較すると、遙かに短時間でネットワーク21の経路探索を行うことができる。さらに、仮想ネットワーク35は、経路探索システム30の内部に存在しているので、仮想宛先ノードブロックPN8に到達した探索パケットSPをソースノードブロックPN1に戻さなくても、経過情報25に基づき経路を探索できる。この点でも、ターゲットのネットワーク21にパケットを流すことに比較すると、はるかに短時間で経路探索を行うことができる。
【0069】
図17に示したステップ7では、すべてのルートで探索が終了している。仮想宛先ノードブロックPN8に到達した探索パケットSPに含まれる経路情報25の例は、早く到着した順に以下の通りである。かっこ内は、リンク番号を、Lを除いて示す。
ルート1 (1,4,7) 3hop
ルート2 (2,5,12,7) 4hop
ルート3 (1,3,6,13) 4hop
ルート4 (2,5,8,9,10,11) 6hop
ルート5 (1,4,12,8,9,10,11) 7hop
ルート6 (2,5,12,4,3,6,13) 7hop
【0070】
したがって、経路選択ユニット32においては、ルート1が最小ホップ数の最短経路であることがわかる。さらに、経路選択ユニット32は、これら6つのルートの中でディスジョイントなルートの組合せを求めることができる。
【0071】
図18に、各ルートを辿って仮想宛先ノードブロックPN8に到達した探索パケットSPに含まれている経過情報25を示している。経過情報25は、少なくとも13ビット以上のビット幅を持つビットマップデータであり、通過した仮想リンクPLに相当する位置のビットが1になっている。経過情報25は、たとえば、100リンク程度を含むネットワークであれば100ビット幅が必要であり、13バイト程度のデータになる。
【0072】
ルート1に対してディスジョイントなルートを求める場合は、ルート1の経過情報25と、他のすべてのルート(ルート2〜6)の経過情報25とのビット単位の論理積(AND)を演算すれば良い。1つでも論理積が“1”であれば、ディスジョイントではない。
【0073】
図19に、ソフトウェアで論理積を求める方法の1つをフローチャートにより示している。まず、ルートi(1〜6)の使用しているリンク番号j(1〜13)をl(i,j)行列とする。次に1つのルート(例えばルート1)を選択し、他のすべてのルート(例えばルート2〜6)のリンク番号ごとに論理積(AND)をとり、1つでも論理積が“1”であれば、ディスジョイントではないと判断する。
【0074】
その結果、経路選択ユニット32においては、以下のようなディスジョイントなルートの組み合わせを得ることができる。
ルート1とルート4
ルート2とルート3
ルート3と、ルート2およびルート4
ルート4とルート3
ルート5および6にはディスジョイントなルートは存在しない。
【0075】
さらに、経路選択ユニット32は、以下の3つのディスジョイントルートの候補が計算できる。
ルート1(3hop)+ルート4(6hop)= 9hop
ルート2(4hop)+ルート3(4hop)= 8hop
ルート3(4hop)+ルート4(6hop)= 10hop
この場合、ルート2とルート3との組み合せが、もっともホップ数が少なくなることが分かる。したがって、このケースでは、経路選択ユニット32は、理想解としてルート2およびルート3との組み合わせを選択する。これらのルート2およびルート3は、図20に示すようにリンクディスジョイントであるとともに、ノードディスジョイントなルートである。ノードディスジョイントなルートを選択することにより、さらにリンクのみならず、ノードの欠陥に対して信頼性の高いルーティングテーブル81を提供できる。積極的にノードディスジョイントなルートを選択する場合は、経過情報25に通過したノード(仮想ノードブロック)の識別情報を含めることが望ましい。また、ディスジョイントなルートを選択する条件は、総ホップ数が最少に限定されず、コストが反映されている場合は、総コスト数が最少となる組み合わせであっても良い。あるいは、ディスジョイントなルートのコスト差あるいはホップ差が最少になるような組み合わせであっても良い。
【0076】
また、大規模ネットワークでは、すべてのルートを探索してくるのを待つのは、探索時間が大きくなってしまう問題がある。そこで、経路選択ユニット32は、仮想宛先ノードブロックPN8に到着した順番の早い探索パケットSPのベストm個のルートのみに制限して選択する。
【0077】
また、到着した順番の早いもののベストmを仮想宛先ノードブロックPN8で得るため、各中継ノードブロックPNでも、すべて到着した順番の早いものm個のみを処理して、残りは廃棄する。このことによって、ネットワーク内の探索は、最大m、n(nはノード数)で上限が決まる。
【0078】
さらに、PEマトリクス10のPEなどのハードウェア資源が不足する場合は、仮想ネットワーク35をマルチコンテキスト化し、時分割でPEマトリクス10に再構成することが可能である。また、複数のデバイス1のPEマトリクス10をダイレクト接続し、仮想的にPEマトリクス10のハードウェア資源を拡大しても良い。
【0079】
また、この経路探索システム30においては、再構成ユニットであるPEマトリクス10に仮想ネットワークが再構成できれば、ルート検索が可能となる。したがって、異なるルーティングプロトコルが適用される複数のネットワークあるいは複数のASをカバーする範囲のルート検索にも適用できる。
【図面の簡単な説明】
【0080】
【図1】ルータの概略構成を示す図。
【図2】図2(a)はネットワーク行列の一例、図2(b)は対応するネットワークの一例を示す図。
【図3】図3(a)は、再構成可能なデバイスの一例の概略構成を示し、図3(b)は、PEマトリクスの概略を示し、図3(c)および図3(d)は、PEマトリクスを動的に再構成する様子を示す図。
【図4】PEマトリクスの構成を示す図。
【図5】PEの一例の概略構成を示す図。
【図6】PEの他の例の概略構成を示す図。
【図7】ルート探索のターゲットのネットワークの一例を示す図。
【図8】仮想ネットワークの一例を示す図。
【図9】探索パケットの一例を示す図。
【図10】経路探索のプロセスを示すフローチャート。
【図11】経路探索の一例(ステップ1)を示す図。
【図12】経路探索のステップ2を示す図。
【図13】経路探索のステップ3を示す図。
【図14】経路探索のステップ4を示す図。
【図15】経路探索のステップ5を示す図。
【図16】経路探索のステップ6を示す図。
【図17】経路探索のステップ7を示す図。
【図18】経過情報のビットマップを示す図。
【図19】論理積を求めるプロセスの一例を示すフローチャート。
【図20】ディスジョイントなルートの組み合わせの一例を示す図。
【符号の説明】
【0081】
1 再構成可能デバイス、 10 PEマトリクス(再構成ユニット)
30 経路探索システム
31 仮想ネットワーク構成ユニット、 32 経路選択ユニット
35 仮想ネットワーク
80 ルーティングユニット
100 ルータ
【特許請求の範囲】
【請求項1】
複数のノードと、それらを接続する複数のリンクとを含むネットワークにおいて、ソースノードから、1または複数の宛先ノードへ至る経路を探索するためのシステムであって、
複数のプロセッシングエレメントと、前記複数のプロセッシングエレメントの接続を動的に変更可能な接続マトリクスとを含み、動的に回路を再構成可能な再構成ユニットと、
1または複数のルーティングプロトコルにより収集された前記ネットワークの情報に基づき、前記再構成ユニットに仮想ネットワークを構成するユニットとを有し、
前記仮想ネットワークを構成するユニットは、前記複数のプロセッシングエレメントにより、前記ネットワークに含まれる前記複数のノードにそれぞれ対応する複数の仮想ノードブロックを構成し、前記接続マトリクスにより、前記複数のリンクにそれぞれ対応する複数の仮想リンクを構成し、
前記複数の仮想ノードブロックのうち、前記ソースノードに対応する仮想ソースノードブロックを、前記仮想ソースノードブロックに繋がった全ての仮想リンクに探索パケットを送信するように構成し、さらに、
前記複数の仮想ノードブロックのそれぞれを、受信した前記探索パケットに、前記受信した探索パケットの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加し、前記受信した探索パケットを複製した探索パケットを、前記受信した探索パケットの到来した仮想リンクを除き、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信するように構成し、
さらに、当該システムは、
前記複数の仮想ノードブロックのうち、前記宛先ノードに対応する仮想宛先ノードブロックに到着した複数の前記探索パケットの前記経過情報により、前記ソースノードから前記宛先ノードに至る複数の経路から所定の条件に合致する経路を選択する経路選択ユニットを有する、システム。
【請求項2】
請求項1において、前記経過情報は、前記通過した仮想リンクおよび/または仮想ノードブロックをビット位置で識別できるビットマップデータを含み、
前記経路選択ユニットは、複数の前記経過情報の前記ビットマップデータのビット単位の論理積を演算することにより、前記ソースノードから前記宛先ノードに至る複数の経路から、ディスジョイントな経路を選択する、システム。
【請求項3】
請求項1または2において、前記複数のプロセッシングエレメントは、遅延量を動的に設定できる複数の遅延エレメントを含み、
前記仮想ネットワークを構成するユニットは、前記接続マトリクスと、前記複数の遅延エレメントとにより、前記複数の仮想リンクを構成し、それぞれの仮想リンクに含まれる遅延エレメントには、対応するリンクのコストに対応する遅延量を設定する、システム。
【請求項4】
請求項1ないし3のいずれかにおいて、前記経路選択ユニットは、前記仮想宛先ノードブロックに到着した順番の早いものから複数の前記探索パケットの前記経過情報により、前記ソースノードから前記宛先ノードに至る複数の経路から所定の条件に合致する経路を選択する、システム。
【請求項5】
請求項1ないし4のいずれかにおいて、前記仮想ネットワークを構成するユニットは、前記それぞれの仮想ノードブロックを、前記それぞれの仮想ノードブロックに到着した順番の早いものから複数の探索パケットの複製のみを、前記受信した探索パケットの到来した仮想リンクを除き、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信するように構成する、システム。
【請求項6】
請求項1ないし5のいずれかにおいて、前記仮想ネットワークを構成するユニットは、前記それぞれの仮想ノードブロックを、前記通過した仮想リンクおよび/または仮想ノードブロックについての同じ情報を持つ探索パケットを廃棄するように構成する、システム。
【請求項7】
複数のノードと、それらを接続する複数のリンクとを含むネットワークにおいて、ソースノードから、1または複数の宛先ノードへ至る経路を、再構成ユニットを用いて探索する方法であって、
前記再構成ユニットは、複数のプロセッシングエレメントと、前記複数のプロセッシングエレメントの接続を動的に変更可能な接続マトリクスとを含み、動的に回路を再構成可能であり、
当該方法は、
1または複数のルーティングプロトコルにより収集された前記ネットワークの情報に基づき、前記複数のプロセッシングエレメントにより、前記ネットワークに含まれる前記複数のノードにそれぞれ対応する複数の仮想ノードブロックを構成し、前記接続マトリクスにより、前記複数のリンクにそれぞれ対応する複数の仮想リンクを構成し、前記再構成ユニットに仮想ネットワークを構成することと、
前記複数の仮想ノードブロックのうち、前記ソースノードに対応する仮想ソースノードブロックが、前記仮想ソースノードブロックに繋がった全ての仮想リンクに探索パケットを送信することと、
前記複数の仮想ノードブロックのそれぞれが、受信した前記探索パケットに、前記受信した探索パケットの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加し、前記受信した探索パケットを複製した探索パケットを、前記受信した探索パケットの到来した仮想リンクを除き、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信することと、
前記複数の仮想ノードブロックのうち、前記宛先ノードに対応する仮想宛先ノードブロックに到着した複数の前記探索パケットの前記経過情報により、前記ソースノードから前記宛先ノードに至る複数の経路から所定の条件に合致する経路を選択することとを含む方法。
【請求項8】
請求項7において、前記経過情報は、前記通過した仮想リンクおよび/または仮想ノードブロックをビット位置で識別できるビットマップデータを含み、
前記経路を選択することは、複数の前記経過情報の前記ビットマップデータのビット単位の論理積を演算することにより、前記ソースノードから前記宛先ノードに至る複数の経路から、ディスジョイントな経路を選択することを含む、方法。
【請求項9】
請求項7または8において、前記複数のプロセッシングエレメントは、遅延量を動的に設定できる複数の遅延エレメントを含み、
前記仮想ネットワークを構成することは、前記接続マトリクスと、前記複数の遅延エレメントとにより、前記複数の仮想リンクを構成し、それぞれの仮想リンクに含まれる遅延エレメントには、対応するリンクのコストに対応する遅延量を設定することを含む、方法。
【請求項10】
請求項7ないし9のいずれかにおいて、前記経路を選択することは、前記仮想宛先ノードブロックに到着した順番の早いものから複数の前記探索パケットの前記経過情報により、前記ソースノードから前記宛先ノードに至る複数の経路から所定の条件に合致する経路を選択することを含む、方法。
【請求項11】
請求項7ないし10のいずれかにおいて、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信することは、前記それぞれの仮想ノードブロックが、前記それぞれの仮想ノードブロックに到着した順番の早いものから複数の探索パケットの複製のみを、前記受信した探索パケットの到来した仮想リンクを除き、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信することを含む、方法。
【請求項12】
請求項7ないし11のいずれかにおいて、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信することは、前記通過した仮想リンクおよび/または仮想ノードブロックについての同じ情報を持つ探索パケットを廃棄することを含む、方法。
【請求項1】
複数のノードと、それらを接続する複数のリンクとを含むネットワークにおいて、ソースノードから、1または複数の宛先ノードへ至る経路を探索するためのシステムであって、
複数のプロセッシングエレメントと、前記複数のプロセッシングエレメントの接続を動的に変更可能な接続マトリクスとを含み、動的に回路を再構成可能な再構成ユニットと、
1または複数のルーティングプロトコルにより収集された前記ネットワークの情報に基づき、前記再構成ユニットに仮想ネットワークを構成するユニットとを有し、
前記仮想ネットワークを構成するユニットは、前記複数のプロセッシングエレメントにより、前記ネットワークに含まれる前記複数のノードにそれぞれ対応する複数の仮想ノードブロックを構成し、前記接続マトリクスにより、前記複数のリンクにそれぞれ対応する複数の仮想リンクを構成し、
前記複数の仮想ノードブロックのうち、前記ソースノードに対応する仮想ソースノードブロックを、前記仮想ソースノードブロックに繋がった全ての仮想リンクに探索パケットを送信するように構成し、さらに、
前記複数の仮想ノードブロックのそれぞれを、受信した前記探索パケットに、前記受信した探索パケットの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加し、前記受信した探索パケットを複製した探索パケットを、前記受信した探索パケットの到来した仮想リンクを除き、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信するように構成し、
さらに、当該システムは、
前記複数の仮想ノードブロックのうち、前記宛先ノードに対応する仮想宛先ノードブロックに到着した複数の前記探索パケットの前記経過情報により、前記ソースノードから前記宛先ノードに至る複数の経路から所定の条件に合致する経路を選択する経路選択ユニットを有する、システム。
【請求項2】
請求項1において、前記経過情報は、前記通過した仮想リンクおよび/または仮想ノードブロックをビット位置で識別できるビットマップデータを含み、
前記経路選択ユニットは、複数の前記経過情報の前記ビットマップデータのビット単位の論理積を演算することにより、前記ソースノードから前記宛先ノードに至る複数の経路から、ディスジョイントな経路を選択する、システム。
【請求項3】
請求項1または2において、前記複数のプロセッシングエレメントは、遅延量を動的に設定できる複数の遅延エレメントを含み、
前記仮想ネットワークを構成するユニットは、前記接続マトリクスと、前記複数の遅延エレメントとにより、前記複数の仮想リンクを構成し、それぞれの仮想リンクに含まれる遅延エレメントには、対応するリンクのコストに対応する遅延量を設定する、システム。
【請求項4】
請求項1ないし3のいずれかにおいて、前記経路選択ユニットは、前記仮想宛先ノードブロックに到着した順番の早いものから複数の前記探索パケットの前記経過情報により、前記ソースノードから前記宛先ノードに至る複数の経路から所定の条件に合致する経路を選択する、システム。
【請求項5】
請求項1ないし4のいずれかにおいて、前記仮想ネットワークを構成するユニットは、前記それぞれの仮想ノードブロックを、前記それぞれの仮想ノードブロックに到着した順番の早いものから複数の探索パケットの複製のみを、前記受信した探索パケットの到来した仮想リンクを除き、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信するように構成する、システム。
【請求項6】
請求項1ないし5のいずれかにおいて、前記仮想ネットワークを構成するユニットは、前記それぞれの仮想ノードブロックを、前記通過した仮想リンクおよび/または仮想ノードブロックについての同じ情報を持つ探索パケットを廃棄するように構成する、システム。
【請求項7】
複数のノードと、それらを接続する複数のリンクとを含むネットワークにおいて、ソースノードから、1または複数の宛先ノードへ至る経路を、再構成ユニットを用いて探索する方法であって、
前記再構成ユニットは、複数のプロセッシングエレメントと、前記複数のプロセッシングエレメントの接続を動的に変更可能な接続マトリクスとを含み、動的に回路を再構成可能であり、
当該方法は、
1または複数のルーティングプロトコルにより収集された前記ネットワークの情報に基づき、前記複数のプロセッシングエレメントにより、前記ネットワークに含まれる前記複数のノードにそれぞれ対応する複数の仮想ノードブロックを構成し、前記接続マトリクスにより、前記複数のリンクにそれぞれ対応する複数の仮想リンクを構成し、前記再構成ユニットに仮想ネットワークを構成することと、
前記複数の仮想ノードブロックのうち、前記ソースノードに対応する仮想ソースノードブロックが、前記仮想ソースノードブロックに繋がった全ての仮想リンクに探索パケットを送信することと、
前記複数の仮想ノードブロックのそれぞれが、受信した前記探索パケットに、前記受信した探索パケットの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加し、前記受信した探索パケットを複製した探索パケットを、前記受信した探索パケットの到来した仮想リンクを除き、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信することと、
前記複数の仮想ノードブロックのうち、前記宛先ノードに対応する仮想宛先ノードブロックに到着した複数の前記探索パケットの前記経過情報により、前記ソースノードから前記宛先ノードに至る複数の経路から所定の条件に合致する経路を選択することとを含む方法。
【請求項8】
請求項7において、前記経過情報は、前記通過した仮想リンクおよび/または仮想ノードブロックをビット位置で識別できるビットマップデータを含み、
前記経路を選択することは、複数の前記経過情報の前記ビットマップデータのビット単位の論理積を演算することにより、前記ソースノードから前記宛先ノードに至る複数の経路から、ディスジョイントな経路を選択することを含む、方法。
【請求項9】
請求項7または8において、前記複数のプロセッシングエレメントは、遅延量を動的に設定できる複数の遅延エレメントを含み、
前記仮想ネットワークを構成することは、前記接続マトリクスと、前記複数の遅延エレメントとにより、前記複数の仮想リンクを構成し、それぞれの仮想リンクに含まれる遅延エレメントには、対応するリンクのコストに対応する遅延量を設定することを含む、方法。
【請求項10】
請求項7ないし9のいずれかにおいて、前記経路を選択することは、前記仮想宛先ノードブロックに到着した順番の早いものから複数の前記探索パケットの前記経過情報により、前記ソースノードから前記宛先ノードに至る複数の経路から所定の条件に合致する経路を選択することを含む、方法。
【請求項11】
請求項7ないし10のいずれかにおいて、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信することは、前記それぞれの仮想ノードブロックが、前記それぞれの仮想ノードブロックに到着した順番の早いものから複数の探索パケットの複製のみを、前記受信した探索パケットの到来した仮想リンクを除き、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信することを含む、方法。
【請求項12】
請求項7ないし11のいずれかにおいて、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信することは、前記通過した仮想リンクおよび/または仮想ノードブロックについての同じ情報を持つ探索パケットを廃棄することを含む、方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2009−141425(P2009−141425A)
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願番号】特願2007−312648(P2007−312648)
【出願日】平成19年12月3日(2007.12.3)
【出願人】(500238789)アイピーフレックス株式会社 (15)
【出願人】(899000079)学校法人慶應義塾 (742)
【Fターム(参考)】
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願日】平成19年12月3日(2007.12.3)
【出願人】(500238789)アイピーフレックス株式会社 (15)
【出願人】(899000079)学校法人慶應義塾 (742)
【Fターム(参考)】
[ Back to top ]