Flash Memory Configuration Data Management via Block Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Managing configuration data in persistent memories like flash memory, which requires block-wise erase before rewriting, poses challenges such as data loss during power failures and inefficient use of memory space due to the need for erasing entire blocks at once.
Innovation Solution
Storing values corresponding to each group of parameters in successive memory locations and maintaining pointer locations to track changes, allowing for efficient updating by copying data to new blocks when space is insufficient, and deferring erasure until completion to ensure data integrity and reliability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If block-wise erase is performed before rewriting in flash memory, then data integrity is improved, but memory space utilization deteriorates due to erasing entire blocks at once
Solution Approach 1:
The configuration data is divided into multiple groups, with each group stored in separate memory blocks. This segmentation allows individual blocks to be managed independently, enabling selective erasure of only those blocks that need updating rather than erasing entire configuration data sets, thus improving memory space utilization while maintaining data integrity through controlled block-wise operations.
2Ease of operation
If entire blocks are erased before rewriting, then rewriting capability is improved, but data loss risk increases during power failures
Solution Approach 1:
A valid bit is set for each memory block to indicate whether the block contains valid configuration data before attempting to read or use it. This preliminary marking system allows the system to identify valid data blocks and avoid using partially erased or corrupted blocks, thereby reducing data loss risk during power failures while maintaining the ability to erase and rewrite blocks as needed.
Solution Approach 2:
The system maintains multiple copies of configuration data groups in different memory blocks and uses valid bits to track which copies are current. This redundancy acts as a cushion against data loss, as the system can recover valid configuration data from other blocks if one block is lost or corrupted during erase/rewrite operations or power failures.
3Adaptability or versatility
If configuration data is updated frequently, then system adaptability is improved, but memory wear increases due to repeated erase cycles
Solution Approach 1:
Configuration data is segmented into multiple groups stored in separate memory blocks, allowing the system to update only the specific blocks that contain changed parameters rather than erasing and rewriting entire configuration sets. This reduces the frequency of erase cycles on individual blocks, thereby extending memory lifespan while maintaining system adaptability through selective updates.
Solution Approach 2:
The system uses valid bits to track which memory blocks contain valid configuration data. When updating configuration, the system can discard (erase) only the specific blocks that need updating while preserving and recovering valid data in other blocks. This selective discard and recover process reduces unnecessary erase cycles on unchanged data, extending memory durability while enabling frequent configuration updates where needed.
Data Source
AI summary
According to an aspect, the values corresponding to each group of parameters are stored in successive memory locations of a set of blocks, and pointer locations are maintained to point to the area where the groups of values are stored. When a new value is received for a parameter of a group, the values of parameters (with the new value substituted for the corresponding old value) of the group are replicated to a new set of locations in the same set of blocks if sufficient number of successive unwritten memory locations are available. A pointer data from the prior set of locations to the new set of locations is also maintained. According to another aspect, when there is insufficient space for the replication, all the present valid values of all groups are first written to a new set of blocks, and then only the earlier set of blocks are erased.


