Vector Friendly Instruction Format for Complex Multiply-Accumulate

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer processors require multiple instructions to perform multiplication and accumulation operations on packed data values, which can be inefficient for complex number operations involving real and imaginary components, as they lack a unified instruction format for vectorized operations.

Innovation Solution

The introduction of a vector friendly instruction format that supports unified operations for real and imaginary components, allowing for single instructions to perform complex multiply-accumulate operations on packed data values, enhancing efficiency through the use of VEX encoding and specific opcode formats.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple instructions are used to perform multiplication and accumulation operations on packed data values, then the operations can be completed with existing instruction sets, but the processing efficiency decreases and the number of instructions increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidnumber of instructions
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent combines multiple operations (multiplication and accumulation) into a single unified instruction format. The vector friendly instruction format allows one instruction to perform both multiply and accumulate operations on packed data values, eliminating the need for separate multiply instructions followed by addition instructions, thus reducing instruction count and improving processing efficiency

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The invention creates a universal instruction format that can handle multiple operations (multiply, add, accumulate) and data types (real and imaginary components) within a single instruction. This multi-functional instruction set architecture allows the processor to perform complex number operations more efficiently by reducing the number of instructions needed

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

2Productivity

If separate instructions are used for real and imaginary components, then existing instruction sets can be utilized, but the lack of unified instruction format reduces performance in digital signal processing

Engineering Contradiction:
Improveprocessing speedVSAvoidunified instruction format
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a universal vector friendly instruction format that can handle both real and imaginary components of complex numbers within the same instruction. This unified format allows the processor to treat real and imaginary parts consistently, improving adaptability for digital signal processing tasks while maintaining high processing speed through efficient instruction execution

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

3Productivity

If vectorized operations are implemented with unified instruction format, then processing efficiency improves, but the instruction set architecture becomes more complex

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidinstruction set architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the instruction set architecture into a base instruction format and optional vector friendly extensions. The vector friendly instruction format builds upon existing instructions by adding vectorization capabilities and unified operation support, allowing efficient processing without requiring a complete redesign of the entire instruction set architecture

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10795676B2Apparatus and method for multiplication and accumulation of complex and real packed data elements
Publication Date: 2020.10.06 INTEL CORP
  • US10795676B2 patent drawing
  • US10795676B2 patent drawing
  • US10795676B2 patent drawing

AI summary

An apparatus and method for multiplying packed real and imaginary components of complex numbers. 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 real and imaginary data elements; a second source register to store a second plurality of packed real and imaginary data elements; execution circuitry to execute the decoded instruction, the execution circuitry comprising: multiplier circuitry to select real and imaginary data elements in the first source register and second source register to multiply, the multiplier circuitry to multiply each selected imaginary data element in the first source register with a selected real data element in the second source register, and to multiply each selected real data element in the first source register with a selected imaginary data element in the second source register to generate a plurality of imaginary products, adder circuitry to add a first subset of the plurality of imaginary products to generate a first temporary result and to add a second subset of the plurality of imaginary products to generate a second temporary result; accumulation circuitry to combine the first temporary result with first data from a destination register to generate a first final result and to combine the second temporary result with second data from the destination register to generate a second final result and to store the first final result and second final result back in the destination register.