Generic Ring Buffer Handling in Network Controllers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current network controllers are inefficient due to the need for specific ring buffers to handle specific tasks, which limits their ability to implement additional features or protocols, and the freezing of the PCI-E bus to reorder data, causing interruptions and wasting CPU cycles.

Innovation Solution

Implementing generic ring buffer handling using software queues with user-defined protocols that define data movement and processing relationships, minimizing processor involvement and interruptions by configuring software queue pairs on both host and network controller domains.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If specific ring buffers are used to handle specific tasks, then task-specific functionality is achieved, but device complexity and inability to implement additional features increases

Engineering Contradiction:
Improveability to implement additional features or protocolsVSAvoidnumber of different ring buffers needed
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal ring buffer structure that can handle multiple tasks through configuration rather than requiring separate dedicated buffers for each task. The ring buffer is designed with generic data structures and control mechanisms that can be adapted to different protocols and functions, allowing one buffer to serve multiple purposes while maintaining the ability to implement additional features without increasing device complexity

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

2Reliability

If PCI-E bus is frozen to reorder data, then data ordering is ensured, but productivity and CPU cycle efficiency decreases

Engineering Contradiction:
Improvedata ordering correctnessVSAvoidnetwork controller throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent reorders data in advance during the data collection phase before transmission, rather than freezing the PCI-E bus during transmission to reorder data. By performing reordering operations preliminarily when the network controller has control over the data flow, the system ensures data is properly ordered before being sent to the host, eliminating the need to interrupt and freeze the PCI-E bus during critical transmission periods

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic data structures and buffer management that allow flexible data reordering without requiring static freezing of the bus. The system uses configurable buffer pointers, descriptors, and control fields that can be adjusted dynamically to maintain proper data ordering while keeping the PCI-E bus active and allowing continuous data flow and other operations to proceed

Inventive Principle:
Principle #15Dynamics

3Productivity

If data is moved between PCI-host and network controller, then data processing is enabled, but CPU cycles are wasted on data movement

Engineering Contradiction:
Improvedata processing throughputVSAvoidCPU cycles spent on data movement
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements self-service mechanisms where the network controller autonomously manages data movement between itself and the PCI-host without requiring continuous CPU intervention. The system uses direct memory access (DMA) capabilities, interrupt-driven transfer completion notifications, and automated buffer management that allow the network controller to handle its own data movement operations, freeing up CPU cycles for higher-level processing tasks while maintaining efficient data throughput

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10958597B2General purpose ring buffer handling in a network controller
Publication Date: 2021.03.23 CISCO TECHNOLOGY INC
  • US10958597B2 patent drawing
  • US10958597B2 patent drawing
  • US10958597B2 patent drawing

AI summary

The disclosed technology relates to a process for general-purpose ring buffer handling in a network controller. Specifically, general purpose ring buffers are used in software queue on both the host domain and the network controller to carry out user-defined protocols. The protocols define the relationship of the ring buffers in the host domain and the network controller domain (e.g. how data is moved and processed). The protocols minimize interruptions to the network controller. Furthermore, the implementation of ring buffers in the network controller domain also provides additional resources to the host domain for carrying out the user-defined protocols.