Programmable Network Interface Pipeline for Low-CPU Packet Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network interface devices face challenges in efficiently processing data packets due to high CPU usage and resource bottlenecks when performing operations like filtering and packet processing, which can lead to increased I/O bandwidth and memory consumption.

Innovation Solution

A network interface device with a hardware module comprising multiple processing units, each configured to perform specific operations in hardware, interconnected to form a pipeline for processing data packets, using a bit file description to configure the circuit for functions such as filtering, tunnelling, and routing, allowing parallel processing and reduced compile time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data packet processing is performed using traditional CPU-based methods, then flexibility and programmability are maintained, but CPU usage increases and processing speed decreases

Engineering Contradiction:
Improvedata packet processing speedVSAvoidCPU usage
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent replaces CPU-based software processing with hardware-based processing using FPGAs and dedicated processing units. The compiler translates packet processing programs into hardware configurations that directly execute packet filtering, routing, and forwarding operations in hardware, eliminating the need for CPU intervention in data path operations and thereby reducing CPU usage while increasing processing speed.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent introduces a compiler as an intermediary that translates high-level packet processing programs into hardware-specific bitfiles. This compiler acts as a mediator between the software programming model and the hardware execution environment, enabling flexible packet processing without requiring direct CPU involvement in the actual packet forwarding operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If hardware modules are used for packet processing, then processing speed increases, but device complexity and compile time increase

Engineering Contradiction:
Improvedata packet processing speedVSAvoidhardware module complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent employs universal processing units that can be dynamically configured to perform different packet processing functions through software programming. The same hardware architecture can be reconfigured via the compiler to implement various packet filtering, routing, and forwarding algorithms, reducing the need for multiple specialized hardware components and thereby managing device complexity while maintaining high processing speeds.

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

3Adaptability or versatility

If routing information is provided for all processing units, then configurability increases, but compile time increases

Engineering Contradiction:
Improvecircuit configurabilityVSAvoidcompile time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent performs preliminary analysis and optimization during the compilation phase, where the compiler statically determines the routing configuration for processing units based on the packet processing program requirements. By pre-calculating and hardcoding the routing information into the hardware configuration before runtime, the system achieves high configurability without incurring runtime overhead, and the compile time is optimized through efficient algorithms that avoid exhaustive search of all possible routing combinations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11082364B2Network interface device
Publication Date: 2021.08.03 XILINX INC
  • US11082364B2 patent drawing
  • US11082364B2 patent drawing
  • US11082364B2 patent drawing

AI summary

A method comprises receiving at a compiler a bit file description and a program, said bit file description comprising a description of routing of a part of a circuit. The method comprises compiling the program using said bit file description to output a bit file for said program.