Distributed Local Access Pools for Multi-Core Flow Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-processor and multi-core processor systems, traditional centralized shared-memory access mechanisms lead to high computational overheads due to cache-controller contention and blocking of parallel execution progress, limiting computational bandwidth and efficiency.

Innovation Solution

Distributing local shared-computational-resource access pools to each core or processor, eliminating the need for centralized locking operations and reducing cache-controller contention, thereby allowing non-blocking flow control and enhancing parallel execution efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a centralized shared-computational-resource access pool is used with locking operations, then resource access control is achieved, but computational overhead increases and parallel execution is blocked

Engineering Contradiction:
Improveresource access controlVSAvoidcomputational bandwidth
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the centralized shared-computational-resource access pool into multiple distributed local access pools, with each processing entity having its own local pool. This segmentation eliminates the need for centralized locking operations and reduces cache-controller contention, thereby maintaining resource access control while significantly improving computational bandwidth and parallel execution efficiency.

Inventive Principle:
Principle #1Segmentation

2Reliability

If centralized locking operations are used for resource access, then resource contention is controlled, but execution speed decreases due to blocking

Engineering Contradiction:
Improvecontention controlVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

By segmenting the centralized access pool into distributed local access pools, the patent eliminates the need for processing entities to wait for centralized lock availability. Each entity can independently access its local pool without blocking others, thereby maintaining contention control through distribution while dramatically improving execution speed.

Inventive Principle:
Principle #1Segmentation

3Device complexity

If a centralized access pool is used, then resource management is simplified, but cache-controller contention increases

Engineering Contradiction:
Improveresource management complexityVSAvoidcomputational overhead
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the centralized access pool into multiple local access pools distributed across processing entities. This reduces cache-controller contention by localizing access patterns, as each processor primarily accesses its local pool rather than competing for a centralized resource. The distribution strategy manages complexity through systematic allocation while significantly reducing computational overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements local access pools at each processing entity, making the system locally optimized for each processor's access patterns. This local quality approach reduces contention by keeping frequently accessed resources locally available, thereby reducing computational overhead while maintaining manageable resource management through the distributed architecture.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11301142B2Non-blocking flow control in multi-processing-entity systems
Publication Date: 2022.04.12 VMWARE INC
  • US11301142B2 patent drawing
  • US11301142B2 patent drawing
  • US11301142B2 patent drawing

AI summary

The current document is directed to an efficient and non-blocking mechanism for flow control within a multi-processor or multi-core processor with hierarchical memory caches. Traditionally, a centralized shared-computational-resource access pool, accessed using a locking operation, is used to control access to a shared computational resource within a multi-processor system or multi-core processor. The efficient and non-blocking mechanism for flow control, to which the current document is directed, distributes local shared-computational-resource access pools to each core of a multi-core processor and/or to each processor of a multi-processor system, avoiding significant computational overheads associated with cache-controller contention-control for a traditional, centralized access pool and associated with use of locking operations for access to the access pool.