Multi-Core Wireless NIC Queue Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing devices with wireless networking hardware often become processor-bound due to single-threaded wireless driver operations, which limits multicore processor utilization and affects data transmission rates and power consumption.

Innovation Solution

Implementing a system where multiple transmission queues are allocated for each processor core, allowing the wireless driver to enqueue packets without software locks, and a wireless NIC merges these queues into a hardware transmission queue, adding sequence numbers and transmitting data efficiently across multiple cores.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If single-threaded wireless driver operations are used, then software simplicity is maintained, but processor-bound limitations occur and multicore utilization is reduced

Engineering Contradiction:
Improvedata transmission rateVSAvoiddriver structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the transmission queue into multiple segments, with each segment associated with a specific processor core. This segmentation allows different cores to operate on different queue segments simultaneously, enabling multicore utilization while maintaining operational simplicity through dedicated per-core handling.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a single-dimensional (single-threaded) driver operation to a multi-dimensional (multithreaded) structure by introducing multiple transmission queues corresponding to multiple processor cores. This dimensional expansion enables parallel processing across cores while keeping each core's operation simple and lock-free.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If multiple transmission queues are allocated for each processor core, then multicore processor utilization is improved, but device complexity increases

Engineering Contradiction:
Improvemulticore utilizationVSAvoidqueue management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Each processor core independently manages its own associated transmission queue without requiring coordination or synchronization with other cores. This self-service approach eliminates the need for complex inter-core communication and synchronization mechanisms, reducing overall system complexity despite having multiple queues.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent merges multiple per-core transmission queues into a single hardware transmission queue at the wireless network interface controller level. This merging allows the hardware to handle the consolidation automatically through simple pointer manipulation, avoiding complex software-based queue management while still enabling multicore utilization.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If software locks are used for queue management, then thread safety is ensured, but transmission overhead increases and performance decreases

Engineering Contradiction:
Improvethread safetyVSAvoidtransmission throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Each processor core independently enqueues packets to its own dedicated transmission queue segment without requiring locks or synchronization. This self-service model ensures thread safety through isolation rather than coordination, eliminating lock overhead and maximizing transmission throughput.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent extracts the synchronization and coordination functions from the driver software by dedicating separate queue segments to each core. This extraction removes the need for software locks entirely, as each core operates independently on its own queue segment, thereby eliminating the performance penalty associated with locking mechanisms.

Inventive Principle:
Principle #2Taking out (Extraction)

4Productivity

If single-threaded driver operations are used, then power consumption is reduced, but data transmission rates are limited

Engineering Contradiction:
Improvedata transmission rateVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The transmission queue is segmented into multiple parallel processing paths, one for each processor core. This segmentation enables simultaneous data transmission across multiple cores, increasing overall transmission rate. The power consumption increases proportionally to the number of active cores, but each core operates independently and efficiently without the overhead of context switching and synchronization.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10284501B2Technologies for multi-core wireless network data transmission
Publication Date: 2019.05.07 INTEL CORP
  • US10284501B2 patent drawing
  • US10284501B2 patent drawing
  • US10284501B2 patent drawing

AI summary

Technologies for multi-core wireless data transmission include a computing device having a processor with multiple cores and a wireless network interface controller (NIC). The computing device establishes multiple transmission queues that are each associated with a processor core. A driver receives a packet for transmission from an application in the execution context of the application, determines a current processor core of the execution context, adds metadata to the packet indicative of the current core, and enqueues the packet in the transmission queue associated with the current core. The wireless NIC merges the packet with packet data from the other transmission queues, adds a sequence number to each packet, and transmits each packet. The wireless NIC may determine the current processor core based on the metadata of the packet and raise an interrupt to the current processor core in response to transmitting the packet. Other embodiments are described and claimed.