Start Virtual Execution Instruction for Multithreaded Dispatch

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multithreading environments, the overhead of coordinating resources between threads can become substantial, outweighing the benefits of increased capacity, especially as the number of threads increases, leading to inefficient management and resource strain.

Innovation Solution

A start-virtual-execution (start-VE) instruction is implemented to dispatch multiple threads on a single physical core, allowing the hypervisor to manage threads as a single logical core and the machine to manage resources on a more granular thread basis, reducing overhead by using a thread-validity mask and state description groups to efficiently manage multithreaded logical cores.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple threads are coordinated on separate cores, then processing capacity is improved, but management overhead increases substantially

Engineering Contradiction:
Improveprocessing capacityVSAvoidmanagement overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple thread management operations into a single logical core context. The host program issues a single start-VE instruction that dispatches multiple guest threads onto a single physical core, consolidating what would otherwise require multiple separate core management operations. This merging reduces the coordination overhead while maintaining the processing capacity of multiple threads.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The physical core is designed to perform multiple functions: it can operate in single-thread mode or multithreaded mode, and the start-VE instruction can dispatch either a single guest thread or multiple guest threads depending on the guest state. This multi-functionality allows the same hardware resource to handle diverse thread dispatching scenarios without requiring separate management paths.

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

2Use of energy by moving object

If a single core runs multiple threads, then hardware utilization is improved, but coordination overhead between threads increases

Engineering Contradiction:
Improvehardware utilizationVSAvoidcoordination overhead
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The guest threads are designed to be self-sufficient in managing their own execution context and resource requirements. Each thread maintains its own state description, and the hardware automatically switches between threads based on the start-VE instruction and thread validity masks, reducing the need for complex software-based coordination between threads sharing the same core.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system dynamically adapts its thread dispatching behavior based on the guest state. The start-VE instruction examines the guest state to determine whether to dispatch one or multiple threads, and the thread validity mask dynamically indicates which threads are ready to execute. This dynamic behavior optimizes hardware utilization while minimizing coordination overhead by only activating threads that are ready to run independently.

Inventive Principle:
Principle #15Dynamics

3Productivity

If threads share core resources, then resource efficiency is improved, but interference between threads increases

Engineering Contradiction:
Improveresource efficiencyVSAvoidthread interference
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the thread execution model into distinct state descriptions, each representing an independent thread context. The thread validity mask segments the activation state, allowing the system to precisely control which segmented thread contexts are active. This segmentation isolates thread interference by maintaining clear boundaries between thread states while allowing efficient sharing of physical core resources.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9223574B2Start virtual execution instruction for dispatching multiple threads in a computer
Publication Date: 2015.12.29 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9223574B2 patent drawing
  • US9223574B2 patent drawing
  • US9223574B2 patent drawing

AI summary

Embodiments relate to multithreading in a computer. An aspect is a computer including a configuration having a core which includes physical threads and is operable in single thread (ST) and multithreading (MT) modes. The computer also includes a host program configured to execute in the ST mode on the core to issue a start-virtual-execution (start-VE) instruction to dispatch a guest entity which includes a guest virtual machine (VM). The start-VE instruction is executed by the core and includes obtaining a state description, having a guest state, from a location specified by the start-VE instruction. The execution includes determining, based on the guest state, whether the guest entity includes a single guest thread or multiple guest threads, and starting the guest threads in the MT mode or ST mode based on the guest state and a determination of whether the guest entity includes a single guest thread or multiple guest threads.