Lockless Hierarchical Bandwidth Management for Multiprocessor NPUs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Networking equipment with both control and data planes faces bandwidth limitations and complexity in managing network traffic, particularly in moving packets between the control plane and data plane, as well as among parallel packet engines within Network Processing Units (NPUs, leading to bottlenecks and difficulty in programming.

Innovation Solution

Implementation of hierarchical bandwidth partitions using a Hierarchical Token Bucket (HTB) algorithm with atomic data structures in a network processor unit, allowing for coordinated bandwidth management across multiple processor environments by passing target bandwidth rates from parent to child partitions, enabling efficient packet sampling and scheduling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional bandwidth management methods are used in multi-core processor environments, then system complexity increases and bottlenecks occur, but bandwidth management efficiency decreases

Engineering Contradiction:
Improvebandwidth management efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the bandwidth management system into hierarchical partitions (root partition and child partitions) that can be independently managed. Each partition has its own token bucket parameters (rate, ceiling, token count) and can be configured separately, allowing complex bandwidth management to be broken down into simpler, manageable segments across multiple processor cores.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical dimension to bandwidth management by organizing partitions in a tree structure with root and child levels. This hierarchical arrangement adds a new organizational dimension that allows bandwidth resources to be allocated and managed across multiple processor cores in a structured way, reducing system complexity while improving efficiency.

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

2Ease of operation

If packets are moved between control plane and data plane or among parallel packet engines, then traffic control capability improves, but bottlenecks and bandwidth limitations occur

Engineering Contradiction:
Improvetraffic control capabilityVSAvoidbandwidth throughput
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent introduces atomic data structures as intermediaries between processor cores that need to share bandwidth management state. These atomic structures provide lock-free access to shared resources, allowing packets to be moved between control plane and data plane or among parallel packet engines without creating bottlenecks, while maintaining traffic control capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces traditional lock-based synchronization mechanisms with atomic data structures and lock-free algorithms. This substitution eliminates the mechanical bottlenecks that occur when multiple processor cores compete for access to shared bandwidth management resources, thereby improving bandwidth throughput while maintaining traffic control capability.

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

3Productivity

If hierarchical bandwidth partitions with atomic data structures are implemented, then bandwidth management efficiency improves and bottlenecks are reduced, but implementation complexity increases

Engineering Contradiction:
Improvebandwidth management efficiencyVSAvoidimplementation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates universal atomic data structures that can be used across all processor cores and all bandwidth partitions. These atomic structures serve multiple functions simultaneously (synchronization, state sharing, bandwidth tracking) and can be applied throughout the entire hierarchical partition structure, reducing implementation complexity despite the sophisticated bandwidth management capabilities.

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

4Ease of operation

If target bandwidth rates are passed from parent to child partitions, then coordinated bandwidth management improves, but computational overhead increases

Engineering Contradiction:
Improvecoordinated bandwidth managementVSAvoidCPU cycles
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The patent performs preliminary configuration of bandwidth rates by passing target bandwidth rates from parent to child partitions during system initialization or configuration phases. This preliminary action establishes the bandwidth hierarchy in advance, allowing the system to operate efficiently during packet forwarding without repeated computational overhead for rate coordination.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7813277B2Lockless bandwidth management for multiprocessor networking devices
Publication Date: 2010.10.12 CA TECH INC
  • US7813277B2 patent drawing
  • US7813277B2 patent drawing
  • US7813277B2 patent drawing

AI summary

An example embodiment of the invention provides a process for lockless processing of hierarchical bandwidth partitions configurations in multiple processor architectures. In one embodiment, the process runs in an NPU's data plane and receives a packet for a partition from a child partition through a work queue. The process determines a suggested target bandwidth rate for the receiving partition's child partitions, based in part on a count of active child partitions, if a predefined time interval has passed. The process adopts a target bandwidth rate for the receiving partition suggested by the receiving partition's parent partition, if the receiving partition is not a root partition and the predefined time interval has passed. The process then transmits the packet to the receiving partition's parent partition through the work queue, if the receiving partition is not a root partition. Otherwise, the process transmits the packet to a port.