User-Mode Protocol Stack Offload for Low Context Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network protocols face inefficiencies due to excessive context switching and cache pollution in multitasking systems, particularly when handling short data packets, and existing user-level protocol stacks have not achieved robust, high-performance implementations.

Innovation Solution

Implementing a user-mode operating system functionality that selects and manages protocol processing entities to handle data transmission and reception, allowing protocol processing to occur within the application context without kernel involvement, utilizing a protocol processing entity that performs tasks like checksums and segmentation, and communicating directly with the network interface device.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If kernel mode protocol processing is used, then system stability and security are improved, but processing overhead and context switching increase

Engineering Contradiction:
Improvesystem stabilityVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the protocol processing functionality into separate user-mode protocol processing entities that can be independently selected and executed. This segmentation allows the system to bypass the kernel mode protocol stack for certain operations, reducing context switching while maintaining system stability through controlled access mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer (user-mode protocol processing entity) between the application and the kernel mode network interface card driver. This intermediary handles protocol processing in user mode, acting as a mediator that reduces the need for kernel mode context switching while maintaining system stability through proper interface definitions and controlled communication channels.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If user-level protocol processing stacks are implemented, then context switching is reduced, but implementation robustness and performance are compromised

Engineering Contradiction:
Improvecontext switching frequencyVSAvoidimplementation robustness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent creates a universal user-mode protocol processing entity that can handle multiple protocol types and can be selected based on the specific protocol indication in the data. This multi-functional design provides robust implementation while maintaining user-mode operation, as the entity can adapt to different protocol requirements without requiring kernel mode involvement.

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

Solution Approach 2:

The patent utilizes parameter changes by selecting different user-mode protocol processing entities based on the protocol indication parameter in the incoming data. This allows the system to dynamically adapt the processing approach while remaining in user mode, achieving both reduced context switching and robust implementation through proper parameter-based entity selection.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If short data packets are transmitted in multitasking systems, then network communication efficiency is improved, but cache pollution and processing overhead increase

Engineering Contradiction:
Improvenetwork communication efficiencyVSAvoidcache pollution
Core Design Contradiction:
ProductivityVSObject-generated harmful factors

Solution Approach 1:

The patent implements self-service by allowing user-mode protocol processing entities to handle their own protocol processing operations without requiring kernel mode intervention. This self-contained approach in user mode reduces cache pollution associated with frequent context switching between kernel and user modes, while maintaining efficient processing of short data packets through direct memory access within the user-mode address space.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20100057932A1Onload network protocol stacks
Publication Date: 2010.03.04 XILINX INC
  • US20100057932A1 patent drawing
  • US20100057932A1 patent drawing
  • US20100057932A1 patent drawing

AI summary

A method for transmitting data by means of a data processing system, the system supporting an operating system and at least one application and having access to a memory and a network interface device capable of supporting a communication link over a network with another network interface device, the method comprising the steps of: forming by means of the application data to be transmitted; requesting by means of the application a user-mode operating system functionality of the data processing system to direct the data to be transmitted, the request including an indication of a protocol by which the data is to be transmitted; responsive to that request, the user-mode operating system functionality selecting a protocol processing entity in accordance with the indication of a protocol by which the data is to be transmitted; forming within the context of the application by means of the protocol processing entity the data into packets for transmission in accordance with the protocol by which the data is to be transmitted and writing by means of the protocol processing entity the packets to be transmitted to an area of the memory; initiating by means of communication between the protocol processing entity and the network interface device a transmission operation of at least some of the packets over the network.