Streaming Engine Vector Predicates for Valid-Data Loop Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Digital signal processors face challenges in managing memory bandwidth and scheduling for real-time data processing, particularly in handling predictable but non-sequential input data patterns, which can lead to inefficiencies in data processing and output scheduling.

Innovation Solution

An autonomous streaming engine is integrated into the digital signal processor to manage data streams, including address generation and data formatting, and provides a mechanism to record valid data elements within data vectors, allowing the processor to use predicate information to control instruction execution and optimize data processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the processor executes instruction loops to process data vectors, then data processing capability is improved, but execution efficiency deteriorates when data vectors contain invalid elements requiring loop continuation

Engineering Contradiction:
Improvedata processing capabilityVSAvoidloop execution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies partial action by using vector predicates to identify and process only the valid subset of data elements within a data vector. Instead of processing entire vectors uniformly, the system selectively applies operations to elements marked as valid by predicate bits, avoiding wasted computation on invalid elements while maintaining vectorized processing efficiency

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent segments the data vector processing by dividing it into valid and invalid elements using predicate registers. Each data element has an associated predicate bit that segments the processing workload, allowing the processor to handle only relevant portions of the data while maintaining the structural integrity of vector operations

Inventive Principle:
Principle #1Segmentation

2Productivity

If the streaming engine manages data streams autonomously, then memory bandwidth utilization is improved, but system complexity increases due to coordination requirements

Engineering Contradiction:
Improvememory bandwidth utilizationVSAvoidsystem coordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces predicate registers as intermediary structures between the streaming engine and the processor core. These predicate registers act as mediators that carry validity information from the autonomous streaming engine to control processor execution, enabling coordinated operation without requiring complex direct communication protocols

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The streaming engine performs preliminary action by pre-processing data streams and generating predicate information before data reaches the processor core. This advance preparation of validity markers allows the processor to efficiently filter and process only valid data elements without requiring complex runtime coordination

Inventive Principle:
Principle #10Preliminary action

3Speed

If cache is used to improve processing speed, then data access time is reduced, but cache miss stalls increase due to non-sequential data access patterns

Engineering Contradiction:
Improvedata access speedVSAvoidcache miss stall time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The streaming engine performs preliminary data formatting and organization before data is loaded into cache, arranging data in access patterns that are more cache-friendly. This pre-processing reduces the likelihood of cache misses during subsequent processing operations by anticipating and preparing data in an optimized layout

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10936315B2Tracking streaming engine vector predicates to control processor execution
Publication Date: 2021.03.02 TEXAS INSTRUMENTS INC
  • US10936315B2 patent drawing
  • US10936315B2 patent drawing
  • US10936315B2 patent drawing

AI summary

In a method of operating a computer system, an instruction loop is executed by a processor in which each iteration of the instruction loop accesses a current data vector and an associated current vector predicate. The instruction loop is repeated when the current vector predicate indicates the current data vector contains at least one valid data element and the instruction loop is exited when the current vector predicate indicates the current data vector contains no valid data elements.