Complex Multiply-Accumulate Vector Instruction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processor architectures require multiple instructions to perform multiply-accumulate operations on complex values, which is inefficient and can be improved by implementing a single instruction that can efficiently handle these operations.

Innovation Solution

The introduction of a vector friendly instruction format that supports complex vector operations, allowing for a single instruction to perform complex-by-complex multiply and accumulate operations on packed data elements, including real and imaginary components, thereby reducing the number of instructions needed for these operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If existing SIMD microarchitectures are used to perform multiply-accumulate operations, then the operations can be executed using standard instructions, but multiple instructions are required which reduces processing efficiency

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidinstruction sequence complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent combines multiplication and accumulation operations into a single integrated instruction (VMACCS) that performs both operations atomically. This merging of operations eliminates the need for separate multiply and add instructions, directly resolving the technical contradiction by improving productivity through reduced instruction count while managing device complexity through unified instruction design

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The invention creates a universal multiply-accumulate instruction that handles complex number operations (real and imaginary components) within a single opcode. This multi-functional instruction can process packed complex data elements without requiring separate instruction sequences for different operation types, thereby improving processing efficiency while maintaining manageable instruction set complexity

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

2Productivity

If complex multiply-accumulate operations are performed using standard SIMD instructions, then compatibility with existing processors is maintained, but the number of instructions increases which impacts performance

Engineering Contradiction:
ImproveperformanceVSAvoidinstruction execution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary organization of complex data into packed formats that can be processed by the VMACCS instruction. By pre-arranging real and imaginary components in specific register layouts, the instruction can execute the complete multiply-accumulate operation in a single step without requiring multiple sequential instructions, thus improving performance and reducing execution time

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The instruction merges the multiplication of complex numbers with the accumulation step into one atomic operation. This combining eliminates the time penalty of sequential instruction execution, directly addressing the contradiction between maintaining compatibility and improving performance by reducing the total instruction execution time

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11294679B2Apparatus and method for multiplication and accumulation of complex values
Publication Date: 2022.04.05 INTEL CORP
  • US11294679B2 patent drawing
  • US11294679B2 patent drawing
  • US11294679B2 patent drawing

AI summary

An apparatus and method for multiplying packed signed words. For example, one embodiment of a processor comprises: a decoder to decode a first instruction to generate a decoded instruction; a first source register to store a first plurality of packed signed words; a second source register to store a second plurality of packed signed words; execution circuitry to execute the decoded instruction, the execution circuitry comprising: multiplier circuitry to multiply each of a plurality of packed signed words from the first source register with corresponding packed signed words from the second source register to generate a plurality of products responsive to the decoded instruction, adder circuitry to add the products to generate a first result, and accumulation circuitry to combine the first result with an accumulated result to generate a final result comprising a third plurality of packed signed words, and to write the third plurality of packed signed words or a maximum value to a destination register.