Parallel Overlap Management for Storage Commands
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current storage devices face performance degradation due to sequential overlap checking of logical block addresses (LBAs) or LBA ranges, which blocks non-overlapping commands until overlapping ranges are resolved, leading to inefficiencies in command execution.
Innovation Solution
A hardware module, such as an LOC circuit, is implemented to concurrently check for overlaps in multiple LBAs or LBA ranges, allowing execution of non-overlapping commands while blocking overlapping ones, thereby improving storage device performance by reducing latency and increasing throughput.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If sequential overlap checking is used for commands with LBAs or LBA ranges, then command execution is simplified, but storage device performance degrades due to blocking non-overlapping commands
Solution Approach 1:
The patent segments the LBA range checking process by dividing the range into multiple disjoint LBAs or LBA ranges. This allows the hardware module to check overlaps for each segment independently and concurrently, rather than sequentially checking the entire range as a single unit, thereby resolving the contradiction between simple execution and high throughput.
Solution Approach 2:
The patent introduces a hardware dimension (LOC circuit) that operates parallel to the sequential command processing. This hardware module checks for overlaps in multiple LBAs or LBA ranges concurrently, adding a parallel processing dimension that eliminates the blocking behavior while maintaining correct overlap detection.
2Reliability
If all commands with overlapping ranges are blocked until resolution, then data atomicity is maintained, but execution time increases for non-overlapping commands
Solution Approach 1:
By segmenting the LBA ranges into disjoint portions, the patent allows different segments to be processed independently. Non-overlapping segments can execute immediately while overlapping segments are blocked only when necessary, maintaining atomicity for affected data while reducing overall execution latency.
Solution Approach 2:
The patent applies local quality by blocking commands only for specific LBA ranges that have overlaps, while allowing commands with non-overlapping ranges to execute freely. This selective blocking approach maintains data atomicity where needed without unnecessarily delaying other commands.
3Productivity
If hardware module checks overlaps concurrently in multiple LBAs or LBA ranges, then throughput increases, but device complexity increases
Solution Approach 1:
The LOC circuit is designed as a universal hardware module that can check overlaps for multiple LBAs or LBA ranges concurrently. This multi-functional design allows a single hardware component to handle various overlap checking scenarios, achieving high throughput without proportionally increasing overall device complexity.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A storage device includes: one or more logical blocks to store host data received from a host device, the logical blocks having a logical block address (LBA); an LBA range table to store one or more LBA ranges associated with one or more commands received from the host device over a storage interface; and an overlap check circuit to compare an LBA range associated with an active request with the one or more LBA ranges associated with the one or more commands, and to determine an overlap between the LBA range associated with the active request and any of the one or more LBA ranges associated with the one or more commands