Thread Transition Management Using Two-Level Register Sets

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Advanced processors face challenges in efficiently managing thread transitions, particularly when the number of threads exceeds the available data register capacity, leading to inefficiencies in operation and resource utilization.

Innovation Solution

The implementation of two data register sets with portions of main memory or cache memory serving as second-level registers allows for seamless data movement between these registers, enabling efficient thread execution without stopping current operations, allowing for mirrored or split data management, and supporting a larger number of threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the number of threads exceeds the available data register capacity, then more threads can be supported, but operation efficiency deteriorates due to frequent data movement and stopping operations

Engineering Contradiction:
Improvenumber of supported threadsVSAvoidoperation efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the register storage into two distinct levels: first-level registers (fast, limited capacity) and second-level registers (slower, larger capacity using main memory or cache). This segmentation allows the system to support more threads by storing thread data in the second-level registers when first-level registers are full, while maintaining high operation efficiency by keeping actively used thread data in the first-level registers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of memory hierarchy by adding second-level registers beyond the traditional first-level registers. This dimensional expansion creates a two-tiered register system where thread data can be distributed across both levels, effectively increasing the total register capacity available for thread management without compromising the speed of frequently accessed data.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If data is moved between first-level and second-level registers, then thread execution can continue without stopping, but data movement overhead increases

Engineering Contradiction:
Improvethread execution continuityVSAvoiddata movement overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-loading thread data into the first-level registers before it is needed for execution. The thread data structure includes a data portion and a status portion that tracks whether data is present in the first-level registers. This allows the processor to quickly determine if data is already available or needs to be fetched from second-level registers, reducing the overhead of data movement by performing it in advance rather than waiting for execution needs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables self-service through automatic data management mechanisms where the processor autonomously manages data between first-level and second-level registers based on thread execution needs. The status portion of the thread data structure and the register allocation logic work together to automatically determine when data should be moved, eliminating the need for manual intervention or complex control logic, thereby reducing overhead while maintaining execution continuity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11256507B2Thread transition management
Publication Date: 2022.02.22 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11256507B2 patent drawing
  • US11256507B2 patent drawing
  • US11256507B2 patent drawing

AI summary

A system and process for managing thread execution includes providing two data register sets coupled to a processor and using, by the processor, the two register sets as first-level registers for thread execution. A portion of main memory or cache memory is assigned as second-level registers where the second-level registers serve as registers of at least one of the two data register sets for executing the threads. Data for the threads may be moved between the first-level registers and second-level registers for different modes of thread processing.