Thread Wake-Up Latency Reduction via Pre-Release Notification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current thread synchronization mechanisms, particularly lock-based systems, suffer from significant latency due to the time-consuming process of waking up threads waiting for lock release, which can be several microseconds, leading to inefficiencies in multithreaded execution.

Innovation Solution

Introducing a pre-release operation that notifies waiting threads that the lock is about to be released, allowing them to wake up and begin their operations concurrently with the lock-holding thread's remaining operations, thereby reducing latency by overlapping wake-up time with the lock-holding thread's processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If a traditional lock release mechanism is used, then thread synchronization is maintained, but thread wake-up latency increases execution time

Engineering Contradiction:
Improvethread wake-up latencyVSAvoidmultithreaded execution efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent applies preliminary action by performing a pre-release operation that notifies waiting threads before the actual lock release occurs. This allows waiting threads to begin their wake-up process early, overlapping it with the lock-holding thread's remaining operations, thereby reducing the overall wake-up latency and improving multithreaded execution efficiency.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If thread wake-up operations are performed sequentially after lock release, then synchronization correctness is maintained, but overall system performance deteriorates

Engineering Contradiction:
Improvesystem performanceVSAvoidsynchronization correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The pre-release operation notifies waiting threads in advance, allowing them to start waking up before the lock is actually released. This maintains synchronization correctness while improving system performance by reducing idle wait time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables continuous useful action by overlapping the wake-up process with the lock-holding thread's remaining operations. Instead of waiting idle for lock release, threads continuously utilize processing time by beginning their wake-up and preparation operations early.

Inventive Principle:
Principle #20Continuity of useful action

3Loss of time

If early lock release notification is implemented, then wake-up latency is reduced, but lock synchronization complexity increases

Engineering Contradiction:
Improvewake-up latencyVSAvoidlock synchronization mechanism
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent segments the lock release process into two distinct operations: a pre-release operation that notifies waiting threads, and a subsequent actual release operation. This segmentation allows the wake-up notification to occur early without compromising the integrity of the final lock release, reducing latency while managing complexity through structured separation of concerns.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11055150B2Fast thread wake-up through early lock release
Publication Date: 2021.07.06 ADVANCED MICRO DEVICES INC
  • US11055150B2 patent drawing
  • US11055150B2 patent drawing
  • US11055150B2 patent drawing

AI summary

A thread holding a lock notifies a sleeping thread that is waiting on the lock that the lock holding thread is “about” to release the lock. In response to the notification, the waiting thread is woken up. While the waiting thread is woken up, the lock holding thread completes other operations prior to actually releasing the lock and then releases the lock. The notification to the waiting thread hides latency associated with waking up the waiting thread by allowing operations that wake up the waiting thread to occur while the lock holding thread is performing the other operations prior to releasing the thread.