Semaphore Hybrid Architecture for Packet Processing Resource Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In packet processing pipelines, the possibility of contention for remote resources among packets can occur when multiple stages need to update or access shared resources, leading to inefficiencies and potential conflicts.

Innovation Solution

Implementing a resource locking mechanism using semaphores to allocate and manage remote resources, ensuring exclusive access by locking the resource during processing and releasing it when completed, thereby preventing interference from other packets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple packets process operations that read-modify-write remote resources simultaneously, then processing throughput increases, but resource contention and conflicts occur

Engineering Contradiction:
Improveprocessing throughputVSAvoidresource access consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by acquiring the remote resource lock before performing read-modify-write operations. The resource manager locks the remote resource in advance, ensuring that no other packet can access the same resource during the current packet's processing. This prevents race conditions and ensures consistent resource access while allowing high throughput by enabling parallel processing of independent packets.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If remote resources are locked exclusively for each packet, then resource access conflicts are eliminated, but processing latency increases due to waiting for resource release

Engineering Contradiction:
Improveresource access consistencyVSAvoidprocessing latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts the resource locking mechanism from the packet processing path by implementing it at the resource manager level. The resource manager handles lock acquisition and release independently, allowing packets to be processed in parallel without mutual exclusion. This separates the concern of resource access control from packet processing, eliminating latency while maintaining consistency.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If a centralized resource locking mechanism is implemented, then resource contention is managed effectively, but device complexity increases

Engineering Contradiction:
Improveresource contention managementVSAvoidresource manager structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the resource locking function by implementing separate resource managers at each processing stage. Each resource manager independently manages locks for resources accessed at its stage, avoiding the need for a centralized locking mechanism. This segmentation reduces complexity while maintaining effective contention management through localized lock acquisition and release.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9525621B2Semaphore soft and hard hybrid architecture
Publication Date: 2016.12.20 MARVELL ASIA PTE LTD
  • US9525621B2 patent drawing
  • US9525621B2 patent drawing
  • US9525621B2 patent drawing

AI summary

A packet processing device has a plurality of processing stages, including a first processing stage and a second processing stage arranged as a packet processing pipeline. The first processing stage and the second processing stage each have a respective processor configured to process a packet of a packet stream and a respective resource manager having a respective local resource lock corresponding to a remote resource. The respective processor requests the respective resource manager to allocate the remote resource. The respective resource manager responds to the request to allocate the remote resource by locking the remote resource with the respective local resource lock and allocating the remote resource. The respective processor implements a packet processing operation associated with the allocated remote resource.