Variable Stream Template Layout for Nested-Loop Data Streaming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern digital signal processors face challenges with increasing workloads, memory bandwidth limitations, and memory latency impacting real-time data processing, particularly in video encoding, where memory accesses are difficult to achieve within available resources.

Innovation Solution

A streaming engine is employed in a digital signal processor that generates addresses for data elements and manages data streams with a stream template specifying loop counts and dimensions, allowing for efficient data movement directly to functional units, reducing memory access requirements and improving bandwidth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a streaming engine with fixed stream template format is used, then memory access efficiency is improved and bandwidth is increased, but the ability to handle variable stream formats is reduced

Engineering Contradiction:
Improvememory access efficiencyVSAvoidstream format flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic stream template format where the number of loops and loop dimensions can be configured at runtime through control registers. The stream template includes variable fields for loop count (e.g., 5-bit fields) and loop dimension parameters that can be adjusted to match different data stream requirements, allowing the same hardware to handle both fixed and variable format streams efficiently.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the parameters of the stream template format by allowing the loop count and loop dimension to be variable rather than fixed. The control register can be configured with different numbers of loops (e.g., 1-4 loops) and different loop dimensions (e.g., 1-4 dimensions), enabling the system to adapt to various memory access patterns without requiring hardware reconfiguration.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If the stream template includes more loop count and loop dimension fields, then the number of supported loops increases, but the size of the stream template increases

Engineering Contradiction:
Improvenumber of loops supportedVSAvoidstream template size
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the stream template into multiple independent loop dimension structures, where each loop dimension can be configured separately. Each loop dimension includes its own count fields and parameter fields, allowing the template to be divided into manageable segments that can be independently adjusted. This segmentation enables the system to support multiple loops without requiring a single monolithic template structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention uses a nested structure where loop dimensions are organized within loop counts. The stream template contains nested loop dimension fields that are contained within the loop count structure. For example, multiple loop dimensions can be nested within a single loop count configuration, allowing compact representation of complex multi-dimensional stream access patterns without proportionally increasing the overall template size.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS20260003789A1Streaming engine with variable stream template format
Publication Date: 2026.01.01 TEXAS INSTRUMENTS INC
  • US20260003789A1 patent drawing
  • US20260003789A1 patent drawing
  • US20260003789A1 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.