Name data retrieval device, name data retrieval system, and name data retrieval method
The name data search device addresses the limitations of existing TCAMs by employing multiple memory arrays, amplifiers, and comparators for parallel processing and flexible search operations, resulting in efficient and cost-effective handling of large name data.
Patent Information
- Application Number
- JP2023182315
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-10-24
- Publication Date
- 2025-05-09
AI Technical Summary
Existing TCAMs have limitations in handling large name data, as they require encoding to facilitate searches, which restricts exact match, longest match, or partial match searches, and suffer from high power consumption and expensive unit prices due to sequential processing and hardware dependencies.
A name data search device comprising multiple memory arrays, amplifiers, and comparators that allow for parallel processing and flexible search operations, including longest and partial match searches, by converting voltage data using mask data and utilizing multiple comparators for simultaneous searches.
Enables efficient and flexible search operations for large name data, reducing power consumption and costs by allowing parallel processing and standardization independent of specific SRAM cell designs, while supporting various search types including exact, longest, and partial matches.
Smart Images

Figure 2025071896000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a name data search device, a name data search system, and a name data search method for an information-centric network. [Background technology]
[0002] Recent network routers have functions such as IP address search, security search using an access control list, and flow search to know the network flow rate. Ternary Content Addressable Memory (TCAM) is generally used as hardware to realize these functions. This TCAM is capable of simultaneously and parallelly comparing external input data such as arrival of a packet at the router with the internal memory. This simultaneous parallel comparison is realized by mounting a comparator 400 in the memory cells 210 constituting the inside of the TCAM 200, for example, as shown in FIG. 8. In this case, each memory cell 210 has a comparison function in addition to data storage. For these reasons, the TCAM 200 has high performance not found in other memories. Furthermore, the following Patent Document 1 can be cited as an example of a technology using TCAM. [Prior art documents] [Non-patent literature]
[0003] [Patent Document 1] JP 2016-106341 A Summary of the Invention [Problem to be solved by the invention]
[0004] However, the TCAM disclosed in Patent Document 1 is considered to have a maximum search speed of 500 MHz and a maximum capacity of 80 Mb. In addition, the TCAM disclosed in Patent Document 1 is not intended to handle name data of 1 Kbit or more. For this reason, when the TCAM disclosed in Patent Document 1 handles name data indicating a search target that includes a large character string of data, it is necessary to convert the name data into a short search data length by encoding it. However, when the name data is encoded, although an exact match search is possible, there is a problem in that a longest match or partial match search is impossible.
[0005] Moreover, the TCAM disclosed in Patent Document 1 performs parallel processing within a memory array. For this reason, the TCAM disclosed in Patent Document 1 performs sequential processing of multiple searches required for one packet arrival, such as FIB (Forwarding Information Base), ACL (Access Control List), and Flow. The TCAM disclosed in Patent Document 1 also performs sequential processing of searches for multiple packets arriving at multiple lines of the router. For these reasons, the TCAM disclosed in Patent Document 1 performs multiple searches for multiple purposes when a packet arrives at the router. As a result, the TCAM disclosed in Patent Document 1 has problems such as high power consumption and high bit cost.
[0006] The present invention has been devised in consideration of the above-mentioned problems, and its object is to provide a name data search device, a name data search system, and a name data search method for an information-oriented network that can easily search for name data. [Means for solving the problem]
[0007] The name data search device of the first invention is characterized in that it comprises an SRAM (Static Random Access Memory) having two or more memory arrays each consisting of two or more cells that record voltages, an amplifier that amplifies the voltage of the cells in the memory array, and two or more comparators that compare voltage data based on the voltage amplified by the amplifier with name data based on the search target.
[0008] The name data search device of the second invention is characterized in that, in the first invention, two or more of the comparators convert the voltage data based on mask data for extracting different specific bits, and compare the converted voltage data with the name data.
[0009] The name data search method of the third invention is a name data search method using the name data search device of the first invention, and is characterized in that it comprises an output step of outputting the voltages of two or more cells of the memory array from the SRAM to the amplifier, an amplification step of amplifying the voltage output by the output step by the amplifier, and a comparison step of comparing voltage data based on the voltage amplified by the amplification step with the name data, and the output step, the amplification step, and the comparison step are repeatedly performed.
[0010] A fourth aspect of the present invention provides a name data search method according to the third aspect of the present invention, characterized in that the comparing step uses two or more comparators in parallel to compare the voltage data with the name data.
[0011] The name data search system of the fifth invention is characterized in that it comprises a recording means having two or more memory arrays each consisting of two or more cells for recording voltage, an amplification means for amplifying voltage data of the cells of the memory array, and two or more comparison means for comparing voltage data based on the voltage amplified by the amplifier with name data based on the search target. Effect of the Invention
[0012] According to the first to fifth inventions, the name data search device and the name data search system include an SRAM, an amplifier, and two or more comparators. Thus, by providing the function of TCAM, such as two or more comparators, outside the SRAM, the voltage data from the SRAM is amplified by the amplifier, and the driving capability can be improved compared to the case where a comparator is provided in a cell in the memory array. This makes it possible to easily search for name data even when the name data is large. In addition, the name data search device includes a comparator or the like at the output stage of the amplifier connected to the bit line of the SRAM. This makes it possible to provide a common technology that is not dependent on the unique SRAM cells owned by companies or factories.
[0013] In particular, according to the second aspect of the present invention, two or more comparators convert the voltage data based on different mask data, and compare the converted voltage data with the name data based on the search target. This allows each comparator to perform a search with a different purpose, making it possible to perform parallel processing that programmably executes all necessary searches at once. This makes it possible to search large data such as name data.
[0014] In particular, according to the third aspect of the present invention, the name data search method repeats an output step, an amplification step, and a comparison step, thereby making it possible to sequentially process the comparison between the voltage data and the name data outside the memory array, thereby making it possible to search for the name data more efficiently.
[0015] In particular, according to the fourth aspect of the present invention, the name data search method uses two or more comparators in parallel to compare voltage data and name data, which makes it possible for each comparator to use a different calculation method and perform simultaneous searches, thereby making it possible to search for name data more efficiently. [Brief description of the drawings]
[0016] [Figure 1]FIG. 1 is a diagram showing the overall configuration of a name data search device to which an embodiment of the present invention is applied. [Diagram 2] FIG. 2 is a diagram showing a configuration of a comparator to which the embodiment of the present invention is applied. [Diagram 3] FIG. 3 is a diagram showing a comparator circuit to which the embodiment of the present invention is applied. [Figure 4] FIG. 4 is a diagram showing a circuit in which a plurality of comparators to which the embodiment of the present invention is applied are combined. [Diagram 5] FIG. 5 is a diagram showing a flowchart of the operation of the name data search device to which the embodiment of the present invention is applied. [Figure 6] FIG. 6 is a diagram showing the operation of a name data search device to which the embodiment of the present invention is applied. [Figure 7] FIG. 7 is a diagram showing the state of a search performed by a name data search device to which an embodiment of the present invention is applied. [Figure 8] FIG. 8 is a diagram showing the structure of the TCAM. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0017] A name data search device to which an embodiment of the present invention is applied will be described in detail below.
[0018] FIG. 1 shows the overall configuration of a name data search device 100 to which an embodiment of the present invention is applied. The name data search device 100 searches for name data based on a search target. The name data search device 100 is provided, for example, in a router (not shown) for connection to a network. As shown in FIG. 1, the name data search device 100 includes, for example, an SRAM (Static Random Access Memory) 2, a selector 1 and an amplifier 3 connected to the SRAM 2, and a comparator 4 connected to the amplifier 3. The name data search device 100 also includes the amplifier 3 and the comparator 4 outside the SRAM 2.
[0019] The SRAM 2 is a static type RAM (Random Access Memory) that outputs data by performing a read operation on an input address. The SRAM 2 has two or more memory arrays 22, each of which consists of two or more cells 21 that record voltages. The SRAM 2 has the cells 21 arranged in a matrix at the intersections of word lines 23 and bit lines 24 that are arranged in a lattice pattern. The SRAM 2 outputs the voltage of a specific memory array 22 selected by a selector 1 to an amplifier 3.
[0020] The cells 21 are semiconductor memories that record voltages indicating 0 or 1. The memory array 22 is made up of two or more cells 21 arranged in a line. The memory array 22 is made up of two or more cells 21 connected to one word line 23, for example.
[0021] The selector 1 selects the memory array 22 that outputs a voltage from the SRAM 2 to the amplifier 3. The selector 1 may be a decoder that selects the memory array 22 of the word line 23 to be searched according to, for example, a preset order.
[0022] The amplifier 3 is a circuit that amplifies input data. The amplifier 3 amplifies the voltage output from the SRAM 2 and outputs the amplified voltage to the comparator 4.
[0023] The comparator 4 compares the voltage data based on the voltage output from the amplifier 3 with the name data. The comparator 4 is composed of two or more slicers 41 having a calculator 43 connected to the amplifier 3, a counter 42 and a mask calculator 44 connected to the calculator 43, and a searcher 45 connected to the mask calculator 44, as shown in Fig. 2 for example. The comparator 4 also includes two or more slicers 41 connected in parallel to the amplifier 3. The comparator 4 also includes a loader 5 connected to each slicer 41.
[0024] The slicer 41 performs comparison for each virtual independent network slice divided according to a purpose. Each slicer 41 performs a search for a predetermined purpose.
[0025] The loader 5 is a decoder that reads name data from packet data output from an external device. The loader 5 outputs the read name data to the calculator 43.
[0026] Counter 42 is a circuit in which numeric information is preset. Counter 42 outputs the numeric information to calculator 43. Counter 42 may output numbers from 0 to 63 in order, for example.
[0027] The calculator 43 compares the voltage data output from the amplifier 3 with the name data based on the numerical information set in the counter 42. The calculator 43 outputs the comparison result to the mask calculator 44. For example, as shown in FIG. 3, the calculator 43 is provided so as to be connected in plurality via the calculation circuit 46. When the voltage data and the name data match, the calculator 43 outputs a voltage indicating 1, and when they differ, it outputs a voltage indicating 0 by discharging. The calculator 43 may also be a circuit consisting of a logical product of a plurality of circuits in order to extend the bit length, as shown in FIG. 4, for example. The calculator 43 is composed of, for example, two or more amplifiers 47 connected to each of the calculation circuits 46, and a logic circuit 48 connected to each of the two or more amplifiers 47 and outputting the logical product of the outputs from each amplifier 47. The calculator 43 may also be provided with a plurality of logic circuits 48. This makes it possible to handle data of any capacity, such as 16 bits, 128 bits, and 1 Kbit.
[0028] The mask calculator 44 performs further searches from the comparison results output from the calculator 43. For example, the mask calculator 44 performs searches such as longest match and partial match from the multiple comparison results output from the calculator 43. The longest match is a search method that searches for data that most closely matches the name data from each comparison result. The partial match is a search method that searches for data that partially matches the name data.
[0029] The searcher 45 processes the results output from the mask calculator 44. The searcher 45 performs processes such as checking the port of the transmitted data, ALC filtering, and flow calculation.
[0030] Next, a description will be given of the operation of the name data search device 100 to which the embodiment of the present invention is applied. Fig. 5 is a diagram showing a flowchart of the operation of the name data search device 100 to which the embodiment of the present invention is applied.
[0031] First, in step S1, packet data is output from the outside to the loader 5. In this case, the packet data may be output from, for example, a CPU (Central Processing Unit) not shown to the loader 5. The packet data is a collection of data in which data communicated over a communication line or a network is divided into certain length segments and name data, which is a search target such as a source or destination, is added. The packet data includes, for example, name data such as packets, which is a collection of data on an IP (Internet Protocol) and a MAC (Media Access Control). The name data is data related to the search target. The name data may be, for example, the name of the search target. The name data may also be data related to the address of the search target. The name data may be, for example, information such as a source MAC address (MAC src.) and IP address (IP src.) of the packet, a destination MAC address (MAC dst.), an IP address (IP dst.), an IP header identifier, a source port, a destination port, a checksum, a data offset, and a protocol. The IP address includes a global IP address and a local IP address. The loader 5 reads out the name data contained in the packet data, and outputs it to the calculator 43. The loader 5 may also output different name data to each calculator 43.
[0032] Next, in step S2, the selector 1 selects a memory array 22. The selector 1 may, for example, select the memory arrays 22 of the word lines 23 in a preset order. Also, for example, the selector 1 may select the memory arrays 22 in order starting from the word line 23 at the end.
[0033] Next, in step S3, the SRAM 2 outputs the voltage data of the memory array 22 selected in step S1 to the amplifier 3. The SRAM 2 outputs the voltage of each cell 21 to the amplifier 3, for example, via the bit lines 24 connected to the cells 21 of the memory array 22, respectively.
[0034] Next, in step S4, the amplifier 3 amplifies the voltage. The amplifier 3 outputs the amplified voltage data to the calculator 43.
[0035] Next, in step S5, the calculator 43 compares the voltage data with the name data. In this case, the calculator 43 compares the voltage data output in step S3 with the name data output in step S1. The voltage data is data indicating a voltage, and may be data including bits indicating binary numbers such as 0 or 1 determined according to the voltage. The voltage data may be data consisting of a plurality of bits determined according to the voltage recorded in each cell 22 of the memory array 22. For example, when the voltage data and the name data match, the calculator 43 outputs a voltage signal indicating 1 to the mask calculator 44, and when the voltage data and the name data do not match, the calculator 43 outputs a voltage signal indicating 0 as a comparison result by discharging. For example, the calculator 43 may compare whether the corresponding bits of the voltage data and the name data match. Also, in step S5, each slicer 41 may compare the voltage data of the memory array 22 in a different row. In this case, for example, the slicer 41A may compare rows 0 to 5, the slicer 41B may compare rows 6 to 15, the slicer 41C may compare rows 16 to 32, and the slicer 41D may compare rows 33 to 63. Also, in step S5, each slicer 41 may start from a different row and go around in sequence to compare all rows with the voltage data of the memory array 22. In this case, for example, if the memory array 22 has 255 rows, the slicer 41A may start from row 0 and compare rows 0 to 255, the slicer 41B may start from row 1 and compare rows 1 to 255 and row 0, the slicer 41C may start from row 2 and compare rows 2 to 255 and rows 0 to 1, and the slicer 41D may start from row 3 and compare rows 3 to 255 and rows 0 to 2. At this time, counter 41 selects appropriate numerical information and outputs it to calculator 43. Calculator 43 also outputs a signal indicating the comparison result to mask calculator .
[0036] Also, in step S5, the calculator 43 may convert the voltage data based on mask data for extracting a specific bit, and compare the converted voltage data with the name data. The mask data is numerical operand data having a specific bit pattern for performing bit-by-bit operations. The mask data includes, for example, a global mask for extracting a specific bit from a global IP address, and a local mask for extracting a specific bit from a local IP address. The calculator 43 converts the voltage data into voltage data in which a specific bit pattern is extracted from the voltage data, for example, by ORing the voltage data and the mask data. In this case, the specific bit pattern may indicate, for example, the destination or protocol of an IP address.
[0037] For example, as shown in Fig. 7, in step S5, each slicer 41 may use different mask data to extract different specific bit patterns. Also, in step S5, two or more slicers 41 may be used in parallel to compare the voltage data with the name data. As a result, for example, each slicer 41 can perform calculation processes such as FIB, flow calculation, and ACL on the bit patterns extracted by the respective mask data, thereby making it possible to perform parallel searches for two or more purposes such as destination, security, and flow rate in a single search.
[0038] Also, steps S2 to S5 may be repeated multiple times. In such a case, in step S2, the selector 1 selects the memory arrays 22 of the different word lines 23. The selector 1 may select the memory arrays 22 of the different word lines 23, for example, in accordance with a predetermined order. Also, if the voltage data and the name data completely match, the process of repeating steps S2 to S5 may be terminated. This allows the comparison between the voltage data and the name data to be sequentially processed outside the memory array 22, making it possible to search for the name data more efficiently.
[0039] Next, in step S6, the mask calculator 44 performs further searches from the comparison results output in step S5. In such a case, for example, searches for longest match, partial match, etc. are performed from the comparison results of step S5 repeated multiple times. The mask calculator 44 may present the results of the search in step S6 to the user who uses the name data search device 100. The results of the search in step S6 may be, for example, the searched data or the address where this data is recorded. This makes it possible to search for partial match, longest match, etc., even for data with a large amount of data such as name data.
[0040] The above steps complete the operation of the name data search device 100 according to the embodiment of the present invention. As a result, the voltage data output from the SRAM 2 is amplified by the amplifier 3, and thus the driving capability can be improved, unlike the case where the comparator 4 is provided in the cell 21 in the memory array 22. The name data search device 100 also includes a plurality of comparators 4 at the output of the amplifier 3. This allows each comparator 4 to perform a different search for a different purpose, enabling parallel processing that programmably executes all required searches at once. This makes it possible to easily search large data such as name data. The name data search device 100 also implements the comparator 4 and the like at the output stage of the amplifier 3 connected to the bit line 24 of the SRAM 2. This makes it possible to provide a common technology that does not depend on the cell 21 of the unique SRAM 2 owned by a company or factory. In addition, even when the name data is the name of the search target, which has a large capacity compared to the address, the name data can be easily searched.
[0041] Although an embodiment of the present invention has been described, this embodiment is presented as an example and is not intended to limit the scope of the invention. Such a novel embodiment can be implemented in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. This embodiment and its modifications are included in the scope and spirit of the invention, and are included in the invention and its equivalents described in the claims. [Explanation of symbols]
[0042] 1 Selector 2 SRAM 3. Amplifier 4. Comparators 5. Loader 21 Cell 22 Memory Array 23 Word Line 24 bit lines 41 Slicer 42 Counter 43 Calculator 44 Mask Calculator 45 Searcher 46 Calculation circuit 47 Amplifier 48 Logic Circuits 100 Name data search device 200 TCAM 210 Memory Array 400 Comparator
Claims
1. A static random access memory (SRAM) having two or more memory arrays each including two or more cells for recording a voltage; an amplifier for amplifying the voltage of the cell of the memory array; The device includes two or more comparators for comparing voltage data based on the voltage amplified by the amplifier with name data based on the search target. A name data search device comprising:
2. The two or more comparators convert the voltage data based on mask data for extracting different specific bits, and compare the converted voltage data with the name data.
2. The name data search device according to claim 1, wherein:
3. A name data search method using the name data search device according to claim 1, outputting voltages of two or more of the cells of the memory array from the SRAM to the amplifier; an amplifying step of amplifying the voltage outputted in the output step by the amplifier; a comparison step of comparing voltage data based on the voltage amplified by the amplification step with the name data; Repeating the output step, the amplification step, and the comparison step. A name data search method comprising:
4. The comparing step compares the voltage data with the name data using two or more comparators in parallel.
4. The name data search method according to claim 3, further comprising the steps of:
5. a recording means having two or more memory arrays each having two or more cells for recording a voltage; an amplifier for amplifying voltage data of the cells of the memory array; The device is provided with two or more comparison means for comparing voltage data based on the voltage amplified by the amplifier with name data based on the search target. A name data search system characterized by:
Citation Information
Patent Citations
Static NAND cell for ternary content addressable memory (TCAM)
JP2016106341A