Vector Processing Unit Lane Skip Indicators

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing vector processing units face challenges in efficiently performing conditional operations across multiple lanes of parallel processing, leading to reduced performance due to the complexity of encoding conditionality within vector instructions, which often results in the use of scalar operations instead.

Innovation Solution

A data processing apparatus and method that utilizes skip indicators for each lane of parallel processing, allowing conditional execution of vector operations through a vector skip instruction that sets and manages skip indicators, enabling selective exclusion of lanes from operations without modifying the vector operation instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conditionality is encoded within vector instructions, then conditional execution within lanes is enabled, but instruction size increases significantly

Engineering Contradiction:
Improveconditional execution capabilityVSAvoidinstruction size
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the conditionality encoding from the vector operation instructions and places it in separate control registers (skip indicators and mask registers). This separation allows conditional execution to be controlled without increasing the size of vector operation instructions, as the control information is stored independently in register files rather than embedded in each instruction.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent prepares control information in advance by setting skip indicators and mask register values before executing vector operations. The conditionality is predetermined and stored in control registers, allowing the vector processing unit to automatically apply conditional logic during execution without needing complex encoding in each instruction.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If scalar operations are used instead of vector operations for conditional execution, then conditional logic is achieved, but performance significantly decreases

Engineering Contradiction:
Improveconditional execution capabilityVSAvoidprocessing performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies conditional execution locally to individual lanes rather than requiring global scalar processing. Each lane can independently evaluate conditions through its own skip indicator and mask register, allowing parallel conditional execution across multiple lanes. This maintains vector processing performance while enabling conditional logic where needed in specific lanes.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent creates a universal control mechanism that works across all vector operations and lanes. The skip indicators and mask registers provide a unified interface for conditional execution that can be applied to any vector operation, eliminating the need for separate scalar processing paths and maintaining performance across different operation types.

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

3Productivity

If vector processing unit is used for parallel processing, then performance benefits are achieved, but conditional execution within lanes becomes complex

Engineering Contradiction:
Improveparallel processing performanceVSAvoidconditional execution control
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the control of conditional execution into separate components: skip indicators for each lane, mask registers for condition selection, and control logic for evaluating conditions. This segmentation simplifies the overall control structure by breaking down complex conditional execution into manageable, independent elements that can be controlled separately for each lane.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces mask registers as intermediary structures between the control logic and the execution units. These mask registers act as mediators that translate high-level conditional requirements into lane-specific control signals, simplifying the interface between control logic and execution units while enabling flexible conditional execution across all lanes.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8661225B2Data processing apparatus and method for handling vector instructions
Publication Date: 2014.02.25 ARM LTD
  • US8661225B2 patent drawing
  • US8661225B2 patent drawing
  • US8661225B2 patent drawing

AI summary

A data processing apparatus and method and provided for handling vector instructions. The data processing apparatus has a register data store with a plurality of registers arranged to store data elements. A vector processing unit is then used to execute a sequence of vector instructions, with the vector processing unit having a plurality of lanes of parallel processing and having access to the register data store in order to read data elements from, and write data elements to, the register data store during the execution of the sequence of vector instructions. A skip indication storage maintains a skip indicator for each of the lanes of parallel processing. The vector processing unit is responsive to a vector skip instruction to perform an update operation to set within the skip indication storage the skip indicator for a determined one or more lanes. The vector processing unit is responsive to a vector operation instruction to perform an operation in parallel on data elements input to the plurality of lanes of parallel processing, but to exclude from the performance of the operation any lane whose associated skip indicator is set. This allows the operation specified by vector instructions to be performed conditionally within each of the lanes of parallel processing without any modification to the vector instructions that are specifying those operations.