Enhanced Fused Multiply-Add Instruction for Scaling and Integer Conversion

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveinstruction efficiencyVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

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

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

Engineering Contradiction:
Improveoperational flexibilityVSAvoidinstruction count
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

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

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7499962B2Enhanced fused multiply-add operation
Publication Date: 2009.03.03 INTEL CORP
  • US7499962B2 patent drawing
  • US7499962B2 patent drawing
  • US7499962B2 patent drawing

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.