Memory Controller Firmware Loading with Dual Copy Error Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As flash memory devices increase in size and complexity, bit errors in firmware codes become more common, leading to potential failures in loading program codes, which can prevent system startup, necessitating the use of multiple code copies but still risking unsuccessful loading if both copies are corrupted.

Innovation Solution

A method for loading program codes from a rewritable non-volatile memory module that involves storing two identical code copies across separate physical blocks and using an error correction mechanism to alternate between them, ensuring successful loading even if one copy contains uncorrectable error bits.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If two program code copies are stored in flash memory to prevent bit errors, then reliability is improved, but the risk remains that both copies could be corrupted and system startup fails

Engineering Contradiction:
Improvefirmware code loading reliabilityVSAvoidbit errors in flash memory
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The program code is divided into multiple data segments, and each segment is distributed across different physical blocks in the flash memory. This segmentation ensures that even if multiple bit errors occur in one copy, other segments can be recovered from different physical blocks, preventing complete failure of system startup.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a third dimension of redundancy by distributing code segments across multiple physical blocks rather than just storing multiple copies at the same location. This spatial distribution across different physical blocks provides protection against bit errors that would affect all copies at a single location.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If firmware code size and complexity increase, then functionality is improved, but the probability of bit errors increases

Engineering Contradiction:
Improvefirmware code functionalityVSAvoidcode integrity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The firmware code is segmented into multiple data segments that are distributed across different physical blocks. This allows the system to maintain large and complex firmware functionality while reducing the impact of bit errors by isolating corruption to specific segments that can be recovered from alternative locations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-distributing multiple code copies across different physical blocks during the programming phase. This preliminary distribution ensures that when bit errors occur during operation, the system already has redundant copies available for recovery without requiring additional real-time actions.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If multiple code copies are stored to ensure reliability, then system startup reliability is improved, but device complexity increases

Engineering Contradiction:
Improvesystem startup reliabilityVSAvoidmemory structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The code is segmented and distributed across multiple physical blocks, which simplifies the memory structure compared to storing complete duplicate copies. The memory controller only needs to manage segment-level redundancy and physical block mapping, reducing the complexity of handling multiple full code copies.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The physical blocks serve multiple functions: they store code segments for normal operation, provide redundancy for error recovery, and enable flexible code loading strategies. This multi-functionality reduces the need for separate dedicated redundancy structures, thereby reducing overall device complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9063888B2Program code loading and accessing method, memory controller, and memory storage apparatus
Publication Date: 2015.06.23 PHISON ELECTRONICS
  • US9063888B2 patent drawing
  • US9063888B2 patent drawing
  • US9063888B2 patent drawing

AI summary

A method of loading a program code from a rewritable non-volatile memory module is provided, wherein the program code includes data segments and two program code copies corresponding to the program code are stored in the rewritable non-volatile memory module. The method includes loading a first data segment of a first program code copy and determining whether the first data segment contains any uncorrectable error bit. The method still includes, when the first data segment does not contain any uncorrectable error bit, loading a second data segment of the first program code copy. The method further includes, when the first data segment contains an uncorrectable error bit, loading a first data segment of a second program code copy, and then loading a second data segment of the first program code copy or the second program code copy. Thereby, the program code can be successfully loaded.