Ternary Memory ACL Range Storage via MCOR Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for storing ternary data ranges in Ternary Content Addressable Memory (TCAM) require a large number of entries, leading to significant storage issues and latency problems, especially when handling Access Control Lists (ACLs) that need to associate multiple data items with a single bit code.

Innovation Solution

The implementation of a Most Commonly Occurring Range (MCOR) encoding method that determines and encodes frequently occurring ranges within ACLs, utilizing spare bits in TCAM entries to reduce the number of required entries by establishing virtual partitions and unique addressing schemes, allowing for efficient storage and identification of applicable rules.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If prefix expansion method is used to store ACL ranges in TCAM, then complete range coverage is achieved, but the number of required TCAM entries increases exponentially

Engineering Contradiction:
Improverange coverage completenessVSAvoidnumber of TCAM entries
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the port range representation by separating the common prefix portion from the variable suffix portion. Instead of storing complete expanded entries, it stores only the essential prefix information and uses the suffix bits to represent multiple ranges, thereby reducing the number of TCAM entries while maintaining complete range coverage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent utilizes the previously unused suffix bits (bits beyond the prefix length) as an additional dimension for encoding range information. By treating these suffix bits as a separate encoding space, it can represent multiple ranges within a single TCAM entry, effectively transitioning from one-dimensional prefix storage to two-dimensional (prefix + suffix encoding) storage.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Manufacturing precision

If more TCAM entries are used to represent ACL ranges, then storage precision is improved, but memory space consumption increases

Engineering Contradiction:
Improverange representation precisionVSAvoidTCAM memory space
Core Design Contradiction:
Manufacturing precisionVSArea of stationary object

Solution Approach 1:

The patent changes the parameter representation by encoding range information in the suffix bits rather than creating separate entries for each range. This parameter transformation allows a single TCAM entry to represent multiple ranges with different precision requirements, optimizing memory space while maintaining the necessary precision for accurate range matching.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If conventional range encoding is used, then all ranges can be represented, but processing latency increases due to larger entry count

Engineering Contradiction:
Improverange representation capabilityVSAvoidrule identification latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent extracts the essential matching information (prefix) from the complete range representation and stores only that in the TCAM. The suffix bits are used to encode additional range information that can be processed more efficiently, reducing the time required for rule identification while maintaining the ability to represent all necessary ranges.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8909857B2Efficient storage of ACL frequent ranges in a ternary memory
Publication Date: 2014.12.09 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US8909857B2 patent drawing
  • US8909857B2 patent drawing
  • US8909857B2 patent drawing

AI summary

Incoming data packets are often processed according to their origination or destination port. In order to efficiently determine applicable rules based on port values, ranges are stored in association with corresponding rules in a ternary memory. In order to reduce the amount of required memory to store these ranges, extra unused bits of the ACL that includes the rule can be used. Further, to maximize the storage capability of these limited extra bits, most common ranges can be stored in one or more bit partitions depending on whether they encompass other most common ranges to be stored in the extra bits. Through partitioning and intelligent bit assignment, many ranges can be stored in the limited extra bits, and can each remain individually addressable.