SATA Device Dual Operating State Command Data Separation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The SATA protocol leads to inefficiencies in communication between hosts and devices due to collisions causing bus inactivity and reduced Input/Output Operations Per Second (IOPS) as faster SATA devices tend to starve themselves of commands, resulting in underutilization of the SATA bus.

Innovation Solution

Implementing a dual operating state configuration in SATA devices, where commands are received in one state and data is sent in another, with data having priority, allowing for back-to-back data transfers and minimizing time gaps between command sending and response.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the SATA device operates at high speed, then data transfer rate is improved, but the device tends to repeatedly win collisions and starve itself of commands, resulting in bus underutilization

Engineering Contradiction:
Improvedata transfer rateVSAvoidbus utilization
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The SATA device dynamically transitions between two operating states: a first state where only commands are received and a second state where both commands are received and data is sent. This dynamic state adjustment allows the device to adapt its behavior based on queue depth and collision conditions, resolving the contradiction between high-speed operation and bus utilization by preventing starvation while maintaining transfer rates.

Inventive Principle:
Principle #15Dynamics

2Productivity

If the SATA device sends data back-to-back without delays, then IOPS is improved, but collisions with host commands occur more frequently, causing the device to lose commands

Engineering Contradiction:
ImproveIOPSVSAvoidcommand reception
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The device dynamically adjusts its operating state based on real-time conditions. When the command queue depth is sufficient, the device operates in the second state enabling back-to-back data transfers for high IOPS. When collisions occur or queue depth decreases, it transitions to the first state to reliably receive commands without interference, thus balancing IOPS performance with command reception reliability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The device monitors collision events and queue depth as feedback signals. When collisions are detected or the queue becomes shallow, the device uses this feedback to transition to the command-receive-only state, preventing further command loss. This feedback mechanism ensures reliable command reception while allowing aggressive data transfer when conditions permit high IOPS.

Inventive Principle:
Principle #23Feedback

3Quantity of substance

If the host continuously sends commands to the SATA device, then command queue depth is maintained, but the host is forced to back down on command attempts due to collisions during data transfer

Engineering Contradiction:
Improvecommand queue depthVSAvoidhost back down time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The SATA device's dynamic state transitions create windows of opportunity for the host to send commands without collisions. When the device is in the first operating state (commands only), the host can freely send commands to maintain queue depth without experiencing back downs. This dynamic behavior resolves the contradiction by allowing continuous command submission while the device manages data transfers in a controlled manner.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9817777B2Multi-operating state serial ATA devices and methods of operation therefor
Publication Date: 2017.11.14 KIOXIA CORP
  • US9817777B2 patent drawing
  • US9817777B2 patent drawing
  • US9817777B2 patent drawing

AI summary

Methods and SATA devices having more than one operating state suitable for providing efficient command and data transfers over a SATA bus. A SATA device is provided for communicating with a host. The host sends commands to the SATA device and the SATA device sends data to the host in response to the commands being received by the SATA device. The SATA device has a queue of commands received from the host. The SATA device is configured to operate in a first operating state wherein the commands are received by the SATA device and the data are not sent to the host, and a second operating state wherein the commands are received by the SATA device and the data are sent to the host wherein data being sent to the host has priority over receiving commands by the SATA device.