Enhanced Fused Multiply-Add Instruction for Scaling and Integer Conversion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing fused multiply-add instructions are inefficient in performing scaling operations and generating closest integer values, particularly in graphics processing, as they require multiple instructions and increase latency.
Innovation Solution
The enhanced fused multiply-add (EMAD) instruction, which takes five input values (k, A, B, C, and Op), uses a functional unit with a multiplexer, exponent unit, partial multiplier, shifter, adder, mask unit, normalizer, and rounder to perform scaling and closest integer operations efficiently, reducing the number of instructions needed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional fused multiply-add instruction is used for scaling and closest integer operations, then the basic multiply-add function is available, but multiple instructions are required and latency increases
Solution Approach 1:
The patent combines scaling operation (multiplication by power of 2) and closest integer operation with the fused multiply-add operation into a single instruction. The functional unit integrates these previously separate operations, allowing them to be executed in one instruction cycle rather than requiring multiple sequential instructions, thereby reducing latency and improving productivity.
Solution Approach 2:
The enhanced fused multiply-add instruction is designed to perform multiple functions: standard multiply-add, scaling operations, and closest integer operations. By making the instruction multi-functional, the patent eliminates the need for separate instructions for each operation, reducing the total instruction count and improving processing efficiency.
2Adaptability or versatility
If multiple instructions are used for scaling and closest integer operations, then operational flexibility is maintained, but the number of instructions increases
Solution Approach 1:
The patent implements a universal enhanced fused multiply-add instruction that can perform scaling and closest integer operations alongside the basic multiply-add function. This multi-functional instruction replaces multiple specialized instructions, maintaining operational flexibility while reducing the total number of instructions required.
Solution Approach 2:
The patent uses parameter changes in the control logic to determine which operation mode to execute. By changing control parameters based on input values (such as detecting when scaling or closest integer operations are needed), the system maintains operational flexibility without requiring multiple distinct instructions, thereby reducing instruction count.
Data Source
AI summary
An apparatus, method, and system for performing an enhanced fused multiply-add operation is disclosed. In one embodiment, an apparatus includes an exponent unit. The exponent unit includes a first adder to generate S1, where S1 is the sum of an integer k, the exponent of a floating point value A, and the exponent of a floating point value B. The exponent unit also includes a comparator to generate E1, where E1 is the greater of S1 and the exponent of a floating point value C. The apparatus also includes a partial multiplier, a shifter, and a second adder. The partial multiplier generates the partial products of the mantissas of A and B. The shifter aligns the partial products and the mantissa of C, based on E1. The second adder adds the aligned partial products and the mantissa of C. The apparatus is able to generate not only (A*B+C), but is enhanced to also be able to generate (2k*A*B+C) and the closest integer to (2k*A*B) in two's complement or floating point format.


