Predicate Counter for SWAR Programming Complexity Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional digital signal processors face challenges in programming and porting legacy code due to the need for processor-specific intrinsics and specialized vector data types for SIMD-within-a-register (SWAR) operations, which complicates parallel processing and increases programming complexity.

Innovation Solution

The introduction of a predicate counter that allows for conditional execution of instructions, enabling linearization of branched operations and reducing the burden on programmers by treating parallel processing units as a single vector lane, with mechanisms like masking, conditional execution, and independent address generation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If SWAR operations are implemented to achieve higher throughput and performance, then processing capability is improved, but programming complexity increases due to processor-specific intrinsics and specialized vector data types

Engineering Contradiction:
ImprovethroughputVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The predicate register is designed to support multiple functions: it can hold boolean predicates for conditional execution, serve as a mask register for selective operation application, and function as a general-purpose register. This multi-functionality eliminates the need for separate hardware structures for different control operations, thereby reducing programming complexity while maintaining high throughput SWAR capabilities

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

Solution Approach 2:

The patent introduces a multi-bit predicate register that can represent multiple states (not just binary true/false). By changing the parameter space of the predicate from 1 bit to multiple bits, the system can encode complex control conditions directly in the predicate value, allowing high-level language constructs to map naturally to hardware operations without requiring processor-specific intrinsics

Inventive Principle:
Principle #35Parameter changes

2Productivity

If processor-specific intrinsics and specialized vector data types are used for SWAR programming, then processing capability is improved, but code portability deteriorates

Engineering Contradiction:
Improveprocessing capabilityVSAvoidcode portability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The unified predicate register design allows the same hardware structure to handle both traditional boolean predication and SWAR masking operations. This universality means that high-level language compilers can generate portable code that works across different vector processor implementations without requiring processor-specific intrinsic functions or specialized data types

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

Solution Approach 2:

Instead of requiring programmers to learn processor-specific syntax and data types to access SWAR capabilities, the patent inverts the approach by making the hardware adaptable to standard programming constructs. The multi-bit predicate register can interpret standard boolean operations in multiple ways, allowing conventional high-level language code to automatically benefit from SWAR acceleration without modification

Inventive Principle:
Principle #13The other way round (Inversion)

3Productivity

If two levels of parallel processing are implemented (SWAR within processing elements and across processing elements), then throughput is improved, but programming burden increases

Engineering Contradiction:
ImprovethroughputVSAvoidprogramming burden
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent merges the control mechanisms for both levels of parallelism into a single unified predicate register system. The same predicate register that controls conditional execution at the instruction level also controls masking at the element level within SWAR operations. This consolidation allows a single high-level language construct to automatically manage both levels of parallelism, eliminating the need for programmers to explicitly handle two separate control mechanisms

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9342306B2Predicate counter
Publication Date: 2016.05.17 ANALOG DEVICES INT UNLTD CO
  • US9342306B2 patent drawing
  • US9342306B2 patent drawing
  • US9342306B2 patent drawing

AI summary

According to an example embodiment, a processor such as a digital signal processor (DSP), is provided with a register acting as a predicate counter. The predicate counter may include more than two useful values, and in addition to acting as a condition for executing an instruction, may also keep track of nesting levels within a loop or conditional branch. In some cases, the predicate counter may be configured to operate in single-instruction, multiple data (SIMD) mode, or SIMD-within-a-register (SWAR) mode.