Thread Yield Mapping for Underutilized Processor Functional Units
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing hardware processors face underutilization of functional units due to the unavailability of threads with instructions that can be performed in parallel, leading to inefficiency and increased latency.
Innovation Solution
A compiler modifies the binary file to insert yield functions and increase thread counts, allowing underutilized functional units to execute additional threads, thereby optimizing processor utilization without altering the source code.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If threads are executed sequentially without yielding, then thread execution simplicity is maintained, but functional units become underutilized and processor efficiency decreases
Solution Approach 1:
The system automatically detects underutilized functional units and inserts yield instructions into the binary file without requiring source code modification. The compiler self-adjusts thread scheduling to optimize functional unit utilization, allowing the system to serve itself by identifying and resolving the underutilization problem autonomously.
Solution Approach 2:
The invention changes the execution parameters of threads by inserting yield instructions at specific points in the binary file. This modifies the thread scheduling behavior, allowing threads to voluntarily yield execution when functional units are underutilized, thereby enabling better resource allocation and improved processor efficiency.
2Productivity
If yield instructions are inserted to increase thread switching, then functional unit utilization improves, but execution latency increases
Solution Approach 1:
The system inserts yield instructions selectively rather than uniformly throughout all threads. Yield instructions are inserted only at specific locations where functional unit underutilization is detected, applying partial action rather than excessive switching. This optimizes functional unit utilization while minimizing unnecessary thread switches and associated latency.
Solution Approach 2:
The compiler analyzes the binary file to identify patterns of functional unit underutilization and uses this feedback to strategically insert yield instructions. The feedback mechanism allows the system to understand where yielding will be most beneficial for functional unit utilization while avoiding unnecessary yields that would increase latency, achieving an optimized balance between the two competing objectives.
Data Source
AI summary
Mapping instructions included in threads to functional units of processors is disclosed. A first functional unit of a first processor may be identified that is underutilized for a first instruction included in a first thread of threads generated from a loop within source code. The first thread may be yielded to a second thread of the threads generated from the loop. A second instruction included in the second thread may be mapped to the first functional unit of the first processor.


