JP4894013B2 - System and method for searching a path between nodes included in a network - Google Patents
System and method for searching a path between nodes included in a network Download PDFInfo
- Publication number
- JP4894013B2 JP4894013B2 JP2007312648A JP2007312648A JP4894013B2 JP 4894013 B2 JP4894013 B2 JP 4894013B2 JP 2007312648 A JP2007312648 A JP 2007312648A JP 2007312648 A JP2007312648 A JP 2007312648A JP 4894013 B2 JP4894013 B2 JP 4894013B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- network
- node
- route
- search packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
本発明は、ネットワークにおける種々の経路探索、特に、ディスジョイントな経路の探索に関するものである。 The present invention relates to various route searches in a network, and more particularly to disjoint route searches.
インターネットの爆発的な発展と普及とに伴い、仕事および日常生活においてコンピュータネットワークが頻繁に利用されるようになっている。コンピュータネットワークではルーティングプロトコルによって交換される情報に基づいてルーティングテーブルが作成され、そのルーティングテーブルに従いパケットが配送される。代表的なルーティングプロトコルとしては、単一の自律システム(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)がある。
これらのルーティングプロトコルは、基本的には、ノード(典型的にはルータ)間の情報の交換により、ソース(ソースノード)から目的ノード(宛先ノード)までのネットワークの情報(ネットワークトポロジ)を取得する機能と、取得されたネットワークの情報に基づき適当なアルゴリズムにより、ソースノードと宛先ノードとの間の適当な経路を決定する機能を備えている。たとえば、OSPFでは、ネットワーク・トポロジーのデータベースを構築し、ダイクストラ法と呼ばれる最短経路探索アルゴリズムを用いて、ルーティングテーブルが作成される。最短経路の探索には、ホップ数だけではなく、経路のコスト、帯域幅、遅延などを含めた要素(ルーティングメトリック(routing metric))も考慮することが望ましい。 These routing protocols basically obtain network information (network topology) from a source (source node) to a destination node (destination node) by exchanging information between nodes (typically routers). A function and a function of determining an appropriate route between the source node and the destination node by an appropriate algorithm based on the acquired network information are provided. For example, in OSPF, a network topology database is constructed, and a routing table is created using a shortest path search algorithm called the Dijkstra method. In searching for the shortest route, it is desirable to consider not only the number of hops but also factors including the cost, bandwidth, and delay of the route (routing metric).
インターネットに代表されるIPネットワークにおけるパケットのルーティングは、通過するルータにおいて、そのルータが保持するルーティングテーブルを参照することで行われる。ルーティングテーブルには、宛先ネットワークアドレスと対応するNHR(Next Hop Router(ネクストホップ))が記録され、各パケットの宛先アドレスと最長一致するネットワークアドレスに対応したNHRへパケットが転送される。それぞれのルータにおいて、以上の動作を繰り返すことで、宛先までパケットが転送される。 Packet routing in an IP network typified by the Internet is performed by referring to a routing table held by the router in a passing router. In the routing table, the NHR (Next Hop Router (next hop)) corresponding to the destination network address is recorded, and the packet is transferred to the NHR corresponding to the network address that is the longest match with the destination address of each packet. Each router repeats the above operation to transfer the packet to the destination.
今後、インターネットの更なる普及とともにネットワークの規模が拡大すると、経路探索処理の負担が増大すると考えられる。また、ノードの状態の変化により、新たな経路を探索する機会も増加する。典型的には、モバイルの端末がインターネットに参加することにより、ルーティングテーブルをさらに頻繁に更新することが要求される可能性がある。 In the future, as the scale of the network increases with the further spread of the Internet, it is considered that the burden of route search processing will increase. Moreover, the chance of searching for a new route increases due to a change in the state of the node. Typically, mobile terminals may be required to update the routing table more frequently as they join the Internet.
さらに、近年、光ネットワークにおいては、リンクコストとして、リンクの速度だけでなく、波長予約の成功率など複数の要因を考慮することが提案されている。また、リンクコストは、そのリンクを使用しているユーザ数、リンクを経由するデータ種類などの要因により変動するため、それらの要因の変動も考慮してルーティングテーブルが更新されることが望ましい。したがって、経路探索を行い、ルーティングテーブルを更新する頻度はさらに増大するものと考えられる。 Furthermore, in recent years, in an optical network, it has been proposed to consider not only the link speed but also a plurality of factors such as the success rate of wavelength reservation as the link cost. Further, since the link cost varies depending on factors such as the number of users using the link and the type of data passing through the link, it is desirable to update the routing table in consideration of the variation of those factors. Therefore, it is considered that the frequency of performing route search and updating the routing table further increases.
特許文献1には、複数のノードを含むアドホックネットワークにおいて、あるモバイルノードから、モバイルノードにサービスを提供することのできる複数のサービスノードへのディスジョイントなルートを発見する方法が記載されている。その方法は、モバイルノードからルート要求を送信するステップと、ネットワークのノードによりルート要求を配信するステップと、あるルート要求があるサービスノードへ到達すると、モバイルノードからサービスノードへのルート要求のトレースを含んだルート応答を返却するステップと、モバイルノードが受信したルート応答に基づいてディスジョイントなルートを決定するステップと、モバイルノードが受信したルート応答が、十分な数のディスジョイントなルートに対応していない場合に、インクリメントされたパス拡張パラメータを有する新たなルート要求を発行するステップとを含む。
あるモバイルルートから、インターネットと接続するためのサービスノード(ゲートウェイノード)へのディスジョイントな経路を発見することが記載されている。アドホックネットワークをインターネットへ接続する際に、通信の信頼性を向上するために、現在通信しているゲートウェイへのルートが切断されると、別のゲートウェイへの高速マルチホップを実行することが記載されている。そのような事態に対応するように、常に複数のルートを確保するためには、ルート探索のプロセスを頻繁に行う必要があり、ルート探索に要する処理時間も短縮する必要がある。 It is described that a disjoint route from a mobile route to a service node (gateway node) for connecting to the Internet is found. It describes that when connecting an ad hoc network to the Internet, if the route to the currently communicating gateway is disconnected, high-speed multi-hop to another gateway is performed to improve communication reliability. ing. In order to cope with such a situation, in order to always secure a plurality of routes, it is necessary to frequently perform a route search process, and it is also necessary to shorten a processing time required for the route search.
特許文献2には、複数種類のプロセッシングエレメント(PE)の機能およびそれらの接続を変えて種々のデータパスを動的に再構成するタイプの集積回路装置が記載されている。
本発明の一態様は、複数のノードと、それらを接続する複数のリンクとを含むネットワークにおいて、ソースノードから、1または複数の宛先ノードへ至る経路を探索するためのシステムである。このシステムは、1または複数のルーティングプロトコルにより収集されたネットワークの情報に基づき、ネットワークに含まれる複数のノードにそれぞれ対応する複数の仮想ノードブロックと、複数のリンクにそれぞれ対応する複数の仮想リンクとを含む仮想ネットワークをプロセッサにより実現させる、仮想ネットワークを構成するユニット(仮想ネットワーク構成ユニット)を有する。 One embodiment of the present invention is a system for searching for a route from a source node to one or more destination nodes in a network including a plurality of nodes and a plurality of links connecting the nodes. The system includes a plurality of virtual node blocks respectively corresponding to a plurality of nodes included in the network, a plurality of virtual links respectively corresponding to a plurality of links, based on network information collected by one or a plurality of routing protocols. And a unit (virtual network configuration unit) that constitutes the virtual network that realizes the virtual network including the processor.
このシステムは、プロセッサが再構成ユニットを含んでいてもよい。再構成ユニットは、複数のプロセッシングエレメントと、複数のプロセッシングエレメントの接続を動的に変更可能な接続マトリクスとを含み、動的に回路を再構成可能なユニットである。仮想ネットワーク構成ユニットは、1または複数のルーティングプロトコルにより収集されたネットワークの情報に基づき、再構成ユニットに仮想ネットワークを構成する。さらに、仮想ネットワークを構成するユニットは、複数のプロセッシングエレメントにより、ネットワークに含まれる複数のノードにそれぞれ対応する複数の仮想ノードブロックを構成し、接続マトリクスにより、複数のリンクにそれぞれ対応する複数の仮想リンクを構成する。 In this system, the processor may include a reconstruction unit. The reconfiguration unit includes a plurality of processing elements and a connection matrix capable of dynamically changing the connection of the plurality of processing elements, and is a unit capable of dynamically reconfiguring a circuit. The virtual network configuration unit configures a virtual network in the reconfiguration unit based on network information collected by one or more routing protocols. Furthermore, the units constituting the virtual network include a plurality of virtual node blocks respectively corresponding to a plurality of nodes included in the network by a plurality of processing elements, and a plurality of virtual nodes respectively corresponding to a plurality of links by a connection matrix. Configure the link.
仮想ネットワークを構成するユニットは、さらに、複数の仮想ノードブロックのうち、ソースノードに対応する仮想ソースノードブロックを、仮想ソースノードブロックに繋がった全ての仮想リンクに探索パケットを送信するように構成する。仮想ネットワークを構成するユニットは、さらに、複数の仮想ノードブロックのそれぞれを、受信した探索パケットに、受信した探索パケットの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加し、受信した探索パケットを複製した探索パケットを、受信した探索パケットの到来した仮想リンクを除き、それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信するように構成する。 The units constituting the virtual network further configure the virtual source node block corresponding to the source node among the plurality of virtual node blocks so as to transmit search packets to all virtual links connected to the virtual source node block. . The unit constituting the virtual network further adds progress information including information on the virtual link and / or the virtual node block through which the received search packet has passed to each received search packet for each of the plurality of virtual node blocks. A search packet obtained by duplicating the received search packet is transmitted to all the virtual links connected to the respective virtual node blocks except for the virtual link where the received search packet has arrived.
当該システムは、さらに、複数の仮想ノードブロックのうち、宛先ノード(ディスティネーションノード)に対応する仮想宛先ノードブロック(仮想ディスティネーションノードブロック)に到着した複数の探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択する経路選択ユニットを有する。 The system further determines from the source node the progress information of a plurality of search packets arriving at the virtual destination node block (virtual destination node block) corresponding to the destination node (destination node) among the plurality of virtual node blocks. A route selection unit is provided that selects a route that meets a predetermined condition from a plurality of routes reaching the destination node.
仮想ネットワークを構成するユニットおよび/または経路選択ユニットは、再構成ユニットに構成される回路により実現しても良く、あるいは再構成ユニットを制御するためのRISCなどのプロセッサにより実現しても良く、再構成ユニットを含むチップとは物理的に異なる外部のプロセッサにより実現しても良い。 The units constituting the virtual network and / or the path selection unit may be realized by a circuit configured in the reconfiguration unit, or may be realized by a processor such as RISC for controlling the reconfiguration unit. You may implement | achieve by the external processor physically different from the chip | tip containing a structural unit.
このシステムにおいては、回路を動的に再構成できる再構成ユニットに、探索パケットを転送する機能を備えた仮想ネットワークを再構成する。再構成ユニットに構成される仮想ノードブロックは、探索パケットを所定の条件で複写および転送する機能を有すればよいので、それぞれの仮想ノードブロックを1つまたは少ない数のプロセッシングエレメント(PE)で実装できる。このため、適当な数のPEをハードウェア資源として備えた再構成ユニットに、経路探索の対象となるネットワーク(ターゲットネットワーク)に対応する仮想ネットワークを再構成できる。また、チップ化された再構成ユニットのハードウェア資源が不足する場合は、複数のチップを接続したり、ターゲットネットワークに対応する仮想ネットワークをマルチコンテキスト化して時分割で再構成ユニットに再構成することが可能である。 In this system, a virtual network having a function of transferring a search packet is reconfigured in a reconfiguration unit that can dynamically reconfigure a circuit. Since the virtual node block configured in the reconfiguration unit only needs to have a function of copying and transferring the search packet under a predetermined condition, each virtual node block is implemented with one or a small number of processing elements (PE). it can. For this reason, a virtual network corresponding to a network (target network) to be searched for a route can be reconfigured in a reconfiguration unit having an appropriate number of PEs as hardware resources. Also, if the hardware resources of the reconfigurable unit that is made into chips are insufficient, multiple chips can be connected, or the virtual network corresponding to the target network can be multi-contexted and reconfigured in a time-division manner into reconfigurable units Is possible.
そして、再構成ユニットには回路を動的に再構成できるので、ルーティングプロトコルにより収集されたネットワーク(オリジナルのネットワークまたはターゲットのネットワーク)の情報が更新されると、それに基づき、再構成ユニットに更新された情報に基づく仮想ネットワークを再構成できる。 And since the circuit can be dynamically reconfigured in the reconfiguration unit, when the information of the network (original network or target network) collected by the routing protocol is updated, it is updated to the reconfiguration unit based on it. Virtual network based on the information can be reconfigured.
このシステムにおいては、再構成ユニットに仮想ネットワークを再構成できる。このため、ダイクストラ法などの多くの計算時間を必要とする経路探索方法を用いずに、仮想ネットワークに探索パケットを流すことにより経路探索を実行できる。再構成ユニットに構成される仮想ネットワークにおいては、探索パケットの転送は再構成ユニットの動作速度(クロック速度)で行われる。したがって、特許文献1に示したような方法に比較し、短時間で経路を発見できる。
In this system, the virtual network can be reconfigured in the reconfiguration unit. For this reason, a route search can be executed by flowing a search packet through a virtual network without using a route search method such as the Dijkstra method that requires a lot of calculation time. In a virtual network configured in the reconfiguration unit, the search packet is transferred at the operation speed (clock speed) of the reconfiguration unit. Therefore, a route can be found in a short time compared with the method shown in
さらに、このシステムにおいては、仮想ネットワークが構成された再構成ユニット内で探索パケットを処理できる。したがって、仮想宛先ノードに受信した探索パケットにより経路を選択でき、仮想ソースノードに応答を戻す必要はない。このため、オリジナルのネットワークに探索パケットを発信した場合において発生する、他のノードからのルート応答を待つ時間を省略できる。 Further, in this system, the search packet can be processed in the reconfiguration unit in which the virtual network is configured. Therefore, the route can be selected by the search packet received by the virtual destination node, and there is no need to return a response to the virtual source node. For this reason, it is possible to omit a time for waiting for a route response from another node, which occurs when a search packet is transmitted to the original network.
経過情報は、通過した仮想リンクおよび/または仮想ノードブロックをビット位置で識別できるビットマップデータを含むことが望ましい。経路選択ユニットは、複数の経過情報のビットマップデータのビット単位の論理積を演算することにより、ソースノードから宛先ノードに至る複数の経路から、ディスジョイントな経路を選択することができる。 The progress information preferably includes bitmap data that can identify a virtual link and / or a virtual node block that has been passed by a bit position. The route selection unit can select a disjoint route from a plurality of routes from the source node to the destination node by calculating a logical product of bit data of a plurality of pieces of progress information bitmap data.
再構成ユニットの複数のプロセッシングエレメントは、遅延量を動的に設定できる複数の遅延エレメントを含むことが望ましい。仮想ネットワークを構成するユニットは、接続マトリクスと、複数の遅延エレメントとにより、複数の仮想リンクを構成することができる。それぞれの仮想リンクに含まれる遅延エレメントに、対応するリンクのコストに対応する遅延量を設定することにより、経路選択ユニットは、仮想宛先ノードブロックが受信したタイミングにより、探索パケットが通過した経路について、リンクコストも含めた情報を得ることができ、その情報を経路の選択に利用できる。 It is desirable that the plurality of processing elements of the reconstruction unit include a plurality of delay elements that can dynamically set the delay amount. A unit constituting the virtual network can form a plurality of virtual links by the connection matrix and a plurality of delay elements. By setting the delay amount corresponding to the cost of the corresponding link in the delay element included in each virtual link, the route selection unit can determine the route through which the search packet has passed according to the timing received by the virtual destination node block. Information including the link cost can be obtained, and the information can be used for route selection.
経路選択ユニットは、仮想宛先ノードブロックに到着した順番の早い複数の探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択することが好ましい。このシステムにおいては、仮想ネットワークに探索パケットを送信するので、仮想宛先ノードブロックに到着した順番(先に到着するタイミングは)、ターゲットのネットワークにおけるルートのホップ数、その他のメトリックが反映された情報である。したがって、その情報を利用して経路をフィルタリングできる。さらに、経路の選択に要する処理時間を短縮できる。 Preferably, the route selection unit selects a route that meets a predetermined condition from a plurality of routes from the source node to the destination node, based on the progress information of the plurality of search packets in the early order of arrival at the virtual destination node block. In this system, since a search packet is transmitted to the virtual network, the order in which it arrives at the virtual destination node block (when it arrives first), the number of hops of the route in the target network, and other metrics are reflected. is there. Therefore, the route can be filtered using the information. Furthermore, the processing time required for route selection can be shortened.
仮想ネットワークを構成するユニットは、それぞれの仮想ノードブロックを、それぞれの仮想ノードブロックに到着した順番の早いものから複数の探索パケットの複製のみを、受信した探索パケットの到来した仮想リンクを除き、それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信するように再構成することが望ましい。仮想宛先ノードブロックに到着する順番が早い探索パケットに絞って送信することができ、再構成ユニットにおける無用な資源の消費を防止できる。再構成ユニットにおいて、所定の数の探索パケットが通過した仮想ノードブロックを解放できるので、その仮想ノードブロックを構成しているPEを、次のネットワークにおける経路探索に用いたり、他のアプリケーションを処理するための回路に利用できる。 The units that make up the virtual network are configured so that each virtual node block is copied only from a plurality of search packets in the order of arrival in each virtual node block, except for the virtual link from which the received search packet has arrived. It is desirable to reconfigure to transmit to all virtual links connected to the virtual node block. It is possible to narrow down and transmit the search packets that arrive at the virtual destination node block earlier in order, and it is possible to prevent useless consumption of resources in the reconfiguration unit. In the reconfiguration unit, a virtual node block through which a predetermined number of search packets have passed can be released, so that the PE constituting the virtual node block is used for route search in the next network or other applications are processed. Can be used in the circuit for
また、仮想ネットワークを構成するユニットは、さらに、それぞれの仮想ノードブロックを、通過した仮想リンクおよび/または仮想ノードブロックについての同じ情報を持つ探索パケットを廃棄するように構成することが望ましい。ループした経路を辿っている探索パケットを廃棄することにより、無用な探索パケットが仮想ノードブロック間で交換される事態を防止し、処理速度を高めたり、消費電力を削減したりできる可能性がある。 Further, it is desirable that the units constituting the virtual network further configure each virtual node block to discard the search packet having the same information about the virtual link and / or the virtual node block that has passed through. By discarding search packets that follow a looped route, it is possible to prevent unnecessary search packets from being exchanged between virtual node blocks, thereby increasing processing speed and reducing power consumption. .
本発明の他の態様は、複数のノードと、それらを接続する複数のリンクとを含むネットワークにおいて、ソースノードから、1または複数の宛先ノードへ至る経路を、プロセッサを用いて探索する方法である。プロセッサは再構成ユニットを含んでいてもよい。再構成ユニットは、複数のプロセッシングエレメントと、前記複数のプロセッシングエレメントの接続を動的に変更可能な接続マトリクスとを含み、動的に回路を再構成可能である。 Another aspect of the present invention is a method for searching a path from a source node to one or more destination nodes using a processor in a network including a plurality of nodes and a plurality of links connecting the nodes. . The processor may include a reconstruction unit. The reconfiguration unit includes a plurality of processing elements and a connection matrix capable of dynamically changing the connection of the plurality of processing elements, and can dynamically reconfigure a circuit.
当該方法は、以下のステップを含む。
1.1または複数のルーティングプロトコルにより収集されたネットワークの情報に基づき、ネットワークに含まれる複数のノードにそれぞれ対応する複数の仮想ノードブロックと、複数のリンクにそれぞれ対応する複数の仮想リンクとを含む仮想ネットワークをプロセッサにより実現すること。再構成ユニットを含む場合は、複数のプロセッシングエレメントにより、ネットワークに含まれる複数のノードにそれぞれ対応する複数の仮想ノードブロックを構成し、接続マトリクスにより、複数のリンクにそれぞれ対応する複数の仮想リンクを構成し、再構成ユニットに仮想ネットワークを構成することを含む。
2.複数の仮想ノードブロックのうち、ソースノードに対応する仮想ソースノードブロックが、仮想ソースノードブロックに繋がった全ての仮想リンクに探索パケットを送信すること。
3.複数の仮想ノードブロックのそれぞれが、受信した探索パケットに、受信した探索パケットの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加し、受信した探索パケットを複製した探索パケットを、受信した探索パケットの到来した仮想リンクを除き、それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信すること。
4.複数の仮想ノードブロックのうち、宛先ノードに対応する仮想宛先ノードブロックに到着した複数の探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択すること。
The method includes the following steps.
Based on the information of the network collected by 1.1 or more routing protocols, including a plurality of virtual nodes blocks corresponding to the plurality of nodes included in the network, and a plurality of virtual links corresponding to a plurality of links Realizing a virtual network with a processor. In the case of including a reconfiguration unit, a plurality of virtual node blocks respectively corresponding to a plurality of nodes included in the network are configured by a plurality of processing elements, and a plurality of virtual links respectively corresponding to the plurality of links are formed by a connection matrix. Configuring and configuring a virtual network in the reconfiguration unit.
2. Of the plurality of virtual node blocks, a virtual source node block corresponding to the source node transmits a search packet to all virtual links connected to the virtual source node block.
3. Each of the plurality of virtual node blocks adds, to the received search packet, progress information including information on the virtual link and / or virtual node block through which the received search packet has passed, and a search packet in which the received search packet is duplicated To transmit to all virtual links connected to each virtual node block, except for the virtual link where the received search packet has arrived.
4). Of the plurality of virtual node blocks, a route that matches a predetermined condition is selected from the plurality of routes from the source node to the destination node based on the progress information of the plurality of search packets that have arrived at the virtual destination node block corresponding to the destination node. thing.
経過情報は、通過した仮想リンクおよび/または仮想ノードブロックをビット位置で識別できるビットマップデータを含み、経路を選択すること(ステップ4)は、複数の経過情報のビットマップデータのビット単位の論理積を演算することにより、ソースノードから宛先ノードに至る複数の経路から、ディスジョイントな経路を選択することを含む。 The progress information includes bitmap data that can identify a virtual link and / or a virtual node block that has been passed by a bit position, and selecting a path (step 4) is a bit unit logic of the bitmap data of a plurality of progress information. This includes selecting a disjoint path from a plurality of paths from the source node to the destination node by calculating the product.
複数のプロセッシングエレメントは、遅延量を動的に設定できる複数の遅延エレメントを含み、仮想ネットワークを構成すること(ステップ1)は、接続マトリクスと、複数の遅延エレメントとにより、複数の仮想リンクを構成し、それぞれの仮想リンクに含まれる遅延エレメントには、対応するリンクのコストに対応する遅延量を設定することを含む。 The plurality of processing elements include a plurality of delay elements whose delay amounts can be dynamically set, and configuring a virtual network (step 1) includes configuring a plurality of virtual links by the connection matrix and the plurality of delay elements. The delay element included in each virtual link includes setting a delay amount corresponding to the cost of the corresponding link.
経路を選択すること(ステップ4)は、仮想宛先ノードブロックに到着した順番の早いものから複数の探索パケットの前記経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択することを含む。 Selecting a route (step 4) matches a predetermined condition from a plurality of routes from the source node to the destination node based on the progress information of the plurality of search packets from the earliest arrival in the virtual destination node block. Including selecting a route.
それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信すること(ステップ3)は、それぞれの仮想ノードブロックが、それぞれの仮想ノードブロックに到着した順番の早いものから複数の探索パケットの複製のみを、受信した探索パケットの到来した仮想リンクを除き、それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信することを含む。 Sending to all virtual links connected to each virtual node block (step 3) means that each virtual node block only copies a plurality of search packets from the earliest in order of arrival at each virtual node block. Including transmission to all the virtual links connected to the respective virtual node blocks except for the virtual link on which the received search packet has arrived.
それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信すること(ステップ3)は、通過した仮想リンクおよび/または仮想ノードブロックについての同じ情報を持つ探索パケットを廃棄することを含む。 Sending to all virtual links connected to each virtual node block (step 3) includes discarding search packets with the same information about the virtual links and / or virtual node blocks that have passed.
図1に、経路探索を行うシステムの一例として、ルーティングテーブルを更新する機能を備えたルータの概要を示している。このルータ100は、コンピュータネットワークの一つのノードを構成するデバイスであり、CPU、メモリ、回路を再構成可能なプロセッサなどを含む適当なハードウェア資源と、それらを制御するための適当なソフトウェア資源とを備えている。ルータ100は、有線または無線を含む適当な伝送経路により隣接するルータとの間でデータを交換可能なネットワークインターフェイス101と、このネットワークインターフェイス101を介して送受信するパケットデータ(パケット)を生成および解析する解析ユニット102と、パケットのIPヘッダーの情報に基づき、パケットを送出するネクストホップルータ(ネクストホップ)を選択する機能を備えたルーティングユニット80とを含む。
FIG. 1 shows an outline of a router having a function of updating a routing table as an example of a system for performing a route search. The
ルーティングユニット80の機能は、専用のモジュール、あるいは他の機能と共用のハードウェア資源、例えば、CPUあるいは再構成可能なプロセッサとソフトウェアにより提供される。ルーティングユニット80は、ルーティングテーブル81を参照してパケットを送出するネクストホップを選択する機能82と、動的なルーティングテーブルの更新を可能とする適当なルーティングプロトコル、例えばOSPFにより、近隣のルータを含めたネットワークの情報、特に、ルーティングに関するネットワークの構成を示す情報を取得し、ルーティングテーブル81を更新する機能83とを含む。この更新する機能83は、ルーティングプロトコルにより取得したネットワークの情報を解析対象のネットワークとし、そのネットワークの構成を示すネットワーク行列89を生成する。
The functions of the
OSPFのようなリンクステート型のルーティングアルゴリズムでは、ルータ間でリンク情報をLSA(Link-State Advertisement)で定期的に交換する。したがって、そのネットワークに属する各ノードはネットワーク中のすべてのリンク情報(コスト)を知っている。したがって、ネットワーク行列89には、LSAにより得られたネットワーク内のリンクコスト情報を含めることができる。ネットワーク行列89には、さらに、OSPFとともに、あるいはOSPFに替えて、他のルーティングプロトコルにより取得されたネットワークの情報を含めることができる。この例では、ネットワーク行列89には、ターゲットのネットワークに含まれる複数のノードと、複数のノードを接続する複数のリンクと、それぞれのリンクのコストとが含まれる。インターネットなどのコンピュータネットワークにおいて、ノード間のコスト(リンクコスト)を決定する典型的な要素は、通信速度の逆数である。その他に、光ネットワークにおいては波長予約の成功率、送信対象のデータ種別、QoSにより予約された帯域など複数の要因をリンクコストとして反映することができる。ネットワーク行列89には、コスト以外の他の、経路の優劣を比較できる要素(ルーティングメトリック)を含めても良い。
In a link state type routing algorithm such as OSPF, link information is periodically exchanged between routers by LSA (Link-State Advertisement). Therefore, each node belonging to the network knows all link information (cost) in the network. Accordingly, the
図2(a)にネットワーク行列の一例を示している。このネットワーク行列MNは、図2(b)に示したネットワークNに対応するものであり、ネットワークNはノードA〜Fの6つのノードを含む。ネットワーク行列MNは、ネットワークNに含まれる各ノードを基端とし、基端のノードに繋がる他のノードを先端とする各リンクのコストをエレメントとして含む。無限大のエレメントは、ネットワーク行列MNに含まれるノードであって、直接のルートでは繋がっていないノードを示す。ノードが未接続であることを示す値は無限大に限らない。 FIG. 2A shows an example of the network matrix. This network matrix MN corresponds to the network N shown in FIG. 2B, and the network N includes six nodes A to F. The network matrix MN includes, as elements, the cost of each link having each node included in the network N as a base and another node connected to the base node as a top. The infinite element indicates a node that is included in the network matrix MN and is not connected through a direct route. The value indicating that the node is not connected is not limited to infinity.
ルーティングユニット80は、ルーティングプロトコルを用いて収集されたネットワークの情報(ネットワーク行列)89に基づき、経路探索を行うシステム(経路探索システム)30を含む。この経路探索システム30は、内部に、回路を動的に再構成可能な領域(再構成ユニット)を備えたデバイス(再構成可能デバイス)1を含む。そして、経路探索システム30は、ネットワーク行列89に基づき、経路を発見しようとしているネットワーク(ターゲットのネットワーク)に対応するネットワーク構成を、経路探索を目的とした範囲で仮想的に再構成可能デバイス1に再構成し、経路探索を行う。
The
図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の数は、上記に限定されるものではない。
FIG. 3A shows an example of a reconfigurable device. This
コンフィグレーションメモリ19は、複数バンクの構成になっている。例えば、図3(b)に示すように、PEマトリクス10には、フォアグラウンドバンクに格納されるコンフィグレーションデータ18により第1の機能(データフロー、回路デザイン)17aが構成される。また、異なるバックグラウンドバンクにそれぞれ格納されるコンフィグレーションデータにより、第2の機能17bおよび第3の機能17cがそれぞれ構成される。メモリ19のバンクを切り替えることにより、PEマトリクス10には、第1の機能17aに変わって第2の機能17bまたは第3の機能17cが再構成される。PEマトリクス10の再構成は、例えば、1サイクル(クロックサイクル)でダイナミックに行なわれる。
The
図3(c)は、PEマトリクス10に回路を再構成する一例である。あるアプリケーション、例えば、MPEGデコーダを複数の機能(サブファンクション)に時分割し、それらの機能を、PEマトリクス10に時分割で動的に再構成し、MPEGデコーダの機能を専用回路(専用ハードウェア)で提供する。同様に、経路探索において、ターゲットのネットワークに含まれるノード数が膨大な場合は、ネットワークを複数のサブネットワークに分割し、それらのサブネットワークに対応する仮想ネットワークを時分割で動的に再構成することが可能である。したがって、このデバイス1を採用した経路探索システム30は、大規模ネットワークに対しても適用できる。このような使用により、再構成可能なデータ処理装置であるデバイス1を用いて、多くのハードウエア資源を必要とするアプリケーションを、少ないハードウエア資源で実行できる。
FIG. 3C is an example in which a circuit is reconfigured in the
図3(d)は、PEマトリクス10に回路を構成する他の例の一つである。たとえば、再生方式が異なるアプリケーションを実行するために、複数の機能がそれぞれ実現されるようにPEマトリクス10を再構成できる。同様に、ルータ100において、デバイス1は、経路探索システム30として機能させるだけではなく、ルーティングテーブル81を参照してパケットを送出するネクストホップを選択する機能82などとしても用いることができる。このような使用により、多くのアプリケーションを共通のハードウエア(デバイス)1を用いて実行できる。
FIG. 3D shows another example of configuring a circuit in the
このデバイス1は、さらに、プログラムレベル(命令レベル)ではなく、データフローレベル(データパスレベル、ハードウエアレベル)で多数の機能を切り換えて実装できる。このため、専用のハードウエアに匹敵する速度で処理を行うことができる。したがって、経路探索のための仮想ネットワークをPEマトリクス10に再構成することにより、専用のハードウェアで構成したのに匹敵する処理速度を得ることができる。その一方で、PEマトリクス10は動的に再構成できるので、経路探索の対象となるネットワークの変動に対してもフレキシブルに、遅滞なく追従できる。
Further, the
また、PEマトリクス10に含まれるPEsは、クロックにより同期した処理を行うことが可能であり、パイプライン処理に適したデータフロー(データパス)をPEマトリクス10に再構成できる。さらに、多数のPEsにより並列処理を行う複数のデータフローを並列に再構成することも可能である。したがって、PEマトリクス10に仮想ネットワークを再構成し、経路探索用のパケット(探索パケット)を流すことにより、仮想ネットワーク内で、ターゲットのネットワークと同様に、複数の探索パケットを並列に送受信することが可能となる。さらに、探索パケットの送受信(流れ)が同期的に処理されるので、探索パケットが目的のノード(たとえば、宛先ノード)に到達したタイミングを、その探索パケットが通過した経路の質に関する情報として捉えて、経路を選択するための情報として利用することが可能となる。このように、PEマトリクス10に仮想ネットワークを回路として動的に再構成することにより、ハードウエアによる高速な処理速度と、ソフトウエアのような柔軟性とが融合された経路探索環境を提供できる。
The PEs included in the
図4に、PEマトリクス10を拡大して示している。PEマトリクス10は、縦横に2次元に配置された複数のプロセッシングエレメント(PE)45と、それらの間に格子状に配置された配線47と、配線47の接続ポイントで縦横の配線47の接続を自由に切り替えることができるスイッチングユニット46とを備えている。配線47およびスイッチングユニット46が、複数のPE45の接続を自由に変えることができる接続マトリクス44を構成する。接続マトリクス44には、以下で説明する遅延用のPEなどの、接続環境を調整するためのPEが含まれていても良い。
FIG. 4 shows an enlarged view of the
再構成可能なPEマトリクス(回路領域)10を構成するPE45の一例は、ルックアップテーブルなどにより自在に機能を設定可能なものである。この集積回路デバイス1のマトリクス10には、算術論理演算用のエレメント、遅延用のエレメント、メモリ用のエレメント、データを入力または出力するためにアドレスを発生させるエレメント、データの入力または出力用のエレメントなど、特定の機能あるいは処理に適した内部構成のエレメントが配置されている。ある程度の機能グループに分けたエレメントを配置することにより冗長性が減少し、AC特性および処理速度が向上できる。
An example of the
プロセッサ2から、またはコンフィグレーションメモリ19から、制御バス9aを介して、各PE45に対してコンフィグレーションデータが供給される。このコンフィグレーションデータにより、各々のPE45の機能と、配線群47の接続とが制御され、マトリクス10の内部に、種々のデータフロー(データパス)を自由に構成できる。さらに、PEマトリクス10は、外部メモリインターフェイス6などの外界との接続のため、処理対象のデータを入出力する入力バッファ48および出力バッファ49と、アクセス調停ユニットとして機能するバススイッチングユニット(バスインターフェイス、BSU)9bとを備えている。
Configuration data is supplied from the
図5は、PE45の一例である。このPEは、算術演算および論理演算に適した構成の演算用である。PE45は、機能を変更可能な内部データパス領域45bと、その内部データパス領域45bの機能を設定する制御ユニット45aとを備えている。内部データパス部45bは、配線47から所望の入力データを抽出するためのシフト回路SHIFTおよびマスク回路MASKと、入力データdixおよびdiyをクロック信号によりラッチするための入力レジスタ(FF)と、論理演算ユニットALUと、配線47に出力する出力データdoをクロック信号によりラッチするための出力レジスタ(FF)とを備えている。
FIG. 5 is an example of PE45. This PE is used for operations having a configuration suitable for arithmetic operations and logical operations. The
各PEの制御ユニット45aは、プロセッサ2から制御バス9aを介してコンフィグレーションデータを受信し、内部データパス部45bの構成を制御する。したがって、コンフィグレーションデータにより、1つ、または複数のPE45により、探索パケットを、所定の条件で転送するような機能を備えたノードを再構成できる。
The
図6は、PE45の他の例の1つである。このPEは、データが伝送されるタイミングを遅延する処理に適したものである。この内部データパス部45dは、複数のセレクタとフリップフロップの組み合わせで構成された遅延回路45eと、入力側のフリップフロップ(FF)と、出力側のフリップフロップ(FF)と、回路を選択するセレクタ45sとを備えている。遅延回路45eは、コンフィグレーションデータにより、本例では0〜5クロックの遅延をセットできる。したがって、入力毎に1〜7クロックの遅延を制御できる。さらに、コンフィグレーション情報により、2つの入力系統(X系統およびY系統)を直列に接続することが可能であり、2倍の遅延時間を制御できる。また、これらのデータと共にキャリー信号用の行配線群および列配線群で導かれるキャリー信号cixおよびciyも同様のデータパスにより遅延して出力される。
FIG. 6 shows another example of PE45. This PE is suitable for processing for delaying the timing at which data is transmitted. The internal
この遅延用のPE45を、仮想ネットワークの仮想ノード間を接続する仮想リンクに含めるようにPEマトリクス10を再構成することが可能である。遅延用のPE45の遅延量はコンフィグレーションデータによりバリアブルに設定できるので、その遅延量により、リンクコストなどのリンクの優劣を決める要素を、探索パケットの遅延(転送時間の遅れ)として探索パケットの履歴(経過情報)に含めることができる。
The
図1に示すように、経路探索システム30は、再構成ユニットであるPEマトリクス10に仮想ネットワーク35を構成する構成ユニット31と、仮想ネットワークを用いて探索された経路から所定の条件に合致する経路を選択する経路選択ユニット32とを含む。構成ユニット31は、ルータ100がサポートする1または複数のルーティングプロトコルにより収集されたネットワークの情報(ネットワーク行列)89に基づき、PEマトリクス10に仮想ネットワーク35を再構成する。経路選択ユニットは、仮想ネットワーク35に含める複数の仮想ノードブロックのうち、宛先ノード(ディスティネーションノード)に対応する仮想宛先ノードブロックに到着した複数の探索パケットの経過情報により、ソースノードから宛先ノードに至る複数の経路から所定の条件に合致する経路を選択する。この例では、これらのユニット31および32としての機能は、DAP2にロードされるプログラムにより提供されるようになっている。これらのユニット31および32は、PEマトリクス10に、仮想ネットワーク35とともに、あるいは時分割で再構成しても良い。
As shown in FIG. 1, the
図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として参照する。
FIG. 7 shows an example of a target network to be a route search target. FIG. 8 shows an example of a virtual network reconfigured in the
構成ユニット31は、ネットワーク行列89に基づいて、PEマトリクス10に仮想ネットワーク35を再構成するためのコンフィグレーションデータ18を生成し、そのコンフィグレーションデータ18をPEマトリクス10またはコンフィグレーションメモリに供給することにより仮想ネットワーク35として機能する回路(データフロー、データパス)をPEマトリクス10に再構成する。さらに、構成ユニット31は、仮想ノードブロックPN1〜PN11のうち、ソースノードN1に対応する仮想ソースノードブロックPN1が、仮想ソースノードブロックPN1に繋がった全ての仮想リンク、この場合は仮想リンクPL1およびPL2に探索パケットSPを送信するようにコンフィグレーションデータ18を生成し、仮想ソースノードブロックPNを再構成する。
The
また、構成ユニット31は、複数の仮想ノードブロックPN1〜PN11のうち、仮想ソースノードブロックN1と、仮想宛先ノードブロックN8を除いたそれぞれの仮想ノードブロックPNを、受信した探索パケットSPに、受信した探索パケットSPの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加するようにコンフィグレーションデータ18を生成し、それぞれの仮想ソースノードブロックPNを再構成する。構成ユニット31は、さらに、受信した探索パケットSPを複製した探索パケットSPを、受信した探索パケットSPの到来した仮想リンクPLを除き、それぞれの仮想ノードブロックPNに繋がった全ての仮想リンクPLに送信するようにコンフィグレーションデータ18を生成し、それぞれの仮想ソースノードブロックPNを再構成する。
In addition, the
構成ユニット31は、さらに、それぞれの仮想ノードブロックPNを、それぞれの仮想ノードブロックPNに到着した順番の早いものから複数の探索パケットSPの複製のみを、受信した探索パケットの到来した仮想リンクPLを除き、それぞれの仮想ノードブロックPNに繋がった全ての仮想リンクPLに送信するようにコンフィグレーションデータ18を生成し、仮想ソースノードブロックPNを再構成する。
The
構成ユニット31は、さらに、それぞれの仮想ノードブロックPNを、通過した仮想リンクPLおよび/または仮想ノードブロックPNについての同じ情報を持つ探索パケットSPを廃棄するように構成するようにコンフィグレーションデータ18を生成し、仮想ソースノードブロックPNを再構成する。
The
図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を更新できる。
FIG. 9 shows an example of the search packet SP. This search packet SP includes
探索される経路の典型的なものの1つは、ソースノードN1から宛先ノードN8に至る最短経路である。たとえば、仮想リンクL1〜L13の遅延を一定にすることにより、最も早く仮想宛先ノードブロックPN8に到達した探索パケットSPの経路を最小ホップ数の経路として選択できる。また、仮想リンクL1〜L13の遅延をリンクコストに基づいて設定することにより、経路選択ユニット32は、最も早く仮想宛先ノードブロックPN8に到達した探索パケットSPの経路を最小コストの経路として選択できる。
One typical route searched is the shortest route from the source node N1 to the destination node N8. For example, by making the delays of the virtual links L1 to L13 constant, the route of the search packet SP that has reached the virtual destination node block PN8 earliest can be selected as the route with the minimum number of hops. In addition, by setting the delay of the virtual links L1 to L13 based on the link cost, the
探索される経路の典型的なものの異なる例は、ソースノードN1から宛先ノードN8に至るディスジョイントな経路である。経路選択ユニット32は、仮想宛先ノードブロックPN8に到達した複数の探索パケットSPの経過情報25のビットマップデータのビット単位の論理積を演算することにより、ソースノードN1から宛先ノードN8に至る複数の経路から、ディスジョイントな経路を選択することができる。経過情報25のビットマップデータのビット単位の論理積が全て0であれば、比較した経過情報25に含まれる経路はディスジョイントな経路である。ビットマップ(ビット列)の比較は、PEマトリクス10に含まれる算術演算用のPEを用いることにより極めて短時間に処理できる。DAP2によりソフトウェアでビットマップの比較を行っても良い。
A different example of a typical searched route is a disjoint route from the source node N1 to the destination node N8. The
さらに、仮想リンクL1〜L13の遅延を一定にすることにより、仮想宛先ノードブロックPN8に到達したタイミングにより、経路選択ユニット32は、最小ホップ数のディスジョイントな経路を選択できる。仮想リンクL1〜L13の遅延をリンクコストに基づいて設定することにより、経路選択ユニット32は、仮想宛先ノードブロックPN8に到達した探索パケットSPのタイミングにより、最小コストのディスジョイントな経路を選択できる。
Further, by making the delay of the virtual links L1 to L13 constant, the
図10に、ソースノードから、1または複数の宛先ノードへ至る経路を、再構成ユニットであるPEマトリクス10を用いて探索する方法の一例を示している。ステップ71において、ルータ100が提供する1または複数のルーティングプロトコルによりネットワークの情報89を収集する。ステップ72において、構成ユニット31は、ネットワークの情報89に基づき、PEマトリクス10に仮想ネットワーク35を構成する。ステップ73において、ソースノードN1に対応する仮想ソースノードブロックPN1から、仮想ソースノードブロックPN1に繋がった全ての仮想リンクPL1およびPL2に探索パケットSPを送信する。この段階の経過情報25は、全てのビットが0である。
FIG. 10 shows an example of a method for searching for a route from a source node to one or a plurality of destination nodes using the
ステップ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に送信する。
In
ステップ75において、十分な数の探索パケットSPが仮想宛先ノードブロックPN8に到達するまで仮想ノードブロックPN間において探索パケットSPを転送する。十分な数の探索パケットSPが仮想宛先ノードブロックPN8に到達すると、ステップ76において、経路選択ユニット32は、得られた複数の探索パケットSPの経過情報25により、ソースノードN1から宛先ノードN8に至る複数の経路を得ることができる。そして、得られた経路の中から、所定の条件に合致する経路を選択する。
In
ステップ75において、ディスジョイントな経路を選択する場合は、上述したように、複数の経過情報25のビットマップデータの論理積を演算することが望ましい。最小ホップ数の最短経路、最小コストの最短経路の探索もディスジョイントな経路の探索とともに行うことができる。仮想宛先ノードブロックPN8に順番の早いものから(先に到着した)複数の探索パケットSPのみの(に限定した)経過情報25により、ディスジョイントな経路で、最短の経路を選択することが可能である。基本的には、種々の条件を加味して、最短な経路を選択することがルート探索の目的であり、全ての探索パケットSPが仮想宛先ノードブロックPN8に到達することを待つ必要はない。
In
また、ステップ74において、それぞれの仮想ノードブロックPNは、到着した順番の早いものから複数の探索パケットSPの複製のみを転送することが望ましい。種々の条件を加味して、最短な経路を選択することがルート探索の目的であり、無駄にリンクをたどっている探索パケットSPを活かす必要は通常の場合はない。さらに、ステップ74において、通過した仮想リンク(または仮想ノードブロック)についての同じ情報を経過情報25に持つ探索パケットSPを廃棄することが望ましい。たとえば、仮想リンクPL3を経過した情報を持つ探索パケットSPが仮想リンクPL3を通して仮想ノードブロックPN4に到達したときは、その探索パケットSPは、仮想リンクPL3をループしていることを意味する。ループする経路を示す探索パケットSPは、経路探索には不要であり、そのような探索パケットSPは破棄し、仮想ネットワーク35を流れる探索パケットSPの数を減らすことが望ましい。
In
図11から図17に、図7に示したネットワーク21について、経路探索システム30により経路が探索される様子を示している。まず、ネットワーク21内のすべてのリンクに、リンク番号(L1〜L13)を付与する。リンク番号は、SRLG(Shared Risk Link Group)番号のようなものにしてもよいが、本例ではリンク番号で独立性を促進する。
FIGS. 11 to 17 show how the route is searched for by the
図11に示したステップ1において、S(ソース)ノードN1(PN1)からソースノードN1につながっているすべてのノードに対して、探索パケットSPを流して探索を開始する。
In
図12に示したステップ2において、探索パケットSPが到着したノードN(PN)は、当該ノードNに接続し、逆戻りとならないノードNすべてに1つずつ探索パケットSPを流して探索を行う。この際、それぞれの探索パケットSPは通過したリンク番号を含む経過情報25を保持する。
In
図13〜図16に示すように、ステップ3〜ステップ6において、上記と同様に、1サイクルごとに次のノードN(PN)へ探索を行う。図15に示したステップ5では、ループを作った探索パケットSPを廃棄している。ループの検出方法としては、経過情報25の通過ノード番号から判断する方法と、探索パケットSPに適当な識別情報を付加して各仮想ノードブロックPNがすでに通過している探索パケットSPを把握し、仮想リンクPLを再度探索しようとした場合に廃棄する方法とが考えられる。各仮想リンクPLの遅延を同じに設定することが可能であり、その場合、PEマトリクス10に再構成された仮想ネットワーク35においては、仮想ノードブロックPNにおけるレイテンシを別にすれば、1サイクル毎に次の仮想ノードブロックPNの探索を行うことができる。したがって、多数のノードおよびリンクを含むネットワーク21の経路探索を短時間で行うことができる。
As shown in FIGS. 13 to 16, in
遅延エレメントにより各仮想リンクPLにコストをセットした場合であっても、1つの仮想リンクPLについて数クロックの遅れが発生するだけであり、実際のネットワーク21にパケットを流して、各ノードにおいて、各種のネットワークプロトコルが処理するのを待って、ルート探索用のパケットが送受信されるのと比較すると、遙かに短時間でネットワーク21の経路探索を行うことができる。さらに、仮想ネットワーク35は、経路探索システム30の内部に存在しているので、仮想宛先ノードブロックPN8に到達した探索パケットSPをソースノードブロックPN1に戻さなくても、経過情報25に基づき経路を探索できる。この点でも、ターゲットのネットワーク21にパケットを流すことに比較すると、はるかに短時間で経路探索を行うことができる。
Even when the cost is set for each virtual link PL by the delay element, a delay of only a few clocks occurs for one virtual link PL. Compared with the case where a packet for route search is transmitted and received after waiting for the network protocol to process, the route search of the
図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
In
Route 1 (1,4,7) 3hop
Route 2 (2, 5, 12, 7) 4hop
Route 3 (1, 3, 6, 13) 4hop
Route 4 (2, 5, 8, 9, 10, 11) 6hop
Route 5 (1, 4, 12, 8, 9, 10, 11) 7hop
Route 6 (2, 5, 12, 4, 3, 6, 13) 7hop
したがって、経路選択ユニット32においては、ルート1が最小ホップ数の最短経路であることがわかる。さらに、経路選択ユニット32は、これら6つのルートの中でディスジョイントなルートの組合せを求めることができる。
Therefore, in the
図18に、各ルートを辿って仮想宛先ノードブロックPN8に到達した探索パケットSPに含まれている経過情報25を示している。経過情報25は、少なくとも13ビット以上のビット幅を持つビットマップデータであり、通過した仮想リンクPLに相当する位置のビットが1になっている。経過情報25は、たとえば、100リンク程度を含むネットワークであれば100ビット幅が必要であり、13バイト程度のデータになる。
FIG. 18 shows the
ルート1に対してディスジョイントなルートを求める場合は、ルート1の経過情報25と、他のすべてのルート(ルート2〜6)の経過情報25とのビット単位の論理積(AND)を演算すれば良い。1つでも論理積が“1”であれば、ディスジョイントではない。
When a disjoint route is obtained with respect to
図19に、ソフトウェアで論理積を求める方法の1つをフローチャートにより示している。まず、ルートi(1〜6)の使用しているリンク番号j(1〜13)をl(i,j)行列とする。次に1つのルート(例えばルート1)を選択し、他のすべてのルート(例えばルート2〜6)のリンク番号ごとに論理積(AND)をとり、1つでも論理積が“1”であれば、ディスジョイントではないと判断する。
FIG. 19 is a flowchart showing one method for obtaining a logical product by software. First, the link number j (1-13) used by the route i (1-6) is assumed to be an l (i, j) matrix. Next, one route (for example, route 1) is selected, and logical product (AND) is taken for each link number of all other routes (for example,
その結果、経路選択ユニット32においては、以下のようなディスジョイントなルートの組み合わせを得ることができる。
ルート1とルート4
ルート2とルート3
ルート3と、ルート2およびルート4
ルート4とルート3
ルート5および6にはディスジョイントなルートは存在しない。
As a result, the
さらに、経路選択ユニット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に通過したノード(仮想ノードブロック)の識別情報を含めることが望ましい。また、ディスジョイントなルートを選択する条件は、総ホップ数が最少に限定されず、コストが反映されている場合は、総コスト数が最少となる組み合わせであっても良い。あるいは、ディスジョイントなルートのコスト差あるいはホップ差が最少になるような組み合わせであっても良い。
Furthermore, the
Route 1 (3 hop) + Route 4 (6 hop) = 9 hop
Route 2 (4 hop) + Route 3 (4 hop) = 8 hop
Route 3 (4 hop) + Route 4 (6 hop) = 10 hop
In this case, it can be seen that the combination of
また、大規模ネットワークでは、すべてのルートを探索してくるのを待つのは、探索時間が大きくなってしまう問題がある。そこで、経路選択ユニット32は、仮想宛先ノードブロックPN8に到着した順番の早い探索パケットSPのベストm個のルートのみに制限して選択する。
In a large-scale network, waiting for searching for all routes has a problem that the search time becomes long. Accordingly, the
また、到着した順番の早いもののベストmを仮想宛先ノードブロックPN8で得るため、各中継ノードブロックPNでも、すべて到着した順番の早いものm個のみを処理して、残りは廃棄する。このことによって、ネットワーク内の探索は、最大m、n(nはノード数)で上限が決まる。 In addition, in order to obtain the best m in the order of arrival in the virtual destination node block PN8, each relay node block PN processes only m pieces in the order of arrival and discards the rest. Thus, the upper limit of the search in the network is determined by the maximum m and n (n is the number of nodes).
さらに、PEマトリクス10のPEなどのハードウェア資源が不足する場合は、仮想ネットワーク35をマルチコンテキスト化し、時分割でPEマトリクス10に再構成することが可能である。また、複数のデバイス1のPEマトリクス10をダイレクト接続し、仮想的にPEマトリクス10のハードウェア資源を拡大しても良い。
Further, when hardware resources such as PEs in the
また、この経路探索システム30においては、再構成ユニットであるPEマトリクス10に仮想ネットワークが再構成できれば、ルート検索が可能となる。したがって、異なるルーティングプロトコルが適用される複数のネットワークあるいは複数のASをカバーする範囲のルート検索にも適用できる。
In the
1 再構成可能デバイス、 10 PEマトリクス(再構成ユニット)
30 経路探索システム
31 仮想ネットワーク構成ユニット、 32 経路選択ユニット
35 仮想ネットワーク
80 ルーティングユニット
100 ルータ
1 reconfigurable device, 10 PE matrix (reconfigurable unit)
30
Claims (11)
1または複数のルーティングプロトコルにより収集された前記ネットワークの情報に基づき、前記ネットワークに含まれる前記複数のノードにそれぞれ対応する複数の仮想ノードブロックと、前記複数のリンクにそれぞれ対応する複数の仮想リンクとを含む仮想ネットワークをプロセッサにより実現させる仮想ネットワーク構成ユニットを有し、
仮想ネットワーク構成ユニットは、前記複数の仮想ノードブロックのうち、前記ソースノードに対応する仮想ソースノードブロックを、前記仮想ソースノードブロックに繋がった全ての仮想リンクに探索パケットを送信するように構成し、さらに、
前記複数の仮想ノードブロックのそれぞれを、受信した前記探索パケットに、前記受信した探索パケットの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加し、前記受信した探索パケットを複製した探索パケットを、前記受信した探索パケットの到来した仮想リンクを除き、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信するように構成し、
さらに、当該システムは、
前記複数の仮想ノードブロックのうち、前記宛先ノードに対応する仮想宛先ノードブロックに到着した複数の前記探索パケットの前記経過情報により、前記ソースノードから前記宛先ノードに至る複数の経路から所定の条件に合致する経路を選択する経路選択ユニットを有する、システム。 A system for searching for a route from a source node to one or more destination nodes in a network including a plurality of nodes and a plurality of links connecting them,
A plurality of virtual node blocks respectively corresponding to the plurality of nodes included in the network , and a plurality of virtual links respectively corresponding to the plurality of links, based on the network information collected by one or a plurality of routing protocols ; Including a virtual network configuration unit that realizes a virtual network including:
The virtual network configuration unit configures a virtual source node block corresponding to the source node among the plurality of virtual node blocks so as to transmit a search packet to all virtual links connected to the virtual source node block, further,
Each of the plurality of virtual node blocks is added to the received search packet with progress information including information on the virtual link and / or virtual node block through which the received search packet has passed, and the received search packet is duplicated. Configured to transmit the search packet to all the virtual links connected to the respective virtual node blocks, excluding the virtual link from which the received search packet has arrived,
Furthermore, the system
Among the plurality of virtual node blocks, the progress information of the plurality of search packets that have arrived at the virtual destination node block corresponding to the destination node is set to a predetermined condition from a plurality of routes from the source node to the destination node. A system having a route selection unit for selecting a matching route.
前記経路選択ユニットは、複数の前記経過情報の前記ビットマップデータのビット単位の論理積を演算することにより、前記ソースノードから前記宛先ノードに至る複数の経路から、ディスジョイントな経路を選択する、システム。 The progress information according to claim 1, wherein the progress information includes bitmap data that can identify the passed virtual link and / or virtual node block by a bit position,
The path selection unit selects a disjoint path from a plurality of paths from the source node to the destination node by calculating a bitwise logical product of the bitmap data of the plurality of pieces of progress information. system.
前記仮想ネットワーク構成ユニットは、前記複数のプロセッシングエレメントにより前記複数の仮想ノードブロックを構成し、前記接続マトリクスにより前記複数の仮想リンクを構成する、システム。The system in which the virtual network configuration unit configures the plurality of virtual node blocks by the plurality of processing elements and configures the plurality of virtual links by the connection matrix.
前記仮想ネットワークを構成するユニットは、前記接続マトリクスと、前記複数の遅延エレメントとにより、前記複数の仮想リンクを構成し、それぞれの仮想リンクに含まれる遅延エレメントには、対応するリンクのコストに対応する遅延量を設定する、システム。 In Claim 3 , the plurality of processing elements include a plurality of delay elements that can dynamically set the delay amount,
The units constituting the virtual network configure the plurality of virtual links by the connection matrix and the plurality of delay elements, and the delay elements included in the respective virtual links correspond to the cost of the corresponding links. Set the amount of delay to be performed.
1または複数のルーティングプロトコルにより収集された前記ネットワークの情報に基づき、前記ネットワークに含まれる前記複数のノードにそれぞれ対応する複数の仮想ノードブロックと、前記複数のリンクにそれぞれ対応する複数の仮想リンクとを含む仮想ネットワークであって、前記プロセッサにより実現された仮想ネットワークの、前記複数の仮想ノードブロックのうち、前記ソースノードに対応する仮想ソースノードブロックが、前記仮想ソースノードブロックに繋がった全ての仮想リンクに探索パケットを送信することと、
前記複数の仮想ノードブロックのそれぞれが、受信した前記探索パケットに、前記受信した探索パケットの通過した仮想リンクおよび/または仮想ノードブロックの情報を含む経過情報を追加し、前記受信した探索パケットを複製した探索パケットを、前記受信した探索パケットの到来した仮想リンクを除き、前記それぞれの仮想ノードブロックに繋がった全ての仮想リンクに送信することと、
前記複数の仮想ノードブロックのうち、前記宛先ノードに対応する仮想宛先ノードブロックに到着した複数の前記探索パケットの前記経過情報により、前記ソースノードから前記宛先ノードに至る複数の経路から所定の条件に合致する経路を選択することとを含む方法。 A method for searching a path from a source node to one or more destination nodes using a processor in a network including a plurality of nodes and a plurality of links connecting the nodes,
A plurality of virtual node blocks respectively corresponding to the plurality of nodes included in the network , and a plurality of virtual links respectively corresponding to the plurality of links, based on the network information collected by one or a plurality of routing protocols ; All virtual nodes in which a virtual source node block corresponding to the source node among the plurality of virtual node blocks of the virtual network realized by the processor is connected to the virtual source node block. Sending a search packet on the link;
Each of the plurality of virtual node blocks adds, to the received search packet, progress information including information on the virtual link and / or virtual node block through which the received search packet has passed, and replicates the received search packet. Sending the search packet to all virtual links connected to the respective virtual node blocks, excluding the virtual link from which the received search packet has arrived;
Among the plurality of virtual node blocks, the progress information of the plurality of search packets that have arrived at the virtual destination node block corresponding to the destination node is set to a predetermined condition from a plurality of routes from the source node to the destination node. Selecting a matching route.
当該方法は、前記送信することの前に、Before the transmission, the method
前記複数のプロセッシングエレメントにより前記複数の仮想ノードブロックを構成し、前記接続マトリクスにより前記複数の仮想リンクを構成し、前記再構成ユニットに前記仮想ネットワークを構成することを含む方法。Configuring the plurality of virtual node blocks by the plurality of processing elements, configuring the plurality of virtual links by the connection matrix, and configuring the virtual network in the reconfiguration unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007312648A JP4894013B2 (en) | 2007-12-03 | 2007-12-03 | System and method for searching a path between nodes included in a network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007312648A JP4894013B2 (en) | 2007-12-03 | 2007-12-03 | System and method for searching a path between nodes included in a network |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2009141425A JP2009141425A (en) | 2009-06-25 |
JP2009141425A5 JP2009141425A5 (en) | 2011-01-27 |
JP4894013B2 true JP4894013B2 (en) | 2012-03-07 |
Family
ID=40871645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007312648A Expired - Fee Related JP4894013B2 (en) | 2007-12-03 | 2007-12-03 | System and method for searching a path between nodes included in a network |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4894013B2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011077609A1 (en) | 2009-12-25 | 2011-06-30 | パナソニック株式会社 | Network location recognition system and terminal location recognition device |
JP5633281B2 (en) | 2010-09-29 | 2014-12-03 | 富士通株式会社 | Optical communication system, optical network management apparatus, and optical network management method |
US9253012B2 (en) * | 2010-11-19 | 2016-02-02 | Nec Corporation | Path selection device, program and method |
WO2012090993A1 (en) | 2010-12-28 | 2012-07-05 | 日本電気株式会社 | Information system, control device, communication method and program |
JP6113443B2 (en) * | 2012-09-14 | 2017-04-12 | 株式会社日立国際電気 | Communication system and communication method thereof |
US11301514B2 (en) | 2013-03-02 | 2022-04-12 | Leon Guzenda | System and method to identify islands of nodes within a graph database |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3132996B2 (en) * | 1995-03-02 | 2001-02-05 | 三菱電機株式会社 | Network route setting method and network route setting device |
JP2005006235A (en) * | 2003-06-16 | 2005-01-06 | Hitachi Ltd | Network monitoring system and monitoring method, and program |
JP2005229567A (en) * | 2004-01-13 | 2005-08-25 | Jiyuuro Takase | System for packet communication in neighboring network |
JP4654731B2 (en) * | 2005-03-31 | 2011-03-23 | 富士ゼロックス株式会社 | Integrated circuit device and signal processing device |
EP1773003B1 (en) * | 2005-10-04 | 2014-01-15 | NTT DoCoMo, Inc. | Method and apparatus for discovering disjoint routes to multiple service nodes |
JP4734539B2 (en) * | 2006-05-15 | 2011-07-27 | 学校法人慶應義塾 | System and method for searching for the shortest path between nodes in a network |
-
2007
- 2007-12-03 JP JP2007312648A patent/JP4894013B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009141425A (en) | 2009-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8819616B2 (en) | Asymmetric mesh NoC topologies | |
US20220224656A1 (en) | Programmable logic device with integrated network-on-chip | |
JP6060316B2 (en) | Method and system for configuring NoC and computer-readable storage medium | |
JP6216454B2 (en) | System level simulation in network on chip architecture | |
JP4734539B2 (en) | System and method for searching for the shortest path between nodes in a network | |
Schonwald et al. | Fully adaptive fault-tolerant routing algorithm for network-on-chip architectures | |
JP5276220B2 (en) | Bus control device and control device for outputting instructions to bus control device | |
JP4894013B2 (en) | System and method for searching a path between nodes included in a network | |
US10218581B2 (en) | Generation of network-on-chip layout based on user specified topological constraints | |
JP5703909B2 (en) | Information processing apparatus, parallel computer system, and control method of parallel computer system | |
US10523599B2 (en) | Buffer sizing of a NoC through machine learning | |
US10298485B2 (en) | Systems and methods for NoC construction | |
US20230327976A1 (en) | Deadlock-free multipath routing for direct interconnect networks | |
US9258358B2 (en) | Parallel computing system and control method of parallel computing system | |
KR101784499B1 (en) | Apparatus and method for fault tolerlant routing in voltage-frequency-island networks-on-chip, voltage-frequency-island networks-on-chip using the same | |
US20170060809A1 (en) | Automatic generation of physically aware aggregation/distribution networks | |
JP2010041429A (en) | System and method for searching path between nodes included in network | |
Zeng et al. | An efficient highly adaptive and deadlock-free routing algorithm for 3D network-on-chip | |
Choudhary | Bursty Communication Performance Analysis of Network-on-Chip with Diverse Traffic Permutations | |
Adamu et al. | Review of deterministic routing algorithm for network-on-chip | |
Somisetty et al. | Regional Congestion Aware Odd Even Routing with Fair Arbitration for Network on Chip | |
Alzaben et al. | End-to-End Routing Algorithm Based on Max-Flow Min-Cut in SDN Controllers | |
CN116419363B (en) | Data transmission method, communication device, and computer-readable storage medium | |
Rose et al. | Fpga implementation of low latency routing algorithm for 3d network on chip | |
Morimoto et al. | Design and implementation of SDN-enhanced MPI broadcast targeting a fat-tree interconnect |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100303 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100303 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101201 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101201 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111118 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111122 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111208 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150106 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |