Storage Controller Command Merging for Logic Block Continuity
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Loss of time
If commands are reordered to increase logic block continuity, then media access delay is reduced, but command processing complexity increases
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.
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.
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
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.
Data Source
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.


