Processor Blend and Permute Logic for Strided Data

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 execution time and resources, leading to reduced throughput and performance, especially in applications like multimedia and internet-based systems.

Innovation Solution

The implementation of a processor architecture that includes execution units capable of handling packed data instructions, allowing for simultaneous operations on multiple data elements within a single register, utilizing blend and permute operations to optimize data conversion and manipulation, thereby enhancing pipeline throughput and performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If complex instructions (floating-point operations, data moves) are executed on modern processors, then functional capability is improved, but execution time increases and throughput decreases

Engineering Contradiction:
Improvefunctional capabilityVSAvoidthroughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The complex instruction is segmented into multiple simpler micro-operations that can be executed in parallel. The blend and permute operations break down data manipulation tasks into atomic steps that operate on individual data elements independently, allowing simultaneous execution across multiple elements without sequential dependencies.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from scalar operations to vector operations by introducing SIMD (Single Instruction Multiple Data) capability. This dimensional change allows the same instruction to operate on multiple data elements simultaneously across different lanes, effectively adding a parallel execution dimension that increases throughput while maintaining functional capability.

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

2Adaptability or versatility

If complex instructions are executed on modern processors, then functional capability is improved, but execution resources are consumed and performance is reduced

Engineering Contradiction:
Improvefunctional capabilityVSAvoidexecution resources
Core Design Contradiction:
Adaptability or versatilityVSPower

Solution Approach 1:

Multiple data manipulation operations are merged into a single unified blend and permute instruction. Instead of executing separate instructions for loading, shuffling, and storing data elements, the patent combines these operations into atomic SIMD instructions that perform multiple functions in parallel, reducing the total number of execution cycles and resource consumption.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The blend and permute execution units are designed with universal functionality to handle various data manipulation tasks through a single instruction format. The same hardware unit can perform different operations (blend, permute, shuffle, swap) by interpreting different control fields within the instruction, eliminating the need for specialized hardware for each operation type and optimizing resource utilization.

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

Data Source

PatentUS10152321B2Instructions and logic for blend and permute operation sequences
Publication Date: 2018.12.11 INTEL CORP
  • US10152321B2 patent drawing
  • US10152321B2 patent drawing
  • US10152321B2 patent drawing

AI summary

A processor includes a core to execute an instruction and logic to determine that the instruction will require strided data converted from source data in memory. The strided data is to include corresponding indexed elements from structures in the source data to be loaded into a same register to be used to execute the instruction. The core also includes logic to load source data into preliminary vector registers. The source data is to be unaligned as resident in the vector registers. The core includes logic to apply blend instructions to contents of the preliminary vector registers to cause corresponding indexed elements from the plurality of structures to be loaded into respective interim vector registers, and to apply further blend instructions to contents of the interim vector registers to cause additional indexed elements from the structures to be loaded into respective source vector registers.