Horizontal Vector Instruction With Independent Read And Write Masks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face limitations in efficiently executing multi-element operations with different read and write masks, particularly in vector processing, where existing technologies struggle to handle varying element sizes and combinations effectively within a single instruction.

Innovation Solution

The introduction of a new class of instructions, referred to as 'horizontal' instructions, which allow for input vector operands of one size and output result vectors of a different size, utilizing read and write masks to selectively operate on and write elements, enabling flexible multi-element operations across various vector sizes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional vector instructions operate on full vector width, then throughput is maximized, but flexibility to operate on subsets of elements is lost

Engineering Contradiction:
Improvevector processing throughputVSAvoidability to operate on subsets of vector elements
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The vector operation is segmented into two independent masking stages: read mask for selecting input elements and write mask for selecting output elements. This segmentation allows different subsets of elements to be processed and written back independently, resolving the contradiction between full-width throughput and subset flexibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The instruction introduces dynamic mask registers that can be configured at runtime to select different subsets of vector elements. The read and write masks can be independently adjusted, allowing the same instruction to adapt to different operation requirements while maintaining efficient vector processing.

Inventive Principle:
Principle #15Dynamics

2Measurement precision

If different mask registers are used for read and write operations, then flexibility and precision are improved, but device complexity increases

Engineering Contradiction:
Improveelement selection precisionVSAvoidmask register and logic complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The mask registers are designed to serve multiple functions: they can be configured as read masks, write masks, or both simultaneously. This multi-functionality allows precise element selection without proportionally increasing hardware complexity, as the same mask infrastructure supports different operation modes.

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

Solution Approach 2:

The patent introduces mask register files as intermediary structures between the instruction decoder and execution units. These intermediaries store and manage mask patterns, simplifying the control logic by centralizing mask management rather than embedding complex masking logic throughout the execution path.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of manufacture

If full vector width operations are always performed, then resource utilization is simplified, but efficiency when processing subsets is reduced

Engineering Contradiction:
Improveexecution unit design simplicityVSAvoidinstruction execution efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The execution units are designed to handle full vector width operations (excessive action) but with the capability to apply read and write masks that enable partial action when needed. This approach maintains simple, efficient full-width execution logic while allowing selective element processing through masking, achieving both design simplicity and processing efficiency.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10037208B2Multi-element instruction with different read and write masks
Publication Date: 2018.07.31 INTEL CORP
  • US10037208B2 patent drawing
  • US10037208B2 patent drawing
  • US10037208B2 patent drawing

AI summary

A method is described that includes reading a first read mask from a first register. The method also includes reading a first vector operand from a second register or memory location. The method also includes applying the read mask against the first vector operand to produce a set of elements for operation. The method also includes performing an operation of the set elements. The method also includes creating an output vector by producing multiple instances of the operation's result. The method also includes reading a first write mask from a third register, the first write mask being different than the first read mask. The method also includes applying the write mask against the output vector to create a resultant vector. The method also includes writing the resultant vector to a destination register.