Non-blocking Wait Commands for Multi-core Processor Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-core processors face inefficiencies due to blocking wait commands that pause processing, leading to idle processor cycles and underutilization, particularly in tasks with dependencies where not all cores are utilized effectively.

Innovation Solution

Introducing non-blocking wait commands that allow further processing in a multi-core processor command stream, enabling the control unit to process subsequent commands even if wait conditions have not been met, thereby utilizing idle processor cycles for setup and go commands.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If blocking wait commands are used to synchronize multi-core processor operations, then processing correctness is ensured, but processor idle time increases and productivity decreases

Engineering Contradiction:
Improveprocessing correctnessVSAvoidprocessor utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies dynamics by making the wait command behavior adaptable based on the blocking state parameter. When a wait command is encountered, the system dynamically checks the blocking state to determine whether to pause processing or continue. This allows the processor to switch between conservative blocking behavior (when synchronization is critical) and aggressive non-blocking behavior (when independence can be assumed), optimizing both correctness and productivity based on runtime conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of wait command behavior from fixed to variable by introducing a blocking state parameter. Each wait command is associated with a blocking state that can be set to true or false, fundamentally altering how the command executes. This parameter change enables fine-grained control over synchronization behavior, allowing individual wait commands to be optimized independently rather than forcing a uniform approach across all synchronization points.

Inventive Principle:
Principle #35Parameter changes

2Manufacturing precision

If blocking wait commands pause processing until conditions are met, then synchronization accuracy is improved, but processing speed deteriorates

Engineering Contradiction:
Improvesynchronization accuracyVSAvoidprocessing speed
Core Design Contradiction:
Manufacturing precisionVSSpeed

Solution Approach 1:

The system dynamically adjusts synchronization strictness by evaluating the blocking state parameter at each wait command. This allows the processor to maintain high synchronization accuracy where needed (when blocking state is true) while maintaining high processing speed where dependencies allow (when blocking state is false). The dynamic nature enables adaptive optimization rather than static compromise.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies local quality by allowing different wait commands to have different blocking states based on their specific synchronization requirements. Instead of applying a uniform synchronization approach globally, each wait command can be independently configured with the appropriate blocking state, enabling fine-grained optimization where only critical synchronization points use blocking behavior while non-critical points use non-blocking behavior.

Inventive Principle:
Principle #3Local quality

3Productivity

If non-blocking wait commands allow continuous processing, then productivity is improved, but risk of processing errors increases

Engineering Contradiction:
Improveprocessor utilizationVSAvoidsynchronization correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements feedback by continuously monitoring the blocking state parameter associated with each wait command. This feedback mechanism ensures that non-blocking processing only occurs when the blocking state indicates it is safe to do so. The feedback loop maintains synchronization correctness by using the blocking state as a decision criterion, allowing the processor to confidently continue processing when conditions permit while maintaining reliability.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The blocking state parameter acts as an intermediary between the wait command and the processing logic. This intermediary carries information about the desired synchronization behavior, mediating between the conflicting requirements of continuous processing and correct synchronization. The blocking state serves as a control signal that reconciles the tension between productivity and reliability by encoding the appropriate behavior mode.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11892972B2Synchronization mechanisms for a multi-core processor using wait commands having either a blocking or a non-blocking state
Publication Date: 2024.02.06 ARM LTD
  • US11892972B2 patent drawing
  • US11892972B2 patent drawing
  • US11892972B2 patent drawing

AI summary

Systems, apparatuses and methods suitable for optimizing synchronization mechanisms for multi-core processors are provided. The synchronizing mechanisms may be optimized by receiving a command stream which comprises a plurality of commands including one or more wait commands, wherein each wait command has an associated state and one or more associated conditions; sequentially processing each command in the command stream until a wait command is reached; checking the state associated with the wait command to be processed, wherein if said state is a blocking state, further processing of commands in the command stream is paused until each of said wait command's associated conditions are met, and wherein if said state is a non-blocking state, the next command in the command stream is retrieved and processed.