Fused Multiply-Adder for Complex Number Operations
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computer processors face inefficiencies in performing complex multiply and accumulate operations, particularly in handling packed real and imaginary data elements, as they often require multiple instructions and complex logic to achieve accurate results.
Innovation Solution
The implementation of a specific instruction set architecture (ISA) that includes instructions like VCFMADDPH and VCFCMADDPH, which allow for a single instruction to perform complex multiply and accumulate operations on packed data, utilizing a fused multiply-adder to calculate both real and imaginary components efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If traditional processor architecture is used to perform complex multiply and accumulate operations, then multiple instructions and complex logic are required, but this results in reduced processing speed and increased instruction complexity
Solution Approach 1:
The patent combines multiple operations (complex multiplication and accumulation) into a single fused instruction that can be executed in one cycle. The fused multiply-adder circuit integrates the multiplication and addition functions into a unified hardware structure, allowing both operations to be performed simultaneously rather than sequentially, thereby improving processing speed while reducing the number of instructions required.
Solution Approach 2:
The fused multiply-adder circuit is designed to handle multiple data formats (half-precision, single-precision, and double-precision floating-point) and different operation types (complex multiplication, complex accumulation, and combined operations) through a single unified hardware structure. This multi-functional design eliminates the need for separate dedicated circuits for each operation type, reducing overall device complexity while maintaining high processing speed.
2Productivity
If multiple instructions are used to perform complex number operations on packed data, then processing accuracy can be maintained, but the number of instructions increases and processing efficiency decreases
Solution Approach 1:
The processor performs preliminary preparation of packed complex data by organizing real and imaginary components into specific register formats before execution. The fused multiply-adder circuit is pre-configured with the necessary data pathways and control logic to handle multiple data elements in parallel, allowing the single instruction to process multiple complex numbers simultaneously without requiring intermediate instructions for data reorganization.
Solution Approach 2:
The fused instruction maintains continuous processing by eliminating idle cycles between multiplication and accumulation operations. The hardware circuitry is designed to pipeline the operations such that while one multiplication is being completed, the next accumulation can begin, ensuring that the processing unit remains continuously productive without interruption or waiting periods that would occur with sequential instruction execution.
Data Source
AI summary
An embodiment of the invention is a processor including execution circuitry to calculate, in response to a decoded instruction, a result of a complex multiply-accumulate of a first complex number, a second complex number, and a third complex number. The calculation includes a first operation to calculate a first term of a real component of the result and a first term of the imaginary component of the result. The calculation also includes a second operation to calculate a second term of the real component of the result and a second term of the imaginary component of the result. The processor also includes a decoder to decode an instruction to generate the decoded instruction and a first source register, a second source register, and a source and destination register to provide the first complex number, the second complex number, and the third complex number, respectively.


