DSP Streaming Engine with Configurable Loop Template Formats

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern digital signal processors face challenges with increasing workloads, memory bandwidth and scheduling issues, memory system latency, and memory access difficulties in real-time data processing, particularly in video encoding applications.

Innovation Solution

A streaming engine is employed in a digital signal processor that generates addresses for data elements and supplies them to functional units, using a stream template with specified loop counts and dimensions, enabling efficient data processing for real-time filtering operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed stream template format is used, then the device complexity is reduced and ease of operation is improved, but the adaptability to different loop configurations is limited

Engineering Contradiction:
Improveadaptability to different loop configurationsVSAvoidstream template format complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The stream template format is made dynamic and configurable through a format definition field that can be programmed to specify different interpretations of the same bit positions. This allows the template to adapt to various loop configurations (different numbers of loops, different loop count sizes, different dimension sizes) without requiring multiple fixed formats or increasing hardware complexity.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If more loops are supported in the stream template, then the adaptability is improved, but the precision of loop count and dimension specification is reduced

Engineering Contradiction:
Improvenumber of loops supportedVSAvoidloop count and dimension precision
Core Design Contradiction:
Adaptability or versatilityVSMeasurement precision

Solution Approach 1:

The format definition field enables parameter changes by allowing the system to reconfigure how stream template bits are interpreted. When more loops are needed, the format can be adjusted to allocate fewer bits per loop count/dimension, and vice versa. This dynamic parameter adjustment resolves the trade-off between supporting more loops and maintaining precision.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If the stream template uses fixed bit allocation for loop counts and dimensions, then the manufacturing precision is improved, but the adaptability to different processing needs is reduced

Engineering Contradiction:
Improveflexibility in loop configurationVSAvoidbit allocation precision
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The same physical bits in the stream template are made universal by allowing their interpretation to change based on the format definition field. This multi-functionality enables the bits to serve different purposes (representing different numbers of loops, different precision levels) without requiring additional hardware resources, thus maintaining manufacturing precision while improving adaptability.

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

Data Source

PatentUS12411766B2Streaming engine with variable stream template format
Publication Date: 2025.09.09 TEXAS INSTRUMENTS INC
  • US12411766B2 patent drawing
  • US12411766B2 patent drawing
  • US12411766B2 patent drawing

AI summary

A streaming engine employed in a digital data processor specifies a fixed read only data stream defined by plural nested loops. An address generator produces address of data elements for the nested loops. A steam head register stores data elements next to be supplied to functional units for use as operands. A stream template specifies loop count and loop dimension for each nested loop. A format definition field in the stream template specifies the number of loops and the stream template bits devoted to the loop counts and loop dimensions. This permits the same bits of the stream template to be interpreted differently enabling trade off between the number of loops supported and the size of the loop counts and loop dimensions.