Conditional Yield Instruction for Thread Priority Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor performance is limited by inefficient multi-threading and context switching, as data and control dependencies between instructions prevent simultaneous execution across functional blocks, necessitating more efficient methods for switching between threads or contexts.

Innovation Solution

The introduction of a conditional yield instruction that allows for dynamic resource allocation based on priority criteria, enabling the processor to determine whether to yield resources to another thread based on predefined priority conditions, thereby optimizing thread switching and resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multi-threading and context switching are used to increase processor performance, then processing throughput is improved, but thread switching efficiency deteriorates due to data and control dependencies between instructions

Engineering Contradiction:
Improveprocessing throughputVSAvoidthread switching efficiency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The processor performs preliminary actions by checking for ready threads and evaluating yield conditions before actually switching threads. The conditional yield instruction allows the current thread to proactively check if another thread is ready and if yielding would be beneficial, preparing the thread switch in advance rather than forcing it when dependencies block execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The thread switching mechanism is made dynamic through the conditional yield instruction, which allows threads to dynamically decide whether to yield based on real-time conditions such as readiness of other threads and priority criteria. This dynamic decision-making process optimizes thread switching efficiency by avoiding unnecessary switches while maintaining high productivity.

Inventive Principle:
Principle #15Dynamics

2Productivity

If instructions from different threads are issued concurrently to functional blocks, then processing efficiency is improved, but resource allocation complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The conditional yield instruction implements a feedback mechanism where the processor continuously monitors thread readiness and priority states, and uses this feedback to make intelligent resource allocation decisions. The thread can yield based on feedback about other ready threads and priority criteria, simplifying the resource allocation complexity while maintaining high processing efficiency.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7584344B2Instruction for conditionally yielding to a ready thread based on priority criteria
Publication Date: 2009.09.01 MOSAID TECH
  • US7584344B2 patent drawing
  • US7584344B2 patent drawing
  • US7584344B2 patent drawing

AI summary

An integrated circuit (10) has a conditional yield instruction (305) which may be used to conditionally yield execution of a currently active thread based on priority and status of other threads. In one embodiment, an I bit 304 may be used to designate whether the priority selection bits (50) are stored in the instruction itself. If the priority selection bits (50) are not stored in the instruction itself, a portion of the instruction (302) may be used to store a location indicator which indicates where the priority selection bits (50) are located (e.g. register file 22).