Permute Network for Streamed Vector Data Mapping
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, along with a permute network that maps data elements to vector locations for execution, enhancing memory access and data scheduling.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If data is accessed from memory in non-sequential patterns for video encoding applications, then processing flexibility is improved, but memory bandwidth and cache efficiency deteriorate
Solution Approach 1:
The streaming engine performs preliminary actions by generating addresses and formatting data before the vector functional unit executes instructions. This pre-processing of data streams allows the main processing unit to receive data in the correct format without performing memory access operations, thereby resolving the contradiction between processing flexibility and memory bandwidth efficiency
Solution Approach 2:
The streaming engine acts as an intermediary component between memory and the vector functional unit. It receives data from memory, performs address generation and formatting operations, and supplies processed data to the vector functional unit, thereby mediating the contradiction between non-sequential access patterns and memory bandwidth constraints
2Ease of operation
If data is loaded from memory to data registers for processing, then data availability for functional units is improved, but memory access time and cache miss stalls increase
Solution Approach 1:
The streaming engine extracts the memory access and data formatting functions from the main vector processing path. By dedicating a separate streaming engine to handle data loading, address generation, and formatting, the main vector functional unit can focus on processing without being blocked by memory access operations, thereby reducing cache miss stalls and improving data availability
Solution Approach 2:
The streaming engine performs preliminary data loading and formatting operations before data is needed by the vector functional unit. This allows data to be prepared in advance and supplied to processing units without causing stalls, resolving the contradiction between data availability and memory access time
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.


