Independent Packet Queuing for Windows SideShow Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for communicating between two independent software components in a Windows SideShow device via emulated serial transports lack robustness, failing to guarantee successful packet transfer and status acquisition.

Innovation Solution

Implementing independent queuing for incoming and outgoing packets in the first software component before parsing and transmitting, using emulated serial transports, with acknowledgment signals for successful or failed packet delivery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If direct communication between software components is implemented without independent queuing, then device complexity is reduced, but communication reliability deteriorates due to lack of packet transfer guarantees

Engineering Contradiction:
Improvecommunication reliabilityVSAvoidsoftware component complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The communication interface is segmented into independent transmit and receive queues, allowing separate management of outgoing and incoming packets. This segmentation enables reliable packet transfer tracking without requiring complex interlocking mechanisms, thus improving communication reliability while maintaining manageable complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Packets are placed in queues before actual transmission or reception occurs. This preliminary queuing action allows the system to prepare and track packet states in advance, ensuring that acknowledgment signals can be properly generated and processed, thereby enhancing communication reliability through proactive packet management.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If packet transmission status is continuously monitored, then communication reliability is improved, but processing time increases due to status acquisition overhead

Engineering Contradiction:
Improvepacket transfer guaranteeVSAvoidstatus acquisition time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

An acknowledgment signal mechanism provides feedback on packet transmission status. When a packet is successfully transmitted or received, an acknowledgment is generated and tracked through the queue system. This feedback approach ensures reliable packet transfer confirmation without requiring continuous monitoring, thus maintaining reliability while minimizing time loss.

Inventive Principle:
Principle #23Feedback

3Productivity

If packets are processed immediately upon arrival, then processing speed is improved, but communication reliability deteriorates due to potential packet loss during parsing

Engineering Contradiction:
Improvepacket processing speedVSAvoidpacket transfer success
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Packets are queued in advance before parsing and processing occur. This preliminary queuing ensures that packets are staged and tracked for acknowledgment generation before they are actually processed. The immediate processing can proceed efficiently while the queue system maintains reliability tracking, thus achieving both high productivity and communication reliability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8032354B2Method and system for communicating between two independent software components of a device
Publication Date: 2011.10.04 NVIDIA CORP
  • US8032354B2 patent drawing
  • US8032354B2 patent drawing
  • US8032354B2 patent drawing

AI summary

A method and system for communicating between two independent software components of the WINDOWS® SIDESHOW™ device are disclosed. Specifically, one embodiment of the present invention sets forth a method, which includes the steps of independently queuing an incoming packet from a second software component via an emulated serial transport in a first software component before parsing and responding to the incoming packet and independently queuing an outgoing packet in the first software component before transmitting the outgoing packet to the second software component also via the emulated serial transport.