Dual-Controller SSD Command Queue Parallel Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Solid state drives (SSDs) face inefficiencies in command processing due to busy conditions when dequeuing commands, as they lack the disk head motion minimization methods used in hard disk drives (HDDs), leading to reduced processing rates and resource bottlenecks.

Innovation Solution

A memory device with a dual-controller architecture, where a first controller manages a command queue and transmits commands to multiple second controllers, each controlling a flash memory volume, allowing parallel processing and efficient command translation and storage using a Flash Translation Layer (FTL) and Flash Interface Layer (FIL), thereby reducing waiting times and resource bottlenecks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single controller dequeues commands sequentially, then the control logic is simple, but the processing rate is reduced due to busy conditions and waiting times

Engineering Contradiction:
Improveprocessing rateVSAvoidcontroller architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The controller is divided into a first controller that manages command queues and a second controller that handles flash memory operations. This segmentation allows parallel processing where the first controller can dequeue commands while the second controller is busy with flash memory operations, eliminating busy waiting and improving overall processing rate.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary command queue mechanism between the host interface and flash memory controller. Commands are stored in a command queue and processed through a dequeue mechanism that allows the controller to prepare commands in advance, reducing idle waiting time and improving throughput.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If commands are processed sequentially in a single queue, then the control mechanism is simple, but resource utilization is inefficient due to bottlenecks

Engineering Contradiction:
Improveresource utilizationVSAvoidcommand queue management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The command processing system is segmented into multiple independent command queues, each capable of holding commands for different flash memory channels or volumes. This allows parallel command processing across multiple queues, improving resource utilization by eliminating single queue bottlenecks while maintaining manageable control through queue-specific controllers.

Inventive Principle:
Principle #1Segmentation

3Productivity

If the controller waits for flash memory operations to complete before dequeuing next commands, then data integrity is maintained, but processing efficiency is reduced due to idle time

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The controller performs preliminary actions by pre-dequeuing commands and preparing them in the command queue before flash memory operations complete. The first controller can dequeue commands and pass them to the second controller in advance, while the second controller processes flash memory operations. This preliminary command preparation eliminates idle waiting time without compromising data integrity through proper queue management and atomic operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8356135B2Memory device and control method
Publication Date: 2013.01.15 SAMSUNG ELECTRONICS CO LTD
  • US8356135B2 patent drawing
  • US8356135B2 patent drawing
  • US8356135B2 patent drawing

AI summary

A memory device includes a first controller and a second controller. The first controller receives a first command from a host and stores the first command in a first command queue, and transmits the first command to the second controller relating to the first command stored in the first command queue. The second controller transmits the first command stored in the second command queue to a flash memory.