Parallel Multi-Lookup TCAM with Mask Circuits
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current content addressable memory (CAM) systems, such as ternary CAM (TCAM), face inefficiencies in managing multiple search requests and rules, particularly in network devices, where shared TCAM arrays need to handle diverse criteria and actions efficiently, often leading to complex masking and encoding processes that can slow down packet processing.
Innovation Solution
A circuit and method that utilize a content addressable memory (CAM) array with mask circuits and encoders to generate and encode masked match results for multiple search keys, allowing parallel processing and efficient allocation of TCAM entries among multiple search clients, enabling simultaneous matching and action determination across various criteria.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a shared TCAM array is used to handle multiple search requests, then resource utilization is improved, but processing complexity increases due to complex masking and encoding processes
Solution Approach 1:
The patent divides the TCAM array into multiple banks, with each bank handling specific search clients or rule sets. This segmentation allows parallel processing of different search requests while maintaining manageable complexity within each bank, resolving the contradiction between resource utilization and processing complexity.
Solution Approach 2:
The patent introduces a time dimension by implementing sequential access stages for different search clients, transforming the spatial sharing problem into a temporal multiplexing solution. This allows multiple search operations to occur in sequence without complex parallel masking and encoding, reducing device complexity while maintaining resource utilization.
2Speed
If multiple search clients share a TCAM array simultaneously, then processing speed is improved, but device complexity increases due to parallel masking and encoding requirements
Solution Approach 1:
The TCAM array is segmented into multiple banks that can operate independently or in parallel. Each bank handles specific search clients, enabling true parallel processing without requiring complex coordination between search clients. This segmentation maintains high processing speed while reducing the complexity of parallel masking and encoding operations.
Solution Approach 2:
The patent implements preliminary classification of search requests into different banks based on their requirements. This preliminary action allows the system to prepare appropriate masking and encoding strategies in advance, enabling parallel processing without requiring complex real-time coordination between multiple search clients.
3Device complexity
If sequential processing is used for multiple search clients, then device complexity is reduced, but processing time increases
Solution Approach 1:
The patent segments the TCAM array into multiple banks that can be accessed in parallel by different search clients. This segmentation enables simultaneous processing of multiple search requests without requiring complex coordination, achieving both reduced device complexity and minimized processing time through simple parallel access.
Solution Approach 2:
The patent transitions from sequential time-multiplexed access to spatial parallel access by organizing multiple TCAM banks side-by-side. This dimensional change allows multiple search clients to access different banks simultaneously, eliminating the time loss of sequential processing while maintaining device simplicity through independent bank operation.
Data Source
AI summary
Aspects of the disclosure provide a circuit that includes a content addressable memory (CAM) array, a first mask circuit and a first encoder. The CAM array has CAM entry lines to be compared with a search key. The CAM array is configured to output a match result indicative entry lines that match the search key. The first mask circuit is configured to selectively mask first one or more portions of the match result to generate a first masked match result indicative first entry lines among the entry lines that match the search key. The first encoder is configured to encode the first masked match result to identify a matching entry line in the first entry lines as a first search result.


