Streaming Engine with Selectable Element and Group Duplication
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 fetches data streams ahead of use by the central processing unit core, utilizing an address generator and a stream head register to manage data elements, with optional duplication and vector masking/group duplication units to optimize data handling.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the streaming engine fetches data ahead of use to enhance memory bandwidth, then data processing efficiency is improved, but the complexity of data management increases
Solution Approach 1:
The streaming engine fetches stream data ahead of use by the CPU core, loading data into the stream buffer before it is actually needed. This preliminary action allows the functional units to operate without waiting for memory accesses, effectively enhancing memory bandwidth and reducing processing delays.
Solution Approach 2:
The patent introduces an intermediary stream buffer between the memory and the functional units. This buffer absorbs the complexity of data management by decoupling the fetch operations from the execution operations, allowing the streaming engine to manage data flow independently while simplifying the overall system architecture.
2Productivity
If element duplication is applied to increase data availability, then processing throughput is improved, but register overflow occurs
Solution Approach 1:
The element duplication unit dynamically adjusts the duplication factor based on the available stream head register space. When duplication would cause overflow, the system automatically reduces the duplication factor or pauses duplication operations, allowing flexible adaptation to varying data requirements without fixed constraints.
Solution Approach 2:
The system changes the duplication parameter (number of copies) as a variable rather than using a fixed value. The duplication factor is adjusted based on real-time conditions including register availability and data stream characteristics, enabling optimal throughput while preventing overflow through parameter adaptation.
3Measurement precision
If vector masking is used to control data elements, then data precision is improved, but hardware complexity increases
Solution Approach 1:
The vector masking unit is designed to serve multiple functions: it masks data elements for precision control, manages vector length variations, and handles group duplication operations. By making this unit multi-functional, the patent reduces the need for separate dedicated hardware for each function, thereby limiting the increase in hardware complexity while maintaining high data precision.
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. A steam head register stores data elements next to be supplied to functional units for use as operands. An element duplication unit optionally duplicates data element an instruction specified number of times. A vector masking unit limits data elements received from the element duplication unit to least significant bits within an instruction specified vector length. If the vector length is less than a stream head register size, the vector masking unit stores all 0's in excess lanes of the stream head register (group duplication disabled) or stores duplicate copies of the least significant bits in excess lanes of the stream head register.


