Variable Stream Template Layout for Nested-Loop Data Streaming
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
Data Source
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.


