ECC Update Architecture for Lower Memory Bandwidth Overhead
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing error correction code (ECC) systems require significant bandwidth and memory access for updating ECC totals, leading to inefficiency and high ECC overhead, especially when data strings are combined, as the entire ECC must be recalculated upon any update to a single portion of the data string.
Innovation Solution
A system and method that allow for efficient calculation of new ECC totals by using an encoder unit to perform protection scheme conversions and updates, enabling write-only operations for ECC updates, reducing the need for read-modify-write operations and minimizing ECC overhead through the use of masks and XOR operations to recalculate ECC totals only for changed data ways.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data strings are combined to reduce ECC overhead percentage, then ECC overhead percentage decreases, but bandwidth demand increases due to required recalculation of entire ECC upon any update
Solution Approach 1:
The patent segments the combined ECC calculation into individual way-specific ECC calculations. Instead of treating the entire combined data string as a single unit requiring full recalculation, the system calculates ECC separately for each way (WAY0, WAY1, WAY2, WAY3) and maintains individual ECC totals for each segment. This allows selective updating of only the affected way's ECC rather than recalculating the entire combined ECC.
Solution Approach 2:
The patent performs preliminary action by pre-calculating and storing individual way ECC values (WAY0_ECC, WAY1_ECC, WAY2_ECC, WAY3_ECC) before combining them. When an update occurs, the system only needs to recalculate the ECC for the specific way that changed, then combine it with the pre-existing ECC values of unchanged ways, rather than recalculating the entire combined ECC from scratch.
2Reliability
If entire ECC is recalculated upon update to maintain correctness, then error detection reliability is maintained, but memory access bandwidth increases due to read-modify-write operations
Solution Approach 1:
The patent divides the ECC calculation into segment-specific operations where each way has its own ECC calculation and tracking. The system maintains separate ECC totals for each way (WAY0_ECC, WAY1_ECC, WAY2_ECC, WAY3_ECC) rather than a single combined ECC. This segmentation enables selective updating of only the modified way's ECC segment without accessing or modifying other way segments.
Solution Approach 2:
The patent introduces intermediary structures (separate ECC total registers for each way and individual way ECC calculation units) that mediate between the data ways and the combined ECC output. These intermediaries allow the system to maintain overall ECC correctness while avoiding direct read-modify-write operations on the entire combined ECC, by instead performing targeted updates on individual way ECC values.
3Quantity of substance
If more data bits are combined to lower ECC overhead, then ECC overhead percentage decreases, but system complexity increases due to coordinated updates across multiple ways
Solution Approach 1:
The patent segments the ECC management system into independent way-specific units, each with its own ECC calculation and tracking logic. This segmentation actually reduces system complexity compared to managing a single large combined ECC, because each segment can be independently calculated, updated, and verified without coordinating changes across all other segments.
Solution Approach 2:
The patent implements a universal ECC calculation mechanism that works identically for each way regardless of the total number of ways combined. The same ECC calculation logic applies to WAY0, WAY1, WAY2, WAY3, and any additional ways, making the system scalable and reducing complexity through repetition of a standardized pattern rather than requiring unique coordination logic for each combination.
Data Source
AI summary
A system, and corresponding method, is described for updating or calculating ECC where the transaction volume is significantly reduced from a read-modify-write to a write, which is more efficient and reduces demand on the data access bandwidth. The invention can be implemented in any chip, system, method, or HDL code that perform protection schemes and require ECC calculation, of any kind. Embodiments of the invention enable IPs that use different protections schemes to reduce power consumption and reduce bandwidth access to more efficiently communicate or exchange information.


