Flash Memory Controller Code Bank Swapping via Super Block Multi-Plane Read

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In conventional flash memory systems, the limited buffer capacity leads to frequent swapping of code banks, causing read disturbance and affecting data quality due to the need to repeatedly read specific blocks storing divided ISP codes.

Innovation Solution

The implementation of a flash memory controller that accesses a flash memory module with multiple planes and blocks, allowing code banks to be stored in a super block comprising blocks from multiple planes, reducing the need for frequent reads from a specific block by using multi-plane-read operations for code bank swapping.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the ISP code is divided into several code banks and stored in a specific block, then the buffer capacity limitation is addressed, but the specific block is read many times causing read disturbance and affecting data quality

Engineering Contradiction:
Improvebuffer capacityVSAvoiddata quality
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The flash memory module is divided into multiple planes, with each plane containing multiple blocks. Code banks are distributed across different planes rather than concentrated in a single specific block, thereby segmenting the read operations across multiple locations and reducing read disturbance to any single block.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a multi-plane architecture as an additional dimension for storing code banks. Instead of using a single-block structure, code banks are distributed across multiple planes, transforming the storage architecture from one-dimensional to multi-dimensional, which reduces read disturbance by spreading access patterns across different physical locations.

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

2Adaptability or versatility

If code banks are swapped frequently due to limited buffer capacity, then different functions can be loaded, but the swapping operation slows down system performance

Engineering Contradiction:
Improvefunction loading capabilityVSAvoidcode bank swapping speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

Multiple code banks are pre-loaded into the buffer memory simultaneously during initialization, rather than loading them one at a time during operation. This preliminary action ensures that multiple code banks are already available in the buffer, eliminating the need for frequent swapping operations and improving system responsiveness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent merges multiple code banks into the buffer memory at the same time, combining multiple loading operations into a single unified loading process. This allows the system to have multiple code banks available concurrently in the buffer, reducing the frequency of swapping operations and improving overall system productivity.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11809748B2Control method of flash memory controller and associated flash memory controller and electronic device
Publication Date: 2023.11.07 SILICON MOTION INC
  • US11809748B2 patent drawing
  • US11809748B2 patent drawing
  • US11809748B2 patent drawing

AI summary

The present invention provides a control method of a flash memory controller, wherein the flash memory controller is configured to access a flash memory module, the flash memory module includes a plurality of planes, and each plane includes a plurality of blocks; and the control method includes the steps of: after the flash memory controller is powered on, reading a first code bank from a specific block of the plurality of blocks; storing the first code bank into a buffer memory; executing the first code bank to manage the flash memory module; when the flash memory controller starts a code bank swapping operation, trying to read a second code bank from a super block; if the second code bank is read successfully, storing the second code bank into the buffer memory to replace the first code bank; and executing the second code bank to manage the flash memory module.