Flash Memory Controller Volatile Buffer Data Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional memory controllers for flash memory devices face inefficiencies due to the need for configuring a portion of physical blocks as SLC memory blocks, which reduces the number of available MLC blocks and increases workload, leading to potential data loss and errors.

Innovation Solution

A method where data received from a host device is temporarily stored in volatile memory and dynamically monitored to determine whether to write it directly into NV memory elements, with data being written into an SLC block when a specific signal indicates power abnormality or shutdown, thus preventing data loss without relying on numerous SLC memory blocks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a portion of physical blocks in MLC flash memory is configured as SLC memory blocks to receive write data, then the controller can temporarily store received data, but the amount of physical blocks available as MLC memory blocks decreases and the workload of the memory controller increases

Engineering Contradiction:
Improvedata integrityVSAvoidstorage capacity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a volatile memory buffer in the controller as an intermediary between the host device and the flash memory. This buffer temporarily stores received data, eliminating the need to configure MLC blocks as SLC blocks for temporary storage. The volatile memory acts as a mediator that decouples the data reception and storage operations, allowing full MLC capacity to be used while maintaining data integrity through proper write completion protocols.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a portion of physical blocks in MLC flash memory is configured as SLC memory blocks, then the controller can temporarily store received data, but the work load of the memory controller is greatly increased

Engineering Contradiction:
Improvedata integrityVSAvoidcontroller workload
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the temporary data storage function from the flash memory blocks and relocates it to a volatile memory buffer in the controller. This separation allows the flash memory to be dedicated solely to permanent storage operations, while the volatile memory handles temporary buffering. The extraction of this function reduces the complexity of managing dual-mode blocks and simplifies the controller's workload by eliminating the need to coordinate SLC/MLC block transitions.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If the storage space of SLC memory blocks runs out frequently, then the controller can maintain data integrity, but the operation performance of the memory apparatus decreases

Engineering Contradiction:
Improvedata integrityVSAvoidoperation performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent changes the storage capacity parameter by utilizing the entire flash memory as MLC blocks without reserving portions as SLC blocks. The volatile memory buffer in the controller provides the necessary temporary storage capacity, allowing the flash memory to operate at full MLC capacity. This parameter change increases both the available storage space and the operation performance while maintaining data integrity through proper buffer management and write completion protocols.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9507708B2Method for managing memory apparatus, associated memory apparatus thereof and associated controller thereof
Publication Date: 2016.11.29 SILICON MOTION INC
  • US9507708B2 patent drawing
  • US9507708B2 patent drawing
  • US9507708B2 patent drawing

AI summary

A method for managing a memory apparatus and the associated memory apparatus thereof and the associated controller thereof are provided, where the method includes: temporarily storing data received from a host device into a volatile memory in the controller and utilizing the data in the volatile memory as received data, and dynamically monitoring the data amount of the received data to determine whether to immediately write the received data into at least one NV memory element; and when a specific signal is received and it is detected that specific data having not been written into a same location in a specific block configured to be an MLC memory block within a specific NV memory element of the at least one NV memory element for a predetermined number of times exists in the received data, immediately writing the specific data into another block in the at least one NV memory element.