Vector Data Permutation Logic in Processor Execution Units

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face challenges in efficiently executing complex instructions, such as floating-point operations and data moves, which require more resources and time, impacting overall throughput and performance, especially in applications like multimedia and internet processing.

Innovation Solution

The implementation of an instruction set architecture that includes packed instruction sets and execution units capable of handling SIMD (Single Instruction Multiple Data) operations, allowing for parallel processing of multiple data elements within a single register, thereby accelerating multimedia applications and reducing the need for sequential data transfers across the processor bus.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If complex instructions (floating-point operations, data moves) are executed using traditional sequential processing, then correctness is maintained, but processor throughput and performance deteriorate due to increased execution time and resource consumption

Engineering Contradiction:
Improveprocessor throughputVSAvoidinstruction execution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments vector data into multiple lanes (e.g., 4 lanes of 32-bit elements in a 128-bit register) and processes each lane independently through parallel execution units. This segmentation allows simultaneous processing of multiple data elements, dramatically improving throughput for floating-point operations and data moves without sacrificing correctness

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges multiple data elements into a single vector register for unified processing. By combining several scalar operations into one vector instruction, the system reduces the total number of instructions executed and improves throughput while maintaining the same computational correctness as sequential scalar processing

Inventive Principle:
Principle #5Merging (Combining)

2Speed

If data is transferred sequentially across the processor bus, then data integrity is maintained, but processing speed deteriorates due to bus contention and sequential access limitations

Engineering Contradiction:
Improvedata transfer speedVSAvoidoverall processing throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent transitions from sequential scalar data transfer to parallel vector data processing by utilizing the vertical dimension of vector registers. Multiple data elements are processed simultaneously within the register file, eliminating the need for repeated bus transactions and dramatically improving both transfer speed and overall throughput

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

3Productivity

If SIMD operations are implemented to process multiple data elements in parallel, then processing throughput is improved, but device complexity increases due to additional execution units and register requirements

Engineering Contradiction:
Improveparallel processing throughputVSAvoidexecution unit complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements universal execution units that can handle multiple operation types (floating-point arithmetic, data moves, integer operations) through a single unified architecture. This multi-functionality reduces the number of dedicated execution units needed while maintaining high parallel throughput, thereby managing device complexity more effectively

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

Data Source

PatentUS10467006B2Permutating vector data scattered in a temporary destination into elements of a destination register based on a permutation factor
Publication Date: 2019.11.05 INTEL CORP
  • US10467006B2 patent drawing
  • US10467006B2 patent drawing
  • US10467006B2 patent drawing

AI summary

A processor includes a front end to decode an instruction and an allocator to assign the instruction to an execution unit to execute the instruction to permute vector data into a destination register for storing elements. The execution unit includes logic to compute an element count, logic to compute an index size, logic to compute a byte count, a temporary destination, an index from an index vector, an offset, logic to determine a subset of the temporary destination, and logic to store the subset in one element in the destination register.