BCAM Segmentation for Fast ECC Data Search
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for searching ECC protected data in memory are inefficient, as they require error correction before searching, which is costly in terms of processing power, especially when dealing with large datasets, and can result in false negatives if errors are present.
Innovation Solution
A binary content addressable memory (BCAM) is divided into sub-BCAMs, allowing for direct searching of ECC protected data by tolerating a threshold of errors, eliminating the need for initial error correction through careful ECC coding and data partition schemes that ensure matches are identified without false positives or negatives.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If error correction is performed on all CWs stored in memory prior to searching, then search accuracy is improved (no false negatives), but processing time and computational resources increase significantly
Solution Approach 1:
The patent divides the codeword search process into two stages: a fast pre-filtering stage that compares search words against stored codewords without error correction to quickly eliminate non-matches, and a second stage that applies error correction only to the small subset of candidates that passed the pre-filter. This segmentation resolves the contradiction by avoiding full error correction on all data while maintaining search accuracy for true matches.
Solution Approach 2:
The patent applies error correction partially - only to the subset of codewords that survive the pre-filtering stage rather than to all stored codewords. This partial action maintains search accuracy for potential matches while dramatically reducing the computational overhead compared to full error correction of the entire dataset.
2Productivity
If error correction is not performed before searching, then processing efficiency is improved, but false negatives occur when errors are present in stored data
Solution Approach 1:
The patent performs a preliminary search without error correction to identify candidate matches quickly. This preliminary action filters out the vast majority of non-matching codewords before applying the computationally expensive error correction process, thereby maintaining both efficiency and reliability.
Solution Approach 2:
The patent introduces an intermediary pre-filtering mechanism that sits between the raw stored codewords and the error correction process. This intermediary stage performs fast approximate matching to identify which stored codewords warrant further error correction analysis, resolving the contradiction by enabling efficient filtering while preserving accuracy for true matches.
3Speed
If the BCAM is divided into multiple sub-BCAMs for parallel processing, then search speed is improved, but device complexity increases
Solution Approach 1:
The patent divides the BCAM into multiple sub-BCAMs that can process different portions of the search simultaneously. This segmentation enables parallel processing and improves search speed, while the modular structure allows for scalable implementation that manages complexity through systematic organization.
Solution Approach 2:
The patent introduces a dimensional organization to the BCAM structure by dividing it into sub-BCAMs that can be processed in parallel. This dimensional change from a single monolithic structure to a multi-dimensional segmented structure enables concurrent processing operations, improving speed while the regular pattern of division keeps implementation complexity manageable.
Data Source
AI summary
An apparatus includes a binary content addressable memory (BCAM) to store a plurality of error protection code (ECC) generated codewords (CWs), the BCAM divided into segments (sub-BCAMs), wherein the sub-BCAMs are to respectively store pre-defined first portions of the CWs, and to store corresponding second portions of a search word. In embodiments, the apparatus further includes logic circuitry, to obtain partial match results between the first portions of the CWs and corresponding second portions of the search word, and identify one or more CWs of the plurality of CWs that match the search word, based at least in part on the partial match results, wherein the match indicates that data included in the one or more CW is the same as the data included in the search word.


