Local Parity Caching for Memory Error Correction Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing error detection and correction schemes for data stored in off-chip memory require frequent updates and recalculations of parity blocks, leading to inefficiencies and performance delays due to the need to write revised parity blocks back to memory during data modifications.

Innovation Solution

Implementing a local parity storage scheme where parity information is stored on-chip, allowing for efficient detection and correction of errors by using checksums and cyclic redundancy checks, and reducing the need for off-chip updates by grouping data blocks into sets with a single associated parity block, which is stored and updated locally.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If parity blocks are stored in off-chip memory and updated frequently during data modifications, then error detection and correction capability is maintained, but processing efficiency deteriorates due to write overhead and performance delays

Engineering Contradiction:
Improveerror detection and correction capabilityVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the parity storage function into two segments: frequently accessed parity blocks are cached in on-chip memory (fast access) while less frequently accessed parity blocks remain in off-chip memory (large capacity). This segmentation allows the system to maintain error correction capability while avoiding frequent off-chip writes for hot data, thus resolving the contradiction between reliability and processing efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent pre-loads parity blocks into on-chip cache memory before they are needed for error correction. By anticipating which parity blocks will be needed and loading them in advance, the system ensures that error detection and correction can proceed using on-chip resources without incurring off-chip write delays, thereby maintaining both reliability and productivity.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If parity information is stored on-chip to reduce write overhead, then processing efficiency is improved, but on-chip storage requirements increase

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidon-chip storage requirements
Core Design Contradiction:
ProductivityVSVolume of stationary object

Solution Approach 1:

The patent applies local quality by storing different types of data in different locations based on their access patterns and size requirements. Hot parity blocks that need frequent access are stored in on-chip cache (high speed, limited capacity), while cold parity blocks are stored in off-chip memory (large capacity, slower access). This localized quality optimization resolves the contradiction between processing efficiency and storage requirements.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements a dynamic parity caching strategy where the allocation of on-chip storage resources is not fixed but adapts based on access patterns. Frequently accessed parity blocks are automatically retained in on-chip memory, while less accessed blocks are evicted to off-chip storage. This dynamic approach allows the system to maximize processing efficiency while minimizing on-chip storage usage at any given time.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10248497B2Error detection and correction utilizing locally stored parity information
Publication Date: 2019.04.02 ADVANCED MICRO DEVICES INC
  • US10248497B2 patent drawing
  • US10248497B2 patent drawing
  • US10248497B2 patent drawing

AI summary

A processing system includes a memory coupled to a processor. The memory stores data blocks, with each data block having a separate associated checksum value stored along with the data block in the memory. The processor has a storage location that stores parity information for the data blocks, with the parity information having a plurality of parity blocks. Each parity block represents a parity of a corresponding set of data blocks. The parity blocks can be accessed for use in error detection and correction schemes used by the processing system.