Slave Packet Engine NIC Emulation for Multi-Core Transmission

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core systems, non-master cores lack information about data packet transmission status and cannot monitor their own transmission statistics since these tasks are handled by a master core, leading to inefficiencies in data handling and statistics management.

Innovation Solution

Each packet engine emulates a NIC by using a local software-implemented transmission queue to track packet status, with pointers and descriptors allowing slave packet engines to monitor their own statistics and maintain local records of data transmission, even though the master core handles the actual queue transmissions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a master core handles all queue transmissions in a multi-core system, then transmission status information is centralized and easy to manage, but slave cores cannot monitor their own transmission statistics and must make separate copies of data

Engineering Contradiction:
Improvecentralized transmission managementVSAvoidtransmission status information
Core Design Contradiction:
Device complexityVSLoss of information

Solution Approach 1:

The patent divides the centralized transmission management into separate segments: the master core maintains the actual device queue, while each slave core maintains a local software-implemented transmission queue as a representation of the device queue. This segmentation allows slave cores to independently track transmission status without interfering with the master core's centralized management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates software copies of transmission queue status information in each slave core's local memory. Instead of slave cores making copies of actual data packets, they maintain copies of transmission status descriptors that reflect the state of packets in the device queue. These local copies enable slave cores to monitor their own statistics independently.

Inventive Principle:
Principle #26Copying

2Loss of information

If slave packet engines make separate copies of data to track transmission status, then they can monitor their own statistics, but data handling efficiency decreases due to additional memory operations

Engineering Contradiction:
Improvetransmission status informationVSAvoiddata handling efficiency
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent optimizes the copying approach by having slave cores copy only transmission status descriptors (metadata) rather than actual data packets. Each descriptor contains information about packet status, position in queue, and transmission state. This minimal copying approach enables statistics tracking while minimizing memory operation overhead.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The local software-implemented transmission queue serves multiple functions: it acts as a cache for transmission status information, enables independent statistics monitoring for each slave core, and provides a mechanism for tracking packet state without requiring slave cores to access shared memory frequently. This multi-functionality improves efficiency by consolidating multiple needs into a single data structure.

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

3Measurement precision

If slave packet engines access shared data structures to monitor transmission status, then they can obtain accurate statistics, but cache invalidations increase reducing system performance

Engineering Contradiction:
Improvetransmission statistics accuracyVSAvoidcache invalidation overhead
Core Design Contradiction:
Measurement precisionVSLoss of energy

Solution Approach 1:

The patent segments transmission status information into slave-specific local copies rather than requiring all cores to access a single shared data structure. Each slave core has its own local transmission queue that mirrors the relevant portion of the device queue state. This segmentation eliminates the need for frequent cache invalidations when the master core updates transmission status.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The slave cores pre-fetch and store transmission status descriptors in their local memory before the master core processes transmissions. By maintaining local copies of status information in advance, slave cores can monitor their statistics without needing to access shared data structures during transmission operations, thereby avoiding cache invalidation overhead.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10110493B2Systems and methods of emulating a NIC for packet transmission on hardware RSS unaware NICS in a multi-core system
Publication Date: 2018.10.23 CITRIX SYSTEMS INC
  • US10110493B2 patent drawing
  • US10110493B2 patent drawing
  • US10110493B2 patent drawing

AI summary

Emulating a NIC for packet transmission on hardware RSS unaware NICs in a multi-core system enables each of a plurality of slave packet engines to emulate a NIC for packet transmissions locally even though the actual NIC transmissions from the queue are handled by a master packet engine only. Each slave packet engine treats a local software-implemented transmission queue as a device queue and uses the local queue to keep track of status of data from the packet engine in the device output queue, handled by the master packet engine on behalf of the slave packet engines. As the master packet engine transmits the data from the queue and the status of the queue changes, the master packet engine and the slave packet engines may use pointers to keep track of which data packets are transmitted, which data packets are drained and which data packets are still in the queue.