Multi-host SATA Controller Concurrent Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-host systems face performance bottlenecks when sharing SATA devices due to high latencies caused by software-based virtualization solutions and sequential access schemes, which are either cost-intensive or degrade system performance.

Innovation Solution

A multi-host SATA controller with four layers - device switching, device control, link, and physical layers - that enables concurrent access by independent host processors through independent registers and DMA engines, allowing seamless switching and load balancing, along with power management and interrupt handling capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software-based virtualization solutions (VMM/Hypervisor) are used to enable multiple operating systems to share a SATA device, then multi-host capability is achieved, but high latencies are introduced and system performance degrades

Engineering Contradiction:
Improvemulti-host capabilityVSAvoidlatency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The SATA controller is segmented into multiple host interfaces (first host interface, second host interface) that can independently communicate with different hosts simultaneously. Each host interface has its own command queue and control logic, allowing parallel command processing from multiple hosts without software virtualization overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A command switch engine acts as an intermediary between multiple hosts and the SATA device. It receives commands from multiple hosts, arbitrates access based on priority or round-robin scheduling, and switches command streams to the appropriate host or device, enabling hardware-based multi-host support without software virtualization latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If external SAS expanders are used to connect multiple hosts to a single SATA device, then physical connectivity is achieved, but sequential access coordination is required and performance is bottlenecked

Engineering Contradiction:
Improvemulti-host connectivityVSAvoidsystem performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The controller includes separate host interfaces and command queues for each host, allowing simultaneous command submission from multiple hosts. The command switch engine segments the command stream and routes commands from different hosts independently to the SATA device, enabling concurrent access rather than sequential coordination.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple host interfaces and their command queues are merged into a unified command execution pipeline through the command switch engine. This allows the SATA device to receive and process commands from multiple hosts in an interleaved manner, combining the productivity benefits of concurrent access while maintaining a single physical SATA device connection.

Inventive Principle:
Principle #5Merging (Combining)

3Device complexity

If a single host processor is used with a SATA controller, then the controller architecture is simple, but multi-host systems cannot share the SATA device

Engineering Contradiction:
Improvecontroller architectureVSAvoidmulti-host support
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The SATA controller is designed with universal multi-host capability through multiple host interfaces that can independently communicate with different hosts. The command switch engine provides multi-functionality by supporting various switching modes (priority-based, round-robin, dynamic) and enabling the same controller to serve multiple hosts simultaneously, making the controller adaptable to different multi-host configurations.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9189166B2Multi-host SATA controller
Publication Date: 2015.11.17 SOCTRONICS INC
  • US9189166B2 patent drawing
  • US9189166B2 patent drawing
  • US9189166B2 patent drawing

AI summary

Described herein is a system having a multi-host SATA controller (102) configured to provide communication and control between two or more independent host processors (104) and a single SATA device (108). In one implementation, the multi-host SATA controller (102) includes the device switching layer (206), the device control layer (208), the link layer (210), and the physical layer (212). The device switching layer (206) allows the host processors (104) to issue commands concurrently rather than in sequential order. For this, the device switching layer (206) has independent set of host device registers (214) corresponding to each of the host processors (104). The device switching layer (206) also has independent DMA engines (216) to perform a command pre-fetching from respective host system memories (105). Further, a command switch engine (220) may arbitrate commands in case both the host processors (104) wish to access the SATA device (108) simultaneously.