Parallel Overlap Management for Storage Commands

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecommand execution simplicityVSAvoidstorage device throughput
Core Design Contradiction:
Ease of operationVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

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

2Reliability

If all commands with overlapping ranges are blocked until resolution, then data atomicity is maintained, but execution time increases for non-overlapping commands

Engineering Contradiction:
Improvedata atomicityVSAvoidcommand execution latency
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #3Local quality

3Productivity

If hardware module checks overlaps concurrently in multiple LBAs or LBA ranges, then throughput increases, but device complexity increases

Engineering Contradiction:
Improvecommand processing throughputVSAvoidhardware module structure
Core Design Contradiction:
ProductivityVSDevice complexity

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.

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

Data Source

PatentEP3885888B1Parallel overlap management for commands with overlapping ranges
Publication Date: 2024.04.17 SAMSUNG ELECTRONICS CO LTD
  • EP3885888B1 patent drawingFigure 1
  • EP3885888B1 patent drawingFigure 2
  • EP3885888B1 patent drawingFigure 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