Vector Packed Dual Complex Multiply Accumulate Instruction

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.

Innovation Solution

The implementation of a vector-friendly instruction format that allows for a single instruction to perform vector packed dual complex multiply and accumulate operations, using a VEX prefix to enable operations on 128-bit packed data registers, facilitating efficient processing of real and imaginary components within a single execution step.

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 single instruction multiple data (SIMD) microarchitectures, but the processing efficiency is reduced and the number of required instructions increases

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

Solution Approach 1:

The patent combines multiplication and accumulation operations that were previously performed by separate instructions into a single vector packed dual complex multiply and accumulate instruction. This merging of operations allows the processor to execute both multiplication of complex numbers and accumulation of results in one instruction cycle, thereby improving processing efficiency and reducing the total number of instructions required for digital signal processing tasks

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The invention creates a universal instruction that handles both real and imaginary components of complex numbers simultaneously within a single operation. The vector packed dual complex multiply and accumulate instruction operates on packed data registers containing multiple complex values, performing multiplication and accumulation for both real and imaginary parts in parallel, thus providing multi-functionality that eliminates the need for separate instructions for different components

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

2Productivity

If separate operations are performed on real and imaginary components of complex numbers, then existing SIMD microarchitectures can handle the operations, but the computational throughput is reduced

Engineering Contradiction:
Improvecomputational throughputVSAvoidnumber of execution steps
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent enables continuous useful action by performing multiplication and accumulation operations on real and imaginary components simultaneously within a single instruction execution. Instead of sequentially processing real components then imaginary components (which would create idle time), the dual complex multiply and accumulate instruction maintains continuous computational activity by operating on both components in parallel, thereby maximizing computational throughput and minimizing execution time

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The invention transitions from processing real and imaginary components in separate sequential steps to processing them simultaneously in a parallel dimensional approach. By organizing data in packed registers that contain multiple complex values and using a single instruction to operate on all components across different dimensions (real and imaginary parts of multiple complex numbers), the processor achieves higher computational throughput by exploiting parallelism rather than sequential execution

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10552154B2Apparatus and method for multiplication and accumulation of complex and real packed data elements
Publication Date: 2020.02.04 INTEL CORP
  • US10552154B2 patent drawing
  • US10552154B2 patent drawing
  • US10552154B2 patent drawing

AI summary

An apparatus and method for multiplying packed real and imaginary components of complex numbers. A method comprises: multiplying selected imaginary and real data elements in a first and second source registers to generate a plurality of imaginary products; adding a first subset of the plurality of imaginary products to generate a first temporary result and adding a second subset of the plurality of imaginary products to generate a second temporary result; negating the first temporary result to generate a third temporary result and the second temporary result to generate a fourth temporary result; accumulating the third temporary result with first data to generate a first final result and accumulating the fourth temporary result with second data to generate a second final result; and storing the first final result and second final.