Flash Memory Controller Buffer Management for Write Amplification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing number of stacked layers in 3D flash memory leads to unstable data quality and inefficient data writing methods, particularly concerning the write amplification index (WAI), which affects data storage efficiency.

Innovation Solution

A flash memory controller with a buffer memory and microprocessor that temporarily stores data in continuous addresses, ensuring that data is written efficiently by avoiding partial storage in non-continuous spaces, thereby optimizing data placement across different types of memory blocks within the flash memory module.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is written sequentially in continuous addresses of the buffer memory, then data quality is improved, but write amplification index increases when buffer space is insufficient

Engineering Contradiction:
Improvedata qualityVSAvoidwrite amplification index
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The buffer memory is divided into a data temporary storage area with continuous addresses and a data storage area. This segmentation allows the system to handle data differently based on buffer availability: small data can be stored in the temporary area with continuous addresses for high quality, while large data that exceeds temporary area capacity can be handled by switching to the data storage area, thus resolving the contradiction between maintaining data quality and managing write amplification.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically switches between different storage strategies based on the size of incoming data and available buffer space. When the buffer has sufficient continuous space, data is written sequentially to maintain quality. When buffer space is insufficient, the system dynamically adjusts by using the data storage area, thereby adapting to varying write conditions and preventing excessive write amplification while preserving data quality for smaller writes.

Inventive Principle:
Principle #15Dynamics

2Reliability

If the buffer memory size is increased to store all data, then data quality is maintained, but device complexity and cost increase

Engineering Contradiction:
Improvedata qualityVSAvoidbuffer memory size
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The buffer memory is segmented into two functional areas: a data temporary storage area with continuous addresses for small data writes, and a data storage area for larger data. This segmentation allows the system to maintain high data quality for small writes without requiring the entire buffer to be large enough to hold all possible data, thus reducing overall buffer memory requirements and device complexity while preserving data quality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The data temporary storage area acts as an intermediary between the host device and the main data storage area. It provides a small buffer with continuous addresses that handles small data writes efficiently, reducing the need for a large buffer memory while maintaining data quality. This intermediary structure allows the system to achieve high data quality without proportionally increasing buffer memory size.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11249676B2Electronic device, flash memory controller and associated control method
Publication Date: 2022.02.15 SILICON MOTION INC
  • US11249676B2 patent drawing
  • US11249676B2 patent drawing
  • US11249676B2 patent drawing

AI summary

A flash memory controller includes a read-only memory, a microprocessor and a buffer memory, wherein the buffer memory includes a data temporary storage area having continuous addresses. When the flash memory controller receives data from a host device, the microprocessor determines whether there is enough space between the last stored data in the data temporary storage area and an end address of the data temporary storage area to store the entire content of the data. If there is not enough space between the last stored data in the data temporary storage area and the end address to store the entire content of the data, the microprocessor directly stores the data from a starting address in the data temporary storage area, without writing any part of the data to the area before the end address of the data temporary storage area.