SCSI I/O Command Aggregation for SSD Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing processing speed of SSD devices leads to a demand for higher I/O operations per second (IOPS) rates, which puts pressure on processors that must process individual I/O requests, resulting in a bottleneck during small block data access through SCSI.

Innovation Solution

Implementing I/O command aggregation by consolidating multiple I/O commands into a single command, reducing the number of individual commands processed by the host system and increasing the IOPS rate through the use of packet commands and a controller configured to communicate with a SCSI standard interface.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple individual I/O commands are processed separately through SCSI, then command processing accuracy is maintained, but processor pressure increases and IOPS rate is limited

Engineering Contradiction:
ImproveIOPS rateVSAvoidprocessor pressure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple individual I/O commands into a single aggregated command packet. The host system consolidates multiple read or write commands targeting the same SSD into one aggregated command that contains all the individual command parameters (memory addresses, data transfer counts). This merging reduces the number of command-processing cycles the processor must execute, thereby reducing processor pressure while increasing the IOPS rate by handling more data transfers per command cycle.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If I/O command aggregation is implemented, then IOPS rate increases and processor pressure reduces, but command processing complexity increases

Engineering Contradiction:
ImproveIOPS rateVSAvoidcommand aggregation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by having the host system perform command aggregation before sending commands to the SSD. The host consolidates multiple I/O commands into aggregated command packets in advance, organizing the data transfer counts and memory addresses into a structured format. This preliminary aggregation step simplifies the overall system architecture by eliminating the need for complex aggregation logic in the SSD firmware, while still achieving the benefit of reduced processor pressure and increased IOPS rate.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If individual I/O commands are processed, then processor control precision is maintained, but I/O processing efficiency decreases

Engineering Contradiction:
ImproveI/O processing efficiencyVSAvoidcommand processing control
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent introduces an intermediary aggregated command packet structure that sits between individual I/O commands and the SSD execution engine. This intermediary format preserves all the precise control information from individual commands (memory addresses, data transfer counts) while allowing batch processing. The aggregated command packet acts as a mediator that maintains measurement precision through structured data organization while enabling improved I/O processing efficiency by reducing the number of command cycles required.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8984182B2SCSI I/O command aggregation
Publication Date: 2015.03.17 MARVELL ASIA PTE LTD
  • US8984182B2 patent drawing
  • US8984182B2 patent drawing
  • US8984182B2 patent drawing

AI summary

The present disclosure includes systems and techniques relating to input/output (I/O) command aggregation for Small Computer System Interface (SCSI) enabled devices. In some implementations, a method can comprise receiving a first command for a target device, wherein the first command includes a first memory address and a first data transfer count; receiving a second command for the target device, wherein the second command includes a second memory address and a second data transfer count, and wherein the first and second commands are entirely read commands or entirely write commands; aggregating the first and second memory addresses and the first and second data transfer counts into consolidated command information; generating a packet command that includes a packet tag and a data size corresponding to the consolidated command information; communicating the packet command to the target device; in response to receiving a transfer ready notification from the target device, communicating the consolidated command information to the target device; and communicating additional information to the target device.