TCAM Integer Range Storage via Bit Subsequence Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Packet processing devices face inefficiencies in storing and comparing ranges of integer values due to the high number of entries required in ternary content addressable memory (TCAM) and other memory structures, leading to increased power consumption and cost.
Innovation Solution
The method involves determining subranges within a range of integer values by forming bit strings based on binary representations of start and end values, where all except at most one bit subsequence is equal or has a value of 0, and storing these bit strings in memory to reduce the number of entries needed in TCAM or other memory structures.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If ranges of integer values are stored using traditional prefix-based methods in TCAM, then lookup operations can be performed in parallel with high speed, but the number of entries required becomes excessive
Solution Approach 1:
The patent segments the binary representation of integer ranges into multiple fields. Instead of storing each prefix as a separate TCAM entry, the range is divided into high-order and low-order fields that are stored together in a single TCAM entry. This segmentation allows the system to represent the same range with fewer entries while maintaining parallel lookup capability.
Solution Approach 2:
The patent introduces a new dimensional approach by storing both high-order and low-order fields within the same TCAM entry structure. Traditional methods use one dimension (sequential prefixes), but this invention adds another dimension by combining multiple field representations in a single entry, thereby reducing the total number of entries needed.
2Use of energy by stationary object
If the number of TCAM entries is reduced to lower cost and power consumption, then device complexity and energy use decrease, but the ability to represent integer ranges efficiently may be compromised
Solution Approach 1:
The patent makes the TCAM entry structure multi-functional by enabling it to store both high-order and low-order fields simultaneously. This universal structure can represent various integer ranges more efficiently without requiring different storage mechanisms, thereby maintaining adaptability while reducing entry count and power consumption.
Solution Approach 2:
The patent changes the parameters of the TCAM entry by allowing it to hold multiple field representations (high-order and low-order) rather than a single prefix. This parameter change enables the same entry to represent broader ranges of values, improving range representation capability while using fewer entries and reducing power consumption.
3Measurement precision
If more prefixes are used to represent integer ranges, then the precision of range representation improves, but the number of TCAM entries and device complexity increase
Solution Approach 1:
The patent merges the representation of high-order and low-order fields into a single TCAM entry. Instead of using multiple separate prefixes to achieve precise range representation, the invention combines these field representations, thereby maintaining precision while reducing the number of entries and simplifying the memory structure.
Data Source
AI summary
Methods, systems, and computer readable storage medium directed to efficiently storing value ranges in TCAM or other memory are disclosed. Storing a range of integer values in a memory includes determining a subrange within the range, so that, in a first and a second plurality of bit subsequences from binary representations respectively of a start value and an end value of the subrange, all except at most one bit subsequence in the first plurality is either equal in value to a corresponding bit subsequence in the second plurality or has a value of 0 and a corresponding bit subsequence of the second plurality has a maximum value. The storing a range of integer values in a memory further includes forming a first bit string based upon values of the first and second plurality of bit subsequences, and storing the first bit string in the memory.


