JP2014120827A - Search device for searching for condition entry matching query entry from condition table, flow switch device, program, and method - Google Patents

Search device for searching for condition entry matching query entry from condition table, flow switch device, program, and method Download PDF

Info

Publication number
JP2014120827A
JP2014120827A JP2012272846A JP2012272846A JP2014120827A JP 2014120827 A JP2014120827 A JP 2014120827A JP 2012272846 A JP2012272846 A JP 2012272846A JP 2012272846 A JP2012272846 A JP 2012272846A JP 2014120827 A JP2014120827 A JP 2014120827A
Authority
JP
Japan
Prior art keywords
entry
condition
flow
entries
query
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.)
Granted
Application number
JP2012272846A
Other languages
Japanese (ja)
Other versions
JP5950811B2 (en
Inventor
Nobutaka Matsumoto
延孝 松本
Michiaki Hayashi
通秋 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2012272846A priority Critical patent/JP5950811B2/en
Publication of JP2014120827A publication Critical patent/JP2014120827A/en
Application granted granted Critical
Publication of JP5950811B2 publication Critical patent/JP5950811B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a device, etc. for controlling resource allocation by considering how many entries need to be searched (expectation value) when searching for a condition entry matching a query entry.SOLUTION: Each condition entry includes a bit rate based on a number of times the condition entry matched a query entry. Also, a maximum count of processing steps allowed for the purpose of entry determination is preset. Then, following means are provided: condition entry classification means for classifying, with regard to a condition table, a cumulative hit rate having hit rates accumulated in order of priority by a maximum count of processing steps; processor count determination means for determining, for each of the classified processing steps, the number of condition entries as a required number of arithmetic processors; individual step processing means for determining at a time whether a query entry and the condition entry match or not; and entry search means for repeating the individual step processing means in descending order of condition entry in the condition table, up to the maximum count of processing steps.

Description

本発明は、条件テーブルからクエリエントリに一致する条件エントリを検索する技術に関する。特に、フロースイッチ装置について、フローテーブル(条件テーブル)を用いて、入力されたパケットのフローヘッダ識別子(クエリエントリ)に一致するフローエントリ(条件エントリ)を検索し、そのフローエントリに登録された転送先へ当該パケットを経路制御する技術に関する。   The present invention relates to a technique for searching a condition entry that matches a query entry from a condition table. In particular, for a flow switch device, a flow entry (condition entry) that matches the flow header identifier (query entry) of the input packet is searched using the flow table (condition table), and the transfer registered in the flow entry The present invention relates to a technique for routing the packet first.

従来、ネットワークの構成や機能を変更する場合、専門のネットワーク運用管理者が、ベンダ独自のコマンドを用いて、スイッチやルータのプロトコルの設定を変更する必要があった。これに対し、SDN(Software-Defined Network)という概念が注目されてきている。SDNによれば、仮想化ネットワークを用いて、その構成や機能の設定をソフトウェアによってプログラマブルに制御することができる。これは、ネットワーク全体における各機能レイヤを分離し、オープンなインタフェースでつなぐアーキテクチャによって構成される。ネットワーク運用管理者は、異なるプロトコルを持つネットワーク機器を統合管理した物理的資源の設定を、稼働状況や経路制御ポリシに合わせて、アプリケーションによって迅速に変更することができる。   Conventionally, when a network configuration or function is changed, a specialized network operation manager needs to change a protocol setting of a switch or a router using a vendor-specific command. On the other hand, the concept of SDN (Software-Defined Network) has been attracting attention. According to SDN, the configuration and function settings can be controlled by software using a virtualized network. This consists of an architecture that separates each functional layer in the entire network and connects them with an open interface. The network operation manager can quickly change the setting of the physical resource in which the network devices having different protocols are integrated and managed according to the operation status and the path control policy.

SDNの中核として、フローベースネットワーキングが必要とされる。これは、通信パケットの経路をフロー単位で制御することによって、ユーザやアプリケーション毎に細かい粒度のQoS(Quality of Service)を制御することができる。「フロー」とは、当該パケットに対する、例えば入力ポート、MAC(Media Access Control)アドレス、VLAN(Virtual Local Area Network)識別子、IP(Internet Protocol)アドレスやポート番号の組み合わせで識別される通信のまとまりをいう。即ち、アプリケーション毎の一連の通信のまとまりを意味する。これら要素の組み合わせが識別されることよって、当該パケットの経路が制御される。   As the core of SDN, flow-based networking is required. This can control QoS (Quality of Service) with fine granularity for each user or application by controlling the path of the communication packet in units of flows. “Flow” refers to a set of communications identified by a combination of an input port, a MAC (Media Access Control) address, a VLAN (Virtual Local Area Network) identifier, an IP (Internet Protocol) address, and a port number for the packet. Say. That is, it means a series of communication for each application. By identifying the combination of these elements, the route of the packet is controlled.

フローベースネットワーキングによれば、中継ノードとして、COTS(Commercial Off The Shelf)によるフロースイッチ装置が用いられることが想定される。このようなフロースイッチ装置は、高いプログラム性や機能拡張性を有すると共に、汎用機器を用いるために比較的低コストで実現される。「フロースイッチ装置」は、入力されたパケットのフローヘッダ識別子(クエリエントリ)と一致する、フローテーブル(条件テーブル)に予め登録されたフローエントリ(条件エントリ)を検索し、そのフローエントリに基づいて当該パケットの経路(転送先)を制御する。フローテーブルは、各フローエントリを、経路制御ポリシに基づいて優先度順に並べたものである。   According to the flow-based networking, it is assumed that a flow switch device by COTS (Commercial Off The Shelf) is used as a relay node. Such a flow switch device has high programmability and function expandability, and is realized at a relatively low cost because a general-purpose device is used. The “flow switch device” searches for a flow entry (condition entry) registered in advance in the flow table (condition table) that matches the flow header identifier (query entry) of the input packet, and based on the flow entry Controls the route (forwarding destination) of the packet. In the flow table, the flow entries are arranged in order of priority based on the path control policy.

従来、専用的なフロースイッチ装置であっても、一般的な宛先検索の技術が適用されていた。即ち、経路制御ポリシとしての複数のフローエントリの中から、入力されたパケットのフローヘッダ識別子に一致するフローエントリを検索するために、優先度順に線形的な完全一致検索の技術が適用されている。   Conventionally, a general destination search technique has been applied even to a dedicated flow switch device. That is, in order to search for a flow entry that matches the flow header identifier of an input packet from among a plurality of flow entries as a route control policy, a linear perfect match search technique is applied in order of priority. .

フロースイッチ装置の用途とは異なるが、例えばPatricia-Treeという二分木検索を用いた技術がある(非特許文献1参照)。この技術によれば、Linux(登録商標)やFreeBSD(登録商標)等のOS(Operating System)における宛先検索に利用されており、IP(Internet Protocol)アドレスに基づく経路を検索するべく、最長プレフィックスの一致を検索するものである。   Although it is different from the application of the flow switch device, for example, there is a technique using binary tree search called Patricia-Tree (see Non-Patent Document 1). According to this technology, it is used for destination search in an OS (Operating System) such as Linux (registered trademark) or FreeBSD (registered trademark), and the longest prefix is searched for a route based on an IP (Internet Protocol) address. Search for a match.

また、商用のフロールータであって、入力された全てのパケットのフローヘッダ識別子から、完全一致とするハッシュ値を算出し、そのハッシュテーブルを用いてフローエントリを高速に検索する技術もある(例えば非特許文献2参照)。   There is also a technology that is a commercial flow router that calculates a hash value that is a complete match from the flow header identifiers of all input packets, and uses the hash table to search for flow entries at high speed (for example, Non-patent document 2).

更に、GPU(Graphic Processer Unit)を用いて、ソフトウェアルータにおけるフローテーブルから宛先を高速に検索する技術もある(例えば非特許文献3参照)。この技術によれば、フローエントリとの完全一致にはハッシュ検索を適用している。   Further, there is a technique for searching for a destination at high speed from a flow table in a software router using a GPU (Graphic Processor Unit) (see, for example, Non-Patent Document 3). According to this technique, a hash search is applied to a perfect match with a flow entry.

更に、フロースイッチ装置とは別の用途として、線形的な完全一致検索を実現するために、並列処理可能な複数演算部を備え、実行プログラムの負荷情報に応じて各演算部に対する処理分担を決定する技術もある(例えば特許文献1参照)。この技術によれば、実行プログラムそれぞれの負荷情報が予め与えられており、必要な並列度を考慮して最適なプロセッサリソースの割当てを実行することができる。   Furthermore, as an application different from the flow switch device, in order to realize a linear exact match search, a plurality of operation units capable of parallel processing are provided, and the processing sharing for each operation unit is determined according to the load information of the execution program. There is also a technique (see, for example, Patent Document 1). According to this technique, load information of each execution program is given in advance, and optimal processor resource allocation can be executed in consideration of the necessary parallelism.

特開2008−165746号公報JP 2008-165746 A

Donald R. Morrisonら著 "PATRICIA:Practical Algorithm To Retrieve Information Coded in Alpha numeric" Journal of the ACM,Volume 15 Issue 4 1968年10月Donald R. Morrison et al. "PATRICIA: Practical Algorithm To Retrieve Information Coded in Alpha numeric" Journal of the ACM, Volume 15 Issue 4 October 1968 L. G. Roberts著 "The Next Generation ofIP - Flow Routing" SSGRR 2003S 2003年7月L. G. Roberts "The Next Generation of IP-Flow Routing" SSGRR 2003S July 2003 Sangjin Hanら著 "PacketShader: aGPU-accelerated Software Router" Proceedings of ACM SIGCOMM2010 2010年 8月Sangjin Han et al. "PacketShader: aGPU-accelerated Software Router" Proceedings of ACM SIGCOMM2010 August 2010

しかしながら、非特許文献1に記載された技術によれば、最長プレフィックスの一致を検索することを前提としたIP経路検索であって、複数のフローエントリを含むフローテーブルの検索には適用することができない。また、非特許文献2に記載された技術によれば、完全一致検索を適用するためには、入力された全てのパケットのフローヘッダ識別子(クエリエントリ)に対して、フローエントリ(条件エントリ)を定義する必要がある。これは、スケーラビリティの観点から、ネットワーク管理を想定した大量のフローエントリに対する適用は難しい。更に、非特許文献3に記載された技術も、優先度順の線形検索のために、フローエントリ(条件エントリ)が大量になるほど、検索処理時間や計算リソースに対する性能劣化が大きくなる。   However, according to the technique described in Non-Patent Document 1, it is an IP route search on the premise of searching for a match of the longest prefix, and can be applied to a search of a flow table including a plurality of flow entries. Can not. In addition, according to the technique described in Non-Patent Document 2, in order to apply exact match search, flow entries (condition entries) are set for the flow header identifiers (query entries) of all input packets. Must be defined. This is difficult to apply to a large number of flow entries assuming network management from the viewpoint of scalability. Furthermore, in the technique described in Non-Patent Document 3, as the number of flow entries (condition entries) increases because of the linear search in order of priority, the performance degradation with respect to search processing time and calculation resources increases.

また、特許文献1に記載された技術によれば、各プロセッサの負荷情報を予め明確にする必要があるが、フローテーブルの検索の場合、入力されたパケットに対する検索負荷を予め明確とすることができない。即ち、実際に一致するまで何エントリ分の検索が必要か(期待値)が明確でないために、最適なリソースを割り当てることができない。   Further, according to the technique described in Patent Document 1, it is necessary to clarify the load information of each processor in advance, but in the case of a flow table search, the search load for an input packet may be specified in advance. Can not. That is, since it is not clear how many entries need to be searched until the actual match (expected value), an optimal resource cannot be allocated.

そこで、本発明によれば、条件テーブル(フローテーブル)からクエリエントリ(入力されたパケットのフローヘッダ識別子)に一致する条件エントリ(フローエントリ)を検索する際に、実際に一致するまで何エントリ分の検索が必要か(期待値)を考慮して、リソース割り当てを制御することができる検索装置、フロースイッチ装置、プログラム及び方法を提供することを目的とする。   Therefore, according to the present invention, when a condition entry (flow entry) that matches a query entry (flow header identifier of an input packet) is searched from the condition table (flow table), how many entries are required until they are actually matched. It is an object of the present invention to provide a search device, a flow switch device, a program, and a method capable of controlling resource allocation in consideration of whether or not search is required (expected value).

本発明によれば、複数の要素の列からなる条件エントリが複数個並べられた条件テーブルと、
条件エントリと同種の要素の列からなるクエリエントリを入力し、該クエリエントリが条件テーブルのいずれかの条件エントリと一致するか否かを判定するエントリ判定部と、
複数の演算プロセッサを含み且つ所要のプロセッサ数を任意に変更可能なプロセッサ部とを有する検索装置において、
条件テーブルにおける各条件エントリは、当該条件エントリとクエリエントリとが一致した回数に基づくヒット率を含んでおり、
エントリ判定部は、線形判定手段を有し、
線形判定手段は、
エントリ判定のために許容される最大処理ステップ回数が予め設定されており、条件テーブルについて、優先度順にヒット率を累積した累積ヒット率を、最大処理ステップ回数で分類する条件エントリ分類手段と、
分類された処理ステップ毎に、当該処理ステップに含まれる条件エントリ数を、所要の演算プロセッサ数として決定するプロセッサ数決定手段と、
各演算プロセッサに対して条件エントリそれぞれを割り当てて、クエリエントリと当該条件エントリとが一致するか否かを一度に判定させる個別ステップ処理手段と、
個別ステップ処理手段によって両エントリが一致したと判定されるまで、個別ステップ処理手段を、条件テーブルの条件エントリの降順に、最大処理ステップ回数まで繰り返すエントリ検索手段と
を含むことを特徴とする。
According to the present invention, a condition table in which a plurality of condition entries including a plurality of element columns are arranged;
An entry determination unit that inputs a query entry including a column of elements of the same type as the condition entry and determines whether the query entry matches any condition entry in the condition table;
In a search device including a processor unit including a plurality of arithmetic processors and capable of arbitrarily changing the required number of processors,
Each condition entry in the condition table includes a hit rate based on the number of times the condition entry matches the query entry.
The entry determination unit has linear determination means,
The linear determination means is
The maximum number of processing steps allowed for entry determination is preset, and for the condition table, a condition entry classification means for classifying the cumulative hit rate obtained by accumulating hit rates in order of priority based on the maximum number of processing steps.
Processor number determination means for determining the number of condition entries included in the processing step as a required number of arithmetic processors for each classified processing step;
Individual step processing means for assigning each condition entry to each arithmetic processor and determining at a time whether the query entry matches the condition entry;
Entry search means for repeating the individual step processing means up to the maximum number of processing steps in descending order of condition entries in the condition table until the individual step processing means determines that both entries match.

本発明の検索装置における他の実施形態によれば、プロセッサ部は、ハードウェアとしてのSIMD(Single Instruction, Multiple Data)型又はSIMT(Single Instruction, Multiple Thread)型のものであることも好ましい。   According to another embodiment of the search device of the present invention, it is also preferable that the processor unit is of a SIMD (Single Instruction, Multiple Data) type or SIMT (Single Instruction, Multiple Thread) type as hardware.

本発明の検索装置における他の実施形態によれば、
プロセッサ部は、汎用GPU(Graphic Processor Unit)であり、
プロセッサ数決定手段は、単位グループのSM(Streaming MultiProcessor)における演算プロセッサ数を決定する
ことも好ましい。
According to another embodiment of the search device of the present invention,
The processor unit is a general-purpose GPU (Graphic Processor Unit).
The processor number determining means preferably determines the number of arithmetic processors in the SM (Streaming MultiProcessor) of the unit group.

本発明の検索装置における他の実施形態によれば、
条件テーブルに含まれる条件エントリは、任意の要素についてワイルドカードで定義可能であることも好ましい。
According to another embodiment of the search device of the present invention,
It is also preferable that the condition entry included in the condition table can be defined with a wild card for any element.

本発明の検索装置における他の実施形態によれば、
エントリ検索手段によって両エントリが一致したと判定された際に、条件テーブルの当該条件エントリにおけるヒット率を増分するヒット率更新手段を更に含むことも好ましい。
According to another embodiment of the search device of the present invention,
It is also preferable to further include hit rate update means for incrementing the hit rate in the condition entry of the condition table when it is determined by the entry search means that both entries match.

本発明の検索装置における他の実施形態によれば、
条件エントリ分類手段は、条件テーブルにおける優先度順に累積した累積ヒット率が、処理ステップ毎に平滑化されるように、条件テーブルを分類することも好ましい。
According to another embodiment of the search device of the present invention,
The condition entry classification means preferably classifies the condition table so that the cumulative hit rate accumulated in order of priority in the condition table is smoothed for each processing step.

本発明の検索装置における他の実施形態によれば、
条件テーブルの各条件エントリは、クエリエントリと一致した際に実行すべき内容を表す実行要素を含んでおり、
エントリ判定部は、線形判定手段とは別に、ハッシュ判定手段を更に有し、
ハッシュ判定手段は、
線形判定手段によってクエリエントリと任意の条件エントリとが一致したと判定された際に、当該クエリエントリに含まれる複数の要素から、ハッシュ関数に基づくハッシュ値を算出するハッシュ値算出手段と、
算出されたハッシュ値と、当該クエリエントリに含まれる複数の要素と、一致した条件エントリの実行要素とを、ハッシュテーブルとして登録するハッシュテーブル更新手段と、
を有し、
エントリ判定部は、クエリエントリが入力された際に、最初にハッシュ判定手段によってハッシュテーブルに登録されたいずれの条件エントリとも完全一致しなかった場合に、線形判定手段における条件エントリとの一致を判定する
ことも好ましい。
According to another embodiment of the search device of the present invention,
Each condition entry in the condition table contains an execution element that represents the contents to be executed when it matches the query entry.
The entry determination unit further includes a hash determination unit separately from the linear determination unit,
Hash determination means
A hash value calculation unit that calculates a hash value based on a hash function from a plurality of elements included in the query entry when the linear determination unit determines that the query entry matches an arbitrary condition entry;
A hash table updating means for registering the calculated hash value, a plurality of elements included in the query entry, and an execution element of the matched condition entry as a hash table;
Have
When a query entry is input, the entry determination unit determines a match with the condition entry in the linear determination unit when it does not completely match any condition entry first registered in the hash table by the hash determination unit. It is also preferable to do.

本発明によれば、前述した検索装置は、フロースイッチ装置であり、
クエリエントリは、入力された通信パケットにおけるフローヘッダ識別子であり、
条件テーブルは、フローテーブルであり、
条件エントリは、フローエントリであり、
フローエントリに規定された、クエリエントリと一致した際に実行すべき内容を表す実行要素は、
当該クエリエントリのパケットを出力すべきポートの指定、
当該クエリエントリのパケットの所定ヘッダの書き換えの指示、及び/又は、
当該クエリエントリのパケットのスケジューリング若しくは帯域制御の指示
であることを特徴とする。
According to the present invention, the search device described above is a flow switch device,
The query entry is a flow header identifier in the input communication packet,
The condition table is a flow table,
The condition entry is a flow entry,
The execution element that represents the content to be executed when matching with the query entry specified in the flow entry is
Specify the port that should output the packet of the query entry,
Instruction to rewrite the predetermined header of the packet of the query entry, and / or
The query entry is a packet scheduling or bandwidth control instruction.

本発明によれば、装置に搭載された、複数の演算プロセッサを含み且つ所要のプロセッサ数を任意に変更可能なプロセッサ部を、検索用に機能させるプログラムにおいて、
複数の要素の列からなる条件エントリが複数個並べられた条件テーブルと、
条件エントリと同種の要素の列からなるクエリエントリを入力し、該クエリエントリが条件テーブルのいずれかの条件エントリと一致するか否かを判定するエントリ判定部とを有すると共に、
条件テーブルにおける各条件エントリは、当該条件エントリとクエリエントリとが一致した回数に基づくヒット率を含んでおり、
エントリ判定部は、線形判定手段を有し、
線形判定手段は、
エントリ判定のために許容される最大処理ステップ回数が予め設定されており、条件テーブルについて優先度順にヒット率を累積した累積ヒット率を、最大処理ステップ回数で分類する条件エントリ分類手段と、
分類された処理ステップ毎に、当該処理ステップに含まれる条件エントリ数を、所要の演算プロセッサ数として決定するプロセッサ数決定手段と、
各演算プロセッサに対して条件エントリそれぞれを割り当てて、クエリエントリと当該条件エントリとが一致するか否かを一度に判定させる個別ステップ処理手段と、
個別ステップ処理手段によって両エントリが一致したと判定されるまで、個別ステップ処理手段を、条件テーブルの条件エントリの降順に、最大処理ステップ回数まで繰り返すエントリ検索手段と
を含むようにプロセッサ部を機能させることを特徴とする。
According to the present invention, in a program that allows a processor unit that includes a plurality of arithmetic processors and that can arbitrarily change the required number of processors to function for searching, installed in the apparatus,
A condition table in which a plurality of condition entries including a plurality of element columns are arranged;
An entry determination unit that inputs a query entry including a column of elements of the same type as the condition entry and determines whether the query entry matches any condition entry in the condition table;
Each condition entry in the condition table includes a hit rate based on the number of times the condition entry matches the query entry.
The entry determination unit has linear determination means,
The linear determination means is
A maximum number of processing steps allowed for entry determination is set in advance, and a condition entry classification means for classifying the cumulative hit rate obtained by accumulating hit rates in order of priority for the condition table by the maximum number of processing steps;
Processor number determination means for determining the number of condition entries included in the processing step as a required number of arithmetic processors for each classified processing step;
Individual step processing means for assigning each condition entry to each arithmetic processor and determining at a time whether the query entry matches the condition entry;
The processor unit is caused to function so as to include an entry search unit that repeats the individual step processing unit in the descending order of the condition entries in the condition table up to the maximum number of processing steps until it is determined by the individual step processing unit that both entries match. It is characterized by that.

本発明によれば、複数の演算プロセッサを含み且つ所要のプロセッサ数を任意に変更可能なプロセッサ部を用いた検索方法において、
複数の要素の列からなる条件エントリが複数個並べられた条件テーブルを有し、該条件テーブルにおける各条件エントリは、当該条件エントリとクエリエントリとが一致した回数に基づくヒット率を含んでおり、
条件エントリと同種の要素の列からなるクエリエントリを入力する第1のステップと、
エントリ判定のために許容される最大処理ステップ回数が予め設定されており、条件テーブルについて優先度順にヒット率を累積した累積ヒット率を、最大処理ステップ回数で分類する第2のステップと、
分類された処理ステップ毎に、当該処理ステップに含まれる条件エントリ数を、所要の演算プロセッサ数として決定する第3のステップと、
各演算プロセッサに対して条件エントリそれぞれを割り当てて、クエリエントリと当該条件エントリとが一致するか否かを一度に判定させる第4のステップと
を有し、
第4のステップによって両エントリが一致したと判定されるまで、第4のステップを、条件テーブルの条件エントリの降順に、最大処理ステップ回数まで繰り返すことを特徴とする。
According to the present invention, in a search method using a processor unit including a plurality of arithmetic processors and capable of arbitrarily changing the required number of processors,
A condition table in which a plurality of condition entries including a plurality of element columns are arranged, and each condition entry in the condition table includes a hit rate based on the number of times the condition entry matches the query entry;
A first step of entering a query entry consisting of a sequence of elements of the same type as the condition entry;
A maximum number of processing steps allowed for entry determination is preset, and a second step of classifying the cumulative hit rate obtained by accumulating hit rates in order of priority for the condition table by the maximum number of processing steps;
A third step of determining, for each classified processing step, the number of condition entries included in the processing step as a required number of arithmetic processors;
A fourth step of assigning each condition entry to each arithmetic processor and determining at a time whether the query entry matches the condition entry;
The fourth step is repeated up to the maximum number of processing steps in descending order of the condition entries in the condition table until it is determined by the fourth step that both entries match.

本発明の検索装置、フロースイッチ装置、プログラム及び方法によれば、条件テーブルからクエリエントリに一致する条件エントリを検索する際に、実際に一致するまで何エントリ分の検索が必要か(期待値)を考慮して、リソース割り当てを制御することができる。   According to the search device, flow switch device, program, and method of the present invention, when searching for a condition entry that matches a query entry from the condition table, how many entries need to be searched until they actually match (expected value) Resource allocation can be controlled.

本発明の検索装置がフロースイッチ装置に適用されたシステム構成図である。1 is a system configuration diagram in which a search device of the present invention is applied to a flow switch device. 本発明におけるフロースイッチ装置(検索装置)の機能構成図である。It is a functional block diagram of the flow switch apparatus (search apparatus) in this invention. 本発明のフローテーブル(条件テーブル)における各フローエントリ(条件エントリ)の説明図である。It is explanatory drawing of each flow entry (condition entry) in the flow table (condition table) of this invention. 本発明のエントリ判定部における線形判定部の機能構成図である。It is a functional block diagram of the linear determination part in the entry determination part of this invention. 本発明における条件エントリの分類を表すグラフである。It is a graph showing the classification | category of the condition entry in this invention. 個別ステップ処理部における検索処理を表す説明図である。It is explanatory drawing showing the search process in an individual step process part. 本発明におけるハッシュ判定部及び線形判定部を含むエントリ判定部のフローチャートである。It is a flowchart of the entry determination part containing the hash determination part and linear determination part in this invention.

以下、本発明の実施の形態について、図面を用いて詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

本発明の検索装置、フロースイッチ装置、プログラム及び方法によれば、条件テーブルの複数の条件エントリの中から、クエリエントリと一致する条件エントリを検索する様々な技術に適用することができる。   The search device, flow switch device, program, and method of the present invention can be applied to various techniques for searching for a condition entry that matches a query entry from among a plurality of condition entries in a condition table.

図1は、本発明の検索装置がフロースイッチ装置に適用されたシステム構成図である。   FIG. 1 is a system configuration diagram in which a search device of the present invention is applied to a flow switch device.

本発明の検索装置を、以下のようにフロースイッチ装置の用途に適用することができる。
クエリエントリ:入力されたパケットのフローヘッダ識別子
フローエントリ:条件エントリ
フローテーブル:多数の条件エントリを優先度順に並べた条件テーブル
エントリの各要素:フロー制御のためのヘッダ識別子
(例えばMACアドレス、IPアドレス、ポート番号等)
本発明によれば、フローテーブルの複数のフローエントリの中から、入力されたパケットのフローヘッダ識別子と一致すると共に優先度が最も高いフローエントリを検索することができる。尚、フローテーブルは、優先度順に線形に検索されるものである。
The search device of the present invention can be applied to the use of a flow switch device as follows.
Query entry: Flow header identifier of input packet Flow entry: Condition entry Flow table: Condition table in which many condition entries are arranged in priority order Each element of entry: Header identifier for flow control
(For example, MAC address, IP address, port number, etc.)
According to the present invention, it is possible to search for a flow entry that matches the flow header identifier of the input packet and has the highest priority from a plurality of flow entries in the flow table. The flow table is searched linearly in order of priority.

図1によれば、例えばトランスポートネットワーク内に、フロースイッチ装置が備えられている。フロースイッチ装置は、トランスポートネットワークに限られず、アクセスネットワークのゲートウェイや、機能プールの各アプライアンス装置への経路を制御し、様々なネットワークを統合的に利用する。   According to FIG. 1, for example, a flow switch device is provided in a transport network. The flow switch device is not limited to the transport network, and controls the route to the gateway of the access network and each appliance device of the function pool, and uses various networks in an integrated manner.

また、フロースイッチ装置は、ネットワークの経路制御ポリシとしてフローテーブル(条件テーブル)を記憶している。このフローテーブルは、外部のフロー制御装置から、各フロースイッチ装置へ配信される。尚、フロー制御装置は、例えばネットワーク構成管理装置から、そのネットワーク運用制御ポリシに基づいて、各フロースイッチ装置に対するフローテーブルを作成する。ネットワーク構成管理装置が、ネットワーク運用制御ポリシを変更することによって、フロー制御装置が適宜、各フロースイッチ装置に対するフローテーブルのフローエントリを更新(追加、削除、変更等)する。   The flow switch device also stores a flow table (condition table) as a network path control policy. This flow table is distributed from the external flow control device to each flow switch device. The flow control device creates a flow table for each flow switch device based on the network operation control policy, for example, from the network configuration management device. When the network configuration management device changes the network operation control policy, the flow control device appropriately updates (adds, deletes, changes, etc.) the flow entry of the flow table for each flow switch device.

フロースイッチ装置は、入力されたパケット毎に、宛先検索(フローテーブルのフローエントリに対するクエリエントリの一致検索)が必要となる。この宛先検索を高速化するために、本発明によれば、一度に検索処理を実行するフローエントリの数を柔軟に制御するべく、ホスト側CPU(Central Processer Unit)に加えて、汎用GPU(Graphic Processor Unit)を用いている。従来、フロースイッチ装置は、ベンダ特有の専用ハードウェアで構成されていたが、本発明によれば、GPUを搭載した汎用パーソナルコンピュータで高速な宛先検索を実現することができる。これは、膨大な数のフロースイッチ装置を設備導入しなければならない通信事業者にとって、設備投資コストの抑制につながる。   The flow switch device needs to perform a destination search (query entry matching search for flow entries in the flow table) for each input packet. In order to speed up this destination search, according to the present invention, in order to flexibly control the number of flow entries that execute search processing at a time, a general-purpose GPU (Graphic) is added to the host side CPU (Central Processor Unit). Processor Unit) is used. Conventionally, a flow switch device has been configured by vendor-specific dedicated hardware. However, according to the present invention, a high-speed destination search can be realized by a general-purpose personal computer equipped with a GPU. This leads to a reduction in capital investment cost for a telecommunications carrier who has to install a large number of flow switch devices.

図2は、本発明におけるフロースイッチ装置(検索装置)の機能構成図である。   FIG. 2 is a functional configuration diagram of the flow switch device (search device) according to the present invention.

図2によれば、フロースイッチ装置は、ハードウェアのプロセッサ部として、ホスト側CPU1と、汎用GPU2とを有する。CPUを搭載した一般的なパーソナルコンピュータによれば、例えばPCIバスを介して、汎用GPUを搭載したボードを接続することができる。また、CPUとGPUとを統合したプロセッサも、汎用的なものとして市販されている。   According to FIG. 2, the flow switch device has a host-side CPU 1 and a general-purpose GPU 2 as hardware processor units. According to a general personal computer equipped with a CPU, a board equipped with a general-purpose GPU can be connected via, for example, a PCI bus. A processor in which a CPU and a GPU are integrated is also commercially available.

「GPU」は、画像(グラフィック)処理専用のプロセッサチップとして市販されている。近年、HPC(High Performance Computing)技術の発展によって、GPUに対して直接的に並列プログラミングをすることが可能となった。GPUは、複数の演算プロセッサを含み且つ所要のプロセッサ数を任意に変更可能なものである。各演算プロセッサは、例えばスレッドプロセッサとも称され、データ並列型の演算を実現する。本発明も、フロースイッチ装置における高速演算処理を要する宛先検索に、並列プログラミングによって汎用GPUを利用したものである。   “GPU” is commercially available as a processor chip dedicated to image (graphic) processing. In recent years, development of HPC (High Performance Computing) technology has made it possible to perform parallel programming directly on a GPU. The GPU includes a plurality of arithmetic processors and can arbitrarily change the required number of processors. Each arithmetic processor is also referred to as a thread processor, for example, and realizes a data parallel type operation. The present invention also uses a general-purpose GPU by parallel programming for destination search that requires high-speed arithmetic processing in the flow switch device.

特に、本発明で用いられるGPUは、ハードウェアとしてのSIMD(Single Instruction, Multiple Data、単一命令多重データ)型又はSIMT(Single Instruction, Multiple Thread、単一命令複数スレッド)型のものである。SIMDは、1回の命令(ステップ)で複数データに対して同時に処理する技術をいう。SIMDの幅は、ソフトウェアから操作することができる。また、SIMTは、マルチプロセッサの各スレッドを、個別の命令アドレスと状態レジスタを持って独立に処理するスカラプロセッサコアに対応付けたものである。   In particular, the GPU used in the present invention is of the SIMD (Single Instruction, Multiple Data) type or SIMT (Single Instruction, Multiple Thread) type as hardware. SIMD is a technique for simultaneously processing a plurality of data with a single instruction (step). The SIMD width can be manipulated from software. In addition, the SIMT associates each thread of the multiprocessor with a scalar processor core that independently processes each instruction address and status register.

図2によれば、CPU1は、クエリ入力部10からクエリエントリを入力する。フロースイッチ装置の場合、クエリエントリは、入力されたパケットのフローヘッダ識別子である。また、CPU1は、エントリ判定部11と、ホスト側メモリ12と、ハッシュテーブル13とを有する。これら機能は、CPU1に対するプログラミングによって実現される。エントリ判定部11は、制御バスを介してGPU2と接続され、ホスト側メモリ12も、DMA(Direct Memory Access)バスを介してGPU2と接続される。   According to FIG. 2, the CPU 1 inputs a query entry from the query input unit 10. In the case of a flow switch device, the query entry is a flow header identifier of an input packet. Further, the CPU 1 includes an entry determination unit 11, a host side memory 12, and a hash table 13. These functions are realized by programming the CPU 1. The entry determination unit 11 is connected to the GPU 2 via a control bus, and the host-side memory 12 is also connected to the GPU 2 via a DMA (Direct Memory Access) bus.

エントリ判定部11は、パケットのフローヘッダ識別子(クエリエントリ)を入力し、フローテーブル(条件テーブル)のいずれかのフローエントリ(条件エントリ)と一致するか否かを判定する。ここで、フローヘッダ識別子(クエリエントリ)と、フローエントリ(条件エントリ)とは、例えばベクトルのように、同種の要素の列からなる。   The entry determination unit 11 inputs the flow header identifier (query entry) of the packet and determines whether or not it matches any flow entry (condition entry) in the flow table (condition table). Here, the flow header identifier (query entry) and the flow entry (condition entry) are composed of columns of the same kind of elements, for example, vectors.

また、図2によれば、GPU2は、スレッド実行制御部21と、SM(Streaming MultiProcessor)22と、スレッド側メモリ23と、フローテーブル(条件テーブル)24とを有する。スレッド実行制御部21は、CPU1のエントリ判定部11からの命令によって、SM22における所要の演算プロセッサ数を任意に変更する。また、スレッド側メモリ23は、CPU1のホスト側メモリ12との間で、DMAバスを介して接続される。フローテーブル24は、データアクセスの高速性のために、GPU2上のメモリに展開しておくのが好ましい。   Further, according to FIG. 2, the GPU 2 includes a thread execution control unit 21, an SM (Streaming MultiProcessor) 22, a thread side memory 23, and a flow table (condition table) 24. The thread execution control unit 21 arbitrarily changes the required number of arithmetic processors in the SM 22 according to an instruction from the entry determination unit 11 of the CPU 1. The thread side memory 23 is connected to the host side memory 12 of the CPU 1 via a DMA bus. The flow table 24 is preferably developed in a memory on the GPU 2 for high speed data access.

図3は、本発明のフローテーブル(条件テーブル)における各フローエントリ(条件エントリ)の説明図である。   FIG. 3 is an explanatory diagram of each flow entry (condition entry) in the flow table (condition table) of the present invention.

フローテーブルは、優先度順に線形に検索されるものである。フローテーブルは、複数の要素の列からなる多数のフローエントリ(条件エントリ)が、経路制御ポリシに基づいて優先度順に並べられている。図3によれば、1024個のフローエントリが、優先度順に並べられている。   The flow table is searched linearly in order of priority. In the flow table, a large number of flow entries (condition entries) made up of a plurality of element columns are arranged in order of priority based on a path control policy. According to FIG. 3, 1024 flow entries are arranged in order of priority.

フローエントリの各要素には、フローヘッダ識別子が定義されており、ワイルドカード「*」(どのようなフローヘッダ識別子も一致したと判定する)を指定することができる。図3によれば、フローエントリの要素として、以下のものが定義されている。
入力ポート
宛先MACアドレス、送信元MACアドレス
VLAN−ID
送信元IPアドレス、宛先IPアドレス
送信元ポート番号、宛先ポート番号
A flow header identifier is defined for each element of the flow entry, and a wild card “*” (determined that any flow header identifier matches) can be designated. According to FIG. 3, the following are defined as elements of the flow entry.
Input port Destination MAC address, source MAC address VLAN-ID
Source IP address, destination IP address Source port number, destination port number

本発明によれば、フローエントリにワイルドカードを指定することができるので、フローテーブル上のフローエントリ(条件エントリ)の数が削減される。アプリケーション単位や宛先ネットワーク単位等で、フローエントリを集約して設定することができるために、運用ネットワークのスケール性を向上させることができる。   According to the present invention, since a wild card can be specified for a flow entry, the number of flow entries (condition entries) on the flow table is reduced. Since flow entries can be aggregated and set in units of applications, destination networks, etc., the scale of the operation network can be improved.

また、各フローエントリには、実行要素として、転送先情報も定義されている。実行要素とは、フローエントリの条件としての要素が全て一致した場合、実行すべき内容を表す。フロースイッチ装置の場合、実行要素の内容としては、具体的には、以下のものがある。
当該クエリエントリのパケットを出力すべきポートの指定
当該クエリエントリのパケットの所定ヘッダの書き換えの指示
当該クエリエントリのパケットのスケジューリング若しくは帯域制御の指示
Each flow entry also defines transfer destination information as an execution element. The execution element represents the content to be executed when all the elements as the condition of the flow entry match. In the case of the flow switch device, the contents of the execution element are specifically as follows.
Designation of the port that should output the packet of the query entry Instruction to rewrite the specified header of the packet of the query entry Instruction of scheduling or bandwidth control of the packet of the query entry

更に、本発明におけるフローテーブルには、各フローエントリに、当該フローエントリと、入力されたパケットのフローヘッダ識別子(クエリエントリ)とが一致した回数に基づく「ヒット率」も含まれている。   Furthermore, the flow table in the present invention also includes a “hit rate” based on the number of times each flow entry matches the flow header identifier (query entry) of the input packet.

図3によれば、エントリ優先度順に1〜1024を並べた横軸に対して、ヒット率を縦軸としたグラフが表されている。このグラフによれば、エントリ優先度が高いフローエントリほど、ヒット率も高いことが理解できる。尚、エントリ優先度は、通信事業者の経路制御ポリシに応じて設定されたものであって、エントリ優先度が高いほどヒット率が高いとは限らない。   FIG. 3 shows a graph in which the hit ratio is the vertical axis with respect to the horizontal axis in which 1 to 1024 are arranged in order of entry priority. According to this graph, it can be understood that the higher the entry priority, the higher the hit rate. Note that the entry priority is set according to the route control policy of the communication carrier, and the higher the entry priority, the higher the hit rate is not necessarily.

図4は、本発明のエントリ判定部における線形判定部の機能構成図である。   FIG. 4 is a functional configuration diagram of the linear determination unit in the entry determination unit of the present invention.

図4によれば、線形判定部11rは、条件エントリ分離部11r1と、プロセッサ数決定部11r2と、個別ステップ処理部11r3と、エントリ検索部11r4と、ヒット率更新部11r5とを有する。   According to FIG. 4, the linear determination unit 11r includes a condition entry separation unit 11r1, a processor number determination unit 11r2, an individual step processing unit 11r3, an entry search unit 11r4, and a hit rate update unit 11r5.

線形判定部11rは、フローテーブル(条件テーブル)の検索のために、GPU2の複数の演算プロセッサを並列に実行する。ここで、GPUでは同一ステップで並列に実行可能な演算プロセッサの数には上限があるために、それぞれのタスクをどのように演算プロセッサに割り当てるかが、検索処理時間に影響する。特に、優先度順検索型のフローテーブルは、各フローエントリに対する一致を並列に判定するために、並列に実行可能な演算プロセッサの数によって、検索処理時間と消費計算リソースとに影響する。   The linear determination unit 11r executes a plurality of arithmetic processors of the GPU 2 in parallel for searching the flow table (condition table). Here, since there is an upper limit on the number of arithmetic processors that can be executed in parallel in the same step in the GPU, how the tasks are assigned to the arithmetic processors affects the search processing time. In particular, the priority order search type flow table affects the search processing time and the consumption calculation resources depending on the number of arithmetic processors that can be executed in parallel in order to determine the match for each flow entry in parallel.

[条件エントリ分離部11r1]
条件エントリ分離部11r1には、エントリ判定のために許容される最大処理ステップ回数が予め設定されている。例えば最大処理ステップ回数=8回を目標として設定する。最大処理ステップ回数が少ないほど、一度に要する演算プロセッサの並列個数が多くなるが、検索時間が短くなる。一方で、最大処理ステップ回数が多いほど、一度に要する演算プロセッサの並列個数が少ないが、検索時間が長くなる。
[Condition entry separation unit 11r1]
In the condition entry separation unit 11r1, the maximum number of processing steps allowed for entry determination is set in advance. For example, the maximum number of processing steps = 8 is set as a target. The smaller the maximum number of processing steps is, the more parallel processors are required at one time, but the search time is shortened. On the other hand, the greater the maximum number of processing steps, the smaller the number of parallel processors required at one time, but the longer the search time.

その上で、条件エントリ分離部11r1は、フローテーブル(条件テーブル)について、優先度順にヒット率を累積した累積ヒット率を、最大処理ステップ回数で分類する。ここで、条件エントリ分離部11r1は、フローテーブルにおける優先度順に累積した累積ヒット率が、処理ステップ毎に平滑化されるように、フローテーブルを分類する。例えば「100/最大処理ステップ回数」を、ステップ毎に累積するものであってもよい。
(処理ステップ回数) (累積ヒット率)
ステップ1 12.5%
ステップ2 25.0%
ステップ3 37.5%
ステップ4 50.0%
ステップ5 62.5%
ステップ6 75.0%
ステップ7 87.5%
ステップ8 100.0%
In addition, the condition entry separation unit 11r1 classifies the cumulative hit rate obtained by accumulating hit rates in order of priority for the flow table (condition table) according to the maximum number of processing steps. Here, the condition entry separation unit 11r1 classifies the flow table so that the cumulative hit rate accumulated in order of priority in the flow table is smoothed for each processing step. For example, “100 / maximum number of processing steps” may be accumulated for each step.
(Number of processing steps) (Cumulative hit rate)
Step 1 12.5%
Step 2 25.0%
Step 3 37.5%
Step 4 50.0%
Step 5 62.5%
Step 6 75.0%
Step 7 87.5%
Step 8 100.0%

[プロセッサ数決定部11r2]
プロセッサ数決定部11r2は、分類された処理ステップ毎に、当該処理ステップに含まれるフローエントリ(条件エントリ)数を、所要の演算プロセッサ数として決定する。即ち、プロセッサ数決定部11r2は、GPU2における単位グループのSM(Streaming MultiProcessor)における演算プロセッサ数を決定することとなる。
[Processor number determination unit 11r2]
For each classified processing step, the processor number determination unit 11r2 determines the number of flow entries (condition entries) included in the processing step as a required number of arithmetic processors. That is, the processor number determination unit 11r2 determines the number of arithmetic processors in the SM (Streaming MultiProcessor) of the unit group in the GPU2.

図5は、本発明における条件エントリの分類を表すグラフである。   FIG. 5 is a graph showing the classification of condition entries in the present invention.

図5(a)によれば、エントリ優先度が高い部分(フローテーブルの先頭部分)ほど、高いヒット率のフローエントリが集中していることが理解できる。これは、累積エントリ数12.5%に含まれるフローエントリの数が少ないことを意味する。即ち、フローエントリの数と同数の、少ない演算プロセッサが用いられることとなる。図5(a)によれば、例えば以下のように、演算プロセッサ数が決定される。
フローテーブルのフローエントリの総数=1024個
GPUに搭載された演算プロセッサ数(並列演算数)=512個
最大処理ステップ回数=8回
(処理ステップ回数) (累積ヒット率) (演算プロセッサの並列個数)
ステップ1 12.5% 9
ステップ2 25.0% 23
ステップ3 37.5% 56
ステップ4 50.0% 125
ステップ5 62.5% 125
ステップ6 75.0% 142
ステップ7 87.5% 272
ステップ8 100.0% 272
尚、各ステップの累積ヒット率に含まれるフローエントリ数が、演算プロセッサの最大数を超える場合、その最大数の演算プロセッサが並列に用いられることとなる。
According to FIG. 5A, it can be understood that the flow entries having a higher hit rate are concentrated in the portion having the higher entry priority (the head portion of the flow table). This means that the number of flow entries included in the cumulative entry number 12.5% is small. That is, as few arithmetic processors as the number of flow entries are used. According to FIG. 5A, the number of arithmetic processors is determined as follows, for example.
The total number of flow entries in the flow table = 1024 The number of arithmetic processors mounted on the GPU (the number of parallel operations) = 512 The maximum number of processing steps = 8 (the number of processing steps) (cumulative hit rate) (the number of parallel processing processors)
Step 1 12.5% 9
Step 2 25.0% 23
Step 3 37.5% 56
Step 4 50.0% 125
Step 5 62.5% 125
Step 6 75.0% 142
Step 7 87.5% 272
Step 8 100.0% 272
When the number of flow entries included in the cumulative hit rate of each step exceeds the maximum number of arithmetic processors, the maximum number of arithmetic processors are used in parallel.

図5(b)によれば、エントリ優先度700程度の部分で、高いヒット率のフローエントリが集中していることが理解できる。これは、エントリ優先度700程度の部分における累積エントリ数12.5%に含まれるフローエントリの数が少ないことを意味する。   According to FIG. 5B, it can be understood that flow entries having a high hit rate are concentrated in a portion having an entry priority of about 700. This means that the number of flow entries included in the accumulated entry number 12.5% in the portion with the entry priority of about 700 is small.

図5(c)によれば、エントリ優先度900程度の部分で、高いヒット率のフローエントリが集中していることが理解できる。これは、エントリ優先度900程度の部分における累積エントリ数12.5%に含まれるフローエントリの数が少ないことを意味する。   According to FIG. 5C, it can be understood that flow entries having a high hit rate are concentrated in a portion having an entry priority level of about 900. This means that the number of flow entries included in the accumulated entry number 12.5% in the portion with the entry priority level of about 900 is small.

優先度順の線形検索によれば、ステップ1から順に検索を進めていき、クエリエントリに一致する条件エントリが発見された時点で、検索処理を終了することができる。また、図5(a)〜(c)からも明らかなとおり、ステップ毎に使用される演算プロセッサ数が異なっている。即ち、あるパケットのフローヘッダ識別子(クエリエントリ)にとってフローエントリ(条件エントリ)の検索に最適な演算プロセッサ数は、一致するフローエントリの優先度に依存することとなる。例えばN番目のフローエントリが優先度の最も高いものである場合、N−1番目までは一致しないことが検出できればよい。即ち、N個の演算プロセッサで並列検索を実行した場合、1ステップで検索が終了することとなる。   According to the linear search in order of priority, the search proceeds in order from step 1, and the search process can be terminated when a condition entry matching the query entry is found. Further, as is apparent from FIGS. 5A to 5C, the number of arithmetic processors used for each step is different. That is, the optimum number of arithmetic processors for the search of the flow entry (condition entry) for the flow header identifier (query entry) of a certain packet depends on the priority of the matching flow entry. For example, when the Nth flow entry has the highest priority, it is only necessary to detect that there is no match up to the (N-1) th. That is, when a parallel search is executed by N arithmetic processors, the search is completed in one step.

例えば図5(a)の場合、ステップ1で条件エントリと一致する確率が高く、検索処理時間が短くなる可能性が高く、更にその際に使用される演算プロセッサ数も少なくて済む。一方で、図5(c)の場合、ステップ7程度で条件エントリと一致する確率が高く、検索処理時間は比較的長くなる可能性が高いが、その際に使用される演算プロセッサ数が少なくて済む。   For example, in the case of FIG. 5A, the probability of matching with the condition entry in step 1 is high, the search processing time is likely to be shortened, and the number of arithmetic processors used at that time is small. On the other hand, in the case of FIG. 5C, the probability of matching with the condition entry is high at about step 7 and the search processing time is likely to be relatively long, but the number of arithmetic processors used at that time is small. That's it.

[個別ステップ処理部11r3]
個別ステップ処理部11r3は、各演算プロセッサに対して条件エントリそれぞれを割り当てて、クエリエントリと当該条件エントリとが一致するか否かを一度に判定させる。前述した例によれば、以下のように検索される。
ステップ1は、9個の演算プロセッサを用いて、9個のフローエントリ#1〜#9を並列に検索する。
ステップ2は、23個の演算プロセッサを用いて、23個のフローエントリ#10〜#56を並列に検索する。
ステップ3は、56個の演算プロセッサを用いて、56個のフローエントリ#57〜#112を並列に検索する。
・・・・・
ステップ8は、272個の演算プロセッサを用いて、272個のフローエントリ#752〜#1024を並列に検索する。
[Individual step processing unit 11r3]
The individual step processing unit 11r3 assigns each condition entry to each arithmetic processor, and determines whether or not the query entry matches the condition entry at a time. According to the example described above, the search is performed as follows.
In step 1, nine flow entries # 1 to # 9 are searched in parallel using nine arithmetic processors.
In step 2, 23 flow entries # 10 to # 56 are searched in parallel using 23 arithmetic processors.
In step 3, 56 flow entries # 57 to # 112 are searched in parallel using 56 arithmetic processors.
...
In step 8, 272 flow entries # 752 to # 1024 are searched in parallel using 272 arithmetic processors.

[エントリ検索部11r4]
エントリ検索部11r4は、個別ステップ処理手段によって両エントリが一致したと判定されるまで、個別ステップ処理部11r3を、フローテーブル(条件テーブル)のフローエントリ(条件エントリ)の降順に、最大処理ステップ回数まで繰り返す。
[Entry search unit 11r4]
The entry search unit 11r4 moves the individual step processing unit 11r3 in the descending order of the flow entries (condition entries) of the flow table (condition table) until the individual step processing unit determines that both entries match. Repeat until.

[ヒット率更新部11r5]
ヒット率更新部11r5は、エントリ検索部11r4によって両エントリが一致したと判定された際に、フローテーブル(条件テーブル)の当該フローエントリ(条件エントリ)におけるヒット率を増分する。
[Hit rate update unit 11r5]
The hit rate update unit 11r5 increments the hit rate in the flow entry (condition entry) of the flow table (condition table) when the entry search unit 11r4 determines that both entries match.

このように、本発明のエントリ判定部11は、クエリエントリ(フローヘッダ識別子)に対するフローエントリ(条件エントリ)を検索する際に、各ステップの中で同時に実行されるGPUの演算プロセッサの並列個数を最適化することができる。即ち、各フローエントリにおける過去のヒット率から、全体的傾向の中で、ステップ毎に「平均的によさそうな演算プロセッサの並列個数(期待値)」を導出することができる。一般に、フロースイッチ装置の場合、固定的なフローテーブルを経路制御ポリシに応じて設定しても、各フローエントリのヒット率の傾向は、日単位、週単位、年単位等の時間経過に応じて変化する。本発明によれば、ヒット率の傾向が変化しても尚、各ステップの中で同時に実行される演算プロセッサ数を最適化することができる。   As described above, when the entry determination unit 11 of the present invention searches for a flow entry (condition entry) for a query entry (flow header identifier), it determines the parallel number of GPU arithmetic processors executed simultaneously in each step. Can be optimized. That is, from the past hit rate in each flow entry, it is possible to derive the “number of parallel arithmetic processors (expected value) that is likely to be average” for each step in the overall trend. In general, in the case of a flow switch device, even if a fixed flow table is set according to the routing control policy, the trend of the hit rate of each flow entry depends on the passage of time such as daily, weekly, or yearly. Change. According to the present invention, it is possible to optimize the number of arithmetic processors executed simultaneously in each step even if the tendency of the hit rate changes.

図4におけるエントリ検索部11r4は、個別ステップ処理部11r3を、例えば以下のコードのように制御する。このコードは、ホスト側CPU1によって実行される。
uint num_group[] = {9, 23, 56, ...};
/*プロセッサ数決定部によって決定された、ステップ毎の演算プロセッサの並列個数*/
uint num_field = 9; /*エントリの一致判定条件の要素数*/
void search_table () {
bool judge_matrix[][];
uint ret[];
uint match_id = 0;
uint idx = 1;
for (uint step = 0; ; step++) { /*ステップ毎の繰り返し*/
create_judge_matrix(judge_matrix);
check_field<<<1, num_field * num_group[step]>>>(idx, pkt, judge_matrix);
/*各要素の一致判定*/
check_entry<<<1, num_group[step]>>>(idx, ret, judge_matrix);
/*エントリの一致判定*/
match_id = get_highest_priority(ret);
if (match_id > 0) break;
idx += num_group[step];
clear_array(ret);
}
};
The entry search unit 11r4 in FIG. 4 controls the individual step processing unit 11r3 as, for example, the following code. This code is executed by the host CPU 1.
uint num_group [] = {9, 23, 56, ...};
/ * Number of parallel processors for each step determined by the processor number determination unit * /
uint num_field = 9; / * Number of entries for entry match condition * /
void search_table () {
bool judge_matrix [] [];
uint ret [];
uint match_id = 0;
uint idx = 1;
for (uint step = 0;; step ++) {/ * Repeat every step * /
create_judge_matrix (judge_matrix);
check_field <<< 1, num_field * num_group [step] >>> (idx, pkt, judge_matrix);
/ * Just match each element * /
check_entry <<< 1, num_group [step] >>> (idx, ret, judge_matrix);
/ * Entry match determination * /
match_id = get_highest_priority (ret);
if (match_id> 0) break;
idx + = num_group [step];
clear_array (ret);
}
};

個別ステップ処理部11r3からの制御によって、例えば以下のコードが、GPUの各演算プロセッサによって実行される。
__global__ void check_field (uint start, struct packet pkt, uint **matrix) {
uint tid = blockIdx.x * blockDim.x + threadIdx.x;
uint fid = tid % num_field;
uint eid = (tid - fid) / num_field;
if (is_matched(pkt[fid], flow_table(start + eid, fid))) {
/* start + eid番目のフローエントリとpktのフィールドfidが一致するか
どうかを判定*/
matrix[eid][fid] = 1;
} else {
matrix[eid][fid] = 0;
}
}
__global__ void check_entry (uint start, uint *ret, uint **matrix) {
uint eid = blockIdx.x * blockDim.x + threadIdx.x;
if (is_allmatched(matrix[eid])) { ret[eid] = start + eid; }
/* start + eid番目のフローエントリにpktがヒットしたかどうかを判定*/
else { ret[eid] = 0; }
}
Under the control of the individual step processing unit 11r3, for example, the following codes are executed by each arithmetic processor of the GPU.
__global__ void check_field (uint start, struct packet pkt, uint ** matrix) {
uint tid = blockIdx.x * blockDim.x + threadIdx.x;
uint fid = tid% num_field;
uint eid = (tid-fid) / num_field;
if (is_matched (pkt [fid], flow_table (start + eid, fid))) {
/ * Determine whether start + eid-th flow entry and pkt field fid match * /
matrix [eid] [fid] = 1;
} else {
matrix [eid] [fid] = 0;
}
}
__global__ void check_entry (uint start, uint * ret, uint ** matrix) {
uint eid = blockIdx.x * blockDim.x + threadIdx.x;
if (is_allmatched (matrix [eid])) {ret [eid] = start + eid;}
/ * Determine whether pkt hits start + eidth flow entry * /
else {ret [eid] = 0;}
}

図6は、個別ステップ処理部における検索処理を表す説明図である。   FIG. 6 is an explanatory diagram showing search processing in the individual step processing unit.

個別ステップ処理部11r3は、例えば以下のように処理を進める。
(S1:一致判定行列の生成)
最初に、優先度の高い方から順に、各ステップに含まれる複数のフローエントリを選択し、それらフローエントリ群に対する一致判定行列を生成する。一致判定行列は、各要素の一致状況を保持するための行列である。一致判定行列について、各フローエントリのワイルドカードの要素には「1」を、それ以外には「0」を代入する。図6(b)は、図6(a)のフローテーブルから生成された一致判定行列のフローエントリ群を表す。
For example, the individual step processing unit 11r3 proceeds as follows.
(S1: Generation of coincidence determination matrix)
First, in order from the highest priority, a plurality of flow entries included in each step are selected, and a coincidence determination matrix for these flow entry groups is generated. The coincidence determination matrix is a matrix for holding the coincidence status of each element. For the match determination matrix, “1” is substituted for the wild card element of each flow entry, and “0” is substituted for the others. FIG. 6B shows a flow entry group of the coincidence determination matrix generated from the flow table of FIG.

(S2:一致判定に必要な要素の選出)
一致判定行列における各フローエントリについて、クエリエントリとの一致判定が必要となる要素である、「0」の要素のみを選出する。
(S2: Selection of elements necessary for matching determination)
For each flow entry in the match determination matrix, only the “0” element, which is an element that needs to be matched with the query entry, is selected.

(S3:要素一致の判定)
そして、検索対象となるフローヘッダ識別子(クエリエントリ)を一致判定行列に当てて、一致を判定する。各ステップで、同時に実行されるフローエントリ群の全てについて、一致した要素に相当する一致判定行列の行列要素に「1」を代入する。図6(c)によれば、一致した要素に「1」が代入された一致判定行列を表す。
(S3: Element match determination)
Then, the flow header identifier (query entry) to be searched is applied to the match determination matrix to determine match. In each step, “1” is substituted into the matrix elements of the match determination matrix corresponding to the matched elements for all of the flow entry groups executed simultaneously. FIG. 6C shows a coincidence determination matrix in which “1” is assigned to the matched elements.

(S4:一致エントリの抽出)
一致判定行列について、全ての要素が「1」となっているフローエントリの中で、最も優先度の高いフローエントリを、当該クエリエントリに対する一致したフローエントリとする。全ての要素が「1」となっているフローエントリが存在しなければ、フローテーブルの次のステップのフローエントリ群に対する一致判定を繰り返していく。尚、フローエントリが全要素で一致しているかの判定は、要素のビット論理積を全フローエントリに対して実行するものであるために、GPUによる並列処理が望ましい。図6(c)によれば、全ての要素が「1」となっているフローエントリの中で、最も優先度が高い、優先度2のフローエントリが検出される。
(S4: Matching entry extraction)
Regarding the match determination matrix, the flow entry having the highest priority among the flow entries in which all elements are “1” is set as the matched flow entry for the query entry. If there is no flow entry in which all elements are “1”, the matching determination for the flow entry group in the next step of the flow table is repeated. Note that the determination of whether the flow entries are the same for all the elements is performed by executing the bit logical product of the elements for all the flow entries, so that parallel processing by the GPU is desirable. According to FIG. 6C, the flow entry with the highest priority, the highest priority, is detected among the flow entries having all the elements “1”.

図7は、本発明におけるハッシュ判定部及び線形判定部を含むエントリ判定部のフローチャートである。   FIG. 7 is a flowchart of an entry determination unit including a hash determination unit and a linear determination unit in the present invention.

前述した図2によれば、エントリ判定部11は、線形判定部11rとは別に、ハッシュ判定部11hを更に有する。図7によれば、ハッシュ判定部11hを用いて以下のように処理を実行する。   According to FIG. 2 described above, the entry determination unit 11 further includes a hash determination unit 11h separately from the linear determination unit 11r. According to FIG. 7, the processing is executed as follows using the hash determination unit 11h.

(S71)最初に、ハッシュ判定部11hによって、入力されたフローヘッダ識別子(クエリエントリ)の各要素から、ハッシュ値を算出する。そのハッシュ値をキーとして、ハッシュテーブル13を検索する。そのハッシュ値に紐付くフローエントリ(条件エントリ)が検出された場合、そのフローエントリの実行要素に基づく経路制御が実行される。尚、ハッシュテーブルに対する検索処理は、そのフローエントリの数に拘わらず高速に実行される。 (S71) First, the hash determination unit 11h calculates a hash value from each element of the input flow header identifier (query entry). The hash table 13 is searched using the hash value as a key. When a flow entry (condition entry) associated with the hash value is detected, path control based on the execution element of the flow entry is executed. Note that the search processing for the hash table is executed at high speed regardless of the number of flow entries.

(S72)逆に、一致しなかった場合には、線形判定部11rにおけるフローエントリ(条件エントリ)と一致するか否かを判定する。ここで一致しなかった場合には、不一致とする判定結果を出力する。逆に、ここで一致した場合には、当該クエリエントリに含まれる複数の要素から、ハッシュ関数に基づくハッシュ値を算出する(ハッシュ値算出部)。そして、算出されたハッシュ値と、当該クエリエントリに含まれる複数の要素と、一致した条件エントリの実行要素とを、ハッシュテーブルに新たに登録する(ハッシュテーブル更新部)。そして、そのフローエントリの実行要素に基づく経路制御が実行される。尚、優先順検索型のフローテーブルに対する検索処理は、各フローエントリに対して線形に判定されるために、処理時間に対するボトルネックとなる。そこで、本発明によれば、あえて、最初にハッシュ判定した後、一致しなかったクエリエントリに対してのみ線形判定を実行する。 (S72) Conversely, if they do not match, it is determined whether or not they match the flow entry (condition entry) in the linear determination unit 11r. If there is no match, a determination result indicating mismatch is output. On the contrary, if they match here, a hash value based on a hash function is calculated from a plurality of elements included in the query entry (hash value calculation unit). Then, the calculated hash value, the plurality of elements included in the query entry, and the execution element of the matched condition entry are newly registered in the hash table (hash table update unit). Then, path control based on the execution element of the flow entry is executed. Note that the search processing for the priority order type flow table is a bottleneck to the processing time because it is determined linearly for each flow entry. Therefore, according to the present invention, after the first hash determination, the linear determination is performed only for the query entries that do not match.

図7のような処理工程を経る理由として、一般に、優先度順検索型フローテーブルの検索処理のみを用いて、必要以上に多くの演算プロセッサを割り当てた場合、無駄な検索処理が大量に発生することとなり、計算リソースを効率的に利用することができなくなる。一方で、ハッシュ型フローテーブルの検索処理の場合、フローエントリの要素に基づくハッシュ値を、ハッシュテーブルに登録する必要がある。そこで、本発明によれば、優先度順検索型フローテーブルとハッシュ型フローテーブルとを平行して検索処理に利用すると共に、優先度順検索型フローテーブルへの演算プロセッサの割り当てに過不足が生じないように最適に調整することができる。   As a reason for passing through the processing steps as shown in FIG. 7, generally, if only more arithmetic processors are allocated than necessary using only the priority order search type flow table search process, a lot of useless search processes occur. As a result, computational resources cannot be used efficiently. On the other hand, in the case of hash type flow table search processing, it is necessary to register a hash value based on the elements of the flow entry in the hash table. Therefore, according to the present invention, the priority order search type flow table and the hash type flow table are used in parallel for the search process, and the allocation of the arithmetic processors to the priority order search type flow table becomes excessive or insufficient. It can be adjusted optimally so that there is no.

以上、詳細に説明したように、本発明の検索装置、フロースイッチ装置、プログラム及び方法によれば、条件テーブルからクエリエントリに一致する条件エントリを検索する際に、実際に一致するまで何エントリ分の検索が必要か(期待値)を考慮して、リソース割り当てを制御することができる。確率的に無駄なフローエントリとの一致検索を削減することができる。その分、他の計算リソースに、他の演算プロセッサを割り当てることができ、全体的な処理性能を向上させることができる。   As described above in detail, according to the search device, the flow switch device, the program, and the method of the present invention, when searching for a condition entry that matches a query entry from the condition table, how many entries are required until they actually match. It is possible to control resource allocation in consideration of whether or not a search is required (expected value). It is possible to reduce the matching search with the flow entry that is probabilistically useless. Accordingly, other arithmetic processors can be allocated to other calculation resources, and the overall processing performance can be improved.

特に、本発明の検索装置等は、汎用GPUを用いることができるので、専用ハードウェアからCOTSノードへの置き換えることができ、ネットワーク設備のコストを低減させることができる。   In particular, since the search device of the present invention can use a general-purpose GPU, the dedicated hardware can be replaced with a COTS node, and the cost of network equipment can be reduced.

また、本発明の検索装置等は、フローテーブルから高速に宛先検索をすることできるフロースイッチ装置を、汎用的なパーソナルコンピュータに実装することもできるので、通信事業者網におけるエンドツーエンドでのフロー単位の経路制御が可能となる。次いでは、アプリケーション毎に適した通信品質の提供も可能となり、サービス品質の向上を実現することもできる。   In addition, since the search device of the present invention can implement a flow switch device capable of performing destination search at high speed from a flow table in a general-purpose personal computer, an end-to-end flow in a telecommunications carrier network Unit path control is possible. Next, communication quality suitable for each application can be provided, and improvement in service quality can be realized.

前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。   Various changes, modifications, and omissions of the above-described various embodiments of the present invention can be easily made by those skilled in the art. The above description is merely an example, and is not intended to be restrictive. The invention is limited only as defined in the following claims and the equivalents thereto.

1 CPU
11 エントリ判定部
11r 線形判定部
11r1 条件エントリ分離部
11r2 プロセッサ数決定部
11r3 個別ステップ処理部
11r4 エントリ検索部
11r5 ヒット率更新部
11h ハッシュ判定部
12 ホスト側メモリ
13 ハッシュテーブル
2 GPU
21 スレッド実行制御部
22 SM
23 スレッド側メモリ
24 条件テーブル(フローテーブル)
1 CPU
11 entry determination unit 11r linear determination unit 11r1 condition entry separation unit 11r2 processor number determination unit 11r3 individual step processing unit 11r4 entry search unit 11r5 hit rate update unit 11h hash determination unit 12 host side memory 13 hash table 2 GPU
21 thread execution control unit 22 SM
23 Thread-side memory 24 Condition table (flow table)

Claims (10)

複数の要素の列からなる条件エントリが複数個並べられた条件テーブルと、
前記条件エントリと同種の要素の列からなるクエリエントリを入力し、該クエリエントリが前記条件テーブルのいずれかの条件エントリと一致するか否かを判定するエントリ判定部と、
複数の演算プロセッサを含み且つ所要のプロセッサ数を任意に変更可能なプロセッサ部とを有する検索装置において、
前記条件テーブルにおける各条件エントリは、当該条件エントリとクエリエントリとが一致した回数に基づくヒット率を含んでおり、
前記エントリ判定部は、線形判定手段を有し、
前記線形判定手段は、
エントリ判定のために許容される最大処理ステップ回数が予め設定されており、前記条件テーブルについて、優先度順にヒット率を累積した累積ヒット率を、最大処理ステップ回数で分類する条件エントリ分類手段と、
分類された処理ステップ毎に、当該処理ステップに含まれる条件エントリ数を、所要の演算プロセッサ数として決定するプロセッサ数決定手段と、
各演算プロセッサに対して条件エントリそれぞれを割り当てて、前記クエリエントリと当該条件エントリとが一致するか否かを一度に判定させる個別ステップ処理手段と、
前記個別ステップ処理手段によって両エントリが一致したと判定されるまで、前記個別ステップ処理手段を、前記条件テーブルの条件エントリの降順に、最大処理ステップ回数まで繰り返すエントリ検索手段と
を含むことを特徴とする検索装置。
A condition table in which a plurality of condition entries including a plurality of element columns are arranged;
An entry determination unit that inputs a query entry including a column of elements of the same type as the condition entry and determines whether the query entry matches any condition entry in the condition table;
In a search device including a processor unit including a plurality of arithmetic processors and capable of arbitrarily changing the required number of processors,
Each condition entry in the condition table includes a hit rate based on the number of times the condition entry matches the query entry,
The entry determination unit has linear determination means,
The linear determination means includes
A maximum number of processing steps allowed for entry determination is set in advance, and for the condition table, a condition entry classification means for classifying a cumulative hit rate obtained by accumulating hit rates in order of priority according to the maximum number of processing steps;
Processor number determination means for determining the number of condition entries included in the processing step as a required number of arithmetic processors for each classified processing step;
Individual step processing means for assigning each condition entry to each arithmetic processor and determining at a time whether the query entry matches the condition entry;
Entry search means for repeating the individual step processing means in descending order of condition entries in the condition table up to the maximum number of processing steps until the individual step processing means determines that both entries match. Search device to do.
前記プロセッサ部は、ハードウェアとしてのSIMD(Single Instruction, Multiple Data)型又はSIMT(Single Instruction, Multiple Thread)型のものであることを特徴とする請求項1に記載の検索装置。   The search device according to claim 1, wherein the processor unit is of a SIMD (Single Instruction, Multiple Data) type or SIMT (Single Instruction, Multiple Thread) type as hardware. 前記プロセッサ部は、汎用GPU(Graphic Processor Unit)であり、
前記プロセッサ数決定手段は、単位グループのSM(Streaming MultiProcessor)における演算プロセッサ数を決定する
ことを特徴とする請求項2に記載の検索装置。
The processor unit is a general-purpose GPU (Graphic Processor Unit),
The search device according to claim 2, wherein the processor number determining means determines the number of arithmetic processors in SM (Streaming MultiProcessor) of a unit group.
前記条件テーブルに含まれる条件エントリは、任意の要素についてワイルドカードで定義可能であることを特徴とする請求項1から3のいずれか1項に記載の検索装置。   The search device according to any one of claims 1 to 3, wherein the condition entry included in the condition table can be defined with a wild card for an arbitrary element. 前記エントリ検索手段によって両エントリが一致したと判定された際に、前記条件テーブルの当該条件エントリにおけるヒット率を増分するヒット率更新手段を更に含むことを特徴とする請求項1から4のいずれか1項に記載の検索装置。   5. The method according to claim 1, further comprising hit rate update means for incrementing a hit rate in the condition entry of the condition table when the entry search means determines that both entries match. The search device according to item 1. 前記条件エントリ分類手段は、前記条件テーブルにおける優先度順に累積した累積ヒット率が、処理ステップ毎に平滑化されるように、前記条件テーブルを分類することを特徴とする請求項1から5のいずれか1項に記載の検索装置。   6. The condition entry classification unit classifies the condition table so that a cumulative hit rate accumulated in order of priority in the condition table is smoothed for each processing step. The search device according to claim 1. 前記条件テーブルの各条件エントリは、クエリエントリと一致した際に実行すべき内容を表す実行要素を含んでおり、
前記エントリ判定部は、前記線形判定手段とは別に、ハッシュ判定手段を更に有し、
前記ハッシュ判定手段は、
前記線形判定手段によってクエリエントリと任意の条件エントリとが一致したと判定された際に、当該クエリエントリに含まれる複数の要素から、ハッシュ関数に基づくハッシュ値を算出するハッシュ値算出手段と、
算出されたハッシュ値と、当該クエリエントリに含まれる複数の要素と、一致した条件エントリの実行要素とを、ハッシュテーブルとして登録するハッシュテーブル更新手段と、
を有し、
前記エントリ判定部は、前記クエリエントリが入力された際に、最初に前記ハッシュ判定手段によってハッシュテーブルに登録されたいずれの条件エントリとも完全一致しなかった場合に、前記線形判定手段における条件エントリとの一致を判定する
ことを特徴とする請求項1から6のいずれか1項に記載の検索装置。
Each condition entry in the condition table includes an execution element representing the contents to be executed when the query entry matches the query entry,
The entry determination unit further includes a hash determination unit separately from the linear determination unit,
The hash determination means includes
A hash value calculation unit that calculates a hash value based on a hash function from a plurality of elements included in the query entry when the linear determination unit determines that the query entry matches an arbitrary condition entry;
A hash table updating means for registering the calculated hash value, a plurality of elements included in the query entry, and an execution element of the matched condition entry as a hash table;
Have
When the entry determination unit does not completely match any condition entry registered in the hash table by the hash determination unit when the query entry is input, the entry determination unit The search device according to claim 1, wherein the match is determined.
請求項1から7のいずれか1項に記載の検索装置は、フロースイッチ装置であり、
前記クエリエントリは、入力された通信パケットにおけるフローヘッダ識別子であり、
前記条件テーブルは、フローテーブルであり、
前記条件エントリは、フローエントリであり、
前記フローエントリに規定された、クエリエントリと一致した際に実行すべき内容を表す実行要素は、
当該クエリエントリのパケットを出力すべきポートの指定、
当該クエリエントリのパケットの所定ヘッダの書き換えの指示、及び/又は、
当該クエリエントリのパケットのスケジューリング若しくは帯域制御の指示
であることを特徴とするフロースイッチ装置。
The search device according to any one of claims 1 to 7 is a flow switch device,
The query entry is a flow header identifier in an input communication packet,
The condition table is a flow table,
The condition entry is a flow entry,
An execution element, which is defined in the flow entry and represents the content to be executed when it matches a query entry,
Specify the port that should output the packet of the query entry,
Instruction to rewrite the predetermined header of the packet of the query entry, and / or
A flow switch apparatus characterized by a packet scheduling or bandwidth control instruction for the query entry.
装置に搭載された、複数の演算プロセッサを含み且つ所要のプロセッサ数を任意に変更可能なプロセッサ部を、検索用に機能させるプログラムにおいて、
複数の要素の列からなる条件エントリが複数個並べられた条件テーブルと、
前記条件エントリと同種の要素の列からなるクエリエントリを入力し、該クエリエントリが前記条件テーブルのいずれかの条件エントリと一致するか否かを判定するエントリ判定部とを有すると共に、
前記条件テーブルにおける各条件エントリは、当該条件エントリとクエリエントリとが一致した回数に基づくヒット率を含んでおり、
前記エントリ判定部は、線形判定手段を有し、
前記線形判定手段は、
エントリ判定のために許容される最大処理ステップ回数が予め設定されており、前記条件テーブルについて優先度順にヒット率を累積した累積ヒット率を、最大処理ステップ回数で分類する条件エントリ分類手段と、
分類された処理ステップ毎に、当該処理ステップに含まれる条件エントリ数を、所要の演算プロセッサ数として決定するプロセッサ数決定手段と、
各演算プロセッサに対して条件エントリそれぞれを割り当てて、前記クエリエントリと当該条件エントリとが一致するか否かを一度に判定させる個別ステップ処理手段と、
前記個別ステップ処理手段によって両エントリが一致したと判定されるまで、前記個別ステップ処理手段を、前記条件テーブルの条件エントリの降順に、最大処理ステップ回数まで繰り返すエントリ検索手段と
を含むようにプロセッサ部を機能させることを特徴とする検索プログラム。
In a program that causes a processor unit that includes a plurality of arithmetic processors and can arbitrarily change the number of required processors to function for searching, installed in the apparatus,
A condition table in which a plurality of condition entries including a plurality of element columns are arranged;
An entry determination unit that inputs a query entry including a column of elements of the same type as the condition entry and determines whether the query entry matches any condition entry in the condition table;
Each condition entry in the condition table includes a hit rate based on the number of times the condition entry matches the query entry,
The entry determination unit has linear determination means,
The linear determination means includes
A maximum number of processing steps allowed for entry determination is set in advance, and condition entry classification means for classifying the cumulative hit rate obtained by accumulating hit rates in order of priority for the condition table by the maximum number of processing steps;
Processor number determination means for determining the number of condition entries included in the processing step as a required number of arithmetic processors for each classified processing step;
Individual step processing means for assigning each condition entry to each arithmetic processor and determining at a time whether the query entry matches the condition entry;
A processor unit that includes an entry search unit that repeats the individual step processing unit in descending order of condition entries in the condition table up to the maximum number of processing steps until the individual step processing unit determines that both entries match. A search program characterized in that it functions.
複数の演算プロセッサを含み且つ所要のプロセッサ数を任意に変更可能なプロセッサ部を用いた検索方法において、
複数の要素の列からなる条件エントリが複数個並べられた条件テーブルを有し、該条件テーブルにおける各条件エントリは、当該条件エントリとクエリエントリとが一致した回数に基づくヒット率を含んでおり、
前記条件エントリと同種の要素の列からなるクエリエントリを入力する第1のステップと、
エントリ判定のために許容される最大処理ステップ回数が予め設定されており、前記条件テーブルについて優先度順にヒット率を累積した累積ヒット率を、最大処理ステップ回数で分類する第2のステップと、
分類された処理ステップ毎に、当該処理ステップに含まれる条件エントリ数を、所要の演算プロセッサ数として決定する第3のステップと、
各演算プロセッサに対して条件エントリそれぞれを割り当てて、前記クエリエントリと当該条件エントリとが一致するか否かを一度に判定させる第4のステップと
を有し、
第4のステップによって両エントリが一致したと判定されるまで、第4のステップを、前記条件テーブルの条件エントリの降順に、最大処理ステップ回数まで繰り返すことを特徴とする検索方法。
In a search method using a processor unit including a plurality of arithmetic processors and capable of arbitrarily changing the required number of processors,
A condition table in which a plurality of condition entries including a plurality of element columns are arranged, and each condition entry in the condition table includes a hit rate based on the number of times the condition entry matches the query entry;
A first step of inputting a query entry consisting of a sequence of elements of the same type as the condition entry;
A maximum number of processing steps allowed for entry determination is preset, and a second step of classifying the cumulative hit rate obtained by accumulating hit rates in order of priority for the condition table according to the maximum number of processing steps;
A third step of determining, for each classified processing step, the number of condition entries included in the processing step as a required number of arithmetic processors;
A fourth step of assigning each condition entry to each arithmetic processor and determining at a time whether or not the query entry matches the condition entry;
A search method characterized in that the fourth step is repeated up to the maximum number of processing steps in descending order of the condition entries in the condition table until it is determined in the fourth step that both entries match.
JP2012272846A 2012-12-13 2012-12-13 Retrieval device, flow switch device, program and method for retrieving condition entry matching query entry from condition table Active JP5950811B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012272846A JP5950811B2 (en) 2012-12-13 2012-12-13 Retrieval device, flow switch device, program and method for retrieving condition entry matching query entry from condition table

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012272846A JP5950811B2 (en) 2012-12-13 2012-12-13 Retrieval device, flow switch device, program and method for retrieving condition entry matching query entry from condition table

Publications (2)

Publication Number Publication Date
JP2014120827A true JP2014120827A (en) 2014-06-30
JP5950811B2 JP5950811B2 (en) 2016-07-13

Family

ID=51175344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012272846A Active JP5950811B2 (en) 2012-12-13 2012-12-13 Retrieval device, flow switch device, program and method for retrieving condition entry matching query entry from condition table

Country Status (1)

Country Link
JP (1) JP5950811B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000083055A (en) * 1998-09-04 2000-03-21 Hitachi Ltd Router
JP2008165746A (en) * 2006-12-06 2008-07-17 Toshiba Corp Accelerator, information processor and information processing method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000083055A (en) * 1998-09-04 2000-03-21 Hitachi Ltd Router
JP2008165746A (en) * 2006-12-06 2008-07-17 Toshiba Corp Accelerator, information processor and information processing method

Also Published As

Publication number Publication date
JP5950811B2 (en) 2016-07-13

Similar Documents

Publication Publication Date Title
CN114189571B (en) Apparatus and method for implementing accelerated network packet processing
Pei et al. Resource aware routing for service function chains in SDN and NFV-enabled network
US9225643B2 (en) Lookup cluster complex
US9634938B2 (en) Adaptive scheduling of data flows in data center networks for efficient resource utilization
KR101583325B1 (en) Network interface apparatus and method for processing virtual packets
US8867395B2 (en) Accelerating data packet parsing
US10305815B2 (en) System and method for distributed resource management
US11343187B2 (en) Quantitative exact match distance in network flows
US10153979B2 (en) Prioritization of network traffic in a distributed processing system
CN108886496A (en) Multipath virtual exchange
US10257122B1 (en) Distributing key-value pairs to forwarding elements for caching
Xu et al. Heterogeneous environment aware streaming graph partitioning
US20170295035A1 (en) Selecting an optimal network device for reporting flow table misses upon expiry of a flow in a software defined network
CN115917520A (en) System for providing LPM implementation for programmable data planes through distributed algorithms
CN105308920A (en) Multicast flow reordering scheme
JP2015215799A (en) Control device, communication device and communication method
CN105282057B (en) Flow table updating method, controller and flow table analysis device
RU2584471C1 (en) DEVICE FOR RECEIVING AND TRANSMITTING DATA WITH THE POSSIBILITY OF INTERACTION WITH OpenFlow CONTROLLER
US10616116B1 (en) Network traffic load balancing using rotating hash
US9590897B1 (en) Methods and systems for network devices and associated network transmissions
JP5950811B2 (en) Retrieval device, flow switch device, program and method for retrieving condition entry matching query entry from condition table
He et al. Firebird: Network-aware task scheduling for spark using sdns
US11403200B2 (en) Provisioning resources for monitoring hosts based on defined functionalities of hosts
Hussain et al. Performance Optimization Strategies for Big Data Applications in Distributed Framework
US11888751B2 (en) Enhanced virtual channel switching

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160428

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: 20160519

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160607

R150 Certificate of patent or registration of utility model

Ref document number: 5950811

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150