Multi-Module Memory Controller for Flash Channel Parallelism

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

All flash array (AFA) servers face delays in read/write operations due to busy times of flash memory chips and increased demand for higher transfer rates with updated PCIe versions, leading to inefficiencies in accessing SSDs.

Innovation Solution

A memory controller architecture with multiple channels, each comprising flash memory chips, and a flash translation layer with independent control modules, command queues, and a DMA engine to manage and prioritize commands, ensuring efficient access and handling of multiple read/write operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple read/write operations are performed on flash memory chips, then the transfer rate and productivity are improved, but the flash memory chips cannot perform operations during busy time, causing delays and loss of time

Engineering Contradiction:
Improvetransfer rateVSAvoidbusy time delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The memory controller is divided into multiple independent control modules (CM0-CM7), each capable of independently managing flash memory chip operations. This segmentation allows parallel processing of read/write commands across different channels, enabling the system to initiate new operations while previous operations are still in busy time, thereby improving productivity without being constrained by individual chip busy periods

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a multi-dimensional architecture with multiple channels (CH0-CH7) and control modules operating in parallel. By transitioning from a single-channel sequential processing model to a multi-channel parallel processing model, the system can perform operations across different dimensional spaces simultaneously, effectively bypassing the time loss associated with single-chip busy periods

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

2Productivity

If the number of control modules is increased to handle more commands in parallel, then the productivity and bandwidth are improved, but the device complexity increases

Engineering Contradiction:
Improvecommand handling capacityVSAvoidcontroller architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Each control module is designed as a universal, multi-functional unit that can handle various types of commands (read, write, erase) across multiple flash memory chips within its assigned channel. The control modules share common functional blocks including command queues, arbiter, and DMA engines, allowing them to perform multiple functions while maintaining a standardized design that reduces overall system complexity

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system uses parameter-based configuration where control modules are assigned to specific channels and flash memory chips through programmable parameters rather than hardwired connections. The arbiter and command queue structures use configurable parameters to manage multiple modules, allowing the system to scale productivity by changing operational parameters rather than fundamentally redesigning the architecture

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11567699B2Memory controller having a plurality of control modules and associated server
Publication Date: 2023.01.31 SILICON MOTION INC
  • US11567699B2 patent drawing
  • US11567699B2 patent drawing
  • US11567699B2 patent drawing

AI summary

The present invention provides a memory controller configured to access a plurality of channels, wherein each of the channels includes a plurality flash memory chips, and the memory controller includes a flash translation layer and a plurality of control modules. The flash translation layer is configured to generate commands with corresponding physical addresses of at least one of the channels. The plurality of control modules are connected to the plurality of channels, respectively, and each of the control modules operates independently to receive the corresponding command with the corresponding physical address from the flash translation layer, to access the flash memory chips within the corresponding channels.