Permute Network Mapping for Non-Sequential Vector Instructions
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 handling predictable but non-sequential input data patterns required for applications like video encoding.
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, thereby improving memory bandwidth and reducing the processor's memory fetch tasks, allowing for more efficient data processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If data is streamed sequentially from memory to processor, then memory bandwidth is improved, but non-sequential data patterns required for video encoding cannot be handled efficiently
Solution Approach 1:
The data stream is segmented into individual data elements that can be independently permuted. The permute network divides the incoming data stream into separate channels, allowing each element to be routed to its destination independently, thus enabling non-sequential access patterns while maintaining high memory bandwidth utilization.
Solution Approach 2:
A permute network is introduced as an intermediary component between the streaming engine and the vector functional unit. This mediator receives sequentially streamed data and reorders it into the required non-sequential pattern before delivery to the processor, decoupling the sequential memory access from the non-sequential processing requirements.
2Productivity
If the processor directly fetches data from memory, then device complexity is reduced, but processing speed decreases due to cache miss stalls
Solution Approach 1:
Data is pre-formatted and pre-permuted by the streaming engine before reaching the processor core. Address generation and data formatting are performed in advance, so that when data arrives at the processor, it is already in the optimal form for processing, eliminating cache miss stalls and improving processing speed.
Solution Approach 2:
The streaming engine acts as an intermediary that handles the complex tasks of address generation, data formatting, and permutation before data reaches the processor. This allows the processor to focus solely on computation while the intermediary manages data movement and preparation, improving speed without significantly increasing processor complexity.
3Adaptability or versatility
If multiple processors share memory, then system versatility is improved, but memory access conflicts and scheduling complexity increase
Solution Approach 1:
Each processor has its own dedicated streaming engine that independently manages its data streams. This segmentation of data management responsibilities eliminates the need for complex shared memory scheduling, as each processor handles its own data preparation without interfering with others, maintaining system versatility while reducing scheduling complexity.
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.


