Dual Signed Unsigned Packed Data Multiplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer processors lack an efficient method for performing dual signed and unsigned multiplication of packed data elements, requiring sequential instructions that are not optimized for performance.

Innovation Solution

The introduction of vector packed instructions, such as VPMULUDHHQ for unsigned multiplication and VPMULDHHQ for signed multiplication, allows for concurrent multiplication of packed data elements within a single instruction, enhancing processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If sequential multiply instructions are used for signed and unsigned multiplication, then instruction compatibility is maintained, but processing speed and computational throughput deteriorate

Engineering Contradiction:
Improveprocessing speedVSAvoidinstruction complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent combines signed and unsigned multiplication operations into a single unified instruction (VPMULDD). This instruction can perform both signed and unsigned dual multiplication concurrently, eliminating the need for separate instructions and thereby improving processing speed while reducing instruction overhead.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The VPMULDD instruction is designed to be universal, handling both signed and unsigned multiplication cases within a single operation. This multi-functional approach allows the processor to execute diverse multiplication tasks without requiring multiple specialized instructions, thus enhancing throughput and reducing computational latency.

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

2Productivity

If separate instructions are used for signed and unsigned multiplication, then operational precision is maintained, but instruction overhead increases

Engineering Contradiction:
Improvecomputational throughputVSAvoidinstruction overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

By merging signed and unsigned multiplication into the VPMULDD instruction, the patent reduces the number of instructions required in the execution pipeline. This consolidation decreases instruction overhead and improves computational throughput by eliminating redundant instruction fetch, decode, and execution cycles.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified VPMULDD instruction performs preliminary classification of operand types (signed or unsigned) and executes the appropriate multiplication mode in a single operation. This preliminary action eliminates the need for separate instruction sequences, thereby reducing time loss and improving overall productivity.

Inventive Principle:
Principle #10Preliminary action

3Power

If existing SIMD microarchitectures are used, then hardware resource utilization is efficient, but dual multiplication performance deteriorates

Engineering Contradiction:
Improveprocessing powerVSAvoidcomputational throughput
Core Design Contradiction:
PowerVSProductivity

Solution Approach 1:

The VPMULDD instruction segments the 128-bit source operands into multiple 32-bit elements, performing dual multiplication operations on each segment concurrently. This segmentation allows the processor to utilize existing SIMD hardware resources efficiently while achieving high-performance dual multiplication through parallel execution of multiple operations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11573799B2Apparatus and method for performing dual signed and unsigned multiplication of packed data elements
Publication Date: 2023.02.07 INTEL CORP
  • US11573799B2 patent drawing
  • US11573799B2 patent drawing
  • US11573799B2 patent drawing

AI summary

An apparatus and method for performing dual concurrent multiplications of packed data elements. 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 doubleword data elements; a second source register to store a second plurality of packed doubleword data elements; and execution circuitry to execute the decoded instruction, the execution circuitry comprising: multiplier circuitry to multiply a first doubleword data element from the first source register with a second doubleword data element from the second source register to generate a first quadword product and to concurrently multiply a third doubleword data element from the first source register with a fourth doubleword data element from the second source register to generate a second quadword product; and a destination register to store the first quadword product and the second quadword product as first and second packed quadword data elements.