Fused Compare-Add ALU Instructions for Lower Register Traffic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing neural network computations are inefficient due to the high cost of hardware resources and data storage required for processing repeated pairs of operations like comparison and addition, leading to reduced throughput and increased data storage.

Innovation Solution

Implementing a fused conditional ternary instruction that combines comparison and addition operations within a single instruction, reducing the need for external retrieval of intermediate results and minimizing the number of instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If separate comparison and addition operations are used, then operational flexibility is maintained, but instruction count and data storage requirements increase

Engineering Contradiction:
Improveoperational flexibilityVSAvoidinstruction count
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent combines comparison and addition operations into a single fused instruction that performs both operations atomically. The instruction format includes operands for comparison (a, b) and addition (c), with a condition code specifying the comparison type. This merging eliminates the need for separate comparison and addition instructions, reducing instruction count while maintaining full operational flexibility through multiple condition code options.

Inventive Principle:
Principle #5Merging (Combining)

2Quantity of substance

If intermediate results are retrieved from external memory, then data storage is simplified, but memory bandwidth and throughput are reduced

Engineering Contradiction:
Improvedata storageVSAvoidthroughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent implements a nested data flow where the output of the comparison operation is immediately nested as input to the addition operation within the same instruction cycle. The ALU internally routes the comparison result to the addition unit without external memory access, creating a nested operational structure that eliminates memory bandwidth bottlenecks while maintaining simplified storage requirements.

Inventive Principle:
Principle #7Nested doll (Nesting)

3Ease of operation

If multiple separate instructions are used for conditional ternary operations, then programming simplicity is maintained, but execution time and computational efficiency increase

Engineering Contradiction:
Improveprogramming simplicityVSAvoidexecution time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent performs the comparison operation as a preliminary action within the fused instruction, generating a condition code that immediately controls the subsequent addition operation. This preliminary comparison is executed in the same clock cycle as the addition, eliminating the time loss associated with separate instructions while maintaining programming simplicity through a unified instruction format.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12554497B2Fused comparison add instructions
Publication Date: 2026.02.17 ADVANCED MICRO DEVICES INC
  • US12554497B2 patent drawing
  • US12554497B2 patent drawing
  • US12554497B2 patent drawing

AI summary

An apparatus, system, and method for efficiently processing pairs of operations repeatedly used in applications. In various implementations, a computing system includes a parallel data processing circuit with multiple compute circuits. Each of the compute circuits includes multiple lanes of execution, each with a corresponding arithmetic logic unit (ALU). The ALU supports executing a single fused conditional ternary instruction that replaces two separate instructions that provide two operations (comparison and add). When executing the fused conditional ternary instruction, the ALU does not retrieve the intermediate result from the scalar register file, the vector register file, or bypass circuitry located externally from the ALU. Rather, the ALU generates the intermediate result and uses the intermediate result without routing the intermediate result externally from ALU.