JP3837670B2 - Data relay apparatus, associative memory device, and associative memory device utilization information retrieval method - Google Patents

Data relay apparatus, associative memory device, and associative memory device utilization information retrieval method Download PDF

Info

Publication number
JP3837670B2
JP3837670B2 JP2004558387A JP2004558387A JP3837670B2 JP 3837670 B2 JP3837670 B2 JP 3837670B2 JP 2004558387 A JP2004558387 A JP 2004558387A JP 2004558387 A JP2004558387 A JP 2004558387A JP 3837670 B2 JP3837670 B2 JP 3837670B2
Authority
JP
Japan
Prior art keywords
search
memory device
information
associative memory
network processor
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
Application number
JP2004558387A
Other languages
Japanese (ja)
Other versions
JPWO2004054186A1 (en
Inventor
裕一 鵜澤
康弘 大場
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2004054186A1 publication Critical patent/JPWO2004054186A1/en
Application granted granted Critical
Publication of JP3837670B2 publication Critical patent/JP3837670B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores

Description

本発明は伝送されるパケットを中継するデータ中継装置、そのデータ中継装置で利用する連想メモリデバイスおよびパケットに関連する情報を連想メモリデバイスを利用して検索するための連想メモリデバイス利用情報検索方法に関し、特に情報検索の効率化を図ったデータ中継装置、連想メモリデバイスおよび連想メモリデバイス利用情報検索方法に関する。   The present invention relates to a data relay device that relays a transmitted packet, an associative memory device used in the data relay device, and an associative memory device utilization information retrieval method for retrieving information related to a packet using the associative memory device. In particular, the present invention relates to a data relay device, an associative memory device, and an associative memory device utilization information retrieval method for improving the efficiency of information retrieval.

ネットワークの中継点となるルータまたはスイッチ等の装置(以下、データ中継装置と呼ぶ)では、ネットワーク内を流れるパケットの宛先によるルーティング処理が行われる。この経路選択には、汎用コンピュータでソフトウェア的に実現される場合と、専用のハードウェアによって実現される場合とがある。   In a device such as a router or a switch (hereinafter referred to as a data relay device) serving as a relay point of the network, a routing process is performed by a destination of a packet flowing in the network. This route selection may be realized by software on a general-purpose computer or may be realized by dedicated hardware.

一般に、経路選択を高速に行う必要がある場合には、専用のハードウェアによってパケットのルーティングが実現される。専用のハードウェア構成のデータ中継装置内には、ネットワークプロセッサと呼ばれる経路選択専用のプロセッサが実装される。   In general, when it is necessary to select a route at high speed, packet routing is realized by dedicated hardware. A dedicated route selection processor called a network processor is mounted in a data relay device having a dedicated hardware configuration.

ネットワークプロセッサは、入力されたパケットのIP(Internet Protocol)アドレス等の各種情報を参照して、出力すべき物理ポートを決定する。一般に、ネットワークプロセッサは、その物理ポートに配下にどのようなIPアドレスの端末装置が接続されているのかを記憶するメモリを有している。パケットを転送する際には、そのメモリの内容を参照することで、送出先の物理ポートを特定することができる。   The network processor determines a physical port to be output with reference to various information such as an IP (Internet Protocol) address of the input packet. In general, a network processor has a memory that stores what IP address terminal device is connected to its physical port. When transferring a packet, the physical port of the transmission destination can be specified by referring to the contents of the memory.

このように、経路選択には常にデータ中継装置内でのメモリアクセスが伴う。そのため、経路選択を高速に行うためには、メモリアクセスの効率化が望まれる。CPU(Central Processing Unit)からメモリへのアクセスの効率化の技術として、たとえば、CPUとメモリとの間にコマンドアクセス回路(あるいはメモリ制御回路)において、コマンドのバッファリングを行うものがある。たとえば、特開平8−87441号公報、特開2000−99394号公報参照。   In this way, route selection always involves memory access within the data relay device. Therefore, in order to perform route selection at high speed, it is desired to improve the efficiency of memory access. As a technique for improving the efficiency of access from a CPU (Central Processing Unit) to a memory, for example, there is a technique of buffering commands in a command access circuit (or memory control circuit) between a CPU and a memory. For example, see JP-A-8-87441 and JP-A-2000-99394.

また、特に高速・大容量のルーティングを行う場合、CAM(Content Addressable/Associative Memory:連想メモリ)デバイスと呼ばれる特別のメモリを用いてルーティングが行われる。CAMデバイスを用いた経路選択回路は、ネットワークサーチエンジンとも呼ばれる。   In particular, when performing high-speed and large-capacity routing, routing is performed using a special memory called a CAM (Content Addressable / Associative Memory) device. A route selection circuit using a CAM device is also called a network search engine.

CAMデバイスはIPアドレス等の情報を格納しており、IPアドレス等の情報が入力されると、その情報が格納されている記憶領域のメモリアドレスを出力する。なお、CAMデバイスは、データ中継装置に限らず、各種システムにおけるメモリの高速化に利用されている。特開2000−231785号公報(段落「0023」)参照。   The CAM device stores information such as an IP address. When information such as an IP address is input, the memory address of the storage area in which the information is stored is output. The CAM device is used not only for the data relay device but also for increasing the memory speed in various systems. See Japanese Patent Application Laid-Open No. 2000-231785 (paragraph “0023”).

ところで、1つのパケットに対する経路検索において、ネットワークプロセッサにおけるメモリアクセスが複数回行われる場合がある。たとえば、パケットから抽出されるIPアドレス(source address: SAおよびdestination address: DA)とTCP(Transmission Control Protocol)/UDP(User Datagram Protocol)などのポート番号(source port numberおよびdestination port number)とで2回検索される場合がある。   By the way, in the route search for one packet, the memory access in the network processor may be performed a plurality of times. For example, an IP address (source address: SA and destination address: DA) extracted from a packet and a port number (source port number and destination port number) such as TCP (Transmission Control Protocol) / UDP (User Datagram Protocol) are 2 May be searched twice.

以下、複数回のCAMデバイスアクセスを伴う経路探索処理を説明する。
図17は、複数回のCAMデバイスアクセスを伴う従来の経路探索処理を示す図である。図17に示すように、データ中継装置には、ネットワークプロセッサ911、CAMデバイス912、およびコンテキストRAM(Random Access Memory)913が設けられている。CAMデバイス912の記憶領域には、IPアドレスの記憶領域とポート番号の記憶領域とが設けられている。図17の例では、1つのパケットを転送する際に、IPアドレスとポート番号とによる2回の検索が行われる。
Hereinafter, route search processing involving multiple CAM device accesses will be described.
FIG. 17 is a diagram showing a conventional route search process involving multiple CAM device accesses. As shown in FIG. 17, the data relay device is provided with a network processor 911, a CAM device 912, and a context RAM (Random Access Memory) 913. In the storage area of the CAM device 912, an IP address storage area and a port number storage area are provided. In the example of FIG. 17, when one packet is transferred, two searches based on the IP address and the port number are performed.

[ステップS101]データ中継装置にパケットの情報が入力されると、ネットワークプロセッサ911からCAMデバイス912へ、検索キー921、マスク設定コマンド922、および検索コマンド923が送られる。検索キー921はIPアドレスである。マスク設定コマンド922は、CAMデバイス912内のIPアドレスの記憶領域以外のマスク処理(検索対象外とする)を指定するコマンドである。   [Step S101] When packet information is input to the data relay device, a search key 921, a mask setting command 922, and a search command 923 are sent from the network processor 911 to the CAM device 912. The search key 921 is an IP address. The mask setting command 922 is a command for designating mask processing (excluding search) other than the IP address storage area in the CAM device 912.

CAMデバイス912は、マスク設定コマンド922で指定された範囲にマスクをかける。マスクがかけられた範囲は、検索対象から除外される。そして、CAMデバイス912は、検索キー921に合致するデータを検索し、そのデータが格納されている領域のメモリアドレスを出力する。出力されたメモリアドレスは、コンテキストRAM913に対して、読み出しのメモリアドレスとして入力される。すると、コンテキストRAM913から、入力されたメモリアドレスに該当する領域からデータ924が出力され、ネットワークプロセッサ911に入力される。これは、Layer3(ネットワーク層)の検索処理である。   The CAM device 912 masks the range specified by the mask setting command 922. The masked range is excluded from the search target. Then, the CAM device 912 searches for data that matches the search key 921 and outputs the memory address of the area where the data is stored. The output memory address is input to the context RAM 913 as a read memory address. Then, data 924 is output from the area corresponding to the input memory address from the context RAM 913 and input to the network processor 911. This is Layer 3 (network layer) search processing.

[ステップS102]次に、ネットワークプロセッサ911からCAMデバイス912へ、検索キー931、マスク設定コマンド932、および検索コマンド933が送られる。検索キー931は、転送するパケットの宛先側のアプリケーションを示すポート番号である。マスク設定コマンド932は、CAMデバイス912内のポート番号の記憶領域以外のマスク処理を指定するコマンドである。   [Step S102] Next, a search key 931, a mask setting command 932, and a search command 933 are sent from the network processor 911 to the CAM device 912. The search key 931 is a port number indicating the destination application of the packet to be transferred. The mask setting command 932 is a command for specifying mask processing other than the port number storage area in the CAM device 912.

CAMデバイス912は、マスク設定コマンド932で指定された範囲にマスクをかける。そして、CAMデバイス912は、検索キー931に合致するデータを検索し、そのデータが格納されている領域のメモリアドレスを出力する。出力されたメモリアドレスは、コンテキストRAM913に対して、読み出しアドレスとして入力される。すると、コンテキストRAM913から、入力されたメモリアドレスに該当する領域からデータ934が出力され、ネットワークプロセッサ911に入力される。これは、Layer4(トランスポート層)の検索処理である。   The CAM device 912 masks the range specified by the mask setting command 932. Then, the CAM device 912 searches for data that matches the search key 931 and outputs the memory address of the area where the data is stored. The output memory address is input to the context RAM 913 as a read address. Then, data 934 is output from the area corresponding to the input memory address from the context RAM 913 and input to the network processor 911. This is a layer 4 (transport layer) search process.

このように二度検索を行うのは、QoS(Quality-of-Service)のようなサービスを提供する場合で、Layer3のIPアドレス(SA,DA)検索だけでなく、Layer4までの情報をもとにフローの識別を行う必要があるからである。   The search is performed twice in this case when a service such as QoS (Quality-of-Service) is provided. In addition to the Layer 3 IP address (SA, DA) search, the information up to Layer 4 is used. This is because it is necessary to identify the flow.

しかし、1つのパケット転送時に複数回のCAMデバイスアクセスが行われる場合、検索の度にマスク設定コマンドや検索コマンドが発行される。このことは、CAMデバイスへのアクセスが増加しネットワークプロセッサのパフォーマンスを下げる要因となる。そこで、パケットの経路選択等の判断処理の高速化のために、CAMデバイスへのアクセスの際のコマンド転送の効率化が望まれている。   However, when CAM device access is performed a plurality of times during one packet transfer, a mask setting command and a search command are issued for each search. This increases access to the CAM device and lowers the performance of the network processor. Therefore, in order to speed up the determination process such as packet path selection, it is desired to increase the efficiency of command transfer when accessing the CAM device.

本発明はこのような点に鑑みてなされたものであり、連想メモリ(CAM)デバイスに対して効率よく検索要求のコマンドを入力できるデータ中継装置を提供することを目的とする。   The present invention has been made in view of these points, and an object of the present invention is to provide a data relay apparatus that can efficiently input a search request command to a content addressable memory (CAM) device.

また、本発明の他の目的は、検索要求のコマンドの効率の良い入力が可能な連想メモリデバイスを提供することである。
また、本発明の別の目的は、連想メモリデバイスに対して効率よく検索要求のコマンドを入力することができる連想メモリデバイス利用情報検索方法を提供することである。
Another object of the present invention is to provide an associative memory device capable of efficiently inputting a search request command.
Another object of the present invention is to provide an associative memory device usage information search method capable of efficiently inputting a search request command to an associative memory device.

本発明では上記課題を解決するために、図1に示すようなデータ中継装置が提供される。本発明のデータ中継装置は、伝送されるパケットを中継するためのものであり、ネットワークプロセッサ1、連想メモリデバイス2、およびメモリデバイス3を有している。それぞれの要素は、以下の機能を有している。   In order to solve the above-described problems, the present invention provides a data relay apparatus as shown in FIG. The data relay apparatus of the present invention is for relaying transmitted packets and includes a network processor 1, an associative memory device 2, and a memory device 3. Each element has the following functions.

ネットワークプロセッサ1は、パケットが入力されると、パケット内の複数の要素を検索キー11,12とし、複数の検索キー11,12と、検索キー11,12それぞれによる検索の対象範囲を示す複数の適用マスク情報13,14とを含めた検索要求10を出力する。連想メモリデバイス2は、複数の検索対象情報を記憶していると共に、複数の情報を格納順序を保持して記憶するレジスタ群を有しており、ネットワークプロセッサ1から出力された検索要求10を受け取り、検索要求10の構造を解析して検索キー11,12と適用マスク情報13,14とからなる複数の検索条件を生成してレジスタ群に格納し先に格納された検索条件から順に抽出し、抽出した検索条件に応じて検索対象情報の検索を行い、検出された検索対象情報に一意に関連付けられたメモリアドレス21を出力する。メモリデバイス3は、複数の検索結果候補を記憶しており、連想メモリデバイス2から出力されたメモリアドレス21に対応付けて格納されている検索結果候補を検索結果22として出力する。 When a packet is input, the network processor 1 uses a plurality of elements in the packet as search keys 11 and 12, and a plurality of search keys 11 and 12 and a plurality of search target ranges by the search keys 11 and 12, respectively. A search request 10 including application mask information 13 and 14 is output. The associative memory device 2 stores a plurality of pieces of search target information and has a register group that stores a plurality of pieces of information in a storage order and receives a search request 10 output from the network processor 1. The search request 10 is analyzed to generate a plurality of search conditions including the search keys 11 and 12 and the application mask information 13 and 14 and stored in the register group, and the search conditions are extracted in order from the previously stored search conditions. The search target information is searched according to the extracted search conditions, and the memory address 21 uniquely associated with the detected search target information is output. The memory device 3 stores a plurality of search result candidates, and outputs the search result candidates stored in association with the memory address 21 output from the associative memory device 2 as the search results 22.

このようなデータ中継装置によれば、パケットが入力されるとネットワークプロセッサ1により、検索要求10が生成され連想メモリデバイス2に渡される。すると、連想メモリデバイス2において、検索要求10の構造が解析され複数の検索条件が生成されてレジスタ群に格納される。そして、連想メモリデバイス2において、先に格納された検索条件から順に検索条件に応じた検索が行われ、検出された検索対象情報に対応するメモリアドレス21がメモリデバイス3に出力される。メモリデバイス3からは、メモリアドレス21に対応する検索結果候補が、検索結果22として出力される。 According to such a data relay apparatus, when a packet is input, the network processor 1 generates a search request 10 and passes it to the associative memory device 2. Then, the associative in the memory device 2, a plurality of search conditions structure search request 10 is analyzed Ru stored are generated in the register group. Then, in the associative memory device 2, a search according to the search condition is performed in order from the previously stored search condition, and the memory address 21 corresponding to the detected search target information is output to the memory device 3. Search results candidates corresponding to the memory address 21 are output from the memory device 3 as search results 22.

本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。   These and other objects, features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings which illustrate preferred embodiments by way of example of the present invention.

以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
First, the outline of the invention applied to the embodiment will be described, and then the specific contents of the embodiment will be described.

図1は、実施の形態に適用される発明の概念図である。本発明に係るデータ中継装置は、伝送されるパケットを中継するためのものであり、ネットワークプロセッサ1、連想メモリデバイス2、およびメモリデバイス3を有している。それぞれの要素は、以下の機能を有している。   FIG. 1 is a conceptual diagram of the invention applied to the embodiment. The data relay apparatus according to the present invention is for relaying transmitted packets, and includes a network processor 1, an associative memory device 2, and a memory device 3. Each element has the following functions.

ネットワークプロセッサ1は、パケットが入力されると、パケット内の複数の要素を検索キー11,12とし、複数の検索キー11,12と、検索キー11,12それぞれによる検索の対象範囲を示す複数の適用マスク情報13,14とを含めた検索要求10を出力する。パケット内のどの要素を検索キーとするのかは、ネットワークプロセッサ1内に予め定義されている。   When a packet is input, the network processor 1 uses a plurality of elements in the packet as search keys 11 and 12, and a plurality of search keys 11 and 12 and a plurality of search target ranges by the search keys 11 and 12, respectively. A search request 10 including application mask information 13 and 14 is output. Which element in the packet is used as a search key is defined in the network processor 1 in advance.

連想メモリデバイス2は、複数の検索対象情報を記憶している。そして、連想メモリデバイス2は、ネットワークプロセッサ1から出力された検索要求10を受け取り、検索要求10の構造を解析して検索キー11,12と適用マスク情報13,14とからなる複数の検索条件を生成する。たとえば、検索キー11と適用マスク情報13とを組にして1つの検索条件を生成し、検索キー12と適用マスク情報14とを組にして別の検索条件を生成する。生成した検索条件は、所定のレジスタ等に格納する。   The associative memory device 2 stores a plurality of pieces of search target information. The associative memory device 2 receives the search request 10 output from the network processor 1, analyzes the structure of the search request 10, and sets a plurality of search conditions including the search keys 11 and 12 and the application mask information 13 and 14. Generate. For example, one search condition is generated by combining the search key 11 and application mask information 13, and another search condition is generated by combining the search key 12 and application mask information 14. The generated search condition is stored in a predetermined register or the like.

その後、連想メモリデバイス2は、生成された検索条件に応じて検索対象情報の検索を行い、検出された検索対象情報に一意に関連付けられたメモリアドレス21をメモリデバイス3に対して出力する。具体的には、連想メモリデバイス2は、検索条件内の適用マスク情報で示される領域を検索対象外とし、検索対象である領域から、検索キーに合致する検索対象情報を検索する。そして、連想メモリデバイス2は、検出された検索対象情報が格納されている記憶領域のメモリアドレスを、メモリデバイス3に対して出力する。   Thereafter, the associative memory device 2 searches the search target information according to the generated search condition, and outputs the memory address 21 uniquely associated with the detected search target information to the memory device 3. Specifically, the associative memory device 2 excludes the area indicated by the application mask information in the search condition from the search target, and searches the search target area for the search target information that matches the search key. Then, the associative memory device 2 outputs the memory address of the storage area in which the detected search target information is stored to the memory device 3.

メモリデバイス3は、複数の検索結果候補を記憶しており、連想メモリデバイス2から出力されたメモリアドレス21に対応付けて格納されている検索結果候補を検索結果22としてネットワークプロセッサ1に対して出力する。   The memory device 3 stores a plurality of search result candidates, and outputs the search result candidates stored in association with the memory address 21 output from the associative memory device 2 as the search results 22 to the network processor 1. To do.

このようなデータ中継装置によれば、パケットが入力されるとネットワークプロセッサ1により、検索要求10が生成され連想メモリデバイス2に渡される。すると、連想メモリデバイス2において、検索要求10の構造が解析され複数の検索条件が生成される。そして、連想メモリデバイス2において、検索条件に応じた検索が行われ、検出された検索対象情報に対応するメモリアドレス21がメモリデバイス3に出力される。メモリデバイス3からは、メモリアドレス21に対応する検索結果候補が、検索結果22としてネットワークプロセッサ1に出力される。   According to such a data relay apparatus, when a packet is input, the network processor 1 generates a search request 10 and passes it to the associative memory device 2. Then, the content addressable memory device 2 analyzes the structure of the search request 10 and generates a plurality of search conditions. Then, the associative memory device 2 performs a search according to the search condition, and the memory address 21 corresponding to the detected search target information is output to the memory device 3. From the memory device 3, the search result candidate corresponding to the memory address 21 is output to the network processor 1 as the search result 22.

このように、検索要求内に複数の検索キーと適用マスク情報とを含め、連想メモリデバイス2において検索要求の構造を解析し、複数の検索条件を生成するようにしたため、1つのパケット転送において複数回の検索が必要な場合でも、検索キーや適用マスク情報の受け渡しを1回で済ませることができる。これにより、検索要求の受け渡しが効率よく行われ、検索の効率化が図れる。   As described above, a plurality of search keys and application mask information are included in the search request, and the structure of the search request is analyzed in the associative memory device 2 to generate a plurality of search conditions. Even when the search is required once, the search key and the application mask information can be exchanged only once. As a result, the search request is efficiently transferred, and the search efficiency can be improved.

以下、本発明の実施の形態について具体的に説明する。
[第1の実施の形態]
図2は、第1の実施の形態を適用するネットワークシステムの構成例を示す図である。データ中継装置100は、複数の物理ポート101〜108を有している。物理ポート101〜108には、ネットワークを接続することができる。そして、データ中継装置100には、ネットワークを介して、複数の端末装置311〜317や他のデータ中継装置200が接続される。他のデータ中継装置200には、同様に端末装置318,319が接続される。
Hereinafter, embodiments of the present invention will be specifically described.
[First Embodiment]
FIG. 2 is a diagram illustrating a configuration example of a network system to which the first embodiment is applied. The data relay apparatus 100 has a plurality of physical ports 101 to 108. A network can be connected to the physical ports 101 to 108. A plurality of terminal devices 311 to 317 and other data relay devices 200 are connected to the data relay device 100 via a network. Similarly, terminal devices 318 and 319 are connected to the other data relay device 200.

図3は、データ中継装置の内部構成を示すブロック図である。データ中継装置100は、ネットワークプロセッサ110、CAMデバイス120、およびコンテキストRAM130を有している。ネットワークプロセッサ110とCAMデバイス120とは、検索データ入力バス141で接続されている。CAMデバイス120とコンテキストRAM130とは、コンテキストRAM130へのアドレス入力用のアドレスバス142で接続されている。コンテキストRAM130とネットワークプロセッサ110は、コンテキストRAM130からのデータ出力用のデータバス143で接続されている。ネットワークプロセッサ110は、各物理ポート101〜108に接続されている。なお、各物理ポート101〜108は、実際には通信インタフェース等を介しネットワークプロセッサ110に接続されるが、図3では省略されている。   FIG. 3 is a block diagram showing an internal configuration of the data relay apparatus. The data relay apparatus 100 includes a network processor 110, a CAM device 120, and a context RAM 130. The network processor 110 and the CAM device 120 are connected by a search data input bus 141. The CAM device 120 and the context RAM 130 are connected by an address bus 142 for inputting an address to the context RAM 130. The context RAM 130 and the network processor 110 are connected by a data bus 143 for data output from the context RAM 130. The network processor 110 is connected to each physical port 101-108. The physical ports 101 to 108 are actually connected to the network processor 110 via a communication interface or the like, but are omitted in FIG.

ネットワークプロセッサ110は、物理ポート101〜108から入力されたパケットの内容を解釈し、IPアドレスやポート番号を抽出する。そしてネットワークプロセッサ110は、CAMデバイス120に対して、IPアドレスとポート番号とを経路選択やサービス内容(転送レート等)の判断要素として、検索要求を出力する。この際、検索要求には、判断要素が検索キーとして含まれると共に検索キー毎のマスク設定コマンドが含まれる。検索要求に対する検索結果は、コンテキストRAM130から渡される。たとえば、パケットを転送すべき物理ポートのポート番号が渡される。ネットワークプロセッサ110は、検索結果に応じてパケットの転送経路を決定し、該当する物理ポートから出力する。   The network processor 110 interprets the contents of the packet input from the physical ports 101 to 108 and extracts an IP address and a port number. Then, the network processor 110 outputs a search request to the CAM device 120 using the IP address and port number as the determination factors for route selection and service contents (transfer rate and the like). At this time, the search request includes a determination element as a search key and a mask setting command for each search key. The search result for the search request is passed from the context RAM 130. For example, the port number of the physical port to which the packet is to be transferred is passed. The network processor 110 determines a packet transfer path according to the search result, and outputs it from the corresponding physical port.

CAMデバイス120は、ネットワークを介して接続されている端末装置等のIPアドレスや、データ通信のために端末装置に実装されているアプリケーション等に対応するTCP/IPのポート番号などの判断要素が検索対象情報として格納されている。CAMデバイス120は、ネットワークプロセッサ110からの検索要求に応じて、記憶されている検索対象情報を対象とした検索を行う。そして、CAMデバイス120は、検出された検索対象情報が格納されている領域のメモリアドレスをコンテキストRAM130に対して出力する。   The CAM device 120 searches for judgment elements such as an IP address of a terminal device connected via a network and a TCP / IP port number corresponding to an application installed in the terminal device for data communication. Stored as target information. In response to a search request from the network processor 110, the CAM device 120 performs a search for the stored search target information. Then, the CAM device 120 outputs the memory address of the area where the detected search target information is stored to the context RAM 130.

コンテキストRAM130は、ネットワークプロセッサ110が出力する検索要求に対応する検索結果となり得る検索結果候補を格納している。検索結果候補には、パケットの転送経路を示す情報や、パケットに対するサービス内容(転送レート等)を指示する情報が含まれる。たとえば、パケットを送出すべき物理ポートの番号や、パケットの廃棄を指示する情報などである。各検索結果候補は、CAMデバイス120に格納された判断要素に対応付けられている。具体的には、判断要素が格納された領域のCAMデバイス120におけるメモリアドレスが、その判断要素に対応する検索結果候補が格納された領域のコンテキストRAM130におけるメモリアドレスとなる。   The context RAM 130 stores search result candidates that can be search results corresponding to the search request output from the network processor 110. The search result candidate includes information indicating a packet transfer route and information indicating service contents (transfer rate and the like) for the packet. For example, the physical port number to which the packet is to be sent, information for instructing the packet to be discarded, and the like. Each search result candidate is associated with a determination element stored in the CAM device 120. Specifically, the memory address in the CAM device 120 in the area in which the determination element is stored becomes the memory address in the context RAM 130 in the area in which the search result candidate corresponding to the determination element is stored.

コンテキストRAM130は、CAMデバイス120からメモリアドレスが入力されると、そのメモリアドレスに格納されている検索結果候補を検索結果とし、その検索結果をネットワークプロセッサ110に渡す。   When the memory address is input from the CAM device 120, the context RAM 130 sets the search result candidate stored in the memory address as the search result, and passes the search result to the network processor 110.

図4は、検索要求のデータ構造例を示す図である。検索要求400は検索キー群410と検索コマンド420とで構成される。検索キー群410には、経路判断やサービス内容判断のための複数の検索キー411,412が含まれる。たとえば、検索キー411はIPアドレスであり、検索キー412はポート番号である。検索コマンド420には、命令文421、適用マスク情報422,423が含まれている。命令文421には、検索の実行をCAMデバイス120に指示する命令文が設定される。適用マスク情報422,423には、検索キー411,412毎の検索時のマスクを指示する情報が設定される。第1の実施の形態では、CAMデバイス120内に定義されているマスク情報の識別番号が適用マスク情報422,423で指示される。   FIG. 4 is a diagram illustrating an example of a data structure of a search request. The search request 400 includes a search key group 410 and a search command 420. The search key group 410 includes a plurality of search keys 411 and 412 for route determination and service content determination. For example, the search key 411 is an IP address, and the search key 412 is a port number. The search command 420 includes a command statement 421 and application mask information 422 and 423. In the command statement 421, a command statement for instructing the CAM device 120 to execute search is set. In the application mask information 422 and 423, information indicating a mask at the time of searching for each of the search keys 411 and 412 is set. In the first embodiment, the identification number of the mask information defined in the CAM device 120 is indicated by the application mask information 422 and 423.

図5は、CAMデバイスの内部構成を示すブロック図である。図5に示すように、CAMデバイス120は、データ記憶回路121、コマンドフォーマット定義情報122、マスク情報群123、解析回路124、検索条件格納部125および検索回路126を有している。   FIG. 5 is a block diagram showing an internal configuration of the CAM device. As shown in FIG. 5, the CAM device 120 includes a data storage circuit 121, command format definition information 122, mask information group 123, analysis circuit 124, search condition storage unit 125, and search circuit 126.

データ記憶回路121は、経路判断の要素となる情報を記憶する回路ブロック(CAMセルアレー)である。判断要素は、種別毎に格納領域が分かれている。図5の例では、IPアドレスを格納する領域121aとポート番号を格納する領域121bとが設けられている。   The data storage circuit 121 is a circuit block (CAM cell array) that stores information that is an element of path determination. The determination element has a storage area for each type. In the example of FIG. 5, an area 121a for storing an IP address and an area 121b for storing a port number are provided.

コマンドフォーマット定義情報122は、図4に示した検索要求のデータフォーマットが定義されている。たとえば、検索要求400の先頭から、32ビットが第1の検索キー、続く16ビットが第2の検索キー、続く16ビットが命令文、続く8ビットが第1の適用マスク情報、続く8ビットが第2の適用マスク情報といった内容が定義される。   The command format definition information 122 defines the data format of the search request shown in FIG. For example, from the top of the search request 400, 32 bits are the first search key, the following 16 bits are the second search key, the following 16 bits are the command statement, the following 8 bits are the first application mask information, and the following 8 bits are Contents such as second application mask information are defined.

なお、コマンドフォーマット定義情報122は、データ中継装置100全体を制御するCPUにより書き換えることができる。また、検索要求内にコマンドフォーマット定義情報122の設定内容を含め、その設定内容を受信した際にコマンドフォーマット定義情報122が書き換えられるようにしてもよい。   The command format definition information 122 can be rewritten by a CPU that controls the entire data relay apparatus 100. Further, the setting contents of the command format definition information 122 may be included in the search request, and the command format definition information 122 may be rewritten when the setting contents are received.

マスク情報群123は、データ記憶回路121のうち検索対象から除外する領域を指定する複数のマスク情報123a,123b,123mが設定されている。たとえば、MASK#1は、IPアドレスの記憶領域以外をマスクするマスク情報であり、MASK#2は、ポート番号の記憶領域以外をマスクするマスク情報である。各マスク情報123a,123b,123mには、識別番号が設定されている。この識別番号により、検索の際に提供するマスク情報が指定される。   In the mask information group 123, a plurality of pieces of mask information 123a, 123b, and 123m that specify areas to be excluded from the search target in the data storage circuit 121 are set. For example, MASK # 1 is mask information for masking areas other than the IP address storage area, and MASK # 2 is mask information for masking areas other than the port number storage area. An identification number is set in each mask information 123a, 123b, 123m. By this identification number, mask information provided at the time of search is designated.

解析回路124は、検索要求の構造を解析し、検索キーと適用マスク情報とからなる複数の検索情報を生成する。具体的には、解析回路124は、検索要求を受け取ると、コマンドフォーマット定義情報122の定義内容に従って検索要求の先頭から順に、複数の検索キー、命令文、および複数の適用マスク情報を抽出する。そして、解析回路124は、検索キーと適用マスク情報との組を、検索条件格納部125に格納する。   The analysis circuit 124 analyzes the structure of the search request and generates a plurality of search information including a search key and application mask information. Specifically, when receiving the search request, the analysis circuit 124 extracts a plurality of search keys, a command sentence, and a plurality of application mask information in order from the top of the search request according to the definition contents of the command format definition information 122. Then, the analysis circuit 124 stores the combination of the search key and the application mask information in the search condition storage unit 125.

検索条件格納部125は、検索キーと適用マスク情報との組を複数格納可能なレジスタ群である。
検索回路126は、検索条件格納部125に格納された検索キーと適用マスク情報との組を順次取り出し、データ記憶回路121の検索を行う。具体的には、検索回路126は、マスク情報群123を参照し、検索条件格納部125から取り出した適用マスク情報に対応するマスク情報を抽出する。次に、検索回路126は、取り出したマスク情報で指定された領域を検索対象外として、検索キーに一致する情報をデータ記憶回路121から検索する。一致する情報が検出されると、検索回路126は、その情報が格納された領域のメモリアドレスを、コンテキストRAM130に対して出力する。
The search condition storage unit 125 is a register group that can store a plurality of sets of search keys and application mask information.
The search circuit 126 sequentially retrieves a set of the search key and application mask information stored in the search condition storage unit 125 and searches the data storage circuit 121. Specifically, the search circuit 126 refers to the mask information group 123 and extracts mask information corresponding to the applied mask information extracted from the search condition storage unit 125. Next, the search circuit 126 searches the data storage circuit 121 for information that matches the search key, excluding the area specified by the extracted mask information from the search target. When matching information is detected, the search circuit 126 outputs the memory address of the area where the information is stored to the context RAM 130.

以上の様な構成のデータ中継装置100により、以下のような処理が行われる。
まず、パケットが入力されると、ネットワークプロセッサ110が内容を解析し、経路選択等の判断要素を検索キーとし、検索キーと検索キー毎の適用マスク情報とを含む検索要求を生成する。なお、入力されたパケットに関する情報(パケットに含まれる情報やパケットの受信状況等を含む)のうち、経路選択等の判断要素とすべき情報については、予めネットワークプロセッサ110内で定義されている。以下の例では、IPアドレスとポート番号とを経路選択の判断要素とする。また、ネットワークプロセッサ110には、判断要素毎の適用マスク情報も予め定義されている。その後、検索要求に応じた検索が行われる。
The following processing is performed by the data relay device 100 configured as described above.
First, when a packet is input, the network processor 110 analyzes the contents, and generates a search request including the search key and application mask information for each search key using a determination element such as route selection as a search key. Of the information relating to the input packet (including information contained in the packet and the reception status of the packet), information to be used as a determination element such as route selection is defined in the network processor 110 in advance. In the following example, an IP address and a port number are used as route selection determination elements. In the network processor 110, application mask information for each determination element is also defined in advance. Thereafter, a search according to the search request is performed.

図6は、検索処理の概略を示す図である。ネットワークプロセッサ110は、到着したパケットの持つヘッダの所定の場所からIPアドレスやポート番号を抽出して、検索要求を生成する。検索要求は、1つのパケットに対して1つ生成される。生成された検索要求は、検索データ入力バス141を通じて、CAMデバイス120に入力される。CAMデバイス120は、データ記憶回路121にマスク処理を施し、格納されているエントリから該当する情報121c,121dを検索する。検索要求内に複数の検索キーが含まれていれば、検索キー毎に該当する情報が検索される。   FIG. 6 is a diagram showing an outline of the search process. The network processor 110 extracts the IP address and port number from a predetermined location in the header of the arrived packet, and generates a search request. One search request is generated for one packet. The generated search request is input to the CAM device 120 through the search data input bus 141. The CAM device 120 performs a mask process on the data storage circuit 121 and retrieves the corresponding information 121c and 121d from the stored entries. If a plurality of search keys are included in the search request, corresponding information is searched for each search key.

そして、CAMデバイス120は、該当する情報が格納されていた領域のメモリアドレスを、順次、アドレスバス142を介してコンテキストRAM130に入力する。すると、コンテキストRAM130において、入力されたメモリアドレスに対応する領域に格納された情報131,132を、データバス143を介して出力する。データバス143を介して出力された情報は、検索結果としてネットワークプロセッサ110で受け取られる。   Then, the CAM device 120 sequentially inputs the memory address of the area where the corresponding information is stored to the context RAM 130 via the address bus 142. Then, in the context RAM 130, the information 131 and 132 stored in the area corresponding to the input memory address is output via the data bus 143. Information output via the data bus 143 is received by the network processor 110 as a search result.

ネットワークプロセッサ110は、検索結果に応じて、入力されたパケットの処理(出力する物理ポートや転送レートなど)を決定する。
次に、CAMデバイス120の内部処理について詳しく説明する。
The network processor 110 determines the processing (input physical port, transfer rate, etc.) of the input packet according to the search result.
Next, the internal processing of the CAM device 120 will be described in detail.

図7は、検索要求解析処理を示す図である。図7の例では、検索要求500の検索キー510には、検索キー511,512としてIPアドレス「Add#1」とポート番号「8080」が設定されている。検索コマンド520には、命令文521として「Search」、適用マスク情報522,523として「MASK#1」、「MASK#2」が設定されている。適用マスク情報522は、検索キー511の適用マスクを示しており、適用マスク情報523は、検索キー512の適用マスクを示している。   FIG. 7 is a diagram showing search request analysis processing. In the example of FIG. 7, the IP address “Add # 1” and the port number “8080” are set as the search keys 511 and 512 in the search key 510 of the search request 500. In the search command 520, “Search” is set as the command statement 521, and “MASK # 1” and “MASK # 2” are set as the application mask information 522 and 523. The application mask information 522 indicates the application mask of the search key 511, and the application mask information 523 indicates the application mask of the search key 512.

このような検索要求500が解析回路124に入力されると、コマンドフォーマット定義情報122に従って検索要求500のデータ構造が解析される。そして、解析回路124により、検索キー511と適用マスク情報522との組が、1つの検索条件として検索条件格納部125に格納される。次に、検索キー512と適用マスク情報523との組が、別の検索条件として検索条件格納部125に格納される。   When such a search request 500 is input to the analysis circuit 124, the data structure of the search request 500 is analyzed according to the command format definition information 122. Then, the analysis circuit 124 stores the set of the search key 511 and the application mask information 522 in the search condition storage unit 125 as one search condition. Next, a set of the search key 512 and the application mask information 523 is stored in the search condition storage unit 125 as another search condition.

検索条件格納部125に検索キーと適用マスク情報とで構成される検索条件が格納されると、格納順に検索条件が検索回路126で取り出される。そして、検索回路126により、取り出された検索条件に従って、データ記憶回路121の検索が行われる。図7の例では、まず、IPアドレス「Add#1」の検索が行われる。   When the search condition composed of the search key and the application mask information is stored in the search condition storage unit 125, the search condition is retrieved by the search circuit 126 in the storage order. The search circuit 126 then searches the data storage circuit 121 according to the retrieved search conditions. In the example of FIG. 7, first, the IP address “Add # 1” is searched.

図8は、IPアドレス検索処理を示す図である。図8に示すように、検索回路126は、検索条件格納部125に先に登録された検索条件を抽出し、検索キー511と適用マスク情報522とを得る。検索回路126は、適用マスク情報522に設定されている「MASK#1」に対応するマスク情報123aをマスク情報群123から抽出し、データ記憶回路121のマスク領域(検索対象外の領域)を決定する。図8の例では、IPアドレスが格納された領域121aが検索対象であり、ポート番号が格納された領域121bが検索対象外である。   FIG. 8 is a diagram showing IP address search processing. As shown in FIG. 8, the search circuit 126 extracts the search condition previously registered in the search condition storage unit 125 and obtains a search key 511 and application mask information 522. The search circuit 126 extracts the mask information 123a corresponding to “MASK # 1” set in the applicable mask information 522 from the mask information group 123, and determines the mask area (non-search target area) of the data storage circuit 121. To do. In the example of FIG. 8, the area 121a in which the IP address is stored is the search target, and the area 121b in which the port number is stored is not the search target.

次に、検索回路126は、検索対象の領域121a内から検索キー511に合致するデータを検索する。そして、検索回路126は、合致したデータが格納されている領域のメモリアドレスを取得し、コンテキストRAM130に対して出力する。すると、コンテキストRAM130から、入力されたメモリアドレスに対応する領域に格納された検索結果候補が取り出され、検索結果としてネットワークプロセッサ110に送られる。これによりLayer3の検索処理が完了する。   Next, the search circuit 126 searches for data matching the search key 511 from the search target area 121a. Then, the search circuit 126 acquires the memory address of the area where the matched data is stored, and outputs it to the context RAM 130. Then, search result candidates stored in the area corresponding to the input memory address are extracted from the context RAM 130 and sent to the network processor 110 as search results. This completes the Layer 3 search process.

IPアドレス「Add#1」に関する一連の検索処理が完了すると、検索回路126は、検索条件格納部125内の次の検索キーと適用マスク情報とに基づく検索を行う。図7の例では、ポート番号「8080」の検索が行われる。   When a series of search processing relating to the IP address “Add # 1” is completed, the search circuit 126 performs a search based on the next search key in the search condition storage unit 125 and the application mask information. In the example of FIG. 7, the port number “8080” is searched.

図9は、ポート番号検索処理を示す図である。図9に示すように、検索回路126は、検索条件格納部125に、その時点で最先に登録された情報を抽出し、検索キー512と適用マスク情報523とを得る。検索回路126は、適用マスク情報523に設定されている「MASK#2」に対応するマスク情報123bをマスク情報群123から抽出し、データ記憶回路121のマスク領域(検索対象外の領域)を決定する。図9の例では、IPアドレスが格納された領域121aが検索対象外であり、ポート番号が格納されたい領域121bが検索対象である。   FIG. 9 is a diagram showing port number search processing. As illustrated in FIG. 9, the search circuit 126 extracts the information registered first in the search condition storage unit 125 at that time, and obtains the search key 512 and the application mask information 523. The search circuit 126 extracts the mask information 123b corresponding to “MASK # 2” set in the applicable mask information 523 from the mask information group 123, and determines the mask area (non-search target area) of the data storage circuit 121. To do. In the example of FIG. 9, the area 121a in which the IP address is stored is not the search target, and the area 121b in which the port number is to be stored is the search target.

次に、検索回路126は、検索対象の領域121b内から検索キー512に合致するデータを検索する。そして、検索回路126は、合致したデータが格納されている領域のメモリアドレスを取得し、コンテキストRAM130に対して出力する。すると、コンテキストRAM130から、メモリアドレスに対応する領域に格納された検索結果候補が取り出され、検索結果としてネットワークプロセッサ110に送られる。これでLayer4の検索処理が完了する。   Next, the search circuit 126 searches for data that matches the search key 512 from the search target area 121b. Then, the search circuit 126 acquires the memory address of the area where the matched data is stored, and outputs it to the context RAM 130. Then, the search result candidate stored in the area corresponding to the memory address is extracted from the context RAM 130 and sent to the network processor 110 as the search result. This completes the Layer 4 search process.

次に、入力されたパケットの内容に応じて、そのパケットの送信者とデータ中継装置の管理者との間の契約内容に応じた付加サービスを提供する場合のネットワークプロセッサの処理手順を説明する。   Next, the processing procedure of the network processor when providing an additional service according to the contents of the contract between the sender of the packet and the manager of the data relay apparatus according to the contents of the input packet will be described.

図10は、第1の実施の形態に係るネットワークプロセッサにおけるサービス内容判定処理を示すシーケンス図である。以下、図10に示す処理をステップ番号に沿って説明する。   FIG. 10 is a sequence diagram illustrating service content determination processing in the network processor according to the first embodiment. In the following, the process illustrated in FIG. 10 will be described in order of step number.

[ステップS1]ネットワークプロセッサ110は、パケットを受け取ると、送信元のIPアドレスやポート番号などの検索キーと、検索キー毎の適用マスク情報とを纏めて1つの検索要求を生成する。   [Step S1] When the network processor 110 receives the packet, the network processor 110 collects the search key such as the IP address and port number of the transmission source and the application mask information for each search key and generates one search request.

[ステップS2]ネットワークプロセッサ110は、生成した検索要求を検索データ入力バス141へ出力する。これにより、CAMデバイス120で検索キーに応じた検索が行われる。   [Step S2] The network processor 110 outputs the generated search request to the search data input bus 141. As a result, the CAM device 120 performs a search according to the search key.

[ステップS3]ネットワークプロセッサ110は、コンテキストRAM130のデータバス143から、IPアドレスを検索キーとしたときの検索結果を受け取る。すると、ネットワークプロセッサ110は、受信した検索結果を処理して、パケットを送信した送信者(契約者)を認識する。   [Step S3] The network processor 110 receives a search result when the IP address is used as a search key from the data bus 143 of the context RAM 130. Then, the network processor 110 processes the received search result and recognizes the sender (contractor) who transmitted the packet.

[ステップS4]ネットワークプロセッサ110は、コンテキストRAM130のデータバス143から、ポート番号を検索キーとしたときの検索結果を受け取る。すると、ネットワークプロセッサ110は、受信した検索結果を処理して、サービスクラスを認識する。   [Step S4] The network processor 110 receives a search result when the port number is used as a search key from the data bus 143 of the context RAM 130. Then, the network processor 110 processes the received search result and recognizes the service class.

このように、ネットワークプロセッサ110からの検索要求を、1つのパケット転送に対して常に1回で済ませることで、検索データ入力バス141を介した検索要求の送信を効率よく行うことができる。しかも、検索要求において、検索キー毎に適用マスクを指定できるため、CAMデバイス内に検索対象領域を限定することができ、検索効率が向上する。   As described above, the search request from the network processor 110 is always completed once for one packet transfer, so that the search request can be efficiently transmitted via the search data input bus 141. Moreover, since an application mask can be specified for each search key in the search request, the search target area can be limited within the CAM device, and search efficiency is improved.

[第2の実施の形態]
第2の実施の形態は、1つの検索要求に基づいて実施された検索結果を纏めたうえで、ネットワークプロセッサに返すようにしたものである。すなわち、第1の実施の形態では、検索要求に複数の検索キーが含まれていた場合、複数回の検索が行われ、その都度、コンテキストRAMから検索結果が出力される。このとき、ネットワークプロセッサでは、1回の検索要求に対して、複数の検索結果を受け取ることとなる。そのため、ネットワークプロセッサ内で、複数の検索結果の関連性を判断する処理が必要となる。一方、第2の実施の形態では、CAMデバイスにおいて複数の検索結果を纏めた後、ネットワークプロセッサに送信する。これにより、ネットワークプロセッサにおける処理が簡略化され、パケット転送処理の高速化が図れる。
[Second Embodiment]
In the second embodiment, the search results executed based on one search request are collected and returned to the network processor. That is, in the first embodiment, when a plurality of search keys are included in the search request, a plurality of searches are performed, and a search result is output from the context RAM each time. At this time, the network processor receives a plurality of search results in response to a single search request. For this reason, processing for determining the relevance of a plurality of search results is required in the network processor. On the other hand, in the second embodiment, a plurality of search results are collected in the CAM device and then transmitted to the network processor. As a result, the processing in the network processor is simplified, and the speed of packet transfer processing can be increased.

図11は、第2の実施の形態に係るデータ中継装置の構成例を示す図である。データ中継装置600は、複数の物理ポート601〜608、ネットワークプロセッサ610、CAMデバイス620、およびコンテキストRAM630を有している。   FIG. 11 is a diagram illustrating a configuration example of a data relay device according to the second embodiment. The data relay apparatus 600 includes a plurality of physical ports 601 to 608, a network processor 610, a CAM device 620, and a context RAM 630.

物理ポート601〜608は、ネットワークプロセッサ610に接続されている。ネットワークプロセッサ610とCAMデバイス620とが入出力バス641により接続されている。CAMデバイス620とコンテキストRAM630とがアドレスバス642とデータバス643とにより接続されている。 The physical ports 601 to 608 are connected to the network processor 610. The network processor 610 and the CAM device 620 are connected by an input / output bus 641. The CAM device 620 and the context RAM 630 are connected by an address bus 642 and a data bus 643.

ここで、ネットワークプロセッサ610は、物理ポートから入力されたパケットに関する経路選択のための検索要求をCAMデバイス620に送信する。この検索要求には、複数の検索キーが含まれるものとする。   Here, the network processor 610 transmits to the CAM device 620 a search request for route selection regarding the packet input from the physical port. This search request includes a plurality of search keys.

CAMデバイス620は、検索キーに応じた検索を行う。CAMデバイス620は、検索キーによる検索の結果得られるメモリアドレスを、アドレスバス642を介してコンテキストRAM630に入力する。すると、コンテキストRAM630からは、入力されたメモリアドレスに応じたデータがデータバス643から出力される。   The CAM device 620 performs a search according to the search key. The CAM device 620 inputs a memory address obtained as a result of the search using the search key to the context RAM 630 via the address bus 642. Then, data corresponding to the input memory address is output from the data bus 643 from the context RAM 630.

複数回行なわれたコンテキストRAM630の出力結果は、CAMデバイス620に戻されて、検索結果毎にレジスタなどに格納さる。そして、検索要求に対応する全ての検索結果がレジスタに格納されると、CAMデバイス620は、複数の検索結果をひとまとまりの検索結果として、ネットワークプロセッサ610に渡す。   The output result of the context RAM 630 performed a plurality of times is returned to the CAM device 620 and stored in a register or the like for each search result. When all the search results corresponding to the search request are stored in the register, the CAM device 620 passes the plurality of search results to the network processor 610 as a group of search results.

このような処理を実現するには、CAMデバイス620内に検索結果を格納するレジスタを設ける必要がある。
図12は、第2の実施の形態におけるCAMデバイスの構成を示す図である。図12に示す様にCAMデバイス620は、データ記憶回路621、コマンドフォーマット定義情報622、マスク情報群623、解析回路624、検索条件格納部625、検索回路626、検索結果格納部627、および出力回路628を有している。ここで、図12に示す各構成要素は、図5に示した第1の実施の形態における同名の要素の機能に加え、以下の機能を有している。
In order to realize such processing, it is necessary to provide a register for storing the search result in the CAM device 620.
FIG. 12 is a diagram illustrating a configuration of a CAM device according to the second embodiment. As shown in FIG. 12, the CAM device 620 includes a data storage circuit 621, command format definition information 622, mask information group 623, analysis circuit 624, search condition storage unit 625, search circuit 626, search result storage unit 627, and output circuit. 628. Here, each component shown in FIG. 12 has the following function in addition to the function of the element of the same name in the first embodiment shown in FIG.

解析回路624は、図5に示した第1の実施の形態における解析回路124と同じ機能を有していると共に、検索要求の識別情報と、その検索要求に含まれる検索キーの数とを検索条件に付加する機能を有している。たとえば、解析回路624は、検索キー、適用マスク情報、入力された各検索要求の識別番号、および検索要求内の検索キーの数を示す情報により検索条件を生成し、検索条件格納部625内のレジスタに格納する。   The analysis circuit 624 has the same function as the analysis circuit 124 in the first embodiment shown in FIG. 5 and searches for the identification information of the search request and the number of search keys included in the search request. It has a function to add to conditions. For example, the analysis circuit 624 generates a search condition based on the search key, application mask information, identification number of each input search request, and information indicating the number of search keys in the search request, and stores the search condition in the search condition storage unit 625. Store in register.

検索条件格納部625内の各レジスタは、検索キーと適用マスク情報とに加え、検索要求の識別情報と検索キーの数とを格納できるだけのデータ容量を有している。
検索回路626は、データ記憶回路621の検索によって得られたメモリアドレスをコンテキストRAM630に送信すると同時に、検索キーに付加されていた検索要求の識別情報と検索キーの数とを、検索結果格納部627内のレジスタに格納する。そのレジスタには、コンテキストRAM630から出力される検索結果も格納される。これにより、コンテキストRAM630から出力される検索結果と、検索要求の識別情報およびその検索要求に含まれる検索キーの数が関連付けられる。
Each register in the search condition storage unit 625 has a data capacity sufficient to store the search request identification information and the number of search keys in addition to the search key and application mask information.
The search circuit 626 transmits the memory address obtained by the search of the data storage circuit 621 to the context RAM 630, and at the same time, the search result storage unit 627 displays the search request identification information added to the search key and the number of search keys. Stored in the register. The search result output from the context RAM 630 is also stored in the register. Thereby, the search result output from the context RAM 630 is associated with the identification information of the search request and the number of search keys included in the search request.

検索結果格納部627は、識別情報、検索キーの数、およびコンテキストRAM630から出力された検索結果を格納する複数のレジスタで構成される。
出力回路628は、検索結果格納部627に格納された情報を参照し、検索要求に対応する検索結果が、その検索要求に含まれる検索キーの数だけ格納されたら、それらの検索結果を纏めて、ネットワークプロセッサ610に渡す。
The search result storage unit 627 includes a plurality of registers that store identification information, the number of search keys, and search results output from the context RAM 630.
The output circuit 628 refers to the information stored in the search result storage unit 627, and when the search results corresponding to the search request are stored by the number of search keys included in the search request, the search results are collected. To the network processor 610.

図13は、第2の実施の形態における検索処理を示す図である。たとえば、1回目の検索でエントリ651がヒットし、そのメモリアドレスがアドレスバス642を介してコンテキストRAM630に入力される。すると、入力されたメモリアドレスに対応する情報652が検索結果として、データバス643を介してCAMデバイス620に渡される。CAMデバイス620では、検索結果として送られた情報652が一旦検索結果格納部627内のレジスタに格納される。   FIG. 13 is a diagram illustrating search processing according to the second embodiment. For example, the entry 651 is hit in the first search, and the memory address is input to the context RAM 630 via the address bus 642. Then, information 652 corresponding to the input memory address is passed to the CAM device 620 via the data bus 643 as a search result. In the CAM device 620, information 652 sent as a search result is temporarily stored in a register in the search result storage unit 627.

続く2回目の検索でエントリ661がヒットし、そのメモリアドレスがアドレスバス642を介してコンテキストRAM630に入力される。すると、入力されたメモリアドレスに対応する情報662が検索結果として、データバス643を介してCAMデバイス620に渡される。CAMデバイス620では、検索結果として送られた情報662が一旦検索結果格納部627内のレジスタに格納される。   In the subsequent second search, the entry 661 is hit, and the memory address is input to the context RAM 630 via the address bus 642. Then, information 662 corresponding to the input memory address is passed to the CAM device 620 via the data bus 643 as a search result. In the CAM device 620, information 662 sent as a search result is temporarily stored in a register in the search result storage unit 627.

検索要求に含まれる検索キーが2つだけであれば、その検索要求に対応する検索結果の数が2になったことにより、それらの検索結果が統合され、入出力バス641を介して、ネットワークプロセッサ610へ送られる。   If there are only two search keys included in the search request, the number of search results corresponding to the search request becomes two, and these search results are integrated, and the network is connected via the input / output bus 641. Sent to the processor 610.

次に、入力されたパケットの内容に応じて、そのパケットの送信者とデータ中継装置の管理者との間の契約内容に応じた付加サービスを提供する場合のネットワークプロセッサの処理手順を説明する。   Next, the processing procedure of the network processor when providing an additional service according to the contents of the contract between the sender of the packet and the manager of the data relay apparatus according to the contents of the input packet will be described.

図14は、第2の実施の形態に係るネットワークプロセッサにおけるサービス内容判定処理を示すシーケンス図である。以下、図14に示す処理をステップ番号に沿って説明する。   FIG. 14 is a sequence diagram illustrating service content determination processing in the network processor according to the second embodiment. In the following, the process illustrated in FIG. 14 will be described in order of step number.

[ステップS11]ネットワークプロセッサ610は、パケットを受け取ると、送信元のIPアドレスやポート番号などの検索キーと、検索キー毎の適用マスク情報とを纏めて1つの検索要求を生成する。   [Step S11] Upon receiving the packet, the network processor 610 generates a single search request by combining the search key such as the IP address and port number of the transmission source and the application mask information for each search key.

[ステップS12]ネットワークプロセッサ610は、生成した検索要求を入出力バス641へ出力する。これにより、CAMデバイス620で検索キーに応じた検索が行われる。そして、CAMデバイス620において、複数の検索結果が纏められる。   [Step S12] The network processor 610 outputs the generated search request to the input / output bus 641. Thereby, the CAM device 620 performs a search according to the search key. In the CAM device 620, a plurality of search results are collected.

[ステップS13]ネットワークプロセッサ610は、入出力バス641から、IPアドレスを検索キーとしたときの検索結果と、ポート番号を検索キーとしたときの検索結果とを受け取る。すると、ネットワークプロセッサ610は、受信した検索結果を処理して、パケットを送信した送信者(契約者)とサービスクラスとを認識する。   [Step S13] The network processor 610 receives from the input / output bus 641 a search result when the IP address is used as a search key and a search result when the port number is used as a search key. Then, the network processor 610 processes the received search result and recognizes the sender (contractor) who transmitted the packet and the service class.

このようにして、ネットワークプロセッサからの1回の検索要求に対して、検索結果を1回で返すことができる。これにより、ネットワークプロセッサ610において検索結果を纏める処理が不要となる。   In this way, a search result can be returned once in response to a single search request from the network processor. This eliminates the need for the network processor 610 to collect search results.

すなわち、一般にCAMデバイスでは検索ビット幅の大小によりエントリ検索に要する時間が異なる場合がある。そのため、コンテキストRAMへのアドレス発行タイミングにずれが生じる場合がある。第2の実施の形態によれば、ネットワークプロセッサは複数の検索結果を纏めて受け取ることができ、CAMデバイスでの検索毎の検索に要する時間の差、すなわちコンテキストRAMからの結果出力のタイミングに留意した検索結果の関連性判断処理が不要となる。   That is, in general, in the CAM device, the time required for entry search may vary depending on the size of the search bit width. Therefore, there may be a difference in the timing of issuing addresses to the context RAM. According to the second embodiment, the network processor can collectively receive a plurality of search results, and pay attention to the difference in time required for each search by the CAM device, that is, the timing of the result output from the context RAM. This eliminates the need for the relevance determination process for the search results.

[第3の実施の形態]
第3の実施の形態は、複数のネットワークプロセッサを有するデータ中継装置に本発明を適用したものである。
[Third Embodiment]
In the third embodiment, the present invention is applied to a data relay apparatus having a plurality of network processors.

図15は、第3の実施の形態におけるデータ中継装置の構成例を示す図である。図15に示すように、第3の実施の形態に係るデータ中継装置は、複数のネットワークプロセッサ701,702,703、CAMデバイス704およびコンテキストRAM705を有している。   FIG. 15 is a diagram illustrating a configuration example of a data relay device according to the third embodiment. As shown in FIG. 15, the data relay apparatus according to the third embodiment includes a plurality of network processors 701, 702, 703, a CAM device 704, and a context RAM 705.

ネットワークプロセッサ701は、出力インタフェース711を介してCAMバス721に接続されている。ネットワークプロセッサ702は、出力インタフェース712を介してCAMバス721に接続されている。ネットワークプロセッサ703は、出力インタフェース713を介してCAMバス721に接続されている。CAMバス721は、入力インタフェース722を介してCAMデバイス704に接続されている。CAMバス721は、複数のデータ転送要求の調停機能(ネットワークプロセッサがバスを占有できるバスマスタになるための処理)を有している。   The network processor 701 is connected to the CAM bus 721 via the output interface 711. The network processor 702 is connected to the CAM bus 721 via the output interface 712. The network processor 703 is connected to the CAM bus 721 via the output interface 713. The CAM bus 721 is connected to the CAM device 704 via the input interface 722. The CAM bus 721 has a plurality of data transfer request arbitration functions (processing for the network processor to become a bus master that can occupy the bus).

CAMデバイス704は、出力インタフェース(コンテキストRAM705のアドレスバス)723を介してコンテキストRAM705に接続されている。コンテキストRAM705は、出力インタフェース(コンテキストRAM705のデータバス)724を介して、コンテキストRAMバス725に接続されている。コンテキストRAMバス725は、入力インタフェース731を介してネットワークプロセッサ701に接続されている。コンテキストRAMバス725は、入力インタフェース732を介してネットワークプロセッサ702に接続されている。コンテキストRAMバス725は、入力インタフェース733を介してネットワークプロセッサ703に接続されている。   The CAM device 704 is connected to the context RAM 705 via an output interface (address bus of the context RAM 705). The context RAM 705 is connected to the context RAM bus 725 via an output interface (data bus of the context RAM 705). The context RAM bus 725 is connected to the network processor 701 via the input interface 731. The context RAM bus 725 is connected to the network processor 702 via the input interface 732. The context RAM bus 725 is connected to the network processor 703 via the input interface 733.

各ネットワークプロセッサ701,702,703は、それぞれCAMデバイス704への出力インタフェース711,712,713から検索キー、適用マスク情報、検索コマンドを含む検索要求を発行する。CAMバス721で調停されてCAMデバイス704へこの検索要求が入力される。すると、CAMデバイス704が検索を行う。検索処理においてヒットまたはミスヒットした情報が、読み出しアドレスとしてコンテキストRAM705に入力される。ここで検索が複数回に渡る場合もある。   Each network processor 701, 702, 703 issues a search request including a search key, application mask information, and a search command from the output interfaces 711, 712, 713 to the CAM device 704, respectively. The search request is input to the CAM device 704 after arbitration by the CAM bus 721. Then, the CAM device 704 performs a search. Information hit or missed in the search process is input to the context RAM 705 as a read address. Here, the search may be performed multiple times.

コンテキストRAM705で該当するアドレスのデータすなわち検索結果がコンテキストRAM705の出力インタフェース724から出力され、検索要求を発行したネットワークプロセッサに渡される。   The data of the corresponding address in the context RAM 705, that is, the search result is output from the output interface 724 of the context RAM 705 and is passed to the network processor that issued the search request.

このように、複数のネットワークプロセッサ701〜703を有するデータ中継装置に本発明を適用すれば、ネットワークプロセッサ701〜703間の検索要求が転送するフレームに対して1回しか行われないため、CAMバス721における調停処理負荷が軽減される。その結果、スムーズな検索要求の受け渡しが可能となる。   As described above, when the present invention is applied to a data relay apparatus having a plurality of network processors 701 to 703, a search request between the network processors 701 to 703 is performed only once for a frame to be transferred. The arbitration processing load at 721 is reduced. As a result, a smooth search request can be delivered.

[第4の実施の形態]
第4の実施の形態は、複数のネットワークプロセッサを有するデータ中継装置において、検索結果をとりまとめる機能をCAMに搭載したものである。
[Fourth Embodiment]
In the fourth embodiment, in a data relay apparatus having a plurality of network processors, a function for collecting search results is installed in a CAM.

図16は、第4の実施の形態におけるデータ中継装置の構成例を示す図である。図16に示すように、第4の実施の形態に係るデータ中継装置は、複数のネットワークプロセッサ801,802,803、CAMデバイス804およびコンテキストRAM805を有している。   FIG. 16 is a diagram illustrating a configuration example of a data relay device according to the fourth embodiment. As shown in FIG. 16, the data relay apparatus according to the fourth embodiment includes a plurality of network processors 801, 802, 803, a CAM device 804, and a context RAM 805.

ネットワークプロセッサ801は、入出力インタフェース811を介してCAMバス821に接続されている。ネットワークプロセッサ802は、入出力インタフェース812を介してCAMバス821に接続されている。ネットワークプロセッサ803は、入出力インタフェース813を介してCAMバス821に接続されている。CAMバス821は、入出力インタフェース822を介してCAMデバイス804に接続されている。CAMバス821は、複数のデータ転送要求の調停機能(ネットワークプロセッサがバスを占有できるバスマスタになるための処理)を有している。CAMデバイス804は、コンテキストRAM805との入出力インタフェース823(アドレスバスとデータバスとを含む)を介して、コンテキストRAM805に接続されている。   The network processor 801 is connected to the CAM bus 821 via the input / output interface 811. The network processor 802 is connected to the CAM bus 821 via the input / output interface 812. The network processor 803 is connected to the CAM bus 821 via the input / output interface 813. The CAM bus 821 is connected to the CAM device 804 via the input / output interface 822. The CAM bus 821 has a plurality of data transfer request arbitration functions (processing for the network processor to become a bus master that can occupy the bus). The CAM device 804 is connected to the context RAM 805 via an input / output interface 823 (including an address bus and a data bus) with the context RAM 805.

なお、CAMデバイス804は、図12に示した第2の実施の形態に係るCAMデバイス620と同様の内部構成である。
このような構成のデータ中継装置において、各ネットワークプロセッサ801,802,803は、それぞれの入出力インタフェース811,812,813から検索キー、マスク情報、検索コマンドを含む検索要求を発行する。検索要求はCAMバス821で調停されて、入出力インタフェース822経由でCAMデバイス804に渡される。CAMデバイス804は、検索要求に応じて検索を行う。そして、CAMデバイス804の検索処理においてヒットまたはミスヒットした情報がコンテキストRAM805へのアドレスとして、入出力インタフェース823を介してコンテキストRAM805へ入力される。すると、コンテキストRAM805から該当するアドレスのデータ、すなわち検索結果が入出力インタフェース823を介してCAMデバイス804へ出力される。
The CAM device 804 has the same internal configuration as the CAM device 620 according to the second embodiment shown in FIG.
In the data relay apparatus having such a configuration, each of the network processors 801, 802, and 803 issues a search request including a search key, mask information, and a search command from each input / output interface 811, 812, and 813. The search request is arbitrated by the CAM bus 821 and passed to the CAM device 804 via the input / output interface 822. The CAM device 804 performs a search in response to the search request. Information hit or missed in the search processing of the CAM device 804 is input to the context RAM 805 via the input / output interface 823 as an address to the context RAM 805. Then, the data at the corresponding address, that is, the search result is output from the context RAM 805 to the CAM device 804 via the input / output interface 823.

CAMデバイス804は、1つの検索要求に複数の検索キーが含まれていた場合、各検索キーに応じた検索結果が得られるまで、取得した検索結果を保持する。そして、CAMデバイス804は、同一検索要求に基づく全ての検索結果が揃うと、各検索結果を纏めて、検索要求を発行したネットワークプロセッサに返す。   When a plurality of search keys are included in one search request, the CAM device 804 holds the acquired search results until a search result corresponding to each search key is obtained. Then, when all the search results based on the same search request are obtained, the CAM device 804 collects each search result and returns it to the network processor that issued the search request.

なお、上記の各実施の形態では、データ中継装置内にCAMデバイスやコンテキストRAMをそれぞれ1つだけ示しているが、CAMデバイスやコンテキストRAMを、それぞれ1チップに限定しているものではない。すなわち、メモリ空間が必要な場合、CAMデバイスやコンテキストRAMを、それぞれ複数チップで構成することもできる。ただし、個々のチップが個別の処理を行っているわけではなく、複数のチップが一体となって、上記実施の形態のCAMデバイスやコンテキストRAMの処理を実現する。   In each of the above embodiments, only one CAM device and one context RAM are shown in the data relay apparatus, but each CAM device and context RAM is not limited to one chip. That is, when a memory space is required, the CAM device and the context RAM can be configured by a plurality of chips, respectively. However, each chip does not perform individual processing, and a plurality of chips are integrated to realize the processing of the CAM device and context RAM of the above embodiment.

以上説明したように本発明では、複数の検索キーと適用マスク情報とを1つの検索要求で出力し、連想メモリデバイスにおいて検索要求を解析し、検索キーと適用マスク情報とからなる検索条件を生成するようにした。そのため、1つのパケットの転送に付き連想メモリデバイスに対する複数回の検索が必要な場合であっても、検索要求の転送が1回ですむ。その結果、検索キーの受け渡しが効率よく行われ、検索処理の効率化が図れる。   As described above, in the present invention, a plurality of search keys and application mask information are output in one search request, the search request is analyzed in the associative memory device, and a search condition including the search key and the application mask information is generated. I tried to do it. Therefore, even if it is necessary to search the associative memory device a plurality of times for one packet transfer, it is only necessary to transfer the search request once. As a result, the search key is efficiently transferred, and the search process can be made more efficient.

上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。   The above merely illustrates the principle of the present invention. In addition, many modifications and changes can be made by those skilled in the art, and the present invention is not limited to the precise configuration and application shown and described above, and all corresponding modifications and equivalents may be And the equivalents thereof are considered to be within the scope of the invention.

実施の形態に適用される発明の概念図である。It is a conceptual diagram of the invention applied to embodiment. 第1の実施の形態を適用するネットワークシステムの構成例を示す図である。It is a figure which shows the structural example of the network system to which 1st Embodiment is applied. データ中継装置の内部構成を示すブロック図である。It is a block diagram which shows the internal structure of a data relay apparatus. 検索要求のデータ構造例を示す図である。It is a figure which shows the example of a data structure of a search request. CAMデバイスの内部構成を示すブロック図である。It is a block diagram which shows the internal structure of a CAM device. 検索処理の概略を示す図である。It is a figure which shows the outline of a search process. 検索要求解析処理を示す図である。It is a figure which shows a search request analysis process. IPアドレス検索処理を示す図である。It is a figure which shows an IP address search process. ポート番号検索処理を示す図である。It is a figure which shows a port number search process. 第1の実施の形態に係るネットワークプロセッサにおけるサービス内容判定処理を示すシーケンス図である。It is a sequence diagram which shows the service content determination process in the network processor which concerns on 1st Embodiment. 第2の実施の形態に係るデータ中継装置の構成例を示す図である。It is a figure which shows the structural example of the data relay apparatus which concerns on 2nd Embodiment. 第2の実施の形態におけるCAMデバイスの構成を示す図である。It is a figure which shows the structure of the CAM device in 2nd Embodiment. 第2の実施の形態における検索処理を示す図である。It is a figure which shows the search process in 2nd Embodiment. 第2の実施の形態に係るネットワークプロセッサにおけるサービス内容判定処理を示すシーケンス図である。It is a sequence diagram which shows the service content determination process in the network processor which concerns on 2nd Embodiment. 第3の実施の形態におけるデータ中継装置の構成例を示す図である。It is a figure which shows the structural example of the data relay apparatus in 3rd Embodiment. 第4の実施の形態におけるデータ中継装置の構成例を示す図である。It is a figure which shows the structural example of the data relay apparatus in 4th Embodiment. 複数回のCAMデバイスアクセスを伴う従来の経路探索処理を示す図である。It is a figure which shows the conventional route search process with multiple CAM device access.

符号の説明Explanation of symbols

1 ネットワークプロセッサ
2 連想メモリデバイス
3 メモリデバイス
10 検索要求
21 メモリアドレス
22 検索結果
100,200 データ中継装置
110 ネットワークプロセッサ
120 CAMデバイス
121 データ記憶回路
122 コマンドフォーマット定義情報
123 マスク情報群
124 解析回路
125 検索条件格納部
126 検索回路
130 コンテキストRAM
311〜319 端末装置
DESCRIPTION OF SYMBOLS 1 Network processor 2 Associative memory device 3 Memory device 10 Search request 21 Memory address 22 Search result 100,200 Data relay apparatus 110 Network processor 120 CAM device 121 Data storage circuit 122 Command format definition information 123 Mask information group 124 Analysis circuit 125 Search condition Storage unit 126 Search circuit 130 Context RAM
311 to 319 terminal device

Claims (10)

伝送されるパケットを中継するデータ中継装置において、
前記パケットが入力されると、前記パケット内の複数の要素を検索キーとし、複数の前記検索キーと、前記検索キーそれぞれによる検索の対象範囲を示す複数の適用マスク情報とを含めた検索要求を出力するネットワークプロセッサと、
複数の検索対象情報を記憶していると共に、複数の情報を格納順序を保持して記憶するレジスタ群を有しており、前記ネットワークプロセッサから出力された前記検索要求を受け取り、前記検索要求の構造を解析して前記検索キーと前記適用マスク情報とからなる複数の検索条件を生成して前記レジスタ群に格納し先に格納された前記検索条件から順に抽出し、抽出した前記検索条件に応じて前記検索対象情報の検索を行い、検出された前記検索対象情報に一意に関連付けられたメモリアドレスを出力する連想メモリデバイスと、
複数の検索結果候補を記憶しており、前記連想メモリデバイスから出力された前記メモリアドレスに対応付けて格納されている前記検索結果候補を検索結果として出力するメモリデバイスと、
を有することを特徴とするデータ中継装置。
In a data relay device that relays transmitted packets,
When the packet is input, a search request including a plurality of elements in the packet as a search key, the plurality of search keys, and a plurality of application mask information indicating a search target range by each of the search keys. An output network processor;
A plurality of pieces of search target information, a register group for storing a plurality of pieces of information in a storage order, and receiving the search request output from the network processor; To generate a plurality of search conditions consisting of the search key and the application mask information , store them in the register group , extract sequentially from the previously stored search conditions, and according to the extracted search conditions An associative memory device that searches the search target information and outputs a memory address uniquely associated with the detected search target information;
A plurality of search result candidates, and a memory device that outputs the search result candidates stored in association with the memory address output from the associative memory device, as a search result;
A data relay device comprising:
前記メモリデバイスは、前記メモリアドレスに対応するデータ格納領域に格納されている前記検索結果候補を、検索結果として前記ネットワークプロセッサに対して出力することを特徴とする請求項1記載のデータ中継装置。   2. The data relay device according to claim 1, wherein the memory device outputs the search result candidate stored in a data storage area corresponding to the memory address to the network processor as a search result. 前記メモリデバイスは、前記メモリアドレスに対応するデータ格納領域に格納されている前記検索結果候補を、検索結果として前記連想メモリデバイスに対して出力することを特徴とする請求項1記載のデータ中継装置。   2. The data relay device according to claim 1, wherein the memory device outputs the search result candidate stored in a data storage area corresponding to the memory address to the associative memory device as a search result. . 前記連想メモリデバイスは、出力した前記メモリアドレスに応じて返される前記検索結果をバッファに格納し、前記検索要求に含まれる前記検索キー毎の検索結果を1つに纏めて前記ネットワークプロセッサに対して出力することを特徴とする請求項3記載のデータ中継装置。   The associative memory device stores the search result returned in accordance with the output memory address in a buffer, and combines the search results for each search key included in the search request into the network processor. 4. The data relay apparatus according to claim 3, wherein the data relay apparatus outputs the data. 前記ネットワークプロセッサが複数設けられており、複数の前記ネットワークプロセッサから出力される前記検索要求は、調停が行われる共通のバスを経由して出力されることを特徴とすることを特徴とする請求項1記載のデータ中継装置。   A plurality of the network processors are provided, and the search requests output from the plurality of network processors are output via a common bus in which arbitration is performed. The data relay device according to 1. 前記連想メモリデバイスは、前記適用マスク情報で特定される記憶領域を検索対象外として、検索対象となる記憶領域の中から、前記検索キーに合致する前記検索対象情報を検索することを特徴とする請求項1記載のデータ中継装置。   The associative memory device is configured to search for the search target information that matches the search key from the storage area to be searched, with the storage area specified by the application mask information being excluded from the search target. The data relay device according to claim 1. 前記連想メモリデバイスは、検索対象外の記憶領域を示す複数のマスク情報を予め記憶しており、前記適用マスク情報において指定された前記マスク情報を適用して前記適用マスク情報に対応する前記検索キーの検索を行うことを特徴とする請求項6記載のデータ中継装置。   The associative memory device stores in advance a plurality of mask information indicating storage areas not to be searched, and applies the mask information specified in the application mask information to correspond to the search mask information. The data relay apparatus according to claim 6, wherein the data is searched. 前記連想メモリデバイスは、前記検索要求のデータ構造を定義した定義情報を有しており、前記定義情報に従って前記検索要求を解析することを特徴とする請求項1記載のデータ中継装置。2. The data relay apparatus according to claim 1, wherein the associative memory device has definition information defining a data structure of the search request, and analyzes the search request according to the definition information. 記憶した検索対象情報の検索機能を有する連想メモリデバイスにおいて、In an associative memory device having a search function of stored search target information,
複数の前記検索対象情報を記憶するデータ記憶回路と、  A data storage circuit for storing a plurality of search target information;
複数の情報を格納順序を保持して記憶するレジスタ群と、  A group of registers for storing a plurality of pieces of information while maintaining the storage order;
複数の検索キーと前記検索キーそれぞれによる検索の対象範囲を示す複数の適用マスク情報とを含めた検索要求が入力されると、前記検索要求の構造を解析して前記検索キーと前記適用マスク情報とからなる複数の検索条件を生成して前記レジスタ群に格納する解析回路と、  When a search request including a plurality of search keys and a plurality of application mask information indicating a search target range by each of the search keys is input, the search key and the application mask information are analyzed by analyzing a structure of the search request An analysis circuit that generates a plurality of search conditions and stores them in the register group;
前記レジスタ群に格納された順に前記検索条件を抽出し、抽出した前記検索条件に対応する前記検索対象情報を前記データ記憶回路内から検索し、検出された前記検索対象情報に一意に関連付けられたメモリアドレスを出力する検索回路と、  The search conditions are extracted in the order stored in the register group, the search target information corresponding to the extracted search conditions is searched from within the data storage circuit, and is uniquely associated with the detected search target information A search circuit for outputting a memory address;
を有することを特徴とする連想メモリデバイス。  An associative memory device.
パケットに関連する情報を連想メモリデバイスを利用して検索するための連想メモリデバイス利用情報検索方法において、In an associative memory device usage information retrieval method for retrieving information related to a packet using an associative memory device,
ネットワークプロセッサにおいて、入力された前記パケット内の複数の要素を検索キーとし、複数の前記検索キーと、前記検索キーそれぞれによる検索の対象範囲を示す複数の適用マスク情報とを含めた検索要求を出力し、  In the network processor, a plurality of elements in the input packet are used as search keys, and a search request including a plurality of search keys and a plurality of application mask information indicating a search target range by each of the search keys is output. And
前記検索要求の構造を解析して前記検索キーと前記適用マスク情報とからなる複数の検索条件を生成し、生成した前記検索条件を、前記連想メモリデバイス内に設けられた格納順序を保持可能なレジスタ群に格納し、  The search request structure is analyzed to generate a plurality of search conditions including the search key and the application mask information, and the generated search conditions can be stored in the storage order provided in the associative memory device. Store in registers,
前記レジスタ群に格納された順に前記検索条件を抽出し、前記連想メモリデバイスにおいて予め記憶している複数の検索対象情報から、抽出した前記検索条件に対応する前記検索対象情報を検索し、前記検索条件に対応する前記検索対象情報に一意に関連付けられたメモリアドレスを出力し、  The search conditions are extracted in the order stored in the register group, the search target information corresponding to the extracted search conditions is searched from a plurality of search target information stored in advance in the associative memory device, and the search Output a memory address uniquely associated with the search target information corresponding to the condition,
複数の検索結果候補が格納されたメモリデバイスから、前記メモリアドレスに対応付けて格納されている前記検索結果候補を検索結果として出力する、  From the memory device storing a plurality of search result candidates, the search result candidates stored in association with the memory address are output as search results.
ことを特徴とする連想メモリデバイス利用情報検索方法。  An associative memory device utilization information retrieval method characterized by the above.
JP2004558387A 2002-12-12 2002-12-12 Data relay apparatus, associative memory device, and associative memory device utilization information retrieval method Expired - Fee Related JP3837670B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/013042 WO2004054186A1 (en) 2002-12-12 2002-12-12 Data relay apparatus, associative memory device, and associative memory device utilization information search method

Publications (2)

Publication Number Publication Date
JPWO2004054186A1 JPWO2004054186A1 (en) 2006-04-13
JP3837670B2 true JP3837670B2 (en) 2006-10-25

Family

ID=32500630

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004558387A Expired - Fee Related JP3837670B2 (en) 2002-12-12 2002-12-12 Data relay apparatus, associative memory device, and associative memory device utilization information retrieval method

Country Status (2)

Country Link
JP (1) JP3837670B2 (en)
WO (1) WO2004054186A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070011458A (en) 2004-04-08 2007-01-24 탈자진 인코포레이티드 Benzotriazine inhibitors of kinases
MX2007002208A (en) 2004-08-25 2007-05-08 Targegen Inc Heterocyclic compounds and methods of use.
US8133900B2 (en) 2005-11-01 2012-03-13 Targegen, Inc. Use of bi-aryl meta-pyrimidine inhibitors of kinases
RU2597364C2 (en) 2005-11-01 2016-09-10 Таргеджен, Инк. Bi-aryl-meta-pyrimidine kinase inhibitors
US7504513B2 (en) 2006-02-27 2009-03-17 Hoffman-La Roche Inc. Thiazolyl-benzimidazoles
WO2012060847A1 (en) 2010-11-07 2012-05-10 Targegen, Inc. Compositions and methods for treating myelofibrosis
JP6883470B2 (en) * 2017-05-10 2021-06-09 アラクサラネットワークス株式会社 Packet relay device and packet relay system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09180468A (en) * 1995-12-22 1997-07-11 Asahi Kasei Micro Syst Kk Associative storage
US5956336A (en) * 1996-09-27 1999-09-21 Motorola, Inc. Apparatus and method for concurrent search content addressable memory circuit
JP3140695B2 (en) * 1996-10-17 2001-03-05 川崎製鉄株式会社 Associative memory device
JP3123462B2 (en) * 1997-05-21 2001-01-09 日本電気株式会社 Connection number conversion device and method, and recording medium storing program for executing the method
JP3381687B2 (en) * 1999-11-25 2003-03-04 日本電気株式会社 Flow identification device, flow processing device, flow identification method, and flow processing method
JP3601445B2 (en) * 2000-12-06 2004-12-15 日本電気株式会社 Packet transfer apparatus, transfer information management method used therefor, and transfer information search method thereof
JP2002176437A (en) * 2000-12-07 2002-06-21 Fujitsu Ltd Packet transfer control method

Also Published As

Publication number Publication date
JPWO2004054186A1 (en) 2006-04-13
WO2004054186A1 (en) 2004-06-24

Similar Documents

Publication Publication Date Title
US7069268B1 (en) System and method for identifying data using parallel hashing
US6854117B1 (en) Parallel network processor array
US7237058B2 (en) Input data selection for content addressable memory
US7644080B2 (en) Method and apparatus for managing multiple data flows in a content search system
US7529746B2 (en) Search circuit having individually selectable search engines
US6430190B1 (en) Method and apparatus for message routing, including a content addressable memory
US8555374B2 (en) High performance packet processing using a general purpose processor
JP2001509978A (en) Fast Variable Length Best Match Lookup in Switching Devices
US20080071765A1 (en) Regular expression searching of packet contents using dedicated search circuits
CN100525240C (en) Data packet communication device
JP2001251351A (en) Input packet processing system for packet switch
JP2006180162A (en) Device and method for switching packet
TW200301429A (en) A method of improving the lookup performance of tree-type knowledge base searches
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
US7937495B2 (en) System and method for modifying data transferred from a source to a destination
JP2002176431A (en) Packet transfer unit and transfer information management method used for it, and its transfer information retrieval method
US20140358886A1 (en) Internal search engines architecture
JP3837670B2 (en) Data relay apparatus, associative memory device, and associative memory device utilization information retrieval method
US7249216B2 (en) Data relay apparatus, content addressable/associative memory device, and content addressable/associative memory device use information search method
US7653070B2 (en) Method and system for supporting efficient and cache-friendly TCP session lookup operations based on canonicalization tags
US20050262294A1 (en) Method for policy matching using a hybrid TCAM and memory-based scheme
CN100401723C (en) Fast indexing method
JP3228249B2 (en) Router device
WO2005067255A1 (en) Method, apparatus, system, and article of manufacture for grouping packets
US20030204482A1 (en) Data search system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060411

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060609

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060629

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060719

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

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100811

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees