WO2004054186A1 - Appareil de relais de donnees, dispositif de memoire associative et dispositif de memoire associative utilisant un procede de recherche d'information - Google Patents

Appareil de relais de donnees, dispositif de memoire associative et dispositif de memoire associative utilisant un procede de recherche d'information 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
English (en)
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/fr
Priority to JP2004558387A priority patent/JP3837670B2/ja
Publication of WO2004054186A1 publication Critical patent/WO2004054186A1/fr
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

Il est possible d'entrer efficacement une instruction de demande de recherche dans un dispositif de mémoire associative (CAM). Lorsqu'un paquet est entré, une demande de recherche (10) est générée par un processeur de réseau (1) et est transmise au dispositif de mémoire associative (2). Dans le dispositif de mémoire associative (2), la structure de la demande de recherche (10) est analysée et une pluralité de conditions de recherche est générée. Dans le dispositif de mémoire associative (2), la recherche est réalisée en fonction des conditions de recherche et une adresse de mémoire (21) correspondant aux informations relatives à l'objet de la recherche détectées est envoyée en sortie à un dispositif de mémoire (3). Depuis le dispositif de mémoire (3), un candidat de résultat de recherche correspondant à l'adresse de mémoire (21) est transféré sous forme de résultat recherche (22) au processeur de réseau (1).
PCT/JP2002/013042 2002-12-12 2002-12-12 Appareil de relais de donnees, dispositif de memoire associative et dispositif de memoire associative utilisant un procede de recherche d'information WO2004054186A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2002/013042 WO2004054186A1 (fr) 2002-12-12 2002-12-12 Appareil de relais de donnees, dispositif de memoire associative et dispositif de memoire associative utilisant un procede de recherche d'information
JP2004558387A JP3837670B2 (ja) 2002-12-12 2002-12-12 データ中継装置、連想メモリデバイス、および連想メモリデバイス利用情報検索方法
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 (fr) 2002-12-12 2002-12-12 Appareil de relais de donnees, dispositif de memoire associative et dispositif de memoire associative utilisant un procede de recherche d'information

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 (fr) 2004-06-24

Family

ID=32500630

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2002/013042 WO2004054186A1 (fr) 2002-12-12 2002-12-12 Appareil de relais de donnees, dispositif de memoire associative et dispositif de memoire associative utilisant un procede de recherche d'information

Country Status (2)

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

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 (ja) * 2017-05-10 2018-11-29 アラクサラネットワークス株式会社 パケット中継装置及びパケット中継システム
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 (ja) * 1995-12-22 1997-07-11 Asahi Kasei Micro Syst Kk 連想記憶装置
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 (ja) * 1999-11-25 2001-06-08 Nec Corp フロー識別装置、フロー処理装置、フロー識別方法及びフロー処理方法
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 (ja) * 1995-12-22 1997-07-11 Asahi Kasei Micro Syst Kk 連想記憶装置
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 (ja) * 1999-11-25 2001-06-08 Nec Corp フロー識別装置、フロー処理装置、フロー識別方法及びフロー処理方法
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 (ja) * 2017-05-10 2018-11-29 アラクサラネットワークス株式会社 パケット中継装置及びパケット中継システム

Also Published As

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

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
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
US6430190B1 (en) Method and apparatus for message routing, including a content addressable memory
US8228908B2 (en) Apparatus for hardware-software classification of data packet flows
JP2001509978A (ja) スイッチング装置における高速可変長ベストマッチルックアップ
US20030135691A1 (en) Input data selection for content addressable memory
US7096277B2 (en) Distributed lookup based on packet contents
CN100525240C (zh) 数据分组通信设备
US8555374B2 (en) High performance packet processing using a general purpose processor
EP1244964B1 (fr) Procede et systeme de classification de trames et de protocoles
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 (ja) パケット転送装置及びそれに用いる転送情報管理方法並びにその転送情報検索方法
US7249216B2 (en) Data relay apparatus, content addressable/associative memory device, and content addressable/associative memory device use information search method
WO2004054186A1 (fr) Appareil de relais de donnees, dispositif de memoire associative et dispositif de memoire associative utilisant un procede de recherche d'information
JPH10257066A (ja) ネットワークアドレス検索方式
JP3228249B2 (ja) ルータ装置
WO2005067255A1 (fr) Procede, appareil, systeme, et article de fabrication pour groupage de paquets
US7219211B1 (en) Precompute logic for software packet processing
JP2005502267A (ja) マルチドメイン・デバイスでのブロードキャストのアービトレーション

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