Multi-Range Look-Up Circuit Using TCAM and Comparator Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing multi-range look-up systems in packet processors are inefficient due to the need for multiple memory accesses and complex comparisons to determine the appropriate range for packet operations, which increases silicon area and processing time.
Innovation Solution
A circuit and method utilizing a ternary content addressable memory (TCAM) to store TCAM-friendly ranges, combined with a comparator and logic to efficiently determine if an input value falls within a range by using a reduced number of entries and prioritizing ranges based on mask bits, allowing for simultaneous look-up across multiple ranges.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If multiple memory accesses and complex comparisons are used to determine packet ranges, then look-up accuracy is improved, but processing time and silicon area increase
Solution Approach 1:
The patent segments the look-up process into two distinct phases: first, a coarse range identification phase using TCAM to quickly identify candidate ranges, and second, a precise boundary verification phase using comparator circuits to confirm exact range membership. This segmentation allows the system to achieve high accuracy without requiring all comparison operations to occur simultaneously, thereby reducing processing time.
Solution Approach 2:
The TCAM performs preliminary action by pre-storing range boundary values and usefully filtering packets that do not match any defined range before they reach the comparator stage. This preliminary filtering reduces the number of packets requiring full comparison operations, decreasing overall processing time while maintaining accuracy for packets that do require verification.
2Measurement precision
If multiple memory accesses and complex comparisons are used to determine packet ranges, then look-up accuracy is improved, but silicon area increases
Solution Approach 1:
The patent segments the hardware architecture into specialized components: TCAM structures for range identification and comparator circuits for boundary verification. This segmentation allows each component to be optimized independently, using TCAM's parallel search capability to reduce the number of comparators needed, thereby reducing overall silicon area while maintaining look-up accuracy.
Solution Approach 2:
The TCAM structure serves multiple functions: it stores range boundary values, performs initial pattern matching, and identifies candidate ranges for further verification. This multi-functionality eliminates the need for separate storage and filtering hardware, reducing silicon area compared to systems that would require dedicated structures for each function.
3Speed
If TCAM stores each range in a single entry, then look-up speed is improved, but TCAM size increases
Solution Approach 1:
The patent applies partial action by using TCAM to perform only the initial range identification rather than complete range verification. The TCAM stores compressed range representations that enable quick candidate identification, while the more resource-intensive exact matching is performed selectively by comparators only for packets that pass the initial TCAM filter. This approach achieves high look-up speed without requiring the TCAM to store full range detail for every possible packet.
Data Source
AI summary
Aspects of the disclosure provide a circuit that includes a first memory, a second memory and a comparator. The first memory is configured to store a plurality of values corresponding to a first plurality of ranges and generate an output value in response to a lookup key. The output value is indicative of the lookup key matching a stored value corresponding to a first range in the first plurality of ranges. The second memory is configured to store limiting values of a second plurality of ranges, and output a set of limiting values for a second range in association with the first range based on the output value of the first memory. The comparator is configured to compare the input value with the set of limiting values to determine whether the second range is inclusive of the lookup key.


