Multi-threaded Flow Control via CPU Core and Thread State

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-threaded environments, existing flow control mechanisms fail to efficiently manage concurrent access to contentious resources, leading to throughput degradation and increased wait times as concurrency increases, especially when using semaphores or partitioning methods that do not consider CPU core utilization and thread states.

Innovation Solution

A system and method for flow control that determines which threads can enter a critical section of code based on the CPU core, state, and processing rate, allowing only one thread per CPU core and prioritizing faster-moving threads to maintain high throughput and reduce latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional flow control mechanisms (semaphores or partitioning) are used to manage concurrent access to contentious resources, then basic thread synchronization is achieved, but throughput degrades and wait times increase as concurrency increases

Engineering Contradiction:
ImprovethroughputVSAvoidwait time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent changes the parameters used for flow control decisions from simple semaphore counts or partition identifiers to multi-dimensional parameters including CPU core identifier, thread state, and processing rate. This allows the system to make more informed decisions about thread access, preventing throughput degradation by distributing threads more effectively across available resources and reducing wait times by prioritizing threads based on their current state and performance characteristics

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements feedback mechanisms that continuously monitor thread processing rates and CPU core utilization. This feedback information is used to dynamically adjust flow control decisions, allowing the system to respond to changing conditions and maintain optimal throughput even as concurrency increases. The feedback loop enables the system to identify and prevent bottlenecks before they significantly impact performance

Inventive Principle:
Principle #23Feedback

2Productivity

If more threads are allowed to access the critical section simultaneously, then concurrency is improved, but resource contention increases and system performance degrades

Engineering Contradiction:
ImproveconcurrencyVSAvoidsystem performance stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies local quality by allowing different numbers of threads to access the critical section based on the specific CPU core and thread state. Rather than applying a uniform limit across all threads, the system tailors access permissions to local conditions, enabling higher concurrency on cores with lower utilization while maintaining stability on cores that are already heavily loaded

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent makes the flow control mechanism dynamic by continuously adjusting thread access permissions based on real-time monitoring of CPU core utilization and thread processing rates. This dynamic adjustment allows the system to adapt to changing workloads, maintaining optimal concurrency levels and preventing performance degradation as system conditions evolve

Inventive Principle:
Principle #15Dynamics

3Device complexity

If flow control decisions are made without considering CPU core and thread state, then implementation is simpler, but throughput degradation occurs under high concurrency

Engineering Contradiction:
Improveflow control mechanism complexityVSAvoidthroughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent creates a universal flow control mechanism that handles multiple functions within a single framework: it manages basic thread synchronization, monitors CPU core utilization, tracks thread states, measures processing rates, and makes intelligent access decisions. This multi-functional approach avoids the need for separate mechanisms for each function, managing complexity while delivering high throughput performance

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

Data Source

PatentUS11372649B2Flow control for multi-threaded access to contentious resource(s)
Publication Date: 2022.06.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11372649B2 patent drawing
  • US11372649B2 patent drawing
  • US11372649B2 patent drawing

AI summary

Described herein is a system and method of performing flow control for multi-threaded access to contentious resource(s) (e.g., shared memory). A request to enter a critical section of code by a particular thread of a plurality of concurrent threads is received. A determination is made as to whether or not to allow the particular thread to enter the critical section of code based, at least in part, upon a CPU core associated with the particular thread, a state associated with the particular thread, and/or a processing rate in the critical session of code associated with the particular thread. When it is determined to allow the particular thread to enter the critical section of code, the particular thread is allowed to enter the critical section of code.