Thread Synchronization via Dynamic Spin-Lock and Sleep Transitions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-threaded applications face inefficiencies due to the overhead of waking up sleeping threads, which can lead to processor underutilization when threads spin waiting for work, as the processor is consumed in repeated checks rather than handling meaningful tasks.

Innovation Solution

A thread synchronization model that transitions a slave thread from a sleep state to a spin-lock state upon waking by a main thread, with the main thread determining whether to keep the slave thread in a spin-lock or sleep state based on the elapsed time until the next work unit is available, optimizing processor usage by minimizing idle spinning.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If a thread transitions to sleep state when no work is available, then processor resources are conserved, but thread wake-up overhead increases when work becomes available

Engineering Contradiction:
Improveprocessor resource consumptionVSAvoidthread wake-up time
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The patent dynamically adjusts thread state transitions based on work availability timing. The system monitors whether work will be available within a threshold time period and adjusts the thread state accordingly: transitioning to spin-lock state when work is imminent (within threshold) and to sleep state when work is not imminent (beyond threshold), optimizing the balance between resource conservation and wake-up overhead

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the thread state parameter based on the elapsed time parameter. By monitoring the elapsed time until next work availability and comparing it against a threshold, the system changes the thread's operational state (spin-lock vs sleep) to optimize performance based on temporal characteristics of work arrival

Inventive Principle:
Principle #35Parameter changes

2Speed

If a thread enters spin state to wait for work, then thread can respond quickly when work is available, but processor capacity is reduced for meaningful tasks

Engineering Contradiction:
Improvethread response speedVSAvoidprocessor task handling capacity
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The system dynamically selects between spin-lock and sleep states based on predicted work arrival timing. When work is expected within the threshold time period, the thread enters spin-lock state for quick response. When work is not expected soon, the thread transitions to sleep state to free processor capacity, thus adaptively balancing response speed and productivity

Inventive Principle:
Principle #15Dynamics

3Productivity

If a thread remains in active state continuously, then no wake-up overhead occurs, but processor efficiency decreases due to idle spinning

Engineering Contradiction:
Improveprocessor utilization efficiencyVSAvoidthread idle time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent changes the thread state parameter based on the elapsed time parameter. By monitoring whether the elapsed time until next work exceeds a threshold, the system changes the thread's state from active/spin to sleep, eliminating wasted idle time while maintaining productivity through appropriate state selection

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9003413B1Thread synchronization by transitioning threads to spin lock and sleep state
Publication Date: 2015.04.07 XILINX INC
  • US9003413B1 patent drawing
  • US9003413B1 patent drawing
  • US9003413B1 patent drawing

AI summary

A method, apparatus, and computer readable medium for synchronizing a main thread and a slave thread executing on a processor system are disclosed. For example, the method includes the following elements: transitioning the slave thread from a sleep state to a spin-lock state in response to a wake-up message from the main thread; transitioning the slave thread out of the spin-lock state to process a first work unit from the main thread; determining, at the main thread, an elapsed time period until receipt of a second work unit for the slave thread; transitioning the slave thread to the spin-lock state if the elapsed time period satisfies a threshold time period; and transitioning the slave thread to the sleep state if the elapsed time period does not satisfy the threshold time period.