Batch Entries Sharing CAM Entries via Mask Vectors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Content-addressable memory (CAM) devices face inefficiencies due to the need for multiple lookup operations across varying CAM entry widths and the wastage of bits when different applications require different CAM entry widths, leading to suboptimal performance in packet processing.
Innovation Solution
Implementing a method where multiple CAM entries are associated to form batch entries that span multiple physical entries, allowing for shared content-addressable memory entries among batch entries, and using batch mask vectors to decode shared information during lookup operations, enabling iterative lookup operations across both directions within the CAM device.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If multiple lookup operations are performed across CAM entries of varying widths, then lookup completeness is improved, but processing time increases
Solution Approach 1:
The patent segments batch entries into multiple CAM entries of uniform width, where each segment can be independently processed. This segmentation allows the lookup operation to be divided into smaller parallel operations, maintaining completeness while reducing the time required for each individual comparison operation.
Solution Approach 2:
The patent introduces a batch dimension by associating multiple CAM entries with a single batch entry through batch mask vectors. This allows the system to process variable-width logical entries using fixed-width physical entries, adding a dimension of multiplexing that improves time efficiency without sacrificing lookup completeness.
2Device complexity
If CAM entries are allocated with fixed width to accommodate largest entry, then device simplicity is improved, but bit wastage increases
Solution Approach 1:
The patent makes each CAM entry universally applicable to multiple batch entries through the batch mask vector mechanism. A single fixed-width CAM entry can serve multiple variable-width batch entries by being selectively activated through different batch mask configurations, eliminating bit wastage while maintaining device simplicity.
Solution Approach 2:
The patent changes the effective width parameter of CAM entries dynamically through batch mask vectors. Instead of physically varying entry widths, the system uses software-controlled masks to enable or disable specific bit portions of fixed-width entries, achieving variable-width functionality without hardware complexity or bit wastage.
3Adaptability or versatility
If batch entries span multiple physical entries, then adaptability is improved, but device complexity increases
Solution Approach 1:
The patent introduces batch mask vectors as intermediary data structures that map logical batch entries to physical CAM entries. This intermediary layer provides the adaptability needed for batch entries to span multiple physical entries while keeping the actual memory structure simple and regular, as the complexity is managed through software rather than hardware.
4Measurement precision
If iterative lookup operations are performed, then matching accuracy is improved, but processing speed decreases
Solution Approach 1:
The patent maintains continuous useful action by performing lookups across all batch entries simultaneously using parallel CAM operations. Instead of sequential iterative lookups that would reduce speed, the system continuously processes multiple entries in parallel through the batch mask mechanism, preserving both accuracy and speed.
Data Source
AI summary
In one embodiment, batch entries include multiple content-addressable memory (CAM) entries, and CAM entries are allowed to be shared among different batch entries. For example, two or more batch entries might have a common set of bits (e.g., representing an address, an address prefix, etc.). Rather than consuming bits of multiple CAM entries, a single CAM entry can be programmed with this common information. Other CAM entries associated with different batch entries are programmed with the distinguishing/different values. A batch lookup operation on a batch entry of two or more CAM entries requires multiple lookup operations on the CAM entries. One embodiment uses a batch mask vector to provide information to decode what CAM entries are shared among which batch entries during a series of lookup operations, which can be performed in one or both directions through the CAM entries.


