Short-Block Read Aggregation for PCIe-Efficient SSD Access
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
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.


