Multi-threaded Processor Register Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-threaded processors face increased hardware costs and complexity due to the need for additional resources to store multiple contexts, which is not efficiently addressed by existing technologies.

Innovation Solution

A multi-threaded processor design where only the program counter is duplicated, and the register file is partitioned into shared loop invariant and thread-specific loop variant registers, reducing hardware complexity and costs by eliminating the need for separate registers for loop invariant values across threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple complete register files are provided for each thread to enable efficient context switching, then thread switching efficiency is improved, but hardware cost and area increase

Engineering Contradiction:
Improvecontext switching efficiencyVSAvoidregister file area
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent merges the register files of multiple threads into a single shared register file structure. Instead of providing separate complete register files for each thread, the invention combines them into one unified register file that is shared across all threads, significantly reducing the total area required while maintaining context switching capability through selective allocation.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The register file is segmented into different regions: loop invariant registers that are shared across all threads and loop variant registers that are allocated to specific threads. This segmentation allows efficient utilization of the shared resource while maintaining thread-specific data integrity when needed.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If complete register files are duplicated for each thread, then context storage capability is improved, but device complexity increases

Engineering Contradiction:
Improvecontext storage capabilityVSAvoidregister file structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent combines multiple thread contexts into a single register file structure, reducing device complexity by eliminating the need for multiple separate register file units. The unified structure simplifies the overall architecture while maintaining the ability to store and switch between multiple thread contexts through software-managed allocation.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared register file is designed to serve multiple threads simultaneously, acting as a universal resource. The same physical register file infrastructure is used by all threads, with allocation and management handled through control logic that determines which thread accesses which registers at any given time.

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

3Reliability

If separate registers are allocated for loop invariant values in each thread, then thread independence is improved, but register utilization efficiency decreases

Engineering Contradiction:
Improvethread independenceVSAvoidregister utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges the loop invariant registers of multiple threads into a single shared set of registers. Since loop invariant values do not change during loop execution and can be reconstructed from memory, multiple threads can share the same physical registers for these values, dramatically improving register utilization efficiency while maintaining functional correctness.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

Instead of maintaining separate copies of loop invariant registers for each thread, the invention uses a single copy that is shared across threads. The loop invariant values are copied from memory when needed rather than being maintained as separate thread-specific copies, reducing redundancy and improving resource utilization.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8539211B2Allocating registers for loop variables in a multi-threaded processor
Publication Date: 2013.09.17 NYTELL SOFTWARE LLC
  • US8539211B2 patent drawing
  • US8539211B2 patent drawing

AI summary

A multi-threaded processor comprises a processing unit (PU) for concurrently processing multiple threads. A register file means (RF) is provided having a plurality of registers, wherein a first register (LI) is used for storing loop invariant values and N second registers (LVI-LVN) are each used for storing loop variant values. Furthermore N program counters (PCI-PCN) are provided each being associated to one of the multiple threads, wherein N being the number of threads being processed.