Permute Network for Streamed Vector Data Reordering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Digital signal processors face challenges in efficiently processing real-time data streams due to limitations in memory bandwidth and scheduling, particularly in applications requiring predictable non-sequential input patterns.
Innovation Solution
The implementation of a streaming engine within the DSP core that manages data streams by generating addresses, performing data formatting, and providing formatted data to the processor, enhancing memory bandwidth and reducing the processor's memory fetch tasks, thereby improving data scheduling and processing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a traditional memory access approach is used in DSP, then the processor can access data sequentially, but it cannot efficiently handle predictable non-sequential input patterns required by video encoding
Solution Approach 1:
A permute network is introduced as an intermediary component between the streaming engine and the vector functional unit. This permute network receives data elements in sequential order from the streaming engine and rearranges them into the required non-sequential pattern for video encoding operations, enabling the system to handle unpredictable input patterns without sacrificing processing efficiency
2Adaptability or versatility
If data is streamed directly to the vector functional unit without permutation, then the data path is simple, but the vector instruction cannot operate on permuted data elements required by video encoding
Solution Approach 1:
The data path is segmented into distinct functional components: a streaming engine for data intake, a permute network for data rearrangement, and a vector functional unit for processing. This segmentation allows each component to perform its specific function efficiently, with the permute network handling only the permutation operation without complicating the entire data path
3Productivity
If the processor fetches data directly from memory for each operation, then memory bandwidth is fully utilized, but cache miss stalls increase and processing efficiency decreases
Solution Approach 1:
The streaming engine performs preliminary data fetching and buffering operations, anticipating future data needs based on the known access patterns of video encoding algorithms. By pre-loading data into the permute network before it is actually needed by the vector functional unit, the system reduces cache miss stalls and improves processing efficiency
Data Source
AI summary
A method is provided that includes receiving, in a permute network, a plurality of data elements for a vector instruction from a streaming engine, and mapping, by the permute network, the plurality of data elements to vector locations for execution of the vector instruction by a vector functional unit in a vector data path of a processor.


