Thread Context Restoration in Multithreading Cores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multithreading computer systems, the variability in thread density and resource utilization leads to inconsistent transaction response times and billing, as the operating system is unaware of whether it has exclusive control of a core or is sharing resources with other threads, resulting in unpredictable throughput capacity.

Innovation Solution

A computer-implemented method that configures a core to switch between single thread and multithreading modes, disabling secondary threads in single thread mode and using a set multithreading instruction to resume and access their context, allowing for explicit management of thread densities and resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If transparent multithreading operation is implemented without OS modification, then ease of operation is improved, but transaction response time variability increases

Engineering Contradiction:
Improveease of operationVSAvoidtransaction response time variability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent introduces an intermediary layer (the patentee application program) between the OS and the multithreading hardware that explicitly manages thread density and communicates with the OS about actual thread utilization, thereby reducing response time variability while maintaining ease of operation

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements feedback mechanisms where the patentee application program monitors actual thread density and communicates this information to the OS, allowing the OS to make informed capacity provisioning decisions and reducing variability in transaction response times

Inventive Principle:
Principle #23Feedback

2Productivity

If high thread density is maintained to maximize MT capacity, then productivity is improved, but device complexity increases

Engineering Contradiction:
ImproveMT compute capacityVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the management of multithreading into two parts: the patentee application program explicitly manages thread density and context, while the OS handles capacity provisioning based on feedback, thereby achieving high productivity without excessive device complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patentee application program performs self-service by automatically managing its own thread density and context, reducing the need for complex OS-level multithreading management mechanisms

Inventive Principle:
Principle #25Self-service

3Ease of operation

If the OS is made unaware of exclusive core control versus shared thread execution, then ease of operation is improved, but measurement precision deteriorates

Engineering Contradiction:
Improveease of operationVSAvoidcapacity provisioning accuracy
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The patent introduces an intermediary (the patentee application program) that provides precise information to the OS about actual thread density and resource utilization, allowing the OS to make accurate capacity provisioning decisions without requiring direct awareness of thread execution details

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9454372B2Thread context restoration in a multithreading computer system
Publication Date: 2016.09.27 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9454372B2 patent drawing
  • US9454372B2 patent drawing
  • US9454372B2 patent drawing

AI summary

Embodiments relate to thread context restoration. One aspect is a multithreading computer system including a configuration with a core configurable between a single thread (ST) mode and a multithreading (MT) mode. The ST mode addresses a primary thread and the MT mode addresses the primary thread and one or more secondary threads on shared resources of the core. A multithreading facility is configured to control utilization of the configuration to perform a method including disabling one or more secondary threads based on switching from MT mode to ST mode. A thread context of secondary threads is made unavailable to programs. Based on a last-set program-specified maximum thread-id indicating MT, the thread context is obtained by a) executing a set MT instruction to resume the MT mode, and b) based on being in the resumed MT mode, accessing the thread context.