Bidirectional Block Device Communication via Command Inversion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy block device protocols are uni-directional, preventing target devices from sending commands to initiator devices, which limits bidirectional communication and data synchronization in certain applications.

Innovation Solution

Implementing a system with an initiator interface and a target interface that uses a dispatcher module to generate threads for sending read commands and an executor module to execute commands, enabling target devices to send commands back to initiator devices via a standard block device protocol using control devices that can deliver commands and control information in both directions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a standard block device protocol is used for communication between initiator device and target device, then compatibility and ease of operation are improved, but bidirectional communication capability deteriorates because the protocol only supports commands from initiator to target

Engineering Contradiction:
Improveease of operationVSAvoidbidirectional communication capability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent inverts the traditional block device communication model by enabling the target device to send commands to the initiator device. This is achieved by having the target device package commands as data within read response packets, effectively reversing the conventional command-initiation direction while maintaining protocol compatibility

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent uses an intermediary mechanism where the target device embeds commands within data fields of standard protocol packets. The initiator device's dispatcher module acts as an intermediary that intercepts these embedded commands, parses them, and executes them appropriately, thereby enabling bidirectional communication without modifying the core protocol

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If bidirectional communication is implemented using sophisticated interfaces like PCIe, then adaptability and communication capability are improved, but device complexity increases

Engineering Contradiction:
Improvebidirectional communication capabilityVSAvoiddevice complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent makes the standard block device protocol multi-functional by enabling it to carry both traditional data transfers and commands in both directions. The protocol is extended to accommodate target-initiated commands without requiring a completely new interface, thereby achieving bidirectional communication with universal applicability across existing block device architectures

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

Solution Approach 2:

The patent creates a virtual bidirectional communication channel by copying the command structure into the data field of standard protocol packets. This allows commands to be transmitted through the existing unidirectional protocol framework without requiring new physical or logical interfaces, thereby avoiding the complexity of sophisticated interfaces like PCIe

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8694691B2Systems and methods for creating bidirectional communication channels using block devices
Publication Date: 2014.04.08 MARVELL ASIA PTE LTD
  • US8694691B2 patent drawing
  • US8694691B2 patent drawing
  • US8694691B2 patent drawing

AI summary

A system includes an initiator device including an initiator interface. A target device includes a target interface that communicates with the initiator interface via a protocol. The protocol supports commands being sent from the initiator device to the target device. The protocol does not support commands being sent from the target device to the initiator device. The target interface is configured to send a command to the initiator device via the protocol. The initiator interface is configured to execute the command.