Synchronization Process for Streaming Packet Transmission
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Synchronization of input/output operations between individual processes or threads is challenging, particularly in scenarios like video streaming, where tight timing constraints require accurate synchronization without overloading the CPU with clock distribution and intensive polling.
Innovation Solution
A system that includes a processor with a synchronization process that manages a queue of packets for transmission, using a master queue and completion queue to coordinate packet transmission and send doorbells to transmission hardware, offloading synchronization efforts from individual processes and reducing CPU load by consolidating synchronization tasks into a single process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If individual processes or threads perform input/output independently, then each process can operate autonomously, but synchronization of their related input/output becomes challenging and requires intensive polling and clock distribution
Solution Approach 1:
The patent merges the synchronization function into a dedicated synchronization process that consolidates timing coordination for multiple processes. Instead of each process independently managing its own synchronization, a single synchronization process handles all timing coordination by accessing shared queues (dummy send queue, completion queue) and coordinating packet transmissions across processes, thereby reducing overall system complexity while maintaining process autonomy.
Solution Approach 2:
The synchronization process acts as an intermediary between individual transmit processes and the transmission hardware. It receives packet information from various transmit processes, manages timing coordination through shared queues, and sends doorbells to transmission hardware to trigger actual packet transmission. This intermediary role eliminates the need for direct complex synchronization between processes and the hardware.
2Measurement precision
If CPU performs intensive polling and clock distribution for synchronization, then timing accuracy is maintained, but CPU load increases significantly
Solution Approach 1:
The patent extracts the synchronization function from the CPU-intensive polling and clock distribution tasks. By implementing a dedicated synchronization process that uses event-driven mechanisms (doorbells triggered by completion queue entries), the system maintains timing accuracy while eliminating continuous CPU polling. The synchronization process only activates when needed, based on actual packet transmission events rather than continuous time-based polling.
Solution Approach 2:
The transmission hardware and completion queue mechanism provide self-service timing signals. When packets are transmitted or ready for transmission, the hardware automatically generates completion queue entries that trigger the synchronization process to send doorbells. This self-service mechanism eliminates the need for CPU to actively monitor and poll for transmission status, significantly reducing CPU load while maintaining accurate timing.
3Ease of operation
If multiple transmit processes manage their own packet queues independently, then each process has control over its data, but coordinating packet transmission timing becomes difficult
Solution Approach 1:
The patent segments the transmission coordination function into separate components: each transmit process maintains its own packet queue and control (preserving process autonomy), while a separate synchronization process handles timing coordination. The synchronization process accesses shared queues (dummy send queue, completion queue) to coordinate transmission timing across all processes. This segmentation allows each process to operate independently while achieving precise timing coordination through the synchronization process.
Data Source
AI summary
A method including configuring a transmit process to store information including a queue of packets to be transmitted, the queue defining transmit process packets to be transmitted, each packet associated with a transmission time, and configuring a synchronization process to receive from the transmit process at least some of the information. The synchronization process performs one of: A) accessing a dummy send queue and a completion queue, and transmitting one or more of the transmit process packets in accordance with a completion queue entry in the completion queue, and B) sends a doorbell to transmission hardware at a time when at least one of the transmit process packets is to be transmitted, the synchronization process including a master queue configured to store transmission entries, each transmission entry including a transmit process indicator and an indication of transmit process packets to be transmitted. Related apparatus and methods are also described.


