Multithreaded Processor Arbitration for Shared Functional Units

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multithreaded processors face challenges in efficiently sharing hardware resources among multiple threads, leading to resource conflicts and scheduling hazards, which can result in reduced processing throughput and increased pipeline stalls.

Innovation Solution

The implementation of arbitration functionality within the multithreaded processor to manage access to shared functional units such as load-store units and floating-point units, using algorithms like least-recently-picked and least-recently-used to prioritize thread groups and resolve scheduling hazards, ensuring that only one thread group uses a resource during a given cycle.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple thread groups share functional units concurrently, then processing throughput is improved, but resource conflicts and scheduling hazards increase

Engineering Contradiction:
Improveprocessing throughputVSAvoidresource conflict
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

An arbitration functionality is introduced as an intermediary component between thread groups and shared functional units. This mediator receives requests from multiple thread groups, evaluates them according to predefined policies (such as priority-based or round-robin), and grants access to functional units only to the selected thread group for each cycle, thereby preventing direct resource conflicts while maintaining concurrent processing capability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically adjusts which thread group accesses which functional unit on a per-cycle basis. The arbitration mechanism makes real-time decisions about resource allocation, allowing the system to adapt to varying workloads and thread priorities. This dynamic scheduling enables maximum throughput by optimizing resource distribution at each time step rather than using static allocation

Inventive Principle:
Principle #15Dynamics

2Reliability

If arbitration functionality is implemented to manage resource access, then resource conflicts are reduced, but device complexity increases

Engineering Contradiction:
Improveresource conflictVSAvoidarbitration functionality
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The arbitration functionality is segmented into discrete, manageable components that operate independently for each functional unit. Rather than implementing a monolithic arbitration system, the complexity is divided into separate arbitration logic blocks that can be implemented and optimized individually for each resource type (load-store units, floating-point units, etc.), making the overall system more manageable and easier to verify

Inventive Principle:
Principle #1Segmentation

3Reliability

If thread groups are prioritized using algorithms like least-recently-picked, then scheduling hazards are minimized, but processing latency may increase

Engineering Contradiction:
Improvescheduling hazardVSAvoidprocessing latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The arbitration system performs preliminary evaluation and selection of thread groups before functional unit access is granted. By pre-determining which thread group should access which resource based on priority algorithms (such as least-recently-picked or least-recently-used), the system avoids scheduling hazards and prevents potential conflicts before they occur, rather than reacting to conflicts as they arise. This proactive approach minimizes latency by eliminating wait cycles

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8095778B1Method and system for sharing functional units of a multithreaded processor
Publication Date: 2012.01.10 SUN MICROSYSTEMS INC
  • US8095778B1 patent drawing
  • US8095778B1 patent drawing
  • US8095778B1 patent drawing

AI summary

Sharing functional units within a multithreaded processor. In one embodiment, the multithreaded processor may include a multithreaded instruction source that may provide an instruction from each of a plurality of thread groups in a given cycle. A given thread group may include one or more instructions from one or more threads. The arbitration functionality may arbitrate between the plurality of thread groups for access to a functional unit such as a load store unit, for example, that may be shared between the thread groups.