Memory Spare Allocation with Redundant Pointer ECC

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory devices in electronic systems are prone to failures over time, leading to transient and permanent errors, which can result in uncorrectable errors and render memory locations unusable, especially when transient and permanent failures occur simultaneously.

Innovation Solution

A system with a live section and a spares section, where failed entries in the live section are replaced by allocated spare entries, and the failed entries are coded with multiple copies of a pointer to the spare entry, each protected by error correction code (ECC), to ensure reliable access and error correction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If ECC is used to correct transient failures, then transient errors are corrected, but permanent failures cannot be corrected and memory locations become unusable

Engineering Contradiction:
Improveerror correction capabilityVSAvoidmemory usability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system pre-allocates spare memory locations before failures occur. When a permanent failure is detected in a live section, the controller automatically redirects future accesses to the pre-prepared spare location, eliminating the need for complex real-time reallocation and maintaining memory usability despite permanent failures

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes the operational state of memory locations by marking failed locations as unusable and activating their corresponding spare locations. This parameter change allows the memory system to adapt to permanent failures by transitioning from a static memory map to a dynamic one where spares are activated based on failure detection

Inventive Principle:
Principle #35Parameter changes

2Reliability

If multiple copies of pointer with ECC are stored in failed entry, then error detection and correction capability is improved, but memory space is consumed

Engineering Contradiction:
Improvepointer error correctionVSAvoidmemory space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system stores multiple copies of the pointer to the spare location within the failed entry itself. By placing N copies of the pointer (where N is the ECC capability) in the failed entry, the system ensures that even if some copies are corrupted, the ECC can recover the correct spare location address, providing excessive error protection within the available space of the failed entry

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If spares section is allocated to replace failed entries, then memory functionality is maintained, but device complexity increases

Engineering Contradiction:
Improvememory functionalityVSAvoidmemory structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The memory is segmented into distinct live sections and spare sections. Each live section has dedicated spare locations allocated to it, creating a modular structure where failures in one section can be independently handled by its corresponding spares without affecting other sections, thereby managing complexity through organized division

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10929222B2Storing address of spare in failed memory location
Publication Date: 2021.02.23 APPLE INC
  • US10929222B2 patent drawing
  • US10929222B2 patent drawing
  • US10929222B2 patent drawing

AI summary

In one embodiment, a system includes a memory that includes a live section and a spares section. The live section may be mapped to the address space of the system, and may be accessed in response to memory operations. Once an entry in the live section has been detected as failed, an entry in the spares section may be allocated to replace the failed entry. During subsequent accesses to the failed entry, the allocated entry may be used instead. In an embodiment, the failed entry may be coded with an indication of the allocated entry, to redirect to the allocated entry. In one implementation, for example, the failed entry may be coded with N copies of a pointer to the allocated entry, each copy protected by corresponding ECC.