Embedded Flash OS Storage With Parity Recovery for Bad Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional embedded systems face challenges in initializing the operation system due to bad blocks in NAND-Flash memory, where only block 0 is guaranteed to be fault-free, leading to time-consuming data re-writing processes when OS information cannot be written correctly.

Innovation Solution

The processor divides operation system data into data block sets, performs a parity check to generate parity data, and stores both operation system and parity data in flash memory, allowing for data restoration in damaged blocks during system initialization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If Nboot and OS information are written into Flash using JTAG or external Flash writer before device leaves factory, then data is stored in Flash memory, but writing time is time-consuming and bad blocks may cause writing failures requiring time-consuming re-writing processes

Engineering Contradiction:
Improvedata writing reliabilityVSAvoiddata writing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs bad block detection and data rewriting operations in advance during the factory initialization process, before the device is shipped. By proactively identifying problematic blocks and pre-rewriting data to alternative locations, the system eliminates the need for time-consuming re-writing operations after deployment, thus resolving the contradiction between writing reliability and time consumption.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates backup copies of critical data (Nboot and OS information) in multiple locations within Flash memory during initialization. This preparatory cushioning ensures that if a bad block is detected later, the system can immediately switch to backup copies without requiring time-consuming re-writing operations, thereby improving reliability while minimizing time loss.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Quantity of substance

If only block 0 is guaranteed to be fault-free while other blocks may contain bad blocks, then Flash memory can store more data, but bad blocks in OS information blocks cause system initialization failures

Engineering Contradiction:
Improvestorage capacityVSAvoidsystem initialization reliability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent divides critical data (Nboot and OS information) into multiple separate blocks within Flash memory, rather than storing them in a single block. This segmentation allows the system to distribute data across multiple locations, so that if one block becomes bad, other blocks remain intact and can still provide the necessary information for system initialization, thus maintaining reliability while utilizing increased storage capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different quality standards to different blocks: block 0 is designated as the guaranteed fault-free boot block, while other blocks are used for OS information with the understanding that they may contain bad blocks. The system implements localized error handling for each block, ensuring that failures in non-critical blocks do not compromise overall system initialization, thereby enabling reliable operation despite varied block qualities.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8271854B2Embedded electronic device and method for storing data
Publication Date: 2012.09.18 WISTRON CORP
  • US8271854B2 patent drawing
  • US8271854B2 patent drawing
  • US8271854B2 patent drawing

AI summary

An embedded electronic device is provided. The embedded electronic device comprises a flash memory and a processor. The flash memory comprises a plurality of data storage blocks. The processor performs a parity check process to determine parity data of operation system (OS) data, wherein the parity data serves as a backup for the operation system (OS) data. The processor stores the operation system (OS) data and corresponding parity data into the data storage block of the flash memory.