SCSI Latency Reduction via Dummy Read Command Merging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The conventional SCSI protocol incurs significant latency due to an extra round trip required for separate command and data phases, which becomes problematic over communication links with high latency.

Innovation Solution

Implementing a method where a first device allocates buffers for a dummy SCSI read command and sends it to a second device, indicating readiness to receive data, allowing the second device to store this command until it has data to send, thereby eliminating the need for an additional round trip by using pre-allocated SCSI read commands and their responses for data transmission.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate command and data phases are used in SCSI protocol, then command validation and data transmission are performed in an organized manner, but an extra round trip is required increasing latency

Engineering Contradiction:
Improvecommand validation reliabilityVSAvoidcommand latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges the command phase and data phase into a single phase by allowing the target to send data directly in response to a write command without requiring a separate request for data command. This combines what were previously separate phases into one unified operation, eliminating the extra round trip while maintaining command validation through buffer allocation and command queue management.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The target performs preliminary actions by pre-allocating buffers and pre-establishing command queues before data transmission is needed. This allows the target to be ready to receive and process data immediately when the write command arrives, eliminating waiting time for buffer allocation and command setup while ensuring reliable command validation.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If separate command and data phases are used, then protocol structure is maintained, but data transmission efficiency decreases over high-latency links

Engineering Contradiction:
Improveprotocol structureVSAvoiddata transmission efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent merges the command phase and data phase into a single phase by allowing the target to send data directly in response to a write command without requiring a separate request for data command. This combines what were previously separate phases into one unified operation, eliminating the extra round trip while maintaining command validation through buffer allocation and command queue management.

Inventive Principle:
Principle #5Merging (Combining)

3Loss of time

If dummy SCSI read commands are used to eliminate round trips, then latency is reduced, but protocol complexity increases

Engineering Contradiction:
ImprovelatencyVSAvoidprotocol complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent uses a dummy SCSI read command as a copy or placeholder structure that mimics a normal read command format but serves a different purpose. This dummy command is allocated in advance and stored in a command queue, allowing the target to send data in response without requiring a separate request phase. The dummy command structure reuses existing SCSI protocol command formats, minimizing the increase in protocol complexity while achieving latency reduction.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7539790B1Reducing latency in SCSI protocol
Publication Date: 2009.05.26 HEWLETT PACKARD ENTERPRISE DEV LP
  • US7539790B1 patent drawing
  • US7539790B1 patent drawing
  • US7539790B1 patent drawing

AI summary

To communicate over a SCSI protocol, a first device allocates buffers for a dummy SCSI read command and sends the dummy SCSI read command to a second device. This dummy SCSI read command is not a request by the first device to read data from the second device but instead is an indication that the first device is ready to receive data from the second device. In response, the second device stores the dummy SCSI read command to a command queue until the second device wishes to send data to the first device. At that time, the second device removes the dummy SCSI read command from the command queue and sends a response to the dummy SCSI read command to the first device. This response includes data that the second device wishes to send to the first device. The first device then delivers the received data to a higher layer process.