Vector Extract Instructions With Masking Logic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures lack efficient instructions for vector operations, particularly in handling various data element sizes and granularities, leading to suboptimal performance in executing vector instructions across different data types.

Innovation Solution

The introduction of new vector instructions, such as VINSERT, VEXTRACT, and VPERMUTE, which allow for flexible handling of different data sizes and granularities through masking logic and index vectors, enabling more precise control over data manipulation within vector registers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional scalar processor architecture is used, then the processor is simpler to implement, but it cannot efficiently execute vector operations on multiple data sets

Engineering Contradiction:
Improvevector operation execution efficiencyVSAvoidprocessor architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The processor architecture is segmented into separate scalar and vector execution units. The vector execution unit contains multiple functional units (integer math, floating point, load/store) that can operate independently on vector data, while the scalar unit handles scalar operations. This segmentation allows vector operations to be performed efficiently without interfering with scalar operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The vector execution unit is designed with multi-functional capability, containing integer math functional units, floating point functional units, and load/store functional units within a single vector processing architecture. This allows the same vector execution infrastructure to handle different data types and operation types, improving productivity without proportionally increasing complexity.

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

2Adaptability or versatility

If vector operations are implemented with fixed data element sizes, then the instruction format is simpler, but it cannot handle various data element sizes and granularities

Engineering Contradiction:
Improvedata element size flexibilityVSAvoidinstruction format complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The vector instruction format includes dynamic fields that allow the data element size and vector length to be specified at runtime. The instruction contains a data element size field and a vector length field that can be dynamically adjusted based on the specific operation requirements, enabling the same instruction format to adapt to different data granularities without requiring multiple fixed-format instructions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Different portions of the vector instruction format serve different purposes: the opcode identifies the operation type, while separate fields specify data element size, vector length, and operand registers. This local differentiation allows each field to be optimized for its specific function while maintaining overall format flexibility for handling various data element sizes.

Inventive Principle:
Principle #3Local quality

3Productivity

If multiple instructions are used to manipulate vector data elements, then each instruction can be simpler, but more instructions increase execution time

Engineering Contradiction:
Improvevector manipulation efficiencyVSAvoidinstruction execution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The vector execution unit merges multiple operational capabilities into a single execution stage. The integer math functional units, floating point functional units, and load/store functional units can be triggered by a single vector instruction to perform complex vector manipulations that would otherwise require multiple sequential instructions, thereby reducing execution time and improving productivity.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The vector instructions are designed to pre-specify all operation parameters including source and destination registers, data element size, and vector length in a single instruction format. This preliminary specification allows the vector execution unit to perform the entire vector manipulation operation in one execution stage without requiring multiple sequential instructions, reducing the time loss associated with multiple instruction fetches and decodes.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9588764B2Apparatus and method of improved extract instructions
Publication Date: 2017.03.07 INTEL CORP
  • US9588764B2 patent drawing
  • US9588764B2 patent drawing
  • US9588764B2 patent drawing

AI summary

An apparatus is described that includes instruction execution circuitry to execute first, second, third, and fourth instructions, the first and second instructions select a first group of input vector elements from one of multiple first non-overlapping sections of respective first and second input vectors. Each of the multiple first non-overlapping sections have a same bit width as the first group. Both the third and fourth instructions select a second group of input vector elements from one of multiple second non overlapping sections of respective third and fourth input vectors. The second group has a second bit width that is larger than the first bit width. Each of multiple second non overlapping sections have a same bit width as the second group. The apparatus includes masking layer circuitry to mask the first and second groups at a first granularity and second granularity.