Short-Block Read Aggregation for PCIe-Efficient SSD Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The mismatch between small 'short block' I/O requests in AI workloads and the standard NVMe block read size leads to inefficient use of PCIe bandwidth and degraded system performance due to numerous single-block random reads and increased command processing overhead.

Innovation Solution

Implementing a storage accelerator that aggregates short block I/O requests into a single command, accumulating data into a standard block size and sending it back to the host using a single-block TLP, reducing the number of commands and optimizing PCIe efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If multiple short block I/O requests are processed individually, then each request can be handled independently, but the number of commands increases and PCIe bandwidth efficiency deteriorates

Engineering Contradiction:
ImproveIndependent request handlingVSAvoidPCIe bandwidth efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent merges multiple short block I/O requests into a single NVMe command by accumulating them in a buffer. The storage accelerator collects multiple small read requests targeting the same storage device and combines them into one command, which is then transmitted over PCIe as a single Transaction Layer Packet. This combining approach maintains the independence of individual requests while dramatically reducing the number of PCIe transactions required.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If standard block size reads are used, then PCIe bandwidth utilization is maximized, but the data retrieval size exceeds the actual need for small data segments

Engineering Contradiction:
ImprovePCIe bandwidth utilizationVSAvoidUnneeded data transfer
Core Design Contradiction:
ProductivityVSLoss of substance

Solution Approach 1:

The patent segments the PCIe transaction into multiple short block requests within a single command. Instead of transferring one large block of data, the storage accelerator divides the data transfer into multiple smaller segments corresponding to the original short block requests. Each segment is accumulated in the buffer and transferred as part of the combined command, allowing precise transfer of only the needed data segments while maintaining efficient PCIe utilization.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If numerous single-block random reads are performed, then small data segments can be accessed precisely, but command processing overhead increases and system performance degrades

Engineering Contradiction:
ImproveData segment access precisionVSAvoidCommand processing overhead
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The storage accelerator performs preliminary accumulation of multiple short block requests in a buffer before issuing the NVMe command. By collecting and validating multiple requests in advance, the system prepares the combined command structure beforehand, reducing the processing overhead during actual execution. This preliminary action allows the system to maintain precise data segment access while minimizing the time spent on command processing and PCIe transaction overhead.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20260079625A1Short block data accumulation techniques
Publication Date: 2026.03.19 MARVELL ASIA PTE LTD
  • US20260079625A1 patent drawing
  • US20260079625A1 patent drawing
  • US20260079625A1 patent drawing

AI summary

Short block data accumulation techniques with a storage accelerator device may be used to optimize the handling of read requests for data having a size smaller than a block. In one example, a requester (e.g., host) may aggregate requests to read data having a size smaller than a block and send, to a storage accelerator device, a single command (e.g., an NVMe vendor specific command) with information identifying the multiple read requests. The accelerator may then generate the individual block read requests to the SSDs. The storage accelerator may then accumulate the data returned from the storage devices in response to the multiple read requests into a single regular block and send the accumulated data back to the host.