Storage Controller Command Merging for Logic Block Continuity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Storage controllers face challenges in maintaining continuity of logic blocks accessed by host commands, leading to increased media access delay and burden in data management, especially in systems supporting out-of-order command execution.

Innovation Solution

A command processing method and storage controller that perform a command merging process by selecting commands from read and write command queues, using a continuity checking pool and continuity list to reorder commands based on logic block addresses, ensuring consecutive access and optimizing command execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If commands are executed in the order received from the host, then command processing is simple, but the continuity of logic blocks accessed is reduced

Engineering Contradiction:
Improvecommand processing simplicityVSAvoidcontinuity of logic blocks
Core Design Contradiction:
Ease of operationVSStability of the object's composition

Solution Approach 1:

The patent applies preliminary action by pre-sorting commands in the command queue before execution. The controller identifies and reorders commands to access consecutive logic block addresses beforehand, so that when commands are executed, they naturally maintain continuity without complex real-time processing. This resolves the contradiction by preparing the command sequence in advance rather than attempting to maintain continuity during execution.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If commands are reordered to increase logic block continuity, then media access delay is reduced, but command processing complexity increases

Engineering Contradiction:
Improvemedia access delayVSAvoidcommand processing complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent segments the command processing into distinct stages: receiving commands, sorting commands by logic block address continuity, and executing commands. By dividing the processing into these manageable segments, the system can implement sorting without overwhelming complexity. The segmentation allows each stage to be optimized independently, reducing overall processing complexity while still achieving continuity benefits.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The sorting operation is performed as a preliminary action before command execution. By pre-ordering commands based on logic block continuity, the system reduces media access delay during the actual execution phase without adding complexity to the time-critical execution path.

Inventive Principle:
Principle #10Preliminary action

3Stability of the object's composition

If multiple small IO commands are used instead of a single large IO command, then logic block continuity is improved, but data buffer management becomes more difficult

Engineering Contradiction:
Improvelogic block continuityVSAvoiddata buffer management
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The patent merges multiple small IO commands that access consecutive logic blocks into a single consolidated command for execution. The controller identifies commands with continuous logic block addresses and combines them, maintaining the continuity benefits of multiple small commands while simplifying buffer management by treating them as a single operation. This resolving the contradiction by combining commands after sorting rather than managing them separately.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10782919B2Command processing method and storage controller using the same
Publication Date: 2020.09.22 SHENZHEN EPOSTAR ELECTRONICS LTD
  • US10782919B2 patent drawing
  • US10782919B2 patent drawing
  • US10782919B2 patent drawing

AI summary

A command processing method and a storage controller are provided. The command processing method includes performing a command merging process on commands sequentially received by a command queue. The command merging process includes an initialization step and multiple iterations. The initialization step includes transmitting the commands from the command queue to a continuity checking pool (CCP), transmitting an initial command of the commands from the CCP to a continuity list (CL) and setting a range of the CL. Each of the iterations includes transmitting the commands from the command queue to the CCP; determining whether the commands in the CCP and the range of the CL conform to a continuity condition; and when the commands in the CCP and the range conform to the continuity condition, appending the first command to the CL and resetting the range of the CL according to the first command.