Memory Controller Code Cache for Low-Latency ECC Verification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory technologies face challenges with error correction codes (ECCs) that increase storage costs and affect performance, and memory devices without ECCs lack error detection and correction capabilities, while those with ECCs may not support multiple error detection and correction schemes.
Innovation Solution
Implementing error detection and correction codes in secondary memory and using a code cache on the memory controller to reduce latency and enable flexible error detection and correction schemes, leveraging out-of-order and speculative execution in CPUs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If error correction codes (ECCs) are stored with data in memory, then error detection and correction capabilities are improved, but storage costs and memory performance are degraded
Solution Approach 1:
The patent separates the ECC code storage from the data storage by using two distinct memory interfaces: a first interface for data access and a second interface for ECC code access. This segmentation allows independent optimization of data access performance and error correction functionality, resolving the contradiction between reliability and productivity.
Solution Approach 2:
The patent introduces a code cache as an intermediary component that stores ECC codes separately from data. The memory controller acts as a mediator that manages both data and ECC code access through different interfaces, enabling error correction without degrading memory performance.
2Reliability
If ECC information is stored with data, then error correction capability is improved, but additional storage costs are introduced
Solution Approach 1:
By segmenting the storage system into separate data storage and ECC code storage components accessed through different interfaces, the patent enables efficient use of storage resources. The ECC codes are stored in a dedicated space that does not consume data storage capacity, resolving the contradiction between reliability and storage quantity.
3Loss of time
If code cache is used to store ECC codes, then read latency is reduced, but device complexity increases
Solution Approach 1:
The code cache pre-stores ECC codes that are frequently accessed, so when data is read, the corresponding ECC code is already available in the cache rather than needing to be fetched from secondary memory. This preliminary action reduces read latency while the modular design keeps the added complexity manageable.
Solution Approach 2:
The code cache serves multiple functions: it stores ECC codes for error detection and correction, and it can be implemented as part of the existing memory controller structure. This multi-functionality reduces read latency while minimizing the increase in device complexity by leveraging existing hardware resources.
Data Source
AI summary
A system, including: a code cache; and a memory controller connected to the code cache, and configured to: receive a read command to read requested data from a location in primary memory connected to the memory controller over a first interface; read first data stored in the location from the primary memory; read a code corresponding to the requested data associated with the read command from the code cache, or from secondary memory connected to the memory controller over a second interface different from the first interface; perform error detection and/or correction based on the first data and the code; select second data based on a result of the error detection and/or correction; and output the second data for the requested data.


