Lockless Arbiter for Hardware Request Ring Structures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing technologies, such as Hadoop and SDN frameworks, face performance bottlenecks due to high CPU overhead from inter-server communication and inefficient resource utilization, particularly in CPU-intensive workloads like data analytics and Big Data processing, where existing locking mechanisms and Memory-Mapped IO operations lead to stalls and significant CPU cycles.

Innovation Solution

The implementation of a lockless arbiter and ring overflow guard mechanism, combined with a request ring structure and associated metadata, eliminates unnecessary CPU locks and MMIO operations, enabling efficient communication between CPU threads and accelerators through atomic operations and DMA transactions, thereby improving throughput and latency for PCIe offload devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If locking mechanisms (thread mutexes, futexes, CAS methods) are used to coordinate descriptor submission to the ring buffer, then concurrent access safety is improved, but CPU performance deteriorates due to stalls and collisions

Engineering Contradiction:
Improveconcurrent access safetyVSAvoidCPU performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the locking mechanism from the descriptor submission process entirely. Instead of using traditional locks, it employs a lockless ring buffer structure where multiple producer threads can submit descriptors concurrently without mutual exclusion, eliminating CPU stalls and collisions while maintaining data integrity through careful pointer management and memory ordering.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent replaces the mechanical locking system (mutexes, futexes, CAS operations) with a software-based lockless coordination mechanism using atomic pointer updates and memory barriers. This substitution eliminates the need for hardware lock instructions and reduces CPU cycle consumption while preserving concurrent access safety.

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

2Ease of operation

If Memory-Mapped IO (MMIO) operations are used for CPU threads to access registers or memory on PCIe offload device, then communication capability is improved, but CPU overhead increases significantly in terms of CPU cycles

Engineering Contradiction:
Improvecommunication capabilityVSAvoidCPU cycles
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The patent extracts MMIO operations from the descriptor submission path. Instead of requiring CPU threads to perform MMIO accesses to PCIe device registers, the design allows CPU threads to write descriptors directly to memory buffers that are then transferred to the accelerator via DMA, eliminating unnecessary CPU-initiated IO transactions and reducing CPU cycle overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a descriptor ring buffer in system memory as an intermediary between CPU threads and the PCIe offload device. CPU threads deposit descriptors into this memory-based ring buffer, and the accelerator consumes them through DMA transfers, eliminating the need for direct MMIO communication and reducing CPU involvement in data transfer operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If traditional ring buffer with locking mechanisms is used for descriptor submission from multiple producers, then concurrent submission safety is improved, but system throughput deteriorates due to CPU stalls

Engineering Contradiction:
Improvesubmission safetyVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the ring buffer into multiple independent regions or uses per-producer pointers that can be updated independently. This segmentation allows multiple producer threads to operate on different parts of the ring buffer simultaneously without interfering with each other, eliminating the need for centralized locking and improving system throughput while maintaining submission safety.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11748174B2Method for arbitration and access to hardware request ring structures in a concurrent environment
Publication Date: 2023.09.05 INTEL CORP
  • US11748174B2 patent drawing
  • US11748174B2 patent drawing
  • US11748174B2 patent drawing

AI summary

Methods and apparatus for arbitration and access to hardware request ring structures in a concurrent environment. A request ring mechanism is provided including an arbiter, ring overflow guard, request ring, and request ring metadata, each of which is implemented in shared virtual memory (SVM) on a computing platform including a multi-core processor coupled to an offload device having one or more SVM-capable accelerators. Worker threads request to access the request ring to provide job descriptors to be processed by the accelerator(s). A lockless arbiter returns either an index of a slot in which to write a descriptor or information indicating the ring is full to each worker thread. The scheme enables worker threads to write descriptors to slots in the request ring corresponding to the returned indexes without contention from other worker threads. The ring overflow guard prevents valid descriptors from being overwritten before they are taken off the ring by the accelerator(s). The request ring metadata is used indicate a valid/invalid status of the ring entries.