Flash Memory Data Access Using FAT and Child Block Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory systems face performance degradation due to the long time required to erase data from all pages of a block, leading to delays and inefficiencies in data access, as existing methods cannot frequently update data in blocks with stored old data without mapping to spare blocks or FAT blocks, resulting in inefficient data storage and access.

Innovation Solution

A data access method that determines whether a storage space in a target block contains data, and if so, uses a File Allocation Table (FAT) block or a child block for efficient data storage, allowing for flexible address mapping and efficient data writing by utilizing FAT blocks to store update data with any starting address, reducing the need for frequent block erasure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is written to a spare page of a block, then the spare page becomes a data page and cannot be programmed again, but erasing data from all pages of a block requires a long time period and causes long delay

Engineering Contradiction:
Improvedata storage capabilityVSAvoiderasure time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides a block into multiple segments (data pages and spare pages) and introduces the concept of child blocks mapped to a mother block. This segmentation allows the system to work with smaller units (child blocks) rather than erasing entire blocks, thereby reducing the time loss while maintaining data storage capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (the mapping relationship between mother block and child block) that mediates between the need to store data and the need to avoid long erasure times. The child block acts as an intermediary storage unit that can be freely programmed without requiring full block erasure.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the controller selects a spare block to write new data, then the write operation can be performed, but a mapping relationship must be maintained between the spare block and target block

Engineering Contradiction:
Improvewrite speedVSAvoidmapping management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent adds another dimension to the storage structure by introducing the mother-child block mapping relationship. This dimensional change allows the system to track and manage data locations more efficiently, enabling faster write operations while systematically managing the complexity through a hierarchical structure.

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

3Adaptability or versatility

If the host sends a write command to write new data to an address with old data, then the write operation must be executed, but the controller cannot write to the old page and must select a spare block

Engineering Contradiction:
Improvedata update capabilityVSAvoiddata access delay
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent prepares child blocks in advance with proper mapping relationships to the mother block. When a write command needs to be executed, the pre-established mapping allows the controller to quickly redirect the write operation to the appropriate child block, eliminating the need for real-time block selection and reducing data access delay.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8341378B2Data storage device and data access method
Publication Date: 2012.12.25 SILICON MOTION INC
  • US8341378B2 patent drawing
  • US8341378B2 patent drawing
  • US8341378B2 patent drawing

AI summary

The invention provides a data access method for a flash memory. First, a write command, a write address, and target data are received from a host. A target block corresponding to the write address is then determined. Whether a storage space with the write address in the target block stores data is then determined. When the storage space does not store data, the target data is written to the storage space of the target block. When the storage space stores data, whether a file allocation table (FAT) block mapped to the target block exists in the flash memory is then determined. When the FAT block exists, the target data is written to the FAT block. When the FAT block does not exist, whether a child block mapped to the target block exists in the flash memory is determined. When the child block exists, the target data is written to the child block.