Shared ALU Arbitration for GPU Power and Area Reduction

Solution Overview

Problem

Graphics processing units (GPUs) face high power consumption issues, particularly in mobile applications, due to varying execution rates of different arithmetic logic units (ALUs) and inefficient sharing of ALUs, which leads to increased energy usage and potential performance bottlenecks.

Innovation Solution

Implementing a system with dedicated and shared ALUs, where arbitration circuitry manages operation sequencing to stagger thread execution, allowing shared ALUs to operate at different rates and reducing power consumption by optimizing ALU usage and layout, thereby improving performance and reducing chip area.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple dedicated ALUs are provided for different threads, then each thread can execute at its required rate, but chip area and power consumption increase

Engineering Contradiction:
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

Multiple ALUs are merged into a shared resource that serves multiple threads. The ALU sharing mechanism allows different threads to access the same ALU at different rates based on their execution needs, thereby reducing the total number of ALUs required and decreasing chip area while maintaining productivity.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared ALU is designed to be universal, capable of serving multiple threads with different execution rate requirements. By making the ALU multi-functional and accessible to various threads through an arbitration mechanism, the system reduces hardware duplication and optimizes chip area utilization.

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

2Productivity

If multiple dedicated ALUs are provided for different threads, then each thread can execute at its required rate, but power consumption increases

Engineering Contradiction:
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

Multiple ALUs are merged into a shared resource that serves multiple threads. The ALU sharing mechanism allows different threads to access the same ALU at different rates based on their execution needs, thereby reducing the total number of ALUs required and decreasing chip area while maintaining productivity.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared ALU is designed to be universal, capable of serving multiple threads with different execution rate requirements. By making the ALU multi-functional and accessible to various threads through an arbitration mechanism, the system reduces hardware duplication and optimizes chip area utilization.

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

3Use of energy by stationary object

If ALUs are shared between threads, then chip area and power consumption are reduced, but execution rate may be limited by ALU availability

Engineering Contradiction:
Core Design Contradiction:
Use of energy by stationary objectVSProductivity

Solution Approach 1:

The system dynamically adjusts the execution rate of shared ALUs based on thread priorities and availability. The arbitration circuitry dynamically selects which thread accesses the ALU and at what rate, allowing the system to optimize between power consumption and execution rate in real-time based on workload conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The arbitration mechanism implements periodic scheduling of thread access to shared ALUs. By alternating between threads in a structured manner, the system ensures that each thread receives adequate ALU access over time while maintaining overall power efficiency and preventing any single thread from monopolizing the resource.

Inventive Principle:
Principle #19Periodic action

4Productivity

If ALUs operate at different rates, then specific operations can be optimized, but resource management complexity increases

Engineering Contradiction:
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically adjusts the execution rate of shared ALUs based on thread priorities and availability. The arbitration circuitry dynamically selects which thread accesses the ALU and at what rate, allowing the system to optimize between power consumption and execution rate in real-time based on workload conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The arbitration mechanism implements periodic scheduling of thread access to shared ALUs. By alternating between threads in a structured manner, the system ensures that each thread receives adequate ALU access over time while maintaining overall power efficiency and preventing any single thread from monopolizing the resource.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS10699366B1Techniques for ALU sharing between threads
Publication Date: 2020.06.30
  • US10699366B1 patent drawing
  • US10699366B1 patent drawing
  • US10699366B1 patent drawing

AI summary

Techniques are disclosed relating to sharing an arithmetic logic unit (ALU) between multiple threads. In some embodiments, the threads also have dedicated ALUs for other types of operations. In some embodiments, arbitration circuitry is configured to receive operations to be performed by the shared arithmetic logic unit from the set of threads and issue the received operations to the shared arithmetic logic unit. In some embodiments, the arbitration circuitry is configured to switch to a different one of the set of threads for each instruction issued to the shared arithmetic logic unit. In some embodiments, the shared ALU is configured to perform 32-bit operations and the dedicated ALUs are configured to perform the same operations using 16-bit precision. In some embodiments, the shared ALU is shared between two threads and is physically located adjacent to other datapath circuitry for the two threads.