Flash Memory Page Update Method Using Index Journal

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for updating Flash data are inefficient due to the need to search for a free page even for small updates, leading to reduced efficiency and shorter lifespan of Flash storage devices.

Innovation Solution

A method that determines if a physical page has sufficient space for writing, and if not, searches for a free page, allowing updates to be written efficiently, thereby extending the lifespan of Flash devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a free page is searched and data is written to a new physical page for every update, then data can be updated in Flash storage, but the writing efficiency is low and the lifespan of Flash is shortened

Engineering Contradiction:
Improvelifespan of FlashVSAvoidwriting efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-allocating a log structure within the existing physical page to record update operations. Instead of immediately writing to a new page, the system first records the update intent in the log area, which is prepared in advance. This allows multiple small updates to be accumulated and processed efficiently, reducing the frequency of new page allocations and extending Flash lifespan while maintaining writing efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the physical page into distinct functional areas: a data area for storing actual content and a log area for recording update operations. This segmentation allows the system to handle updates by writing to the log area without immediately affecting the data area or requiring new page allocations. The log structure is further segmented into header information and update records, enabling efficient tracking and processing of multiple updates before committing them to the data area.

Inventive Principle:
Principle #1Segmentation

2Volume of stationary object

If the page size of Flash chip is made very big to increase storage capacity, then storage capability is improved, but the efficiency of updating small amounts of data decreases

Engineering Contradiction:
Improvestorage capacityVSAvoidupdate efficiency
Core Design Contradiction:
Volume of stationary objectVSProductivity

Solution Approach 1:

The patent applies partial action by implementing a log structure that allows the system to record only the necessary update information (offset, length, new data) without immediately processing the entire page. The log area captures only the specific portions of data that need updating, while the rest of the large page remains untouched. This enables efficient handling of small updates within a large page structure, avoiding the inefficiency of processing or allocating entire large pages for small data changes.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10228875B2Data writing and reading methods for flash
Publication Date: 2019.03.12 FEITIAN TECHNOLOGIES CO LTD
  • US10228875B2 patent drawing
  • US10228875B2 patent drawing
  • US10228875B2 patent drawing

AI summary

Data writing and reading methods for a flash. The data writing method comprises: when remaining spaces of a data area and of an index area of a physical page are sufficient, sequentially storing present-instance write data into the data area of the physical page, and generating an index journal and sequentially writing same into the index area of the physical page; otherwise, organizing actual data in the physical page, storing the actual data into a data area of an idle page, and generating, on the basis of the actual data, an index journal and writing same into an index area of the idle page. The data reading method comprises: acquiring the actual memory address of to-be-read data on the basis of the index journal in the index area of the physical page, and reading the data from the actual memory address.