Faulty Data Block Grouping With Bit Selection for Memory Reliability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As memory cells in data processing systems are miniaturized and operated at lower voltages, they experience increased fault rates, making it difficult for existing error correction methods to effectively utilize data storage blocks with faults, especially since error polarities can be unpredictable and change over time.

Innovation Solution

The solution involves grouping data blocks with faulty bits together, ensuring at least one non-faulty bit is present for each location within the group, and using a selector data store to indicate which bits are non-faulty, allowing for efficient storage and retrieval of data without relying on error polarity information, thereby tolerating higher error rates and adapting to varying fault probabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data blocks with faulty bits are discarded, then data reliability is maintained, but storage capacity and resource utilization deteriorate

Engineering Contradiction:
Improvedata reliabilityVSAvoidstorage capacity utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent recovers faulty data blocks by grouping them with other faulty blocks that have complementary error patterns. Instead of discarding blocks with errors, the system identifies blocks whose faulty bits are at different locations, combines them in groups, and uses selection logic to retrieve correct data by selecting non-faulty bits from appropriate blocks in each group.

Inventive Principle:
Principle #34Discarding and recovering

2Device complexity

If error polarity information is used for correction, then correction logic is simplified, but adaptability to changing error patterns deteriorates

Engineering Contradiction:
Improvecorrection logic complexityVSAvoidadaptability to changing error patterns
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic error correction approach that does not rely on fixed error polarity assumptions. Instead, the system adaptively identifies faulty bits through testing and dynamically groups blocks based on their actual error patterns. The selection logic dynamically determines which bits to read from each block in a group, allowing the system to adapt to changing error patterns over time without requiring complex reconfiguration.

Inventive Principle:
Principle #15Dynamics

3Reliability

If data is stored in redundant locations, then fault tolerance is improved, but storage overhead increases

Engineering Contradiction:
Improvefault toleranceVSAvoidstorage overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges multiple faulty data blocks into groups where each block contributes non-faulty bits to the overall data reconstruction. By combining k blocks in a group where each block has different faulty bit locations, the system achieves fault tolerance without requiring traditional redundancy. The selection logic reads only the necessary non-faulty bits from each block in the group, minimizing the overhead compared to full redundancy schemes.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS20110185260A1Storage of data in data stores having some faulty storage locations
Publication Date: 2011.07.28 ARM LTD
  • US20110185260A1 patent drawing
  • US20110185260A1 patent drawing
  • US20110185260A1 patent drawing

AI summary

Data storage control circuitry for controlling storage and retrieval of data in a data store in which data is stored in data blocks. A group data store stores data by grouping together blocks that have at least one faulty bit into groups of at least two blocks. For each group of blocks at least one of the blocks has a non-faulty bit for each of the bit locations in the blocks. A selector data store stores indicators for each group indicating which bits of the blocks within a group are the non-faulty bits. When storing data to a data block within a group, the data is stored in each of the blocks within the group. When retrieving data from a data block within a group, the data is read from respective bits of the blocks within the group as indicated by the indicators.