WO2004054186A1 - Data relay apparatus, associative memory device, and associative memory device utilization information search method - Google Patents

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

Info

Publication number
WO2004054186A1
WO2004054186A1 PCT/JP2002/013042 JP0213042W WO2004054186A1 WO 2004054186 A1 WO2004054186 A1 WO 2004054186A1 JP 0213042 W JP0213042 W JP 0213042W WO 2004054186 A1 WO2004054186 A1 WO 2004054186A1
Authority
WO
WIPO (PCT)
Prior art keywords
search
memory device
information
associative memory
data
Prior art date
Application number
PCT/JP2002/013042
Other languages
French (fr)
Japanese (ja)
Inventor
Yuichi Uzawa
Yasuhiro Ooba
Original Assignee
Fujitsu Limited
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 Limited filed Critical Fujitsu Limited
Priority to PCT/JP2002/013042 priority Critical patent/WO2004054186A1/en
Priority to JP2004558387A priority patent/JP3837670B2/en
Publication of WO2004054186A1 publication Critical patent/WO2004054186A1/en
Priority to US11/055,330 priority patent/US7249216B2/en

Links

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

Definitions

  • the present invention relates to a data relay device for relaying a packet to be transmitted, and a data relay device for transmitting a
  • the present invention relates to an associative memory device use information retrieval method for retrieving information related to an associative memory device and a packet to be used by using an associative memory device.
  • the method relates to a method of retrieving information on disk usage.
  • routing processing is performed by a destination of a packet flowing in the network.
  • This route selection may be realized by software using a general-purpose computer, or may be realized by dedicated hardware.
  • a dedicated processor for route selection called a network processor is installed in the data relay device with a dedicated hardware configuration.
  • the network processor determines the physical port to be output by referring to various information such as the IP (Internet Protocol) address of the bucket that has been input.
  • IP Internet Protocol
  • a network processor has a memory for storing what IP address of a terminal device is connected to its physical port.
  • the destination physical port can be specified by referring to the contents of the memory.
  • the route selection always involves memory access in the data relay device. Therefore, in order to select a path at high speed, it is desired to improve the efficiency of memory access.
  • 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 a memory control circuit) between the CPU and the memory. . For example, see JP-A-8-87441 and JP-A-2000-99394.
  • notification 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 change.
  • the CAM device stores information such as an IP address.
  • information such as an IP address is input, the CAM device outputs a memory address of a storage area in which the information is stored.
  • CAM devices are used not only for data relay devices but also for speeding up memory in various systems. See JP-A-2000-231785 (paragraph “002 3”).
  • the memory access in the network processor may be performed a plurality of times.
  • the IP address source address: SA and destination address: DA
  • the port numbers source port number and destination port number
  • T.CP transmission Control Protocol / UDP (User Datagram Protocol)
  • UDP User Datagram Protocol
  • FIG. 17 is a diagram showing a conventional route search process involving multiple CAM device accesses.
  • the data center device is provided with a network processor 911, a CAM device 912, and a context RAM (Random Access Memory) 913.
  • the storage area of the CAM device 912 is provided with an IP address storage area and a port number storage area.
  • IP address storage area is provided with an IP address storage area and a port number storage area.
  • Step S101 When the bucket information is input to the data relay device, the search key 921, the mask setting command 922, and the mask setting command 922 from the network processor 911 to the CAM device 912 are transmitted. A search command 9 23 is sent.
  • the search key 9 21 is an IP address.
  • the mask setting command 922 is a command for specifying mask processing (other than the search target) other than the storage area of the IP address in the CAM device 912.
  • the CAM device 912 masks the range specified by the mask setting command 922. Masked areas are excluded from the search. Then, the CAM device 912 searches for data matching 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, the data 924 is output from the area corresponding to the input memory address from the context RAM 913, and is input to the network processor 911. This is a Layer 3 (network layer) search process.
  • 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 application on the destination side of the packet to be transferred.
  • the mask setting command 932 is a command for designating a mask process other than the storage area of the port number in the CAM device 912.
  • the CAM device 912 masks the area specified by the mask setting command 932. Then, the CAM device 912 searches for data matching the search key 931, and outputs the memory address of the area where the data is stored. The output memory address is input as a read address to the context RAM 913. Then, data 934 is output from the area corresponding to the input memory address from the context RAM 913, and is input to the network processor 911.
  • This is a Layer 4 (transport layer) search process. Performing the search twice in this way is to provide services such as QoS (Quality-of-Service).
  • SA Layer 3 IP addresses
  • DA Layer 3 IP addresses
  • the present invention has been made in view of such a point, and an object of the present invention is to provide a data storage device capable of efficiently inputting a search request command to a content addressable memory (CAM) device.
  • CAM content addressable memory
  • 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 utilization information search method capable of efficiently inputting a search request command to an associative memory device.
  • the data relay device of the present invention relays a packet to be transmitted, and includes a network processor 1, an associative memory device 2, and a memory device 3. Each element has the following functions.
  • the network processor 1 uses a plurality of elements in the packet as search keys 11 and 12 and searches using the plurality of search keys 11 and 12 and the search keys 11 and 12 respectively.
  • a search request 10 including a plurality of applied mask information 13 and 14 indicating the target range of is output.
  • the associative memory device 2 stores a plurality of search target information, receives the search request 10 output from the network processor 1, and By analyzing the structure of the request 10, a plurality of search conditions including search keys 11, 12, applied mask information 13, 14 and power are generated, and the search target information is searched according to the search conditions. Outputs the memory address 21 uniquely associated with the detected search target information.
  • the memory device 3 stores a plurality of search result candidates, and outputs a search result candidate stored in association with the memory address 21 output from the associative memory device 2 as a search result 22.
  • a search request 10 is generated by the network processor 1 and passed to the associative memory device 2. Then, the structure of the search request 10 is analyzed in the associative memory device 2, and a plurality of search conditions are generated. Then, in the associative memory device 2, a search according to the search condition is performed, and the memory address 21 corresponding to the detected search target information is output to the memory device 3. The search result candidate corresponding to the memory address 21 is output from the memory device 3 as the search result 22.
  • FIG. 1 is a conceptual diagram of the invention applied to the embodiment.
  • FIG. 2 is a diagram illustrating a configuration example of a network system to which the first embodiment is applied.
  • FIG. 3 is a block diagram showing the internal configuration of the data relay device.
  • FIG. 4 is a diagram illustrating an example of a data structure of a search request.
  • FIG. 5 is a block diagram showing the internal configuration of the CAM device.
  • FIG. 6 is a diagram showing an outline of the search processing.
  • FIG. 7 is a diagram showing a search request analysis process.
  • FIG. 8 is a diagram showing an IP address search process.
  • FIG. 9 is a diagram illustrating a port number search process.
  • FIG. 10 is a sequence diagram illustrating a service content determination process in the network processor according to the first embodiment.
  • FIG. 11 is a diagram illustrating a configuration example of the data relay device according to the second embodiment.
  • FIG. 12 is a diagram illustrating a configuration of a CAM device according to the second embodiment.
  • FIG. 13 is a diagram illustrating a search process according to the second embodiment.
  • FIG. 14 is a sequence diagram illustrating a service content determination process in the network processor according to the second embodiment.
  • FIG. 15 is a diagram illustrating a configuration example of a data relay device according to the third embodiment.
  • FIG. 16 is a diagram illustrating a configuration example of a data relay device according to the fourth embodiment.
  • FIG. 17 is a diagram showing a conventional route search process involving multiple CAM device accesses. BEST MODE FOR CARRYING OUT THE INVENTION
  • FIG. 1 is a conceptual diagram of the invention applied to the embodiment.
  • the data relay device according to the present invention is for relaying a packet to be transmitted, and includes a network processor 1, an associative memory device 2, and a memory device 3. Each element has the following functions.
  • the network processor 1 uses a plurality of elements in the packet as search keys 11 and 12, and performs a search using the plurality of search keys 11 and 12 and the search keys 11 and 12 respectively.
  • a search request 10 including a plurality of applied mask information 13 and 14 indicating the target range of is output. Which element of the packet # 2 is used as a search key is defined in the network processor 1 in advance.
  • the associative memory device 2 stores a plurality of pieces of search target information. Then, the associative memory device 2 receives the search request 10 output from the network processor 1. Then, the structure of the search request 10 is analyzed to generate a plurality of search conditions including the search keys 11 and 12 and the applied mask information 13 and 14. For example, one search condition is generated by combining the search key 11 and the applied mask information 13, and another search condition is generated by combining the search key 12 and the applied mask information 14. The generated search condition is stored in a predetermined register or the like.
  • the associative memory device 2 searches for 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 applied mask information in the search condition from the search target, and searches for the search target information that matches the search key from the area to be searched. 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.
  • the memory device 3 stores a plurality of search result candidates, and retrieves the search result data stored in association with the memory address 21 output from the associative memory device 2 as the search result 22 to the network processor 1. Output to
  • a search request 10 is generated by the network processor 1 and passed to the associative memory device 2. Then, the structure of the search request 10 is analyzed in the associative memory device 2, and a plurality of search conditions are generated. Then, in the associative memory device 2, a search according to the search condition is performed, and the memory address 21 corresponding to the detected search target information is output to the memory device 3. The search result candidate corresponding to the memory address 21 is output from the memory device 3 to the network processor 1 as the search result 22.
  • search keys and application mask information are included in the search request, and the structure of the search request is analyzed in the continuous
  • embodiments of the present invention will be specifically described.
  • FIG. 2 is a diagram illustrating a configuration example of a network system to which the first embodiment is applied.
  • the relay device 100 has a plurality of physical ports 101-108.
  • a network can be connected to the physical ports 101 to 108.
  • a plurality of terminal devices 31 1-317 and other data relay devices 200 are connected to the data relay device 100 via a network.
  • Terminal devices 318 and 319 are similarly connected to the other data relay devices 200.
  • FIG. 3 is a block diagram showing the internal configuration of the data relay device.
  • the data relay device 100 includes a network processor 110, a CAM device 120, and a context RAMI 30.
  • 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 RAMI 30 are connected by an address bus 142 for inputting an address to the context RAMI 30.
  • the context RAMI 30 and the network processor 110 are connected by a data path 143 for outputting data from the context RAMI 30.
  • the network processor 110 is connected to each physical port 101-108. Each of the physical ports 101 to 108 is actually connected to the network processor 110 via a communication interface or the like, but is omitted in FIG.
  • 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 by using the IP address and the port number as a determination factor of route selection and service content (transfer rate and the like). At this time, the search request includes the judgment factor as a search key and a mask setting command for each search key.
  • the search results for the search request are passed on to the context RAMI. For example, the port number of the physical port to which the packet should be forwarded is passed.
  • the network processor 110 sends a packet according to the search result. Determine the transfer route of the port and output from the corresponding physical port.
  • the CAM device 120 searches for judgment factors such as an IP address of a terminal device connected via a network and a TCP / IP port number corresponding to an application mounted on the terminal device for data communication. It is stored as target information.
  • the CAM device 120 performs a search on the stored search target information in response to a search request from the network processor 110. Then, the CAM device 120 outputs the memory address of the area where the detected search target information is stored to the context RAMI 30.
  • the context RAMI 30 stores search result candidates that can be search results corresponding to the search request output by the network processor 110. Search results suggestions include
  • Each search result candidate is associated with a judgment element stored in the CAM device 120. Specifically, the memory address in the CAM device 120 of the area where the judgment element is stored is the memory address in the context RAMI 30 of the area where the search result catch corresponding to the judgment element is stored.
  • the context RAMI 30 sets a search result candidate stored at the memory address as a search result, and passes the search result to the network processor 110.
  • 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.
  • search key 411 is an IP address and search key 412 is a port number.
  • the search command 420 includes a statement 421 and applicable mask information 422 and 423.
  • Applicable mask information 422, 423 contains search keys 411, 412 Information indicating a time mask is set.
  • the identification numbers of the mask information defined in the CAM device 120 are indicated by the applied mask information 422 and 423.
  • FIG. 5 is a block diagram showing the internal configuration of the CAM device.
  • the CAM device 120 has a data storage circuit 121, command format definition information 122, a mask information group 123, an analysis circuit 124, a search condition storage unit 125, and a search circuit 126.
  • the data storage circuit 121 is a circuit block (CAM cell array) that stores information serving as a path determination element.
  • the judgment factor is that the storage area is divided by type. In the example of FIG. 5, an area 121a for storing an IP address and an area 121 for storing a port number are provided.
  • the command format definition information 122 defines the data format of the search request shown in FIG. For example, from the beginning of search request 400, 32 bits are the first search key, the next 16 bits are the second search key, the next 16 bits are the statement, the next 8 bits are the first applied mask information, and the next 8 bits are the Contents such as the second applicable mask information are defined.
  • the command format definition information 122 can be rewritten by a CPU that controls the entire data relay device 100. Further, the setting content 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 content is received.
  • a plurality of mask information 123a, 123b, and 123m that specify an area to be excluded from the search target in the data storage circuit 121 are set.
  • MASK # 1 is mask information for masking areas other than the IP address storage area
  • MASK # 2 is mask information for masking areas other than the port number storage area.
  • An identification number is set in each of the mask information 123a, 123b, 123m. This identification number specifies the mask information to be provided at the time of the search.
  • the analysis circuit 124 analyzes the structure of the search request, and analyzes the search request from the search key and the applied mask information. Is generated. Specifically, upon receiving the search request, the analysis circuit 124 receives a plurality of search keys, command statements, and a plurality of applications in order from the beginning of the search request according to the definition content of the command format definition information 122. Extract mask information. Then, the analysis circuit 124 stores the set of the search key and the applied mask information in the search condition storage unit 125.
  • the search condition storage section 125 is a register group capable of storing a plurality of pairs of a search key and applicable mask information.
  • the search circuit 126 sequentially retrieves a set of the search key and the applicable mask information stored in the search condition storage section 125, and searches the data storage circuit 122. More specifically, the search circuit 126 refers to the mask information group 123 to extract 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 122 for information matching 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 I30.
  • the following processing is performed by the data relay device 100 configured as described above.
  • the network processor 110 analyzes the contents.
  • a search request including a search key and applicable mask information for each search key is generated by using a determination element such as a route selection as a search key.
  • a determination element such as a route selection as a search key.
  • information related to the input packet including the information contained in the packet ⁇ the reception status of the packet, etc.
  • information to be used as a judgment factor for route selection and the like is defined in advance in the network processor 110. I have. In the following example, the IP address and the port number are used as route selection judgment factors. Further, 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.
  • FIG. 6 is a diagram showing an outline of the search processing.
  • the network processor 110 extracts an IP address and a port number from a predetermined location of the header of the arriving bucket, and generates a search request.
  • One search request is generated for one packet.
  • the generated search request is input to the CAM device 120 via the search data input bus 141.
  • the CAM device 120 performs a mask process on the data storage circuit 121, and searches the stored entries for the corresponding information 121c and 121d. If multiple search keys are included in the search request, the corresponding information is searched for each search key.
  • the CAM device 120 sequentially inputs the memory address of the area in which the corresponding information is stored to the context RAM 130 via the end address path 142. Then, in the context RAMI 30, information 131 and 132 stored in an area corresponding to the input memory address are output via the data path 143. The information output via the data bus 143 is received by the network processor 110 as a search result.
  • the network processor 110 determines the processing of the input bucket (physical port to output, transfer rate, etc.) according to the search result.
  • FIG. 7 is a diagram showing a search request analysis process.
  • the search key 510 of the search request 500 has the IP address “Add # 1” and the port number “8080” set as the search keys 511 and 512.
  • “Search” is set as the command statement 521
  • “MASK # 1” and “MASK # 2” are set as the applied mask information 522 and 523.
  • the applied mask information 522 indicates an applied mask of the search key 511
  • the applied mask information 523 indicates an applied mask of the search key 512.
  • the analysis circuit 124 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 a set of the search key 511 and the applied mask information 522 in the search condition storage unit 125 as one search condition. Next, a set of the search key 512 and the applied mask information 523 is stored in the search condition storage unit 125 as another search condition. When the search condition including the search key and the applied mask information is stored in the search condition storage unit 125, the search condition is retrieved by the search circuit 126 in the order of storage. Then, the search circuit 126 searches the data storage circuit 121 according to the extracted search conditions. In the example of FIG.
  • FIG. 8 is a diagram showing an IP address search process.
  • 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 masks the data storage circuit 121 (area not searched). Is determined.
  • the area 121a storing the IP address is a search target, and the area 121b storing the port number is not a search target.
  • the search circuit 126 searches for data matching the search key 511 from within 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 the acquired memory address to the context RAMI 30. Then, search result candidates stored in the area corresponding to the input memory address are extracted from the context RAMI 30 and sent to the network processor 110 as search results. This completes the Layer 3 search process.
  • the search circuit 126 When a series of search processing related to the IP address “Ad d # l” is completed, the search circuit 126 performs a search based on the next search key in the search condition storage unit 125 and the applied mask information. In the example of FIG. 7, a search for the port number “8080” is performed.
  • FIG. 9 is a diagram illustrating a port number search process.
  • 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 applied mask information 523.
  • the search circuit 126 extracts the mask information 123b corresponding to “MASK # 2” set in the applied mask information 523 from the mask information group 123, and extracts the mask area (the area not to be searched) of the data storage circuit 121. decide.
  • the area 121a in which the IP address is stored is out of the search target
  • the area 121b in which the port number is to be stored is the search target.
  • the search circuit 1 26 searches the area 1 2 1 b to be searched for data matching the search key 5 1 2. 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 I 30. Then, the search result candidates stored in the area corresponding to the memory address are extracted from the context RAM I 30 and sent to the network processor 110 as search results. This completes the Layer 4 search process.
  • FIG. 10 is a sequence diagram illustrating a service content determination process in the network processor according to the first embodiment. Hereinafter, the processing illustrated in FIG. 10 will be described along the step numbers.
  • Step S 1 Upon receiving the bucket, the network processor 110 generates one search request by combining the search key such as the IP address and port number of the transmission source and the applied mask information for each search key. .
  • Step S 2 The network processor 110 outputs the generated search request to the search data input bus 144. As a result, a search corresponding to the search key is performed in the CAM device 120.
  • Step S 3 The network processor 110 receives a search result when the IP address is used as a search key, from the data path 144 of the context RAM I 30. Then, the network processor 110 processes the received search result and recognizes the sender (subscriber) who transmitted the packet.
  • Step S4 The network processor 110 receives a search result using the port number as a search key from the data bus 144 of the context RAM I30. Then, the network processor 110 processes the received search result and recognizes the service class.
  • the search request from the network processor 110 is sent to one packet.
  • the search request can be transmitted efficiently via the search data input path 141.
  • the application mask can be specified for each search key in the search request, the search target area can be limited in the CAM device, and the search efficiency is improved.
  • search results executed based on one search request are combined and returned to the network processor. That is, in the first embodiment, when a search request includes a plurality of search keys, 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 multiple search results for one search request. Therefore, processing to determine the relevance of multiple search results is required in the network processor. On the other hand, in the second embodiment, a plurality of search results are compiled in the CAM device and then transmitted to the network processor. This simplifies the processing in the network processor, and speeds up the packet transfer processing.
  • FIG. 11 is a diagram illustrating a configuration example of the data relay device according to the second embodiment.
  • the data relay device 600 has a plurality of physical ports 600 to 608, a network processor 610, a CAM device 620, and a physical port 6 having a context RAM 630. 0 1 to 6 0 8 are connected to the network processor 6 10.
  • the network processor 610 and the CAM device 620 are connected by an input / output bus 640.
  • the CAM device 62 and the context RAM 60 are connected by an address bus 642 and a data bus 643.
  • the network processor 610 transmits a search request for route selection regarding the bucket input from the physical port to the CAM de-compiler 6200.
  • This search request shall include multiple search keys.
  • the CAM device 620 performs a search according to the search key.
  • C AM device 6 2 0 Inputs the memory address obtained as a result of the search using the search key to the context RAM 6330 via the address path 642. Then, from the context RAM 630, data corresponding to the input memory address is output from the data bus 634.
  • the output result of the context RAM 630 performed multiple times is returned to the CAM device 620 and stored in a register or the like for each search result.
  • the CAM device 620 transfers the plurality of search results to the network processor 610 as a group of search results. 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.
  • the CAM device 620 has a data storage circuit 621, a command format definition information 622, a mask information group 623, an analysis circuit 624, and a search condition storage unit 622. 5. It has a search circuit 626, a search result storage section 627, and an output circuit 628.
  • 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.
  • the analysis circuit 624 has the same function as the analysis circuit 124 in the first embodiment shown in FIG. 5, and further includes the identification information of the search request and the search key included in the search request. And a function of adding the number of search conditions to the search condition. For example, the analysis circuit 624 generates a search condition based on a search key, applied mask information, an identification number of each input search request, and information indicating the number of search keys in the search request. 25 Store in the register in 5.
  • Each register in the search condition storage unit 6 25 has a data capacity enough to store the search request identification information and the number of search keys in addition to the search key and the applied mask information. Transmits the memory address obtained by the search of the data storage circuit 621 to the context RAM 630, and at the same time, transmits the memory address obtained by the search key.
  • the identification information of the search request and the number of search keys are stored in a register in the search result storage section 627.
  • the search result output from the context RAM630 is also stored in the register. As a result, 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.
  • the search result storage section 627 is composed of a plurality of registers for storing identification information, the number of search keys, and the search result 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 is performed. The results are compiled and passed to the network processor 6 10.
  • FIG. 13 is a diagram illustrating a search process according to the second embodiment.
  • the first search hits entry 651, and its memory address is input to context RAM 630 via address bus 640.
  • information 652 corresponding to the input memory address is passed to the CAM device 62 through the data bus 643 as a search result.
  • the information 652 sent as the search result is stored in a register in the search result storage unit 627.
  • entry 661 is hit, and its memory address is input to context RAM 6330 via address path 642. Then, information 626 corresponding to the input memory address is passed to the CAM device 620 via the data bus 640 as a search result. In the CAM device 620, the information 626 transmitted as a search result is stored in a register in the search result storage unit 627.
  • the number of search results corresponding to the search request becomes two, and the search results are integrated and are connected via the I / O bus 641 Sent to the network processor 6 10.
  • FIG. 14 is a diagram showing a service in the network processor according to the second embodiment. It is a sequence diagram which shows a capacity determination process. Hereinafter, the processing illustrated in FIG. 14 will be described along the step numbers. ,
  • Step S11 Upon receiving the packet, the network processor 610 generates one search request by combining the search key such as the IP address and port number of the transmission source and the applied mask information for each search key. I do.
  • Step S12 The network processor 610 outputs the generated search request to the input / output bus 641. As a result, a search corresponding to the search key is performed in the CAM device 620. Then, in the CAM device 620, a plurality of search results are put together.
  • Step S 13 The network processor 6 10 is connected to the input / output bus 6 4 1
  • the search result when the IP address is used as the search key and the search result when the port number is used as the search key are received. Then, the network processor 610 processes the received search result and recognizes the sender (subscriber) who transmitted the packet and the service class.
  • the time required for entry search may differ depending on the search bit width of the CAM device. Therefore, the timing of issuing addresses to the context RAM may be shifted.
  • the network processor can collectively receive a plurality of search results, and the difference in the time required for each search in the CAM device, that is, the timing of the result output from the context RAM. This eliminates the need for processing for determining the relevancy of search results with attention to the mining.
  • the present invention is applied to a data relay device having a plurality of network processors.
  • FIG. 15 is a diagram illustrating a configuration example of a data relay device according to the third embodiment.
  • the data relay device according to the third embodiment has a plurality of network processors 701, 702, 703, a CAM device 704, and a context RAM 705.
  • 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 an 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 an arbitration function for multiple data transfer requests (processing for the network processor to become a bus master that can occupy the bus).
  • the CAM device 704 is connected to the context RAM 705 via an output interface (address bus of the context RAM 705) 723.
  • the context RAM 705 is connected to a context RAM path 725 via an output interface (data bus of the context RAM 705) 724.
  • 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 an input interface 732.
  • the context RAM bus 725 is connected to the network processor 703 via the input interface 733.
  • Each of the network processors 701, 702, and 703 issues a search request including a search key, applicable mask information, and a search command from the output interfaces 711, 712, and 713 to the CAM device 704, respectively.
  • This search request is input to the CAM device 704 after arbitration in the CAM path 721. Then, the CAM device 704 performs a search.
  • the information hit or missed in the search processing is input to the context RAM 705 as a read address.
  • the search may be repeated several times.
  • 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 passed to the network processor which issued the search request.
  • the present invention is applied to a data relay device 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 in 721 is reduced. As a result, it is possible to smoothly transfer search requests.
  • a function for collecting search results in a right device in data having a plurality of network processors is mounted on a CAM.
  • FIG. 16 is a diagram illustrating a configuration example of a data relay device according to the fourth embodiment.
  • the data relay device according to the fourth embodiment has a plurality of network processors 801, 802, 803, a CAM device 804, and a context RAM 805.
  • the network processor 801 is connected to a CAM bus 821 via an input / output interface 81 1.
  • the network processor 802 is connected to the CAM bus 821 via an input / output interface 812.
  • the network processor 803 is connected to the CAM bus 821 via an input / output interface 813.
  • the CAM bus 821 is connected to a CAM device 804 via an input / output interface 822.
  • the CAM path 821 has a function of arbitrating a plurality of data transfer requests (processing for the network processor to become a path master that can occupy the path).
  • 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.
  • each of the network processors 801, 802, 803 uses a search key, mask information, Issues a search request that includes a search command.
  • the search request is arbitrated by the CAM bus 822 and passed to the CAM device 804 via the input / output interface 822.
  • the CAM DePay 804 performs a search in response to a search request.
  • the information hit or missed in the search process 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.
  • the data of 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.
  • the CAM device 804 holds the obtained 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 the search results and returns the result to the network processor that issued the search request.
  • each CAM device and context RAM is limited to one chip. Not something. In other words, if memory space is required, each CAM device and context RAM can be composed of multiple chips. However, individual chips do not individually perform processing, and a plurality of chips are integrated to realize the processing of the CAM device and the context RAM of the above embodiment.
  • a plurality of search keys and applied 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 applied mask information is obtained. Generated. Therefore, even if multiple searches for the associative memory device are required to transfer one packet, only one transfer of the search request is required. As a result, the retrieval key is efficiently exchanged, and the retrieval process can be made more efficient.
  • the above merely illustrates the principles of the invention.

Abstract

It is possible to effectively input a search request command to an associative memory (CAM) device. When a packet is input, a search request (10) is generated by a network processor (1) and passed to the associative memory device (2). In the associative memory device (2), structure of the search request (10) is analyzed and a plurality of search conditions are generated. In the associative memory device (2), search is performed according to the search conditions and a memory address (21) corresponding to the search object information detected is output to a memory device (3). From the memory device (3), a search result candidate corresponding to the memory address (21) is passed as a search result (22) to the network processor (1).

Description

データ中継装置、 連想メモリデバイス、 および連想メモリデバイス利用情報検索方 法 技術分野 Data relay device, associative memory device, and associative memory device utilization information retrieval method
本発明は伝送されるパケットを中継するデータ中継装置、 そのデータ中継装置で 明  The present invention relates to a data relay device for relaying a packet to be transmitted, and a data relay device for transmitting a
利用する連想メモリデバイスおよびパケットに関連する情報を連想メモリデパィス を利用して検索するための連想メモリデバイス利用情報検索方法に関し、 特に情報 検索の効率化を図つたデータ中継装置、 連想メモリデバイスおよび連想メモリデバ 食 The present invention relates to an associative memory device use information retrieval method for retrieving information related to an associative memory device and a packet to be used by using an associative memory device. Food
ィス利用情報検索方法に関する。 The method relates to a method of retrieving information on disk usage.
背景技術 Background art
ネットワークの中継点となるルータまたはスィッチ等の装置 (以下、 データ中継 装置と呼ぶ) では、 ネットワーク内を流れるパケットの宛先によるルーティング処 理が行われる。 この経路選択には、 汎用コンピュータでソフトウェア的に実現され る場合と、 専用のハードウエアによって実現される場合とがある。  In a device such as a router or a switch (hereinafter, referred to as a data relay device) serving as a relay point of a network, routing processing is performed by a destination of a packet flowing in the network. This route selection may be realized by software using a general-purpose computer, or may be realized by dedicated hardware.
一般に、 経路選択を高速に行う必要がある場合には、 専用のハードウェアによつ てパケットのルーティングが実現される。 専用のハードウェア構成のデータ中継装 置内には、 ネットワークプロセッサと呼ばれる経路選択専用のプロセッサが実装さ れる。  Generally, when high-speed route selection is required, packet routing is realized by dedicated hardware. A dedicated processor for route selection called a network processor is installed in the data relay device with a dedicated hardware configuration.
ネットワークプロセッサは、 入力されたバケツトの I P (Internet Protocol)ァド レス等の各種情報を参照して、 出力すべき物理ポートを決定する。 一般に、 ネット ワークプロセッサは、 その物理ポートに配下にどのような I Pァドレスの端末装置 が接続されているのかを記憶するメモリを有している。 パケットを転送する際には 、 そのメモリの内容を参照することで、 送出先の物理ポートを特定することができ る。 このように、 経路選択には常にデータ中継装置内でのメモリアクセスが伴う。 そ のため、 経路選択を高速に行うためには、 メモリアクセスの効率ィ匕が望まれる。 C P U (Central Processing Unit)からメモリへのアクセスの効率ィ匕の技術として、 た とえば、 CPUとメモリとの間にコマンドアクセス回路 (あるいはメモリ制御回路 ) において、 コマンドのバッファリングを行うものがある。 たとえば、 特開平 8— 87441号公報、 特開 2000— 99394号公報参照。 The network processor determines the physical port to be output by referring to various information such as the IP (Internet Protocol) address of the bucket that has been input. Generally, a network processor has a memory for storing what IP address of a terminal device is connected to its physical port. When transferring a packet, the destination physical port can be specified by referring to the contents of the memory. Thus, the route selection always involves memory access in the data relay device. Therefore, in order to select a path 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 a memory control circuit) between the CPU and the memory. . For example, see JP-A-8-87441 and JP-A-2000-99394.
また、 特に高速'大容量のルーティングを行う場合、 CAM (Content Addressab le/Associative Memory:連想メモリ) デバイスと呼ばれる特別のメモリを用いてノレ 一ティングが行われる。 CAMデバイスを用いた経路選択回路は、 ネットワークサ 一チェンジンとも呼ばれる。  In particular, when high-speed and large-capacity routing is performed, notification 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 change.
C AMデパイスは I Pアドレス等の情報を格納しており、 I Pアドレス等の情報 が入力されると、 その情報が格納されている記憶領域のメモリアドレスを出力する 。 なお、 CAMデバイスは、 データ中継装置に限らず、 各種システムにおけるメモ リの高速化に利用されている。 特開 2000— 231785号公報 (段落 「002 3」 ) 参照。  The CAM device stores information such as an IP address. When information such as an IP address is input, the CAM device outputs a memory address of a storage area in which the information is stored. CAM devices are used not only for data relay devices but also for speeding up memory in various systems. See JP-A-2000-231785 (paragraph “002 3”).
ところで、 1つのパケットに対する経路検索において、 ネットワークプロセッサ におけるメモリアクセスが複数回行われる場合がある。 たとえば、 パケットから抽 出される I Pアドレス (source address: SAおよび destination address: DA) と T. C P transmission Control Protocol) /UD P (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, the IP address (source address: SA and destination address: DA) extracted from the packet and the port numbers (source port number and destination port number) such as T.CP transmission Control Protocol) / UDP (User Datagram Protocol) ) And may be searched twice.
以下、 複数回の C AMデバィスアクセスを伴う経路探索処理を説明する。  Hereinafter, a route search process involving a plurality of CAM device accesses will be described.
図 17は、 複数回の CAMデバイスアクセスを伴う従来の経路探索処理を示す図 である。 図 17に示すように、 データ中 Ϊ装置には、 ネットワークプロセッサ 91 1、 CAMデパイス 912、 およびコンテキスト RAM (Random Access Memory) 9 13が設けられている。 CAMデバイス 912の記憶領域には、 I Pアドレスの記 憶領域とポート番号の記憶領域とが設けられている。 図 17の例では、 1つのパケ ットを転送する際に、 I Pァドレスとポート番号とによる 2回の検索が行われる。 FIG. 17 is a diagram showing a conventional route search process involving multiple CAM device accesses. As shown in FIG. 17, the data center device is provided with a network processor 911, a CAM device 912, and a context RAM (Random Access Memory) 913. The storage area of the CAM device 912 is provided with an IP address storage area and a port number storage area. In the example of Fig. 17, one packet When transferring a packet, two searches are performed by IP address and port number.
[ステップ S 1 0 1 ] データ中継装置にバケツトの情報が入力されると、 ネット ワークプロセッサ 9 1 1から C AMデバイス 9 1 2へ、 検索キー 9 2 1、 マスク設 定コマンド 9 2 2、 および検索コマンド 9 2 3が送られる。 検索キー 9 2 1は I P アドレスである。 マスク設定コマンド 9 2 2は、 C AMデバイス 9 1 2内の I Pァ ドレスの記憶領域以外のマスク処理 (検索対象外とする) を指定するコマンドであ る。  [Step S101] When the bucket information is input to the data relay device, the search key 921, the mask setting command 922, and the mask setting command 922 from the network processor 911 to the CAM device 912 are transmitted. A search command 9 23 is sent. The search key 9 21 is an IP address. The mask setting command 922 is a command for specifying mask processing (other than the search target) other than the storage area of the IP address in the CAM device 912.
C AMデバイス 9 1 2は、 マスク設定コマンド 9 2 2で指定された範囲にマスク をかける。 マスクがかけられた範囲は、 検索対象から除外される。 そして、 C AM デバイス 9 1 2は、 検索キー 9 2 1に合致するデータを検索し、 そのデータが格納 されている領域のメモリアドレスを出力する。 出力されたメモリアドレスは、 コン テキスト RAM 9 1 3に対して、 読み出しのメモリアドレスとして入力される。 す ると、 コンテキスト RAM 9 1 3から、 入力されたメモリアドレスに該当する領域 からデータ 9 2 4が出力され、 ネットワークプロセッサ 9 1 1に入力される。 これ は、 Layer3 (ネットワーク層) の検索処理である。  The CAM device 912 masks the range specified by the mask setting command 922. Masked areas are excluded from the search. Then, the CAM device 912 searches for data matching 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, the data 924 is output from the area corresponding to the input memory address from the context RAM 913, and is input to the network processor 911. This is a Layer 3 (network layer) search process.
[ステップ S 1 0 2 ] 次に、 ネットワークプロセッサ 9 1 1から C AMデバイス 9 1 2へ、 検索キー 9 3 1、 マスク設定コマンド 9 3 2、 および検索コマンド 9 3 3が送られる。 検索キー 9 3 1は、 転送するパケットの宛先側のアプリケーション を示すポート番号である。 マスク設定コマンド 9 3 2は、 C AMデバイス 9 1 2内 のポート番号の記憶領域以外のマスク処理を指定するコマンドである。  [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 application on the destination side of the packet to be transferred. The mask setting command 932 is a command for designating a mask process other than the storage area of the port number in the CAM device 912.
C AMデバイス 9 1 2は、 マスク設定コマンド 9 3 2で指定された範囲にマスク をかける。 そして、 C AMデバイス 9 1 2は、 検索キー 9 3 1に合致するデータを 検索し、 そのデータが格納されている領域のメモリアドレスを出力する。 出力され たメモリアドレスは、 コンテキスト R AM 9 1 3に対して、 読み出しァドレスとし て入力される。 すると、 コンテキスト R AM 9 1 3から、 入力されたメモリアドレ スに該当する領域からデータ 9 3 4が出力され、 ネットワークプロセッサ 9 1 1に 入力される。 これは、 Layer4 (トランスポート層) の検索処理である。 このように二度検索を行うのは、 Q o S (Quality- of- Service)のようなサービス を提供する場合で、 Layer3の I Pアドレス(SA,DA)検索だけでなく、 Layer4までの情 報をもとにフローの識別を行う必要があるからである。 The CAM device 912 masks the area specified by the mask setting command 932. Then, the CAM device 912 searches for data matching the search key 931, and outputs the memory address of the area where the data is stored. The output memory address is input as a read address to the context RAM 913. Then, data 934 is output from the area corresponding to the input memory address from the context RAM 913, and is input to the network processor 911. This is a Layer 4 (transport layer) search process. Performing the search twice in this way is to provide services such as QoS (Quality-of-Service). In addition to searching for Layer 3 IP addresses (SA, DA), information up to Layer 4 can be obtained. This is because it is necessary to identify the flow based on
し力、し、 1つのバケツト転送時に複数回の C AMデバイスアクセスが行われる場 合、 検索の度にマスク設定コマンドや検索コマンドが発行される。 このことは、 C AMデバイスへのアクセスが増加しネットワークプロセッサのパフォーマンスを下 げる要因となる。 そこで、 パケットの経路選択等の判断処理の高速ィ匕のために、 C AMデパイスへのアクセスの際のコマンド転送の効率化が望まれてレヽる。 発明の開示  If multiple CAM device accesses are performed during one bucket transfer, a mask setting command or search command is issued for each search. This can increase access to CAM devices and degrade network processor performance. Therefore, it is desired to improve the efficiency of command transfer at the time of accessing the CAM device in order to perform high-speed judgment processing such as packet path selection. Disclosure of the invention
本発明はこのような点に鑑みてなされたものであり、 連想メモリ (C AM) デバ イスに対して効率よく検索要求のコマンドを入力できるデータ中,樓装置を提供する ことを目的とする。  SUMMARY OF THE INVENTION The present invention has been made in view of such a point, and an object of the present invention is to provide a data storage device capable of efficiently inputting 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 utilization information search method capable of efficiently inputting a search request command to an associative memory device.
本発明では上記課題を解決するために、 図 1に示すようなデータ中継装置が提供 される。 本発明のデータ中継装置は、 伝送されるパケットを中継するためのもので あり、 ネットワークプロセッサ 1、 連想メモリデバイス 2、 およびメモリデバイス 3を有している。 それぞれの要素は、 以下の機能を有している。  In the present invention, in order to solve the above problems, a data relay device as shown in FIG. 1 is provided. The data relay device of the present invention relays a packet to be transmitted, and includes a network processor 1, an associative memory device 2, and a memory device 3. Each element has the following functions.
ネットワークプロセッサ 1は、 パケットが入力されると、 パケット内の複数の要 素を検索キー 1 1, 1 2とし、 複数の検索キー 1 1, 1 2と、 検索キー 1 1, 1 2 それぞれによる検索の対象範囲を示す複数の適用マスク情報 1 3 , 1 4とを含めた 検索要求 1 0を出力する。 連想メモリデバイス 2は、 複数の検索対象情報を記憶し ており、 ネットワークプロセッサ 1から出力された検索要求 1 0を受け取り、 検索 要求 1 0の構造を解析して検索キー 1 1 , 1 2と適用マスク情報 1 3, 1 4と力 ら なる複数の検索条件を生成し、 検索条件に応じて検索対象情報の検索を行い、 検出 された検索対象情報に一意に関連付けられたメモリアドレス 2 1を出力する。 メモ リデバイス 3は、 複数の検索結果候補を記憶しており、 連想メモリデバイス 2から 出力されたメモリアドレス 2 1に対応付けて格納されている検索結果候補を検索結 果 2 2として出力する。 When a packet is input, the network processor 1 uses a plurality of elements in the packet as search keys 11 and 12 and searches using the plurality of search keys 11 and 12 and the search keys 11 and 12 respectively. A search request 10 including a plurality of applied mask information 13 and 14 indicating the target range of is output. The associative memory device 2 stores a plurality of search target information, receives the search request 10 output from the network processor 1, and By analyzing the structure of the request 10, a plurality of search conditions including search keys 11, 12, applied mask information 13, 14 and power are generated, and the search target information is searched according to the search conditions. Outputs the memory address 21 uniquely associated with the detected search target information. The memory device 3 stores a plurality of search result candidates, and outputs a search result candidate stored in association with the memory address 21 output from the associative memory device 2 as a search result 22.
このようなデータ中継装置によれば、 パケットが入力されるとネットワークプロ セッサ 1により、 検索要求 1 0が生成され連想メモリデバイス 2に渡される。 する と、 連想メモリデバイス 2において、 検索要求 1 0の構造が解析され複数の検索条 件が生成される。 そして、 連想メモリデバイス 2において、 検索条件に応じた検索 が行われ、 検出された検索対象情報に対応するメモリアドレス 2 1がメモリデバイ ス 3に出力される。 メモリデバイス 3からは、 メモリアドレス 2 1に対応する検索 結果候補が、 検索結果 2 2として出力される。  According to such a data relay device, when a packet is input, a search request 10 is generated by the network processor 1 and passed to the associative memory device 2. Then, the structure of the search request 10 is analyzed in the associative memory device 2, and a plurality of search conditions are generated. Then, in the associative memory device 2, a search according to the search condition is performed, and the memory address 21 corresponding to the detected search target information is output to the memory device 3. The search result candidate corresponding to the memory address 21 is output from the memory device 3 as the search result 22.
本発明の上記および他の目的、 特徴および利点は本発明の例として好ましい実施 の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。 図面の簡単な説明  The above 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 of the present invention. BRIEF DESCRIPTION OF THE FIGURES
図 1は、 実施の形態に適用される発明の概念図である。  FIG. 1 is a conceptual diagram of the invention applied to the embodiment.
図 2は、 第 1の実施の形態を適用するネットワークシステムの構成例を示す図で ある。  FIG. 2 is a diagram illustrating a configuration example of a network system to which the first embodiment is applied.
図 3は、 データ中継装置の内部構成を示すプロック図である。  FIG. 3 is a block diagram showing the internal configuration of the data relay device.
図 4は、 検索要求のデータ構造例を示す図である。  FIG. 4 is a diagram illustrating an example of a data structure of a search request.
図 5は、 C AMデバイスの内部構成を示すプロック図である。  FIG. 5 is a block diagram showing the internal configuration of the CAM device.
図 6は、 検索処理の概略を示す図である。  FIG. 6 is a diagram showing an outline of the search processing.
図 7は、 検索要求解析処理を示す図である。  FIG. 7 is a diagram showing a search request analysis process.
図 8は、 I Pアドレス検索処理を示す図である。  FIG. 8 is a diagram showing an IP address search process.
図 9は、 ポート番号検索処理を示す図である。 図 1 0は、 第 1の実施の形態に係るネットワークプロセッサにおけるサービス内 容判定処理を示すシーケンス図である。 FIG. 9 is a diagram illustrating a port number search process. FIG. 10 is a sequence diagram illustrating a service content determination process in the network processor according to the first embodiment.
図 1 1は、 第 2の実施の形態に係るデータ中継装置の構成例を示す図である。 図 1 2は、 第 2の実施の形態における C AMデバイスの構成を示す図である。 図 1 3は、 第 2の実施の形態における検索処理を示す図である。  FIG. 11 is a diagram illustrating a configuration example of the data relay device according to the second embodiment. FIG. 12 is a diagram illustrating a configuration of a CAM device according to the second embodiment. FIG. 13 is a diagram illustrating a search process according to the second embodiment.
'図 1 4は、 第 2の実施の形態に係るネットワークプロセッサにおけるサービス内 容判定処理を示すシーケンス図である。  FIG. 14 is a sequence diagram illustrating a service content determination process in the network processor according to the second embodiment.
図 1 5は、 第 3の実施の形態におけるデータ中継装置の構成例を示す図である。 図 1 6は、 第 4の実施の形態におけるデータ中継装置の構成例を示す図である。 図 1 7は、 複数回の C AMデバイスアクセスを伴う従来の経路探索処理を示す図 である。 発明を実施するための最良の形態  FIG. 15 is a diagram illustrating a configuration example of a data relay device according to the third embodiment. FIG. 16 is a diagram illustrating a configuration example of a data relay device according to the fourth embodiment. FIG. 17 is a diagram showing a conventional route search process involving multiple CAM device accesses. BEST MODE FOR CARRYING OUT THE INVENTION
以下、 本発明の実施の形態を図面を参照して説明する。  Hereinafter, embodiments of the present invention will be described with reference to the drawings.
まず、 実施の形態に適用される発明の概要について説明し、 その後、 実施の形態 の具体的な内容を説明する。  First, an outline of the invention applied to the embodiment will be described, and then, 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 device according to the present invention is for relaying a packet to be transmitted, and includes a network processor 1, an associative memory device 2, and a memory device 3. Each element has the following functions.
ネットワークプロセッサ 1は、 パケットが入力されると、 パケット内の複数の要 素を検索キー 1 1, 1 2とし、 複数の検索キー 1 1 , 1 2と、 検索キー 1 1, 1 2 それぞれによる検索の対象範囲を示す複数の適用マスク情報 1 3, 1 4とを含めた 検索要求 1 0を出力する。 パケット內のどの要素を検索キーとするのかは、 ネット ワークプロセッサ 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 performs a search using the plurality of search keys 11 and 12 and the search keys 11 and 12 respectively. A search request 10 including a plurality of applied mask information 13 and 14 indicating the target range of is output. Which element of the packet # 2 is used as a search key is defined in the network processor 1 in advance.
連想メモリデバイス 2は、 複数の検索対象情報を記憶している。 そして、 連想メ モリデバイス 2は、 ネットワークプロセッサ 1から出力された検索要求 1 0を受け 取り、 検索要求 1 0の構造を解析して検索キー 1 1, 1 2と適用マスク情報 1 3 , 1 4とからなる複数の検索条件を生成する。 たとえば、 検索キー 1 1と適用マスク 情報 1 3とを組にして 1つの検索条件を生成し、 検索キー 1 2と適用マスク情報 1 4とを組にして別の検索条件を生成する。 生成した検索条件は、 所定のレジスタ等 に格納する。 The associative memory device 2 stores a plurality of pieces of search target information. Then, the associative memory device 2 receives the search request 10 output from the network processor 1. Then, the structure of the search request 10 is analyzed to generate a plurality of search conditions including the search keys 11 and 12 and the applied mask information 13 and 14. For example, one search condition is generated by combining the search key 11 and the applied mask information 13, and another search condition is generated by combining the search key 12 and the applied mask information 14. The generated search condition is stored in a predetermined register or the like.
その後、 連想メモリデバイス 2は、 生成された検索条件に応じて検索対象情報の 検索を行い、 検出された検索対象情報に一意に関連付けられたメモリアドレス 2 1 をメモリデバイス 3に対して出力する。 具体的には、 連想メモリデバイス 2は、 検 索条件内の適用マスク情報で示される領域を検索対象外とし、 検索対象である領域 力 ら、 検索キーに合致する検索対象情報を検索する。 そして、 連想メモリデバイス 2は、 検出された検索対象情報が格納されている記憶領域のメモリアドレスを、 メ モリデバィス 3に対して出力する。  After that, the associative memory device 2 searches for 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 applied mask information in the search condition from the search target, and searches for the search target information that matches the search key from the area to be searched. 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から出力されたメモリアドレス 2 1に対応付けて格納されている検索結果候捕を 検索結果 2 2としてネットワークプロセッサ 1に対して出力する。  The memory device 3 stores a plurality of search result candidates, and retrieves the search result data stored in association with the memory address 21 output from the associative memory device 2 as the search result 22 to the network processor 1. Output to
このようなデータ中継装置によれば、 バケツトが入力されるとネットワークプロ セッサ 1により、 検索要求 1 0が生成され連想メモリデバイス 2に渡される。 する と、 連想メモリデバイス 2において、 検索要求 1 0の構造が解析され複数の検索条 件が生成される。 そして、 連想メモリデバイス 2において、 検索条件に応じた検索 が行われ、 検出された検索対象情報に対応するメモリアドレス 2 1がメモリデバイ ス 3に出力される。 メモリデバイス 3からは、 メモリアドレス 2 1に対応する検索 結果候補が、 検索結果 2 2としてネットワークプロセッサ 1に出力される。  According to such a data relay device, when a bucket is input, a search request 10 is generated by the network processor 1 and passed to the associative memory device 2. Then, the structure of the search request 10 is analyzed in the associative memory device 2, and a plurality of search conditions are generated. Then, in the associative memory device 2, a search according to the search condition is performed, and the memory address 21 corresponding to the detected search target information is output to the memory device 3. The search result candidate corresponding to the memory address 21 is output from the memory device 3 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 continuous | memory device 2 to generate a plurality of search conditions. Even if multiple searches are required in one packet transfer, the search key and applied mask information can be transferred only once. As a result, search requests can be efficiently delivered and search efficiency can be improved. Hereinafter, embodiments of the present invention will be specifically described.
[第 1の実施の形態]  [First Embodiment]
図 2は、 第 1の実施の形態を適用するネットワークシステムの構成例を示す図で ある。 データ中,継装置 100は、 複数の物理ポート 101〜 108を有している。 物理ポート 101〜 108には、 ネットワークを接続することができる。 そして、 データ中継装置 100には、 ネットワークを介して、 複数の端末装置 31 1-31 7や他のデータ中継装置 200が接続される。 他のデータ中継装置 200には、 同 様に端末装置 318, 319が接続される。  FIG. 2 is a diagram illustrating a configuration example of a network system to which the first embodiment is applied. In the data, the relay device 100 has a plurality of physical ports 101-108. A network can be connected to the physical ports 101 to 108. A plurality of terminal devices 31 1-317 and other data relay devices 200 are connected to the data relay device 100 via a network. Terminal devices 318 and 319 are similarly connected to the other data relay devices 200.
図 3は、 データ中継装置の内部構成を示すブロック図である。 データ中継装置 1 00は、 ネットワークプロセッサ 110、 CAMデバイス 120、 およびコンテキ スト RAMI 30を有している。 ネットワークプロセッサ 1 10と CAMデバイス 120とは、 検索データ入力バス 141で接続されている。 CAMデバイス 120 とコンテキスト RAMI 30とは、 コンテキスト RAMI 30へのァドレス入力用 のァドレスバス 142で接続されている。 コンテキスト RAMI 30とネットフ一 クプロセッサ 110は、 コンテキスト RAMI 30からのデータ出力用のデータパ ス 143で接続されている。 ネットワークプロセッサ 1 10は、 各物理ポート 10 1-108に接続されている。 なお、 各物理ポート 101〜 108は、 実際には通 信インタフェース等を介しネットワークプロセッサ 1 10に接続されるが、 図 3で は省略されている。  FIG. 3 is a block diagram showing the internal configuration of the data relay device. The data relay device 100 includes a network processor 110, a CAM device 120, and a context RAMI 30. 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 RAMI 30 are connected by an address bus 142 for inputting an address to the context RAMI 30. The context RAMI 30 and the network processor 110 are connected by a data path 143 for outputting data from the context RAMI 30. The network processor 110 is connected to each physical port 101-108. Each of the physical ports 101 to 108 is actually connected to the network processor 110 via a communication interface or the like, but is omitted in FIG.
ネットワークプロセッサ 110は、 物理ポート 101〜108から入力されたパ ケットの内容を解釈し、 I Pアドレスやポート番号を抽出する。 そしてネットヮー クプロセッサ 110は、 CAMデパイス 120に対して、 I Pアドレスとポート番 号とを経路選択やサービス内容 (転送レート等) の判断要素として、 検索要求を出 力する。 この際、 検索要求には、 判断要素が検索キーとして含まれると共に検索キ 一毎のマスク設定コマンドが含まれる。 検索要求に対する検索結果は、 コンテキス ト RAMI 30力、ら渡される。 たとえば、 パケットを転送すべき物理ポートのポー ト番号が渡される。 ネットワークプロセッサ 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 by using the IP address and the port number as a determination factor of route selection and service content (transfer rate and the like). At this time, the search request includes the judgment factor as a search key and a mask setting command for each search key. The search results for the search request are passed on to the context RAMI. For example, the port number of the physical port to which the packet should be forwarded is passed. The network processor 110 sends a packet according to the search result. Determine the transfer route of the port and output from the corresponding physical port.
CAMデバイス 120は、 ネットワークを介して接続されている端末装置等の I Pァドレスや、 データ通信のために端末装置に実装されているアプリケーション等 に対応する T C P / I Pのポート番号などの判断要素が検索対象情報として格納さ れている。 CAMデバイス 120は、 ネットワークプロセッサ 110からの検索要 求に応じて、 記憶されている検索対象情報を対象とした検索を行う。 そして、 CA Mデバイス 120は、 検出された検索対象情報が格納されている領域のメモリアド レスをコンテキスト RAMI 30に対して出力する。  The CAM device 120 searches for judgment factors such as an IP address of a terminal device connected via a network and a TCP / IP port number corresponding to an application mounted on the terminal device for data communication. It is stored as target information. The CAM device 120 performs a search on the stored search target information in response to a search request from the network processor 110. Then, the CAM device 120 outputs the memory address of the area where the detected search target information is stored to the context RAMI 30.
コンテキスト RAMI 30は、 ネットワークプロセッサ 110が出力する検索要 求に対応する検索結果となり得る検索結果候補を格納している。 検索結果候補には The context RAMI 30 stores search result candidates that can be search results corresponding to the search request output by the network processor 110. Search results suggestions include
、 パケットの転送経路を示す情報や、 パケットに対するサービス内容 (転送レート 等) を指示する情報が含まれる。 たとえば、 パケットを送出すべき物理ポートの番 号や、 パケットの廃棄を指示する情報などである。 各検索結果候補は、 CAMデバ イス 120に格納された判断要素に対応付けられている。 具体的には、 判断要素が 格納された領域の C AMデバイス 120におけるメモリアドレスが、 その判断要素 に対応する検索結果候捕が格納された領域のコンテキスト RAMI 30におけるメ モリアドレスとなる。 This includes information indicating the packet transfer path and information indicating the service contents (transfer rate, etc.) for the packet. For example, it is the number of the physical port to which the packet should be sent, or information that instructs to discard the packet. Each search result candidate is associated with a judgment element stored in the CAM device 120. Specifically, the memory address in the CAM device 120 of the area where the judgment element is stored is the memory address in the context RAMI 30 of the area where the search result catch corresponding to the judgment element is stored.
コンテキスト RAMI 30は、 C AMデバイス 120からメモリアドレスが入力 されると、 そのメモリアドレスに格納されている検索結果候補を検索結果とし、 そ の検索結果をネットワークプロセッサ 110に渡す。  When a memory address is input from the CAM device 120, the context RAMI 30 sets a search result candidate stored at the memory address as a search result, and passes the search result to the network processor 110.
図 4は、 検索要求のデータ構造例を示す図である。 検索要求 400は検索キー群 410と検索コマンド 420とで構成される。 検索キー群 410には、 経路判断や サービス内容判断のための複数の検索キー 41 1, 412が含まれる。 たとえば、 検索キー 41 1は I Pアドレスであり、 検索キー 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, search key 411 is an IP address and search key 412 is a port number. The search command 420 includes a statement 421 and applicable mask information 422 and 423. In the statement 421, a statement instructing the CAM device 120 to execute the search is set. Applicable mask information 422, 423 contains search keys 411, 412 Information indicating a time mask is set. In the first embodiment, the identification numbers of the mask information defined in the CAM device 120 are indicated by the applied mask information 422 and 423.
図 5は、 CAMデバイスの内部構成を示すブロック図である。 図 5に示すように 、 CAMデバイス 120は、 データ記憶回路 121、 コマンドフォーマツト定義情 報 122、 マスク情報群 123、 解析回路 124、 検索条件格納部 125および検 索回路 126を有している。  FIG. 5 is a block diagram showing the internal configuration of the CAM device. As shown in FIG. 5, the CAM device 120 has a data storage circuit 121, command format definition information 122, a mask information group 123, an analysis circuit 124, a search condition storage unit 125, and a search circuit 126.
データ記憶回路 121は、 経路判断の要素となる情報を記憶する回路ブロック ( CAMセルアレー) である。 判断要素は、 種別毎に格納領域が分力れている。 図 5 の例では、 I Pァドレスを格納する領域 121 aとポート番号を格納する領域 12 1 とが設けられている。  The data storage circuit 121 is a circuit block (CAM cell array) that stores information serving as a path determination element. The judgment factor is that the storage area is divided by type. In the example of FIG. 5, an area 121a for storing an IP address and an area 121 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 beginning of search request 400, 32 bits are the first search key, the next 16 bits are the second search key, the next 16 bits are the statement, the next 8 bits are the first applied mask information, and the next 8 bits are the Contents such as the second applicable 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 device 100. Further, the setting content 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 content is received.
マスク情報群 123は、 データ記憶回路 121のうち検索対象から除外する領域 を指定する複数のマスク情報 123 a, 123 b, 123 mが設定されている。 た とえば、 MASK# 1は、 I Pアドレスの記憶領域以外をマスクするマスク情報で あり、 MASK#2は、 ポート番号の記憶領域以外をマスクするマスク情報である 。 各マスク情報 123 a, 123b, 123 mには、 識別番号が設定されている。 この識別番号により、 検索の際に提供するマスク情報が指定される。  In the mask information group 123, a plurality of mask information 123a, 123b, and 123m that specify an area 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 of the mask information 123a, 123b, 123m. This identification number specifies the mask information to be provided at the time of the search.
解析回路 124は、 検索要求の構造を解析し、 検索キーと適用マスク情報とから なる複数の検索情報を生成する。 具体的には、 解析回路 1 2 4は、 検索要求を受け 取ると、 コマンドフォーマツト定義情報 1 2 2の定義内容に従って検索要求の先頭 から順に、 複数の検索キー、 命令文、 および複数の適用マスク情報を抽出する。 そ して、 解析回路 1 2 4は、 検索キーと適用マスク情報との組を、 検索条件格納部 1 2 5に格納する。 The analysis circuit 124 analyzes the structure of the search request, and analyzes the search request from the search key and the applied mask information. Is generated. Specifically, upon receiving the search request, the analysis circuit 124 receives a plurality of search keys, command statements, and a plurality of applications in order from the beginning of the search request according to the definition content of the command format definition information 122. Extract mask information. Then, the analysis circuit 124 stores the set of the search key and the applied mask information in the search condition storage unit 125.
検索条件格納部 1 2 5は、 検索キーと適用マスク情報との組を複数格納可能なレ ジスタ群である。  The search condition storage section 125 is a register group capable of storing a plurality of pairs of a search key and applicable mask information.
検索回路 1 2 6は、 検索条件格納部 1 2 5に格納された検索キーと適用マスク情 報との組を順次取り出し、 データ記憶回路 1 2 1の検索を行う。 具体的には、 検索 回路 1 2 6は、 マスク情報群 1 2 3を参照し、 検索条件格納部 1 2 5から取り出し た適用マスク情報に対応するマスク情報を抽出する。 次に、 検索回路 1 2 6は、 取 り出したマスク情報で指定された領域を検索対象外として、 検索キーに一致する情 報をデータ記憶回路 1 2 1から検索する。 一致する情報が検出されると、 検索回路 1 2 6は、 その情報が格納された領域のメモリアドレスを、 コンテキスト RAM I 3 0に対して出力する。  The search circuit 126 sequentially retrieves a set of the search key and the applicable mask information stored in the search condition storage section 125, and searches the data storage circuit 122. More specifically, the search circuit 126 refers to the mask information group 123 to extract 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 122 for information matching 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 I30.
以上の様な構成のデータ中継装置 1 0 0により、 以下のような処理が行われる。 まず、 パケットが入力されると、 ネットワークプロセッサ 1 1 0が内容を解析し 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.
、 経路選択等の判断要素を検索キーとし、 検索キーと検索キー毎の適用マスク情報 とを含む検索要求を生成する。 なお、 入力されたパケットに関する情報 (パケット に含まれる情報ゃパケットの受信状況等を含む) のうち、 経路選択等の判断要素と すべき情報については、 予めネットワークプロセッサ 1 1 0内で定義されている。 以下の例では、 I Pァドレスとポート番号とを経路選択の判断要素とする。 また、 ネットワークプロセッサ 1 1 0には、 判断要素毎の適用マスク情報も予め定義され ている。 その後、 検索要求に応じた検索が行われる。 A search request including a search key and applicable mask information for each search key is generated by using a determination element such as a route selection as a search key. Among the information related to the input packet (including the information contained in the packet ゃ the reception status of the packet, etc.), information to be used as a judgment factor for route selection and the like is defined in advance in the network processor 110. I have. In the following example, the IP address and the port number are used as route selection judgment factors. Further, 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は、 検索処理の概略を示す図である。 ネットワークプロセッサ 1 1 0は、 到 着したバケツトの持つヘッダの所定の場所から I Pアドレスやポート番号を抽出し て、 検索要求を生成する。 検索要求は、 1つのパケットに対して 1つ生成される。 生成された検索要求は、 検索データ入力バス 141を通じて、 CAMデパイス 12 0に入力される。 CAMデバイス 120は、 データ記憶回路 121にマスク処理を 施し、 格納されているエントリから該当する情報 121 c, 121 dを検索する。 検索要求内に複数の検索キーが含まれていれば、 検索キー毎に該当する情報が検索 される。 FIG. 6 is a diagram showing an outline of the search processing. The network processor 110 extracts an IP address and a port number from a predetermined location of the header of the arriving bucket, and generates a search request. One search request is generated for one packet. The generated search request is input to the CAM device 120 via the search data input bus 141. The CAM device 120 performs a mask process on the data storage circuit 121, and searches the stored entries for the corresponding information 121c and 121d. If multiple search keys are included in the search request, the corresponding information is searched for each search key.
そして、 CAMデバイス 120は、 該当する情報が格納されていた領域のメモリ ァドレスを、 順次、 了ドレスパス 142を介してコンテキスト RAM 130に入力 する。 すると、 コンテキスト RAMI 30において、 入力されたメモリアドレスに 対応する領域に格納された情報 131, 132を、 データパス 143を介して出力 する。 データバス 143を介して出力された情報は、 検索結果としてネットワーク プロセッサ 110で受け取られる。  Then, the CAM device 120 sequentially inputs the memory address of the area in which the corresponding information is stored to the context RAM 130 via the end address path 142. Then, in the context RAMI 30, information 131 and 132 stored in an area corresponding to the input memory address are output via the data path 143. The information output via the data bus 143 is received by the network processor 110 as a search result.
ネットワークプロセッサ 110は、 検索結果に応じて、 入力されたバケツトの処 理 (出力する物理ポートや転送レートなど) を決定する。  The network processor 110 determines the processing of the input bucket (physical port to output, transfer rate, etc.) according to the search result.
次に、 CAMデバイス 120の内部処理について詳しく説明する。  Next, the internal processing of the CAM device 120 will be described in detail.
図 7は、 検索要求解析処理を示す図である。 図 7の例では、 検索要求 500の検 索キー 510には、 検索キー 511, 512として I Pァドレス 「A d d # 1」 と ポート番号 「8080」 が設定されている。 検索コマンド 520には、 命令文 52 1として 「Search」 、 適用マスク情報 522, 523として 「MASK# 1」 、 「 MASK#2」 が設定されている。 適用マスク情報 522は、 検索キー 511の適 用マスクを示しており、 適用マスク情報 523は、 検索キー 512の適用マスクを 示している。  FIG. 7 is a diagram showing a search request analysis process. In the example of FIG. 7, the search key 510 of the search request 500 has the IP address “Add # 1” and the port number “8080” set as the search keys 511 and 512. In the search command 520, “Search” is set as the command statement 521, and “MASK # 1” and “MASK # 2” are set as the applied mask information 522 and 523. The applied mask information 522 indicates an applied mask of the search key 511, and the applied mask information 523 indicates an applied mask of the search key 512.
このような検索要求 500が解析回路 124に入力されると、 コマンドフォーマ ット定義情報 122に従って検索要求 500のデータ構造が解析される。 そして、 解析回路 124により、 検索キー 51 1と適用マスク情報 522との組が、 1つの 検索条件として検索条件格納部 125に格納される。 次に、 検索キー 512と適用 マスク情報 523との組が、 別の検索条件として検索条件格納部 125に格納され る。 検索条件格納部 125に検索キーと適用マスク情報とで構成される検索条件が格 納されると、 格納順に検索条件が検索回路 126で取り出される。 そして、 検索回 路 126により、 取り出された検索条件に従って、 データ記憶回路 121の検索が 行われる。 図 7の例では、 まず、 I Pアドレス 「Ad d# l」 の検索が行われる。 図 8は、 I Pアドレス検索処理を示す図である。 図 8に示すように、 検索回路 1 26は、 検索条件格納部 125に先に登録された検索条件を抽出し、 検索キー 51 1と適用マスク情報 522とを得る。 検索回路 126は、 適用マスク情報 522に 設定されている 「MASK# 1」 に対応するマスク情報 123 aをマスク情報群 1 23から抽出し、 データ記憶回路 121のマスク領域 (検索対象外の領域) を決定 する。 図 8の例では、 I Pァドレスが格納された領域 121 aが検索対象であり、 ポート番号が格納された領域 121 bが検索対象外である。 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 a set of the search key 511 and the applied mask information 522 in the search condition storage unit 125 as one search condition. Next, a set of the search key 512 and the applied mask information 523 is stored in the search condition storage unit 125 as another search condition. When the search condition including the search key and the applied mask information is stored in the search condition storage unit 125, the search condition is retrieved by the search circuit 126 in the order of storage. Then, the search circuit 126 searches the data storage circuit 121 according to the extracted search conditions. In the example of FIG. 7, first, a search for the IP address “Ad d # l” is performed. FIG. 8 is a diagram showing an IP address search process. 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 masks the data storage circuit 121 (area not searched). Is determined. In the example of FIG. 8, the area 121a storing the IP address is a search target, and the area 121b storing the port number is not a search target.
次に、 検索回路 126は、 検索対象の領域 121 a内から検索キー 51 1に合致 するデータを検索する。 そして、 検索回路 126は、 合致したデータが格納されて いる領域のメモリアドレスを取得し、 コンテキスト RAMI 30に対して出力する 。 すると、 コンテキスト RAMI 30から、 入力されたメモリアドレスに対応する 領域に格納された検索結果候補が取り出され、 検索結果としてネットワークプロセ ッサ 1 10に送られる。 これにより Layer3の検索処理が完了する。  Next, the search circuit 126 searches for data matching the search key 511 from within 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 the acquired memory address to the context RAMI 30. Then, search result candidates stored in the area corresponding to the input memory address are extracted from the context RAMI 30 and sent to the network processor 110 as search results. This completes the Layer 3 search process.
I Pアドレス 「Ad d# l」 に関する一連の検索処理が完了すると、 検索回路 1 26は、 検索条件格納部 125内の次の検索キーと適用マスク情報とに基づく検索 を行う。 図 7の例では、 ポート番号 「8080」 の検索が行われる。  When a series of search processing related to the IP address “Ad d # l” is completed, the search circuit 126 performs a search based on the next search key in the search condition storage unit 125 and the applied mask information. In the example of FIG. 7, a search for the port number “8080” is performed.
図 9は、 ポート番号検索処理を示す図である。 図 9に示すように、 検索回路 12 6は、 検索条件格納部 125に、 その時点で最先に登録された情報を抽出し、 検索 キー 512と適用マスク情報 523とを得る。 検索回路 126は、 適用マスク情報 523に設定されている 「MASK#2」 に対応するマスク情報 123 bをマスク 情報群 123から抽出し、 データ記憶回路 121のマスク領域 (検索対象外の領域 ) を決定する。 図 9の例では、 I Pアドレスが格納された領域 121 aが検索対象 外であり、 ポート番号が格納されたい領域 121 bが検索対象である。 次に、 検索回路 1 2 6は、 検索対象の領域 1 2 1 b内から検索キー 5 1 2に合致 するデータを検索する。 そして、 検索回路 1 2 6は、 合致したデータが格納されて いる領域のメモリアドレスを取得し、 コンテキスト RAM I 3 0に対して出力する 。 すると、 コンテキスト R AM I 3 0から、 メモリアドレスに対応する領域に格納 された検索結果候補が取り出され、 検索結果としてネットワークプロセッサ 1 1 0 に送られる。 これで Layer4の検索処理が完了する。 FIG. 9 is a diagram illustrating a port number search process. As shown 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 applied mask information 523. The search circuit 126 extracts the mask information 123b corresponding to “MASK # 2” set in the applied mask information 523 from the mask information group 123, and extracts the mask area (the area not to be searched) of the data storage circuit 121. decide. In the example of FIG. 9, the area 121a in which the IP address is stored is out of the search target, and the area 121b in which the port number is to be stored is the search target. Next, the search circuit 1 26 searches the area 1 2 1 b to be searched for data matching the search key 5 1 2. 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 I 30. Then, the search result candidates stored in the area corresponding to the memory address are extracted from the context RAM I 30 and sent to the network processor 110 as search results. This completes the Layer 4 search process.
次に、 入力されたパケットの内容に応じて、 そのパケットの送信者とデータ中継 装置の管理者との間の契約内容に応じた付加サービスを提供する場合のネットヮー クプロセッサの処理手順を説明する。  Next, a description will be given of a processing procedure of the network processor when providing an additional service according to the contents of a contract between the sender of the packet and the administrator of the data relay device according to the contents of the input packet. .
図 1 0は、 第 1の実施の形態に係るネットワークプロセッサにおけるサービス内 容判定処理を示すシーケンス図である。 以下、 図 1 0に示す処理をステップ番号に 沿って説明する。  FIG. 10 is a sequence diagram illustrating a service content determination process in the network processor according to the first embodiment. Hereinafter, the processing illustrated in FIG. 10 will be described along the step numbers.
[ステップ S 1 ] ネットワークプロセッサ 1 1 0は、 バケツトを受け取ると、 送 信元の I Pアドレスやポート番号などの検索キーと、 検索キー毎の適用マスク情報 とを纏めて 1つの検索要求を生成する。  [Step S 1] Upon receiving the bucket, the network processor 110 generates one search request by combining the search key such as the IP address and port number of the transmission source and the applied mask information for each search key. .
[ステップ S 2 ] ネットワークプロセッサ 1 1 0は、 生成した検索要求を検索デ ータ入力バス 1 4 1へ出力する。 これにより、 C AMデバイス 1 2 0で検索キーに 応じた検索が行われる。  [Step S 2] The network processor 110 outputs the generated search request to the search data input bus 144. As a result, a search corresponding to the search key is performed in the CAM device 120.
[ステップ S 3 ] ネットワークプロセッサ 1 1 0は、 コンテキスト RAM I 3 0 のデータパス 1 4 3から、 I Pアドレスを検索キーとしたときの検索結果を受け取 る。 すると、 ネットワークプロセッサ 1 1 0は、 受信した検索結果を処理して、 パ ケットを送信した送信者 (契約者) を認識する。  [Step S 3] The network processor 110 receives a search result when the IP address is used as a search key, from the data path 144 of the context RAM I 30. Then, the network processor 110 processes the received search result and recognizes the sender (subscriber) who transmitted the packet.
[ステップ S 4 ] ネットワークプロセッサ 1 1 0は、 コンテキスト RAM I 3 0 のデータバス 1 4 3力 ら、 ポート番号を検索キーとしたときの検索結果を受け取る 。 すると、 ネットワークプロセッサ 1 1 0は、 受信した検索結果を処理して、 サー ビスクラスを認識する。  [Step S4] The network processor 110 receives a search result using the port number as a search key from the data bus 144 of the context RAM I30. Then, the network processor 110 processes the received search result and recognizes the service class.
このように、 ネットワークプロセッサ 1 1 0からの検索要求を、 1つのパケット 転送に対して常に 1回で済ませることで、 検索データ入力パス 1 4 1を介した検索 要求の送信を効率よく行うことができる。 し力も、 検索要求において、 検索キー毎 に適用マスクを指定できるため、 C AMデバイス内に検索対象領域を限定すること ができ、 検索効率が向上する。 In this way, the search request from the network processor 110 is sent to one packet. By performing the transfer only once, the search request can be transmitted efficiently via the search data input path 141. In addition, since the application mask can be specified for each search key in the search request, the search target area can be limited in the CAM device, and the search efficiency is improved.
[第 2の実施の形態]  [Second embodiment]
第 2の実施の形態は、 1つの検索要求に基づいて実施された検索結果を纏めたう えで、 ネットワークプロセッサに返すようにしたものである。 すなわち、 第 1の実 施の形態では、 検索要求に複数の検索キーが含まれていた場合、 複数回の検索が行 われ、 その都度、 コンテキスト RAMから検索結果が出力される。 このとき、 ネッ トワークプロセッサでは、 1回の検索要求に対して、 複数の検索結果を受け取るこ ととなる。 そのため、 ネットワークプロセッサ内で、 複数の検索結果の関連性を判 断する処理が必要となる。 一方、 第 2の実施の形態では、 C AMデバイスにおいて 複数の検索結果を纏めた後、 ネットワークプロセッサに送信する。 これにより、 ネ ットワークプロセッサにおける処理が簡略ィ匕され、 パケット転送処理の高速化が図 れる。  In the second embodiment, search results executed based on one search request are combined and returned to the network processor. That is, in the first embodiment, when a search request includes a plurality of search keys, 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 multiple search results for one search request. Therefore, processing to determine the relevance of multiple search results is required in the network processor. On the other hand, in the second embodiment, a plurality of search results are compiled in the CAM device and then transmitted to the network processor. This simplifies the processing in the network processor, and speeds up the packet transfer processing.
図 1 1は、 第 2の実施の形態に係るデータ中継装置の構成例を示す図である。 デ ータ中継装置 6 0 0は、 複数の物理ポート 6 0 1〜 6 0 8、 ネットワークプロセッ サ 6 1 0、 C AMデバイス 6 2 0、 およびコンテキスト RAM 6 3 0を有している 物理ポート 6 0 1〜6 0 8は、 ネットワークプロセッサ 6 1 0に接続されている 。 ネットワークプロセッサ 6 1 0と C AMデノ イス 6 2 0とが入出力バス 6 4 1に より接続されている。 C AMデバイス 6 2 0とコンテキスト R AM 6 0とがアドレ スバス 6 4 2とデータバス 6 4 3とにより接続されている。  FIG. 11 is a diagram illustrating a configuration example of the data relay device according to the second embodiment. The data relay device 600 has a plurality of physical ports 600 to 608, a network processor 610, a CAM device 620, and a physical port 6 having a context RAM 630. 0 1 to 6 0 8 are connected to the network processor 6 10. The network processor 610 and the CAM device 620 are connected by an input / output bus 640. The CAM device 62 and the context RAM 60 are connected by an address bus 642 and a data bus 643.
ここで、 ネットワークプロセッサ 6 1 0は、 物理ポートから入力されたバケツト に関する経路選択のための検索要求を C AMデパイス 6 2 0に送信する。 この検索 要求には、 複数の検索キーが含まれるものとする。  Here, the network processor 610 transmits a search request for route selection regarding the bucket input from the physical port to the CAM de-compiler 6200. This search request shall include multiple search keys.
C AMデバイス 6 2 0は、 検索キーに応じた検索を行う。 C AMデバィス 6 2 0 は、 検索キーによる検索の結果得られるメモリアドレスを、 アドレスパス 6 4 2を 介してコンテキスト R AM 6 3 0に入力する。 すると、 コンテキスト R AM 6 3 0 からは、 入力されたメモリアドレスに応じたデータがデータバス 6 4 3力 ら出力さ れる。 The CAM device 620 performs a search according to the search key. C AM device 6 2 0 Inputs the memory address obtained as a result of the search using the search key to the context RAM 6330 via the address path 642. Then, from the context RAM 630, data corresponding to the input memory address is output from the data bus 634.
複数回行なわれたコンテキスト R AM 6 3 0の出力結果は、 C AMデバイス 6 2 0に戻されて、 検索結果毎にレジスタなどに格納さる。 そして、 検索要求に対応す る全ての検索結果がレジスタに格納されると、 C AMデバイス 6 2 0は、 複数の検 索結果をひとまとまりの検索結果として、 ネットワークプロセッサ 6 1 0に渡す。 このような処理を実現するには、 C AMデバイス 6 2 0内に検索結果を格納する レジスタを設ける必要がある。  The output result of the context RAM 630 performed multiple 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 transfers the plurality of search results to the network processor 610 as a group of search results. To realize such processing, it is necessary to provide a register for storing the search result in the CAM device 620.
図 1 2は、 第 2の実施の形態における C AMデバイスの構成を示す図である。 図 1 2に示す様に C AMデパイス 6 2 0は、 データ記憶回路 6 2 1、 コマンドフォー マツト定義情報 6 2 2、 マスク情報群 6 2 3、 解析回路 6 2 4、 検索条件格納部 6 2 5、 検索回路 6 2 6、 検索結果格納部 6 2 7、 および出力回路 6 2 8を有してい る。 ここで、 図 1 2に示す各構成要素は、 図 5に示した第 1の実施の形態における 同名の要素の機能に加え、 以下の機能を有している。  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 has a data storage circuit 621, a command format definition information 622, a mask information group 623, an analysis circuit 624, and a search condition storage unit 622. 5. It has a search circuit 626, a search result storage section 627, and an 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.
解析回路 6 2 4は、 図 5に示した第 1の実施の形態における解析回路 1 2 4と同 じ機能を有していると共に、 検索要求の識別情報と、 その検索要求に含まれる検索 キーの数とを検索条件に付加する機能を有している。 たとえば、 解析回路 6 2 4は 、 検索キー、 適用マスク情報、 入力された各検索要求の識別番号、 および検索要求 内の検索キーの数を示す情報により検索条件を生成し、 検索条件格納部 6 2 5内の レジスタに格納する。  The analysis circuit 624 has the same function as the analysis circuit 124 in the first embodiment shown in FIG. 5, and further includes the identification information of the search request and the search key included in the search request. And a function of adding the number of search conditions to the search condition. For example, the analysis circuit 624 generates a search condition based on a search key, applied mask information, an identification number of each input search request, and information indicating the number of search keys in the search request. 25 Store in the register in 5.
検索条件格納部 6 2 5内の各レジスタは、 検索キーと適用マスク情報とに加え、 検索要求の識別情報と検索キーの数とを格納できるだけのデータ容量を有している 検索回路 6 2 6は、 データ記憶回路 6 2 1の検索によって得られたメモリアドレ スをコンテキスト RAM 6 3 0に送信すると同時に、 検索キーに付加されていた検 索要求の識別情報と検索キーの数とを、 検索結果格納部 6 2 7内のレジスタに格納 する。 そのレジスタには、 コンテキスト R AM 6 3 0から出力される検索結果も格 納される。 これにより、 コンテキスト RAM 6 3 0から出力される検索結果と、 検 索要求の識別情報およびその検索要求に含まれる検索キーの数が関連付けられる。 検索結果格納部 6 2 7は、 識別情報、 検索キーの数、 およびコンテキスト RAM 6 3 0から出力された検索結果を格納する複数のレジスタで構成される。 Each register in the search condition storage unit 6 25 has a data capacity enough to store the search request identification information and the number of search keys in addition to the search key and the applied mask information. Transmits the memory address obtained by the search of the data storage circuit 621 to the context RAM 630, and at the same time, transmits the memory address obtained by the search key. The identification information of the search request and the number of search keys are stored in a register in the search result storage section 627. The search result output from the context RAM630 is also stored in the register. As a result, 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. The search result storage section 627 is composed of a plurality of registers for storing identification information, the number of search keys, and the search result output from the context RAM 630.
出力回路 6 2 8は、 検索結果格納部 6 2 7に格納された情報を参照し、 検索要求 に対応する検索結果が、 その検索要求に含まれる検索キーの数だけ格納されたら、 それらの検索結果を纏めて、 ネットワークプロセッサ 6 1 0に渡す。  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 is performed. The results are compiled and passed to the network processor 6 10.
図 1 3は、 第 2の実施の形態における検索処理を示す図である。 たとえば、 1回 目の検索でェントリ 6 5 1がヒットし、 そのメモリアドレスがァドレスバス 6 4 2 を介してコンテキスト RAM 6 3 0に入力される。 すると、 入力されたメモリアド レスに対応する情報 6 5 2が検索結果として、 データバス 6 4 3を介して C AMデ バイス 6 2 0に渡される。 C AMデバイス 6 2 0では、 検索結果として送られた情 報 6 5 2がー且検索結果格納部 6 2 7内のレジスタに格納される。  FIG. 13 is a diagram illustrating a search process according to the second embodiment. For example, the first search hits entry 651, and its memory address is input to context RAM 630 via address bus 640. Then, information 652 corresponding to the input memory address is passed to the CAM device 62 through the data bus 643 as a search result. In the CAM device 62, the information 652 sent as the search result is stored in a register in the search result storage unit 627.
続く 2回目の検索でエントリ 6 6 1がヒットし、 そのメモリアドレスがアドレス パス 6 4 2を介してコンテキスト RAM 6 3 0に入力される。 すると、 入力された メモリアドレスに対応する情報 6 6 2が検索結果として、 データバス 6 4 3を介し て C AMデバイス 6 2 0に渡される。 C AMデバイス 6 2 0では、 検索結果として 送られた情報 6 6 2がー且検索結果格納部 6 2 7内のレジスタに格納される。  In the subsequent second search, entry 661 is hit, and its memory address is input to context RAM 6330 via address path 642. Then, information 626 corresponding to the input memory address is passed to the CAM device 620 via the data bus 640 as a search result. In the CAM device 620, the information 626 transmitted as a search result is stored in a register in the search result storage unit 627.
検索要求に含まれる検索キーが 2つだけであれば、 その検索要求に対応する検索 結果の数が 2になったことにより、 それらの検索結果が統合され、 入出力バス 6 4 1を介して、 ネットワークプロセッサ 6 1 0へ送られる。  If only two search keys are included in the search request, the number of search results corresponding to the search request becomes two, and the search results are integrated and are connected via the I / O bus 641 Sent to the network processor 6 10.
次に、 入力されたバケツトの内容に応じて、 そのパケットの送信者とデータ中継 装置の管理者との間の契約内容に応じた付加サービスを提供する場合のネットヮー クプロセッザの処理手 jl頃を説明する。  Next, a description will be given of the network processor processor jl when providing additional services according to the contract between the sender of the packet and the administrator of the data relay device according to the contents of the input bucket. I do.
図 1 4は、 第 2の実施の形態に係るネットワークプロセッサにおけるサービス内 容判定処理を示すシーケンス図である。 以下、 図 1 4に示す処理をステップ番号に 沿って説明する。 , FIG. 14 is a diagram showing a service in the network processor according to the second embodiment. It is a sequence diagram which shows a capacity determination process. Hereinafter, the processing illustrated in FIG. 14 will be described along the step numbers. ,
[ステップ S 1 1 ] ネットワークプロセッサ 6 1 0は、 パケットを受け取ると、 送信元の I Pァドレスやポート番号などの検索キーと、 検索キー毎の適用マスク情 報とを纏めて 1つの検索要求を生成する。  [Step S11] Upon receiving the packet, the network processor 610 generates one search request by combining the search key such as the IP address and port number of the transmission source and the applied mask information for each search key. I do.
[ステップ S 1 2 ] ネットワークプロセッサ 6 1 0は、 生成した検索要求を入出 力バス 6 4 1へ出力する。 これにより、 C AMデバイス 6 2 0で検索キーに応じた 検索が行われる。 そして、 C AMデバイス 6 2 0において、 複数の検索結果が纏め られる。  [Step S12] The network processor 610 outputs the generated search request to the input / output bus 641. As a result, a search corresponding to the search key is performed in the CAM device 620. Then, in the CAM device 620, a plurality of search results are put together.
[ステップ S 1 3 ] ネットワークプロセッサ 6 1 0は、 入出力バス 6 4 1力、ら、 [Step S 13] The network processor 6 10 is connected to the input / output bus 6 4 1
I Pアドレスを検索キーとしたときの検索結果と、 ポート番号を検索キーとしたと きの検索結果とを受け取る。 すると、 ネットワークプロセッサ 6 1 0は、 受信した 検索結果を処理して、 パケットを送信した送信者 (契約者) とサービスクラスとを 認識する。 The search result when the IP address is used as the search key and the search result when the port number is used as the search key are received. Then, the network processor 610 processes the received search result and recognizes the sender (subscriber) who transmitted the packet and the service class.
このようにして、 ネットワークプロセッサからの 1回の検索要求に対して、 検索 結果を 1回で返すことができる。 これにより、 ネットワークプロセッサ 6 1 0にお V、て検索結果を纏める処理が不要となる。  In this way, a single search request from the network processor can return the search result once. As a result, there is no need for the network processor 6110 to process the search results by V.
すなわち、 一般に C AMデバイスでは検索ビット幅の大小によりエントリ検索に 要する時間が異なる場合がある。 そのため、 コンテキスト RAMへのアドレス発行 タイミングにずれが生じる場合がある。 第 2の実施の形態によれば、 ネットワーク プロセッサは複数の検索結果を纏めて受け取ることができ、 C AMデバィスでの検 索毎の検索に要する時間の差、 すなわちコンテキスト RAMからの結果出力のタイ ミングに留意した検索結果の関連性判断処理が不要となる。  That is, in general, the time required for entry search may differ depending on the search bit width of the CAM device. Therefore, the timing of issuing addresses to the context RAM may be shifted. According to the second embodiment, the network processor can collectively receive a plurality of search results, and the difference in the time required for each search in the CAM device, that is, the timing of the result output from the context RAM. This eliminates the need for processing for determining the relevancy of search results with attention to the mining.
[第 3の実施の形態]  [Third embodiment]
第 3の実施の形態は、 複数のネットワークプロセッサを有するデータ中継装置に 本発明を適用したものである。  In the third embodiment, the present invention is applied to a data relay device having a plurality of network processors.
図 1 5は、 第 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 device according to the third embodiment has a plurality of network processors 701, 702, 703, a CAM device 704, and a context RAM 705.
ネットワークプロセッサ 701は、 出力インタフェース 71 1を介して CAMバ ス 721に接続されている。 ネットワークプロセッサ 702は、 出力インタフエ一 ス 712を介して CAMバス 721に接続されている。 ネットワークプロセッサ 7 03は、 出力インタフェース 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 an 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 an arbitration function for multiple data transfer requests (processing for the network processor to become a bus master that can occupy the bus).
CAMデバイス 704は、 出力インタフェース (コンテキスト RAM705のァ ドレスバス) 723を介してコンテキスト RAM705に接続されている。 コンテ キスト RAM705は、 出力インタフェース (コンテキスト RAM 705のデータ バス) 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) 723. The context RAM 705 is connected to a context RAM path 725 via an output interface (data bus of the context RAM 705) 724. 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 an 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で調停されて C AMデバイス 704へこの検索要求が入力される。 すると、 CAMデバイス 704 が検索を行う。 検索処理においてヒットまたはミスヒットした情報が、 読み出しァ ドレスとしてコンテキスト RAM705に入力される。 ここで検索が複数回に渡る 場合もある。 コンテキスト RAM705で該当するァドレスのデータすなわち検索結果がコン テキスト RAM705の出力インタフェース 724力 ら出力され、 検索要求を発行 したネットワークプロセッサに渡される。 Each of the network processors 701, 702, and 703 issues a search request including a search key, applicable mask information, and a search command from the output interfaces 711, 712, and 713 to the CAM device 704, respectively. This search request is input to the CAM device 704 after arbitration in the CAM path 721. Then, the CAM device 704 performs a search. The information hit or missed in the search processing is input to the context RAM 705 as a read address. Here, the search may be repeated several times. 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 passed to the network processor which issued the search request.
このように、 複数のネットワークプロセッサ 701〜703を有するデータ中継 装置に本発明を適用すれば、 ネットワークプロセッサ 701〜 703間の検索要求 が転送するフレームに対して 1回しか行われないため、 CAMパス 721における 調停処理負荷が軽減される。 その結果、 スムーズな検索要求の受け渡しが可能とな る。  As described above, if the present invention is applied to a data relay device 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 in 721 is reduced. As a result, it is possible to smoothly transfer search requests.
[第 4の実施の形態]  [Fourth embodiment]
第 4の実施の形態は、 複数のネットワークプロセッサを有するデータ中,權装置に おいて、 検索結果をとりまとめる機能を CAMに搭載したものである。  In the fourth embodiment, a function for collecting search results in a right device in data having a plurality of network processors is mounted on 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 device according to the fourth embodiment has a plurality of network processors 801, 802, 803, a CAM device 804, and a context RAM 805.
ネットワークプロセッサ 801は、 入出力インタフェース 81 1を介して CAM バス 821に接続されている。 ネットワークプロセッサ 802は、 入出力インタフ エース 812を介して CAMバス 821に接続されている。 ネットワークプロセッ サ 803は、 入出力インタフェース 813を介して CAMバス 821に接続されて いる。 CAMバス 821は、 入出力インタフェース 822を介して CAMデバイス 804に接続されている。 CAMパス 821は、 複数のデータ転送要求の調停機能 (ネットワークプロセッサがパスを占有できるパスマスタになるための処理) を有 している。 CAMデバイス 804は、 コンテキスト RAM805との入出力インタ フェース 823 (アドレスバスとデータバスとを含む) を介して、 コンテキスト R AM805に接続されている。  The network processor 801 is connected to a CAM bus 821 via an input / output interface 81 1. The network processor 802 is connected to the CAM bus 821 via an input / output interface 812. The network processor 803 is connected to the CAM bus 821 via an input / output interface 813. The CAM bus 821 is connected to a CAM device 804 via an input / output interface 822. The CAM path 821 has a function of arbitrating a plurality of data transfer requests (processing for the network processor to become a path master that can occupy the path). 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.
なお、 C AMデバイス 804は、 図 12に示した第 2の実施の形態に係る C AM デパイス 620と同様の内部構成である。 このような構成のデータ中継装置において、 各ネットワークプロセッサ 8 0 1, 8 0 2 , 8 0 3は、 それぞれの入出力インタフェース 8 1 1 , 8 1 2, 8 1 3力 ら 検索キー、 マスク情報、 検索コマンドを含む検索要求を発行する。 検索要求は C A Mバス 8 2 1で調停されて、 入出力インタフェース 8 2 2経由で C AMデバイス 8 0 4に渡される。 C AMデパイス 8 0 4は、 検索要求に応じて検索を行う。 そして 、 C AMデバイス 8 0 4の検索処理においてヒットまたはミスヒットした情報がコ ンテキスト RAM 8 0 5へのァドレスとして、 入出力インタフェース 8 2 3を介し てコンテキスト RAM 8 0 5へ入力される。 すると、 コンテキスト RAM 8 0 5か ら該当するァドレスのデータ、 すなわち検索結果が入出力インタフェース 8 2 3を 介して C AMデパイス 8 0 4へ出力される。 Note that 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 device having such a configuration, each of the network processors 801, 802, 803 uses a search key, mask information, Issues a search request that includes a search command. The search request is arbitrated by the CAM bus 822 and passed to the CAM device 804 via the input / output interface 822. The CAM DePay 804 performs a search in response to a search request. The information hit or missed in the search process 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 of 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.
C AMデバイス 8 0 4は、 1つの検索要求に複数の検索キーが含まれていた場合 、 各検索キーに応じた検索結果が得られるまで、 取得した検索結果を保持する。 そ して、 C AMデバイス 8 0 4は、 同一検索要求に基づく全ての検索結果が揃うと、 各検索結果を纏めて、 検索要求を発行したネットワークプロセッサに返す。  If one search request includes a plurality of search keys, the CAM device 804 holds the obtained 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 the search results and returns the result to the network processor that issued the search request.
なお、 上記の各実施の形態では、 データ中継装置内に C AMデバイスやコンテキ スト R AMをそれぞれ 1つだけ示しているが、 C AMデバイスやコンテキスト RA Mを、 それぞれ 1チップに限定しているものではない。 すなわち、 メモリ空間が必 要な場合、 C AMデバイスやコンテキスト RAMを、 それぞれ複数チップで構成す ることもできる。 ただし、 個々のチップが個別の処理を行っているわけではなく、 複数のチップが一体となって、 上記実施の形態の C AMデバイスやコンテキスト R AMの処理を実現する。  In each of the above embodiments, only one CAM device and one context RAM are shown in the data relay device, but each CAM device and context RAM is limited to one chip. Not something. In other words, if memory space is required, each CAM device and context RAM can be composed of multiple chips. However, individual chips do not individually perform processing, and a plurality of chips are integrated to realize the processing of the CAM device and the context RAM of the above embodiment.
以上説明したように本発明では、 複数の検索キーと適用マスク情報とを 1つの検 索要求で出力し、 連想メモリデバイスにおいて検索要求を解析し、 検索キーと適用 マスク情報とからなる検索条件を生成するようにした。 そのため、 1つのパケット の転送に付き連想メモリデバイスに対する複数回の検索が必要な場合であっても、 検索要求の転送が 1回ですむ。 その結果、 検索キーの受け渡しが効率よく行われ、 検索処理の効率化が図れる。 上記については単に本発明の原理を示すものである。 さらに、 多数の変形、 変更 が当業者にとって可能であり、 本発明は上記に示し、 説明した正確な構成および応 用例に限定されるものではなく、 対応するすべての変形例おょぴ均等物は、 添付の 請求項およぴその均等物による本発明の範囲とみなされる。 As described above, in the present invention, a plurality of search keys and applied 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 applied mask information is obtained. Generated. Therefore, even if multiple searches for the associative memory device are required to transfer one packet, only one transfer of the search request is required. As a result, the retrieval key is efficiently exchanged, and the retrieval process can be made more efficient. The above merely illustrates the principles of the invention. In addition, many modifications and changes will be apparent to those skilled in the art and the present invention is not limited to the exact configuration and application shown and described above, but all corresponding modifications and equivalents may be made It is considered the scope of the present invention by the appended claims and their equivalents.

Claims

請 求 の 範 囲 The scope of the claims
1 . 伝送されるパケットを中継するデータ中継装置にお!/ヽて、 1. To the data relay device that relays the transmitted packet!
前記パケットが入力されると、 前記パケット内の複数の要素を検索キーとし、 複 数の前記検索キーと、 前記検索キーそれぞれによる検索の対象範囲を示す複数の適 用マスク情報とを含めた検索要求を出力するネットワークプロセッサと、  When the packet is input, a plurality of elements in the packet are used as search keys, and a search including a plurality of the search keys and a plurality of applied mask information indicating a search target range by each of the search keys is performed. A network processor for outputting the request,
複数の検索対象情報を記憶しており、 前記ネットワークプロセッサから出力され た前記検索要求を受け取り、 前記検索要求の構造を解析して前記検索キーと前記適 用マスク情報とからなる複数の検索条件を生成し、 前記検索条件に応じて前記検索 対象情報の検索を行い、 検出された前記検索対象情報に一意に関連付けられたメモ リアドレスを出力する連想メモリデバイスと、  It stores a plurality of search target information, receives the search request output from the network processor, analyzes a structure of the search request, and generates a plurality of search conditions including the search key and the applied mask information. An associative memory device that generates, searches for the search target information according to the search condition, and outputs a memory address uniquely associated with the detected search target information;
複数の検索結果候補を記憶しており、 前記連想メモリデバイスから出力された前 記メモリアドレスに対応付けて格納されている前記検索結果候補を検索結果として 出力するメモリデバイスと、  A memory device that stores a plurality of search result candidates, and outputs the search result candidates stored in association with the memory address output from the associative memory device as search results;
を有することを特徴とするデータ中継装置。  A data relay device comprising:
2. 前記メモリデパイスは、 前記メモリアドレスに対応するデータ格納領域に格 納されている前記検索結果候補を、 検索結果として前記ネットワークプロセッサに 対して出力することを特徴とする請求の範囲第 1項記載のデータ中継装置。  2. The memory 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. The data relay device according to the above.
3 . 前記メモリデバイスは、 前記メモリアドレスに対応するデータ格納領域に格 納されている前記検索結果候補を、 検索結果として前記連想メモリデバイスに対し て出力することを特徴とする請求の範囲第 1項記載のデータ中継装置。  3. The memory 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. The data relay device according to the item.
4 . 前記連想メモリデバイスは、 出力した前記メモリアドレスに応じて返される 前記検索結果をパッファに格納し、 前記検索要求に含まれる前記検索キー毎の検索 結果を 1つに纏めて前記ネットワークプロセッサに対して出力することを特徴とす る請求の範囲第 3項記載のデータ中継装置。  4. The associative memory device stores the search result returned according to the output memory address in a buffer, and combines the search results for each of the search keys included in the search request into one to the network processor. 4. The data relay device according to claim 3, wherein the data relay device outputs the data.
5 . 前記ネットワークプロセッサが複数設けられており、 複数の前記ネットヮ一 クプロセッサから出力される前記検索要求は、 調停が行われる共通のバスを経由し て出力されることを特徴とすることを特徴とする請求の範囲第 1項記載のデータ中 継装置。 5. The plurality of network processors are provided, and the search requests output from the plurality of network processors are transmitted via a common bus for arbitration. 2. The data relay device according to claim 1, wherein the data relay device outputs the data.
6 . 前記連想メモリデバイスは、 前記適用マスク情報で特定される記憶領域を検 索対象外として、 検索対象となる記憶領域の中から、 前記検索キーに合致する前記 検索対象情報を検索することを特徴とする請求の範囲第 1項記載のデータ中継装置  6. The associative memory device excludes the storage area specified by the applied mask information from the search target, and searches the storage area to be searched for the search target information that matches the search key. The data relay device according to claim 1, characterized in that:
7 . 前記連想メモリデパイスは、 検索対象外の記憶領域を示す複数のマスク情報 を予め記憶しており、 前記適用マスク情報にぉレ、て指定された前記マスク情報を適 用して前記適用マスク情報に対応する前記検索キーの検索を行うことを特徴とする 請求の範囲第 6項記載のデータ中継装置。 7. The associative memory device stores a plurality of pieces of mask information indicating storage areas not to be searched in advance, and applies the mask information specified by referring to the applied mask information. 7. The data relay device according to claim 6, wherein the search key corresponding to information is searched.
8 . 前記連想メモリデバイスは、 複数の前記検索条件を格納するためのレジスタ 群を有しており、 前記検索要求を受け取る度に前記検索条件を前記レジスタ群に格 納し、 先に格納された前記検索条件から順に抽出し、 抽出した前記検索条件に応じ た検索処理を行うことを特徴とする請求の範囲第 1項記載のデータ中継装置。  8. The associative memory device has a register group for storing a plurality of the search conditions. Each time the search request is received, the search condition is stored in the register group, and is stored first. 2. The data relay device according to claim 1, wherein the data relay device is sequentially extracted from the search condition, and performs a search process according to the extracted search condition.
9 . 前記連想メモリデバイスは、 前記検索要求のデータ構造を定義した定義情報 を有しており、 前記定義情報に従って前記検索要求を解析することを特徴とする請 求の範囲第 1項記載のデータ中,継装置。 9. The data 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. Middle, joint device.
1 0. 記憶した検索対象情報の検索機能を有する連想メモリデバイスにおいて、 複数の検索対象情報を記憶するデータ記憶回路と、  10. In an associative memory device having a search function of stored search target information, a data storage circuit storing a plurality of search target information;
複数の検索キーと前記検索キーそれぞれによる検索の対象範囲を示す複数の適用 マスク情報とを含めた検索要求が入力されると、 前記検索要求の構造を解析して前 記検索キーと前記適用マスク情報とからなる複数の検索条件を生成する解析回路と 前記検索回路で検索された前記検索条件に対応する前記検索対象情報を前記デー タ記憶回路内から検索し、 検出された前記検索対象情報に一意に関連付けられたメ モリアドレスを出力する検索回路と、  When a search request including a plurality of search keys and a plurality of application mask information indicating a range to be searched by each of the search keys is input, the structure of the search request is analyzed and the search key and the applied mask are analyzed. An analysis circuit for generating a plurality of search conditions composed of information; and searching the data storage circuit for the search target information corresponding to the search condition searched by the search circuit. A search circuit that outputs a uniquely associated memory address;
を有することを特徴とする連想メモリデバイス。 1 1 · 複数のレジスタ群を更に有し、 A content addressable memory device, comprising: 1 1 · It further has a plurality of register groups,
前記解析回路は、 前記検索要求を解析することで生成した前記検索条件を、 前記 レジスタ群に格納し、  The analysis circuit stores the search condition generated by analyzing the search request in the register group,
前記検索回路は、 前記レジスタ群に格納された順に前記検索条件を抽出し、 抽出 した前記検索条件に応じた検索処理を行うことを特徴とする請求の範囲第 1 0項記 載の連想メモリデバイス。  The associative memory device according to claim 10, wherein the search circuit extracts the search conditions in the order in which the search conditions are stored in the register group, and performs a search process according to the extracted search conditions. .
1 2 . パケットに関連する情報を連想メモリデバイスを利用して検索するための 連想メモリデバイス利用情報検索方法にぉレ、て、  1 2. An associative memory device utilization information retrieval method for retrieving information related to a packet using an associative memory device.
ネットワークプロセッサにおいて、 入力された前記バケツト内の複数の要素を検 索キーとし、 複数の前記検索キーと、 前記検索キーそれぞれによる検索の対象範囲 を示す複数の適用マスク情報とを含めた検索要求を出力し、  In the network processor, a plurality of input elements in the bucket are used as a search key, and a search request including a plurality of the search keys and a plurality of application mask information indicating a search target range by each of the search keys is provided. Output,
前記検索要求の構造を解析して前記検索キーと前記適用マスク情報とカゝらなる複 数の検索条件を生成し、  Analyzing the structure of the search request to generate a plurality of search conditions including the search key, the applied mask information, and a plurality of search conditions;
前記連想メモリデパイスにお 、て予め記憶してレ、る複数の検索対象情報から前記 検索条件に対応する前記検索対象情報を検索し、 前記検索条件に対応する前記検索 対象情報に一意に関連付けられたメモリアドレスを出力し、  In the associative memory device, the search target information corresponding to the search condition is searched from a plurality of search target information stored in advance and uniquely associated with the search target information corresponding to the search condition. Output the memory address
複数の検索結果候補が格納されたメモリデバイスから、 前記メモリアドレスに対 応付けて格納されて ヽる前記検索結果候補を検索結果として出力する、  Outputting, as a search result, the search result candidate stored from the memory device storing the plurality of search result candidates in association with the memory address;
ことを特徴とする連想メモリデバィス利用情報検索方法。  A method for retrieving information using associative memory devices.
PCT/JP2002/013042 2002-12-12 2002-12-12 Data relay apparatus, associative memory device, and associative memory device utilization information search method WO2004054186A1 (en)

Priority Applications (3)

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
JP2004558387A JP3837670B2 (en) 2002-12-12 2002-12-12 Data relay apparatus, associative memory device, and associative memory device utilization information retrieval method
US11/055,330 US7249216B2 (en) 2002-12-12 2005-02-10 Data relay apparatus, content addressable/associative memory device, and content addressable/associative memory device use information search method

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/055,330 Continuation US7249216B2 (en) 2002-12-12 2005-02-10 Data relay apparatus, content addressable/associative memory device, and content addressable/associative memory device use information search method

Publications (1)

Publication Number Publication Date
WO2004054186A1 true WO2004054186A1 (en) 2004-06-24

Family

ID=32500630

Family Applications (1)

Application Number Title Priority Date Filing Date
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

Country Status (2)

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

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7504513B2 (en) 2006-02-27 2009-03-17 Hoffman-La Roche Inc. Thiazolyl-benzimidazoles
US7825246B2 (en) 2005-11-01 2010-11-02 Targegen, Inc. Bi-aryl meta-pyrimidine inhibitors of kinases
US8133900B2 (en) 2005-11-01 2012-03-13 Targegen, Inc. Use of bi-aryl meta-pyrimidine inhibitors of kinases
US8372971B2 (en) 2004-08-25 2013-02-12 Targegen, Inc. Heterocyclic compounds and methods of use
US8481536B2 (en) 2004-04-08 2013-07-09 Targegen, Inc. Benzotriazine inhibitors of kinases
JP2018191210A (en) * 2017-05-10 2018-11-29 アラクサラネットワークス株式会社 Packet relay device and packet relay system
US10391094B2 (en) 2010-11-07 2019-08-27 Impact Biomedicines, Inc. Compositions and methods for treating myelofibrosis

Citations (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
US5978245A (en) * 1996-10-17 1999-11-02 Kawasaki Steel Corporation Associative memory device having circuitry for storing a coincidence line output
JP2001156840A (en) * 1999-11-25 2001-06-08 Nec Corp Method and device for flow discrimination and method and device for flow processing
US20020067722A1 (en) * 2000-12-06 2002-06-06 Nec Corporation Packet transfer apparatus, transfer information management method used therfor and transfer information search method thereof
US20020073222A1 (en) * 2000-12-07 2002-06-13 Toshi Sonoda Packet transfer control method
US6411626B1 (en) * 1997-05-21 2002-06-25 Nec Corporation Connection number translating device and its method for translating connection number obtained from input ATM cell to system-inside number

Patent Citations (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
US5978245A (en) * 1996-10-17 1999-11-02 Kawasaki Steel Corporation Associative memory device having circuitry for storing a coincidence line output
US6411626B1 (en) * 1997-05-21 2002-06-25 Nec Corporation Connection number translating device and its method for translating connection number obtained from input ATM cell to system-inside number
JP2001156840A (en) * 1999-11-25 2001-06-08 Nec Corp Method and device for flow discrimination and method and device for flow processing
US20020067722A1 (en) * 2000-12-06 2002-06-06 Nec Corporation Packet transfer apparatus, transfer information management method used therfor and transfer information search method thereof
US20020073222A1 (en) * 2000-12-07 2002-06-13 Toshi Sonoda Packet transfer control method

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8481536B2 (en) 2004-04-08 2013-07-09 Targegen, Inc. Benzotriazine inhibitors of kinases
US8372971B2 (en) 2004-08-25 2013-02-12 Targegen, Inc. Heterocyclic compounds and methods of use
US7825246B2 (en) 2005-11-01 2010-11-02 Targegen, Inc. Bi-aryl meta-pyrimidine inhibitors of kinases
US8133900B2 (en) 2005-11-01 2012-03-13 Targegen, Inc. Use of bi-aryl meta-pyrimidine inhibitors of kinases
US8138199B2 (en) 2005-11-01 2012-03-20 Targegen, Inc. Use of bi-aryl meta-pyrimidine inhibitors of kinases
US7504513B2 (en) 2006-02-27 2009-03-17 Hoffman-La Roche Inc. Thiazolyl-benzimidazoles
US10391094B2 (en) 2010-11-07 2019-08-27 Impact Biomedicines, Inc. Compositions and methods for treating myelofibrosis
JP2018191210A (en) * 2017-05-10 2018-11-29 アラクサラネットワークス株式会社 Packet relay device and packet relay system

Also Published As

Publication number Publication date
JP3837670B2 (en) 2006-10-25
JPWO2004054186A1 (en) 2006-04-13

Similar Documents

Publication Publication Date Title
US7069268B1 (en) System and method for identifying data using parallel hashing
US7644080B2 (en) Method and apparatus for managing multiple data flows in a content search system
US7529746B2 (en) Search circuit having individually selectable search engines
US6665297B1 (en) Network routing table
US7539032B2 (en) Regular expression searching of packet contents using dedicated search circuits
US7539031B2 (en) Inexact pattern searching using bitmap contained in a bitcheck command
US7624105B2 (en) Search engine having multiple co-processors for performing inexact pattern search operations
US6956858B2 (en) Network routing table and packet routing method
US7237058B2 (en) Input data selection for content addressable memory
JP2001509978A (en) Fast Variable Length Best Match Lookup in Switching Devices
US7096277B2 (en) Distributed lookup based on packet contents
US20080013532A1 (en) Apparatus for hardware-software classification of data packet flows
CN100525240C (en) Data packet communication device
US8555374B2 (en) High performance packet processing using a general purpose processor
EP1244964B1 (en) Method and system for frame and protocol classification
US20140358886A1 (en) Internal search engines architecture
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
JP2002176431A (en) Packet transfer unit and transfer information management method used for it, and its transfer information retrieval method
US7249216B2 (en) Data relay apparatus, content addressable/associative memory device, and content addressable/associative memory device use information search method
WO2004054186A1 (en) Data relay apparatus, associative memory device, and associative memory device utilization information search method
US7924839B2 (en) Mechanism to reduce lookup latency in a pipelined hardware implementation of a trie-based IP lookup algorithm
JPH10257066A (en) Network address retrieval system
JP3228249B2 (en) Router device
WO2005067255A1 (en) Method, apparatus, system, and article of manufacture for grouping packets
JP2005502267A (en) Broadcast arbitration on multi-domain devices

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

WWE Wipo information: entry into national phase

Ref document number: 2004558387

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11055330

Country of ref document: US