4-Operand SIMD Multiply-Accumulate Instruction Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional instruction processing systems require multiple instructions to perform multiply-accumulate operations efficiently, leading to substantial resource utilization and performance limitations due to the need for multiple carry chains and execution ports.

Innovation Solution

A new instruction set architecture (ISA) is introduced that enables a single instruction multiple data (SIMD) operation for 4-operand integer multiply-accumulate instructions, utilizing three 512-bit registers and one 8-bit register to perform four multiply-accumulate operations in a single instruction, thereby reducing the number of instructions required and optimizing resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional 3-operand multiply-accumulate instructions are used, then the operation can be performed with existing hardware, but multiple instructions and substantial resource utilization are required

Engineering Contradiction:
Improvemultiply-accumulate operation speedVSAvoidnumber of multipliers and execution ports
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the 512-bit operand into multiple 64-bit elements (eight elements per operand) and performs parallel multiply-accumulate operations on each element simultaneously using SIMD architecture. This segmentation enables the processing of multiple data elements in a single clock cycle, significantly improving productivity while maintaining manageable hardware complexity through parallelism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges multiple multiply-accumulate operations into a single SIMD instruction that processes eight 64-bit elements simultaneously. By combining these operations into one unified instruction executed in parallel, the patent reduces the total number of instructions required and optimizes the utilization of execution ports, thereby improving productivity without proportionally increasing device complexity.

Inventive Principle:
Principle #5Merging (Combining)

2Device complexity

If multiple instructions are used for multiply-accumulate operations, then resource utilization is reduced, but the number of instructions and execution time increase

Engineering Contradiction:
Improveresource utilizationVSAvoidnumber of instructions required
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent segments the computation into eight parallel 64-bit element operations within a single 512-bit SIMD instruction. This allows the processor to utilize execution ports efficiently by processing multiple data elements simultaneously, reducing resource idle time and minimizing the total number of instructions required, thereby reducing time loss while maintaining optimal resource utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The SIMD multiply-accumulate instruction enables continuous useful action by processing all eight 64-bit elements in parallel within a single instruction cycle. This eliminates the gaps and sequential dependencies inherent in conventional multi-instruction approaches, ensuring that execution ports and hardware resources remain continuously productive without idle cycles, thus reducing time loss while maintaining high resource utilization.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If 8 64*64 bit multipliers are used in data-path, then multiply-accumulate operations can be performed in parallel, but the cost and resource consumption increase

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidhardware cost
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent implements a universal SIMD multiply-accumulate instruction that can process multiple 64-bit elements simultaneously using shared hardware resources. The same execution units and data-path components are utilized for all eight parallel operations, making the hardware multi-functional. This approach achieves high parallel processing capability while avoiding the need for separate dedicated multipliers for each operation, thereby controlling hardware cost effectively.

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

Solution Approach 2:

The patent transitions from sequential scalar operations to parallel vector operations by introducing a new dimension of simultaneity. Instead of executing eight separate multiply-accumulate instructions sequentially, the SIMD architecture executes one instruction that operates on eight data elements in parallel across multiple data lanes. This dimensional shift from time-sequential to space-parallel execution achieves high productivity without proportionally increasing hardware quantity.

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

Data Source

PatentUS10042639B2Method and apparatus to process 4-operand SIMD integer multiply-accumulate instruction
Publication Date: 2018.08.07 TAHOE RES LTD
  • US10042639B2 patent drawing
  • US10042639B2 patent drawing
  • US10042639B2 patent drawing

AI summary

According to one embodiment, a processor includes an instruction decoder to receive an instruction to process a multiply-accumulate operation, the instruction having a first operand, a second operand, a third operand, and a fourth operand. The first operand is to specify a first storage location to store an accumulated value; the second operand is to specify a second storage location to store a first value and a second value; and the third operand is to specify a third storage location to store a third value. The processor further includes an execution unit coupled to the instruction decoder to perform the multiply-accumulate operation to multiply the first value with the second value to generate a multiply result and to accumulate the multiply result and at least a portion of a third value to an accumulated value based on the fourth operand.