Flash Memory Controller Parity Layout for Faster Parallel Transfers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory controllers and flash memory systems face challenges in enhancing data transfer speed with a simple configuration, particularly in managing parallel data transfer operations involving user and parity data across multiple channels.

Innovation Solution

The memory controller employs a layout setter to set data placement for multiple channels, allowing parity data regions to be collectively placed forward or backward relative to user data regions during parallel data transfer, and an access processor to perform parallel data transfer using this placement, ensuring efficient utilization of channels.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If parallel data transfer is performed using multiple channels with conventional data placement, then data transfer speed is improved, but channel utilization is inefficient and standby periods occur

Engineering Contradiction:
Improvedata transfer speedVSAvoidchannel utilization efficiency
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The layout setter performs preliminary action by pre-determining and setting the data placement layout before parallel data transfer begins. It calculates and establishes which channels will store user data and which will store parity data, ensuring that during the actual data transfer, channels are fully utilized without standby periods. This preliminary layout configuration resolves the contradiction by preparing the optimal data distribution plan in advance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adapts the data placement strategy based on the access pattern. When sequential access is detected, the layout setter configures channels to alternate between user data and parity data storage, maximizing parallel transfer efficiency. This dynamic adjustment of data placement according to access characteristics eliminates channel idle time and maintains high data transfer speed throughout the operation.

Inventive Principle:
Principle #15Dynamics

2Speed

If parity data is distributed across multiple channels during parallel transfer, then data transfer speed increases, but the complexity of managing data placement increases

Engineering Contradiction:
Improvedata transfer speedVSAvoiddata placement management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The layout setter performs preliminary calculation and determination of the optimal data placement layout before the parallel transfer begins. It analyzes the data access pattern and pre-determines which channels will store user data and which will store parity data, eliminating the need for complex real-time management decisions during the transfer operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system employs self-service by automatically detecting the access pattern (sequential or random) and autonomously determining the optimal data placement strategy without external intervention. The layout setter independently calculates the channel assignment for user data and parity data, reducing the operational complexity of managing parallel data transfer while maintaining high transfer speeds.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12386553B2Memory controller and flash memory system
Publication Date: 2025.08.12 TDK CORP
  • US12386553B2 patent drawing
  • US12386553B2 patent drawing
  • US12386553B2 patent drawing

AI summary

A memory controller includes a layout setter and an access processor. The layout setter performs setting of data placement to be applied to multiple channels at the time of parallel data transfer between the memory controller and the flash memory using the multiple channels. The access processor performs, in performing access processing for data on the flash memory, the parallel data transfer to/from the flash memory using the data placement for the multiple channels set by the layout setter. In placing user data and parity data included in the data, the layout setter sets the data placement for the multiple channels to allow, in the multiple channels, second placement regions where the parity data are placed to be collectively placed forward or backward relative to first placement regions where the user data are placed, along an order of access at the time of the parallel data transfer.